aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-05-09 12:54:39 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-05-09 12:54:39 -0400
commit85d604902eb28eaea4f9e0f3a655ae986fa4bd2e (patch)
tree3ca4ff0c7e13c09ad006f378fac066790586f391
parent8d648aad05811ccc07df22834de60a7bf8d9e0e6 (diff)
parentb9f34da74e1c4b5f2574333277cd8d8f53bad056 (diff)
Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM Device-tree updates from Olof Johansson: "Device-tree continues to see lots of updates. The majority of patches here are smaller changes for new hardware on existing platforms, and there are a few larger changes worth pointing out. Major new platforms: - Gemini has been ported to DT, so a handful of "new" platforms moved over from board files - Rockchip RK3288 support for Tinkerboard and Phytec phyCORE-RK3288 SoM and RDK - A bunch of embedded platforms, several Linksys platforms, Synology DS116, - Motorola Droid4 (really old OMAP-based phone) support is added. Some refactorings, i.e. Allwinner H3/H5 support is commonalized. And lots of smaller changes, cleanups, etc. See shortlog for more description We're adding ability to cross-include DT files between arm and arm64, by creating appropriate links in the dt-include directory, and using arm/ and arm64/ as include prefixes. This will avoid other local hacks such as per-file links between the two arch trees (this broke for external mirroring of DT contents). Now they can just provide their own appropriate dt-include hierarcy per platform" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (349 commits) ARM: dts: exynos: Use - instead of @ for DT OPP entries arm: spear6xx: add DT description of the ADC on SPEAr600 arm: spear6xx: remove unneeded pinctrl properties in spear600-evb arm: spear6xx: switch spear600-evb to the new flash partition DT binding arm: spear6xx: fix spaces in spear600-evb.dts arm: spear6xx: use node labels in spear600-evb.dts arm: spear6xx: add labels to various nodes in spear600.dtsi ARM: dts: vexpress: fix few unit address format warnings ARM: dts: at91: sama5d3_xplained: not all ADC channels are available ARM: dts: at91: sama5d3_xplained: fix ADC vref ARM: dts: at91: add envelope detector mux to the Axentia TSE-850 ARM: dts: armada-38x: label USB and SATA nodes ARM: dts: imx6q-utilite-pro: add hpd gpio ARM: dts: imx6qp-sabresd: Set reg_arm regulator supply ARM: dts: imx6qdl-sabresd: Set LDO regulator supply ARM: dts: imx: add Gateworks Ventana GW5903 support ARM: dts: i.MX25: add AIPS control registers ARM: dts: imx7-colibri: add Carrier Board 3.3V/5V regulators ARM: dts: imx7-colibri: remove 1.8V fixed regulator ARM: dts: imx7-colibri: allow to disable Ethernet rail ...
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-at91.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/gemini.txt86
-rw-r--r--Documentation/devicetree/bindings/arm/i2se.txt22
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt7
-rw-r--r--Documentation/devicetree/bindings/arm/shmobile.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt8
-rw-r--r--Documentation/devicetree/bindings/clock/mvebu-core-clock.txt7
-rw-r--r--Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt11
-rw-r--r--Documentation/devicetree/bindings/devfreq/exynos-bus.txt46
-rw-r--r--Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt2
-rw-r--r--Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt8
-rw-r--r--Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt25
-rw-r--r--Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt1
-rw-r--r--Documentation/devicetree/bindings/net/marvell,prestera.txt13
-rw-r--r--Documentation/devicetree/bindings/usb/dwc2.txt4
-rw-r--r--Documentation/devicetree/bindings/watchdog/cortina,gemini-watchdog.txt17
-rw-r--r--arch/arm/boot/dts/Makefile73
-rw-r--r--arch/arm/boot/dts/alpine.dtsi20
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir2110.dts1
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir3220.dts1
-rw-r--r--arch/arm/boot/dts/am335x-baltos-ir5221.dts1
-rw-r--r--arch/arm/boot/dts/am335x-baltos-leds.dtsi50
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts11
-rw-r--r--arch/arm/boot/dts/am335x-icev2.dts154
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi87
-rw-r--r--arch/arm/boot/dts/am3517.dtsi12
-rw-r--r--arch/arm/boot/dts/am4372.dtsi7
-rw-r--r--arch/arm/boot/dts/am437x-gp-evm.dts15
-rw-r--r--arch/arm/boot/dts/am57xx-idk-common.dtsi24
-rw-r--r--arch/arm/boot/dts/armada-385-linksys-shelby.dts114
-rw-r--r--arch/arm/boot/dts/armada-385-linksys.dtsi18
-rw-r--r--arch/arm/boot/dts/armada-385-synology-ds116.dts321
-rw-r--r--arch/arm/boot/dts/armada-385.dtsi20
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dts38
-rw-r--r--arch/arm/boot/dts/armada-388.dtsi9
-rw-r--r--arch/arm/boot/dts/armada-38x.dtsi49
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3236.dtsi211
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3336.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx4251.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-db-dxbc2.dts2
-rw-r--r--arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts2
-rw-r--r--arch/arm/boot/dts/armada-xp-linksys-mamba.dts18
-rw-r--r--arch/arm/boot/dts/aspeed-ast2500-evb.dts22
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts18
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts36
-rw-r--r--arch/arm/boot/dts/aspeed-g4.dtsi109
-rw-r--r--arch/arm/boot/dts/aspeed-g5.dtsi156
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts1
-rw-r--r--arch/arm/boot/dts/at91-sama5d3_xplained.dts5
-rw-r--r--arch/arm/boot/dts/at91-tse850-3.dts29
-rw-r--r--arch/arm/boot/dts/at91sam9261.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9x5ek.dtsi2
-rw-r--r--arch/arm/boot/dts/axp209.dtsi5
-rw-r--r--arch/arm/boot/dts/axp22x.dtsi5
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi4
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi36
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi.dtsi14
-rw-r--r--arch/arm/boot/dts/bcm283x.dtsi60
-rw-r--r--arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts17
-rw-r--r--arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts14
-rw-r--r--arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts5
-rw-r--r--arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts41
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6250.dts3
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts15
-rw-r--r--arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts10
-rw-r--r--arch/arm/boot/dts/bcm4708.dtsi8
-rw-r--r--arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts14
-rw-r--r--arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts16
-rw-r--r--arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts12
-rw-r--r--arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts98
-rw-r--r--arch/arm/boot/dts/bcm47081.dtsi20
-rw-r--r--arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts14
-rw-r--r--arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts8
-rw-r--r--arch/arm/boot/dts/bcm4709-linksys-ea9200.dts42
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r7000.dts19
-rw-r--r--arch/arm/boot/dts/bcm4709-netgear-r8000.dts41
-rw-r--r--arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts8
-rw-r--r--arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts18
-rw-r--r--arch/arm/boot/dts/bcm47094-linksys-panamera.dts36
-rw-r--r--arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts8
-rw-r--r--arch/arm/boot/dts/bcm47094-netgear-r8500.dts6
-rw-r--r--arch/arm/boot/dts/bcm47189-tenda-ac9.dts39
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi79
-rw-r--r--arch/arm/boot/dts/bcm53573.dtsi10
-rw-r--r--arch/arm/boot/dts/bcm94708.dts8
-rw-r--r--arch/arm/boot/dts/bcm94709.dts8
-rw-r--r--arch/arm/boot/dts/bcm953012er.dts8
-rw-r--r--arch/arm/boot/dts/bcm953012hr.dts97
-rw-r--r--arch/arm/boot/dts/bcm953012k.dts62
-rw-r--r--arch/arm/boot/dts/bcm958522er.dts10
-rw-r--r--arch/arm/boot/dts/bcm958525er.dts10
-rw-r--r--arch/arm/boot/dts/bcm958525xmc.dts10
-rw-r--r--arch/arm/boot/dts/bcm958622hr.dts10
-rw-r--r--arch/arm/boot/dts/bcm958623hr.dts10
-rw-r--r--arch/arm/boot/dts/bcm958625hr.dts8
-rw-r--r--arch/arm/boot/dts/bcm958625k.dts8
-rw-r--r--arch/arm/boot/dts/bcm988312hr.dts10
-rw-r--r--arch/arm/boot/dts/da850-evm.dts31
-rw-r--r--arch/arm/boot/dts/da850-lego-ev3.dts59
-rw-r--r--arch/arm/boot/dts/da850.dtsi31
-rw-r--r--arch/arm/boot/dts/dm8168-evm.dts10
-rw-r--r--arch/arm/boot/dts/dm816x.dtsi7
-rw-r--r--arch/arm/boot/dts/dra7.dtsi41
-rw-r--r--arch/arm/boot/dts/dra74x.dtsi5
-rw-r--r--arch/arm/boot/dts/exynos3250-rinato.dts2
-rw-r--r--arch/arm/boot/dts/exynos3250.dtsi46
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi9
-rw-r--r--arch/arm/boot/dts/exynos4210-origen.dts4
-rw-r--r--arch/arm/boot/dts/exynos4210-trats.dts2
-rw-r--r--arch/arm/boot/dts/exynos4210.dtsi40
-rw-r--r--arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4412-origen.dts4
-rw-r--r--arch/arm/boot/dts/exynos4412-prime.dtsi4
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts2
-rw-r--r--arch/arm/boot/dts/exynos4412.dtsi75
-rw-r--r--arch/arm/boot/dts/exynos5420-tmu-sensor-conf.dtsi25
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi50
-rw-r--r--arch/arm/boot/dts/exynos5440.dtsi32
-rw-r--r--arch/arm/boot/dts/exynos5800.dtsi56
-rw-r--r--arch/arm/boot/dts/gemini-nas4220b.dts102
-rw-r--r--arch/arm/boot/dts/gemini-rut1xx.dts65
-rw-r--r--arch/arm/boot/dts/gemini-sq201.dts118
-rw-r--r--arch/arm/boot/dts/gemini-wbd111.dts102
-rw-r--r--arch/arm/boot/dts/gemini-wbd222.dts102
-rw-r--r--arch/arm/boot/dts/gemini.dtsi156
-rw-r--r--arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts2
-rw-r--r--arch/arm/boot/dts/imx25-pdk.dts2
-rw-r--r--arch/arm/boot/dts/imx25-pinfunc.h5
-rw-r--r--arch/arm/boot/dts/imx25.dtsi12
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2-485.dts189
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2-enocean.dts220
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2-spi.dts199
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2.dts183
-rw-r--r--arch/arm/boot/dts/imx28-duckbill.dts81
-rw-r--r--arch/arm/boot/dts/imx28-m28cu3.dts2
-rw-r--r--arch/arm/boot/dts/imx28.dtsi28
-rw-r--r--arch/arm/boot/dts/imx50.dtsi8
-rw-r--r--arch/arm/boot/dts/imx53-qsb.dts4
-rw-r--r--arch/arm/boot/dts/imx53-qsrb.dts4
-rw-r--r--arch/arm/boot/dts/imx6dl-gw5903.dts55
-rw-r--r--arch/arm/boot/dts/imx6dl-gw5904.dts55
-rw-r--r--arch/arm/boot/dts/imx6q-b450v3.dts7
-rw-r--r--arch/arm/boot/dts/imx6q-b650v3.dts7
-rw-r--r--arch/arm/boot/dts/imx6q-b850v3.dts70
-rw-r--r--arch/arm/boot/dts/imx6q-bx50v3.dtsi16
-rw-r--r--arch/arm/boot/dts/imx6q-cm-fx6.dts83
-rw-r--r--arch/arm/boot/dts/imx6q-gw5903.dts55
-rw-r--r--arch/arm/boot/dts/imx6q-gw5904.dts59
-rw-r--r--arch/arm/boot/dts/imx6q-icore-ofcap10.dts76
-rw-r--r--arch/arm/boot/dts/imx6q-icore-ofcap12.dts76
-rw-r--r--arch/arm/boot/dts/imx6q-icore.dts34
-rw-r--r--arch/arm/boot/dts/imx6q-utilite-pro.dts10
-rw-r--r--arch/arm/boot/dts/imx6q-zii-rdu2.dts50
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw5903.dtsi654
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw5904.dtsi641
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore.dtsi19
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabresd.dtsi12
-rw-r--r--arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi932
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi3
-rw-r--r--arch/arm/boot/dts/imx6qp-nitrogen6_som2.dts55
-rw-r--r--arch/arm/boot/dts/imx6qp-sabresd.dts4
-rw-r--r--arch/arm/boot/dts/imx6qp-zii-rdu2.dts50
-rw-r--r--arch/arm/boot/dts/imx6qp.dtsi99
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi21
-rw-r--r--arch/arm/boot/dts/imx6ul-14x14-evk.dts5
-rw-r--r--arch/arm/boot/dts/imx6ul-geam.dtsi45
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-common.dtsi141
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-emmc.dts1
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-nand.dts1
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot.dtsi73
-rw-r--r--arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi55
-rw-r--r--arch/arm/boot/dts/imx7-colibri.dtsi45
-rw-r--r--arch/arm/boot/dts/imx7d-colibri-eval-v3.dts1
-rw-r--r--arch/arm/boot/dts/imx7d-sdb-sht11.dts74
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi7
l---------arch/arm/boot/dts/include/arm1
l---------arch/arm/boot/dts/include/arm641
-rw-r--r--arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi243
-rw-r--r--arch/arm/boot/dts/moxart-uc7112lx.dts2
-rw-r--r--arch/arm/boot/dts/moxart.dtsi21
-rw-r--r--arch/arm/boot/dts/omap3-cpu-thermal.dtsi20
-rw-r--r--arch/arm/boot/dts/omap3-igep.dtsi52
-rw-r--r--arch/arm/boot/dts/omap3-n900.dts23
-rw-r--r--arch/arm/boot/dts/omap3-n950-n9.dtsi32
-rw-r--r--arch/arm/boot/dts/omap34xx.dtsi8
-rw-r--r--arch/arm/boot/dts/omap36xx.dtsi8
-rw-r--r--arch/arm/boot/dts/omap4-droid4-xt894.dts375
-rw-r--r--arch/arm/boot/dts/omap443x.dtsi4
-rw-r--r--arch/arm/boot/dts/omap4460.dtsi4
-rw-r--r--arch/arm/boot/dts/omap5.dtsi9
-rw-r--r--arch/arm/boot/dts/qcom-apq8060-dragonboard.dts6
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi30
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts8
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi306
-rw-r--r--arch/arm/boot/dts/r7s72100-genmai.dts8
-rw-r--r--arch/arm/boot/dts/r7s72100-rskrza1.dts8
-rw-r--r--arch/arm/boot/dts/r7s72100.dtsi65
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi19
-rw-r--r--arch/arm/boot/dts/r8a7743.dtsi29
-rw-r--r--arch/arm/boot/dts/r8a7745.dtsi29
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw.dts1
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen.dts1
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts1
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi28
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts4
-rw-r--r--arch/arm/boot/dts/r8a7791-porter.dts5
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi25
-rw-r--r--arch/arm/boot/dts/r8a7792.dtsi25
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts1
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi25
-rw-r--r--arch/arm/boot/dts/r8a7794-alt.dts3
-rw-r--r--arch/arm/boot/dts/r8a7794-silk.dts3
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi30
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi6
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi4
-rw-r--r--arch/arm/boot/dts/rk322x.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-miqi.dts12
-rw-r--r--arch/arm/boot/dts/rk3288-phycore-rdk.dts298
-rw-r--r--arch/arm/boot/dts/rk3288-phycore-som.dtsi497
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-som.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-square.dts62
-rw-r--r--arch/arm/boot/dts/rk3288-tinker.dts536
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi8
-rw-r--r--arch/arm/boot/dts/rk3xxx.dtsi16
-rw-r--r--arch/arm/boot/dts/s3c64xx.dtsi3
-rw-r--r--arch/arm/boot/dts/s5pv210.dtsi2
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi5
-rw-r--r--arch/arm/boot/dts/socfpga.dtsi56
-rw-r--r--arch/arm/boot/dts/socfpga_arria10.dtsi51
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk.dtsi7
-rw-r--r--arch/arm/boot/dts/socfpga_arria5_socdk.dts2
-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.dts1
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socdk.dts2
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_sockit.dts2
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socrates.dts8
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_sodia.dts23
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts2
-rw-r--r--arch/arm/boot/dts/socfpga_vt.dts2
-rw-r--r--arch/arm/boot/dts/spear600-evb.dts148
-rw-r--r--arch/arm/boot/dts/spear600.dtsi28
-rw-r--r--arch/arm/boot/dts/stih407-family.dtsi18
-rw-r--r--arch/arm/boot/dts/stm32429i-eval.dts28
-rw-r--r--arch/arm/boot/dts/stm32746g-eval.dts4
-rw-r--r--arch/arm/boot/dts/stm32f429-disco.dts16
-rw-r--r--arch/arm/boot/dts/stm32f429.dtsi37
-rw-r--r--arch/arm/boot/dts/stm32f469-disco.dts16
-rw-r--r--arch/arm/boot/dts/stm32f746.dtsi96
-rw-r--r--arch/arm/boot/dts/stm32h743-pinctrl.dtsi156
-rw-r--r--arch/arm/boot/dts/stm32h743.dtsi83
-rw-r--r--arch/arm/boot/dts/stm32h743i-eval.dts74
-rw-r--r--arch/arm/boot/dts/sun4i-a10-a1000.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-cubieboard.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hackberry.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet1.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-marsboard.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mini-xplus.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mk802.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pcduino.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi40
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts5
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts3
-rw-r--r--arch/arm/boot/dts/sun5i-a10s.dtsi77
-rw-r--r--arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a13-hsg-h702.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a13-licheepi-one.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino.dts1
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi140
-rw-r--r--arch/arm/boot/dts/sun5i-gr8-chip-pro.dts4
-rw-r--r--arch/arm/boot/dts/sun5i-gr8-evb.dts4
-rw-r--r--arch/arm/boot/dts/sun5i-gr8.dtsi618
-rw-r--r--arch/arm/boot/dts/sun5i-r8-chip.dts6
-rw-r--r--arch/arm/boot/dts/sun5i-r8.dtsi40
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi284
-rw-r--r--arch/arm/boot/dts/sun6i-a31-app4-evb1.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31-colombus.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31-hummingbird.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31-i7.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31-m9.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi1
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-cs908.dts2
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-primo81.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi1
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sina31s.dts23
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts57
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts1
-rw-r--r--arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubieboard2.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubietruck.dts9
-rw-r--r--arch/arm/boot/dts/sun7i-a20-hummingbird.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-icnova-swac.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-m3.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-mk808c.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts36
-rw-r--r--arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-orangepi.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20-pcduino3.dts1
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi46
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi2
-rw-r--r--arch/arm/boot/dts/sun8i-a23-evb.dts1
-rw-r--r--arch/arm/boot/dts/sun8i-a23-q8-tablet.dts10
-rw-r--r--arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts23
-rw-r--r--arch/arm/boot/dts/sun8i-a33.dtsi155
-rw-r--r--arch/arm/boot/dts/sun8i-a83t.dtsi2
-rw-r--r--arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts21
-rw-r--r--arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts1
-rw-r--r--arch/arm/boot/dts/sun8i-h3-beelink-x2.dts11
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts96
-rw-r--r--arch/arm/boot/dts/sun8i-h3-nanopi.dtsi1
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-2.dts1
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts1
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-one.dts23
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts1
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi602
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts1
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts1
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi2
-rw-r--r--arch/arm/boot/dts/sunxi-common-regulators.dtsi1
-rw-r--r--arch/arm/boot/dts/sunxi-h3-h5.dtsi618
-rw-r--r--arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi1
-rw-r--r--arch/arm/boot/dts/uniphier-ld4-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-ld4.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-ld6b-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-pinctrl.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-ace.dts11
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-sanji.dts11
-rw-r--r--arch/arm/boot/dts/uniphier-pro4.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-pro5.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2-gentil.dts11
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2-vodka.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-ref-daughter.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-sld3-ref.dts12
-rw-r--r--arch/arm/boot/dts/uniphier-sld3.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-sld8-ref.dts10
-rw-r--r--arch/arm/boot/dts/uniphier-sld8.dtsi4
-rw-r--r--arch/arm/boot/dts/uniphier-support-card.dtsi5
-rw-r--r--arch/arm/boot/dts/vexpress-v2m-rs1.dtsi24
-rw-r--r--arch/arm/boot/dts/vexpress-v2m.dtsi24
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts2
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts18
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca5s.dts2
-rw-r--r--arch/arm/boot/dts/vexpress-v2p-ca9.dts2
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-b.dts14
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-c.dts77
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev.dtsi12
-rw-r--r--arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi43
-rw-r--r--arch/arm64/boot/dts/exynos/exynos5433-tm2.dts17
-rw-r--r--arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts18
l---------arch/arm64/boot/dts/include/arm1
l---------arch/arm64/boot/dts/include/arm641
-rw-r--r--include/dt-bindings/clock/r7s72100-clock.h9
-rw-r--r--include/dt-bindings/clock/r8a73a4-clock.h1
-rw-r--r--include/dt-bindings/clock/r8a7790-clock.h1
-rw-r--r--include/dt-bindings/clock/r8a7791-clock.h1
-rw-r--r--include/dt-bindings/clock/r8a7792-clock.h2
-rw-r--r--include/dt-bindings/clock/r8a7793-clock.h5
-rw-r--r--include/dt-bindings/clock/r8a7794-clock.h2
-rw-r--r--include/dt-bindings/mfd/stm32f7-rcc.h112
378 files changed, 13121 insertions, 2800 deletions
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt
index 29737b9b616e..799af90dd75b 100644
--- a/Documentation/devicetree/bindings/arm/atmel-at91.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt
@@ -217,7 +217,8 @@ memory, bridge implementations, processor and other functionality not controlled
217elsewhere. 217elsewhere.
218 218
219required properties: 219required properties:
220- compatible: Should be "atmel,<chip>-sfr", "syscon". 220- compatible: Should be "atmel,<chip>-sfr", "syscon" or
221 "atmel,<chip>-sfrbu", "syscon"
221 <chip> can be "sama5d3", "sama5d4" or "sama5d2". 222 <chip> can be "sama5d3", "sama5d4" or "sama5d2".
222- reg: Should contain registers location and length 223- reg: Should contain registers location and length
223 224
diff --git a/Documentation/devicetree/bindings/arm/gemini.txt b/Documentation/devicetree/bindings/arm/gemini.txt
new file mode 100644
index 000000000000..0041eb031116
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/gemini.txt
@@ -0,0 +1,86 @@
1Cortina systems Gemini platforms
2
3The Gemini SoC is the project name for an ARMv4 FA525-based SoC originally
4produced by Storlink Semiconductor around 2005. The company was renamed
5later renamed Storm Semiconductor. The chip product name is Storlink SL3516.
6It was derived from earlier products from Storm named SL3316 (Centroid) and
7SL3512 (Bulverde).
8
9Storm Semiconductor was acquired by Cortina Systems in 2008 and the SoC was
10produced and used for NAS and similar usecases. In 2014 Cortina Systems was
11in turn acquired by Inphi, who seem to have discontinued this product family.
12
13Many of the IP blocks used in the SoC comes from Faraday Technology.
14
15Required properties (in root node):
16 compatible = "cortina,gemini";
17
18Required nodes:
19
20- soc: the SoC should be represented by a simple bus encompassing all the
21 onchip devices, this is referred to as the soc bus node.
22
23- syscon: the soc bus node must have a system controller node pointing to the
24 global control registers, with the compatible string
25 "cortina,gemini-syscon", "syscon";
26
27- timer: the soc bus node must have a timer node pointing to the SoC timer
28 block, with the compatible string "cortina,gemini-timer"
29 See: clocksource/cortina,gemini-timer.txt
30
31- interrupt-controller: the sob bus node must have an interrupt controller
32 node pointing to the SoC interrupt controller block, with the compatible
33 string "cortina,gemini-interrupt-controller"
34 See interrupt-controller/cortina,gemini-interrupt-controller.txt
35
36Example:
37
38/ {
39 model = "Foo Gemini Machine";
40 compatible = "cortina,gemini";
41 #address-cells = <1>;
42 #size-cells = <1>;
43
44 memory {
45 device_type = "memory";
46 reg = <0x00000000 0x8000000>;
47 };
48
49 soc {
50 #address-cells = <1>;
51 #size-cells = <1>;
52 ranges;
53 compatible = "simple-bus";
54 interrupt-parent = <&intcon>;
55
56 syscon: syscon@40000000 {
57 compatible = "cortina,gemini-syscon", "syscon";
58 reg = <0x40000000 0x1000>;
59 };
60
61 uart0: serial@42000000 {
62 compatible = "ns16550a";
63 reg = <0x42000000 0x100>;
64 clock-frequency = <48000000>;
65 interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
66 reg-shift = <2>;
67 };
68
69 timer@43000000 {
70 compatible = "cortina,gemini-timer";
71 reg = <0x43000000 0x1000>;
72 interrupt-parent = <&intcon>;
73 interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
74 <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
75 <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
76 syscon = <&syscon>;
77 };
78
79 intcon: interrupt-controller@48000000 {
80 compatible = "cortina,gemini-interrupt-controller";
81 reg = <0x48000000 0x1000>;
82 interrupt-controller;
83 #interrupt-cells = <2>;
84 };
85 };
86};
diff --git a/Documentation/devicetree/bindings/arm/i2se.txt b/Documentation/devicetree/bindings/arm/i2se.txt
new file mode 100644
index 000000000000..dbd54a3aa07d
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/i2se.txt
@@ -0,0 +1,22 @@
1I2SE Device Tree Bindings
2-------------------------
3
4Duckbill Board
5Required root node properties:
6 - compatible = "i2se,duckbill", "fsl,imx28";
7
8Duckbill 2 Board
9Required root node properties:
10 - compatible = "i2se,duckbill-2", "fsl,imx28";
11
12Duckbill 2 485 Board
13Required root node properties:
14 - compatible = "i2se,duckbill-2-485", "i2se,duckbill-2", "fsl,imx28";
15
16Duckbill 2 EnOcean Board
17Required root node properties:
18 - compatible = "i2se,duckbill-2-enocean", "i2se,duckbill-2", "fsl,imx28";
19
20Duckbill 2 SPI Board
21Required root node properties:
22 - compatible = "i2se,duckbill-2-spi", "i2se,duckbill-2", "fsl,imx28";
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index cc4ace6397ab..6b8d50a0ee78 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -1,5 +1,8 @@
1Rockchip platforms device tree bindings 1Rockchip platforms device tree bindings
2--------------------------------------- 2---------------------------------------
3- Asus Tinker board
4 Required root node properties:
5 - compatible = "asus,rk3288-tinker", "rockchip,rk3288";
3 6
4- Kylin RK3036 board: 7- Kylin RK3036 board:
5 Required root node properties: 8 Required root node properties:
@@ -103,6 +106,10 @@ Rockchip platforms device tree bindings
103 Required root node properties: 106 Required root node properties:
104 - compatible = "mqmaker,miqi", "rockchip,rk3288"; 107 - compatible = "mqmaker,miqi", "rockchip,rk3288";
105 108
109- Phytec phyCORE-RK3288: Rapid Development Kit
110 Required root node properties:
111 - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
112
106- Rockchip PX3 Evaluation board: 113- Rockchip PX3 Evaluation board:
107 Required root node properties: 114 Required root node properties:
108 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188"; 115 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt
index c9502634316d..170fe0562c63 100644
--- a/Documentation/devicetree/bindings/arm/shmobile.txt
+++ b/Documentation/devicetree/bindings/arm/shmobile.txt
@@ -13,8 +13,12 @@ SoCs:
13 compatible = "renesas,r8a73a4" 13 compatible = "renesas,r8a73a4"
14 - R-Mobile A1 (R8A77400) 14 - R-Mobile A1 (R8A77400)
15 compatible = "renesas,r8a7740" 15 compatible = "renesas,r8a7740"
16 - RZ/G1H (R8A77420)
17 compatible = "renesas,r8a7742"
16 - RZ/G1M (R8A77430) 18 - RZ/G1M (R8A77430)
17 compatible = "renesas,r8a7743" 19 compatible = "renesas,r8a7743"
20 - RZ/G1N (R8A77440)
21 compatible = "renesas,r8a7744"
18 - RZ/G1E (R8A77450) 22 - RZ/G1E (R8A77450)
19 compatible = "renesas,r8a7745" 23 compatible = "renesas,r8a7745"
20 - R-Car M1A (R8A77781) 24 - R-Car M1A (R8A77781)
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt
index ccf0adddc820..a855c1bffc0f 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-flowctrl.txt
@@ -1,7 +1,13 @@
1NVIDIA Tegra Flow Controller 1NVIDIA Tegra Flow Controller
2 2
3Required properties: 3Required properties:
4- compatible: Should be "nvidia,tegra<chip>-flowctrl" 4- compatible: Should contain one of the following:
5 - "nvidia,tegra20-flowctrl": for Tegra20
6 - "nvidia,tegra30-flowctrl": for Tegra30
7 - "nvidia,tegra114-flowctrl": for Tegra114
8 - "nvidia,tegra124-flowctrl": for Tegra124
9 - "nvidia,tegra132-flowctrl", "nvidia,tegra124-flowctrl": for Tegra132
10 - "nvidia,tegra210-flowctrl": for Tegra210
5- reg: Should contain one register range (address and length) 11- reg: Should contain one register range (address and length)
6 12
7Example: 13Example:
diff --git a/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
index eb985a633d59..796c260c183d 100644
--- a/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
+++ b/Documentation/devicetree/bindings/clock/mvebu-core-clock.txt
@@ -31,6 +31,12 @@ The following is a list of provided IDs and clock names on Armada 39x:
31 4 = dclk (SDRAM Interface Clock) 31 4 = dclk (SDRAM Interface Clock)
32 5 = refclk (Reference Clock) 32 5 = refclk (Reference Clock)
33 33
34The following is a list of provided IDs and clock names on 98dx3236:
35 0 = tclk (Internal Bus clock)
36 1 = cpuclk (CPU clock)
37 2 = ddrclk (DDR clock)
38 3 = mpll (MPLL Clock)
39
34The following is a list of provided IDs and clock names on Kirkwood and Dove: 40The following is a list of provided IDs and clock names on Kirkwood and Dove:
35 0 = tclk (Internal Bus clock) 41 0 = tclk (Internal Bus clock)
36 1 = cpuclk (CPU0 clock) 42 1 = cpuclk (CPU0 clock)
@@ -49,6 +55,7 @@ Required properties:
49 "marvell,armada-380-core-clock" - For Armada 380/385 SoC core clocks 55 "marvell,armada-380-core-clock" - For Armada 380/385 SoC core clocks
50 "marvell,armada-390-core-clock" - For Armada 39x SoC core clocks 56 "marvell,armada-390-core-clock" - For Armada 39x SoC core clocks
51 "marvell,armada-xp-core-clock" - For Armada XP SoC core clocks 57 "marvell,armada-xp-core-clock" - For Armada XP SoC core clocks
58 "marvell,mv98dx3236-core-clock" - For 98dx3236 family SoC core clocks
52 "marvell,dove-core-clock" - for Dove SoC core clocks 59 "marvell,dove-core-clock" - for Dove SoC core clocks
53 "marvell,kirkwood-core-clock" - for Kirkwood SoC (except mv88f6180) 60 "marvell,kirkwood-core-clock" - for Kirkwood SoC (except mv88f6180)
54 "marvell,mv88f6180-core-clock" - for Kirkwood MV88f6180 SoC 61 "marvell,mv88f6180-core-clock" - for Kirkwood MV88f6180 SoC
diff --git a/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt b/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt
index 5142efc8099d..de562da2ae77 100644
--- a/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt
+++ b/Documentation/devicetree/bindings/clock/mvebu-gated-clock.txt
@@ -119,6 +119,16 @@ ID Clock Peripheral
11929 sata1lnk 11929 sata1lnk
12030 sata1 SATA Host 1 12030 sata1 SATA Host 1
121 121
122The following is a list of provided IDs for 98dx3236:
123ID Clock Peripheral
124-----------------------------------
1253 ge1 Gigabit Ethernet 1
1264 ge0 Gigabit Ethernet 0
1275 pex0 PCIe Cntrl 0
12817 sdio SDHCI Host
12918 usb0 USB Host 0
13022 xor0 XOR DMA 0
131
122The following is a list of provided IDs for Dove: 132The following is a list of provided IDs for Dove:
123ID Clock Peripheral 133ID Clock Peripheral
124----------------------------------- 134-----------------------------------
@@ -169,6 +179,7 @@ Required properties:
169 "marvell,armada-380-gating-clock" - for Armada 380/385 SoC clock gating 179 "marvell,armada-380-gating-clock" - for Armada 380/385 SoC clock gating
170 "marvell,armada-390-gating-clock" - for Armada 39x SoC clock gating 180 "marvell,armada-390-gating-clock" - for Armada 39x SoC clock gating
171 "marvell,armada-xp-gating-clock" - for Armada XP SoC clock gating 181 "marvell,armada-xp-gating-clock" - for Armada XP SoC clock gating
182 "marvell,mv98dx3236-gating-clock" - for 98dx3236 SoC clock gating
172 "marvell,dove-gating-clock" - for Dove SoC clock gating 183 "marvell,dove-gating-clock" - for Dove SoC clock gating
173 "marvell,kirkwood-gating-clock" - for Kirkwood SoC clock gating 184 "marvell,kirkwood-gating-clock" - for Kirkwood SoC clock gating
174- reg : shall be the register address of the Clock Gating Control register 185- reg : shall be the register address of the Clock Gating Control register
diff --git a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt
index d085ef90d27c..f8e946471a58 100644
--- a/Documentation/devicetree/bindings/devfreq/exynos-bus.txt
+++ b/Documentation/devicetree/bindings/devfreq/exynos-bus.txt
@@ -202,23 +202,23 @@ Example2 :
202 compatible = "operating-points-v2"; 202 compatible = "operating-points-v2";
203 opp-shared; 203 opp-shared;
204 204
205 opp@50000000 { 205 opp-50000000 {
206 opp-hz = /bits/ 64 <50000000>; 206 opp-hz = /bits/ 64 <50000000>;
207 opp-microvolt = <800000>; 207 opp-microvolt = <800000>;
208 }; 208 };
209 opp@100000000 { 209 opp-100000000 {
210 opp-hz = /bits/ 64 <100000000>; 210 opp-hz = /bits/ 64 <100000000>;
211 opp-microvolt = <800000>; 211 opp-microvolt = <800000>;
212 }; 212 };
213 opp@134000000 { 213 opp-134000000 {
214 opp-hz = /bits/ 64 <134000000>; 214 opp-hz = /bits/ 64 <134000000>;
215 opp-microvolt = <800000>; 215 opp-microvolt = <800000>;
216 }; 216 };
217 opp@200000000 { 217 opp-200000000 {
218 opp-hz = /bits/ 64 <200000000>; 218 opp-hz = /bits/ 64 <200000000>;
219 opp-microvolt = <825000>; 219 opp-microvolt = <825000>;
220 }; 220 };
221 opp@400000000 { 221 opp-400000000 {
222 opp-hz = /bits/ 64 <400000000>; 222 opp-hz = /bits/ 64 <400000000>;
223 opp-microvolt = <875000>; 223 opp-microvolt = <875000>;
224 }; 224 };
@@ -292,23 +292,23 @@ Example2 :
292 compatible = "operating-points-v2"; 292 compatible = "operating-points-v2";
293 opp-shared; 293 opp-shared;
294 294
295 opp@50000000 { 295 opp-50000000 {
296 opp-hz = /bits/ 64 <50000000>; 296 opp-hz = /bits/ 64 <50000000>;
297 opp-microvolt = <900000>; 297 opp-microvolt = <900000>;
298 }; 298 };
299 opp@80000000 { 299 opp-80000000 {
300 opp-hz = /bits/ 64 <80000000>; 300 opp-hz = /bits/ 64 <80000000>;
301 opp-microvolt = <900000>; 301 opp-microvolt = <900000>;
302 }; 302 };
303 opp@100000000 { 303 opp-100000000 {
304 opp-hz = /bits/ 64 <100000000>; 304 opp-hz = /bits/ 64 <100000000>;
305 opp-microvolt = <1000000>; 305 opp-microvolt = <1000000>;
306 }; 306 };
307 opp@134000000 { 307 opp-134000000 {
308 opp-hz = /bits/ 64 <134000000>; 308 opp-hz = /bits/ 64 <134000000>;
309 opp-microvolt = <1000000>; 309 opp-microvolt = <1000000>;
310 }; 310 };
311 opp@200000000 { 311 opp-200000000 {
312 opp-hz = /bits/ 64 <200000000>; 312 opp-hz = /bits/ 64 <200000000>;
313 opp-microvolt = <1000000>; 313 opp-microvolt = <1000000>;
314 }; 314 };
@@ -318,19 +318,19 @@ Example2 :
318 compatible = "operating-points-v2"; 318 compatible = "operating-points-v2";
319 opp-shared; 319 opp-shared;
320 320
321 opp@50000000 { 321 opp-50000000 {
322 opp-hz = /bits/ 64 <50000000>; 322 opp-hz = /bits/ 64 <50000000>;
323 }; 323 };
324 opp@80000000 { 324 opp-80000000 {
325 opp-hz = /bits/ 64 <80000000>; 325 opp-hz = /bits/ 64 <80000000>;
326 }; 326 };
327 opp@100000000 { 327 opp-100000000 {
328 opp-hz = /bits/ 64 <100000000>; 328 opp-hz = /bits/ 64 <100000000>;
329 }; 329 };
330 opp@200000000 { 330 opp-200000000 {
331 opp-hz = /bits/ 64 <200000000>; 331 opp-hz = /bits/ 64 <200000000>;
332 }; 332 };
333 opp@400000000 { 333 opp-400000000 {
334 opp-hz = /bits/ 64 <400000000>; 334 opp-hz = /bits/ 64 <400000000>;
335 }; 335 };
336 }; 336 };
@@ -339,19 +339,19 @@ Example2 :
339 compatible = "operating-points-v2"; 339 compatible = "operating-points-v2";
340 opp-shared; 340 opp-shared;
341 341
342 opp@50000000 { 342 opp-50000000 {
343 opp-hz = /bits/ 64 <50000000>; 343 opp-hz = /bits/ 64 <50000000>;
344 }; 344 };
345 opp@80000000 { 345 opp-80000000 {
346 opp-hz = /bits/ 64 <80000000>; 346 opp-hz = /bits/ 64 <80000000>;
347 }; 347 };
348 opp@100000000 { 348 opp-100000000 {
349 opp-hz = /bits/ 64 <100000000>; 349 opp-hz = /bits/ 64 <100000000>;
350 }; 350 };
351 opp@200000000 { 351 opp-200000000 {
352 opp-hz = /bits/ 64 <200000000>; 352 opp-hz = /bits/ 64 <200000000>;
353 }; 353 };
354 opp@300000000 { 354 opp-300000000 {
355 opp-hz = /bits/ 64 <300000000>; 355 opp-hz = /bits/ 64 <300000000>;
356 }; 356 };
357 }; 357 };
@@ -360,13 +360,13 @@ Example2 :
360 compatible = "operating-points-v2"; 360 compatible = "operating-points-v2";
361 opp-shared; 361 opp-shared;
362 362
363 opp@50000000 { 363 opp-50000000 {
364 opp-hz = /bits/ 64 <50000000>; 364 opp-hz = /bits/ 64 <50000000>;
365 }; 365 };
366 opp@80000000 { 366 opp-80000000 {
367 opp-hz = /bits/ 64 <80000000>; 367 opp-hz = /bits/ 64 <80000000>;
368 }; 368 };
369 opp@100000000 { 369 opp-100000000 {
370 opp-hz = /bits/ 64 <100000000>; 370 opp-hz = /bits/ 64 <100000000>;
371 }; 371 };
372 }; 372 };
diff --git a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
index b82c00449468..57a8d0610062 100644
--- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
+++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
@@ -94,6 +94,7 @@ Required properties:
94 * allwinner,sun6i-a31-display-backend 94 * allwinner,sun6i-a31-display-backend
95 * allwinner,sun8i-a33-display-backend 95 * allwinner,sun8i-a33-display-backend
96 - reg: base address and size of the memory-mapped region. 96 - reg: base address and size of the memory-mapped region.
97 - interrupts: interrupt associated to this IP
97 - clocks: phandles to the clocks feeding the frontend and backend 98 - clocks: phandles to the clocks feeding the frontend and backend
98 * ahb: the backend interface clock 99 * ahb: the backend interface clock
99 * mod: the backend module clock 100 * mod: the backend module clock
@@ -265,6 +266,7 @@ fe0: display-frontend@1e00000 {
265be0: display-backend@1e60000 { 266be0: display-backend@1e60000 {
266 compatible = "allwinner,sun5i-a13-display-backend"; 267 compatible = "allwinner,sun5i-a13-display-backend";
267 reg = <0x01e60000 0x10000>; 268 reg = <0x01e60000 0x10000>;
269 interrupts = <47>;
268 clocks = <&ahb_gates 44>, <&de_be_clk>, 270 clocks = <&ahb_gates 44>, <&de_be_clk>,
269 <&dram_gates 26>; 271 <&dram_gates 26>;
270 clock-names = "ahb", "mod", 272 clock-names = "ahb", "mod",
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
index 476f5ea6c627..2b6243e730f6 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt
@@ -35,6 +35,14 @@ Optional properties:
35 - interrupt-names and interrupts: 35 - interrupt-names and interrupts:
36 * pmu: Power Management Unit interrupt, if implemented in hardware 36 * pmu: Power Management Unit interrupt, if implemented in hardware
37 37
38 - memory-region:
39 Memory region to allocate from, as defined in
40 Documentation/devicetree/bindi/reserved-memory/reserved-memory.txt
41
42 - operating-points-v2:
43 Operating Points for the GPU, as defined in
44 Documentation/devicetree/bindings/opp/opp.txt
45
38Vendor-specific bindings 46Vendor-specific bindings
39------------------------ 47------------------------
40 48
diff --git a/Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt b/Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt
index ff3db65e50de..b7e4c7444510 100644
--- a/Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt
+++ b/Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt
@@ -5,6 +5,7 @@ Required properties:
5 Currently recognized values: 5 Currently recognized values:
6 - nvidia,gk20a 6 - nvidia,gk20a
7 - nvidia,gm20b 7 - nvidia,gm20b
8 - nvidia,gp10b
8- reg: Physical base address and length of the controller's registers. 9- reg: Physical base address and length of the controller's registers.
9 Must contain two entries: 10 Must contain two entries:
10 - first entry for bar0 11 - first entry for bar0
@@ -14,7 +15,8 @@ Required properties:
14- interrupt-names: Must include the following entries: 15- interrupt-names: Must include the following entries:
15 - stall 16 - stall
16 - nonstall 17 - nonstall
17- vdd-supply: regulator for supply voltage. 18- vdd-supply: regulator for supply voltage. Only required for GPUs not using
19 power domains.
18- clocks: Must contain an entry for each entry in clock-names. 20- clocks: Must contain an entry for each entry in clock-names.
19 See ../clocks/clock-bindings.txt for details. 21 See ../clocks/clock-bindings.txt for details.
20- clock-names: Must include the following entries: 22- clock-names: Must include the following entries:
@@ -27,6 +29,8 @@ is also required:
27 See ../reset/reset.txt for details. 29 See ../reset/reset.txt for details.
28- reset-names: Must include the following entries: 30- reset-names: Must include the following entries:
29 - gpu 31 - gpu
32- power-domains: GPUs that make use of power domains can define this property
33 instead of vdd-supply. Currently "nvidia,gp10b" makes use of this.
30 34
31Optional properties: 35Optional properties:
32- iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details. 36- iommus: A reference to the IOMMU. See ../iommu/iommu.txt for details.
@@ -68,3 +72,22 @@ Example for GM20B:
68 iommus = <&mc TEGRA_SWGROUP_GPU>; 72 iommus = <&mc TEGRA_SWGROUP_GPU>;
69 status = "disabled"; 73 status = "disabled";
70 }; 74 };
75
76Example for GP10B:
77
78 gpu@17000000 {
79 compatible = "nvidia,gp10b";
80 reg = <0x0 0x17000000 0x0 0x1000000>,
81 <0x0 0x18000000 0x0 0x1000000>;
82 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
83 GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
84 interrupt-names = "stall", "nonstall";
85 clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
86 <&bpmp TEGRA186_CLK_GPU>;
87 clock-names = "gpu", "pwr";
88 resets = <&bpmp TEGRA186_RESET_GPU>;
89 reset-names = "gpu";
90 power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
91 iommus = <&smmu TEGRA186_SID_GPU>;
92 status = "disabled";
93 };
diff --git a/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt b/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
index 3e920ec5c4d3..9ce35af8507c 100644
--- a/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
+++ b/Documentation/devicetree/bindings/mtd/jedec,spi-nor.txt
@@ -40,6 +40,7 @@ Required properties:
40 w25x80 40 w25x80
41 w25x32 41 w25x32
42 w25q32 42 w25q32
43 w25q64
43 w25q32dw 44 w25q32dw
44 w25q80bl 45 w25q80bl
45 w25q128 46 w25q128
diff --git a/Documentation/devicetree/bindings/net/marvell,prestera.txt b/Documentation/devicetree/bindings/net/marvell,prestera.txt
index 5fbab29718e8..c329608fa887 100644
--- a/Documentation/devicetree/bindings/net/marvell,prestera.txt
+++ b/Documentation/devicetree/bindings/net/marvell,prestera.txt
@@ -32,19 +32,16 @@ DFX Server bindings
32------------------- 32-------------------
33 33
34Required properties: 34Required properties:
35- compatible: must be "marvell,dfx-server" 35- compatible: must be "marvell,dfx-server", "simple-bus"
36- ranges: describes the address mapping of a memory-mapped bus.
36- reg: address and length of the register set for the device. 37- reg: address and length of the register set for the device.
37 38
38Example: 39Example:
39 40
40dfx-registers { 41dfx-server {
41 compatible = "simple-bus"; 42 compatible = "marvell,dfx-server", "simple-bus";
42 #address-cells = <1>; 43 #address-cells = <1>;
43 #size-cells = <1>; 44 #size-cells = <1>;
44 ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>; 45 ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
45 46 reg = <MBUS_ID(0x08, 0x00) 0 0x100000>;
46 dfx: dfx@0 {
47 compatible = "marvell,dfx-server";
48 reg = <0 0x100000>;
49 };
50}; 47};
diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
index 6c7c2bce6d0c..00bea038639e 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.txt
+++ b/Documentation/devicetree/bindings/usb/dwc2.txt
@@ -14,6 +14,10 @@ Required properties:
14 - "amlogic,meson-gxbb-usb": The DWC2 USB controller instance in Amlogic S905 SoCs; 14 - "amlogic,meson-gxbb-usb": The DWC2 USB controller instance in Amlogic S905 SoCs;
15 - "amcc,dwc-otg": The DWC2 USB controller instance in AMCC Canyonlands 460EX SoCs; 15 - "amcc,dwc-otg": The DWC2 USB controller instance in AMCC Canyonlands 460EX SoCs;
16 - snps,dwc2: A generic DWC2 USB controller with default parameters. 16 - snps,dwc2: A generic DWC2 USB controller with default parameters.
17 - "st,stm32f4x9-fsotg": The DWC2 USB FS/HS controller instance in STM32F4x9 SoCs
18 configured in FS mode;
19 - "st,stm32f4x9-hsotg": The DWC2 USB HS controller instance in STM32F4x9 SoCs
20 configured in HS mode;
17- reg : Should contain 1 register range (address and length) 21- reg : Should contain 1 register range (address and length)
18- interrupts : Should contain 1 interrupt 22- interrupts : Should contain 1 interrupt
19- clocks: clock provider specifier 23- clocks: clock provider specifier
diff --git a/Documentation/devicetree/bindings/watchdog/cortina,gemini-watchdog.txt b/Documentation/devicetree/bindings/watchdog/cortina,gemini-watchdog.txt
new file mode 100644
index 000000000000..bc4b865d178b
--- /dev/null
+++ b/Documentation/devicetree/bindings/watchdog/cortina,gemini-watchdog.txt
@@ -0,0 +1,17 @@
1Cortina Systems Gemini SoC Watchdog
2
3Required properties:
4- compatible : must be "cortina,gemini-watchdog"
5- reg : shall contain base register location and length
6- interrupts : shall contain the interrupt for the watchdog
7
8Optional properties:
9- timeout-sec : the default watchdog timeout in seconds.
10
11Example:
12
13watchdog@41000000 {
14 compatible = "cortina,gemini-watchdog";
15 reg = <0x41000000 0x1000>;
16 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
17};
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 011808490fed..9c5e1d944d1c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -77,6 +77,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
77 bcm4708-asus-rt-ac56u.dtb \ 77 bcm4708-asus-rt-ac56u.dtb \
78 bcm4708-asus-rt-ac68u.dtb \ 78 bcm4708-asus-rt-ac68u.dtb \
79 bcm4708-buffalo-wzr-1750dhp.dtb \ 79 bcm4708-buffalo-wzr-1750dhp.dtb \
80 bcm4708-linksys-ea6300-v1.dtb \
80 bcm4708-luxul-xap-1510.dtb \ 81 bcm4708-luxul-xap-1510.dtb \
81 bcm4708-luxul-xwc-1000.dtb \ 82 bcm4708-luxul-xwc-1000.dtb \
82 bcm4708-netgear-r6250.dtb \ 83 bcm4708-netgear-r6250.dtb \
@@ -87,17 +88,21 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
87 bcm47081-buffalo-wzr-900dhp.dtb \ 88 bcm47081-buffalo-wzr-900dhp.dtb \
88 bcm47081-luxul-xap-1410.dtb \ 89 bcm47081-luxul-xap-1410.dtb \
89 bcm47081-luxul-xwr-1200.dtb \ 90 bcm47081-luxul-xwr-1200.dtb \
91 bcm47081-tplink-archer-c5-v2.dtb \
90 bcm4709-asus-rt-ac87u.dtb \ 92 bcm4709-asus-rt-ac87u.dtb \
91 bcm4709-buffalo-wxr-1900dhp.dtb \ 93 bcm4709-buffalo-wxr-1900dhp.dtb \
94 bcm4709-linksys-ea9200.dtb \
92 bcm4709-netgear-r7000.dtb \ 95 bcm4709-netgear-r7000.dtb \
93 bcm4709-netgear-r8000.dtb \ 96 bcm4709-netgear-r8000.dtb \
94 bcm4709-tplink-archer-c9-v1.dtb \ 97 bcm4709-tplink-archer-c9-v1.dtb \
95 bcm47094-dlink-dir-885l.dtb \ 98 bcm47094-dlink-dir-885l.dtb \
99 bcm47094-linksys-panamera.dtb \
96 bcm47094-luxul-xwr-3100.dtb \ 100 bcm47094-luxul-xwr-3100.dtb \
97 bcm47094-netgear-r8500.dtb \ 101 bcm47094-netgear-r8500.dtb \
98 bcm94708.dtb \ 102 bcm94708.dtb \
99 bcm94709.dtb \ 103 bcm94709.dtb \
100 bcm953012er.dtb \ 104 bcm953012er.dtb \
105 bcm953012hr.dtb \
101 bcm953012k.dtb 106 bcm953012k.dtb
102dtb-$(CONFIG_ARCH_BCM_53573) += \ 107dtb-$(CONFIG_ARCH_BCM_53573) += \
103 bcm47189-tenda-ac9.dtb 108 bcm47189-tenda-ac9.dtb
@@ -173,6 +178,12 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
173 exynos5440-sd5v1.dtb \ 178 exynos5440-sd5v1.dtb \
174 exynos5440-ssdk5440.dtb \ 179 exynos5440-ssdk5440.dtb \
175 exynos5800-peach-pi.dtb 180 exynos5800-peach-pi.dtb
181dtb-$(CONFIG_ARCH_GEMINI) += \
182 gemini-nas4220b.dtb \
183 gemini-rut1xx.dtb \
184 gemini-sq201.dtb \
185 gemini-wbd111.dtb \
186 gemini-wbd222.dtb
176dtb-$(CONFIG_ARCH_HI3xxx) += \ 187dtb-$(CONFIG_ARCH_HI3xxx) += \
177 hi3620-hi4511.dtb 188 hi3620-hi4511.dtb
178dtb-$(CONFIG_ARCH_HIGHBANK) += \ 189dtb-$(CONFIG_ARCH_HIGHBANK) += \
@@ -352,6 +363,8 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
352 imx6dl-gw551x.dtb \ 363 imx6dl-gw551x.dtb \
353 imx6dl-gw552x.dtb \ 364 imx6dl-gw552x.dtb \
354 imx6dl-gw553x.dtb \ 365 imx6dl-gw553x.dtb \
366 imx6dl-gw5903.dtb \
367 imx6dl-gw5904.dtb \
355 imx6dl-hummingboard.dtb \ 368 imx6dl-hummingboard.dtb \
356 imx6dl-icore.dtb \ 369 imx6dl-icore.dtb \
357 imx6dl-icore-rqs.dtb \ 370 imx6dl-icore-rqs.dtb \
@@ -395,9 +408,13 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
395 imx6q-gw551x.dtb \ 408 imx6q-gw551x.dtb \
396 imx6q-gw552x.dtb \ 409 imx6q-gw552x.dtb \
397 imx6q-gw553x.dtb \ 410 imx6q-gw553x.dtb \
411 imx6q-gw5903.dtb \
412 imx6q-gw5904.dtb \
398 imx6q-h100.dtb \ 413 imx6q-h100.dtb \
399 imx6q-hummingboard.dtb \ 414 imx6q-hummingboard.dtb \
400 imx6q-icore.dtb \ 415 imx6q-icore.dtb \
416 imx6q-icore-ofcap10.dtb \
417 imx6q-icore-ofcap12.dtb \
401 imx6q-icore-rqs.dtb \ 418 imx6q-icore-rqs.dtb \
402 imx6q-marsboard.dtb \ 419 imx6q-marsboard.dtb \
403 imx6q-mccmon6.dtb \ 420 imx6q-mccmon6.dtb \
@@ -425,9 +442,12 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
425 imx6q-utilite-pro.dtb \ 442 imx6q-utilite-pro.dtb \
426 imx6q-wandboard.dtb \ 443 imx6q-wandboard.dtb \
427 imx6q-wandboard-revb1.dtb \ 444 imx6q-wandboard-revb1.dtb \
445 imx6q-zii-rdu2.dtb \
428 imx6qp-nitrogen6_max.dtb \ 446 imx6qp-nitrogen6_max.dtb \
447 imx6qp-nitrogen6_som2.dtb \
429 imx6qp-sabreauto.dtb \ 448 imx6qp-sabreauto.dtb \
430 imx6qp-sabresd.dtb 449 imx6qp-sabresd.dtb \
450 imx6qp-zii-rdu2.dtb
431dtb-$(CONFIG_SOC_IMX6SL) += \ 451dtb-$(CONFIG_SOC_IMX6SL) += \
432 imx6sl-evk.dtb \ 452 imx6sl-evk.dtb \
433 imx6sl-warp.dtb 453 imx6sl-warp.dtb
@@ -458,6 +478,7 @@ dtb-$(CONFIG_SOC_IMX7D) += \
458 imx7d-nitrogen7.dtb \ 478 imx7d-nitrogen7.dtb \
459 imx7d-sbc-imx7.dtb \ 479 imx7d-sbc-imx7.dtb \
460 imx7d-sdb.dtb \ 480 imx7d-sdb.dtb \
481 imx7d-sdb-sht11.dtb \
461 imx7s-colibri-eval-v3.dtb \ 482 imx7s-colibri-eval-v3.dtb \
462 imx7s-warp.dtb 483 imx7s-warp.dtb
463dtb-$(CONFIG_SOC_LS1021A) += \ 484dtb-$(CONFIG_SOC_LS1021A) += \
@@ -488,6 +509,10 @@ dtb-$(CONFIG_ARCH_MXS) += \
488 imx28-cfa10056.dtb \ 509 imx28-cfa10056.dtb \
489 imx28-cfa10057.dtb \ 510 imx28-cfa10057.dtb \
490 imx28-cfa10058.dtb \ 511 imx28-cfa10058.dtb \
512 imx28-duckbill-2-485.dtb \
513 imx28-duckbill-2.dtb \
514 imx28-duckbill-2-enocean.dtb \
515 imx28-duckbill-2-spi.dtb \
491 imx28-duckbill.dtb \ 516 imx28-duckbill.dtb \
492 imx28-eukrea-mbmx283lc.dtb \ 517 imx28-eukrea-mbmx283lc.dtb \
493 imx28-eukrea-mbmx287lc.dtb \ 518 imx28-eukrea-mbmx287lc.dtb \
@@ -673,6 +698,25 @@ dtb-$(CONFIG_ARCH_REALVIEW) += \
673 arm-realview-eb-a9mp-bbrevd.dtb \ 698 arm-realview-eb-a9mp-bbrevd.dtb \
674 arm-realview-pba8.dtb \ 699 arm-realview-pba8.dtb \
675 arm-realview-pbx-a9.dtb 700 arm-realview-pbx-a9.dtb
701dtb-$(CONFIG_ARCH_RENESAS) += \
702 emev2-kzm9d.dtb \
703 r7s72100-genmai.dtb \
704 r7s72100-rskrza1.dtb \
705 r8a73a4-ape6evm.dtb \
706 r8a7740-armadillo800eva.dtb \
707 r8a7743-sk-rzg1m.dtb \
708 r8a7745-sk-rzg1e.dtb \
709 r8a7778-bockw.dtb \
710 r8a7779-marzen.dtb \
711 r8a7790-lager.dtb \
712 r8a7791-koelsch.dtb \
713 r8a7791-porter.dtb \
714 r8a7792-blanche.dtb \
715 r8a7792-wheat.dtb \
716 r8a7793-gose.dtb \
717 r8a7794-alt.dtb \
718 r8a7794-silk.dtb \
719 sh73a0-kzm9g.dtb
676dtb-$(CONFIG_ARCH_ROCKCHIP) += \ 720dtb-$(CONFIG_ARCH_ROCKCHIP) += \
677 rk1108-evb.dtb \ 721 rk1108-evb.dtb \
678 rk3036-evb.dtb \ 722 rk3036-evb.dtb \
@@ -692,9 +736,11 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
692 rk3288-firefly.dtb \ 736 rk3288-firefly.dtb \
693 rk3288-firefly-reload.dtb \ 737 rk3288-firefly-reload.dtb \
694 rk3288-miqi.dtb \ 738 rk3288-miqi.dtb \
739 rk3288-phycore-rdk.dtb \
695 rk3288-popmetal.dtb \ 740 rk3288-popmetal.dtb \
696 rk3288-r89.dtb \ 741 rk3288-r89.dtb \
697 rk3288-rock2-square.dtb \ 742 rk3288-rock2-square.dtb \
743 rk3288-tinker.dtb \
698 rk3288-veyron-brain.dtb \ 744 rk3288-veyron-brain.dtb \
699 rk3288-veyron-jaq.dtb \ 745 rk3288-veyron-jaq.dtb \
700 rk3288-veyron-jerry.dtb \ 746 rk3288-veyron-jerry.dtb \
@@ -713,25 +759,6 @@ dtb-$(CONFIG_ARCH_S5PV210) += \
713 s5pv210-smdkc110.dtb \ 759 s5pv210-smdkc110.dtb \
714 s5pv210-smdkv210.dtb \ 760 s5pv210-smdkv210.dtb \
715 s5pv210-torbreck.dtb 761 s5pv210-torbreck.dtb
716dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
717 emev2-kzm9d.dtb \
718 r7s72100-genmai.dtb \
719 r7s72100-rskrza1.dtb \
720 r8a73a4-ape6evm.dtb \
721 r8a7740-armadillo800eva.dtb \
722 r8a7743-sk-rzg1m.dtb \
723 r8a7745-sk-rzg1e.dtb \
724 r8a7778-bockw.dtb \
725 r8a7779-marzen.dtb \
726 r8a7790-lager.dtb \
727 r8a7791-koelsch.dtb \
728 r8a7791-porter.dtb \
729 r8a7792-blanche.dtb \
730 r8a7792-wheat.dtb \
731 r8a7793-gose.dtb \
732 r8a7794-alt.dtb \
733 r8a7794-silk.dtb \
734 sh73a0-kzm9g.dtb
735dtb-$(CONFIG_ARCH_SOCFPGA) += \ 762dtb-$(CONFIG_ARCH_SOCFPGA) += \
736 socfpga_arria5_socdk.dtb \ 763 socfpga_arria5_socdk.dtb \
737 socfpga_arria10_socdk_nand.dtb \ 764 socfpga_arria10_socdk_nand.dtb \
@@ -764,7 +791,8 @@ dtb-$(CONFIG_ARCH_STM32)+= \
764 stm32f429-disco.dtb \ 791 stm32f429-disco.dtb \
765 stm32f469-disco.dtb \ 792 stm32f469-disco.dtb \
766 stm32429i-eval.dtb \ 793 stm32429i-eval.dtb \
767 stm32746g-eval.dtb 794 stm32746g-eval.dtb \
795 stm32h743i-eval.dtb
768dtb-$(CONFIG_MACH_SUN4I) += \ 796dtb-$(CONFIG_MACH_SUN4I) += \
769 sun4i-a10-a1000.dtb \ 797 sun4i-a10-a1000.dtb \
770 sun4i-a10-ba10-tvbox.dtb \ 798 sun4i-a10-ba10-tvbox.dtb \
@@ -868,6 +896,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
868 sun8i-h3-beelink-x2.dtb \ 896 sun8i-h3-beelink-x2.dtb \
869 sun8i-h3-nanopi-m1.dtb \ 897 sun8i-h3-nanopi-m1.dtb \
870 sun8i-h3-nanopi-neo.dtb \ 898 sun8i-h3-nanopi-neo.dtb \
899 sun8i-h3-nanopi-neo-air.dtb \
871 sun8i-h3-orangepi-2.dtb \ 900 sun8i-h3-orangepi-2.dtb \
872 sun8i-h3-orangepi-lite.dtb \ 901 sun8i-h3-orangepi-lite.dtb \
873 sun8i-h3-orangepi-one.dtb \ 902 sun8i-h3-orangepi-one.dtb \
@@ -970,6 +999,8 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
970 armada-385-db-ap.dtb \ 999 armada-385-db-ap.dtb \
971 armada-385-linksys-caiman.dtb \ 1000 armada-385-linksys-caiman.dtb \
972 armada-385-linksys-cobra.dtb \ 1001 armada-385-linksys-cobra.dtb \
1002 armada-385-linksys-shelby.dtb \
1003 armada-385-synology-ds116.dtb \
973 armada-385-turris-omnia.dtb \ 1004 armada-385-turris-omnia.dtb \
974 armada-388-clearfog.dtb \ 1005 armada-388-clearfog.dtb \
975 armada-388-clearfog-base.dtb \ 1006 armada-388-clearfog-base.dtb \
diff --git a/arch/arm/boot/dts/alpine.dtsi b/arch/arm/boot/dts/alpine.dtsi
index d0eefc3b886c..731df7a8c4e6 100644
--- a/arch/arm/boot/dts/alpine.dtsi
+++ b/arch/arm/boot/dts/alpine.dtsi
@@ -41,28 +41,28 @@
41 compatible = "arm,cortex-a15"; 41 compatible = "arm,cortex-a15";
42 device_type = "cpu"; 42 device_type = "cpu";
43 reg = <0>; 43 reg = <0>;
44 clock-frequency = <0>; /* Filled by loader */ 44 clock-frequency = <1700000000>;
45 }; 45 };
46 46
47 cpu@1 { 47 cpu@1 {
48 compatible = "arm,cortex-a15"; 48 compatible = "arm,cortex-a15";
49 device_type = "cpu"; 49 device_type = "cpu";
50 reg = <1>; 50 reg = <1>;
51 clock-frequency = <0>; /* Filled by loader */ 51 clock-frequency = <1700000000>;
52 }; 52 };
53 53
54 cpu@2 { 54 cpu@2 {
55 compatible = "arm,cortex-a15"; 55 compatible = "arm,cortex-a15";
56 device_type = "cpu"; 56 device_type = "cpu";
57 reg = <2>; 57 reg = <2>;
58 clock-frequency = <0>; /* Filled by loader */ 58 clock-frequency = <1700000000>;
59 }; 59 };
60 60
61 cpu@3 { 61 cpu@3 {
62 compatible = "arm,cortex-a15"; 62 compatible = "arm,cortex-a15";
63 device_type = "cpu"; 63 device_type = "cpu";
64 reg = <3>; 64 reg = <3>;
65 clock-frequency = <0>; /* Filled by loader */ 65 clock-frequency = <1700000000>;
66 }; 66 };
67 }; 67 };
68 68
@@ -81,7 +81,7 @@
81 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 81 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
82 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 82 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
83 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 83 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
84 clock-frequency = <0>; /* Filled by loader */ 84 clock-frequency = <50000000>;
85 }; 85 };
86 86
87 /* Interrupt Controller */ 87 /* Interrupt Controller */
@@ -120,26 +120,26 @@
120 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 120 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
121 }; 121 };
122 122
123 uart0:uart@fd883000 { 123 uart0: uart@fd883000 {
124 compatible = "ns16550a"; 124 compatible = "ns16550a";
125 reg = <0x0 0xfd883000 0x0 0x1000>; 125 reg = <0x0 0xfd883000 0x0 0x1000>;
126 clock-frequency = <0>; /* Filled by loader */ 126 clock-frequency = <375000000>;
127 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 127 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
128 reg-shift = <2>; 128 reg-shift = <2>;
129 reg-io-width = <4>; 129 reg-io-width = <4>;
130 }; 130 };
131 131
132 uart1:uart@0xfd884000 { 132 uart1: uart@fd884000 {
133 compatible = "ns16550a"; 133 compatible = "ns16550a";
134 reg = <0x0 0xfd884000 0x0 0x1000>; 134 reg = <0x0 0xfd884000 0x0 0x1000>;
135 clock-frequency = <0>; /* Filled by loader */ 135 clock-frequency = <375000000>;
136 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 136 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
137 reg-shift = <2>; 137 reg-shift = <2>;
138 reg-io-width = <4>; 138 reg-io-width = <4>;
139 }; 139 };
140 140
141 /* Internal PCIe Controller */ 141 /* Internal PCIe Controller */
142 pcie-internal@0xfbc00000 { 142 pcie@fbc00000 {
143 compatible = "pci-host-ecam-generic"; 143 compatible = "pci-host-ecam-generic";
144 device_type = "pci"; 144 device_type = "pci";
145 #size-cells = <2>; 145 #size-cells = <2>;
diff --git a/arch/arm/boot/dts/am335x-baltos-ir2110.dts b/arch/arm/boot/dts/am335x-baltos-ir2110.dts
index 501c7527121b..75de1e723303 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir2110.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir2110.dts
@@ -14,6 +14,7 @@
14/dts-v1/; 14/dts-v1/;
15 15
16#include "am335x-baltos.dtsi" 16#include "am335x-baltos.dtsi"
17#include "am335x-baltos-leds.dtsi"
17 18
18/ { 19/ {
19 model = "OnRISC Baltos iR 2110"; 20 model = "OnRISC Baltos iR 2110";
diff --git a/arch/arm/boot/dts/am335x-baltos-ir3220.dts b/arch/arm/boot/dts/am335x-baltos-ir3220.dts
index 19f53b8569e1..46df1b22022c 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir3220.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir3220.dts
@@ -14,6 +14,7 @@
14/dts-v1/; 14/dts-v1/;
15 15
16#include "am335x-baltos.dtsi" 16#include "am335x-baltos.dtsi"
17#include "am335x-baltos-leds.dtsi"
17 18
18/ { 19/ {
19 model = "OnRISC Baltos iR 3220"; 20 model = "OnRISC Baltos iR 3220";
diff --git a/arch/arm/boot/dts/am335x-baltos-ir5221.dts b/arch/arm/boot/dts/am335x-baltos-ir5221.dts
index 2b9d7f4db23f..5d56355ba040 100644
--- a/arch/arm/boot/dts/am335x-baltos-ir5221.dts
+++ b/arch/arm/boot/dts/am335x-baltos-ir5221.dts
@@ -14,6 +14,7 @@
14/dts-v1/; 14/dts-v1/;
15 15
16#include "am335x-baltos.dtsi" 16#include "am335x-baltos.dtsi"
17#include "am335x-baltos-leds.dtsi"
17 18
18/ { 19/ {
19 model = "OnRISC Baltos iR 5221"; 20 model = "OnRISC Baltos iR 5221";
diff --git a/arch/arm/boot/dts/am335x-baltos-leds.dtsi b/arch/arm/boot/dts/am335x-baltos-leds.dtsi
new file mode 100644
index 000000000000..3ab1767d5c13
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-baltos-leds.dtsi
@@ -0,0 +1,50 @@
1/*
2 * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * VScom OnRISC
11 * http://www.vscom.de
12 */
13
14/*#include "am33xx.dtsi"*/
15
16/ {
17 leds {
18 pinctrl-names = "default";
19 pinctrl-0 = <&user_leds>;
20
21 compatible = "gpio-leds";
22
23 power {
24 label = "onrisc:red:power";
25 linux,default-trigger = "default-on";
26 gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
27 default-state = "on";
28 };
29 wlan {
30 label = "onrisc:blue:wlan";
31 gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
32 default-state = "off";
33 };
34 app {
35 label = "onrisc:green:app";
36 gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
37 default-state = "off";
38 };
39 };
40};
41
42&am33xx_pinmux {
43 user_leds: pinmux_user_leds {
44 pinctrl-single,pins = <
45 AM33XX_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mii1_col.gpio3_0 PWR LED */
46 AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mii1_txd3.gpio0_16 WLAN LED */
47 AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mii1_txd2.gpio0_17 APP LED */
48 >;
49 };
50};
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index 77273df1a028..935ed17d22e4 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -15,3 +15,14 @@
15 model = "TI AM335x BeagleBone Black"; 15 model = "TI AM335x BeagleBone Black";
16 compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; 16 compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
17}; 17};
18
19&cpu0_opp_table {
20 /*
21 * All PG 2.0 silicon may not support 1GHz but some of the early
22 * BeagleBone Blacks have PG 2.0 silicon which is guaranteed
23 * to support 1GHz OPP so enable it for PG 2.0 on this board.
24 */
25 oppnitro@1000000000 {
26 opp-supported-hw = <0x06 0x0100>;
27 };
28};
diff --git a/arch/arm/boot/dts/am335x-icev2.dts b/arch/arm/boot/dts/am335x-icev2.dts
index a2ad076822db..f2005ecca74f 100644
--- a/arch/arm/boot/dts/am335x-icev2.dts
+++ b/arch/arm/boot/dts/am335x-icev2.dts
@@ -201,6 +201,69 @@
201 AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLUP | MUX_MODE1) /* (L16) gmii1_rxd2.uart3_txd */ 201 AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLUP | MUX_MODE1) /* (L16) gmii1_rxd2.uart3_txd */
202 >; 202 >;
203 }; 203 };
204
205 cpsw_default: cpsw_default {
206 pinctrl-single,pins = <
207 /* Slave 1, RMII mode */
208 AM33XX_IOPAD(0x90c, (PIN_INPUT_PULLUP | MUX_MODE1)) /* mii1_crs.rmii1_crs_dv */
209 AM33XX_IOPAD(0x944, (PIN_INPUT_PULLUP | MUX_MODE0)) /* rmii1_refclk.rmii1_refclk */
210 AM33XX_IOPAD(0x940, (PIN_INPUT_PULLUP | MUX_MODE1)) /* mii1_rxd0.rmii1_rxd0 */
211 AM33XX_IOPAD(0x93c, (PIN_INPUT_PULLUP | MUX_MODE1)) /* mii1_rxd1.rmii1_rxd1 */
212 AM33XX_IOPAD(0x910, (PIN_INPUT_PULLUP | MUX_MODE1)) /* mii1_rxerr.rmii1_rxerr */
213 AM33XX_IOPAD(0x928, (PIN_OUTPUT_PULLDOWN | MUX_MODE1)) /* mii1_txd0.rmii1_txd0 */
214 AM33XX_IOPAD(0x924, (PIN_OUTPUT_PULLDOWN | MUX_MODE1)) /* mii1_txd1.rmii1_txd1 */
215 AM33XX_IOPAD(0x914, (PIN_OUTPUT_PULLDOWN | MUX_MODE1)) /* mii1_txen.rmii1_txen */
216 /* Slave 2, RMII mode */
217 AM33XX_IOPAD(0x870, (PIN_INPUT_PULLUP | MUX_MODE3)) /* gpmc_wait0.rmii2_crs_dv */
218 AM33XX_IOPAD(0x908, (PIN_INPUT_PULLUP | MUX_MODE1)) /* mii1_col.rmii2_refclk */
219 AM33XX_IOPAD(0x86c, (PIN_INPUT_PULLUP | MUX_MODE3)) /* gpmc_a11.rmii2_rxd0 */
220 AM33XX_IOPAD(0x868, (PIN_INPUT_PULLUP | MUX_MODE3)) /* gpmc_a10.rmii2_rxd1 */
221 AM33XX_IOPAD(0x874, (PIN_INPUT_PULLUP | MUX_MODE3)) /* gpmc_wpn.rmii2_rxerr */
222 AM33XX_IOPAD(0x854, (PIN_OUTPUT_PULLDOWN | MUX_MODE3)) /* gpmc_a5.rmii2_txd0 */
223 AM33XX_IOPAD(0x850, (PIN_OUTPUT_PULLDOWN | MUX_MODE3)) /* gpmc_a4.rmii2_txd1 */
224 AM33XX_IOPAD(0x840, (PIN_OUTPUT_PULLDOWN | MUX_MODE3)) /* gpmc_a0.rmii2_txen */
225 >;
226 };
227
228 cpsw_sleep: cpsw_sleep {
229 pinctrl-single,pins = <
230 /* Slave 1 reset value */
231 AM33XX_IOPAD(0x90c, (PIN_INPUT_PULLDOWN | MUX_MODE7))
232 AM33XX_IOPAD(0x944, (PIN_INPUT_PULLDOWN | MUX_MODE7))
233 AM33XX_IOPAD(0x940, (PIN_INPUT_PULLDOWN | MUX_MODE7))
234 AM33XX_IOPAD(0x93c, (PIN_INPUT_PULLDOWN | MUX_MODE7))
235 AM33XX_IOPAD(0x910, (PIN_INPUT_PULLDOWN | MUX_MODE7))
236 AM33XX_IOPAD(0x928, (PIN_INPUT_PULLDOWN | MUX_MODE7))
237 AM33XX_IOPAD(0x924, (PIN_INPUT_PULLDOWN | MUX_MODE7))
238 AM33XX_IOPAD(0x914, (PIN_INPUT_PULLDOWN | MUX_MODE7))
239
240 /* Slave 2 reset value */
241 AM33XX_IOPAD(0x870, (PIN_INPUT_PULLDOWN | MUX_MODE7))
242 AM33XX_IOPAD(0x908, (PIN_INPUT_PULLDOWN | MUX_MODE7))
243 AM33XX_IOPAD(0x86c, (PIN_INPUT_PULLDOWN | MUX_MODE7))
244 AM33XX_IOPAD(0x868, (PIN_INPUT_PULLDOWN | MUX_MODE7))
245 AM33XX_IOPAD(0x874, (PIN_INPUT_PULLDOWN | MUX_MODE7))
246 AM33XX_IOPAD(0x854, (PIN_INPUT_PULLDOWN | MUX_MODE7))
247 AM33XX_IOPAD(0x850, (PIN_INPUT_PULLDOWN | MUX_MODE7))
248 AM33XX_IOPAD(0x840, (PIN_INPUT_PULLDOWN | MUX_MODE7))
249 >;
250 };
251
252 davinci_mdio_default: davinci_mdio_default {
253 pinctrl-single,pins = <
254 /* MDIO */
255 AM33XX_IOPAD(0x948, (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)) /* mdio_data.mdio_data */
256 AM33XX_IOPAD(0x94c, (PIN_OUTPUT_PULLUP | MUX_MODE0)) /* mdio_clk.mdio_clk */
257 >;
258 };
259
260 davinci_mdio_sleep: davinci_mdio_sleep {
261 pinctrl-single,pins = <
262 /* MDIO reset value */
263 AM33XX_IOPAD(0x948, (PIN_INPUT_PULLDOWN | MUX_MODE7))
264 AM33XX_IOPAD(0x94c, (PIN_INPUT_PULLDOWN | MUX_MODE7))
265 >;
266 };
204}; 267};
205 268
206&i2c0 { 269&i2c0 {
@@ -245,6 +308,39 @@
245 spi-max-frequency = <1000000>; 308 spi-max-frequency = <1000000>;
246 spi-cpol; 309 spi-cpol;
247 }; 310 };
311
312 spi_nor: flash@0 {
313 #address-cells = <1>;
314 #size-cells = <1>;
315 compatible = "winbond,w25q64", "jedec,spi-nor";
316 spi-max-frequency = <80000000>;
317 m25p,fast-read;
318 reg = <0>;
319
320 partition@0 {
321 label = "u-boot-spl";
322 reg = <0x0 0x80000>;
323 read-only;
324 };
325
326 partition@1 {
327 label = "u-boot";
328 reg = <0x80000 0x100000>;
329 read-only;
330 };
331
332 partition@2 {
333 label = "u-boot-env";
334 reg = <0x180000 0x20000>;
335 read-only;
336 };
337
338 partition@3 {
339 label = "misc";
340 reg = <0x1A0000 0x660000>;
341 };
342 };
343
248}; 344};
249 345
250&tscadc { 346&tscadc {
@@ -350,3 +446,61 @@
350 pinctrl-0 = <&uart3_pins_default>; 446 pinctrl-0 = <&uart3_pins_default>;
351 status = "okay"; 447 status = "okay";
352}; 448};
449
450&gpio3 {
451 p4 {
452 gpio-hog;
453 gpios = <4 GPIO_ACTIVE_HIGH>;
454 output-high;
455 line-name = "PR1_MII_CTRL";
456 };
457
458 p10 {
459 gpio-hog;
460 gpios = <10 GPIO_ACTIVE_HIGH>;
461 /* ETH1 mux: Low for MII-PRU, high for RMII-CPSW */
462 output-high;
463 line-name = "MUX_MII_CTL1";
464 };
465};
466
467&cpsw_emac0 {
468 phy-handle = <&ethphy0>;
469 phy-mode = "rmii";
470 dual_emac_res_vlan = <1>;
471};
472
473&cpsw_emac1 {
474 phy-handle = <&ethphy1>;
475 phy-mode = "rmii";
476 dual_emac_res_vlan = <2>;
477};
478
479&mac {
480 pinctrl-names = "default", "sleep";
481 pinctrl-0 = <&cpsw_default>;
482 pinctrl-1 = <&cpsw_sleep>;
483 status = "okay";
484 dual_emac;
485};
486
487&phy_sel {
488 rmii-clock-ext;
489};
490
491&davinci_mdio {
492 pinctrl-names = "default", "sleep";
493 pinctrl-0 = <&davinci_mdio_default>;
494 pinctrl-1 = <&davinci_mdio_sleep>;
495 status = "okay";
496 reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
497 reset-delay-us = <2>; /* PHY datasheet states 1uS min */
498
499 ethphy0: ethernet-phy@1 {
500 reg = <1>;
501 };
502
503 ethphy1: ethernet-phy@3 {
504 reg = <3>;
505 };
506};
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index 9e96d60976b7..9e242943dcec 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -46,19 +46,7 @@
46 device_type = "cpu"; 46 device_type = "cpu";
47 reg = <0>; 47 reg = <0>;
48 48
49 /* 49 operating-points-v2 = <&cpu0_opp_table>;
50 * To consider voltage drop between PMIC and SoC,
51 * tolerance value is reduced to 2% from 4% and
52 * voltage value is increased as a precaution.
53 */
54 operating-points = <
55 /* kHz uV */
56 720000 1285000
57 600000 1225000
58 500000 1125000
59 275000 1125000
60 >;
61 voltage-tolerance = <2>; /* 2 percentage */
62 50
63 clocks = <&dpll_mpu_ck>; 51 clocks = <&dpll_mpu_ck>;
64 clock-names = "cpu"; 52 clock-names = "cpu";
@@ -67,6 +55,79 @@
67 }; 55 };
68 }; 56 };
69 57
58 cpu0_opp_table: opp-table {
59 compatible = "operating-points-v2-ti-cpu";
60 syscon = <&scm_conf>;
61
62 /*
63 * The three following nodes are marked with opp-suspend
64 * because the can not be enabled simultaneously on a
65 * single SoC.
66 */
67 opp50@300000000 {
68 opp-hz = /bits/ 64 <300000000>;
69 opp-microvolt = <950000 931000 969000>;
70 opp-supported-hw = <0x06 0x0010>;
71 opp-suspend;
72 };
73
74 opp100@275000000 {
75 opp-hz = /bits/ 64 <275000000>;
76 opp-microvolt = <1100000 1078000 1122000>;
77 opp-supported-hw = <0x01 0x00FF>;
78 opp-suspend;
79 };
80
81 opp100@300000000 {
82 opp-hz = /bits/ 64 <300000000>;
83 opp-microvolt = <1100000 1078000 1122000>;
84 opp-supported-hw = <0x06 0x0020>;
85 opp-suspend;
86 };
87
88 opp100@500000000 {
89 opp-hz = /bits/ 64 <500000000>;
90 opp-microvolt = <1100000 1078000 1122000>;
91 opp-supported-hw = <0x01 0xFFFF>;
92 };
93
94 opp100@600000000 {
95 opp-hz = /bits/ 64 <600000000>;
96 opp-microvolt = <1100000 1078000 1122000>;
97 opp-supported-hw = <0x06 0x0040>;
98 };
99
100 opp120@600000000 {
101 opp-hz = /bits/ 64 <600000000>;
102 opp-microvolt = <1200000 1176000 1224000>;
103 opp-supported-hw = <0x01 0xFFFF>;
104 };
105
106 opp120@720000000 {
107 opp-hz = /bits/ 64 <720000000>;
108 opp-microvolt = <1200000 1176000 1224000>;
109 opp-supported-hw = <0x06 0x0080>;
110 };
111
112 oppturbo@720000000 {
113 opp-hz = /bits/ 64 <720000000>;
114 opp-microvolt = <1260000 1234800 1285200>;
115 opp-supported-hw = <0x01 0xFFFF>;
116 };
117
118 oppturbo@800000000 {
119 opp-hz = /bits/ 64 <800000000>;
120 opp-microvolt = <1260000 1234800 1285200>;
121 opp-supported-hw = <0x06 0x0100>;
122 };
123
124 oppnitro@1000000000 {
125 opp-hz = /bits/ 64 <1000000000>;
126 opp-microvolt = <1325000 1298500 1351500>;
127 opp-supported-hw = <0x04 0x0200>;
128 };
129 };
130
70 pmu { 131 pmu {
71 compatible = "arm,cortex-a8-pmu"; 132 compatible = "arm,cortex-a8-pmu";
72 interrupts = <3>; 133 interrupts = <3>;
diff --git a/arch/arm/boot/dts/am3517.dtsi b/arch/arm/boot/dts/am3517.dtsi
index 9fe545dbfa89..00da3f2c4072 100644
--- a/arch/arm/boot/dts/am3517.dtsi
+++ b/arch/arm/boot/dts/am3517.dtsi
@@ -13,6 +13,7 @@
13/ { 13/ {
14 aliases { 14 aliases {
15 serial3 = &uart4; 15 serial3 = &uart4;
16 can = &hecc;
16 }; 17 };
17 18
18 ocp@68000000 { 19 ocp@68000000 {
@@ -72,6 +73,17 @@
72 pinctrl-single,register-width = <16>; 73 pinctrl-single,register-width = <16>;
73 pinctrl-single,function-mask = <0xff1f>; 74 pinctrl-single,function-mask = <0xff1f>;
74 }; 75 };
76
77 hecc: can@5c050000 {
78 compatible = "ti,am3517-hecc";
79 status = "disabled";
80 reg = <0x5c050000 0x80>,
81 <0x5c053000 0x180>,
82 <0x5c052000 0x200>;
83 reg-names = "hecc", "hecc-ram", "mbx";
84 interrupts = <24>;
85 clocks = <&hecc_ck>;
86 };
75 }; 87 };
76}; 88};
77 89
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index 97fcaf415de1..176e09e9a45e 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -50,15 +50,14 @@
50 clock-names = "cpu"; 50 clock-names = "cpu";
51 51
52 operating-points-v2 = <&cpu0_opp_table>; 52 operating-points-v2 = <&cpu0_opp_table>;
53 ti,syscon-efuse = <&scm_conf 0x610 0x3f 0>;
54 ti,syscon-rev = <&scm_conf 0x600>;
55 53
56 clock-latency = <300000>; /* From omap-cpufreq driver */ 54 clock-latency = <300000>; /* From omap-cpufreq driver */
57 }; 55 };
58 }; 56 };
59 57
60 cpu0_opp_table: opp_table0 { 58 cpu0_opp_table: opp-table {
61 compatible = "operating-points-v2"; 59 compatible = "operating-points-v2-ti-cpu";
60 syscon = <&scm_conf>;
62 61
63 opp50@300000000 { 62 opp50@300000000 {
64 opp-hz = /bits/ 64 <300000000>; 63 opp-hz = /bits/ 64 <300000000>;
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index a4f31739057f..397e98b7e246 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -501,6 +501,21 @@
501 AM4372_IOPAD(0x884, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */ 501 AM4372_IOPAD(0x884, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */
502 >; 502 >;
503 }; 503 };
504
505 uart0_pins_default: uart0_pins_default {
506 pinctrl-single,pins = <
507 AM4372_IOPAD(0x968, PIN_INPUT | MUX_MODE0) /* uart0_ctsn.uart0_ctsn */
508 AM4372_IOPAD(0x96C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_rtsn.uart0_rtsn */
509 AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
510 AM4372_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
511 >;
512 };
513};
514
515&uart0 {
516 status = "okay";
517 pinctrl-names = "default";
518 pinctrl-0 = <&uart0_pins_default>;
504}; 519};
505 520
506&i2c0 { 521&i2c0 {
diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi b/arch/arm/boot/dts/am57xx-idk-common.dtsi
index e5ac1d81d15c..c536b2f5389f 100644
--- a/arch/arm/boot/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi
@@ -101,6 +101,22 @@
101 }; 101 };
102}; 102};
103 103
104&dra7_pmx_core {
105 dcan1_pins_default: dcan1_pins_default {
106 pinctrl-single,pins = <
107 DRA7XX_CORE_IOPAD(0x37d0, PIN_OUTPUT_PULLUP | MUX_MODE0) /* dcan1_tx */
108 DRA7XX_CORE_IOPAD(0x37d4, PIN_INPUT_PULLUP | MUX_MODE0) /* dcan1_rx */
109 >;
110 };
111
112 dcan1_pins_sleep: dcan1_pins_sleep {
113 pinctrl-single,pins = <
114 DRA7XX_CORE_IOPAD(0x37d0, MUX_MODE15 | PULL_UP) /* dcan1_tx.off */
115 DRA7XX_CORE_IOPAD(0x37d4, MUX_MODE15 | PULL_UP) /* dcan1_rx.off */
116 >;
117 };
118};
119
104&i2c1 { 120&i2c1 {
105 status = "okay"; 121 status = "okay";
106 clock-frequency = <400000>; 122 clock-frequency = <400000>;
@@ -391,6 +407,14 @@
391 max-frequency = <96000000>; 407 max-frequency = <96000000>;
392}; 408};
393 409
410&dcan1 {
411 status = "okay";
412 pinctrl-names = "default", "sleep", "active";
413 pinctrl-0 = <&dcan1_pins_sleep>;
414 pinctrl-1 = <&dcan1_pins_sleep>;
415 pinctrl-2 = <&dcan1_pins_default>;
416};
417
394&qspi { 418&qspi {
395 status = "okay"; 419 status = "okay";
396 420
diff --git a/arch/arm/boot/dts/armada-385-linksys-shelby.dts b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
new file mode 100644
index 000000000000..c7a8ddd7f9a5
--- /dev/null
+++ b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
@@ -0,0 +1,114 @@
1/*
2 * Device Tree file for the Linksys WRT1900ACS (Shelby)
3 *
4 * Copyright (C) 2015 Imre Kaloz <kaloz@openwrt.org>
5 *
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/dts-v1/;
41#include "armada-385-linksys.dtsi"
42
43/ {
44 model = "Linksys WRT1900ACS";
45 compatible = "linksys,shelby", "linksys,armada385", "marvell,armada385",
46 "marvell,armada380";
47
48 soc {
49 internal-regs{
50 i2c@11000 {
51
52 pca9635@68 {
53 #address-cells = <1>;
54 #size-cells = <0>;
55
56 wan_amber@0 {
57 label = "shelby:amber:wan";
58 reg = <0x0>;
59 };
60
61 wan_white@1 {
62 label = "shelby:white:wan";
63 reg = <0x1>;
64 };
65
66 wlan_2g@2 {
67 label = "shelby:white:wlan_2g";
68 reg = <0x2>;
69 };
70
71 wlan_5g@3 {
72 label = "shelby:white:wlan_5g";
73 reg = <0x3>;
74 };
75
76 usb2@5 {
77 label = "shelby:white:usb2";
78 reg = <0x5>;
79 };
80
81 usb3_1@6 {
82 label = "shelby:white:usb3_1";
83 reg = <0x6>;
84 };
85
86 usb3_2@7 {
87 label = "shelby:white:usb3_2";
88 reg = <0x7>;
89 };
90
91 wps_white@8 {
92 label = "shelby:white:wps";
93 reg = <0x8>;
94 };
95
96 wps_amber@9 {
97 label = "shelby:amber:wps";
98 reg = <0x9>;
99 };
100 };
101 };
102 };
103 };
104
105 gpio-leds {
106 power {
107 label = "shelby:white:power";
108 };
109
110 sata {
111 label = "shelby:white:sata";
112 };
113 };
114};
diff --git a/arch/arm/boot/dts/armada-385-linksys.dtsi b/arch/arm/boot/dts/armada-385-linksys.dtsi
index df47bf1ea5eb..2306c45685b1 100644
--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
+++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
@@ -59,7 +59,8 @@
59 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 59 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
60 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 60 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
61 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 61 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
62 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; 62 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
63 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
63 64
64 internal-regs { 65 internal-regs {
65 i2c@11000 { 66 i2c@11000 {
@@ -88,6 +89,9 @@
88 ethernet@70000 { 89 ethernet@70000 {
89 status = "okay"; 90 status = "okay";
90 phy-mode = "rgmii-id"; 91 phy-mode = "rgmii-id";
92 buffer-manager = <&bm>;
93 bm,pool-long = <2>;
94 bm,pool-short = <3>;
91 fixed-link { 95 fixed-link {
92 speed = <1000>; 96 speed = <1000>;
93 full-duplex; 97 full-duplex;
@@ -97,6 +101,9 @@
97 ethernet@34000 { 101 ethernet@34000 {
98 status = "okay"; 102 status = "okay";
99 phy-mode = "sgmii"; 103 phy-mode = "sgmii";
104 buffer-manager = <&bm>;
105 bm,pool-long = <0>;
106 bm,pool-short = <1>;
100 fixed-link { 107 fixed-link {
101 speed = <1000>; 108 speed = <1000>;
102 full-duplex; 109 full-duplex;
@@ -159,6 +166,10 @@
159 status = "okay"; 166 status = "okay";
160 }; 167 };
161 168
169 bm@c8000 {
170 status = "okay";
171 };
172
162 /* USB part of the eSATA/USB 2.0 port */ 173 /* USB part of the eSATA/USB 2.0 port */
163 usb@58000 { 174 usb@58000 {
164 status = "okay"; 175 status = "okay";
@@ -241,6 +252,10 @@
241 }; 252 };
242 }; 253 };
243 254
255 bm-bppi {
256 status = "okay";
257 };
258
244 pcie-controller { 259 pcie-controller {
245 status = "okay"; 260 status = "okay";
246 261
@@ -305,6 +320,7 @@
305 sata { 320 sata {
306 gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; 321 gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
307 default-state = "off"; 322 default-state = "off";
323 linux,default-trigger = "disk-activity";
308 }; 324 };
309 }; 325 };
310 326
diff --git a/arch/arm/boot/dts/armada-385-synology-ds116.dts b/arch/arm/boot/dts/armada-385-synology-ds116.dts
new file mode 100644
index 000000000000..31510eb56f10
--- /dev/null
+++ b/arch/arm/boot/dts/armada-385-synology-ds116.dts
@@ -0,0 +1,321 @@
1/*
2 * Device Tree file for Synology DS116 NAS
3 *
4 * Copyright (C) 2017 Willy Tarreau <w@1wt.eu>
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 licensed under the terms of the GNU General Public
12 * License version 2. This program is licensed "as is" without
13 * any warranty of any kind, whether express or implied.
14 *
15 * Or, alternatively,
16 *
17 * b) Permission is hereby granted, free of charge, to any person
18 * obtaining a copy of this software and associated documentation
19 * files (the "Software"), to deal in the Software without
20 * restriction, including without limitation the rights to use,
21 * copy, modify, merge, publish, distribute, sublicense, and/or
22 * sell copies of the Software, and to permit persons to whom the
23 * Software is furnished to do so, subject to the following
24 * conditions:
25 *
26 * The above copyright notice and this permission notice shall be
27 * included in all copies or substantial portions of the Software.
28 *
29 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
30 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
31 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
32 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
33 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
34 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
35 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
36 * OTHER DEALINGS IN THE SOFTWARE.
37 */
38
39/dts-v1/;
40#include "armada-385.dtsi"
41#include <dt-bindings/gpio/gpio.h>
42
43/ {
44 model = "Synology DS116";
45 compatible = "marvell,a385-gp", "marvell,armada385", "marvell,armada380";
46
47 chosen {
48 stdout-path = "serial0:115200n8";
49 };
50
51 memory {
52 device_type = "memory";
53 reg = <0x00000000 0x40000000>; /* 1 GB */
54 };
55
56 soc {
57 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
58 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
59 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
60 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
61 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
62
63 internal-regs {
64 i2c@11000 {
65 pinctrl-names = "default";
66 pinctrl-0 = <&i2c0_pins>;
67 status = "okay";
68 clock-frequency = <100000>;
69
70 eeprom@57 {
71 compatible = "atmel,24c64";
72 reg = <0x57>;
73 };
74 };
75
76 serial@12000 {
77 pinctrl-names = "default";
78 pinctrl-0 = <&uart0_pins>;
79 status = "okay";
80 };
81
82 serial@12100 {
83 /* A PIC16F1829 is connected to uart1 at 9600 bps,
84 * and takes single-character orders :
85 * "1" : power off // already handled by the poweroff node
86 * "2" : short beep
87 * "3" : long beep
88 * "4" : turn the power LED ON
89 * "5" : flash the power LED
90 * "6" : turn the power LED OFF
91 * "7" : turn the status LED OFF
92 * "8" : turn the status LED ON
93 * "9" : flash the status LED
94 * "A" : flash the motherboard LED (D8)
95 * "B" : turn the motherboard LED OFF
96 * "C" : hard reset
97 */
98 pinctrl-names = "default";
99 pinctrl-0 = <&uart1_pins>;
100 status = "okay";
101 };
102
103 poweroff@12100 {
104 compatible = "synology,power-off";
105 reg = <0x12100 0x100>;
106 clocks = <&coreclk 0>;
107 };
108
109 ethernet@70000 {
110 pinctrl-names = "default";
111 phy = <&phy0>;
112 phy-mode = "sgmii";
113 buffer-manager = <&bm>;
114 bm,pool-long = <0>;
115 status = "okay";
116 };
117
118
119 mdio@72004 {
120 pinctrl-names = "default";
121 pinctrl-0 = <&mdio_pins>;
122
123 phy0: ethernet-phy@1 {
124 reg = <1>;
125 };
126 };
127
128 sata@a8000 {
129 pinctrl-names = "default";
130 pinctrl-0 = <&sata0_pins>;
131 status = "okay";
132 #address-cells = <1>;
133 #size-cells = <0>;
134
135 sata0: sata-port@0 {
136 reg = <0>;
137 target-supply = <&reg_5v_sata0>;
138 };
139 };
140
141 bm@c8000 {
142 status = "okay";
143 };
144
145 usb3@f0000 {
146 usb-phy = <&usb3_0_phy>;
147 status = "okay";
148 };
149
150 usb3@f8000 {
151 usb-phy = <&usb3_1_phy>;
152 status = "okay";
153 };
154 };
155
156 bm-bppi {
157 status = "okay";
158 };
159
160 gpio-fan {
161 compatible = "gpio-fan";
162 gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>,
163 <&gpio1 17 GPIO_ACTIVE_HIGH>,
164 <&gpio1 16 GPIO_ACTIVE_HIGH>;
165 gpio-fan,speed-map = < 0 0
166 1500 1
167 2500 2
168 3000 3
169 3400 4
170 3700 5
171 3900 6
172 4000 7>;
173 cooling-cells = <2>;
174 };
175
176 gpio-leds {
177 compatible = "gpio-leds";
178
179 /* The green part is on gpio0.20 which is also used by
180 * sata0, and accesses to SATA disk 0 make it blink so it
181 * doesn't need to be declared here.
182 */
183 orange {
184 gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
185 label = "ds116:orange:disk";
186 default-state = "off";
187 };
188 };
189 };
190
191 usb3_0_phy: usb3_0_phy {
192 compatible = "usb-nop-xceiv";
193 vcc-supply = <&reg_usb3_0_vbus>;
194 };
195
196 usb3_1_phy: usb3_1_phy {
197 compatible = "usb-nop-xceiv";
198 vcc-supply = <&reg_usb3_1_vbus>;
199 };
200
201 reg_usb3_0_vbus: usb3-vbus0 {
202 compatible = "regulator-fixed";
203 regulator-name = "usb3-vbus0";
204 pinctrl-names = "default";
205 pinctrl-0 = <&xhci0_vbus_pins>;
206 regulator-min-microvolt = <5000000>;
207 regulator-max-microvolt = <5000000>;
208 enable-active-high;
209 gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
210 };
211
212 reg_usb3_1_vbus: usb3-vbus1 {
213 compatible = "regulator-fixed";
214 regulator-name = "usb3-vbus1";
215 pinctrl-names = "default";
216 pinctrl-0 = <&xhci1_vbus_pins>;
217 regulator-min-microvolt = <5000000>;
218 regulator-max-microvolt = <5000000>;
219 enable-active-high;
220 gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;
221 };
222
223 reg_sata0: pwr-sata0 {
224 compatible = "regulator-fixed";
225 regulator-name = "pwr_en_sata0";
226 regulator-min-microvolt = <12000000>;
227 regulator-max-microvolt = <12000000>;
228 enable-active-high;
229 regulator-boot-on;
230 gpio = <&gpio0 15 GPIO_ACTIVE_HIGH>;
231 };
232
233 reg_5v_sata0: v5-sata0 {
234 compatible = "regulator-fixed";
235 regulator-name = "v5.0-sata0";
236 regulator-min-microvolt = <5000000>;
237 regulator-max-microvolt = <5000000>;
238 vin-supply = <&reg_sata0>;
239 };
240
241 reg_12v_sata0: v12-sata0 {
242 compatible = "regulator-fixed";
243 regulator-name = "v12.0-sata0";
244 regulator-min-microvolt = <12000000>;
245 regulator-max-microvolt = <12000000>;
246 vin-supply = <&reg_sata0>;
247 };
248};
249
250&spi0 {
251 pinctrl-names = "default";
252 pinctrl-0 = <&spi0_pins>;
253 status = "okay";
254
255 spi-flash@0 {
256 #address-cells = <1>;
257 #size-cells = <1>;
258 compatible = "macronix,mx25l6405d", "jedec,spi-nor";
259 reg = <0>; /* Chip select 0 */
260 spi-max-frequency = <50000000>;
261 m25p,fast-read;
262
263 /* Note: there is a redboot partition table despite u-boot
264 * being used. The names presented here are the same as those
265 * found in the FIS directory. There is also a small device
266 * tree in the last 64kB of the RedBoot partition which is not
267 * enumerated. The MAC address and the serial number are listed
268 * in the "vendor" partition.
269 */
270 partition@00000000 {
271 label = "RedBoot";
272 reg = <0x00000000 0x000f0000>;
273 read-only;
274 };
275
276 partition@000c0000 {
277 label = "zImage";
278 reg = <0x000f0000 0x002d0000>;
279 };
280
281 partition@00390000 {
282 label = "rd.gz";
283 reg = <0x003c0000 0x00410000>;
284 };
285
286 partition@007d0000 {
287 label = "vendor";
288 reg = <0x007d0000 0x00010000>;
289 read-only;
290 };
291
292 partition@007e0000 {
293 label = "RedBoot config";
294 reg = <0x007e0000 0x00010000>;
295 read-only;
296 };
297
298 partition@007f0000 {
299 label = "FIS directory";
300 reg = <0x007f0000 0x00010000>;
301 read-only;
302 };
303 };
304};
305
306&pinctrl {
307 /* use only one pin for UART1, as mpp20 is used by sata0 */
308 uart1_pins: uart-pins-1 {
309 marvell,pins = "mpp19";
310 marvell,function = "ua1";
311 };
312
313 xhci0_vbus_pins: xhci0_vbus_pins {
314 marvell,pins = "mpp58";
315 marvell,function = "gpio";
316 };
317 xhci1_vbus_pins: xhci1_vbus_pins {
318 marvell,pins = "mpp59";
319 marvell,function = "gpio";
320 };
321};
diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
index 8e63be33472e..7fcc4c4885cf 100644
--- a/arch/arm/boot/dts/armada-385.dtsi
+++ b/arch/arm/boot/dts/armada-385.dtsi
@@ -70,13 +70,7 @@
70 }; 70 };
71 71
72 soc { 72 soc {
73 internal-regs { 73 pciec: pcie-controller {
74 pinctrl@18000 {
75 compatible = "marvell,mv88f6820-pinctrl";
76 };
77 };
78
79 pcie-controller {
80 compatible = "marvell,armada-370-pcie"; 74 compatible = "marvell,armada-370-pcie";
81 status = "disabled"; 75 status = "disabled";
82 device_type = "pci"; 76 device_type = "pci";
@@ -106,7 +100,7 @@
106 * configured in x4 by the bootloader, then 100 * configured in x4 by the bootloader, then
107 * pcie@4,0 is not available. 101 * pcie@4,0 is not available.
108 */ 102 */
109 pcie@1,0 { 103 pcie1: pcie@1,0 {
110 device_type = "pci"; 104 device_type = "pci";
111 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; 105 assigned-addresses = <0x82000800 0 0x80000 0 0x2000>;
112 reg = <0x0800 0 0 0 0>; 106 reg = <0x0800 0 0 0 0>;
@@ -124,7 +118,7 @@
124 }; 118 };
125 119
126 /* x1 port */ 120 /* x1 port */
127 pcie@2,0 { 121 pcie2: pcie@2,0 {
128 device_type = "pci"; 122 device_type = "pci";
129 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 123 assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
130 reg = <0x1000 0 0 0 0>; 124 reg = <0x1000 0 0 0 0>;
@@ -142,7 +136,7 @@
142 }; 136 };
143 137
144 /* x1 port */ 138 /* x1 port */
145 pcie@3,0 { 139 pcie3: pcie@3,0 {
146 device_type = "pci"; 140 device_type = "pci";
147 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; 141 assigned-addresses = <0x82000800 0 0x44000 0 0x2000>;
148 reg = <0x1800 0 0 0 0>; 142 reg = <0x1800 0 0 0 0>;
@@ -163,7 +157,7 @@
163 * x1 port only available when pcie@1,0 is 157 * x1 port only available when pcie@1,0 is
164 * configured as a x1 port 158 * configured as a x1 port
165 */ 159 */
166 pcie@4,0 { 160 pcie4: pcie@4,0 {
167 device_type = "pci"; 161 device_type = "pci";
168 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; 162 assigned-addresses = <0x82000800 0 0x48000 0 0x2000>;
169 reg = <0x2000 0 0 0 0>; 163 reg = <0x2000 0 0 0 0>;
@@ -182,3 +176,7 @@
182 }; 176 };
183 }; 177 };
184}; 178};
179
180&pinctrl {
181 compatible = "marvell,mv88f6820-pinctrl";
182};
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dts b/arch/arm/boot/dts/armada-388-clearfog.dts
index 2745b7416313..0d5f1f062275 100644
--- a/arch/arm/boot/dts/armada-388-clearfog.dts
+++ b/arch/arm/boot/dts/armada-388-clearfog.dts
@@ -186,25 +186,6 @@
186 }; 186 };
187}; 187};
188 188
189&pinctrl {
190 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins {
191 marvell,pins = "mpp46";
192 marvell,function = "ref";
193 };
194 clearfog_dsa0_pins: clearfog-dsa0-pins {
195 marvell,pins = "mpp23", "mpp41";
196 marvell,function = "gpio";
197 };
198 clearfog_spi1_cs_pins: spi1-cs-pins {
199 marvell,pins = "mpp55";
200 marvell,function = "spi1";
201 };
202 rear_button_pins: rear-button-pins {
203 marvell,pins = "mpp34";
204 marvell,function = "gpio";
205 };
206};
207
208&mdio { 189&mdio {
209 status = "okay"; 190 status = "okay";
210 191
@@ -268,6 +249,25 @@
268 }; 249 };
269}; 250};
270 251
252&pinctrl {
253 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins {
254 marvell,pins = "mpp46";
255 marvell,function = "ref";
256 };
257 clearfog_dsa0_pins: clearfog-dsa0-pins {
258 marvell,pins = "mpp23", "mpp41";
259 marvell,function = "gpio";
260 };
261 clearfog_spi1_cs_pins: spi1-cs-pins {
262 marvell,pins = "mpp55";
263 marvell,function = "spi1";
264 };
265 rear_button_pins: rear-button-pins {
266 marvell,pins = "mpp34";
267 marvell,function = "gpio";
268 };
269};
270
271&spi1 { 271&spi1 {
272 /* 272 /*
273 * Add SPI CS pins for clearfog: 273 * Add SPI CS pins for clearfog:
diff --git a/arch/arm/boot/dts/armada-388.dtsi b/arch/arm/boot/dts/armada-388.dtsi
index 564fa5937e25..1c0d151b2aaa 100644
--- a/arch/arm/boot/dts/armada-388.dtsi
+++ b/arch/arm/boot/dts/armada-388.dtsi
@@ -50,13 +50,8 @@
50 model = "Marvell Armada 388 family SoC"; 50 model = "Marvell Armada 388 family SoC";
51 compatible = "marvell,armada388", "marvell,armada385", 51 compatible = "marvell,armada388", "marvell,armada385",
52 "marvell,armada380"; 52 "marvell,armada380";
53
54 soc { 53 soc {
55 internal-regs { 54 internal-regs {
56 pinctrl@18000 {
57 compatible = "marvell,mv88f6828-pinctrl";
58 };
59
60 sata@e0000 { 55 sata@e0000 {
61 compatible = "marvell,armada-380-ahci"; 56 compatible = "marvell,armada-380-ahci";
62 reg = <0xe0000 0x2000>; 57 reg = <0xe0000 0x2000>;
@@ -68,3 +63,7 @@
68 }; 63 };
69 }; 64 };
70}; 65};
66
67&pinctrl {
68 compatible = "marvell,mv88f6828-pinctrl";
69};
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 79b767507eab..8b165c31de1e 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -82,7 +82,7 @@
82 reg = <MBUS_ID(0x01, 0x1d) 0 0x200000>; 82 reg = <MBUS_ID(0x01, 0x1d) 0 0x200000>;
83 }; 83 };
84 84
85 devbus-bootcs { 85 devbus_bootcs: devbus-bootcs {
86 compatible = "marvell,mvebu-devbus"; 86 compatible = "marvell,mvebu-devbus";
87 reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>; 87 reg = <MBUS_ID(0xf0, 0x01) 0x10400 0x8>;
88 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>; 88 ranges = <0 MBUS_ID(0x01, 0x2f) 0 0xffffffff>;
@@ -92,7 +92,7 @@
92 status = "disabled"; 92 status = "disabled";
93 }; 93 };
94 94
95 devbus-cs0 { 95 devbus_cs0: devbus-cs0 {
96 compatible = "marvell,mvebu-devbus"; 96 compatible = "marvell,mvebu-devbus";
97 reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>; 97 reg = <MBUS_ID(0xf0, 0x01) 0x10408 0x8>;
98 ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>; 98 ranges = <0 MBUS_ID(0x01, 0x3e) 0 0xffffffff>;
@@ -102,7 +102,7 @@
102 status = "disabled"; 102 status = "disabled";
103 }; 103 };
104 104
105 devbus-cs1 { 105 devbus_cs1: devbus-cs1 {
106 compatible = "marvell,mvebu-devbus"; 106 compatible = "marvell,mvebu-devbus";
107 reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>; 107 reg = <MBUS_ID(0xf0, 0x01) 0x10410 0x8>;
108 ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>; 108 ranges = <0 MBUS_ID(0x01, 0x3d) 0 0xffffffff>;
@@ -112,7 +112,7 @@
112 status = "disabled"; 112 status = "disabled";
113 }; 113 };
114 114
115 devbus-cs2 { 115 devbus_cs2: devbus-cs2 {
116 compatible = "marvell,mvebu-devbus"; 116 compatible = "marvell,mvebu-devbus";
117 reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>; 117 reg = <MBUS_ID(0xf0, 0x01) 0x10418 0x8>;
118 ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>; 118 ranges = <0 MBUS_ID(0x01, 0x3b) 0 0xffffffff>;
@@ -122,7 +122,7 @@
122 status = "disabled"; 122 status = "disabled";
123 }; 123 };
124 124
125 devbus-cs3 { 125 devbus_cs3: devbus-cs3 {
126 compatible = "marvell,mvebu-devbus"; 126 compatible = "marvell,mvebu-devbus";
127 reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>; 127 reg = <MBUS_ID(0xf0, 0x01) 0x10420 0x8>;
128 ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>; 128 ranges = <0 MBUS_ID(0x01, 0x37) 0 0xffffffff>;
@@ -339,7 +339,7 @@
339 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; 339 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
340 }; 340 };
341 341
342 system-controller@18200 { 342 systemc: system-controller@18200 {
343 compatible = "marvell,armada-380-system-controller", 343 compatible = "marvell,armada-380-system-controller",
344 "marvell,armada-370-xp-system-controller"; 344 "marvell,armada-370-xp-system-controller";
345 reg = <0x18200 0x100>; 345 reg = <0x18200 0x100>;
@@ -360,7 +360,8 @@
360 360
361 mbusc: mbus-controller@20000 { 361 mbusc: mbus-controller@20000 {
362 compatible = "marvell,mbus-controller"; 362 compatible = "marvell,mbus-controller";
363 reg = <0x20000 0x100>, <0x20180 0x20>; 363 reg = <0x20000 0x100>, <0x20180 0x20>,
364 <0x20250 0x8>;
364 }; 365 };
365 366
366 mpic: interrupt-controller@20a00 { 367 mpic: interrupt-controller@20a00 {
@@ -373,7 +374,7 @@
373 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 374 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
374 }; 375 };
375 376
376 timer@20300 { 377 timer: timer@20300 {
377 compatible = "marvell,armada-380-timer", 378 compatible = "marvell,armada-380-timer",
378 "marvell,armada-xp-timer"; 379 "marvell,armada-xp-timer";
379 reg = <0x20300 0x30>, <0x21040 0x30>; 380 reg = <0x20300 0x30>, <0x21040 0x30>;
@@ -387,14 +388,14 @@
387 clock-names = "nbclk", "fixed"; 388 clock-names = "nbclk", "fixed";
388 }; 389 };
389 390
390 watchdog@20300 { 391 watchdog: watchdog@20300 {
391 compatible = "marvell,armada-380-wdt"; 392 compatible = "marvell,armada-380-wdt";
392 reg = <0x20300 0x34>, <0x20704 0x4>, <0x18260 0x4>; 393 reg = <0x20300 0x34>, <0x20704 0x4>, <0x18260 0x4>;
393 clocks = <&coreclk 2>, <&refclk>; 394 clocks = <&coreclk 2>, <&refclk>;
394 clock-names = "nbclk", "fixed"; 395 clock-names = "nbclk", "fixed";
395 }; 396 };
396 397
397 cpurst@20800 { 398 cpurst: cpurst@20800 {
398 compatible = "marvell,armada-370-cpu-reset"; 399 compatible = "marvell,armada-370-cpu-reset";
399 reg = <0x20800 0x10>; 400 reg = <0x20800 0x10>;
400 }; 401 };
@@ -404,12 +405,12 @@
404 reg = <0x20d20 0x6c>; 405 reg = <0x20d20 0x6c>;
405 }; 406 };
406 407
407 coherency-fabric@21010 { 408 coherencyfab: coherency-fabric@21010 {
408 compatible = "marvell,armada-380-coherency-fabric"; 409 compatible = "marvell,armada-380-coherency-fabric";
409 reg = <0x21010 0x1c>; 410 reg = <0x21010 0x1c>;
410 }; 411 };
411 412
412 pmsu@22000 { 413 pmsu: pmsu@22000 {
413 compatible = "marvell,armada-380-pmsu"; 414 compatible = "marvell,armada-380-pmsu";
414 reg = <0x22000 0x1000>; 415 reg = <0x22000 0x1000>;
415 }; 416 };
@@ -451,7 +452,7 @@
451 status = "disabled"; 452 status = "disabled";
452 }; 453 };
453 454
454 usb@58000 { 455 usb0: usb@58000 {
455 compatible = "marvell,orion-ehci"; 456 compatible = "marvell,orion-ehci";
456 reg = <0x58000 0x500>; 457 reg = <0x58000 0x500>;
457 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; 458 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
@@ -459,7 +460,7 @@
459 status = "disabled"; 460 status = "disabled";
460 }; 461 };
461 462
462 xor@60800 { 463 xor0: xor@60800 {
463 compatible = "marvell,armada-380-xor", "marvell,orion-xor"; 464 compatible = "marvell,armada-380-xor", "marvell,orion-xor";
464 reg = <0x60800 0x100 465 reg = <0x60800 0x100
465 0x60a00 0x100>; 466 0x60a00 0x100>;
@@ -479,7 +480,7 @@
479 }; 480 };
480 }; 481 };
481 482
482 xor@60900 { 483 xor1: xor@60900 {
483 compatible = "marvell,armada-380-xor", "marvell,orion-xor"; 484 compatible = "marvell,armada-380-xor", "marvell,orion-xor";
484 reg = <0x60900 0x100 485 reg = <0x60900 0x100
485 0x60b00 0x100>; 486 0x60b00 0x100>;
@@ -507,7 +508,7 @@
507 clocks = <&gateclk 4>; 508 clocks = <&gateclk 4>;
508 }; 509 };
509 510
510 crypto@90000 { 511 cesa: crypto@90000 {
511 compatible = "marvell,armada-38x-crypto"; 512 compatible = "marvell,armada-38x-crypto";
512 reg = <0x90000 0x10000>; 513 reg = <0x90000 0x10000>;
513 reg-names = "regs"; 514 reg-names = "regs";
@@ -522,14 +523,14 @@
522 marvell,crypto-sram-size = <0x800>; 523 marvell,crypto-sram-size = <0x800>;
523 }; 524 };
524 525
525 rtc@a3800 { 526 rtc: rtc@a3800 {
526 compatible = "marvell,armada-380-rtc"; 527 compatible = "marvell,armada-380-rtc";
527 reg = <0xa3800 0x20>, <0x184a0 0x0c>; 528 reg = <0xa3800 0x20>, <0x184a0 0x0c>;
528 reg-names = "rtc", "rtc-soc"; 529 reg-names = "rtc", "rtc-soc";
529 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 530 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
530 }; 531 };
531 532
532 sata@a8000 { 533 ahci0: sata@a8000 {
533 compatible = "marvell,armada-380-ahci"; 534 compatible = "marvell,armada-380-ahci";
534 reg = <0xa8000 0x2000>; 535 reg = <0xa8000 0x2000>;
535 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 536 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
@@ -545,7 +546,7 @@
545 status = "disabled"; 546 status = "disabled";
546 }; 547 };
547 548
548 sata@e0000 { 549 ahci1: sata@e0000 {
549 compatible = "marvell,armada-380-ahci"; 550 compatible = "marvell,armada-380-ahci";
550 reg = <0xe0000 0x2000>; 551 reg = <0xe0000 0x2000>;
551 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 552 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
@@ -561,13 +562,13 @@
561 clock-output-names = "nand"; 562 clock-output-names = "nand";
562 }; 563 };
563 564
564 thermal@e8078 { 565 thermal: thermal@e8078 {
565 compatible = "marvell,armada380-thermal"; 566 compatible = "marvell,armada380-thermal";
566 reg = <0xe4078 0x4>, <0xe4074 0x4>; 567 reg = <0xe4078 0x4>, <0xe4074 0x4>;
567 status = "okay"; 568 status = "okay";
568 }; 569 };
569 570
570 flash@d0000 { 571 nand: flash@d0000 {
571 compatible = "marvell,armada370-nand"; 572 compatible = "marvell,armada370-nand";
572 reg = <0xd0000 0x54>; 573 reg = <0xd0000 0x54>;
573 #address-cells = <1>; 574 #address-cells = <1>;
@@ -577,7 +578,7 @@
577 status = "disabled"; 578 status = "disabled";
578 }; 579 };
579 580
580 sdhci@d8000 { 581 sdhci: sdhci@d8000 {
581 compatible = "marvell,armada-380-sdhci"; 582 compatible = "marvell,armada-380-sdhci";
582 reg-names = "sdhci", "mbus", "conf-sdio3"; 583 reg-names = "sdhci", "mbus", "conf-sdio3";
583 reg = <0xd8000 0x1000>, 584 reg = <0xd8000 0x1000>,
@@ -589,7 +590,7 @@
589 status = "disabled"; 590 status = "disabled";
590 }; 591 };
591 592
592 usb3@f0000 { 593 usb3_0: usb3@f0000 {
593 compatible = "marvell,armada-380-xhci"; 594 compatible = "marvell,armada-380-xhci";
594 reg = <0xf0000 0x4000>,<0xf4000 0x4000>; 595 reg = <0xf0000 0x4000>,<0xf4000 0x4000>;
595 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 596 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
@@ -597,7 +598,7 @@
597 status = "disabled"; 598 status = "disabled";
598 }; 599 };
599 600
600 usb3@f8000 { 601 usb3_1: usb3@f8000 {
601 compatible = "marvell,armada-380-xhci"; 602 compatible = "marvell,armada-380-xhci";
602 reg = <0xf8000 0x4000>,<0xfc000 0x4000>; 603 reg = <0xf8000 0x4000>,<0xfc000 0x4000>;
603 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 604 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
index f6a03dcee5ef..84cc232a29e9 100644
--- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -45,11 +45,14 @@
45 * common to all Armada XP SoCs. 45 * common to all Armada XP SoCs.
46 */ 46 */
47 47
48#include "armada-xp.dtsi" 48#include "armada-370-xp.dtsi"
49 49
50/ { 50/ {
51 #address-cells = <2>;
52 #size-cells = <2>;
53
51 model = "Marvell 98DX3236 SoC"; 54 model = "Marvell 98DX3236 SoC";
52 compatible = "marvell,armadaxp-98dx3236", "marvell,armadaxp", "marvell,armada-370-xp"; 55 compatible = "marvell,armadaxp-98dx3236", "marvell,armada-370-xp";
53 56
54 aliases { 57 aliases {
55 gpio0 = &gpio0; 58 gpio0 = &gpio0;
@@ -72,12 +75,19 @@
72 }; 75 };
73 76
74 soc { 77 soc {
78 compatible = "marvell,armadaxp-mbus", "simple-bus";
79
75 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 80 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
76 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 81 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
77 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 82 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
78 MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000 83 MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000
79 MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>; 84 MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>;
80 85
86 bootrom {
87 compatible = "marvell,bootrom";
88 reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>;
89 };
90
81 /* 91 /*
82 * 98DX3236 has 1 x1 PCIe unit Gen2.0 92 * 98DX3236 has 1 x1 PCIe unit Gen2.0
83 */ 93 */
@@ -95,8 +105,7 @@
95 ranges = 105 ranges =
96 <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ 106 <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */
97 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ 107 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */
98 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */ 108 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */>;
99 0x82000000 0x2 0 MBUS_ID(0x04, 0xd8) 0 1 0 /* Port 0.1 MEM */>;
100 109
101 pcie1: pcie@1,0 { 110 pcie1: pcie@1,0 {
102 device_type = "pci"; 111 device_type = "pci";
@@ -117,31 +126,86 @@
117 }; 126 };
118 127
119 internal-regs { 128 internal-regs {
120 coreclk: mvebu-sar@18230 { 129 sdramc@1400 {
121 compatible = "marvell,mv98dx3236-core-clock"; 130 compatible = "marvell,armada-xp-sdram-controller";
131 reg = <0x1400 0x500>;
132 };
133
134 L2: l2-cache@8000 {
135 compatible = "marvell,aurora-system-cache";
136 reg = <0x08000 0x1000>;
137 cache-id-part = <0x100>;
138 cache-level = <2>;
139 cache-unified;
140 wt-override;
141 };
142
143 gpio0: gpio@18100 {
144 compatible = "marvell,orion-gpio";
145 reg = <0x18100 0x40>;
146 ngpios = <32>;
147 gpio-controller;
148 #gpio-cells = <2>;
149 interrupt-controller;
150 #interrupt-cells = <2>;
151 interrupts = <82>, <83>, <84>, <85>;
152 };
153
154 /* does not exist */
155 gpio1: gpio@18140 {
156 compatible = "marvell,orion-gpio";
157 reg = <0x18140 0x40>;
158 status = "disabled";
159 };
160
161 gpio2: gpio@18180 { /* rework some properties */
162 compatible = "marvell,orion-gpio";
163 reg = <0x18180 0x40>;
164 ngpios = <1>; /* only gpio #32 */
165 gpio-controller;
166 #gpio-cells = <2>;
167 interrupt-controller;
168 #interrupt-cells = <2>;
169 interrupts = <87>;
170 };
171
172 systemc: system-controller@18200 {
173 compatible = "marvell,armada-370-xp-system-controller";
174 reg = <0x18200 0x500>;
175 };
176
177 gateclk: clock-gating-control@18220 {
178 compatible = "marvell,mv98dx3236-gating-clock";
179 reg = <0x18220 0x4>;
180 clocks = <&coreclk 0>;
181 #clock-cells = <1>;
122 }; 182 };
123 183
124 cpuclk: clock-complex@18700 { 184 cpuclk: clock-complex@18700 {
185 #clock-cells = <1>;
125 compatible = "marvell,mv98dx3236-cpu-clock"; 186 compatible = "marvell,mv98dx3236-cpu-clock";
187 reg = <0x18700 0x24>, <0x1c054 0x10>;
188 clocks = <&coreclk 1>;
126 }; 189 };
127 190
128 corediv-clock@18740 { 191 corediv-clock@18740 {
129 status = "disabled"; 192 status = "disabled";
130 }; 193 };
131 194
132 xor@60900 { 195 cpu-config@21000 {
133 status = "disabled"; 196 compatible = "marvell,armada-xp-cpu-config";
197 reg = <0x21000 0x8>;
134 }; 198 };
135 199
136 crypto@90000 { 200 ethernet@70000 {
137 status = "disabled"; 201 compatible = "marvell,armada-xp-neta";
138 }; 202 };
139 203
140 xor@f0900 { 204 ethernet@74000 {
141 status = "disabled"; 205 compatible = "marvell,armada-xp-neta";
142 }; 206 };
143 207
144 xor@f0800 { 208 xor1: xor@f0800 {
145 compatible = "marvell,orion-xor"; 209 compatible = "marvell,orion-xor";
146 reg = <0xf0800 0x100 210 reg = <0xf0800 0x100
147 0xf0a00 0x100>; 211 0xf0a00 0x100>;
@@ -161,45 +225,43 @@
161 }; 225 };
162 }; 226 };
163 227
164 gpio0: gpio@18100 { 228 nand: nand@d0000 {
165 compatible = "marvell,orion-gpio"; 229 clocks = <&dfx_coredivclk 0>;
166 reg = <0x18100 0x40>;
167 ngpios = <32>;
168 gpio-controller;
169 #gpio-cells = <2>;
170 interrupt-controller;
171 #interrupt-cells = <2>;
172 interrupts = <82>, <83>, <84>, <85>;
173 };
174
175 /* does not exist */
176 gpio1: gpio@18140 {
177 compatible = "marvell,orion-gpio";
178 reg = <0x18140 0x40>;
179 status = "disabled";
180 }; 230 };
181 231
182 gpio2: gpio@18180 { /* rework some properties */ 232 xor0: xor@f0900 {
183 compatible = "marvell,orion-gpio"; 233 compatible = "marvell,orion-xor";
184 reg = <0x18180 0x40>; 234 reg = <0xF0900 0x100
185 ngpios = <1>; /* only gpio #32 */ 235 0xF0B00 0x100>;
186 gpio-controller; 236 clocks = <&gateclk 28>;
187 #gpio-cells = <2>; 237 status = "okay";
188 interrupt-controller;
189 #interrupt-cells = <2>;
190 interrupts = <87>;
191 };
192 238
193 nand: nand@d0000 { 239 xor00 {
194 clocks = <&dfx_coredivclk 0>; 240 interrupts = <94>;
241 dmacap,memcpy;
242 dmacap,xor;
243 };
244 xor01 {
245 interrupts = <95>;
246 dmacap,memcpy;
247 dmacap,xor;
248 dmacap,memset;
249 };
195 }; 250 };
196 }; 251 };
197 252
198 dfxr: dfx-registers@ac000000 { 253 dfx: dfx-server@ac000000 {
199 compatible = "simple-bus"; 254 compatible = "marvell,dfx-server", "simple-bus";
200 #address-cells = <1>; 255 #address-cells = <1>;
201 #size-cells = <1>; 256 #size-cells = <1>;
202 ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>; 257 ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>;
258 reg = <MBUS_ID(0x08, 0x00) 0 0x100000>;
259
260 coreclk: mvebu-sar@f8204 {
261 compatible = "marvell,mv98dx3236-core-clock";
262 reg = <0xf8204 0x4>;
263 #clock-cells = <1>;
264 };
203 265
204 dfx_coredivclk: corediv-clock@f8268 { 266 dfx_coredivclk: corediv-clock@f8268 {
205 compatible = "marvell,mv98dx3236-corediv-clock"; 267 compatible = "marvell,mv98dx3236-corediv-clock";
@@ -208,11 +270,6 @@
208 clocks = <&mainpll>; 270 clocks = <&mainpll>;
209 clock-output-names = "nand"; 271 clock-output-names = "nand";
210 }; 272 };
211
212 dfx: dfx@0 {
213 compatible = "marvell,dfx-server";
214 reg = <0 0x100000>;
215 };
216 }; 273 };
217 274
218 switch: switch@a8000000 { 275 switch: switch@a8000000 {
@@ -229,6 +286,53 @@
229 }; 286 };
230 }; 287 };
231 }; 288 };
289
290 clocks {
291 /* 25 MHz reference crystal */
292 refclk: oscillator {
293 compatible = "fixed-clock";
294 #clock-cells = <0>;
295 clock-frequency = <25000000>;
296 };
297 };
298};
299
300&i2c0 {
301 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
302 reg = <0x11000 0x100>;
303};
304
305&i2c1 {
306 compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
307 reg = <0x11100 0x100>;
308};
309
310&mpic {
311 reg = <0x20a00 0x2d0>, <0x21070 0x58>;
312};
313
314&timer {
315 compatible = "marvell,armada-xp-timer";
316 clocks = <&coreclk 2>, <&refclk>;
317 clock-names = "nbclk", "fixed";
318};
319
320&watchdog {
321 compatible = "marvell,armada-xp-wdt";
322 clocks = <&coreclk 2>, <&refclk>;
323 clock-names = "nbclk", "fixed";
324};
325
326&cpurst {
327 reg = <0x20800 0x20>;
328};
329
330&usb0 {
331 clocks = <&gateclk 18>;
332};
333
334&usb1 {
335 clocks = <&gateclk 19>;
232}; 336};
233 337
234&pinctrl { 338&pinctrl {
@@ -241,14 +345,13 @@
241 }; 345 };
242}; 346};
243 347
244&sdio { 348&spi0 {
245 status = "disabled"; 349 compatible = "marvell,armada-xp-spi", "marvell,orion-spi";
350 pinctrl-0 = <&spi0_pins>;
351 pinctrl-names = "default";
246}; 352};
247 353
248&crypto_sram0 { 354&sdio {
249 status = "disabled"; 355 status = "disabled";
250}; 356};
251 357
252&crypto_sram1 {
253 status = "disabled";
254};
diff --git a/arch/arm/boot/dts/armada-xp-98dx3336.dtsi b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
index e1580afdc260..a0d81bd7312b 100644
--- a/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
@@ -49,7 +49,7 @@
49 49
50/ { 50/ {
51 model = "Marvell 98DX3336 SoC"; 51 model = "Marvell 98DX3336 SoC";
52 compatible = "marvell,armadaxp-98dx3336", "marvell,armadaxp-98dx3236", "marvell,armadaxp", "marvell,armada-370-xp"; 52 compatible = "marvell,armadaxp-98dx3336", "marvell,armadaxp-98dx3236", "marvell,armada-370-xp";
53 53
54 cpus { 54 cpus {
55 cpu@1 { 55 cpu@1 {
diff --git a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
index b9d9b269efb4..51de91b31a9d 100644
--- a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
@@ -49,7 +49,7 @@
49 49
50/ { 50/ {
51 model = "Marvell 98DX4251 SoC"; 51 model = "Marvell 98DX4251 SoC";
52 compatible = "marvell,armadaxp-98dx4251", "marvell,armadaxp-98dx3236", "marvell,armadaxp", "marvell,armada-370-xp"; 52 compatible = "marvell,armadaxp-98dx4251", "marvell,armadaxp-98dx3236", "marvell,armada-370-xp";
53 53
54 cpus { 54 cpus {
55 cpu@1 { 55 cpu@1 {
diff --git a/arch/arm/boot/dts/armada-xp-db-dxbc2.dts b/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
index a8130805074e..1b1ff17fdd9c 100644
--- a/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
+++ b/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
@@ -58,7 +58,7 @@
58 58
59/ { 59/ {
60 model = "Marvell Bobcat2 Evaluation Board"; 60 model = "Marvell Bobcat2 Evaluation Board";
61 compatible = "marvell,db-dxbc2", "marvell,armadaxp-98dx4251", "marvell,armadaxp", "marvell,armada-370-xp"; 61 compatible = "marvell,db-dxbc2", "marvell,armadaxp-98dx4251", "marvell,armada-370-xp";
62 62
63 chosen { 63 chosen {
64 bootargs = "console=ttyS0,115200 earlyprintk"; 64 bootargs = "console=ttyS0,115200 earlyprintk";
diff --git a/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts b/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
index 4e07cb6ed800..06fce35d7491 100644
--- a/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
+++ b/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
@@ -58,7 +58,7 @@
58 58
59/ { 59/ {
60 model = "DB-XC3-24G4XG"; 60 model = "DB-XC3-24G4XG";
61 compatible = "marvell,db-xc3-24g4xg", "marvell,armadaxp-98dx3336", "marvell,armadaxp", "marvell,armada-370-xp"; 61 compatible = "marvell,db-xc3-24g4xg", "marvell,armadaxp-98dx3336", "marvell,armada-370-xp";
62 62
63 chosen { 63 chosen {
64 bootargs = "console=ttyS0,115200 earlyprintk"; 64 bootargs = "console=ttyS0,115200 earlyprintk";
diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
index 42ea8764814c..9efcf59c9b44 100644
--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
@@ -71,7 +71,8 @@
71 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 71 ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000
72 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 72 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
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 MBUS_ID(0x0c, 0x04) 0 0 0xf1200000 0x100000>;
75 76
76 internal-regs { 77 internal-regs {
77 78
@@ -95,6 +96,9 @@
95 pinctrl-names = "default"; 96 pinctrl-names = "default";
96 status = "okay"; 97 status = "okay";
97 phy-mode = "rgmii-id"; 98 phy-mode = "rgmii-id";
99 buffer-manager = <&bm>;
100 bm,pool-long = <0>;
101 bm,pool-short = <1>;
98 fixed-link { 102 fixed-link {
99 speed = <1000>; 103 speed = <1000>;
100 full-duplex; 104 full-duplex;
@@ -106,6 +110,9 @@
106 pinctrl-names = "default"; 110 pinctrl-names = "default";
107 status = "okay"; 111 status = "okay";
108 phy-mode = "rgmii-id"; 112 phy-mode = "rgmii-id";
113 buffer-manager = <&bm>;
114 bm,pool-long = <2>;
115 bm,pool-short = <3>;
109 fixed-link { 116 fixed-link {
110 speed = <1000>; 117 speed = <1000>;
111 full-duplex; 118 full-duplex;
@@ -156,6 +163,7 @@
156 esata@4 { 163 esata@4 {
157 label = "mamba:white:esata"; 164 label = "mamba:white:esata";
158 reg = <0x4>; 165 reg = <0x4>;
166 linux,default-trigger = "disk-activity";
159 }; 167 };
160 168
161 usb2@5 { 169 usb2@5 {
@@ -185,6 +193,10 @@
185 }; 193 };
186 }; 194 };
187 195
196 bm@c8000 {
197 status = "okay";
198 };
199
188 nand@d0000 { 200 nand@d0000 {
189 status = "okay"; 201 status = "okay";
190 num-cs = <1>; 202 num-cs = <1>;
@@ -258,6 +270,10 @@
258 }; 270 };
259 }; 271 };
260 }; 272 };
273
274 bm-bppi {
275 status = "okay";
276 };
261 }; 277 };
262 278
263 gpio_keys { 279 gpio_keys {
diff --git a/arch/arm/boot/dts/aspeed-ast2500-evb.dts b/arch/arm/boot/dts/aspeed-ast2500-evb.dts
index d967603dade8..7c90dac99822 100644
--- a/arch/arm/boot/dts/aspeed-ast2500-evb.dts
+++ b/arch/arm/boot/dts/aspeed-ast2500-evb.dts
@@ -20,6 +20,28 @@
20 }; 20 };
21}; 21};
22 22
23&fmc {
24 status = "okay";
25 flash@0 {
26 status = "okay";
27 m25p,fast-read;
28 label = "bmc";
29 };
30};
31
32&spi1 {
33 status = "okay";
34 flash@0 {
35 status = "okay";
36 m25p,fast-read;
37 label = "pnor";
38 };
39};
40
41&spi2 {
42 status = "okay";
43};
44
23&uart5 { 45&uart5 {
24 status = "okay"; 46 status = "okay";
25}; 47};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
index 1d2fc1e1dc29..112551766275 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
@@ -31,6 +31,24 @@
31 }; 31 };
32}; 32};
33 33
34&fmc {
35 status = "okay";
36 flash@0 {
37 status = "okay";
38 m25p,fast-read;
39 label = "bmc";
40 };
41};
42
43&spi {
44 status = "okay";
45 flash@0 {
46 status = "okay";
47 m25p,fast-read;
48 label = "pnor";
49 };
50};
51
34&uart5 { 52&uart5 {
35 status = "okay"; 53 status = "okay";
36}; 54};
diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
index 7a3b2b50c884..1190fec1b5d0 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-romulus.dts
@@ -31,6 +31,42 @@
31 }; 31 };
32}; 32};
33 33
34&fmc {
35 status = "okay";
36 flash@0 {
37 status = "okay";
38 m25p,fast-read;
39 label = "bmc";
40 };
41};
42
43&spi1 {
44 status = "okay";
45 pinctrl-names = "default";
46 pinctrl-0 = <&pinctrl_spi1_default>;
47
48 flash@0 {
49 status = "okay";
50 m25p,fast-read;
51 label = "pnor";
52 };
53};
54
55&uart1 {
56 /* Rear RS-232 connector */
57 status = "okay";
58
59 pinctrl-names = "default";
60 pinctrl-0 = <&pinctrl_txd1_default
61 &pinctrl_rxd1_default
62 &pinctrl_nrts1_default
63 &pinctrl_ndtr1_default
64 &pinctrl_ndsr1_default
65 &pinctrl_ncts1_default
66 &pinctrl_ndcd1_default
67 &pinctrl_nri1_default>;
68};
69
34&uart5 { 70&uart5 {
35 status = "okay"; 71 status = "okay";
36}; 72};
diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index c79c937b0a8a..8c6bc29eb7f6 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -18,21 +18,41 @@
18 }; 18 };
19 }; 19 };
20 20
21 clocks {
22 clk_clkin: clk_clkin {
23 #clock-cells = <0>;
24 compatible = "fixed-clock";
25 clock-frequency = <48000000>;
26 };
27
28 };
29
30 ahb { 21 ahb {
31 compatible = "simple-bus"; 22 compatible = "simple-bus";
32 #address-cells = <1>; 23 #address-cells = <1>;
33 #size-cells = <1>; 24 #size-cells = <1>;
34 ranges; 25 ranges;
35 26
27 fmc: flash-controller@1e620000 {
28 reg = < 0x1e620000 0x94
29 0x20000000 0x02000000 >;
30 #address-cells = <1>;
31 #size-cells = <0>;
32 compatible = "aspeed,ast2400-fmc";
33 status = "disabled";
34 interrupts = <19>;
35 flash@0 {
36 reg = < 0 >;
37 compatible = "jedec,spi-nor";
38 status = "disabled";
39 };
40 };
41
42 spi: flash-controller@1e630000 {
43 reg = < 0x1e630000 0x18
44 0x30000000 0x02000000 >;
45 #address-cells = <1>;
46 #size-cells = <0>;
47 compatible = "aspeed,ast2400-spi";
48 status = "disabled";
49 flash@0 {
50 reg = < 0 >;
51 compatible = "jedec,spi-nor";
52 status = "disabled";
53 };
54 };
55
36 vic: interrupt-controller@1e6c0080 { 56 vic: interrupt-controller@1e6c0080 {
37 compatible = "aspeed,ast2400-vic"; 57 compatible = "aspeed,ast2400-vic";
38 interrupt-controller; 58 interrupt-controller;
@@ -61,16 +81,48 @@
61 #size-cells = <1>; 81 #size-cells = <1>;
62 ranges; 82 ranges;
63 83
64 clk_hpll: clk_hpll@1e6e2070 {
65 #clock-cells = <0>;
66 compatible = "aspeed,g4-hpll-clock";
67 reg = <0x1e6e2070 0x4>;
68 clocks = <&clk_clkin>;
69 };
70
71 syscon: syscon@1e6e2000 { 84 syscon: syscon@1e6e2000 {
72 compatible = "aspeed,g4-scu", "syscon", "simple-mfd"; 85 compatible = "aspeed,g4-scu", "syscon", "simple-mfd";
73 reg = <0x1e6e2000 0x1a8>; 86 reg = <0x1e6e2000 0x1a8>;
87 #address-cells = <1>;
88 #size-cells = <0>;
89
90 clk_clkin: clk_clkin {
91 #clock-cells = <0>;
92 compatible = "fixed-clock";
93 clock-frequency = <48000000>;
94 };
95
96 clk_hpll: clk_hpll@70 {
97 #clock-cells = <0>;
98 compatible = "aspeed,g4-hpll-clock", "fixed-clock";
99 reg = <0x70>;
100 clocks = <&clk_clkin>;
101 clock-frequency = <384000000>;
102 };
103
104 clk_ahb: clk_ahb@70 {
105 #clock-cells = <0>;
106 compatible = "aspeed,g4-ahb-clock", "fixed-clock";
107 reg = <0x70>;
108 clocks = <&clk_hpll>;
109 clock-frequency = <192000000>;
110 };
111
112 clk_apb: clk_apb@08 {
113 #clock-cells = <0>;
114 compatible = "aspeed,g4-apb-clock", "fixed-clock";
115 reg = <0x08>;
116 clocks = <&clk_hpll>;
117 clock-frequency = <48000000>;
118 };
119
120 clk_uart: clk_uart@2c{
121 #clock-cells = <0>;
122 compatible = "aspeed,g4-uart-clock", "fixed-clock";
123 reg = <0x2c>;
124 clock-frequency = <24000000>;
125 };
74 126
75 pinctrl: pinctrl { 127 pinctrl: pinctrl {
76 compatible = "aspeed,g4-pinctrl"; 128 compatible = "aspeed,g4-pinctrl";
@@ -818,19 +870,6 @@
818 }; 870 };
819 }; 871 };
820 872
821 clk_apb: clk_apb@1e6e2008 {
822 #clock-cells = <0>;
823 compatible = "aspeed,g4-apb-clock";
824 reg = <0x1e6e2008 0x4>;
825 clocks = <&clk_hpll>;
826 };
827
828 clk_uart: clk_uart@1e6e2008 {
829 #clock-cells = <0>;
830 compatible = "aspeed,uart-clock";
831 reg = <0x1e6e202c 0x4>;
832 };
833
834 sram@1e720000 { 873 sram@1e720000 {
835 compatible = "mmio-sram"; 874 compatible = "mmio-sram";
836 reg = <0x1e720000 0x8000>; // 32K 875 reg = <0x1e720000 0x8000>; // 32K
@@ -857,13 +896,13 @@
857 }; 896 };
858 897
859 wdt1: wdt@1e785000 { 898 wdt1: wdt@1e785000 {
860 compatible = "aspeed,wdt"; 899 compatible = "aspeed,ast2400-wdt";
861 reg = <0x1e785000 0x1c>; 900 reg = <0x1e785000 0x1c>;
862 interrupts = <27>; 901 interrupts = <27>;
863 }; 902 };
864 903
865 wdt2: wdt@1e785020 { 904 wdt2: wdt@1e785020 {
866 compatible = "aspeed,wdt"; 905 compatible = "aspeed,ast2400-wdt";
867 reg = <0x1e785020 0x1c>; 906 reg = <0x1e785020 0x1c>;
868 interrupts = <27>; 907 interrupts = <27>;
869 clocks = <&clk_apb>; 908 clocks = <&clk_apb>;
@@ -930,6 +969,14 @@
930 no-loopback-test; 969 no-loopback-test;
931 status = "disabled"; 970 status = "disabled";
932 }; 971 };
972
973 adc: adc@1e6e9000 {
974 compatible = "aspeed,ast2400-adc";
975 reg = <0x1e6e9000 0xb0>;
976 clocks = <&clk_apb>;
977 #io-channel-cells = <1>;
978 status = "disabled";
979 };
933 }; 980 };
934 }; 981 };
935}; 982};
diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index b6596633036c..a0bea4a6ec77 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -24,6 +24,69 @@
24 #size-cells = <1>; 24 #size-cells = <1>;
25 ranges; 25 ranges;
26 26
27 fmc: flash-controller@1e620000 {
28 reg = < 0x1e620000 0xc4
29 0x20000000 0x10000000 >;
30 #address-cells = <1>;
31 #size-cells = <0>;
32 compatible = "aspeed,ast2500-fmc";
33 status = "disabled";
34 interrupts = <19>;
35 flash@0 {
36 reg = < 0 >;
37 compatible = "jedec,spi-nor";
38 status = "disabled";
39 };
40 flash@1 {
41 reg = < 1 >;
42 compatible = "jedec,spi-nor";
43 status = "disabled";
44 };
45 flash@2 {
46 reg = < 2 >;
47 compatible = "jedec,spi-nor";
48 status = "disabled";
49 };
50 };
51
52 spi1: flash-controller@1e630000 {
53 reg = < 0x1e630000 0xc4
54 0x30000000 0x08000000 >;
55 #address-cells = <1>;
56 #size-cells = <0>;
57 compatible = "aspeed,ast2500-spi";
58 status = "disabled";
59 flash@0 {
60 reg = < 0 >;
61 compatible = "jedec,spi-nor";
62 status = "disabled";
63 };
64 flash@1 {
65 reg = < 1 >;
66 compatible = "jedec,spi-nor";
67 status = "disabled";
68 };
69 };
70
71 spi2: flash-controller@1e631000 {
72 reg = < 0x1e631000 0xc4
73 0x38000000 0x08000000 >;
74 #address-cells = <1>;
75 #size-cells = <0>;
76 compatible = "aspeed,ast2500-spi";
77 status = "disabled";
78 flash@0 {
79 reg = < 0 >;
80 compatible = "jedec,spi-nor";
81 status = "disabled";
82 };
83 flash@1 {
84 reg = < 1 >;
85 compatible = "jedec,spi-nor";
86 status = "disabled";
87 };
88 };
89
27 vic: interrupt-controller@1e6c0080 { 90 vic: interrupt-controller@1e6c0080 {
28 compatible = "aspeed,ast2400-vic"; 91 compatible = "aspeed,ast2400-vic";
29 interrupt-controller; 92 interrupt-controller;
@@ -52,15 +115,49 @@
52 #size-cells = <1>; 115 #size-cells = <1>;
53 ranges; 116 ranges;
54 117
55 clk_clkin: clk_clkin@1e6e2070 {
56 #clock-cells = <0>;
57 compatible = "aspeed,g5-clkin-clock";
58 reg = <0x1e6e2070 0x04>;
59 };
60
61 syscon: syscon@1e6e2000 { 118 syscon: syscon@1e6e2000 {
62 compatible = "aspeed,g5-scu", "syscon", "simple-mfd"; 119 compatible = "aspeed,g5-scu", "syscon", "simple-mfd";
63 reg = <0x1e6e2000 0x1a8>; 120 reg = <0x1e6e2000 0x1a8>;
121 #address-cells = <1>;
122 #size-cells = <0>;
123
124 clk_clkin: clk_clkin@70 {
125 #clock-cells = <0>;
126 compatible = "aspeed,g5-clkin-clock", "fixed-clock";
127 reg = <0x70>;
128 clock-frequency = <24000000>;
129 };
130
131 clk_hpll: clk_hpll@24 {
132 #clock-cells = <0>;
133 compatible = "aspeed,g5-hpll-clock", "fixed-clock";
134 reg = <0x24>;
135 clocks = <&clk_clkin>;
136 clock-frequency = <792000000>;
137 };
138
139 clk_ahb: clk_ahb@70 {
140 #clock-cells = <0>;
141 compatible = "aspeed,g5-ahb-clock", "fixed-clock";
142 reg = <0x70>;
143 clocks = <&clk_hpll>;
144 clock-frequency = <198000000>;
145 };
146
147 clk_apb: clk_apb@08 {
148 #clock-cells = <0>;
149 compatible = "aspeed,g5-apb-clock", "fixed-clock";
150 reg = <0x08>;
151 clocks = <&clk_hpll>;
152 clock-frequency = <24750000>;
153 };
154
155 clk_uart: clk_uart@2c {
156 #clock-cells = <0>;
157 compatible = "aspeed,uart-clock", "fixed-clock";
158 reg = <0x2c>;
159 clock-frequency = <24000000>;
160 };
64 161
65 pinctrl: pinctrl { 162 pinctrl: pinctrl {
66 compatible = "aspeed,g5-pinctrl"; 163 compatible = "aspeed,g5-pinctrl";
@@ -285,7 +382,6 @@
285 function = "LAD0"; 382 function = "LAD0";
286 groups = "LAD0"; 383 groups = "LAD0";
287 }; 384 };
288
289 pinctrl_lad1_default: lad1_default { 385 pinctrl_lad1_default: lad1_default {
290 function = "LAD1"; 386 function = "LAD1";
291 groups = "LAD1"; 387 groups = "LAD1";
@@ -872,33 +968,7 @@
872 }; 968 };
873 969
874 }; 970 };
875 };
876
877 clk_hpll: clk_hpll@1e6e2024 {
878 #clock-cells = <0>;
879 compatible = "aspeed,g5-hpll-clock";
880 reg = <0x1e6e2024 0x4>;
881 clocks = <&clk_clkin>;
882 };
883
884 clk_ahb: clk_ahb@1e6e2070 {
885 #clock-cells = <0>;
886 compatible = "aspeed,g5-ahb-clock";
887 reg = <0x1e6e2070 0x4>;
888 clocks = <&clk_hpll>;
889 };
890 971
891 clk_apb: clk_apb@1e6e2008 {
892 #clock-cells = <0>;
893 compatible = "aspeed,g5-apb-clock";
894 reg = <0x1e6e2008 0x4>;
895 clocks = <&clk_hpll>;
896 };
897
898 clk_uart: clk_uart@1e6e2008 {
899 #clock-cells = <0>;
900 compatible = "aspeed,uart-clock";
901 reg = <0x1e6e202c 0x4>;
902 }; 972 };
903 973
904 gfx: display@1e6e6000 { 974 gfx: display@1e6e6000 {
@@ -934,21 +1004,21 @@
934 1004
935 1005
936 wdt1: wdt@1e785000 { 1006 wdt1: wdt@1e785000 {
937 compatible = "aspeed,wdt"; 1007 compatible = "aspeed,ast2500-wdt";
938 reg = <0x1e785000 0x1c>; 1008 reg = <0x1e785000 0x20>;
939 interrupts = <27>; 1009 interrupts = <27>;
940 }; 1010 };
941 1011
942 wdt2: wdt@1e785020 { 1012 wdt2: wdt@1e785020 {
943 compatible = "aspeed,wdt"; 1013 compatible = "aspeed,ast2500-wdt";
944 reg = <0x1e785020 0x1c>; 1014 reg = <0x1e785020 0x20>;
945 interrupts = <27>; 1015 interrupts = <27>;
946 status = "disabled"; 1016 status = "disabled";
947 }; 1017 };
948 1018
949 wdt3: wdt@1e785040 { 1019 wdt3: wdt@1e785040 {
950 compatible = "aspeed,wdt"; 1020 compatible = "aspeed,ast2500-wdt";
951 reg = <0x1e785074 0x1c>; 1021 reg = <0x1e785040 0x20>;
952 status = "disabled"; 1022 status = "disabled";
953 }; 1023 };
954 1024
@@ -1042,6 +1112,14 @@
1042 no-loopback-test; 1112 no-loopback-test;
1043 status = "disabled"; 1113 status = "disabled";
1044 }; 1114 };
1115
1116 adc: adc@1e6e9000 {
1117 compatible = "aspeed,ast2500-adc";
1118 reg = <0x1e6e9000 0xb0>;
1119 clocks = <&clk_apb>;
1120 #io-channel-cells = <1>;
1121 status = "disabled";
1122 };
1045 }; 1123 };
1046 }; 1124 };
1047}; 1125};
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index 9f7f8a7d8ff9..0bef9e0b89c6 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -246,6 +246,7 @@
246 246
247 shdwc@f8048010 { 247 shdwc@f8048010 {
248 atmel,shdwc-debouncer = <976>; 248 atmel,shdwc-debouncer = <976>;
249 atmel,wakeup-rtc-timer;
249 250
250 input@0 { 251 input@0 {
251 reg = <0>; 252 reg = <0>;
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
index c51fc652f6c7..5a53fcf542ab 100644
--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -162,9 +162,10 @@
162 }; 162 };
163 163
164 adc0: adc@f8018000 { 164 adc0: adc@f8018000 {
165 atmel,adc-vref = <3300>;
166 atmel,adc-channels-used = <0xfe>;
165 pinctrl-0 = < 167 pinctrl-0 = <
166 &pinctrl_adc0_adtrg 168 &pinctrl_adc0_adtrg
167 &pinctrl_adc0_ad0
168 &pinctrl_adc0_ad1 169 &pinctrl_adc0_ad1
169 &pinctrl_adc0_ad2 170 &pinctrl_adc0_ad2
170 &pinctrl_adc0_ad3 171 &pinctrl_adc0_ad3
@@ -172,8 +173,6 @@
172 &pinctrl_adc0_ad5 173 &pinctrl_adc0_ad5
173 &pinctrl_adc0_ad6 174 &pinctrl_adc0_ad6
174 &pinctrl_adc0_ad7 175 &pinctrl_adc0_ad7
175 &pinctrl_adc0_ad8
176 &pinctrl_adc0_ad9
177 >; 176 >;
178 status = "okay"; 177 status = "okay";
179 }; 178 };
diff --git a/arch/arm/boot/dts/at91-tse850-3.dts b/arch/arm/boot/dts/at91-tse850-3.dts
index 669a2c6bdefc..498fba3e52b5 100644
--- a/arch/arm/boot/dts/at91-tse850-3.dts
+++ b/arch/arm/boot/dts/at91-tse850-3.dts
@@ -86,16 +86,43 @@
86 #io-channel-cells = <1>; 86 #io-channel-cells = <1>;
87 }; 87 };
88 88
89 envelope-detector { 89 env_det: envelope-detector {
90 compatible = "axentia,tse850-envelope-detector"; 90 compatible = "axentia,tse850-envelope-detector";
91 io-channels = <&dac 0>; 91 io-channels = <&dac 0>;
92 io-channel-names = "dac"; 92 io-channel-names = "dac";
93 #io-channel-cells = <1>;
93 94
94 interrupt-parent = <&pioA>; 95 interrupt-parent = <&pioA>;
95 interrupts = <3 IRQ_TYPE_EDGE_RISING>; 96 interrupts = <3 IRQ_TYPE_EDGE_RISING>;
96 interrupt-names = "comp"; 97 interrupt-names = "comp";
97 }; 98 };
98 99
100 mux: mux-controller {
101 compatible = "gpio-mux";
102 #mux-control-cells = <0>;
103
104 mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>,
105 <&pioA 1 GPIO_ACTIVE_HIGH>,
106 <&pioA 2 GPIO_ACTIVE_HIGH>;
107 idle-state = <0>;
108 };
109
110 envelope-detector-mux {
111 compatible = "io-channel-mux";
112 io-channels = <&env_det 0>;
113 io-channel-names = "parent";
114
115 mux-controls = <&mux>;
116
117 channels = "", "",
118 "sync-1",
119 "in",
120 "out",
121 "sync-2",
122 "sys-reg",
123 "ana-reg";
124 };
125
99 leds { 126 leds {
100 compatible = "gpio-leds"; 127 compatible = "gpio-leds";
101 128
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
index 3fe77c38bd0d..7e80acda8f69 100644
--- a/arch/arm/boot/dts/at91sam9261.dtsi
+++ b/arch/arm/boot/dts/at91sam9261.dtsi
@@ -263,7 +263,7 @@
263 }; 263 };
264 264
265 matrix: matrix@ffffee00 { 265 matrix: matrix@ffffee00 {
266 compatible = "atmel,at91sam9260-bus-matrix", "syscon"; 266 compatible = "atmel,at91sam9261-matrix", "syscon";
267 reg = <0xffffee00 0x200>; 267 reg = <0xffffee00 0x200>;
268 }; 268 };
269 269
diff --git a/arch/arm/boot/dts/at91sam9x5ek.dtsi b/arch/arm/boot/dts/at91sam9x5ek.dtsi
index 696b8ba064a6..9d2bbc41a7b0 100644
--- a/arch/arm/boot/dts/at91sam9x5ek.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5ek.dtsi
@@ -116,7 +116,7 @@
116 }; 116 };
117 117
118 spi0: spi@f0000000 { 118 spi0: spi@f0000000 {
119 status = "okay"; 119 status = "disabled"; /* conflicts with mmc1 */
120 cs-gpios = <&pioA 14 0>, <0>, <0>, <0>; 120 cs-gpios = <&pioA 14 0>, <0>, <0>, <0>;
121 m25p80@0 { 121 m25p80@0 {
122 compatible = "atmel,at25df321a"; 122 compatible = "atmel,at25df321a";
diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 675bb0f30825..9677dd5cf6b6 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -53,6 +53,11 @@
53 interrupt-controller; 53 interrupt-controller;
54 #interrupt-cells = <1>; 54 #interrupt-cells = <1>;
55 55
56 ac_power_supply: ac-power-supply {
57 compatible = "x-powers,axp202-ac-power-supply";
58 status = "disabled";
59 };
60
56 axp_gpio: gpio { 61 axp_gpio: gpio {
57 compatible = "x-powers,axp209-gpio"; 62 compatible = "x-powers,axp209-gpio";
58 gpio-controller; 63 gpio-controller;
diff --git a/arch/arm/boot/dts/axp22x.dtsi b/arch/arm/boot/dts/axp22x.dtsi
index 458b6681e3ec..67331c5f1714 100644
--- a/arch/arm/boot/dts/axp22x.dtsi
+++ b/arch/arm/boot/dts/axp22x.dtsi
@@ -52,6 +52,11 @@
52 interrupt-controller; 52 interrupt-controller;
53 #interrupt-cells = <1>; 53 #interrupt-cells = <1>;
54 54
55 ac_power_supply: ac-power-supply {
56 compatible = "x-powers,axp221-ac-power-supply";
57 status = "disabled";
58 };
59
55 regulators { 60 regulators {
56 /* Default work frequency for buck regulators */ 61 /* Default work frequency for buck regulators */
57 x-powers,dcdc-freq = <3000>; 62 x-powers,dcdc-freq = <3000>;
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index 8833a4c3cd96..9644fddb5e3c 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -205,7 +205,7 @@
205 status = "disabled"; 205 status = "disabled";
206 206
207 msi-parent = <&msi0>; 207 msi-parent = <&msi0>;
208 msi0: msi@18012000 { 208 msi0: msi-controller {
209 compatible = "brcm,iproc-msi"; 209 compatible = "brcm,iproc-msi";
210 msi-controller; 210 msi-controller;
211 interrupt-parent = <&gic>; 211 interrupt-parent = <&gic>;
@@ -240,7 +240,7 @@
240 status = "disabled"; 240 status = "disabled";
241 241
242 msi-parent = <&msi1>; 242 msi-parent = <&msi1>;
243 msi1: msi@18013000 { 243 msi1: msi-controller {
244 compatible = "brcm,iproc-msi"; 244 compatible = "brcm,iproc-msi";
245 msi-controller; 245 msi-controller;
246 interrupt-parent = <&gic>; 246 interrupt-parent = <&gic>;
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 832795b0fd0f..fe6cba994a97 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -245,6 +245,15 @@
245 status = "disabled"; 245 status = "disabled";
246 }; 246 };
247 247
248 mailbox: mailbox@25000 {
249 compatible = "brcm,iproc-fa2-mbox";
250 reg = <0x25000 0x445>;
251 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
252 #mbox-cells = <1>;
253 brcm,rx-status-len = <32>;
254 brcm,use-bcm-hdr;
255 };
256
248 nand: nand@26000 { 257 nand: nand@26000 {
249 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 258 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
250 reg = <0x026000 0x600>, 259 reg = <0x026000 0x600>,
@@ -288,6 +297,12 @@
288 #size-cells = <0>; 297 #size-cells = <0>;
289 }; 298 };
290 299
300 crypto@2f000 {
301 compatible = "brcm,spum-nsp-crypto";
302 reg = <0x2f000 0x900>;
303 mboxes = <&mailbox 0>;
304 };
305
291 gpiob: gpio@30000 { 306 gpiob: gpio@30000 {
292 compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio"; 307 compatible = "brcm,iproc-nsp-gpio", "brcm,iproc-gpio";
293 reg = <0x30000 0x50>; 308 reg = <0x30000 0x50>;
@@ -306,6 +321,20 @@
306 status = "disabled"; 321 status = "disabled";
307 }; 322 };
308 323
324 ehci0: usb@2a000 {
325 compatible = "generic-ehci";
326 reg = <0x2a000 0x100>;
327 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
328 status = "disabled";
329 };
330
331 ohci0: usb@2b000 {
332 compatible = "generic-ohci";
333 reg = <0x2b000 0x100>;
334 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
335 status = "disabled";
336 };
337
309 rng: rng@33000 { 338 rng: rng@33000 {
310 compatible = "brcm,bcm-nsp-rng"; 339 compatible = "brcm,bcm-nsp-rng";
311 reg = <0x33000 0x14>; 340 reg = <0x33000 0x14>;
@@ -347,6 +376,7 @@
347 #size-cells = <0>; 376 #size-cells = <0>;
348 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>; 377 interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
349 clock-frequency = <100000>; 378 clock-frequency = <100000>;
379 status = "disabled";
350 }; 380 };
351 381
352 watchdog@39000 { 382 watchdog@39000 {
@@ -450,7 +480,7 @@
450 status = "disabled"; 480 status = "disabled";
451 481
452 msi-parent = <&msi0>; 482 msi-parent = <&msi0>;
453 msi0: msi@18012000 { 483 msi0: msi-controller {
454 compatible = "brcm,iproc-msi"; 484 compatible = "brcm,iproc-msi";
455 msi-controller; 485 msi-controller;
456 interrupt-parent = <&gic>; 486 interrupt-parent = <&gic>;
@@ -486,7 +516,7 @@
486 status = "disabled"; 516 status = "disabled";
487 517
488 msi-parent = <&msi1>; 518 msi-parent = <&msi1>;
489 msi1: msi@18013000 { 519 msi1: msi-controller {
490 compatible = "brcm,iproc-msi"; 520 compatible = "brcm,iproc-msi";
491 msi-controller; 521 msi-controller;
492 interrupt-parent = <&gic>; 522 interrupt-parent = <&gic>;
@@ -522,7 +552,7 @@
522 status = "disabled"; 552 status = "disabled";
523 553
524 msi-parent = <&msi2>; 554 msi-parent = <&msi2>;
525 msi2: msi@18014000 { 555 msi2: msi-controller {
526 compatible = "brcm,iproc-msi"; 556 compatible = "brcm,iproc-msi";
527 msi-controller; 557 msi-controller;
528 interrupt-parent = <&gic>; 558 interrupt-parent = <&gic>;
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 38e6050035bc..a7b5ce133784 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -69,6 +69,12 @@
69 bus-width = <4>; 69 bus-width = <4>;
70}; 70};
71 71
72&sdhost {
73 pinctrl-names = "default";
74 pinctrl-0 = <&sdhost_gpio48>;
75 bus-width = <4>;
76};
77
72&pwm { 78&pwm {
73 pinctrl-names = "default"; 79 pinctrl-names = "default";
74 pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>; 80 pinctrl-0 = <&pwm0_gpio40 &pwm1_gpio45>;
@@ -92,3 +98,11 @@
92 power-domains = <&power RPI_POWER_DOMAIN_VEC>; 98 power-domains = <&power RPI_POWER_DOMAIN_VEC>;
93 status = "okay"; 99 status = "okay";
94}; 100};
101
102&dsi0 {
103 power-domains = <&power RPI_POWER_DOMAIN_DSI0>;
104};
105
106&dsi1 {
107 power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
108};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index a3106aa446c6..35cea3fcaf5c 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -93,10 +93,13 @@
93 #clock-cells = <1>; 93 #clock-cells = <1>;
94 reg = <0x7e101000 0x2000>; 94 reg = <0x7e101000 0x2000>;
95 95
96 /* CPRMAN derives everything from the platform's 96 /* CPRMAN derives almost everything from the
97 * oscillator. 97 * platform's oscillator. However, the DSI
98 * pixel clocks come from the DSI analog PHY.
98 */ 99 */
99 clocks = <&clk_osc>; 100 clocks = <&clk_osc>,
101 <&dsi0 0>, <&dsi0 1>, <&dsi0 2>,
102 <&dsi1 0>, <&dsi1 1>, <&dsi1 2>;
100 }; 103 };
101 104
102 rng@7e104000 { 105 rng@7e104000 {
@@ -347,6 +350,16 @@
347 arm,primecell-periphid = <0x00241011>; 350 arm,primecell-periphid = <0x00241011>;
348 }; 351 };
349 352
353 sdhost: mmc@7e202000 {
354 compatible = "brcm,bcm2835-sdhost";
355 reg = <0x7e202000 0x100>;
356 interrupts = <2 24>;
357 clocks = <&clocks BCM2835_CLOCK_VPU>;
358 dmas = <&dma 13>;
359 dma-names = "rx-tx";
360 status = "disabled";
361 };
362
350 i2s: i2s@7e203000 { 363 i2s: i2s@7e203000 {
351 compatible = "brcm,bcm2835-i2s"; 364 compatible = "brcm,bcm2835-i2s";
352 reg = <0x7e203000 0x20>, 365 reg = <0x7e203000 0x20>,
@@ -390,6 +403,25 @@
390 interrupts = <2 14>; /* pwa1 */ 403 interrupts = <2 14>; /* pwa1 */
391 }; 404 };
392 405
406 dsi0: dsi@7e209000 {
407 compatible = "brcm,bcm2835-dsi0";
408 reg = <0x7e209000 0x78>;
409 interrupts = <2 4>;
410 #address-cells = <1>;
411 #size-cells = <0>;
412 #clock-cells = <1>;
413
414 clocks = <&clocks BCM2835_PLLA_DSI0>,
415 <&clocks BCM2835_CLOCK_DSI0E>,
416 <&clocks BCM2835_CLOCK_DSI0P>;
417 clock-names = "phy", "escape", "pixel";
418
419 clock-output-names = "dsi0_byte",
420 "dsi0_ddr2",
421 "dsi0_ddr";
422
423 };
424
393 thermal: thermal@7e212000 { 425 thermal: thermal@7e212000 {
394 compatible = "brcm,bcm2835-thermal"; 426 compatible = "brcm,bcm2835-thermal";
395 reg = <0x7e212000 0x8>; 427 reg = <0x7e212000 0x8>;
@@ -456,6 +488,26 @@
456 interrupts = <2 1>; 488 interrupts = <2 1>;
457 }; 489 };
458 490
491 dsi1: dsi@7e700000 {
492 compatible = "brcm,bcm2835-dsi1";
493 reg = <0x7e700000 0x8c>;
494 interrupts = <2 12>;
495 #address-cells = <1>;
496 #size-cells = <0>;
497 #clock-cells = <1>;
498
499 clocks = <&clocks BCM2835_PLLD_DSI1>,
500 <&clocks BCM2835_CLOCK_DSI1E>,
501 <&clocks BCM2835_CLOCK_DSI1P>;
502 clock-names = "phy", "escape", "pixel";
503
504 clock-output-names = "dsi1_byte",
505 "dsi1_ddr2",
506 "dsi1_ddr";
507
508 status = "disabled";
509 };
510
459 i2c1: i2c@7e804000 { 511 i2c1: i2c@7e804000 {
460 compatible = "brcm,bcm2835-i2c"; 512 compatible = "brcm,bcm2835-i2c";
461 reg = <0x7e804000 0x1000>; 513 reg = <0x7e804000 0x1000>;
@@ -499,6 +551,8 @@
499 clocks = <&clocks BCM2835_PLLH_PIX>, 551 clocks = <&clocks BCM2835_PLLH_PIX>,
500 <&clocks BCM2835_CLOCK_HSM>; 552 <&clocks BCM2835_CLOCK_HSM>;
501 clock-names = "pixel", "hdmi"; 553 clock-names = "pixel", "hdmi";
554 dmas = <&dma 17>;
555 dma-names = "audio-rx";
502 status = "disabled"; 556 status = "disabled";
503 }; 557 };
504 558
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
index d241cee4bfcc..4175174e589a 100644
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -31,19 +41,16 @@
31 usb3 { 41 usb3 {
32 label = "bcm53xx:blue:usb3"; 42 label = "bcm53xx:blue:usb3";
33 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>; 43 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
34 linux,default-trigger = "default-off";
35 }; 44 };
36 45
37 wan { 46 wan {
38 label = "bcm53xx:blue:wan"; 47 label = "bcm53xx:blue:wan";
39 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; 48 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "default-off";
41 }; 49 };
42 50
43 lan { 51 lan {
44 label = "bcm53xx:blue:lan"; 52 label = "bcm53xx:blue:lan";
45 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 53 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
46 linux,default-trigger = "default-off";
47 }; 54 };
48 55
49 power { 56 power {
@@ -61,14 +68,12 @@
61 2ghz { 68 2ghz {
62 label = "bcm53xx:blue:2ghz"; 69 label = "bcm53xx:blue:2ghz";
63 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>; 70 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
64 linux,default-trigger = "default-off";
65 }; 71 };
66 72
67 73
68 usb2 { 74 usb2 {
69 label = "bcm53xx:blue:usb2"; 75 label = "bcm53xx:blue:usb2";
70 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>; 76 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
71 linux,default-trigger = "default-off";
72 }; 77 };
73 }; 78 };
74 79
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
index b0e62042f62f..8fa033fea959 100644
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -31,7 +41,6 @@
31 usb2 { 41 usb2 {
32 label = "bcm53xx:blue:usb2"; 42 label = "bcm53xx:blue:usb2";
33 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>; 43 gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
34 linux,default-trigger = "default-off";
35 }; 44 };
36 45
37 power { 46 power {
@@ -49,7 +58,6 @@
49 usb3 { 58 usb3 {
50 label = "bcm53xx:blue:usb3"; 59 label = "bcm53xx:blue:usb3";
51 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>; 60 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
52 linux,default-trigger = "default-off";
53 }; 61 };
54 }; 62 };
55 63
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
index c9ba6b964b38..62e1427b3f10 100644
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
@@ -52,13 +52,11 @@
52 usb { 52 usb {
53 label = "bcm53xx:blue:usb"; 53 label = "bcm53xx:blue:usb";
54 gpios = <&hc595 0 GPIO_ACTIVE_HIGH>; 54 gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
55 linux,default-trigger = "default-off";
56 }; 55 };
57 56
58 power0 { 57 power0 {
59 label = "bcm53xx:red:power"; 58 label = "bcm53xx:red:power";
60 gpios = <&hc595 1 GPIO_ACTIVE_HIGH>; 59 gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
61 linux,default-trigger = "default-off";
62 }; 60 };
63 61
64 power1 { 62 power1 {
@@ -76,7 +74,6 @@
76 router1 { 74 router1 {
77 label = "bcm53xx:amber:router"; 75 label = "bcm53xx:amber:router";
78 gpios = <&hc595 4 GPIO_ACTIVE_HIGH>; 76 gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
79 linux,default-trigger = "default-off";
80 }; 77 };
81 78
82 wan { 79 wan {
@@ -88,13 +85,11 @@
88 wireless0 { 85 wireless0 {
89 label = "bcm53xx:blue:wireless"; 86 label = "bcm53xx:blue:wireless";
90 gpios = <&hc595 6 GPIO_ACTIVE_HIGH>; 87 gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
91 linux,default-trigger = "default-off";
92 }; 88 };
93 89
94 wireless1 { 90 wireless1 {
95 label = "bcm53xx:amber:wireless"; 91 label = "bcm53xx:amber:wireless";
96 gpios = <&hc595 7 GPIO_ACTIVE_HIGH>; 92 gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
97 linux,default-trigger = "default-off";
98 }; 93 };
99 }; 94 };
100 95
diff --git a/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
new file mode 100644
index 000000000000..126ab5867772
--- /dev/null
+++ b/arch/arm/boot/dts/bcm4708-linksys-ea6300-v1.dts
@@ -0,0 +1,41 @@
1/*
2 * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm4708.dtsi"
10#include "bcm5301x-nand-cs0-bch8.dtsi"
11
12/ {
13 compatible = "linksys,ea6300-v1", "brcm,bcm4708";
14 model = "Linksys EA6300 V1";
15
16 chosen {
17 bootargs = "console=ttyS0,115200";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000>;
22 };
23
24 gpio-keys {
25 compatible = "gpio-keys";
26 #address-cells = <1>;
27 #size-cells = <0>;
28
29 wps {
30 label = "WPS";
31 linux,code = <KEY_WPS_BUTTON>;
32 gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
33 };
34
35 restart {
36 label = "Reset";
37 linux,code = <KEY_RESTART>;
38 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
39 };
40 };
41};
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
index b9f66c0fae27..a5647efe4118 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
@@ -43,19 +43,16 @@
43 power1 { 43 power1 {
44 label = "bcm53xx:amber:power"; 44 label = "bcm53xx:amber:power";
45 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 45 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
46 linux,default-trigger = "default-off";
47 }; 46 };
48 47
49 usb { 48 usb {
50 label = "bcm53xx:blue:usb"; 49 label = "bcm53xx:blue:usb";
51 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; 50 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
52 linux,default-trigger = "default-off";
53 }; 51 };
54 52
55 wireless { 53 wireless {
56 label = "bcm53xx:blue:wireless"; 54 label = "bcm53xx:blue:wireless";
57 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>; 55 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
58 linux,default-trigger = "default-off";
59 }; 56 };
60 }; 57 };
61 58
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
index ae0199f6c7a2..bb66cebe0bd8 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -37,7 +47,6 @@
37 power0 { 47 power0 {
38 label = "bcm53xx:green:power"; 48 label = "bcm53xx:green:power";
39 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 49 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "default-off";
41 }; 50 };
42 51
43 power1 { 52 power1 {
@@ -49,13 +58,11 @@
49 usb { 58 usb {
50 label = "bcm53xx:blue:usb"; 59 label = "bcm53xx:blue:usb";
51 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; 60 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
52 linux,default-trigger = "default-off";
53 }; 61 };
54 62
55 wireless { 63 wireless {
56 label = "bcm53xx:blue:wireless"; 64 label = "bcm53xx:blue:wireless";
57 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>; 65 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
58 linux,default-trigger = "default-off";
59 }; 66 };
60 }; 67 };
61 68
diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
index 36b628b190d7..19ee924d7d53 100644
--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
@@ -37,61 +37,51 @@
37 power-amber { 37 power-amber {
38 label = "bcm53xx:amber:power"; 38 label = "bcm53xx:amber:power";
39 gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>; 39 gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
40 linux,default-trigger = "default-off";
41 }; 40 };
42 41
43 usb2 { 42 usb2 {
44 label = "bcm53xx:white:usb2"; 43 label = "bcm53xx:white:usb2";
45 gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>; 44 gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
46 linux,default-trigger = "default-off";
47 }; 45 };
48 46
49 usb3-white { 47 usb3-white {
50 label = "bcm53xx:white:usb3"; 48 label = "bcm53xx:white:usb3";
51 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; 49 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
52 linux,default-trigger = "default-off";
53 }; 50 };
54 51
55 usb3-green { 52 usb3-green {
56 label = "bcm53xx:green:usb3"; 53 label = "bcm53xx:green:usb3";
57 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; 54 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
58 linux,default-trigger = "default-off";
59 }; 55 };
60 56
61 wps { 57 wps {
62 label = "bcm53xx:white:wps"; 58 label = "bcm53xx:white:wps";
63 gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>; 59 gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
64 linux,default-trigger = "default-off";
65 }; 60 };
66 61
67 status-red { 62 status-red {
68 label = "bcm53xx:red:status"; 63 label = "bcm53xx:red:status";
69 gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>; 64 gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
70 linux,default-trigger = "default-off";
71 }; 65 };
72 66
73 status-green { 67 status-green {
74 label = "bcm53xx:green:status"; 68 label = "bcm53xx:green:status";
75 gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>; 69 gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
76 linux,default-trigger = "default-off";
77 }; 70 };
78 71
79 status-blue { 72 status-blue {
80 label = "bcm53xx:blue:status"; 73 label = "bcm53xx:blue:status";
81 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>; 74 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
82 linux,default-trigger = "default-off";
83 }; 75 };
84 76
85 wan-white { 77 wan-white {
86 label = "bcm53xx:white:wan"; 78 label = "bcm53xx:white:wan";
87 gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>; 79 gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
88 linux,default-trigger = "default-off";
89 }; 80 };
90 81
91 wan-red { 82 wan-red {
92 label = "bcm53xx:red:wan"; 83 label = "bcm53xx:red:wan";
93 gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>; 84 gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
94 linux,default-trigger = "default-off";
95 }; 85 };
96 }; 86 };
97 87
diff --git a/arch/arm/boot/dts/bcm4708.dtsi b/arch/arm/boot/dts/bcm4708.dtsi
index d0eec099f1f8..1a19e97a987d 100644
--- a/arch/arm/boot/dts/bcm4708.dtsi
+++ b/arch/arm/boot/dts/bcm4708.dtsi
@@ -12,6 +12,14 @@
12/ { 12/ {
13 compatible = "brcm,bcm4708"; 13 compatible = "brcm,bcm4708";
14 14
15 aliases {
16 serial0 = &uart0;
17 };
18
19 chosen {
20 stdout-path = "serial0:115200n8";
21 };
22
15 cpus { 23 cpus {
16 #address-cells = <1>; 24 #address-cells = <1>;
17 #size-cells = <0>; 25 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
index db8608be0ee7..0800a964f2fe 100644
--- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
+++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -37,7 +47,6 @@
37 usb2 { 47 usb2 {
38 label = "bcm53xx:blue:usb2"; 48 label = "bcm53xx:blue:usb2";
39 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 49 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "default-off";
41 }; 50 };
42 51
43 wan { 52 wan {
@@ -55,7 +64,6 @@
55 usb3 { 64 usb3 {
56 label = "bcm53xx:blue:usb3"; 65 label = "bcm53xx:blue:usb3";
57 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>; 66 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
58 linux,default-trigger = "default-off";
59 }; 67 };
60 }; 68 };
61 69
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
index d51586d95b9a..c2af33eb47de 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -58,7 +68,6 @@
58 power1 { 68 power1 {
59 label = "bcm53xx:red:power"; 69 label = "bcm53xx:red:power";
60 gpios = <&hc595 2 GPIO_ACTIVE_HIGH>; 70 gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
61 linux,default-trigger = "default-off";
62 }; 71 };
63 72
64 router0 { 73 router0 {
@@ -70,7 +79,6 @@
70 router1 { 79 router1 {
71 label = "bcm53xx:amber:router"; 80 label = "bcm53xx:amber:router";
72 gpios = <&hc595 4 GPIO_ACTIVE_HIGH>; 81 gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
73 linux,default-trigger = "default-off";
74 }; 82 };
75 83
76 wan { 84 wan {
@@ -82,13 +90,11 @@
82 wireless0 { 90 wireless0 {
83 label = "bcm53xx:green:wireless"; 91 label = "bcm53xx:green:wireless";
84 gpios = <&hc595 6 GPIO_ACTIVE_HIGH>; 92 gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
85 linux,default-trigger = "default-off";
86 }; 93 };
87 94
88 wireless1 { 95 wireless1 {
89 label = "bcm53xx:amber:wireless"; 96 label = "bcm53xx:amber:wireless";
90 gpios = <&hc595 7 GPIO_ACTIVE_HIGH>; 97 gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
91 linux,default-trigger = "default-off";
92 }; 98 };
93 }; 99 };
94 100
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
index de041b8c3342..8bef6429feee 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
diff --git a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
new file mode 100644
index 000000000000..a854a5174b7f
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
@@ -0,0 +1,98 @@
1/*
2 * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm47081.dtsi"
10
11/ {
12 compatible = "tplink,archer-c5-v2", "brcm,bcm47081", "brcm,bcm4708";
13 model = "TP-LINK Archer C5 V2";
14
15 chosen {
16 bootargs = "earlycon";
17 };
18
19 memory {
20 reg = <0x00000000 0x08000000>;
21 };
22
23 leds {
24 compatible = "gpio-leds";
25
26 2ghz {
27 label = "bcm53xx:green:2ghz";
28 gpios = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
29 };
30
31 lan {
32 label = "bcm53xx:green:lan";
33 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
34 };
35
36 usb2-port1 {
37 label = "bcm53xx:green:usb2-port1";
38 gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
39 };
40
41 power {
42 label = "bcm53xx:green:power";
43 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
44 linux,default-trigger = "default-on";
45 };
46
47 wan-green {
48 label = "bcm53xx:green:wan";
49 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
50 };
51
52 wps {
53 label = "bcm53xx:green:wps";
54 gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
55 };
56
57 wan-amber {
58 label = "bcm53xx:amber:wan";
59 gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
60 };
61
62 5ghz {
63 label = "bcm53xx:green:5ghz";
64 gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
65 };
66
67 usb2-port2 {
68 label = "bcm53xx:green:usb2-port2";
69 gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
70 };
71 };
72
73 gpio-keys {
74 compatible = "gpio-keys";
75 #address-cells = <1>;
76 #size-cells = <0>;
77
78 rfkill {
79 label = "WiFi";
80 linux,code = <KEY_RFKILL>;
81 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
82 };
83
84 restart {
85 label = "Reset";
86 linux,code = <KEY_RESTART>;
87 gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
88 };
89 };
90};
91
92&spi_nor {
93 status = "okay";
94};
95
96&usb2 {
97 vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
98};
diff --git a/arch/arm/boot/dts/bcm47081.dtsi b/arch/arm/boot/dts/bcm47081.dtsi
index c5f7619af4a6..9829d044aaf4 100644
--- a/arch/arm/boot/dts/bcm47081.dtsi
+++ b/arch/arm/boot/dts/bcm47081.dtsi
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright © 2014 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright © 2014 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10#include "bcm5301x.dtsi" 20#include "bcm5301x.dtsi"
@@ -12,6 +22,14 @@
12/ { 22/ {
13 compatible = "brcm,bcm47081"; 23 compatible = "brcm,bcm47081";
14 24
25 aliases {
26 serial0 = &uart0;
27 };
28
29 chosen {
30 stdout-path = "serial0:115200n8";
31 };
32
15 cpus { 33 cpus {
16 #address-cells = <1>; 34 #address-cells = <1>;
17 #size-cells = <0>; 35 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
index eaca6876db0f..df473cc41572 100644
--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -31,7 +41,6 @@
31 wps { 41 wps {
32 label = "bcm53xx:blue:wps"; 42 label = "bcm53xx:blue:wps";
33 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; 43 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
34 linux,default-trigger = "default-off";
35 }; 44 };
36 45
37 power { 46 power {
@@ -43,7 +52,6 @@
43 wan { 52 wan {
44 label = "bcm53xx:red:wan"; 53 label = "bcm53xx:red:wan";
45 gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>; 54 gpios = <&chipcommon 5 GPIO_ACTIVE_LOW>;
46 linux,default-trigger = "default-off";
47 }; 55 };
48 }; 56 };
49 57
diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
index b32957ca9443..92058c73ee59 100644
--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
@@ -31,13 +31,11 @@
31 usb { 31 usb {
32 label = "bcm53xx:green:usb"; 32 label = "bcm53xx:green:usb";
33 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; 33 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
34 linux,default-trigger = "default-off";
35 }; 34 };
36 35
37 power-amber { 36 power-amber {
38 label = "bcm53xx:amber:power"; 37 label = "bcm53xx:amber:power";
39 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; 38 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
40 linux,default-trigger = "default-off";
41 }; 39 };
42 40
43 power-white { 41 power-white {
@@ -49,37 +47,31 @@
49 router-amber { 47 router-amber {
50 label = "bcm53xx:amber:router"; 48 label = "bcm53xx:amber:router";
51 gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>; 49 gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
52 linux,default-trigger = "default-off";
53 }; 50 };
54 51
55 router-white { 52 router-white {
56 label = "bcm53xx:white:router"; 53 label = "bcm53xx:white:router";
57 gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>; 54 gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
58 linux,default-trigger = "default-off";
59 }; 55 };
60 56
61 wan-amber { 57 wan-amber {
62 label = "bcm53xx:amber:wan"; 58 label = "bcm53xx:amber:wan";
63 gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>; 59 gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
64 linux,default-trigger = "default-off";
65 }; 60 };
66 61
67 wan-white { 62 wan-white {
68 label = "bcm53xx:white:wan"; 63 label = "bcm53xx:white:wan";
69 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>; 64 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
70 linux,default-trigger = "default-off";
71 }; 65 };
72 66
73 wireless-amber { 67 wireless-amber {
74 label = "bcm53xx:amber:wireless"; 68 label = "bcm53xx:amber:wireless";
75 gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; 69 gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
76 linux,default-trigger = "default-off";
77 }; 70 };
78 71
79 wireless-white { 72 wireless-white {
80 label = "bcm53xx:white:wireless"; 73 label = "bcm53xx:white:wireless";
81 gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>; 74 gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
82 linux,default-trigger = "default-off";
83 }; 75 };
84 }; 76 };
85 77
diff --git a/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts
new file mode 100644
index 000000000000..3d1d9c2c4efc
--- /dev/null
+++ b/arch/arm/boot/dts/bcm4709-linksys-ea9200.dts
@@ -0,0 +1,42 @@
1/*
2 * Copyright (C) 2017 Rafał Miłecki <rafal@milecki.pl>
3 *
4 * Licensed under the ISC license.
5 */
6
7/dts-v1/;
8
9#include "bcm4709.dtsi"
10#include "bcm5301x-nand-cs0-bch8.dtsi"
11
12/ {
13 compatible = "linksys,ea9200", "brcm,bcm4709", "brcm,bcm4708";
14 model = "Linksys EA9200";
15
16 chosen {
17 bootargs = "console=ttyS0,115200";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000
22 0x88000000 0x08000000>;
23 };
24
25 gpio-keys {
26 compatible = "gpio-keys";
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 wps {
31 label = "WPS";
32 linux,code = <KEY_WPS_BUTTON>;
33 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
34 };
35
36 restart {
37 label = "Reset";
38 linux,code = <KEY_RESTART>;
39 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
40 };
41 };
42};
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
index f459a98a72c6..f43ab4721456 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7000.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -37,43 +47,36 @@
37 power-amber { 47 power-amber {
38 label = "bcm53xx:amber:power"; 48 label = "bcm53xx:amber:power";
39 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 49 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "default-off";
41 }; 50 };
42 51
43 5ghz { 52 5ghz {
44 label = "bcm53xx:white:5ghz"; 53 label = "bcm53xx:white:5ghz";
45 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>; 54 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
46 linux,default-trigger = "default-off";
47 }; 55 };
48 56
49 2ghz { 57 2ghz {
50 label = "bcm53xx:white:2ghz"; 58 label = "bcm53xx:white:2ghz";
51 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; 59 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
52 linux,default-trigger = "default-off";
53 }; 60 };
54 61
55 wps { 62 wps {
56 label = "bcm53xx:white:wps"; 63 label = "bcm53xx:white:wps";
57 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>; 64 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
58 linux,default-trigger = "default-off";
59 }; 65 };
60 66
61 wireless { 67 wireless {
62 label = "bcm53xx:white:wireless"; 68 label = "bcm53xx:white:wireless";
63 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>; 69 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
64 linux,default-trigger = "default-off";
65 }; 70 };
66 71
67 usb3 { 72 usb3 {
68 label = "bcm53xx:white:usb3"; 73 label = "bcm53xx:white:usb3";
69 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; 74 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
70 linux,default-trigger = "default-off";
71 }; 75 };
72 76
73 usb2 { 77 usb2 {
74 label = "bcm53xx:white:usb2"; 78 label = "bcm53xx:white:usb2";
75 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>; 79 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
76 linux,default-trigger = "default-off";
77 }; 80 };
78 }; 81 };
79 82
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
index 8e39a84e5bf9..d266131652ad 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -28,58 +38,61 @@
28 leds { 38 leds {
29 compatible = "gpio-leds"; 39 compatible = "gpio-leds";
30 40
31 power0 { 41 power-white {
32 label = "bcm53xx:white:power"; 42 label = "bcm53xx:white:power";
33 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 43 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
34 linux,default-trigger = "default-on"; 44 linux,default-trigger = "default-on";
35 }; 45 };
36 46
37 power1 { 47 power-amber {
38 label = "bcm53xx:amber:power"; 48 label = "bcm53xx:amber:power";
39 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 49 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "default-off"; 50 };
51
52 wan-white {
53 label = "bcm53xx:white:wan";
54 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
55 linux,default-trigger = "default-on";
56 };
57
58 wan-amber {
59 label = "bcm53xx:amber:wan";
60 gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
41 }; 61 };
42 62
43 5ghz-1 { 63 5ghz-1 {
44 label = "bcm53xx:white:5ghz-1"; 64 label = "bcm53xx:white:5ghz-1";
45 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>; 65 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
46 linux,default-trigger = "default-off";
47 }; 66 };
48 67
49 2ghz { 68 2ghz {
50 label = "bcm53xx:white:2ghz"; 69 label = "bcm53xx:white:2ghz";
51 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; 70 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
52 linux,default-trigger = "default-off";
53 }; 71 };
54 72
55 wireless { 73 wireless {
56 label = "bcm53xx:white:wireless"; 74 label = "bcm53xx:white:wireless";
57 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>; 75 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
58 linux,default-trigger = "default-off";
59 }; 76 };
60 77
61 wps { 78 wps {
62 label = "bcm53xx:white:wps"; 79 label = "bcm53xx:white:wps";
63 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>; 80 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
64 linux,default-trigger = "default-off";
65 }; 81 };
66 82
67 5ghz-2 { 83 5ghz-2 {
68 label = "bcm53xx:white:5ghz-2"; 84 label = "bcm53xx:white:5ghz-2";
69 gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>; 85 gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
70 linux,default-trigger = "default-off";
71 }; 86 };
72 87
73 usb3 { 88 usb3 {
74 label = "bcm53xx:white:usb3"; 89 label = "bcm53xx:white:usb3";
75 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; 90 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
76 linux,default-trigger = "default-off";
77 }; 91 };
78 92
79 usb2 { 93 usb2 {
80 label = "bcm53xx:white:usb2"; 94 label = "bcm53xx:white:usb2";
81 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>; 95 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
82 linux,default-trigger = "default-off";
83 }; 96 };
84 }; 97 };
85 98
@@ -105,6 +118,12 @@
105 linux,code = <KEY_RESTART>; 118 linux,code = <KEY_RESTART>;
106 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>; 119 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
107 }; 120 };
121
122 brightness {
123 label = "Backlight";
124 linux,code = <KEY_BRIGHTNESS_ZERO>;
125 gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
126 };
108 }; 127 };
109}; 128};
110 129
diff --git a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
index c67bfaa0c8e8..97aa5d59a1d8 100644
--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
@@ -26,49 +26,41 @@
26 lan { 26 lan {
27 label = "bcm53xx:blue:lan"; 27 label = "bcm53xx:blue:lan";
28 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>; 28 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
29 linux,default-trigger = "default-off";
30 }; 29 };
31 30
32 wps { 31 wps {
33 label = "bcm53xx:blue:wps"; 32 label = "bcm53xx:blue:wps";
34 gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>; 33 gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
35 linux,default-trigger = "default-off";
36 }; 34 };
37 35
38 2ghz { 36 2ghz {
39 label = "bcm53xx:blue:2ghz"; 37 label = "bcm53xx:blue:2ghz";
40 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>; 38 gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
41 linux,default-trigger = "default-off";
42 }; 39 };
43 40
44 5ghz { 41 5ghz {
45 label = "bcm53xx:blue:5ghz"; 42 label = "bcm53xx:blue:5ghz";
46 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>; 43 gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
47 linux,default-trigger = "default-off";
48 }; 44 };
49 45
50 usb3 { 46 usb3 {
51 label = "bcm53xx:blue:usb3"; 47 label = "bcm53xx:blue:usb3";
52 gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>; 48 gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
53 linux,default-trigger = "default-off";
54 }; 49 };
55 50
56 usb2 { 51 usb2 {
57 label = "bcm53xx:blue:usb2"; 52 label = "bcm53xx:blue:usb2";
58 gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>; 53 gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
59 linux,default-trigger = "default-off";
60 }; 54 };
61 55
62 wan-blue { 56 wan-blue {
63 label = "bcm53xx:blue:wan"; 57 label = "bcm53xx:blue:wan";
64 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>; 58 gpios = <&chipcommon 14 GPIO_ACTIVE_HIGH>;
65 linux,default-trigger = "default-off";
66 }; 59 };
67 60
68 wan-amber { 61 wan-amber {
69 label = "bcm53xx:amber:wan"; 62 label = "bcm53xx:amber:wan";
70 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>; 63 gpios = <&chipcommon 15 GPIO_ACTIVE_HIGH>;
71 linux,default-trigger = "default-off";
72 }; 64 };
73 65
74 power { 66 power {
diff --git a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
index 64ded7643e9f..51b0641b5f79 100644
--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
@@ -4,7 +4,17 @@
4 * 4 *
5 * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com> 5 * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
6 * 6 *
7 * Licensed under the GNU/GPL. See COPYING for details. 7 * Permission to use, copy, modify, and/or distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
10 *
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13 * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
16 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
8 */ 18 */
9 19
10/dts-v1/; 20/dts-v1/;
@@ -46,37 +56,31 @@
46 wan-white { 56 wan-white {
47 label = "bcm53xx:white:wan"; 57 label = "bcm53xx:white:wan";
48 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; 58 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
49 linux,default-trigger = "default-off";
50 }; 59 };
51 60
52 power-amber { 61 power-amber {
53 label = "bcm53xx:amber:power"; 62 label = "bcm53xx:amber:power";
54 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 63 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
55 linux,default-trigger = "default-off";
56 }; 64 };
57 65
58 wan-amber { 66 wan-amber {
59 label = "bcm53xx:amber:wan"; 67 label = "bcm53xx:amber:wan";
60 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 68 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
61 linux,default-trigger = "default-off";
62 }; 69 };
63 70
64 usb3-white { 71 usb3-white {
65 label = "bcm53xx:white:usb3"; 72 label = "bcm53xx:white:usb3";
66 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; 73 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
67 linux,default-trigger = "default-off";
68 }; 74 };
69 75
70 2ghz { 76 2ghz {
71 label = "bcm53xx:white:2ghz"; 77 label = "bcm53xx:white:2ghz";
72 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; 78 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
73 linux,default-trigger = "default-off";
74 }; 79 };
75 80
76 5ghz { 81 5ghz {
77 label = "bcm53xx:white:5ghz"; 82 label = "bcm53xx:white:5ghz";
78 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>; 83 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
79 linux,default-trigger = "default-off";
80 }; 84 };
81 }; 85 };
82 86
diff --git a/arch/arm/boot/dts/bcm47094-linksys-panamera.dts b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
new file mode 100644
index 000000000000..b6750f70dffb
--- /dev/null
+++ b/arch/arm/boot/dts/bcm47094-linksys-panamera.dts
@@ -0,0 +1,36 @@
1/*
2 * Copyright (C) 2017 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 = "linksys,panamera", "brcm,bcm47094", "brcm,bcm4708";
14 model = "Linksys EA9500";
15
16 chosen {
17 bootargs = "console=ttyS0,115200";
18 };
19
20 memory {
21 reg = <0x00000000 0x08000000
22 0x88000000 0x08000000>;
23 };
24
25 gpio-keys {
26 compatible = "gpio-keys";
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 wps {
31 label = "WPS";
32 linux,code = <KEY_WPS_BUTTON>;
33 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
34 };
35 };
36};
diff --git a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
index 5cf4ab1ebe85..5f8621d00c50 100644
--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
@@ -34,37 +34,31 @@
34 lan3 { 34 lan3 {
35 label = "bcm53xx:green:lan3"; 35 label = "bcm53xx:green:lan3";
36 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>; 36 gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
37 linux,default-trigger = "default-off";
38 }; 37 };
39 38
40 lan4 { 39 lan4 {
41 label = "bcm53xx:green:lan4"; 40 label = "bcm53xx:green:lan4";
42 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>; 41 gpios = <&chipcommon 2 GPIO_ACTIVE_LOW>;
43 linux,default-trigger = "default-off";
44 }; 42 };
45 43
46 wan { 44 wan {
47 label = "bcm53xx:green:wan"; 45 label = "bcm53xx:green:wan";
48 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 46 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
49 linux,default-trigger = "default-off";
50 }; 47 };
51 48
52 lan1 { 49 lan1 {
53 label = "bcm53xx:green:lan1"; 50 label = "bcm53xx:green:lan1";
54 gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>; 51 gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
55 linux,default-trigger = "default-off";
56 }; 52 };
57 53
58 lan2 { 54 lan2 {
59 label = "bcm53xx:green:lan2"; 55 label = "bcm53xx:green:lan2";
60 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>; 56 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
61 linux,default-trigger = "default-off";
62 }; 57 };
63 58
64 usb3 { 59 usb3 {
65 label = "bcm53xx:green:usb3"; 60 label = "bcm53xx:green:usb3";
66 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>; 61 gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
67 linux,default-trigger = "default-off";
68 }; 62 };
69 63
70 status { 64 status {
@@ -76,13 +70,11 @@
76 2ghz { 70 2ghz {
77 label = "bcm53xx:green:2ghz"; 71 label = "bcm53xx:green:2ghz";
78 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; 72 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
79 linux,default-trigger = "default-off";
80 }; 73 };
81 74
82 5ghz { 75 5ghz {
83 label = "bcm53xx:green:5ghz"; 76 label = "bcm53xx:green:5ghz";
84 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>; 77 gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
85 linux,default-trigger = "default-off";
86 }; 78 };
87 }; 79 };
88 80
diff --git a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
index 600795ee1aed..859929973158 100644
--- a/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
+++ b/arch/arm/boot/dts/bcm47094-netgear-r8500.dts
@@ -34,37 +34,31 @@
34 power1 { 34 power1 {
35 label = "bcm53xx:amber:power"; 35 label = "bcm53xx:amber:power";
36 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>; 36 gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
37 linux,default-trigger = "default-off";
38 }; 37 };
39 38
40 5ghz-1 { 39 5ghz-1 {
41 label = "bcm53xx:white:5ghz-1"; 40 label = "bcm53xx:white:5ghz-1";
42 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>; 41 gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
43 linux,default-trigger = "default-off";
44 }; 42 };
45 43
46 5ghz-2 { 44 5ghz-2 {
47 label = "bcm53xx:white:5ghz-2"; 45 label = "bcm53xx:white:5ghz-2";
48 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>; 46 gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
49 linux,default-trigger = "default-off";
50 }; 47 };
51 48
52 2ghz { 49 2ghz {
53 label = "bcm53xx:white:2ghz"; 50 label = "bcm53xx:white:2ghz";
54 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>; 51 gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
55 linux,default-trigger = "default-off";
56 }; 52 };
57 53
58 usb2 { 54 usb2 {
59 label = "bcm53xx:white:usb2"; 55 label = "bcm53xx:white:usb2";
60 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>; 56 gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
61 linux,default-trigger = "default-off";
62 }; 57 };
63 58
64 usb3 { 59 usb3 {
65 label = "bcm53xx:white:usb3"; 60 label = "bcm53xx:white:usb3";
66 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>; 61 gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
67 linux,default-trigger = "default-off";
68 }; 62 };
69 }; 63 };
70 64
diff --git a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
index 4403ae8790c2..34417dac1cd0 100644
--- a/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
+++ b/arch/arm/boot/dts/bcm47189-tenda-ac9.dts
@@ -26,19 +26,16 @@
26 usb { 26 usb {
27 label = "bcm53xx:blue:usb"; 27 label = "bcm53xx:blue:usb";
28 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>; 28 gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
29 linux,default-trigger = "default-off";
30 }; 29 };
31 30
32 wps { 31 wps {
33 label = "bcm53xx:blue:wps"; 32 label = "bcm53xx:blue:wps";
34 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>; 33 gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
35 linux,default-trigger = "default-off";
36 }; 34 };
37 35
38 5ghz { 36 5ghz {
39 label = "bcm53xx:blue:5ghz"; 37 label = "bcm53xx:blue:5ghz";
40 gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>; 38 gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
41 linux,default-trigger = "default-off";
42 }; 39 };
43 40
44 system { 41 system {
@@ -48,6 +45,15 @@
48 }; 45 };
49 }; 46 };
50 47
48 pcie0_leds {
49 compatible = "gpio-leds";
50
51 2ghz {
52 label = "bcm53xx:blue:2ghz";
53 gpios = <&pcie0_chipcommon 3 GPIO_ACTIVE_HIGH>;
54 };
55 };
56
51 gpio-keys { 57 gpio-keys {
52 compatible = "gpio-keys"; 58 compatible = "gpio-keys";
53 #address-cells = <1>; 59 #address-cells = <1>;
@@ -72,3 +78,30 @@
72 }; 78 };
73 }; 79 };
74}; 80};
81
82&pcie0 {
83 ranges = <0x00000000 0 0 0 0 0x00100000>;
84 #address-cells = <3>;
85 #size-cells = <2>;
86
87 bridge@0,0,0 {
88 reg = <0x0000 0 0 0 0>;
89 ranges = <0x00000000 0 0 0 0 0 0 0x00100000>;
90 #address-cells = <3>;
91 #size-cells = <2>;
92
93 wifi@0,1,0 {
94 reg = <0x0000 0 0 0 0>;
95 ranges = <0x00000000 0 0 0 0x00100000>;
96 #address-cells = <1>;
97 #size-cells = <1>;
98
99 pcie0_chipcommon: chipcommon@0 {
100 reg = <0 0x1000>;
101
102 gpio-controller;
103 #gpio-cells = <2>;
104 };
105 };
106 };
107};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 00de62dc0042..acee36a61004 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -18,10 +18,6 @@
18/ { 18/ {
19 interrupt-parent = <&gic>; 19 interrupt-parent = <&gic>;
20 20
21 chosen {
22 stdout-path = &uart0;
23 };
24
25 chipcommonA { 21 chipcommonA {
26 compatible = "simple-bus"; 22 compatible = "simple-bus";
27 ranges = <0x00000000 0x18000000 0x00001000>; 23 ranges = <0x00000000 0x18000000 0x00001000>;
@@ -70,10 +66,19 @@
70 clocks = <&periph_clk>; 66 clocks = <&periph_clk>;
71 }; 67 };
72 68
73 local-timer@20600 { 69 timer@20600 {
74 compatible = "arm,cortex-a9-twd-timer"; 70 compatible = "arm,cortex-a9-twd-timer";
75 reg = <0x20600 0x100>; 71 reg = <0x20600 0x20>;
76 interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>; 72 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
73 IRQ_TYPE_EDGE_RISING)>;
74 clocks = <&periph_clk>;
75 };
76
77 watchdog@20620 {
78 compatible = "arm,cortex-a9-twd-wdt";
79 reg = <0x20620 0x20>;
80 interrupts = <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
81 IRQ_TYPE_EDGE_RISING)>;
77 clocks = <&periph_clk>; 82 clocks = <&periph_clk>;
78 }; 83 };
79 84
@@ -298,20 +303,6 @@
298 }; 303 };
299 }; 304 };
300 305
301 spi@29000 {
302 reg = <0x00029000 0x1000>;
303 #address-cells = <1>;
304 #size-cells = <0>;
305
306 spi_nor: spi-nor@0 {
307 compatible = "jedec,spi-nor";
308 reg = <0>;
309 spi-max-frequency = <20000000>;
310 linux,part-probe = "ofpart", "bcm47xxpart";
311 status = "disabled";
312 };
313 };
314
315 gmac0: ethernet@24000 { 306 gmac0: ethernet@24000 {
316 reg = <0x24000 0x800>; 307 reg = <0x24000 0x800>;
317 }; 308 };
@@ -329,6 +320,16 @@
329 }; 320 };
330 }; 321 };
331 322
323 i2c0: i2c@18009000 {
324 compatible = "brcm,iproc-i2c";
325 reg = <0x18009000 0x50>;
326 interrupts = <GIC_SPI 121 IRQ_TYPE_NONE>;
327 #address-cells = <1>;
328 #size-cells = <0>;
329 clock-frequency = <100000>;
330 status = "disabled";
331 };
332
332 lcpll0: lcpll0@1800c100 { 333 lcpll0: lcpll0@1800c100 {
333 #clock-cells = <1>; 334 #clock-cells = <1>;
334 compatible = "brcm,nsp-lcpll0"; 335 compatible = "brcm,nsp-lcpll0";
@@ -375,4 +376,40 @@
375 376
376 brcm,nand-has-wp; 377 brcm,nand-has-wp;
377 }; 378 };
379
380 spi@18029200 {
381 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
382 reg = <0x18029200 0x184>,
383 <0x18029000 0x124>,
384 <0x1811b408 0x004>,
385 <0x180293a0 0x01c>;
386 reg-names = "mspi", "bspi", "intr_regs", "intr_status_reg";
387 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
388 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
390 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
391 <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
392 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
393 <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
394 interrupt-names = "spi_lr_fullness_reached",
395 "spi_lr_session_aborted",
396 "spi_lr_impatient",
397 "spi_lr_session_done",
398 "spi_lr_overhead",
399 "mspi_done",
400 "mspi_halted";
401 clocks = <&iprocmed>;
402 clock-names = "iprocmed";
403 num-cs = <2>;
404 #address-cells = <1>;
405 #size-cells = <0>;
406
407 spi_nor: spi-nor@0 {
408 compatible = "jedec,spi-nor";
409 reg = <0>;
410 spi-max-frequency = <20000000>;
411 linux,part-probe = "ofpart", "bcm47xxpart";
412 status = "disabled";
413 };
414 };
378}; 415};
diff --git a/arch/arm/boot/dts/bcm53573.dtsi b/arch/arm/boot/dts/bcm53573.dtsi
index 2da04d0a7348..eae623f76401 100644
--- a/arch/arm/boot/dts/bcm53573.dtsi
+++ b/arch/arm/boot/dts/bcm53573.dtsi
@@ -13,8 +13,12 @@
13/ { 13/ {
14 interrupt-parent = <&gic>; 14 interrupt-parent = <&gic>;
15 15
16 aliases {
17 serial0 = &uart0;
18 };
19
16 chosen { 20 chosen {
17 stdout-path = &uart0; 21 stdout-path = "serial0:115200n8";
18 }; 22 };
19 23
20 cpus { 24 cpus {
@@ -113,6 +117,10 @@
113 }; 117 };
114 }; 118 };
115 119
120 pcie0: pcie@2000 {
121 reg = <0x00002000 0x1000>;
122 };
123
116 usb2: usb2@4000 { 124 usb2: usb2@4000 {
117 reg = <0x4000 0x1000>; 125 reg = <0x4000 0x1000>;
118 ranges; 126 ranges;
diff --git a/arch/arm/boot/dts/bcm94708.dts b/arch/arm/boot/dts/bcm94708.dts
index 42855a7c1bfa..2e08c895f281 100644
--- a/arch/arm/boot/dts/bcm94708.dts
+++ b/arch/arm/boot/dts/bcm94708.dts
@@ -38,14 +38,6 @@
38 model = "NorthStar SVK (BCM94708)"; 38 model = "NorthStar SVK (BCM94708)";
39 compatible = "brcm,bcm94708", "brcm,bcm4708"; 39 compatible = "brcm,bcm94708", "brcm,bcm4708";
40 40
41 aliases {
42 serial0 = &uart0;
43 };
44
45 chosen {
46 stdout-path = "serial0:115200n8";
47 };
48
49 memory { 41 memory {
50 reg = <0x00000000 0x08000000>; 42 reg = <0x00000000 0x08000000>;
51 }; 43 };
diff --git a/arch/arm/boot/dts/bcm94709.dts b/arch/arm/boot/dts/bcm94709.dts
index 95e8be65f2f1..c37616c67edc 100644
--- a/arch/arm/boot/dts/bcm94709.dts
+++ b/arch/arm/boot/dts/bcm94709.dts
@@ -38,14 +38,6 @@
38 model = "NorthStar SVK (BCM94709)"; 38 model = "NorthStar SVK (BCM94709)";
39 compatible = "brcm,bcm94709", "brcm,bcm4709", "brcm,bcm4708"; 39 compatible = "brcm,bcm94709", "brcm,bcm4709", "brcm,bcm4708";
40 40
41 aliases {
42 serial0 = &uart0;
43 };
44
45 chosen {
46 stdout-path = "serial0:115200n8";
47 };
48
49 memory { 41 memory {
50 reg = <0x00000000 0x08000000>; 42 reg = <0x00000000 0x08000000>;
51 }; 43 };
diff --git a/arch/arm/boot/dts/bcm953012er.dts b/arch/arm/boot/dts/bcm953012er.dts
index decd86bae901..40e694bfe5ca 100644
--- a/arch/arm/boot/dts/bcm953012er.dts
+++ b/arch/arm/boot/dts/bcm953012er.dts
@@ -39,14 +39,6 @@
39 model = "NorthStar Enterprise Router (BCM953012ER)"; 39 model = "NorthStar Enterprise Router (BCM953012ER)";
40 compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708"; 40 compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708";
41 41
42 aliases {
43 serial0 = &uart0;
44 };
45
46 chosen {
47 stdout-path = "serial0:115200n8";
48 };
49
50 memory { 42 memory {
51 reg = <0x00000000 0x8000000>; 43 reg = <0x00000000 0x8000000>;
52 }; 44 };
diff --git a/arch/arm/boot/dts/bcm953012hr.dts b/arch/arm/boot/dts/bcm953012hr.dts
new file mode 100644
index 000000000000..3076e81699cf
--- /dev/null
+++ b/arch/arm/boot/dts/bcm953012hr.dts
@@ -0,0 +1,97 @@
1/*
2 * SPDX-License-Identifier: BSD-3-Clause
3 *
4 * Copyright(c) 2017 Broadcom
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom nor the names of its contributors
17 * may be used to endorse or promote products derived from this
18 * software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm4708.dtsi"
36#include "bcm5301x-nand-cs0-bch4.dtsi"
37
38/ {
39 model = "NorthStar HR (BCM953012HR)";
40 compatible = "brcm,bcm953012hr", "brcm,brcm53012", "brcm,bcm4708";
41
42 aliases {
43 ethernet0 = &gmac0;
44 ethernet1 = &gmac1;
45 ethernet2 = &gmac2;
46 };
47
48 memory@80000000 {
49 reg = <0x80000000 0x10000000>;
50 };
51};
52
53&nandcs {
54 partition@0 {
55 label = "nboot";
56 reg = <0x00000000 0x00200000>;
57 read-only;
58 };
59 partition@200000 {
60 label = "nenv";
61 reg = <0x00200000 0x00400000>;
62 };
63 partition@600000 {
64 label = "nsystem";
65 reg = <0x00600000 0x00a00000>;
66 };
67 partition@1000000 {
68 label = "nrootfs";
69 reg = <0x01000000 0x07000000>;
70 };
71};
72
73&spi_nor {
74 status = "okay";
75 spi-max-frequency = <62500000>;
76 m25p,default-addr-width = <3>;
77
78 #address-cells = <1>;
79 #size-cells = <1>;
80
81 partition@0 {
82 label = "boot";
83 reg = <0x00000000 0x000d0000>;
84 };
85 partition@d000 {
86 label = "env";
87 reg = <0x000d0000 0x00030000>;
88 };
89 partition@100000 {
90 label = "system";
91 reg = <0x00100000 0x00600000>;
92 };
93 partition@700000 {
94 label = "rootfs";
95 reg = <0x00700000 0x00900000>;
96 };
97};
diff --git a/arch/arm/boot/dts/bcm953012k.dts b/arch/arm/boot/dts/bcm953012k.dts
index ae31a5826e91..79c168e2714b 100644
--- a/arch/arm/boot/dts/bcm953012k.dts
+++ b/arch/arm/boot/dts/bcm953012k.dts
@@ -43,15 +43,69 @@
43 serial1 = &uart1; 43 serial1 = &uart1;
44 }; 44 };
45 45
46 chosen {
47 stdout-path = "serial0:115200n8";
48 };
49
50 memory { 46 memory {
51 reg = <0x80000000 0x10000000>; 47 reg = <0x80000000 0x10000000>;
52 }; 48 };
53}; 49};
54 50
51&nand {
52 nandcs@0 {
53 compatible = "brcm,nandcs";
54 reg = <0>;
55 nand-on-flash-bbt;
56
57 #address-cells = <1>;
58 #size-cells = <1>;
59
60 nand-ecc-strength = <4>;
61 nand-ecc-step-size = <512>;
62
63 partition@0 {
64 label = "nboot";
65 reg = <0x00000000 0x00200000>;
66 read-only;
67 };
68 partition@200000 {
69 label = "nenv";
70 reg = <0x00200000 0x00400000>;
71 };
72 partition@600000 {
73 label = "nsystem";
74 reg = <0x00600000 0x00a00000>;
75 };
76 partition@1000000 {
77 label = "nrootfs";
78 reg = <0x01000000 0x07000000>;
79 };
80 };
81};
82
83&spi_nor {
84 status = "okay";
85 spi-max-frequency = <62500000>;
86 m25p,default-addr-width = <3>;
87
88 #address-cells = <1>;
89 #size-cells = <1>;
90
91 partition@0 {
92 label = "boot";
93 reg = <0x00000000 0x000d0000>;
94 };
95 partition@d000 {
96 label = "env";
97 reg = <0x000d0000 0x00030000>;
98 };
99 partition@100000 {
100 label = "system";
101 reg = <0x00100000 0x00600000>;
102 };
103 partition@700000 {
104 label = "rootfs";
105 reg = <0x00700000 0x00900000>;
106 };
107};
108
55&uart0 { 109&uart0 {
56 status = "okay"; 110 status = "okay";
57}; 111};
diff --git a/arch/arm/boot/dts/bcm958522er.dts b/arch/arm/boot/dts/bcm958522er.dts
index df05e7f568af..f5c42962c201 100644
--- a/arch/arm/boot/dts/bcm958522er.dts
+++ b/arch/arm/boot/dts/bcm958522er.dts
@@ -60,7 +60,7 @@
60 }; 60 };
61}; 61};
62 62
63/* USB 2/3 support needed to be complete */ 63/* USB 3 support needed to be complete */
64 64
65&amac0 { 65&amac0 {
66 status = "okay"; 66 status = "okay";
@@ -70,6 +70,10 @@
70 status = "okay"; 70 status = "okay";
71}; 71};
72 72
73&ehci0 {
74 status = "okay";
75};
76
73&nand { 77&nand {
74 nandcs@0 { 78 nandcs@0 {
75 compatible = "brcm,nandcs"; 79 compatible = "brcm,nandcs";
@@ -108,6 +112,10 @@
108 }; 112 };
109}; 113};
110 114
115&ohci0 {
116 status = "okay";
117};
118
111&pcie0 { 119&pcie0 {
112 status = "okay"; 120 status = "okay";
113}; 121};
diff --git a/arch/arm/boot/dts/bcm958525er.dts b/arch/arm/boot/dts/bcm958525er.dts
index 4a3ab19c6281..efcb1f67bdad 100644
--- a/arch/arm/boot/dts/bcm958525er.dts
+++ b/arch/arm/boot/dts/bcm958525er.dts
@@ -60,7 +60,7 @@
60 }; 60 };
61}; 61};
62 62
63/* USB 2/3 support needed to be complete */ 63/* USB 3 support needed to be complete */
64 64
65&amac0 { 65&amac0 {
66 status = "okay"; 66 status = "okay";
@@ -70,6 +70,10 @@
70 status = "okay"; 70 status = "okay";
71}; 71};
72 72
73&ehci0 {
74 status = "okay";
75};
76
73&nand { 77&nand {
74 nandcs@0 { 78 nandcs@0 {
75 compatible = "brcm,nandcs"; 79 compatible = "brcm,nandcs";
@@ -108,6 +112,10 @@
108 }; 112 };
109}; 113};
110 114
115&ohci0 {
116 status = "okay";
117};
118
111&pcie0 { 119&pcie0 {
112 status = "okay"; 120 status = "okay";
113}; 121};
diff --git a/arch/arm/boot/dts/bcm958525xmc.dts b/arch/arm/boot/dts/bcm958525xmc.dts
index 81f78435d8c7..b335ce02e32f 100644
--- a/arch/arm/boot/dts/bcm958525xmc.dts
+++ b/arch/arm/boot/dts/bcm958525xmc.dts
@@ -66,7 +66,13 @@
66 status = "okay"; 66 status = "okay";
67}; 67};
68 68
69&ehci0 {
70 status = "okay";
71};
72
69&i2c0 { 73&i2c0 {
74 status = "okay";
75
70 temperature-sensor@4c { 76 temperature-sensor@4c {
71 compatible = "adi,adt7461a"; 77 compatible = "adi,adt7461a";
72 reg = <0x4c>; 78 reg = <0x4c>;
@@ -122,6 +128,10 @@
122 }; 128 };
123}; 129};
124 130
131&ohci0 {
132 status = "okay";
133};
134
125&pcie0 { 135&pcie0 {
126 status = "okay"; 136 status = "okay";
127}; 137};
diff --git a/arch/arm/boot/dts/bcm958622hr.dts b/arch/arm/boot/dts/bcm958622hr.dts
index c88b8fefcb2f..16ab2d82a14b 100644
--- a/arch/arm/boot/dts/bcm958622hr.dts
+++ b/arch/arm/boot/dts/bcm958622hr.dts
@@ -60,7 +60,7 @@
60 }; 60 };
61}; 61};
62 62
63/* USB 2/3 and SLIC support needed to be complete */ 63/* USB 3 and SLIC support needed to be complete */
64 64
65&amac0 { 65&amac0 {
66 status = "okay"; 66 status = "okay";
@@ -74,6 +74,10 @@
74 status = "okay"; 74 status = "okay";
75}; 75};
76 76
77&ehci0 {
78 status = "okay";
79};
80
77&nand { 81&nand {
78 nandcs@0 { 82 nandcs@0 {
79 compatible = "brcm,nandcs"; 83 compatible = "brcm,nandcs";
@@ -112,6 +116,10 @@
112 }; 116 };
113}; 117};
114 118
119&ohci0 {
120 status = "okay";
121};
122
115&pcie0 { 123&pcie0 {
116 status = "okay"; 124 status = "okay";
117}; 125};
diff --git a/arch/arm/boot/dts/bcm958623hr.dts b/arch/arm/boot/dts/bcm958623hr.dts
index d503fa0dde31..9b921c6aa8f8 100644
--- a/arch/arm/boot/dts/bcm958623hr.dts
+++ b/arch/arm/boot/dts/bcm958623hr.dts
@@ -60,7 +60,7 @@
60 }; 60 };
61}; 61};
62 62
63/* USB 2/3 and SLIC support needed to be complete */ 63/* USB 3 and SLIC support needed to be complete */
64 64
65&amac0 { 65&amac0 {
66 status = "okay"; 66 status = "okay";
@@ -74,6 +74,10 @@
74 status = "okay"; 74 status = "okay";
75}; 75};
76 76
77&ehci0 {
78 status = "okay";
79};
80
77&nand { 81&nand {
78 nandcs@0 { 82 nandcs@0 {
79 compatible = "brcm,nandcs"; 83 compatible = "brcm,nandcs";
@@ -112,6 +116,10 @@
112 }; 116 };
113}; 117};
114 118
119&ohci0 {
120 status = "okay";
121};
122
115&pcie0 { 123&pcie0 {
116 status = "okay"; 124 status = "okay";
117}; 125};
diff --git a/arch/arm/boot/dts/bcm958625hr.dts b/arch/arm/boot/dts/bcm958625hr.dts
index cc0363b843c1..006b08e41a3b 100644
--- a/arch/arm/boot/dts/bcm958625hr.dts
+++ b/arch/arm/boot/dts/bcm958625hr.dts
@@ -72,6 +72,10 @@
72 status = "okay"; 72 status = "okay";
73}; 73};
74 74
75&ehci0 {
76 status = "okay";
77};
78
75&nand { 79&nand {
76 nandcs@0 { 80 nandcs@0 {
77 compatible = "brcm,nandcs"; 81 compatible = "brcm,nandcs";
@@ -110,6 +114,10 @@
110 }; 114 };
111}; 115};
112 116
117&ohci0 {
118 status = "okay";
119};
120
113&pcie0 { 121&pcie0 {
114 status = "okay"; 122 status = "okay";
115}; 123};
diff --git a/arch/arm/boot/dts/bcm958625k.dts b/arch/arm/boot/dts/bcm958625k.dts
index f8d47e517e18..64740f85cf4c 100644
--- a/arch/arm/boot/dts/bcm958625k.dts
+++ b/arch/arm/boot/dts/bcm958625k.dts
@@ -65,6 +65,10 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&ehci0 {
69 status = "okay";
70};
71
68&nand { 72&nand {
69 nandcs@0 { 73 nandcs@0 {
70 compatible = "brcm,nandcs"; 74 compatible = "brcm,nandcs";
@@ -103,6 +107,10 @@
103 }; 107 };
104}; 108};
105 109
110&ohci0 {
111 status = "okay";
112};
113
106&pcie0 { 114&pcie0 {
107 status = "okay"; 115 status = "okay";
108}; 116};
diff --git a/arch/arm/boot/dts/bcm988312hr.dts b/arch/arm/boot/dts/bcm988312hr.dts
index 74e15a3cd9f8..bce251a68591 100644
--- a/arch/arm/boot/dts/bcm988312hr.dts
+++ b/arch/arm/boot/dts/bcm988312hr.dts
@@ -60,7 +60,7 @@
60 }; 60 };
61}; 61};
62 62
63/* USB 2/3 support needed to be complete */ 63/* USB 3 support needed to be complete */
64 64
65&amac0 { 65&amac0 {
66 status = "okay"; 66 status = "okay";
@@ -74,6 +74,10 @@
74 status = "okay"; 74 status = "okay";
75}; 75};
76 76
77&ehci0 {
78 status = "okay";
79};
80
77&nand { 81&nand {
78 nandcs@0 { 82 nandcs@0 {
79 compatible = "brcm,nandcs"; 83 compatible = "brcm,nandcs";
@@ -112,6 +116,10 @@
112 }; 116 };
113}; 117};
114 118
119&ohci0 {
120 status = "okay";
121};
122
115&pcie0 { 123&pcie0 {
116 status = "okay"; 124 status = "okay";
117}; 125};
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index d15107cba765..8d244cd76c36 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -9,6 +9,7 @@
9 */ 9 */
10/dts-v1/; 10/dts-v1/;
11#include "da850.dtsi" 11#include "da850.dtsi"
12#include <dt-bindings/gpio/gpio.h>
12 13
13/ { 14/ {
14 compatible = "ti,da850-evm", "ti,da850"; 15 compatible = "ti,da850-evm", "ti,da850";
@@ -78,7 +79,10 @@
78 DRVDD-supply = <&vbat>; 79 DRVDD-supply = <&vbat>;
79 DVDD-supply = <&vbat>; 80 DVDD-supply = <&vbat>;
80 }; 81 };
81 82 tca6416: gpio@20 {
83 compatible = "ti,tca6416";
84 reg = <0x20>;
85 };
82 }; 86 };
83 wdt: wdt@21000 { 87 wdt: wdt@21000 {
84 status = "okay"; 88 status = "okay";
@@ -293,20 +297,27 @@
293 297
294&vpif { 298&vpif {
295 pinctrl-names = "default"; 299 pinctrl-names = "default";
296 pinctrl-0 = <&vpif_capture_pins>; 300 pinctrl-0 = <&vpif_capture_pins>, <&vpif_display_pins>;
297 status = "okay"; 301 status = "okay";
298 302
299 /* VPIF capture port */ 303 /* VPIF capture port */
300 port { 304 port@0 {
301 vpif_ch0: endpoint@0 { 305 vpif_input_ch0: endpoint@0 {
302 reg = <0>; 306 reg = <0>;
303 bus-width = <8>; 307 bus-width = <8>;
304 }; 308 };
305 309
306 vpif_ch1: endpoint@1 { 310 vpif_input_ch1: endpoint@1 {
307 reg = <1>; 311 reg = <1>;
308 bus-width = <8>; 312 bus-width = <8>;
309 data-shift = <8>; 313 data-shift = <8>;
314 };
315 };
316
317 /* VPIF display port */
318 port@1 {
319 vpif_output_ch0: endpoint {
320 bus-width = <8>;
310 }; 321 };
311 }; 322 };
312}; 323};
diff --git a/arch/arm/boot/dts/da850-lego-ev3.dts b/arch/arm/boot/dts/da850-lego-ev3.dts
index 112ec92064ce..512604ad8b71 100644
--- a/arch/arm/boot/dts/da850-lego-ev3.dts
+++ b/arch/arm/boot/dts/da850-lego-ev3.dts
@@ -123,6 +123,14 @@
123 pinctrl-0 = <&system_power_pin>; 123 pinctrl-0 = <&system_power_pin>;
124 }; 124 };
125 125
126 sound {
127 compatible = "pwm-beeper";
128 pinctrl-names = "default";
129 pinctrl-0 = <&ehrpwm0b_pins>;
130 pwms = <&ehrpwm0 1 1000000 0>;
131 amp-supply = <&amp>;
132 };
133
126 /* 134 /*
127 * This is a 5V current limiting regulator that is shared by USB, 135 * This is a 5V current limiting regulator that is shared by USB,
128 * the sensor (input) ports, the motor (output) ports and the A/DC. 136 * the sensor (input) ports, the motor (output) ports and the A/DC.
@@ -139,18 +147,36 @@
139 enable-active-high; 147 enable-active-high;
140 regulator-boot-on; 148 regulator-boot-on;
141 }; 149 };
150
151 /*
152 * This is a simple voltage divider on VCC5V to provide a 2.5V
153 * reference signal to the ADC.
154 */
155 adc_ref: regulator2 {
156 compatible = "regulator-fixed";
157 regulator-name = "adc ref";
158 regulator-min-microvolt = <2500000>;
159 regulator-max-microvolt = <2500000>;
160 regulator-boot-on;
161 vin-supply = <&vcc5v>;
162 };
163
164 /*
165 * This is the amplifier for the speaker.
166 */
167 amp: regulator3 {
168 pinctrl-names = "default";
169 pinctrl-0 = <&amp_pins>;
170 compatible = "regulator-fixed";
171 regulator-name = "amp";
172 gpio = <&gpio 111 GPIO_ACTIVE_HIGH>;
173 enable-active-high;
174 };
142}; 175};
143 176
144&pmx_core { 177&pmx_core {
145 status = "okay"; 178 status = "okay";
146 179
147 spi0_cs3_pin: pinmux_spi0_cs3_pin {
148 pinctrl-single,bits = <
149 /* CS3 */
150 0xc 0x01000000 0x0f000000
151 >;
152 };
153
154 mmc0_cd_pin: pinmux_mmc0_cd { 180 mmc0_cd_pin: pinmux_mmc0_cd {
155 pinctrl-single,bits = < 181 pinctrl-single,bits = <
156 /* GP5[14] */ 182 /* GP5[14] */
@@ -195,6 +221,13 @@
195 0x4c 0x00008000 0x0000f000 221 0x4c 0x00008000 0x0000f000
196 >; 222 >;
197 }; 223 };
224
225 amp_pins: pinmux_amp_pins {
226 pinctrl-single,bits = <
227 /* GP6[15] */
228 0x34 0x00000008 0x0000000f
229 >;
230 };
198}; 231};
199 232
200&pinconf { 233&pinconf {
@@ -293,6 +326,18 @@
293 }; 326 };
294 }; 327 };
295 }; 328 };
329
330 adc: adc@3 {
331 compatible = "ti,ads7957";
332 reg = <3>;
333 #io-channel-cells = <1>;
334 spi-max-frequency = <10000000>;
335 vref-supply = <&adc_ref>;
336 };
337};
338
339&ehrpwm0 {
340 status = "okay";
296}; 341};
297 342
298&gpio { 343&gpio {
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index 92d633d1da68..941d455000a7 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -153,6 +153,12 @@
153 0x10 0x00000010 0x000000f0 153 0x10 0x00000010 0x000000f0
154 >; 154 >;
155 }; 155 };
156 spi0_cs3_pin: pinmux_spi0_cs3_pin {
157 pinctrl-single,bits = <
158 /* CS3 */
159 0xc 0x01000000 0x0f000000
160 >;
161 };
156 spi1_pins: pinmux_spi1_pins { 162 spi1_pins: pinmux_spi1_pins {
157 pinctrl-single,bits = < 163 pinctrl-single,bits = <
158 /* SIMO, SOMI, CLK */ 164 /* SIMO, SOMI, CLK */
@@ -216,8 +222,21 @@
216 0x3c 0x11111111 0xffffffff 222 0x3c 0x11111111 0xffffffff
217 /* VP_DIN[8..9] */ 223 /* VP_DIN[8..9] */
218 0x40 0x00000011 0x000000ff 224 0x40 0x00000011 0x000000ff
219 /* VP_CLKIN3, VP_CLKIN2 */ 225 >;
220 0x4c 0x00010100 0x000f0f00 226 };
227 vpif_display_pins: vpif_display_pins {
228 pinctrl-single,bits = <
229 /* VP_DOUT[2..7] */
230 0x40 0x11111100 0xffffff00
231 /* VP_DOUT[10..15,0..1] */
232 0x44 0x11111111 0xffffffff
233 /* VP_DOUT[8..9] */
234 0x48 0x00000011 0x000000ff
235 /*
236 * VP_CLKOUT3, VP_CLKIN3,
237 * VP_CLKOUT2, VP_CLKIN2
238 */
239 0x4c 0x00111100 0x00ffff00
221 >; 240 >;
222 }; 241 };
223 }; 242 };
@@ -345,7 +364,13 @@
345 status = "disabled"; 364 status = "disabled";
346 365
347 /* VPIF capture port */ 366 /* VPIF capture port */
348 port { 367 port@0 {
368 #address-cells = <1>;
369 #size-cells = <0>;
370 };
371
372 /* VPIF display port */
373 port@1 {
349 #address-cells = <1>; 374 #address-cells = <1>;
350 #size-cells = <0>; 375 #size-cells = <0>;
351 }; 376 };
diff --git a/arch/arm/boot/dts/dm8168-evm.dts b/arch/arm/boot/dts/dm8168-evm.dts
index 0bf55fa72dea..1865976db5f9 100644
--- a/arch/arm/boot/dts/dm8168-evm.dts
+++ b/arch/arm/boot/dts/dm8168-evm.dts
@@ -25,6 +25,12 @@
25 regulator-min-microvolt = <3300000>; 25 regulator-min-microvolt = <3300000>;
26 regulator-max-microvolt = <3300000>; 26 regulator-max-microvolt = <3300000>;
27 }; 27 };
28
29 sata_refclk: fixedclock0 {
30 compatible = "fixed-clock";
31 #clock-cells = <0>;
32 clock-frequency = <100000000>;
33 };
28}; 34};
29 35
30&dm816x_pinmux { 36&dm816x_pinmux {
@@ -173,3 +179,7 @@
173 pinctrl-0 = <&usb1_pins>; 179 pinctrl-0 = <&usb1_pins>;
174 mentor,multipoint = <0>; 180 mentor,multipoint = <0>;
175}; 181};
182
183&sata {
184 clocks = <&sysclk5_ck>, <&sata_refclk>;
185};
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi
index 276211e1ee53..59cbf958fcc3 100644
--- a/arch/arm/boot/dts/dm816x.dtsi
+++ b/arch/arm/boot/dts/dm816x.dtsi
@@ -293,6 +293,13 @@
293 phy-handle = <&phy1>; 293 phy-handle = <&phy1>;
294 }; 294 };
295 295
296 sata: sata@4a140000 {
297 compatible = "ti,dm816-ahci";
298 reg = <0x4a140000 0x10000>;
299 interrupts = <16>;
300 ti,hwmods = "sata";
301 };
302
296 mcspi1: spi@48030000 { 303 mcspi1: spi@48030000 {
297 compatible = "ti,omap4-mcspi"; 304 compatible = "ti,omap4-mcspi";
298 reg = <0x48030000 0x1000>; 305 reg = <0x48030000 0x1000>;
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index bbfb9d5a70a9..57892f264cea 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -81,11 +81,7 @@
81 compatible = "arm,cortex-a15"; 81 compatible = "arm,cortex-a15";
82 reg = <0>; 82 reg = <0>;
83 83
84 operating-points = < 84 operating-points-v2 = <&cpu0_opp_table>;
85 /* kHz uV */
86 1000000 1060000
87 1176000 1160000
88 >;
89 85
90 clocks = <&dpll_mpu_ck>; 86 clocks = <&dpll_mpu_ck>;
91 clock-names = "cpu"; 87 clock-names = "cpu";
@@ -99,6 +95,24 @@
99 }; 95 };
100 }; 96 };
101 97
98 cpu0_opp_table: opp-table {
99 compatible = "operating-points-v2-ti-cpu";
100 syscon = <&scm_wkup>;
101
102 opp_nom@1000000000 {
103 opp-hz = /bits/ 64 <1000000000>;
104 opp-microvolt = <1060000 850000 1150000>;
105 opp-supported-hw = <0xFF 0x01>;
106 opp-suspend;
107 };
108
109 opp_od@1176000000 {
110 opp-hz = /bits/ 64 <1176000000>;
111 opp-microvolt = <1160000 885000 1160000>;
112 opp-supported-hw = <0xFF 0x02>;
113 };
114 };
115
102 /* 116 /*
103 * The soc node represents the soc top level view. It is used for IPs 117 * The soc node represents the soc top level view. It is used for IPs
104 * that are not memory mapped in the MPU view or for the MPU itself. 118 * that are not memory mapped in the MPU view or for the MPU itself.
@@ -1984,6 +1998,23 @@
1984 1998
1985&cpu_thermal { 1999&cpu_thermal {
1986 polling-delay = <500>; /* milliseconds */ 2000 polling-delay = <500>; /* milliseconds */
2001 coefficients = <0 2000>;
2002};
2003
2004&gpu_thermal {
2005 coefficients = <0 2000>;
2006};
2007
2008&core_thermal {
2009 coefficients = <0 2000>;
2010};
2011
2012&dspeve_thermal {
2013 coefficients = <0 2000>;
2014};
2015
2016&iva_thermal {
2017 coefficients = <0 2000>;
1987}; 2018};
1988 2019
1989/include/ "dra7xx-clocks.dtsi" 2020/include/ "dra7xx-clocks.dtsi"
diff --git a/arch/arm/boot/dts/dra74x.dtsi b/arch/arm/boot/dts/dra74x.dtsi
index 0a78347e6615..24e6746c5b26 100644
--- a/arch/arm/boot/dts/dra74x.dtsi
+++ b/arch/arm/boot/dts/dra74x.dtsi
@@ -17,6 +17,7 @@
17 device_type = "cpu"; 17 device_type = "cpu";
18 compatible = "arm,cortex-a15"; 18 compatible = "arm,cortex-a15";
19 reg = <1>; 19 reg = <1>;
20 operating-points-v2 = <&cpu0_opp_table>;
20 }; 21 };
21 }; 22 };
22 23
@@ -79,6 +80,10 @@
79 }; 80 };
80}; 81};
81 82
83&cpu0_opp_table {
84 opp-shared;
85};
86
82&dss { 87&dss {
83 reg = <0x58000000 0x80>, 88 reg = <0x58000000 0x80>,
84 <0x58004054 0x4>, 89 <0x58004054 0x4>,
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index 548413e23c47..c9f191ca7b9c 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -215,6 +215,8 @@
215&dsi_0 { 215&dsi_0 {
216 vddcore-supply = <&ldo6_reg>; 216 vddcore-supply = <&ldo6_reg>;
217 vddio-supply = <&ldo6_reg>; 217 vddio-supply = <&ldo6_reg>;
218 samsung,burst-clock-frequency = <250000000>;
219 samsung,esc-clock-frequency = <20000000>;
218 samsung,pll-clock-frequency = <24000000>; 220 samsung,pll-clock-frequency = <24000000>;
219 status = "okay"; 221 status = "okay";
220 222
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index 9c28ef4508e0..590ee442d0ae 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -745,23 +745,23 @@
745 compatible = "operating-points-v2"; 745 compatible = "operating-points-v2";
746 opp-shared; 746 opp-shared;
747 747
748 opp@50000000 { 748 opp-50000000 {
749 opp-hz = /bits/ 64 <50000000>; 749 opp-hz = /bits/ 64 <50000000>;
750 opp-microvolt = <800000>; 750 opp-microvolt = <800000>;
751 }; 751 };
752 opp@100000000 { 752 opp-100000000 {
753 opp-hz = /bits/ 64 <100000000>; 753 opp-hz = /bits/ 64 <100000000>;
754 opp-microvolt = <800000>; 754 opp-microvolt = <800000>;
755 }; 755 };
756 opp@134000000 { 756 opp-134000000 {
757 opp-hz = /bits/ 64 <134000000>; 757 opp-hz = /bits/ 64 <134000000>;
758 opp-microvolt = <800000>; 758 opp-microvolt = <800000>;
759 }; 759 };
760 opp@200000000 { 760 opp-200000000 {
761 opp-hz = /bits/ 64 <200000000>; 761 opp-hz = /bits/ 64 <200000000>;
762 opp-microvolt = <825000>; 762 opp-microvolt = <825000>;
763 }; 763 };
764 opp@400000000 { 764 opp-400000000 {
765 opp-hz = /bits/ 64 <400000000>; 765 opp-hz = /bits/ 64 <400000000>;
766 opp-microvolt = <875000>; 766 opp-microvolt = <875000>;
767 }; 767 };
@@ -835,23 +835,23 @@
835 compatible = "operating-points-v2"; 835 compatible = "operating-points-v2";
836 opp-shared; 836 opp-shared;
837 837
838 opp@50000000 { 838 opp-50000000 {
839 opp-hz = /bits/ 64 <50000000>; 839 opp-hz = /bits/ 64 <50000000>;
840 opp-microvolt = <900000>; 840 opp-microvolt = <900000>;
841 }; 841 };
842 opp@80000000 { 842 opp-80000000 {
843 opp-hz = /bits/ 64 <80000000>; 843 opp-hz = /bits/ 64 <80000000>;
844 opp-microvolt = <900000>; 844 opp-microvolt = <900000>;
845 }; 845 };
846 opp@100000000 { 846 opp-100000000 {
847 opp-hz = /bits/ 64 <100000000>; 847 opp-hz = /bits/ 64 <100000000>;
848 opp-microvolt = <1000000>; 848 opp-microvolt = <1000000>;
849 }; 849 };
850 opp@134000000 { 850 opp-134000000 {
851 opp-hz = /bits/ 64 <134000000>; 851 opp-hz = /bits/ 64 <134000000>;
852 opp-microvolt = <1000000>; 852 opp-microvolt = <1000000>;
853 }; 853 };
854 opp@200000000 { 854 opp-200000000 {
855 opp-hz = /bits/ 64 <200000000>; 855 opp-hz = /bits/ 64 <200000000>;
856 opp-microvolt = <1000000>; 856 opp-microvolt = <1000000>;
857 }; 857 };
@@ -861,19 +861,19 @@
861 compatible = "operating-points-v2"; 861 compatible = "operating-points-v2";
862 opp-shared; 862 opp-shared;
863 863
864 opp@50000000 { 864 opp-50000000 {
865 opp-hz = /bits/ 64 <50000000>; 865 opp-hz = /bits/ 64 <50000000>;
866 }; 866 };
867 opp@80000000 { 867 opp-80000000 {
868 opp-hz = /bits/ 64 <80000000>; 868 opp-hz = /bits/ 64 <80000000>;
869 }; 869 };
870 opp@100000000 { 870 opp-100000000 {
871 opp-hz = /bits/ 64 <100000000>; 871 opp-hz = /bits/ 64 <100000000>;
872 }; 872 };
873 opp@200000000 { 873 opp-200000000 {
874 opp-hz = /bits/ 64 <200000000>; 874 opp-hz = /bits/ 64 <200000000>;
875 }; 875 };
876 opp@400000000 { 876 opp-400000000 {
877 opp-hz = /bits/ 64 <400000000>; 877 opp-hz = /bits/ 64 <400000000>;
878 }; 878 };
879 }; 879 };
@@ -882,19 +882,19 @@
882 compatible = "operating-points-v2"; 882 compatible = "operating-points-v2";
883 opp-shared; 883 opp-shared;
884 884
885 opp@50000000 { 885 opp-50000000 {
886 opp-hz = /bits/ 64 <50000000>; 886 opp-hz = /bits/ 64 <50000000>;
887 }; 887 };
888 opp@80000000 { 888 opp-80000000 {
889 opp-hz = /bits/ 64 <80000000>; 889 opp-hz = /bits/ 64 <80000000>;
890 }; 890 };
891 opp@100000000 { 891 opp-100000000 {
892 opp-hz = /bits/ 64 <100000000>; 892 opp-hz = /bits/ 64 <100000000>;
893 }; 893 };
894 opp@200000000 { 894 opp-200000000 {
895 opp-hz = /bits/ 64 <200000000>; 895 opp-hz = /bits/ 64 <200000000>;
896 }; 896 };
897 opp@300000000 { 897 opp-300000000 {
898 opp-hz = /bits/ 64 <300000000>; 898 opp-hz = /bits/ 64 <300000000>;
899 }; 899 };
900 }; 900 };
@@ -903,13 +903,13 @@
903 compatible = "operating-points-v2"; 903 compatible = "operating-points-v2";
904 opp-shared; 904 opp-shared;
905 905
906 opp@50000000 { 906 opp-50000000 {
907 opp-hz = /bits/ 64 <50000000>; 907 opp-hz = /bits/ 64 <50000000>;
908 }; 908 };
909 opp@80000000 { 909 opp-80000000 {
910 opp-hz = /bits/ 64 <80000000>; 910 opp-hz = /bits/ 64 <80000000>;
911 }; 911 };
912 opp@100000000 { 912 opp-100000000 {
913 opp-hz = /bits/ 64 <100000000>; 913 opp-hz = /bits/ 64 <100000000>;
914 }; 914 };
915 }; 915 };
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 84fcdff140ae..497a9470c888 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -283,15 +283,6 @@
283 }; 283 };
284 }; 284 };
285 285
286 watchdog: watchdog@10060000 {
287 compatible = "samsung,s3c2410-wdt";
288 reg = <0x10060000 0x100>;
289 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
290 clocks = <&clock CLK_WDT>;
291 clock-names = "watchdog";
292 status = "disabled";
293 };
294
295 rtc: rtc@10070000 { 286 rtc: rtc@10070000 {
296 compatible = "samsung,s3c6410-rtc"; 287 compatible = "samsung,s3c6410-rtc";
297 reg = <0x10070000 0x100>; 288 reg = <0x10070000 0x100>;
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
index a2c6a13fe67b..312650e2450f 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -328,7 +328,3 @@
328&tmu { 328&tmu {
329 status = "okay"; 329 status = "okay";
330}; 330};
331
332&watchdog {
333 status = "okay";
334};
diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
index 0ca1b4d355f2..1743ca850070 100644
--- a/arch/arm/boot/dts/exynos4210-trats.dts
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -197,6 +197,8 @@
197&dsi_0 { 197&dsi_0 {
198 vddcore-supply = <&vusb_reg>; 198 vddcore-supply = <&vusb_reg>;
199 vddio-supply = <&vmipi_reg>; 199 vddio-supply = <&vmipi_reg>;
200 samsung,burst-clock-frequency = <500000000>;
201 samsung,esc-clock-frequency = <20000000>;
200 samsung,pll-clock-frequency = <24000000>; 202 samsung,pll-clock-frequency = <24000000>;
201 status = "okay"; 203 status = "okay";
202 204
diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
index f9408188f97f..768fb075b1fd 100644
--- a/arch/arm/boot/dts/exynos4210.dtsi
+++ b/arch/arm/boot/dts/exynos4210.dtsi
@@ -119,6 +119,14 @@
119 }; 119 };
120 }; 120 };
121 121
122 watchdog: watchdog@10060000 {
123 compatible = "samsung,s3c6410-wdt";
124 reg = <0x10060000 0x100>;
125 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
126 clocks = <&clock CLK_WDT>;
127 clock-names = "watchdog";
128 };
129
122 clock: clock-controller@10030000 { 130 clock: clock-controller@10030000 {
123 compatible = "samsung,exynos4210-clock"; 131 compatible = "samsung,exynos4210-clock";
124 reg = <0x10030000 0x20000>; 132 reg = <0x10030000 0x20000>;
@@ -335,15 +343,15 @@
335 compatible = "operating-points-v2"; 343 compatible = "operating-points-v2";
336 opp-shared; 344 opp-shared;
337 345
338 opp@134000000 { 346 opp-134000000 {
339 opp-hz = /bits/ 64 <134000000>; 347 opp-hz = /bits/ 64 <134000000>;
340 opp-microvolt = <1025000>; 348 opp-microvolt = <1025000>;
341 }; 349 };
342 opp@267000000 { 350 opp-267000000 {
343 opp-hz = /bits/ 64 <267000000>; 351 opp-hz = /bits/ 64 <267000000>;
344 opp-microvolt = <1050000>; 352 opp-microvolt = <1050000>;
345 }; 353 };
346 opp@400000000 { 354 opp-400000000 {
347 opp-hz = /bits/ 64 <400000000>; 355 opp-hz = /bits/ 64 <400000000>;
348 opp-microvolt = <1150000>; 356 opp-microvolt = <1150000>;
349 }; 357 };
@@ -353,13 +361,13 @@
353 compatible = "operating-points-v2"; 361 compatible = "operating-points-v2";
354 opp-shared; 362 opp-shared;
355 363
356 opp@134000000 { 364 opp-134000000 {
357 opp-hz = /bits/ 64 <134000000>; 365 opp-hz = /bits/ 64 <134000000>;
358 }; 366 };
359 opp@160000000 { 367 opp-160000000 {
360 opp-hz = /bits/ 64 <160000000>; 368 opp-hz = /bits/ 64 <160000000>;
361 }; 369 };
362 opp@200000000 { 370 opp-200000000 {
363 opp-hz = /bits/ 64 <200000000>; 371 opp-hz = /bits/ 64 <200000000>;
364 }; 372 };
365 }; 373 };
@@ -368,10 +376,10 @@
368 compatible = "operating-points-v2"; 376 compatible = "operating-points-v2";
369 opp-shared; 377 opp-shared;
370 378
371 opp@5000000 { 379 opp-5000000 {
372 opp-hz = /bits/ 64 <5000000>; 380 opp-hz = /bits/ 64 <5000000>;
373 }; 381 };
374 opp@100000000 { 382 opp-100000000 {
375 opp-hz = /bits/ 64 <100000000>; 383 opp-hz = /bits/ 64 <100000000>;
376 }; 384 };
377 }; 385 };
@@ -380,10 +388,10 @@
380 compatible = "operating-points-v2"; 388 compatible = "operating-points-v2";
381 opp-shared; 389 opp-shared;
382 390
383 opp@10000000 { 391 opp-10000000 {
384 opp-hz = /bits/ 64 <10000000>; 392 opp-hz = /bits/ 64 <10000000>;
385 }; 393 };
386 opp@134000000 { 394 opp-134000000 {
387 opp-hz = /bits/ 64 <134000000>; 395 opp-hz = /bits/ 64 <134000000>;
388 }; 396 };
389 }; 397 };
@@ -392,13 +400,13 @@
392 compatible = "operating-points-v2"; 400 compatible = "operating-points-v2";
393 opp-shared; 401 opp-shared;
394 402
395 opp@100000000 { 403 opp-100000000 {
396 opp-hz = /bits/ 64 <100000000>; 404 opp-hz = /bits/ 64 <100000000>;
397 }; 405 };
398 opp@134000000 { 406 opp-134000000 {
399 opp-hz = /bits/ 64 <134000000>; 407 opp-hz = /bits/ 64 <134000000>;
400 }; 408 };
401 opp@160000000 { 409 opp-160000000 {
402 opp-hz = /bits/ 64 <160000000>; 410 opp-hz = /bits/ 64 <160000000>;
403 }; 411 };
404 }; 412 };
@@ -407,13 +415,13 @@
407 compatible = "operating-points-v2"; 415 compatible = "operating-points-v2";
408 opp-shared; 416 opp-shared;
409 417
410 opp@100000000 { 418 opp-100000000 {
411 opp-hz = /bits/ 64 <100000000>; 419 opp-hz = /bits/ 64 <100000000>;
412 }; 420 };
413 opp@160000000 { 421 opp-160000000 {
414 opp-hz = /bits/ 64 <160000000>; 422 opp-hz = /bits/ 64 <160000000>;
415 }; 423 };
416 opp@200000000 { 424 opp-200000000 {
417 opp-hz = /bits/ 64 <200000000>; 425 opp-hz = /bits/ 64 <200000000>;
418 }; 426 };
419 }; 427 };
diff --git a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
index a36cd36a26b8..4cd62487bb16 100644
--- a/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
+++ b/arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
@@ -495,7 +495,3 @@
495 vtmu-supply = <&ldo16_reg>; 495 vtmu-supply = <&ldo16_reg>;
496 status = "okay"; 496 status = "okay";
497}; 497};
498
499&watchdog {
500 status = "okay";
501};
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index 78f118cb73d4..0f1ff792fe44 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -555,7 +555,3 @@
555 vtmu-supply = <&ldo10_reg>; 555 vtmu-supply = <&ldo10_reg>;
556 status = "okay"; 556 status = "okay";
557}; 557};
558
559&watchdog {
560 status = "okay";
561};
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
index a1ab6f94bb64..7a83e2df18a6 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -541,7 +541,3 @@
541&serial_3 { 541&serial_3 {
542 status = "okay"; 542 status = "okay";
543}; 543};
544
545&watchdog {
546 status = "okay";
547};
diff --git a/arch/arm/boot/dts/exynos4412-prime.dtsi b/arch/arm/boot/dts/exynos4412-prime.dtsi
index e75bc170c89c..a67bd953d754 100644
--- a/arch/arm/boot/dts/exynos4412-prime.dtsi
+++ b/arch/arm/boot/dts/exynos4412-prime.dtsi
@@ -20,12 +20,12 @@
20}; 20};
21 21
22&cpu0_opp_table { 22&cpu0_opp_table {
23 opp@1600000000 { 23 opp-1600000000 {
24 opp-hz = /bits/ 64 <1600000000>; 24 opp-hz = /bits/ 64 <1600000000>;
25 opp-microvolt = <1350000>; 25 opp-microvolt = <1350000>;
26 clock-latency-ns = <200000>; 26 clock-latency-ns = <200000>;
27 }; 27 };
28 opp@1704000000 { 28 opp-1704000000 {
29 opp-hz = /bits/ 64 <1704000000>; 29 opp-hz = /bits/ 64 <1704000000>;
30 opp-microvolt = <1350000>; 30 opp-microvolt = <1350000>;
31 clock-latency-ns = <200000>; 31 clock-latency-ns = <200000>;
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 41ecd6d465a7..82221a00444d 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -385,6 +385,8 @@
385&dsi_0 { 385&dsi_0 {
386 vddcore-supply = <&ldo8_reg>; 386 vddcore-supply = <&ldo8_reg>;
387 vddio-supply = <&ldo10_reg>; 387 vddio-supply = <&ldo10_reg>;
388 samsung,burst-clock-frequency = <500000000>;
389 samsung,esc-clock-frequency = <20000000>;
388 samsung,pll-clock-frequency = <24000000>; 390 samsung,pll-clock-frequency = <24000000>;
389 status = "okay"; 391 status = "okay";
390 392
diff --git a/arch/arm/boot/dts/exynos4412.dtsi b/arch/arm/boot/dts/exynos4412.dtsi
index 235bbb69ad7c..7ff03a7e8fb9 100644
--- a/arch/arm/boot/dts/exynos4412.dtsi
+++ b/arch/arm/boot/dts/exynos4412.dtsi
@@ -76,73 +76,73 @@
76 compatible = "operating-points-v2"; 76 compatible = "operating-points-v2";
77 opp-shared; 77 opp-shared;
78 78
79 opp@200000000 { 79 opp-200000000 {
80 opp-hz = /bits/ 64 <200000000>; 80 opp-hz = /bits/ 64 <200000000>;
81 opp-microvolt = <900000>; 81 opp-microvolt = <900000>;
82 clock-latency-ns = <200000>; 82 clock-latency-ns = <200000>;
83 }; 83 };
84 opp@300000000 { 84 opp-300000000 {
85 opp-hz = /bits/ 64 <300000000>; 85 opp-hz = /bits/ 64 <300000000>;
86 opp-microvolt = <900000>; 86 opp-microvolt = <900000>;
87 clock-latency-ns = <200000>; 87 clock-latency-ns = <200000>;
88 }; 88 };
89 opp@400000000 { 89 opp-400000000 {
90 opp-hz = /bits/ 64 <400000000>; 90 opp-hz = /bits/ 64 <400000000>;
91 opp-microvolt = <925000>; 91 opp-microvolt = <925000>;
92 clock-latency-ns = <200000>; 92 clock-latency-ns = <200000>;
93 }; 93 };
94 opp@500000000 { 94 opp-500000000 {
95 opp-hz = /bits/ 64 <500000000>; 95 opp-hz = /bits/ 64 <500000000>;
96 opp-microvolt = <950000>; 96 opp-microvolt = <950000>;
97 clock-latency-ns = <200000>; 97 clock-latency-ns = <200000>;
98 }; 98 };
99 opp@600000000 { 99 opp-600000000 {
100 opp-hz = /bits/ 64 <600000000>; 100 opp-hz = /bits/ 64 <600000000>;
101 opp-microvolt = <975000>; 101 opp-microvolt = <975000>;
102 clock-latency-ns = <200000>; 102 clock-latency-ns = <200000>;
103 }; 103 };
104 opp@700000000 { 104 opp-700000000 {
105 opp-hz = /bits/ 64 <700000000>; 105 opp-hz = /bits/ 64 <700000000>;
106 opp-microvolt = <987500>; 106 opp-microvolt = <987500>;
107 clock-latency-ns = <200000>; 107 clock-latency-ns = <200000>;
108 }; 108 };
109 opp@800000000 { 109 opp-800000000 {
110 opp-hz = /bits/ 64 <800000000>; 110 opp-hz = /bits/ 64 <800000000>;
111 opp-microvolt = <1000000>; 111 opp-microvolt = <1000000>;
112 clock-latency-ns = <200000>; 112 clock-latency-ns = <200000>;
113 opp-suspend; 113 opp-suspend;
114 }; 114 };
115 opp@900000000 { 115 opp-900000000 {
116 opp-hz = /bits/ 64 <900000000>; 116 opp-hz = /bits/ 64 <900000000>;
117 opp-microvolt = <1037500>; 117 opp-microvolt = <1037500>;
118 clock-latency-ns = <200000>; 118 clock-latency-ns = <200000>;
119 }; 119 };
120 opp@1000000000 { 120 opp-1000000000 {
121 opp-hz = /bits/ 64 <1000000000>; 121 opp-hz = /bits/ 64 <1000000000>;
122 opp-microvolt = <1087500>; 122 opp-microvolt = <1087500>;
123 clock-latency-ns = <200000>; 123 clock-latency-ns = <200000>;
124 }; 124 };
125 opp@1100000000 { 125 opp-1100000000 {
126 opp-hz = /bits/ 64 <1100000000>; 126 opp-hz = /bits/ 64 <1100000000>;
127 opp-microvolt = <1137500>; 127 opp-microvolt = <1137500>;
128 clock-latency-ns = <200000>; 128 clock-latency-ns = <200000>;
129 }; 129 };
130 opp@1200000000 { 130 opp-1200000000 {
131 opp-hz = /bits/ 64 <1200000000>; 131 opp-hz = /bits/ 64 <1200000000>;
132 opp-microvolt = <1187500>; 132 opp-microvolt = <1187500>;
133 clock-latency-ns = <200000>; 133 clock-latency-ns = <200000>;
134 }; 134 };
135 opp@1300000000 { 135 opp-1300000000 {
136 opp-hz = /bits/ 64 <1300000000>; 136 opp-hz = /bits/ 64 <1300000000>;
137 opp-microvolt = <1250000>; 137 opp-microvolt = <1250000>;
138 clock-latency-ns = <200000>; 138 clock-latency-ns = <200000>;
139 }; 139 };
140 opp@1400000000 { 140 opp-1400000000 {
141 opp-hz = /bits/ 64 <1400000000>; 141 opp-hz = /bits/ 64 <1400000000>;
142 opp-microvolt = <1287500>; 142 opp-microvolt = <1287500>;
143 clock-latency-ns = <200000>; 143 clock-latency-ns = <200000>;
144 }; 144 };
145 cpu0_opp_1500: opp@1500000000 { 145 cpu0_opp_1500: opp-1500000000 {
146 opp-hz = /bits/ 64 <1500000000>; 146 opp-hz = /bits/ 64 <1500000000>;
147 opp-microvolt = <1350000>; 147 opp-microvolt = <1350000>;
148 clock-latency-ns = <200000>; 148 clock-latency-ns = <200000>;
@@ -215,6 +215,15 @@
215 }; 215 };
216 }; 216 };
217 217
218 watchdog: watchdog@10060000 {
219 compatible = "samsung,exynos5250-wdt";
220 reg = <0x10060000 0x100>;
221 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
222 clocks = <&clock CLK_WDT>;
223 clock-names = "watchdog";
224 samsung,syscon-phandle = <&pmu_system_controller>;
225 };
226
218 adc: adc@126C0000 { 227 adc: adc@126C0000 {
219 compatible = "samsung,exynos-adc-v1"; 228 compatible = "samsung,exynos-adc-v1";
220 reg = <0x126C0000 0x100>; 229 reg = <0x126C0000 0x100>;
@@ -433,23 +442,23 @@
433 compatible = "operating-points-v2"; 442 compatible = "operating-points-v2";
434 opp-shared; 443 opp-shared;
435 444
436 opp@100000000 { 445 opp-100000000 {
437 opp-hz = /bits/ 64 <100000000>; 446 opp-hz = /bits/ 64 <100000000>;
438 opp-microvolt = <900000>; 447 opp-microvolt = <900000>;
439 }; 448 };
440 opp@134000000 { 449 opp-134000000 {
441 opp-hz = /bits/ 64 <134000000>; 450 opp-hz = /bits/ 64 <134000000>;
442 opp-microvolt = <900000>; 451 opp-microvolt = <900000>;
443 }; 452 };
444 opp@160000000 { 453 opp-160000000 {
445 opp-hz = /bits/ 64 <160000000>; 454 opp-hz = /bits/ 64 <160000000>;
446 opp-microvolt = <900000>; 455 opp-microvolt = <900000>;
447 }; 456 };
448 opp@267000000 { 457 opp-267000000 {
449 opp-hz = /bits/ 64 <267000000>; 458 opp-hz = /bits/ 64 <267000000>;
450 opp-microvolt = <950000>; 459 opp-microvolt = <950000>;
451 }; 460 };
452 opp@400000000 { 461 opp-400000000 {
453 opp-hz = /bits/ 64 <400000000>; 462 opp-hz = /bits/ 64 <400000000>;
454 opp-microvolt = <1050000>; 463 opp-microvolt = <1050000>;
455 }; 464 };
@@ -459,16 +468,16 @@
459 compatible = "operating-points-v2"; 468 compatible = "operating-points-v2";
460 opp-shared; 469 opp-shared;
461 470
462 opp@100000000 { 471 opp-100000000 {
463 opp-hz = /bits/ 64 <100000000>; 472 opp-hz = /bits/ 64 <100000000>;
464 }; 473 };
465 opp@134000000 { 474 opp-134000000 {
466 opp-hz = /bits/ 64 <134000000>; 475 opp-hz = /bits/ 64 <134000000>;
467 }; 476 };
468 opp@160000000 { 477 opp-160000000 {
469 opp-hz = /bits/ 64 <160000000>; 478 opp-hz = /bits/ 64 <160000000>;
470 }; 479 };
471 opp@267000000 { 480 opp-267000000 {
472 opp-hz = /bits/ 64 <267000000>; 481 opp-hz = /bits/ 64 <267000000>;
473 }; 482 };
474 }; 483 };
@@ -525,19 +534,19 @@
525 compatible = "operating-points-v2"; 534 compatible = "operating-points-v2";
526 opp-shared; 535 opp-shared;
527 536
528 opp@100000000 { 537 opp-100000000 {
529 opp-hz = /bits/ 64 <100000000>; 538 opp-hz = /bits/ 64 <100000000>;
530 opp-microvolt = <900000>; 539 opp-microvolt = <900000>;
531 }; 540 };
532 opp@134000000 { 541 opp-134000000 {
533 opp-hz = /bits/ 64 <134000000>; 542 opp-hz = /bits/ 64 <134000000>;
534 opp-microvolt = <925000>; 543 opp-microvolt = <925000>;
535 }; 544 };
536 opp@160000000 { 545 opp-160000000 {
537 opp-hz = /bits/ 64 <160000000>; 546 opp-hz = /bits/ 64 <160000000>;
538 opp-microvolt = <950000>; 547 opp-microvolt = <950000>;
539 }; 548 };
540 opp@200000000 { 549 opp-200000000 {
541 opp-hz = /bits/ 64 <200000000>; 550 opp-hz = /bits/ 64 <200000000>;
542 opp-microvolt = <1000000>; 551 opp-microvolt = <1000000>;
543 }; 552 };
@@ -547,10 +556,10 @@
547 compatible = "operating-points-v2"; 556 compatible = "operating-points-v2";
548 opp-shared; 557 opp-shared;
549 558
550 opp@160000000 { 559 opp-160000000 {
551 opp-hz = /bits/ 64 <160000000>; 560 opp-hz = /bits/ 64 <160000000>;
552 }; 561 };
553 opp@200000000 { 562 opp-200000000 {
554 opp-hz = /bits/ 64 <200000000>; 563 opp-hz = /bits/ 64 <200000000>;
555 }; 564 };
556 }; 565 };
@@ -559,10 +568,10 @@
559 compatible = "operating-points-v2"; 568 compatible = "operating-points-v2";
560 opp-shared; 569 opp-shared;
561 570
562 opp@100000000 { 571 opp-100000000 {
563 opp-hz = /bits/ 64 <100000000>; 572 opp-hz = /bits/ 64 <100000000>;
564 }; 573 };
565 opp@134000000 { 574 opp-134000000 {
566 opp-hz = /bits/ 64 <134000000>; 575 opp-hz = /bits/ 64 <134000000>;
567 }; 576 };
568 }; 577 };
@@ -571,10 +580,10 @@
571 compatible = "operating-points-v2"; 580 compatible = "operating-points-v2";
572 opp-shared; 581 opp-shared;
573 582
574 opp@50000000 { 583 opp-50000000 {
575 opp-hz = /bits/ 64 <50000000>; 584 opp-hz = /bits/ 64 <50000000>;
576 }; 585 };
577 opp@100000000 { 586 opp-100000000 {
578 opp-hz = /bits/ 64 <100000000>; 587 opp-hz = /bits/ 64 <100000000>;
579 }; 588 };
580 }; 589 };
diff --git a/arch/arm/boot/dts/exynos5420-tmu-sensor-conf.dtsi b/arch/arm/boot/dts/exynos5420-tmu-sensor-conf.dtsi
new file mode 100644
index 000000000000..c8771c660550
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5420-tmu-sensor-conf.dtsi
@@ -0,0 +1,25 @@
1/*
2 * Device tree sources for Exynos5420 TMU sensor configuration
3 *
4 * Copyright (c) 2014 Lukasz Majewski <l.majewski@samsung.com>
5 * Copyright (c) 2017 Krzysztof Kozlowski <krzk@kernel.org>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 *
11 */
12
13#include <dt-bindings/thermal/thermal_exynos.h>
14
15#thermal-sensor-cells = <0>;
16samsung,tmu_gain = <8>;
17samsung,tmu_reference_voltage = <16>;
18samsung,tmu_noise_cancel_mode = <4>;
19samsung,tmu_efuse_value = <55>;
20samsung,tmu_min_efuse_value = <0>;
21samsung,tmu_max_efuse_value = <100>;
22samsung,tmu_first_point_trim = <25>;
23samsung,tmu_second_point_trim = <85>;
24samsung,tmu_default_temp_offset = <50>;
25samsung,tmu_cal_type = <TYPE_ONE_POINT_TRIMMING>;
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 7dc9dc82afd8..0db0bcf8da36 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -49,62 +49,62 @@
49 cluster_a15_opp_table: opp_table0 { 49 cluster_a15_opp_table: opp_table0 {
50 compatible = "operating-points-v2"; 50 compatible = "operating-points-v2";
51 opp-shared; 51 opp-shared;
52 opp@1800000000 { 52 opp-1800000000 {
53 opp-hz = /bits/ 64 <1800000000>; 53 opp-hz = /bits/ 64 <1800000000>;
54 opp-microvolt = <1250000>; 54 opp-microvolt = <1250000>;
55 clock-latency-ns = <140000>; 55 clock-latency-ns = <140000>;
56 }; 56 };
57 opp@1700000000 { 57 opp-1700000000 {
58 opp-hz = /bits/ 64 <1700000000>; 58 opp-hz = /bits/ 64 <1700000000>;
59 opp-microvolt = <1212500>; 59 opp-microvolt = <1212500>;
60 clock-latency-ns = <140000>; 60 clock-latency-ns = <140000>;
61 }; 61 };
62 opp@1600000000 { 62 opp-1600000000 {
63 opp-hz = /bits/ 64 <1600000000>; 63 opp-hz = /bits/ 64 <1600000000>;
64 opp-microvolt = <1175000>; 64 opp-microvolt = <1175000>;
65 clock-latency-ns = <140000>; 65 clock-latency-ns = <140000>;
66 }; 66 };
67 opp@1500000000 { 67 opp-1500000000 {
68 opp-hz = /bits/ 64 <1500000000>; 68 opp-hz = /bits/ 64 <1500000000>;
69 opp-microvolt = <1137500>; 69 opp-microvolt = <1137500>;
70 clock-latency-ns = <140000>; 70 clock-latency-ns = <140000>;
71 }; 71 };
72 opp@1400000000 { 72 opp-1400000000 {
73 opp-hz = /bits/ 64 <1400000000>; 73 opp-hz = /bits/ 64 <1400000000>;
74 opp-microvolt = <1112500>; 74 opp-microvolt = <1112500>;
75 clock-latency-ns = <140000>; 75 clock-latency-ns = <140000>;
76 }; 76 };
77 opp@1300000000 { 77 opp-1300000000 {
78 opp-hz = /bits/ 64 <1300000000>; 78 opp-hz = /bits/ 64 <1300000000>;
79 opp-microvolt = <1062500>; 79 opp-microvolt = <1062500>;
80 clock-latency-ns = <140000>; 80 clock-latency-ns = <140000>;
81 }; 81 };
82 opp@1200000000 { 82 opp-1200000000 {
83 opp-hz = /bits/ 64 <1200000000>; 83 opp-hz = /bits/ 64 <1200000000>;
84 opp-microvolt = <1037500>; 84 opp-microvolt = <1037500>;
85 clock-latency-ns = <140000>; 85 clock-latency-ns = <140000>;
86 }; 86 };
87 opp@1100000000 { 87 opp-1100000000 {
88 opp-hz = /bits/ 64 <1100000000>; 88 opp-hz = /bits/ 64 <1100000000>;
89 opp-microvolt = <1012500>; 89 opp-microvolt = <1012500>;
90 clock-latency-ns = <140000>; 90 clock-latency-ns = <140000>;
91 }; 91 };
92 opp@1000000000 { 92 opp-1000000000 {
93 opp-hz = /bits/ 64 <1000000000>; 93 opp-hz = /bits/ 64 <1000000000>;
94 opp-microvolt = < 987500>; 94 opp-microvolt = < 987500>;
95 clock-latency-ns = <140000>; 95 clock-latency-ns = <140000>;
96 }; 96 };
97 opp@900000000 { 97 opp-900000000 {
98 opp-hz = /bits/ 64 <900000000>; 98 opp-hz = /bits/ 64 <900000000>;
99 opp-microvolt = < 962500>; 99 opp-microvolt = < 962500>;
100 clock-latency-ns = <140000>; 100 clock-latency-ns = <140000>;
101 }; 101 };
102 opp@800000000 { 102 opp-800000000 {
103 opp-hz = /bits/ 64 <800000000>; 103 opp-hz = /bits/ 64 <800000000>;
104 opp-microvolt = < 937500>; 104 opp-microvolt = < 937500>;
105 clock-latency-ns = <140000>; 105 clock-latency-ns = <140000>;
106 }; 106 };
107 opp@700000000 { 107 opp-700000000 {
108 opp-hz = /bits/ 64 <700000000>; 108 opp-hz = /bits/ 64 <700000000>;
109 opp-microvolt = < 912500>; 109 opp-microvolt = < 912500>;
110 clock-latency-ns = <140000>; 110 clock-latency-ns = <140000>;
@@ -114,42 +114,42 @@
114 cluster_a7_opp_table: opp_table1 { 114 cluster_a7_opp_table: opp_table1 {
115 compatible = "operating-points-v2"; 115 compatible = "operating-points-v2";
116 opp-shared; 116 opp-shared;
117 opp@1300000000 { 117 opp-1300000000 {
118 opp-hz = /bits/ 64 <1300000000>; 118 opp-hz = /bits/ 64 <1300000000>;
119 opp-microvolt = <1275000>; 119 opp-microvolt = <1275000>;
120 clock-latency-ns = <140000>; 120 clock-latency-ns = <140000>;
121 }; 121 };
122 opp@1200000000 { 122 opp-1200000000 {
123 opp-hz = /bits/ 64 <1200000000>; 123 opp-hz = /bits/ 64 <1200000000>;
124 opp-microvolt = <1212500>; 124 opp-microvolt = <1212500>;
125 clock-latency-ns = <140000>; 125 clock-latency-ns = <140000>;
126 }; 126 };
127 opp@1100000000 { 127 opp-1100000000 {
128 opp-hz = /bits/ 64 <1100000000>; 128 opp-hz = /bits/ 64 <1100000000>;
129 opp-microvolt = <1162500>; 129 opp-microvolt = <1162500>;
130 clock-latency-ns = <140000>; 130 clock-latency-ns = <140000>;
131 }; 131 };
132 opp@1000000000 { 132 opp-1000000000 {
133 opp-hz = /bits/ 64 <1000000000>; 133 opp-hz = /bits/ 64 <1000000000>;
134 opp-microvolt = <1112500>; 134 opp-microvolt = <1112500>;
135 clock-latency-ns = <140000>; 135 clock-latency-ns = <140000>;
136 }; 136 };
137 opp@900000000 { 137 opp-900000000 {
138 opp-hz = /bits/ 64 <900000000>; 138 opp-hz = /bits/ 64 <900000000>;
139 opp-microvolt = <1062500>; 139 opp-microvolt = <1062500>;
140 clock-latency-ns = <140000>; 140 clock-latency-ns = <140000>;
141 }; 141 };
142 opp@800000000 { 142 opp-800000000 {
143 opp-hz = /bits/ 64 <800000000>; 143 opp-hz = /bits/ 64 <800000000>;
144 opp-microvolt = <1025000>; 144 opp-microvolt = <1025000>;
145 clock-latency-ns = <140000>; 145 clock-latency-ns = <140000>;
146 }; 146 };
147 opp@700000000 { 147 opp-700000000 {
148 opp-hz = /bits/ 64 <700000000>; 148 opp-hz = /bits/ 64 <700000000>;
149 opp-microvolt = <975000>; 149 opp-microvolt = <975000>;
150 clock-latency-ns = <140000>; 150 clock-latency-ns = <140000>;
151 }; 151 };
152 opp@600000000 { 152 opp-600000000 {
153 opp-hz = /bits/ 64 <600000000>; 153 opp-hz = /bits/ 64 <600000000>;
154 opp-microvolt = <937500>; 154 opp-microvolt = <937500>;
155 clock-latency-ns = <140000>; 155 clock-latency-ns = <140000>;
@@ -699,7 +699,7 @@
699 interrupts = <0 65 IRQ_TYPE_LEVEL_HIGH>; 699 interrupts = <0 65 IRQ_TYPE_LEVEL_HIGH>;
700 clocks = <&clock CLK_TMU>; 700 clocks = <&clock CLK_TMU>;
701 clock-names = "tmu_apbif"; 701 clock-names = "tmu_apbif";
702 #include "exynos4412-tmu-sensor-conf.dtsi" 702 #include "exynos5420-tmu-sensor-conf.dtsi"
703 }; 703 };
704 704
705 tmu_cpu1: tmu@10064000 { 705 tmu_cpu1: tmu@10064000 {
@@ -708,7 +708,7 @@
708 interrupts = <0 183 IRQ_TYPE_LEVEL_HIGH>; 708 interrupts = <0 183 IRQ_TYPE_LEVEL_HIGH>;
709 clocks = <&clock CLK_TMU>; 709 clocks = <&clock CLK_TMU>;
710 clock-names = "tmu_apbif"; 710 clock-names = "tmu_apbif";
711 #include "exynos4412-tmu-sensor-conf.dtsi" 711 #include "exynos5420-tmu-sensor-conf.dtsi"
712 }; 712 };
713 713
714 tmu_cpu2: tmu@10068000 { 714 tmu_cpu2: tmu@10068000 {
@@ -717,7 +717,7 @@
717 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>; 717 interrupts = <0 184 IRQ_TYPE_LEVEL_HIGH>;
718 clocks = <&clock CLK_TMU>, <&clock CLK_TMU>; 718 clocks = <&clock CLK_TMU>, <&clock CLK_TMU>;
719 clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 719 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
720 #include "exynos4412-tmu-sensor-conf.dtsi" 720 #include "exynos5420-tmu-sensor-conf.dtsi"
721 }; 721 };
722 722
723 tmu_cpu3: tmu@1006c000 { 723 tmu_cpu3: tmu@1006c000 {
@@ -726,7 +726,7 @@
726 interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>; 726 interrupts = <0 185 IRQ_TYPE_LEVEL_HIGH>;
727 clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>; 727 clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>;
728 clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 728 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
729 #include "exynos4412-tmu-sensor-conf.dtsi" 729 #include "exynos5420-tmu-sensor-conf.dtsi"
730 }; 730 };
731 731
732 tmu_gpu: tmu@100a0000 { 732 tmu_gpu: tmu@100a0000 {
@@ -735,7 +735,7 @@
735 interrupts = <0 215 IRQ_TYPE_LEVEL_HIGH>; 735 interrupts = <0 215 IRQ_TYPE_LEVEL_HIGH>;
736 clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>; 736 clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>;
737 clock-names = "tmu_apbif", "tmu_triminfo_apbif"; 737 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
738 #include "exynos4412-tmu-sensor-conf.dtsi" 738 #include "exynos5420-tmu-sensor-conf.dtsi"
739 }; 739 };
740 740
741 sysmmu_g2dr: sysmmu@0x10A60000 { 741 sysmmu_g2dr: sysmmu@0x10A60000 {
diff --git a/arch/arm/boot/dts/exynos5440.dtsi b/arch/arm/boot/dts/exynos5440.dtsi
index 77d35bb92950..a4ea018464fc 100644
--- a/arch/arm/boot/dts/exynos5440.dtsi
+++ b/arch/arm/boot/dts/exynos5440.dtsi
@@ -189,7 +189,7 @@
189 }; 189 };
190 190
191 watchdog@110000 { 191 watchdog@110000 {
192 compatible = "samsung,s3c2410-wdt"; 192 compatible = "samsung,s3c6410-wdt";
193 reg = <0x110000 0x1000>; 193 reg = <0x110000 0x1000>;
194 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>; 194 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
195 clocks = <&clock CLK_B_125>; 195 clocks = <&clock CLK_B_125>;
@@ -290,11 +290,22 @@
290 clock-names = "usbhost"; 290 clock-names = "usbhost";
291 }; 291 };
292 292
293 pcie_phy0: pcie-phy@270000 {
294 #phy-cells = <0>;
295 compatible = "samsung,exynos5440-pcie-phy";
296 reg = <0x270000 0x1000>, <0x271000 0x40>;
297 };
298
299 pcie_phy1: pcie-phy@272000 {
300 #phy-cells = <0>;
301 compatible = "samsung,exynos5440-pcie-phy";
302 reg = <0x272000 0x1000>, <0x271040 0x40>;
303 };
304
293 pcie_0: pcie@290000 { 305 pcie_0: pcie@290000 {
294 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie"; 306 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
295 reg = <0x290000 0x1000 307 reg = <0x290000 0x1000>, <0x40000000 0x1000>;
296 0x270000 0x1000 308 reg-names = "elbi", "config";
297 0x271000 0x40>;
298 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>, 309 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
299 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>, 310 <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
300 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; 311 <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
@@ -303,8 +314,8 @@
303 #address-cells = <3>; 314 #address-cells = <3>;
304 #size-cells = <2>; 315 #size-cells = <2>;
305 device_type = "pci"; 316 device_type = "pci";
306 ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000 /* configuration space */ 317 phys = <&pcie_phy0>;
307 0x81000000 0 0 0x40001000 0 0x00010000 /* downstream I/O */ 318 ranges = <0x81000000 0 0 0x40001000 0 0x00010000 /* downstream I/O */
308 0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */ 319 0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
309 #interrupt-cells = <1>; 320 #interrupt-cells = <1>;
310 interrupt-map-mask = <0 0 0 0>; 321 interrupt-map-mask = <0 0 0 0>;
@@ -315,9 +326,8 @@
315 326
316 pcie_1: pcie@2a0000 { 327 pcie_1: pcie@2a0000 {
317 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie"; 328 compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
318 reg = <0x2a0000 0x1000 329 reg = <0x2a0000 0x1000>, <0x60000000 0x1000>;
319 0x272000 0x1000 330 reg-names = "elbi", "config";
320 0x271040 0x40>;
321 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>, 331 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
322 <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, 332 <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
323 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 333 <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
@@ -326,8 +336,8 @@
326 #address-cells = <3>; 336 #address-cells = <3>;
327 #size-cells = <2>; 337 #size-cells = <2>;
328 device_type = "pci"; 338 device_type = "pci";
329 ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000 /* configuration space */ 339 phys = <&pcie_phy1>;
330 0x81000000 0 0 0x60001000 0 0x00010000 /* downstream I/O */ 340 ranges = <0x81000000 0 0 0x60001000 0 0x00010000 /* downstream I/O */
331 0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */ 341 0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
332 #interrupt-cells = <1>; 342 #interrupt-cells = <1>;
333 interrupt-map-mask = <0 0 0 0>; 343 interrupt-map-mask = <0 0 0 0>;
diff --git a/arch/arm/boot/dts/exynos5800.dtsi b/arch/arm/boot/dts/exynos5800.dtsi
index 8213016803e5..9ddb6bacac5a 100644
--- a/arch/arm/boot/dts/exynos5800.dtsi
+++ b/arch/arm/boot/dts/exynos5800.dtsi
@@ -24,60 +24,60 @@
24}; 24};
25 25
26&cluster_a15_opp_table { 26&cluster_a15_opp_table {
27 opp@1700000000 { 27 opp-1700000000 {
28 opp-microvolt = <1250000>; 28 opp-microvolt = <1250000>;
29 }; 29 };
30 opp@1600000000 { 30 opp-1600000000 {
31 opp-microvolt = <1250000>; 31 opp-microvolt = <1250000>;
32 }; 32 };
33 opp@1500000000 { 33 opp-1500000000 {
34 opp-microvolt = <1100000>; 34 opp-microvolt = <1100000>;
35 }; 35 };
36 opp@1400000000 { 36 opp-1400000000 {
37 opp-microvolt = <1100000>; 37 opp-microvolt = <1100000>;
38 }; 38 };
39 opp@1300000000 { 39 opp-1300000000 {
40 opp-microvolt = <1100000>; 40 opp-microvolt = <1100000>;
41 }; 41 };
42 opp@1200000000 { 42 opp-1200000000 {
43 opp-microvolt = <1000000>; 43 opp-microvolt = <1000000>;
44 }; 44 };
45 opp@1100000000 { 45 opp-1100000000 {
46 opp-microvolt = <1000000>; 46 opp-microvolt = <1000000>;
47 }; 47 };
48 opp@1000000000 { 48 opp-1000000000 {
49 opp-microvolt = <1000000>; 49 opp-microvolt = <1000000>;
50 }; 50 };
51 opp@900000000 { 51 opp-900000000 {
52 opp-microvolt = <1000000>; 52 opp-microvolt = <1000000>;
53 }; 53 };
54 opp@800000000 { 54 opp-800000000 {
55 opp-microvolt = <900000>; 55 opp-microvolt = <900000>;
56 }; 56 };
57 opp@700000000 { 57 opp-700000000 {
58 opp-microvolt = <900000>; 58 opp-microvolt = <900000>;
59 }; 59 };
60 opp@600000000 { 60 opp-600000000 {
61 opp-hz = /bits/ 64 <600000000>; 61 opp-hz = /bits/ 64 <600000000>;
62 opp-microvolt = <900000>; 62 opp-microvolt = <900000>;
63 clock-latency-ns = <140000>; 63 clock-latency-ns = <140000>;
64 }; 64 };
65 opp@500000000 { 65 opp-500000000 {
66 opp-hz = /bits/ 64 <500000000>; 66 opp-hz = /bits/ 64 <500000000>;
67 opp-microvolt = <900000>; 67 opp-microvolt = <900000>;
68 clock-latency-ns = <140000>; 68 clock-latency-ns = <140000>;
69 }; 69 };
70 opp@400000000 { 70 opp-400000000 {
71 opp-hz = /bits/ 64 <400000000>; 71 opp-hz = /bits/ 64 <400000000>;
72 opp-microvolt = <900000>; 72 opp-microvolt = <900000>;
73 clock-latency-ns = <140000>; 73 clock-latency-ns = <140000>;
74 }; 74 };
75 opp@300000000 { 75 opp-300000000 {
76 opp-hz = /bits/ 64 <300000000>; 76 opp-hz = /bits/ 64 <300000000>;
77 opp-microvolt = <900000>; 77 opp-microvolt = <900000>;
78 clock-latency-ns = <140000>; 78 clock-latency-ns = <140000>;
79 }; 79 };
80 opp@200000000 { 80 opp-200000000 {
81 opp-hz = /bits/ 64 <200000000>; 81 opp-hz = /bits/ 64 <200000000>;
82 opp-microvolt = <900000>; 82 opp-microvolt = <900000>;
83 clock-latency-ns = <140000>; 83 clock-latency-ns = <140000>;
@@ -85,46 +85,46 @@
85}; 85};
86 86
87&cluster_a7_opp_table { 87&cluster_a7_opp_table {
88 opp@1300000000 { 88 opp-1300000000 {
89 opp-microvolt = <1250000>; 89 opp-microvolt = <1250000>;
90 }; 90 };
91 opp@1200000000 { 91 opp-1200000000 {
92 opp-microvolt = <1250000>; 92 opp-microvolt = <1250000>;
93 }; 93 };
94 opp@1100000000 { 94 opp-1100000000 {
95 opp-microvolt = <1250000>; 95 opp-microvolt = <1250000>;
96 }; 96 };
97 opp@1000000000 { 97 opp-1000000000 {
98 opp-microvolt = <1100000>; 98 opp-microvolt = <1100000>;
99 }; 99 };
100 opp@900000000 { 100 opp-900000000 {
101 opp-microvolt = <1100000>; 101 opp-microvolt = <1100000>;
102 }; 102 };
103 opp@800000000 { 103 opp-800000000 {
104 opp-microvolt = <1100000>; 104 opp-microvolt = <1100000>;
105 }; 105 };
106 opp@700000000 { 106 opp-700000000 {
107 opp-microvolt = <1000000>; 107 opp-microvolt = <1000000>;
108 }; 108 };
109 opp@600000000 { 109 opp-600000000 {
110 opp-microvolt = <1000000>; 110 opp-microvolt = <1000000>;
111 }; 111 };
112 opp@500000000 { 112 opp-500000000 {
113 opp-hz = /bits/ 64 <500000000>; 113 opp-hz = /bits/ 64 <500000000>;
114 opp-microvolt = <1000000>; 114 opp-microvolt = <1000000>;
115 clock-latency-ns = <140000>; 115 clock-latency-ns = <140000>;
116 }; 116 };
117 opp@400000000 { 117 opp-400000000 {
118 opp-hz = /bits/ 64 <400000000>; 118 opp-hz = /bits/ 64 <400000000>;
119 opp-microvolt = <1000000>; 119 opp-microvolt = <1000000>;
120 clock-latency-ns = <140000>; 120 clock-latency-ns = <140000>;
121 }; 121 };
122 opp@300000000 { 122 opp-300000000 {
123 opp-hz = /bits/ 64 <300000000>; 123 opp-hz = /bits/ 64 <300000000>;
124 opp-microvolt = <900000>; 124 opp-microvolt = <900000>;
125 clock-latency-ns = <140000>; 125 clock-latency-ns = <140000>;
126 }; 126 };
127 opp@200000000 { 127 opp-200000000 {
128 opp-hz = /bits/ 64 <200000000>; 128 opp-hz = /bits/ 64 <200000000>;
129 opp-microvolt = <900000>; 129 opp-microvolt = <900000>;
130 clock-latency-ns = <140000>; 130 clock-latency-ns = <140000>;
diff --git a/arch/arm/boot/dts/gemini-nas4220b.dts b/arch/arm/boot/dts/gemini-nas4220b.dts
new file mode 100644
index 000000000000..7668ba52158e
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-nas4220b.dts
@@ -0,0 +1,102 @@
1/*
2 * Device Tree file for the Gemini-based Raidsonic NAS IB-4220-B
3 */
4
5/dts-v1/;
6
7#include "gemini.dtsi"
8#include <dt-bindings/input/input.h>
9
10/ {
11 model = "Raidsonic NAS IB-4220-B";
12 compatible = "raidsonic,ib-4220-b", "cortina,gemini";
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 memory { /* 128 MB */
17 device_type = "memory";
18 reg = <0x00000000 0x8000000>;
19 };
20
21 chosen {
22 bootargs = "console=ttyS0,19200n8";
23 stdout-path = &uart0;
24 };
25
26 gpio_keys {
27 compatible = "gpio-keys";
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 button@29 {
32 debounce_interval = <50>;
33 wakeup-source;
34 linux,code = <KEY_SETUP>;
35 label = "Backup button";
36 gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
37 };
38 button@31 {
39 debounce_interval = <50>;
40 wakeup-source;
41 linux,code = <KEY_RESTART>;
42 label = "Softreset button";
43 gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
44 };
45 };
46
47 leds {
48 compatible = "gpio-leds";
49 led@28 {
50 label = "nas4220b:orange:hdd";
51 gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
52 default-state = "on";
53 };
54 led@30 {
55 label = "nas4220b:green:os";
56 gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
57 default-state = "on";
58 linux,default-trigger = "heartbeat";
59 };
60 };
61
62 soc {
63 flash@30000000 {
64 status = "okay";
65 /* 16MB of flash */
66 reg = <0x30000000 0x01000000>;
67
68 partition@0 {
69 label = "RedBoot";
70 reg = <0x00000000 0x00020000>;
71 read-only;
72 };
73 partition@20000 {
74 label = "Kernel";
75 reg = <0x00020000 0x00300000>;
76 };
77 partition@320000 {
78 label = "Ramdisk";
79 reg = <0x00320000 0x00600000>;
80 };
81 partition@920000 {
82 label = "Application";
83 reg = <0x00920000 0x00600000>;
84 };
85 partition@f20000 {
86 label = "VCTL";
87 reg = <0x00f20000 0x00020000>;
88 read-only;
89 };
90 partition@f40000 {
91 label = "CurConf";
92 reg = <0x00f40000 0x000a0000>;
93 read-only;
94 };
95 partition@fe0000 {
96 label = "FIS directory";
97 reg = <0x00fe0000 0x00020000>;
98 read-only;
99 };
100 };
101 };
102};
diff --git a/arch/arm/boot/dts/gemini-rut1xx.dts b/arch/arm/boot/dts/gemini-rut1xx.dts
new file mode 100644
index 000000000000..7b920bfbda32
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-rut1xx.dts
@@ -0,0 +1,65 @@
1/*
2 * Device Tree file for Teltonika RUT1xx
3 */
4
5/dts-v1/;
6
7#include "gemini.dtsi"
8#include <dt-bindings/input/input.h>
9
10/ {
11 model = "Teltonika RUT1xx";
12 compatible = "teltonika,rut1xx", "cortina,gemini";
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 memory { /* 128 MB */
17 device_type = "memory";
18 reg = <0x00000000 0x8000000>;
19 };
20
21 chosen {
22 bootargs = "console=ttyS0,115200n8";
23 stdout-path = &uart0;
24 };
25
26 gpio_keys {
27 compatible = "gpio-keys";
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 button@28 {
32 debounce_interval = <50>;
33 wakeup-source;
34 linux,code = <KEY_SETUP>;
35 label = "Reset to defaults";
36 gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
37 };
38 };
39
40 leds {
41 compatible = "gpio-leds";
42 led@7 {
43 /* FIXME: add the LED color */
44 label = "rut1xx::gsm";
45 gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
46 default-state = "on";
47 };
48 led@31 {
49 /* FIXME: add the LED color */
50 label = "rut1xx::power";
51 gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
52 default-state = "off";
53 linux,default-trigger = "heartbeat";
54 };
55 };
56
57 soc {
58 flash@30000000 {
59 status = "okay";
60 /* 8MB of flash */
61 reg = <0x30000000 0x00800000>;
62 /* TODO: add flash partitions here */
63 };
64 };
65};
diff --git a/arch/arm/boot/dts/gemini-sq201.dts b/arch/arm/boot/dts/gemini-sq201.dts
new file mode 100644
index 000000000000..46309e79cc7b
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-sq201.dts
@@ -0,0 +1,118 @@
1/*
2 * Device Tree file for ITian Square One SQ201 NAS
3 */
4
5/dts-v1/;
6
7#include "gemini.dtsi"
8#include <dt-bindings/input/input.h>
9
10/ {
11 model = "ITian Square One SQ201";
12 compatible = "itian,sq201", "cortina,gemini";
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 memory { /* 128 MB */
17 device_type = "memory";
18 reg = <0x00000000 0x8000000>;
19 };
20
21 chosen {
22 bootargs = "console=ttyS0,115200n8";
23 stdout-path = &uart0;
24 };
25
26 gpio_keys {
27 compatible = "gpio-keys";
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 button@18 {
32 debounce_interval = <50>;
33 wakeup-source;
34 linux,code = <KEY_SETUP>;
35 label = "factory reset";
36 gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
37 };
38 };
39
40 leds {
41 compatible = "gpio-leds";
42 led@20 {
43 label = "sq201:green:info";
44 gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
45 default-state = "on";
46 linux,default-trigger = "heartbeat";
47 };
48 led@31 {
49 label = "sq201:green:usb";
50 gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
51 default-state = "off";
52 linux,default-trigger = "usb-host";
53 };
54 };
55
56 soc {
57 flash@30000000 {
58 status = "okay";
59 /* 16MB of flash */
60 reg = <0x30000000 0x01000000>;
61
62 partition@0 {
63 label = "RedBoot";
64 reg = <0x00000000 0x00120000>;
65 read-only;
66 };
67 partition@120000 {
68 label = "Kernel";
69 reg = <0x00120000 0x00200000>;
70 };
71 partition@320000 {
72 label = "Ramdisk";
73 reg = <0x00320000 0x00600000>;
74 };
75 partition@920000 {
76 label = "Application";
77 reg = <0x00920000 0x00600000>;
78 };
79 partition@f20000 {
80 label = "VCTL";
81 reg = <0x00f20000 0x00020000>;
82 read-only;
83 };
84 partition@f40000 {
85 label = "CurConf";
86 reg = <0x00f40000 0x000a0000>;
87 read-only;
88 };
89 partition@fe0000 {
90 label = "FIS directory";
91 reg = <0x00fe0000 0x00020000>;
92 read-only;
93 };
94 };
95
96 pci@50000000 {
97 status = "okay";
98 interrupt-map-mask = <0xf800 0 0 7>;
99 interrupt-map =
100 <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */
101 <0x4800 0 0 2 &pci_intc 1>,
102 <0x4800 0 0 3 &pci_intc 2>,
103 <0x4800 0 0 4 &pci_intc 3>,
104 <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */
105 <0x5000 0 0 2 &pci_intc 2>,
106 <0x5000 0 0 3 &pci_intc 3>,
107 <0x5000 0 0 4 &pci_intc 0>,
108 <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */
109 <0x5800 0 0 2 &pci_intc 3>,
110 <0x5800 0 0 3 &pci_intc 0>,
111 <0x5800 0 0 4 &pci_intc 1>,
112 <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */
113 <0x6000 0 0 2 &pci_intc 0>,
114 <0x6000 0 0 3 &pci_intc 1>,
115 <0x6000 0 0 4 &pci_intc 2>;
116 };
117 };
118};
diff --git a/arch/arm/boot/dts/gemini-wbd111.dts b/arch/arm/boot/dts/gemini-wbd111.dts
new file mode 100644
index 000000000000..63b756e3bf5a
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-wbd111.dts
@@ -0,0 +1,102 @@
1/*
2 * Device Tree file for Wiliboard WBD-111
3 */
4
5/dts-v1/;
6
7#include "gemini.dtsi"
8#include <dt-bindings/input/input.h>
9
10/ {
11 model = "Wiliboard WBD-111";
12 compatible = "wiliboard,wbd111", "cortina,gemini";
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 memory { /* 128 MB */
17 device_type = "memory";
18 reg = <0x00000000 0x8000000>;
19 };
20
21 chosen {
22 bootargs = "console=ttyS0,115200n8";
23 stdout-path = &uart0;
24 };
25
26 gpio_keys {
27 compatible = "gpio-keys";
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 button@5 {
32 debounce_interval = <50>;
33 wakeup-source;
34 linux,code = <KEY_SETUP>;
35 label = "reset";
36 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
37 };
38 };
39
40 leds {
41 compatible = "gpio-leds";
42
43 led@1 {
44 label = "wbd111:red:L3";
45 gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
46 default-state = "off";
47 };
48 led@2 {
49 label = "wbd111:green:L4";
50 gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
51 default-state = "off";
52 };
53 led@3 {
54 label = "wbd111:red:L4";
55 gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
56 default-state = "off";
57 };
58 led@5 {
59 label = "wbd111:green:L3";
60 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
61 default-state = "on";
62 linux,default-trigger = "heartbeat";
63 };
64 };
65
66 soc {
67 flash@30000000 {
68 status = "okay";
69 /* 8MB of flash */
70 reg = <0x30000000 0x00800000>;
71
72 partition@0 {
73 label = "RedBoot";
74 reg = <0x00000000 0x00020000>;
75 read-only;
76 };
77 partition@20000 {
78 label = "kernel";
79 reg = <0x00020000 0x00100000>;
80 };
81 partition@120000 {
82 label = "rootfs";
83 reg = <0x00120000 0x006a0000>;
84 };
85 partition@7c0000 {
86 label = "VCTL";
87 reg = <0x007c0000 0x00010000>;
88 read-only;
89 };
90 partition@7d0000 {
91 label = "cfg";
92 reg = <0x007d0000 0x00010000>;
93 read-only;
94 };
95 partition@7e0000 {
96 label = "FIS";
97 reg = <0x007e0000 0x00010000>;
98 read-only;
99 };
100 };
101 };
102};
diff --git a/arch/arm/boot/dts/gemini-wbd222.dts b/arch/arm/boot/dts/gemini-wbd222.dts
new file mode 100644
index 000000000000..9747f5a47807
--- /dev/null
+++ b/arch/arm/boot/dts/gemini-wbd222.dts
@@ -0,0 +1,102 @@
1/*
2 * Device Tree file for Wiliboard WBD-222
3 */
4
5/dts-v1/;
6
7#include "gemini.dtsi"
8#include <dt-bindings/input/input.h>
9
10/ {
11 model = "Wiliboard WBD-222";
12 compatible = "wiliboard,wbd222", "cortina,gemini";
13 #address-cells = <1>;
14 #size-cells = <1>;
15
16 memory { /* 128 MB */
17 device_type = "memory";
18 reg = <0x00000000 0x8000000>;
19 };
20
21 chosen {
22 bootargs = "console=ttyS0,115200n8";
23 stdout-path = &uart0;
24 };
25
26 gpio_keys {
27 compatible = "gpio-keys";
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 button@5 {
32 debounce_interval = <50>;
33 wakeup-source;
34 linux,code = <KEY_SETUP>;
35 label = "reset";
36 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
37 };
38 };
39
40 leds {
41 compatible = "gpio-leds";
42
43 led@1 {
44 label = "wbd111:red:L3";
45 gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
46 default-state = "off";
47 };
48 led@2 {
49 label = "wbd111:green:L4";
50 gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
51 default-state = "off";
52 };
53 led@3 {
54 label = "wbd111:red:L4";
55 gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
56 default-state = "off";
57 };
58 led@5 {
59 label = "wbd111:green:L3";
60 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
61 default-state = "on";
62 linux,default-trigger = "heartbeat";
63 };
64 };
65
66 soc {
67 flash@30000000 {
68 status = "okay";
69 /* 8MB of flash */
70 reg = <0x30000000 0x00800000>;
71
72 partition@0 {
73 label = "RedBoot";
74 reg = <0x00000000 0x00020000>;
75 read-only;
76 };
77 partition@20000 {
78 label = "kernel";
79 reg = <0x00020000 0x00100000>;
80 };
81 partition@120000 {
82 label = "rootfs";
83 reg = <0x00120000 0x006a0000>;
84 };
85 partition@7c0000 {
86 label = "VCTL";
87 reg = <0x007c0000 0x00010000>;
88 read-only;
89 };
90 partition@7d0000 {
91 label = "cfg";
92 reg = <0x007d0000 0x00010000>;
93 read-only;
94 };
95 partition@7e0000 {
96 label = "FIS";
97 reg = <0x007e0000 0x00010000>;
98 read-only;
99 };
100 };
101 };
102};
diff --git a/arch/arm/boot/dts/gemini.dtsi b/arch/arm/boot/dts/gemini.dtsi
new file mode 100644
index 000000000000..b8d011bdcc76
--- /dev/null
+++ b/arch/arm/boot/dts/gemini.dtsi
@@ -0,0 +1,156 @@
1/*
2 * Device Tree file for Cortina systems Gemini SoC
3 */
4
5/include/ "skeleton.dtsi"
6
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/gpio/gpio.h>
9
10/ {
11 soc {
12 #address-cells = <1>;
13 #size-cells = <1>;
14 ranges;
15 compatible = "simple-bus";
16 interrupt-parent = <&intcon>;
17
18 flash@30000000 {
19 compatible = "cortina,gemini-flash", "cfi-flash";
20 syscon = <&syscon>;
21 bank-width = <2>;
22 #address-cells = <1>;
23 #size-cells = <1>;
24 status = "disabled";
25 };
26
27 syscon: syscon@40000000 {
28 compatible = "cortina,gemini-syscon", "syscon", "simple-mfd";
29 reg = <0x40000000 0x1000>;
30
31 syscon-reboot {
32 compatible = "syscon-reboot";
33 regmap = <&syscon>;
34 /* GLOBAL_RESET register */
35 offset = <0x0c>;
36 /* RESET_GLOBAL | RESET_CPU1 */
37 mask = <0xC0000000>;
38 };
39 };
40
41 watchdog@41000000 {
42 compatible = "cortina,gemini-watchdog";
43 reg = <0x41000000 0x1000>;
44 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
45 };
46
47 uart0: serial@42000000 {
48 compatible = "ns16550a";
49 reg = <0x42000000 0x100>;
50 clock-frequency = <48000000>;
51 interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
52 reg-shift = <2>;
53 };
54
55 timer@43000000 {
56 compatible = "cortina,gemini-timer";
57 reg = <0x43000000 0x1000>;
58 interrupt-parent = <&intcon>;
59 interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
60 <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
61 <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
62 syscon = <&syscon>;
63 };
64
65 rtc@45000000 {
66 compatible = "cortina,gemini-rtc";
67 reg = <0x45000000 0x100>;
68 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
69 };
70
71 intcon: interrupt-controller@48000000 {
72 compatible = "faraday,ftintc010";
73 reg = <0x48000000 0x1000>;
74 interrupt-controller;
75 #interrupt-cells = <2>;
76 };
77
78 power-controller@4b000000 {
79 compatible = "cortina,gemini-power-controller";
80 reg = <0x4b000000 0x100>;
81 interrupts = <26 IRQ_TYPE_EDGE_RISING>;
82 };
83
84 gpio0: gpio@4d000000 {
85 compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
86 reg = <0x4d000000 0x100>;
87 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
88 gpio-controller;
89 #gpio-cells = <2>;
90 interrupt-controller;
91 #interrupt-cells = <2>;
92 };
93
94 gpio1: gpio@4e000000 {
95 compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
96 reg = <0x4e000000 0x100>;
97 interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
98 gpio-controller;
99 #gpio-cells = <2>;
100 interrupt-controller;
101 #interrupt-cells = <2>;
102 };
103
104 gpio2: gpio@4f000000 {
105 compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
106 reg = <0x4f000000 0x100>;
107 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
108 gpio-controller;
109 #gpio-cells = <2>;
110 interrupt-controller;
111 #interrupt-cells = <2>;
112 };
113
114 pci@50000000 {
115 compatible = "cortina,gemini-pci", "faraday,ftpci100";
116 /*
117 * The first 256 bytes in the IO range is actually used
118 * to configure the host bridge.
119 */
120 reg = <0x50000000 0x100>;
121 #address-cells = <3>;
122 #size-cells = <2>;
123 #interrupt-cells = <1>;
124 status = "disabled";
125
126 bus-range = <0x00 0xff>;
127 /* PCI ranges mappings */
128 ranges =
129 /* 1MiB I/O space 0x50000000-0x500fffff */
130 <0x01000000 0 0 0x50000000 0 0x00100000>,
131 /* 128MiB non-prefetchable memory 0x58000000-0x5fffffff */
132 <0x02000000 0 0x58000000 0x58000000 0 0x08000000>;
133
134 /* DMA ranges */
135 dma-ranges =
136 /* 128MiB at 0x00000000-0x07ffffff */
137 <0x02000000 0 0x00000000 0x00000000 0 0x08000000>,
138 /* 64MiB at 0x00000000-0x03ffffff */
139 <0x02000000 0 0x00000000 0x00000000 0 0x04000000>,
140 /* 64MiB at 0x00000000-0x03ffffff */
141 <0x02000000 0 0x00000000 0x00000000 0 0x04000000>;
142
143 /*
144 * This PCI host bridge variant has a cascaded interrupt
145 * controller embedded in the host bridge.
146 */
147 pci_intc: interrupt-controller {
148 interrupt-parent = <&intcon>;
149 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
150 interrupt-controller;
151 #address-cells = <0>;
152 #interrupt-cells = <1>;
153 };
154 };
155 };
156};
diff --git a/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts b/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
index 9300711f1ea3..db39bd6b8e00 100644
--- a/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
+++ b/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
@@ -179,8 +179,6 @@
179}; 179};
180 180
181&usbotg { 181&usbotg {
182 phy_type = "utmi";
183 dr_mode = "otg";
184 external-vbus-divider; 182 external-vbus-divider;
185 status = "okay"; 183 status = "okay";
186}; 184};
diff --git a/arch/arm/boot/dts/imx25-pdk.dts b/arch/arm/boot/dts/imx25-pdk.dts
index 70292101ba03..d921dd2ed676 100644
--- a/arch/arm/boot/dts/imx25-pdk.dts
+++ b/arch/arm/boot/dts/imx25-pdk.dts
@@ -309,8 +309,6 @@
309}; 309};
310 310
311&usbotg { 311&usbotg {
312 phy_type = "utmi";
313 dr_mode = "otg";
314 external-vbus-divider; 312 external-vbus-divider;
315 status = "okay"; 313 status = "okay";
316}; 314};
diff --git a/arch/arm/boot/dts/imx25-pinfunc.h b/arch/arm/boot/dts/imx25-pinfunc.h
index f840f03ad171..6c63dca1b9b8 100644
--- a/arch/arm/boot/dts/imx25-pinfunc.h
+++ b/arch/arm/boot/dts/imx25-pinfunc.h
@@ -17,8 +17,6 @@
17 * <mux_reg conf_reg input_reg mux_mode input_val> 17 * <mux_reg conf_reg input_reg mux_mode input_val>
18 */ 18 */
19 19
20#define MX25_PAD_TDO__TDO 0x000 0x3e8 0x000 0x00 0x000
21
22#define MX25_PAD_A10__A10 0x008 0x000 0x000 0x00 0x000 20#define MX25_PAD_A10__A10 0x008 0x000 0x000 0x00 0x000
23#define MX25_PAD_A10__GPIO_4_0 0x008 0x000 0x000 0x05 0x000 21#define MX25_PAD_A10__GPIO_4_0 0x008 0x000 0x000 0x05 0x000
24 22
@@ -68,7 +66,6 @@
68 66
69#define MX25_PAD_A22__A22 0x030 0x000 0x000 0x00 0x000 67#define MX25_PAD_A22__A22 0x030 0x000 0x000 0x00 0x000
70#define MX25_PAD_A22__GPIO_2_8 0x030 0x000 0x000 0x05 0x000 68#define MX25_PAD_A22__GPIO_2_8 0x030 0x000 0x000 0x05 0x000
71#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x07 0x000
72#define MX25_PAD_A22__SIM2_VEN1 0x030 0x000 0x000 0x06 0x000 69#define MX25_PAD_A22__SIM2_VEN1 0x030 0x000 0x000 0x06 0x000
73#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x07 0x000 70#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x07 0x000
74 71
@@ -542,6 +539,8 @@
542#define MX25_PAD_RTCK__OWIRE 0x1ec 0x3e4 0x000 0x01 0x000 539#define MX25_PAD_RTCK__OWIRE 0x1ec 0x3e4 0x000 0x01 0x000
543#define MX25_PAD_RTCK__GPIO_3_14 0x1ec 0x3e4 0x000 0x05 0x000 540#define MX25_PAD_RTCK__GPIO_3_14 0x1ec 0x3e4 0x000 0x05 0x000
544 541
542#define MX25_PAD_TDO__TDO 0x000 0x3e8 0x000 0x00 0x000
543
545#define MX25_PAD_DE_B__DE_B 0x1f0 0x3ec 0x000 0x00 0x000 544#define MX25_PAD_DE_B__DE_B 0x1f0 0x3ec 0x000 0x00 0x000
546#define MX25_PAD_DE_B__GPIO_2_20 0x1f0 0x3ec 0x000 0x05 0x000 545#define MX25_PAD_DE_B__GPIO_2_20 0x1f0 0x3ec 0x000 0x05 0x000
547 546
diff --git a/arch/arm/boot/dts/imx25.dtsi b/arch/arm/boot/dts/imx25.dtsi
index e0ba55016a04..0cdf333336cd 100644
--- a/arch/arm/boot/dts/imx25.dtsi
+++ b/arch/arm/boot/dts/imx25.dtsi
@@ -93,6 +93,11 @@
93 reg = <0x43f00000 0x100000>; 93 reg = <0x43f00000 0x100000>;
94 ranges; 94 ranges;
95 95
96 aips1: bridge@43f00000 {
97 compatible = "fsl,imx25-aips";
98 reg = <0x43f00000 0x4000>;
99 };
100
96 i2c1: i2c@43f80000 { 101 i2c1: i2c@43f80000 {
97 #address-cells = <1>; 102 #address-cells = <1>;
98 #size-cells = <0>; 103 #size-cells = <0>;
@@ -342,6 +347,11 @@
342 reg = <0x53f00000 0x100000>; 347 reg = <0x53f00000 0x100000>;
343 ranges; 348 ranges;
344 349
350 aips2: bridge@53f00000 {
351 compatible = "fsl,imx25-aips";
352 reg = <0x53f00000 0x4000>;
353 };
354
345 clks: ccm@53f80000 { 355 clks: ccm@53f80000 {
346 compatible = "fsl,imx25-ccm"; 356 compatible = "fsl,imx25-ccm";
347 reg = <0x53f80000 0x4000>; 357 reg = <0x53f80000 0x4000>;
@@ -544,6 +554,8 @@
544 clock-names = "ipg", "ahb", "per"; 554 clock-names = "ipg", "ahb", "per";
545 fsl,usbmisc = <&usbmisc 0>; 555 fsl,usbmisc = <&usbmisc 0>;
546 fsl,usbphy = <&usbphy0>; 556 fsl,usbphy = <&usbphy0>;
557 phy_type = "utmi";
558 dr_mode = "otg";
547 status = "disabled"; 559 status = "disabled";
548 }; 560 };
549 561
diff --git a/arch/arm/boot/dts/imx28-duckbill-2-485.dts b/arch/arm/boot/dts/imx28-duckbill-2-485.dts
new file mode 100644
index 000000000000..bd3fd470f9c3
--- /dev/null
+++ b/arch/arm/boot/dts/imx28-duckbill-2-485.dts
@@ -0,0 +1,189 @@
1/*
2 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
3 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de>
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/dts-v1/;
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/gpio/gpio.h>
16#include "imx28.dtsi"
17
18/ {
19 model = "I2SE Duckbill 2 485";
20 compatible = "i2se,duckbill-2-485", "i2se,duckbill-2", "fsl,imx28";
21
22 memory {
23 reg = <0x40000000 0x08000000>;
24 };
25
26 apb@80000000 {
27 apbh@80000000 {
28 ssp0: ssp@80010000 {
29 compatible = "fsl,imx28-mmc";
30 pinctrl-names = "default";
31 pinctrl-0 = <&mmc0_8bit_pins_a
32 &mmc0_cd_cfg &mmc0_sck_cfg>;
33 bus-width = <8>;
34 vmmc-supply = <&reg_3p3v>;
35 status = "okay";
36 non-removable;
37 };
38
39 ssp2: ssp@80014000 {
40 compatible = "fsl,imx28-mmc";
41 pinctrl-names = "default";
42 pinctrl-0 = <&mmc2_4bit_pins_b
43 &mmc2_cd_cfg &mmc2_sck_cfg_b>;
44 bus-width = <4>;
45 vmmc-supply = <&reg_3p3v>;
46 status = "okay";
47 };
48
49 pinctrl@80018000 {
50 pinctrl-names = "default";
51 pinctrl-0 = <&hog_pins_a>;
52
53 hog_pins_a: hog@0 {
54 reg = <0>;
55 fsl,pinmux-ids = <
56 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
57 >;
58 fsl,drive-strength = <MXS_DRIVE_4mA>;
59 fsl,voltage = <MXS_VOLTAGE_HIGH>;
60 fsl,pull-up = <MXS_PULL_DISABLE>;
61 };
62
63 mac0_phy_reset_pin: mac0-phy-reset@0 {
64 reg = <0>;
65 fsl,pinmux-ids = <
66 MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */
67 >;
68 fsl,drive-strength = <MXS_DRIVE_4mA>;
69 fsl,voltage = <MXS_VOLTAGE_HIGH>;
70 fsl,pull-up = <MXS_PULL_DISABLE>;
71 };
72
73 mac0_phy_int_pin: mac0-phy-int@0 {
74 reg = <0>;
75 fsl,pinmux-ids = <
76 MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */
77 >;
78 fsl,drive-strength = <MXS_DRIVE_4mA>;
79 fsl,voltage = <MXS_VOLTAGE_HIGH>;
80 fsl,pull-up = <MXS_PULL_DISABLE>;
81 };
82
83 led_pins: leds@0 {
84 reg = <0>;
85 fsl,pinmux-ids = <
86 MX28_PAD_SAIF0_MCLK__GPIO_3_20
87 MX28_PAD_SAIF0_LRCLK__GPIO_3_21
88 MX28_PAD_I2C0_SCL__GPIO_3_24
89 MX28_PAD_I2C0_SDA__GPIO_3_25
90 >;
91 fsl,drive-strength = <MXS_DRIVE_4mA>;
92 fsl,voltage = <MXS_VOLTAGE_HIGH>;
93 fsl,pull-up = <MXS_PULL_DISABLE>;
94 };
95 };
96 };
97
98 apbx@80040000 {
99 lradc@80050000 {
100 status = "okay";
101 };
102
103 auart0: serial@8006a000 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&auart0_2pins_a>;
106 status = "okay";
107 };
108
109 duart: serial@80074000 {
110 pinctrl-names = "default";
111 pinctrl-0 = <&duart_pins_a>;
112 status = "okay";
113 };
114
115 usbphy0: usbphy@8007c000 {
116 status = "okay";
117 };
118 };
119 };
120
121 ahb@80080000 {
122 usb0: usb@80080000 {
123 status = "okay";
124 dr_mode = "peripheral";
125 };
126
127 mac0: ethernet@800f0000 {
128 phy-mode = "rmii";
129 pinctrl-names = "default";
130 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
131 phy-supply = <&reg_3p3v>;
132 phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
133 phy-reset-duration = <25>;
134 phy-handle = <&ethphy>;
135 status = "okay";
136
137 mdio {
138 #address-cells = <1>;
139 #size-cells = <0>;
140
141 ethphy: ethernet-phy@0 {
142 compatible = "ethernet-phy-ieee802.3-c22";
143 reg = <0>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&mac0_phy_int_pin>;
146 interrupt-parent = <&gpio0>;
147 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
148 max-speed = <100>;
149 };
150 };
151 };
152 };
153
154 reg_3p3v: regulator-3p3v {
155 compatible = "regulator-fixed";
156 regulator-name = "3P3V";
157 regulator-min-microvolt = <3300000>;
158 regulator-max-microvolt = <3300000>;
159 regulator-always-on;
160 };
161
162 leds {
163 compatible = "gpio-leds";
164 pinctrl-names = "default";
165 pinctrl-0 = <&led_pins>;
166
167 status-red {
168 label = "duckbill:red:status";
169 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
170 linux,default-trigger = "default-on";
171 };
172
173 status-green {
174 label = "duckbill:green:status";
175 gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
176 linux,default-trigger = "heartbeat";
177 };
178
179 rs485-red {
180 label = "duckbill:red:rs485";
181 gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
182 };
183
184 rs485-green {
185 label = "duckbill:green:rs485";
186 gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
187 };
188 };
189};
diff --git a/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts b/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts
new file mode 100644
index 000000000000..4450047885eb
--- /dev/null
+++ b/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts
@@ -0,0 +1,220 @@
1/*
2 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
3 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de>
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/dts-v1/;
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/input/input.h>
16#include <dt-bindings/gpio/gpio.h>
17#include "imx28.dtsi"
18
19/ {
20 model = "I2SE Duckbill 2 EnOcean";
21 compatible = "i2se,duckbill-2-enocean", "i2se,duckbill-2", "fsl,imx28";
22
23 memory {
24 reg = <0x40000000 0x08000000>;
25 };
26
27 apb@80000000 {
28 apbh@80000000 {
29 ssp0: ssp@80010000 {
30 compatible = "fsl,imx28-mmc";
31 pinctrl-names = "default";
32 pinctrl-0 = <&mmc0_8bit_pins_a
33 &mmc0_cd_cfg &mmc0_sck_cfg>;
34 bus-width = <8>;
35 vmmc-supply = <&reg_3p3v>;
36 status = "okay";
37 non-removable;
38 };
39
40 ssp2: ssp@80014000 {
41 compatible = "fsl,imx28-mmc";
42 pinctrl-names = "default";
43 pinctrl-0 = <&mmc2_4bit_pins_b
44 &mmc2_cd_cfg &mmc2_sck_cfg_b>;
45 bus-width = <4>;
46 vmmc-supply = <&reg_3p3v>;
47 status = "okay";
48 };
49
50 pinctrl@80018000 {
51 pinctrl-names = "default";
52 pinctrl-0 = <&hog_pins_a>;
53
54 hog_pins_a: hog@0 {
55 reg = <0>;
56 fsl,pinmux-ids = <
57 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
58 >;
59 fsl,drive-strength = <MXS_DRIVE_4mA>;
60 fsl,voltage = <MXS_VOLTAGE_HIGH>;
61 fsl,pull-up = <MXS_PULL_DISABLE>;
62 };
63
64 mac0_phy_reset_pin: mac0-phy-reset@0 {
65 reg = <0>;
66 fsl,pinmux-ids = <
67 MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */
68 >;
69 fsl,drive-strength = <MXS_DRIVE_4mA>;
70 fsl,voltage = <MXS_VOLTAGE_HIGH>;
71 fsl,pull-up = <MXS_PULL_DISABLE>;
72 };
73
74 mac0_phy_int_pin: mac0-phy-int@0 {
75 reg = <0>;
76 fsl,pinmux-ids = <
77 MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */
78 >;
79 fsl,drive-strength = <MXS_DRIVE_4mA>;
80 fsl,voltage = <MXS_VOLTAGE_HIGH>;
81 fsl,pull-up = <MXS_PULL_DISABLE>;
82 };
83
84 led_pins: leds@0 {
85 reg = <0>;
86 fsl,pinmux-ids = <
87 MX28_PAD_SAIF0_MCLK__GPIO_3_20
88 MX28_PAD_SAIF0_LRCLK__GPIO_3_21
89 MX28_PAD_AUART0_CTS__GPIO_3_2
90 MX28_PAD_I2C0_SCL__GPIO_3_24
91 MX28_PAD_I2C0_SDA__GPIO_3_25
92 >;
93 fsl,drive-strength = <MXS_DRIVE_4mA>;
94 fsl,voltage = <MXS_VOLTAGE_HIGH>;
95 fsl,pull-up = <MXS_PULL_DISABLE>;
96 };
97
98 enocean_button: enocean-button@0 {
99 reg = <0>;
100 fsl,pinmux-ids = <
101 MX28_PAD_AUART0_RTS__GPIO_3_3
102 >;
103 fsl,drive-strength = <MXS_DRIVE_4mA>;
104 fsl,voltage = <MXS_VOLTAGE_HIGH>;
105 fsl,pull-up = <MXS_PULL_DISABLE>;
106 };
107 };
108 };
109
110 apbx@80040000 {
111 lradc@80050000 {
112 status = "okay";
113 };
114
115 auart0: serial@8006a000 {
116 pinctrl-names = "default";
117 pinctrl-0 = <&auart0_2pins_a>;
118 status = "okay";
119 };
120
121 duart: serial@80074000 {
122 pinctrl-names = "default";
123 pinctrl-0 = <&duart_pins_a>;
124 status = "okay";
125 };
126
127 usbphy0: usbphy@8007c000 {
128 status = "okay";
129 };
130 };
131 };
132
133 ahb@80080000 {
134 usb0: usb@80080000 {
135 status = "okay";
136 dr_mode = "peripheral";
137 };
138
139 mac0: ethernet@800f0000 {
140 phy-mode = "rmii";
141 pinctrl-names = "default";
142 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
143 phy-supply = <&reg_3p3v>;
144 phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
145 phy-reset-duration = <25>;
146 phy-handle = <&ethphy>;
147 status = "okay";
148
149 mdio {
150 #address-cells = <1>;
151 #size-cells = <0>;
152
153 ethphy: ethernet-phy@0 {
154 compatible = "ethernet-phy-ieee802.3-c22";
155 reg = <0>;
156 pinctrl-names = "default";
157 pinctrl-0 = <&mac0_phy_int_pin>;
158 interrupt-parent = <&gpio0>;
159 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
160 max-speed = <100>;
161 };
162 };
163 };
164 };
165
166 reg_3p3v: regulator-3p3v {
167 compatible = "regulator-fixed";
168 regulator-name = "3P3V";
169 regulator-min-microvolt = <3300000>;
170 regulator-max-microvolt = <3300000>;
171 regulator-always-on;
172 };
173
174 leds {
175 compatible = "gpio-leds";
176 pinctrl-names = "default";
177 pinctrl-0 = <&led_pins>;
178
179 status-red {
180 label = "duckbill:red:status";
181 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
182 linux,default-trigger = "default-on";
183 };
184
185 status-green {
186 label = "duckbill:green:status";
187 gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
188 linux,default-trigger = "heartbeat";
189 };
190
191 enocean-blue {
192 label = "duckbill:blue:enocean";
193 gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
194 };
195
196 enocean-red {
197 label = "duckbill:red:enocean";
198 gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
199 };
200
201 enocean-green {
202 label = "duckbill:green:enocean";
203 gpios = <&gpio3 2 GPIO_ACTIVE_LOW>;
204 };
205 };
206
207 gpio-keys {
208 compatible = "gpio-keys";
209 #address-cells = <1>;
210 #size-cells = <0>;
211 pinctrl-names = "default";
212 pinctrl-0 = <&enocean_button>;
213
214 enocean {
215 label = "EnOcean";
216 linux,code = <KEY_NEW>;
217 gpios = <&gpio3 3 GPIO_ACTIVE_HIGH>;
218 };
219 };
220};
diff --git a/arch/arm/boot/dts/imx28-duckbill-2-spi.dts b/arch/arm/boot/dts/imx28-duckbill-2-spi.dts
new file mode 100644
index 000000000000..927732efca98
--- /dev/null
+++ b/arch/arm/boot/dts/imx28-duckbill-2-spi.dts
@@ -0,0 +1,199 @@
1/*
2 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
3 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de>
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/dts-v1/;
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/gpio/gpio.h>
16#include "imx28.dtsi"
17
18/ {
19 model = "I2SE Duckbill 2 SPI";
20 compatible = "i2se,duckbill-2-spi", "i2se,duckbill-2", "fsl,imx28";
21
22 aliases {
23 ethernet1 = &qca7000;
24 };
25
26 memory {
27 reg = <0x40000000 0x08000000>;
28 };
29
30 apb@80000000 {
31 apbh@80000000 {
32 ssp0: ssp@80010000 {
33 compatible = "fsl,imx28-mmc";
34 pinctrl-names = "default";
35 pinctrl-0 = <&mmc0_8bit_pins_a
36 &mmc0_cd_cfg &mmc0_sck_cfg>;
37 bus-width = <8>;
38 vmmc-supply = <&reg_3p3v>;
39 status = "okay";
40 non-removable;
41 };
42
43 ssp2: ssp@80014000 {
44 compatible = "fsl,imx28-spi";
45 pinctrl-names = "default";
46 pinctrl-0 = <&spi2_pins_a>;
47 status = "okay";
48
49 qca7000: ethernet@0 {
50 reg = <0>;
51 compatible = "qca,qca7000";
52 pinctrl-names = "default";
53 pinctrl-0 = <&qca7000_pins>;
54 interrupt-parent = <&gpio3>;
55 interrupts = <3 IRQ_TYPE_EDGE_RISING>;
56 spi-cpha;
57 spi-cpol;
58 spi-max-frequency = <8000000>;
59 };
60 };
61
62 pinctrl@80018000 {
63 pinctrl-names = "default";
64 pinctrl-0 = <&hog_pins_a>;
65
66 hog_pins_a: hog@0 {
67 reg = <0>;
68 fsl,pinmux-ids = <
69 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
70 >;
71 fsl,drive-strength = <MXS_DRIVE_4mA>;
72 fsl,voltage = <MXS_VOLTAGE_HIGH>;
73 fsl,pull-up = <MXS_PULL_DISABLE>;
74 };
75
76 mac0_phy_reset_pin: mac0-phy-reset@0 {
77 reg = <0>;
78 fsl,pinmux-ids = <
79 MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */
80 >;
81 fsl,drive-strength = <MXS_DRIVE_4mA>;
82 fsl,voltage = <MXS_VOLTAGE_HIGH>;
83 fsl,pull-up = <MXS_PULL_DISABLE>;
84 };
85
86 mac0_phy_int_pin: mac0-phy-int@0 {
87 reg = <0>;
88 fsl,pinmux-ids = <
89 MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */
90 >;
91 fsl,drive-strength = <MXS_DRIVE_4mA>;
92 fsl,voltage = <MXS_VOLTAGE_HIGH>;
93 fsl,pull-up = <MXS_PULL_DISABLE>;
94 };
95
96 led_pins: led@0 {
97 reg = <0>;
98 fsl,pinmux-ids = <
99 MX28_PAD_SAIF0_MCLK__GPIO_3_20
100 MX28_PAD_SAIF0_LRCLK__GPIO_3_21
101 >;
102 fsl,drive-strength = <MXS_DRIVE_4mA>;
103 fsl,voltage = <MXS_VOLTAGE_HIGH>;
104 fsl,pull-up = <MXS_PULL_DISABLE>;
105 };
106
107 qca7000_pins: qca7000@0 {
108 reg = <0>;
109 fsl,pinmux-ids = <
110 MX28_PAD_AUART0_RTS__GPIO_3_3 /* Interrupt */
111 MX28_PAD_LCD_D13__GPIO_1_13 /* QCA7K reset */
112 MX28_PAD_LCD_D14__GPIO_1_14 /* GPIO 0 */
113 MX28_PAD_LCD_D15__GPIO_1_15 /* GPIO 1 */
114 MX28_PAD_LCD_D18__GPIO_1_18 /* GPIO 2 */
115 MX28_PAD_LCD_D21__GPIO_1_21 /* GPIO 3 */
116 >;
117 fsl,drive-strength = <MXS_DRIVE_4mA>;
118 fsl,voltage = <MXS_VOLTAGE_HIGH>;
119 fsl,pull-up = <MXS_PULL_DISABLE>;
120 };
121 };
122 };
123
124 apbx@80040000 {
125 lradc@80050000 {
126 status = "okay";
127 };
128
129 duart: serial@80074000 {
130 pinctrl-names = "default";
131 pinctrl-0 = <&duart_pins_a>;
132 status = "okay";
133 };
134
135 usbphy0: usbphy@8007c000 {
136 status = "okay";
137 };
138 };
139 };
140
141 ahb@80080000 {
142 usb0: usb@80080000 {
143 status = "okay";
144 dr_mode = "peripheral";
145 };
146
147 mac0: ethernet@800f0000 {
148 phy-mode = "rmii";
149 pinctrl-names = "default";
150 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
151 phy-supply = <&reg_3p3v>;
152 phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
153 phy-reset-duration = <25>;
154 phy-handle = <&ethphy>;
155 status = "okay";
156
157 mdio {
158 #address-cells = <1>;
159 #size-cells = <0>;
160
161 ethphy: ethernet-phy@0 {
162 compatible = "ethernet-phy-ieee802.3-c22";
163 reg = <0>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&mac0_phy_int_pin>;
166 interrupt-parent = <&gpio0>;
167 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
168 max-speed = <100>;
169 };
170 };
171 };
172 };
173
174 reg_3p3v: regulator-3p3v {
175 compatible = "regulator-fixed";
176 regulator-name = "3P3V";
177 regulator-min-microvolt = <3300000>;
178 regulator-max-microvolt = <3300000>;
179 regulator-always-on;
180 };
181
182 leds {
183 compatible = "gpio-leds";
184 pinctrl-names = "default";
185 pinctrl-0 = <&led_pins>;
186
187 status-red {
188 label = "duckbill:red:status";
189 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
190 linux,default-trigger = "default-on";
191 };
192
193 status-green {
194 label = "duckbill:green:status";
195 gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
196 linux,default-trigger = "heartbeat";
197 };
198 };
199};
diff --git a/arch/arm/boot/dts/imx28-duckbill-2.dts b/arch/arm/boot/dts/imx28-duckbill-2.dts
new file mode 100644
index 000000000000..7fa3d759505c
--- /dev/null
+++ b/arch/arm/boot/dts/imx28-duckbill-2.dts
@@ -0,0 +1,183 @@
1/*
2 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
3 * Copyright (C) 2016 Michael Heimpold <mhei@heimpold.de>
4 *
5 * The code contained herein is licensed under the GNU General Public
6 * License. You may obtain a copy of the GNU General Public License
7 * Version 2 or later at the following locations:
8 *
9 * http://www.opensource.org/licenses/gpl-license.html
10 * http://www.gnu.org/copyleft/gpl.html
11 */
12
13/dts-v1/;
14#include <dt-bindings/interrupt-controller/irq.h>
15#include <dt-bindings/gpio/gpio.h>
16#include "imx28.dtsi"
17
18/ {
19 model = "I2SE Duckbill 2";
20 compatible = "i2se,duckbill-2", "fsl,imx28";
21
22 memory {
23 reg = <0x40000000 0x08000000>;
24 };
25
26 apb@80000000 {
27 apbh@80000000 {
28 ssp0: ssp@80010000 {
29 compatible = "fsl,imx28-mmc";
30 pinctrl-names = "default";
31 pinctrl-0 = <&mmc0_8bit_pins_a
32 &mmc0_cd_cfg &mmc0_sck_cfg>;
33 bus-width = <8>;
34 vmmc-supply = <&reg_3p3v>;
35 status = "okay";
36 non-removable;
37 };
38
39 ssp2: ssp@80014000 {
40 compatible = "fsl,imx28-mmc";
41 pinctrl-names = "default";
42 pinctrl-0 = <&mmc2_4bit_pins_b
43 &mmc2_cd_cfg &mmc2_sck_cfg_b>;
44 bus-width = <4>;
45 vmmc-supply = <&reg_3p3v>;
46 status = "okay";
47 };
48
49 pinctrl@80018000 {
50 pinctrl-names = "default";
51 pinctrl-0 = <&hog_pins_a>;
52
53 hog_pins_a: hog@0 {
54 reg = <0>;
55 fsl,pinmux-ids = <
56 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
57 >;
58 fsl,drive-strength = <MXS_DRIVE_4mA>;
59 fsl,voltage = <MXS_VOLTAGE_HIGH>;
60 fsl,pull-up = <MXS_PULL_DISABLE>;
61 };
62
63 mac0_phy_reset_pin: mac0-phy-reset@0 {
64 reg = <0>;
65 fsl,pinmux-ids = <
66 MX28_PAD_GPMI_ALE__GPIO_0_26 /* PHY Reset */
67 >;
68 fsl,drive-strength = <MXS_DRIVE_4mA>;
69 fsl,voltage = <MXS_VOLTAGE_HIGH>;
70 fsl,pull-up = <MXS_PULL_DISABLE>;
71 };
72
73 mac0_phy_int_pin: mac0-phy-int@0 {
74 reg = <0>;
75 fsl,pinmux-ids = <
76 MX28_PAD_GPMI_D07__GPIO_0_7 /* PHY Interrupt */
77 >;
78 fsl,drive-strength = <MXS_DRIVE_4mA>;
79 fsl,voltage = <MXS_VOLTAGE_HIGH>;
80 fsl,pull-up = <MXS_PULL_DISABLE>;
81 };
82
83 led_pins: leds@0 {
84 reg = <0>;
85 fsl,pinmux-ids = <
86 MX28_PAD_SAIF0_MCLK__GPIO_3_20
87 MX28_PAD_SAIF0_LRCLK__GPIO_3_21
88 >;
89 fsl,drive-strength = <MXS_DRIVE_4mA>;
90 fsl,voltage = <MXS_VOLTAGE_HIGH>;
91 fsl,pull-up = <MXS_PULL_DISABLE>;
92 };
93 };
94 };
95
96 apbx@80040000 {
97 lradc@80050000 {
98 status = "okay";
99 };
100
101 i2c0: i2c@80058000 {
102 pinctrl-names = "default";
103 pinctrl-0 = <&i2c0_pins_a>;
104 status = "okay";
105 };
106
107 auart0: serial@8006a000 {
108 pinctrl-names = "default";
109 pinctrl-0 = <&auart0_2pins_a>;
110 status = "okay";
111 };
112
113 duart: serial@80074000 {
114 pinctrl-names = "default";
115 pinctrl-0 = <&duart_pins_a>;
116 status = "okay";
117 };
118
119 usbphy0: usbphy@8007c000 {
120 status = "okay";
121 };
122 };
123 };
124
125 ahb@80080000 {
126 usb0: usb@80080000 {
127 status = "okay";
128 dr_mode = "peripheral";
129 };
130
131 mac0: ethernet@800f0000 {
132 phy-mode = "rmii";
133 pinctrl-names = "default";
134 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
135 phy-supply = <&reg_3p3v>;
136 phy-reset-gpios = <&gpio0 26 GPIO_ACTIVE_LOW>;
137 phy-reset-duration = <25>;
138 phy-handle = <&ethphy>;
139 status = "okay";
140
141 mdio {
142 #address-cells = <1>;
143 #size-cells = <0>;
144
145 ethphy: ethernet-phy@0 {
146 compatible = "ethernet-phy-ieee802.3-c22";
147 reg = <0>;
148 pinctrl-names = "default";
149 pinctrl-0 = <&mac0_phy_int_pin>;
150 interrupt-parent = <&gpio0>;
151 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
152 max-speed = <100>;
153 };
154 };
155 };
156 };
157
158 reg_3p3v: regulator-3p3v {
159 compatible = "regulator-fixed";
160 regulator-name = "3P3V";
161 regulator-min-microvolt = <3300000>;
162 regulator-max-microvolt = <3300000>;
163 regulator-always-on;
164 };
165
166 leds {
167 compatible = "gpio-leds";
168 pinctrl-names = "default";
169 pinctrl-0 = <&led_pins>;
170
171 status-red {
172 label = "duckbill:red:status";
173 gpios = <&gpio3 21 GPIO_ACTIVE_HIGH>;
174 linux,default-trigger = "default-on";
175 };
176
177 status-green {
178 label = "duckbill:green:status";
179 gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
180 linux,default-trigger = "heartbeat";
181 };
182 };
183};
diff --git a/arch/arm/boot/dts/imx28-duckbill.dts b/arch/arm/boot/dts/imx28-duckbill.dts
index ce1a7effba37..3e4385d4ed78 100644
--- a/arch/arm/boot/dts/imx28-duckbill.dts
+++ b/arch/arm/boot/dts/imx28-duckbill.dts
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright (C) 2013 Michael Heimpold <mhei@heimpold.de> 2 * Copyright (C) 2013-2014,2016 Michael Heimpold <mhei@heimpold.de>
3 * Copyright (C) 2015-2017 I2SE GmbH <info@i2se.com>
3 * 4 *
4 * The code contained herein is licensed under the GNU General Public 5 * 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 * License. You may obtain a copy of the GNU General Public License
@@ -10,6 +11,7 @@
10 */ 11 */
11 12
12/dts-v1/; 13/dts-v1/;
14#include <dt-bindings/gpio/gpio.h>
13#include "imx28.dtsi" 15#include "imx28.dtsi"
14 16
15/ { 17/ {
@@ -32,6 +34,13 @@
32 status = "okay"; 34 status = "okay";
33 }; 35 };
34 36
37 ssp2: ssp@80014000 {
38 compatible = "fsl,imx28-spi";
39 pinctrl-names = "default";
40 pinctrl-0 = <&spi2_pins_a>;
41 status = "okay";
42 };
43
35 pinctrl@80018000 { 44 pinctrl@80018000 {
36 pinctrl-names = "default"; 45 pinctrl-names = "default";
37 pinctrl-0 = <&hog_pins_a>; 46 pinctrl-0 = <&hog_pins_a>;
@@ -39,14 +48,24 @@
39 hog_pins_a: hog@0 { 48 hog_pins_a: hog@0 {
40 reg = <0>; 49 reg = <0>;
41 fsl,pinmux-ids = < 50 fsl,pinmux-ids = <
42 MX28_PAD_SSP0_DATA7__GPIO_2_7 /* PHY Reset */ 51 MX28_PAD_LCD_D17__GPIO_1_17 /* Revision detection */
52 >;
53 fsl,drive-strength = <MXS_DRIVE_4mA>;
54 fsl,voltage = <MXS_VOLTAGE_HIGH>;
55 fsl,pull-up = <MXS_PULL_DISABLE>;
56 };
57
58 mac0_phy_reset_pin: mac0-phy-reset@0 {
59 reg = <0>;
60 fsl,pinmux-ids = <
61 MX28_PAD_SSP0_DATA7__GPIO_2_7 /* PHY Reset */
43 >; 62 >;
44 fsl,drive-strength = <MXS_DRIVE_4mA>; 63 fsl,drive-strength = <MXS_DRIVE_4mA>;
45 fsl,voltage = <MXS_VOLTAGE_HIGH>; 64 fsl,voltage = <MXS_VOLTAGE_HIGH>;
46 fsl,pull-up = <MXS_PULL_DISABLE>; 65 fsl,pull-up = <MXS_PULL_DISABLE>;
47 }; 66 };
48 67
49 led_pins_a: led_gpio@0 { 68 led_pins: leds@0 {
50 reg = <0>; 69 reg = <0>;
51 fsl,pinmux-ids = < 70 fsl,pinmux-ids = <
52 MX28_PAD_AUART1_RX__GPIO_3_4 71 MX28_PAD_AUART1_RX__GPIO_3_4
@@ -60,6 +79,22 @@
60 }; 79 };
61 80
62 apbx@80040000 { 81 apbx@80040000 {
82 lradc@80050000 {
83 status = "okay";
84 };
85
86 i2c0: i2c@80058000 {
87 pinctrl-names = "default";
88 pinctrl-0 = <&i2c0_pins_a>;
89 status = "okay";
90 };
91
92 auart0: serial@8006a000 {
93 pinctrl-names = "default";
94 pinctrl-0 = <&auart0_2pins_a>;
95 status = "okay";
96 };
97
63 duart: serial@80074000 { 98 duart: serial@80074000 {
64 pinctrl-names = "default"; 99 pinctrl-names = "default";
65 pinctrl-0 = <&duart_pins_a>; 100 pinctrl-0 = <&duart_pins_a>;
@@ -75,47 +110,43 @@
75 ahb@80080000 { 110 ahb@80080000 {
76 usb0: usb@80080000 { 111 usb0: usb@80080000 {
77 status = "okay"; 112 status = "okay";
113 dr_mode = "peripheral";
78 }; 114 };
79 115
80 mac0: ethernet@800f0000 { 116 mac0: ethernet@800f0000 {
81 phy-mode = "rmii"; 117 phy-mode = "rmii";
82 pinctrl-names = "default"; 118 pinctrl-names = "default";
83 pinctrl-0 = <&mac0_pins_a>; 119 pinctrl-0 = <&mac0_pins_a>, <&mac0_phy_reset_pin>;
84 phy-supply = <&reg_3p3v>; 120 phy-supply = <&reg_3p3v>;
85 phy-reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>; 121 phy-reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
86 phy-reset-duration = <100>; 122 phy-reset-duration = <25>;
87 status = "okay"; 123 status = "okay";
88 }; 124 };
89 }; 125 };
90 126
91 regulators { 127 reg_3p3v: regulator-3p3v {
92 compatible = "simple-bus"; 128 compatible = "regulator-fixed";
93 #address-cells = <1>; 129 regulator-name = "3P3V";
94 #size-cells = <0>; 130 regulator-min-microvolt = <3300000>;
95 131 regulator-max-microvolt = <3300000>;
96 reg_3p3v: regulator@0 { 132 regulator-always-on;
97 compatible = "regulator-fixed";
98 reg = <0>;
99 regulator-name = "3P3V";
100 regulator-min-microvolt = <3300000>;
101 regulator-max-microvolt = <3300000>;
102 regulator-always-on;
103 };
104 }; 133 };
105 134
106 leds { 135 leds {
107 compatible = "gpio-leds"; 136 compatible = "gpio-leds";
108 pinctrl-names = "default"; 137 pinctrl-names = "default";
109 pinctrl-0 = <&led_pins_a>; 138 pinctrl-0 = <&led_pins>;
110 139
111 status { 140 status-red {
112 label = "duckbill:green:status";
113 gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
114 };
115
116 failure {
117 label = "duckbill:red:status"; 141 label = "duckbill:red:status";
118 gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>; 142 gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>;
143 linux,default-trigger = "default-on";
144 };
145
146 status-green {
147 label = "duckbill:green:status";
148 gpios = <&gpio3 5 GPIO_ACTIVE_HIGH>;
149 linux,default-trigger = "heartbeat";
119 }; 150 };
120 }; 151 };
121}; 152};
diff --git a/arch/arm/boot/dts/imx28-m28cu3.dts b/arch/arm/boot/dts/imx28-m28cu3.dts
index 2df63bee6f4e..bb5329479c62 100644
--- a/arch/arm/boot/dts/imx28-m28cu3.dts
+++ b/arch/arm/boot/dts/imx28-m28cu3.dts
@@ -57,7 +57,7 @@
57 pinctrl-names = "default"; 57 pinctrl-names = "default";
58 pinctrl-0 = <&mmc2_4bit_pins_a 58 pinctrl-0 = <&mmc2_4bit_pins_a
59 &mmc2_cd_cfg 59 &mmc2_cd_cfg
60 &mmc2_sck_cfg>; 60 &mmc2_sck_cfg_a>;
61 bus-width = <4>; 61 bus-width = <4>;
62 vmmc-supply = <&reg_vddio_sd1>; 62 vmmc-supply = <&reg_vddio_sd1>;
63 status = "okay"; 63 status = "okay";
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 148fcf4d3b98..2f4ebe0318d3 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -590,6 +590,22 @@
590 fsl,pull-up = <MXS_PULL_ENABLE>; 590 fsl,pull-up = <MXS_PULL_ENABLE>;
591 }; 591 };
592 592
593 mmc2_4bit_pins_b: mmc2-4bit@1 {
594 reg = <1>;
595 fsl,pinmux-ids = <
596 MX28_PAD_SSP2_SCK__SSP2_SCK
597 MX28_PAD_SSP2_MOSI__SSP2_CMD
598 MX28_PAD_SSP2_MISO__SSP2_D0
599 MX28_PAD_SSP2_SS0__SSP2_D3
600 MX28_PAD_SSP2_SS1__SSP2_D1
601 MX28_PAD_SSP2_SS2__SSP2_D2
602 MX28_PAD_AUART1_RX__SSP2_CARD_DETECT
603 >;
604 fsl,drive-strength = <MXS_DRIVE_8mA>;
605 fsl,voltage = <MXS_VOLTAGE_HIGH>;
606 fsl,pull-up = <MXS_PULL_ENABLE>;
607 };
608
593 mmc2_cd_cfg: mmc2-cd-cfg { 609 mmc2_cd_cfg: mmc2-cd-cfg {
594 fsl,pinmux-ids = < 610 fsl,pinmux-ids = <
595 MX28_PAD_AUART1_RX__SSP2_CARD_DETECT 611 MX28_PAD_AUART1_RX__SSP2_CARD_DETECT
@@ -597,7 +613,8 @@
597 fsl,pull-up = <MXS_PULL_DISABLE>; 613 fsl,pull-up = <MXS_PULL_DISABLE>;
598 }; 614 };
599 615
600 mmc2_sck_cfg: mmc2-sck-cfg { 616 mmc2_sck_cfg_a: mmc2-sck-cfg@0 {
617 reg = <0>;
601 fsl,pinmux-ids = < 618 fsl,pinmux-ids = <
602 MX28_PAD_SSP0_DATA7__SSP2_SCK 619 MX28_PAD_SSP0_DATA7__SSP2_SCK
603 >; 620 >;
@@ -605,6 +622,15 @@
605 fsl,pull-up = <MXS_PULL_DISABLE>; 622 fsl,pull-up = <MXS_PULL_DISABLE>;
606 }; 623 };
607 624
625 mmc2_sck_cfg_b: mmc2-sck-cfg@1 {
626 reg = <1>;
627 fsl,pinmux-ids = <
628 MX28_PAD_SSP2_SCK__SSP2_SCK
629 >;
630 fsl,drive-strength = <MXS_DRIVE_12mA>;
631 fsl,pull-up = <MXS_PULL_DISABLE>;
632 };
633
608 i2c0_pins_a: i2c0@0 { 634 i2c0_pins_a: i2c0@0 {
609 reg = <0>; 635 reg = <0>;
610 fsl,pinmux-ids = < 636 fsl,pinmux-ids = <
diff --git a/arch/arm/boot/dts/imx50.dtsi b/arch/arm/boot/dts/imx50.dtsi
index ceae909e2201..2a98afcd8a4e 100644
--- a/arch/arm/boot/dts/imx50.dtsi
+++ b/arch/arm/boot/dts/imx50.dtsi
@@ -109,7 +109,7 @@
109 ranges; 109 ranges;
110 110
111 esdhc1: esdhc@50004000 { 111 esdhc1: esdhc@50004000 {
112 compatible = "fsl,imx50-esdhc"; 112 compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
113 reg = <0x50004000 0x4000>; 113 reg = <0x50004000 0x4000>;
114 interrupts = <1>; 114 interrupts = <1>;
115 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>, 115 clocks = <&clks IMX5_CLK_ESDHC1_IPG_GATE>,
@@ -121,7 +121,7 @@
121 }; 121 };
122 122
123 esdhc2: esdhc@50008000 { 123 esdhc2: esdhc@50008000 {
124 compatible = "fsl,imx50-esdhc"; 124 compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
125 reg = <0x50008000 0x4000>; 125 reg = <0x50008000 0x4000>;
126 interrupts = <2>; 126 interrupts = <2>;
127 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>, 127 clocks = <&clks IMX5_CLK_ESDHC2_IPG_GATE>,
@@ -170,7 +170,7 @@
170 }; 170 };
171 171
172 esdhc3: esdhc@50020000 { 172 esdhc3: esdhc@50020000 {
173 compatible = "fsl,imx50-esdhc"; 173 compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
174 reg = <0x50020000 0x4000>; 174 reg = <0x50020000 0x4000>;
175 interrupts = <3>; 175 interrupts = <3>;
176 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>, 176 clocks = <&clks IMX5_CLK_ESDHC3_IPG_GATE>,
@@ -182,7 +182,7 @@
182 }; 182 };
183 183
184 esdhc4: esdhc@50024000 { 184 esdhc4: esdhc@50024000 {
185 compatible = "fsl,imx50-esdhc"; 185 compatible = "fsl,imx50-esdhc", "fsl,imx53-esdhc";
186 reg = <0x50024000 0x4000>; 186 reg = <0x50024000 0x4000>;
187 interrupts = <4>; 187 interrupts = <4>;
188 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>, 188 clocks = <&clks IMX5_CLK_ESDHC4_IPG_GATE>,
diff --git a/arch/arm/boot/dts/imx53-qsb.dts b/arch/arm/boot/dts/imx53-qsb.dts
index f4c158cce908..d3d662e37677 100644
--- a/arch/arm/boot/dts/imx53-qsb.dts
+++ b/arch/arm/boot/dts/imx53-qsb.dts
@@ -88,8 +88,8 @@
88 }; 88 };
89 89
90 ldo7_reg: ldo7 { 90 ldo7_reg: ldo7 {
91 regulator-min-microvolt = <1200000>; 91 regulator-min-microvolt = <2750000>;
92 regulator-max-microvolt = <3600000>; 92 regulator-max-microvolt = <2750000>;
93 }; 93 };
94 94
95 ldo8_reg: ldo8 { 95 ldo8_reg: ldo8 {
diff --git a/arch/arm/boot/dts/imx53-qsrb.dts b/arch/arm/boot/dts/imx53-qsrb.dts
index 479ca4c9e384..de2215832372 100644
--- a/arch/arm/boot/dts/imx53-qsrb.dts
+++ b/arch/arm/boot/dts/imx53-qsrb.dts
@@ -128,8 +128,8 @@
128 128
129 vdac_reg: vdac { 129 vdac_reg: vdac {
130 regulator-name = "VDAC"; 130 regulator-name = "VDAC";
131 regulator-min-microvolt = <2500000>; 131 regulator-min-microvolt = <2750000>;
132 regulator-max-microvolt = <2775000>; 132 regulator-max-microvolt = <2750000>;
133 }; 133 };
134 134
135 vgen1_reg: vgen1 { 135 vgen1_reg: vgen1 {
diff --git a/arch/arm/boot/dts/imx6dl-gw5903.dts b/arch/arm/boot/dts/imx6dl-gw5903.dts
new file mode 100644
index 000000000000..103261ea9334
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-gw5903.dts
@@ -0,0 +1,55 @@
1/*
2 * Copyright 2017 Gateworks Corporation
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48/dts-v1/;
49#include "imx6dl.dtsi"
50#include "imx6qdl-gw5903.dtsi"
51
52/ {
53 model = "Gateworks Ventana i.MX6 Duallite/Solo GW5903";
54 compatible = "gw,imx6dl-gw5903", "gw,ventana", "fsl,imx6dl";
55};
diff --git a/arch/arm/boot/dts/imx6dl-gw5904.dts b/arch/arm/boot/dts/imx6dl-gw5904.dts
new file mode 100644
index 000000000000..9c6d3cd3d6a7
--- /dev/null
+++ b/arch/arm/boot/dts/imx6dl-gw5904.dts
@@ -0,0 +1,55 @@
1/*
2 * Copyright 2017 Gateworks Corporation
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48/dts-v1/;
49#include "imx6dl.dtsi"
50#include "imx6qdl-gw5904.dtsi"
51
52/ {
53 model = "Gateworks Ventana i.MX6 DualLite/Solo GW5904";
54 compatible = "gw,imx6dl-gw5904", "gw,ventana", "fsl,imx6dl";
55};
diff --git a/arch/arm/boot/dts/imx6q-b450v3.dts b/arch/arm/boot/dts/imx6q-b450v3.dts
index 116bebb5e435..404a93d9596b 100644
--- a/arch/arm/boot/dts/imx6q-b450v3.dts
+++ b/arch/arm/boot/dts/imx6q-b450v3.dts
@@ -104,4 +104,11 @@
104 output-low; 104 output-low;
105 line-name = "PCA9539-P05"; 105 line-name = "PCA9539-P05";
106 }; 106 };
107
108 P07 {
109 gpio-hog;
110 gpios = <7 0>;
111 output-low;
112 line-name = "PCA9539-P07";
113 };
107}; 114};
diff --git a/arch/arm/boot/dts/imx6q-b650v3.dts b/arch/arm/boot/dts/imx6q-b650v3.dts
index 33f5c436c09f..7f9f176901d4 100644
--- a/arch/arm/boot/dts/imx6q-b650v3.dts
+++ b/arch/arm/boot/dts/imx6q-b650v3.dts
@@ -97,6 +97,13 @@
97 output-low; 97 output-low;
98 line-name = "PCA9539-P05"; 98 line-name = "PCA9539-P05";
99 }; 99 };
100
101 P07 {
102 gpio-hog;
103 gpios = <7 0>;
104 output-low;
105 line-name = "PCA9539-P07";
106 };
100}; 107};
101 108
102&usbphy1 { 109&usbphy1 {
diff --git a/arch/arm/boot/dts/imx6q-b850v3.dts b/arch/arm/boot/dts/imx6q-b850v3.dts
index d78514c92349..2c1e98e0cf7b 100644
--- a/arch/arm/boot/dts/imx6q-b850v3.dts
+++ b/arch/arm/boot/dts/imx6q-b850v3.dts
@@ -72,6 +72,14 @@
72 fsl,data-mapping = "spwg"; 72 fsl,data-mapping = "spwg";
73 fsl,data-width = <24>; 73 fsl,data-width = <24>;
74 status = "okay"; 74 status = "okay";
75
76 port@4 {
77 reg = <4>;
78
79 lvds0_out: endpoint {
80 remote-endpoint = <&stdp4028_in>;
81 };
82 };
75 }; 83 };
76}; 84};
77 85
@@ -142,3 +150,65 @@
142 reg = <0x4a>; 150 reg = <0x4a>;
143 }; 151 };
144}; 152};
153
154&mux2_i2c2 {
155 clock-frequency = <100000>;
156
157 stdp2690@72 {
158 compatible = "megachips,stdp2690-ge-b850v3-fw";
159 #address-cells = <1>;
160 #size-cells = <0>;
161 reg = <0x72>;
162
163 ports {
164 #address-cells = <1>;
165 #size-cells = <0>;
166
167 port@0 {
168 reg = <0>;
169
170 stdp2690_in: endpoint {
171 remote-endpoint = <&stdp4028_out>;
172 };
173 };
174
175 port@1 {
176 reg = <1>;
177
178 stdp2690_out: endpoint {
179 /* Connector for external display */
180 };
181 };
182 };
183 };
184
185 stdp4028@73 {
186 compatible = "megachips,stdp4028-ge-b850v3-fw";
187 #address-cells = <1>;
188 #size-cells = <0>;
189 reg = <0x73>;
190 interrupt-parent = <&gpio2>;
191 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
192
193 ports {
194 #address-cells = <1>;
195 #size-cells = <0>;
196
197 port@0 {
198 reg = <0>;
199
200 stdp4028_in: endpoint {
201 remote-endpoint = <&lvds0_out>;
202 };
203 };
204
205 port@1 {
206 reg = <1>;
207
208 stdp4028_out: endpoint {
209 remote-endpoint = <&stdp2690_in>;
210 };
211 };
212 };
213 };
214};
diff --git a/arch/arm/boot/dts/imx6q-bx50v3.dtsi b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
index 36d6bb39593a..c90b26f00e24 100644
--- a/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -102,7 +102,7 @@
102 102
103 m25_eeprom: m25p80@0 { 103 m25_eeprom: m25p80@0 {
104 compatible = "atmel,at25"; 104 compatible = "atmel,at25";
105 spi-max-frequency = <20000000>; 105 spi-max-frequency = <10000000>;
106 size = <0x8000>; 106 size = <0x8000>;
107 pagesize = <64>; 107 pagesize = <64>;
108 reg = <0>; 108 reg = <0>;
@@ -183,20 +183,6 @@
183 interrupt-parent = <&gpio2>; 183 interrupt-parent = <&gpio2>;
184 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 184 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
185 185
186 P06 {
187 gpio-hog;
188 gpios = <6 0>;
189 output-low;
190 line-name = "PCA9539-P06";
191 };
192
193 P07 {
194 gpio-hog;
195 gpios = <7 0>;
196 output-low;
197 line-name = "PCA9539-P07";
198 };
199
200 P10 { 186 P10 {
201 gpio-hog; 187 gpio-hog;
202 gpios = <8 0>; 188 gpios = <8 0>;
diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts
index d8a5789a4bc8..66cac5328b86 100644
--- a/arch/arm/boot/dts/imx6q-cm-fx6.dts
+++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts
@@ -43,6 +43,7 @@
43 43
44/dts-v1/; 44/dts-v1/;
45#include <dt-bindings/gpio/gpio.h> 45#include <dt-bindings/gpio/gpio.h>
46#include <dt-bindings/sound/fsl-imx-audmux.h>
46#include "imx6q.dtsi" 47#include "imx6q.dtsi"
47 48
48/ { 49/ {
@@ -90,6 +91,34 @@
90 enable-active-high; 91 enable-active-high;
91 }; 92 };
92 93
94 sound-analog {
95 compatible = "simple-audio-card";
96 simple-audio-card,name = "On-board analog audio";
97 simple-audio-card,widgets =
98 "Headphone", "Headphone Jack",
99 "Line", "Line Out",
100 "Microphone", "Mic Jack",
101 "Line", "Line In";
102 simple-audio-card,routing =
103 "Headphone Jack", "RHPOUT",
104 "Headphone Jack", "LHPOUT",
105 "MICIN", "Mic Bias",
106 "Mic Bias", "Mic Jack";
107 simple-audio-card,format = "i2s";
108 simple-audio-card,bitclock-master = <&sound_master>;
109 simple-audio-card,frame-master = <&sound_master>;
110 simple-audio-card,bitclock-inversion;
111
112 sound_master: simple-audio-card,cpu {
113 sound-dai = <&ssi2>;
114 system-clock-frequency = <2822400>;
115 };
116
117 simple-audio-card,codec {
118 sound-dai = <&wm8731>;
119 };
120 };
121
93 sound-spdif { 122 sound-spdif {
94 compatible = "fsl,imx-audio-spdif"; 123 compatible = "fsl,imx-audio-spdif";
95 model = "imx-spdif"; 124 model = "imx-spdif";
@@ -99,6 +128,36 @@
99 }; 128 };
100}; 129};
101 130
131&audmux {
132 pinctrl-names = "default";
133 pinctrl-0 = <&pinctrl_audmux>;
134 status = "okay";
135
136 ssi2 {
137 fsl,audmux-port = <1>;
138 fsl,port-config = <
139 (IMX_AUDMUX_V2_PTCR_RCLKDIR |
140 IMX_AUDMUX_V2_PTCR_RCSEL(3 | 0x8) |
141 IMX_AUDMUX_V2_PTCR_TCLKDIR |
142 IMX_AUDMUX_V2_PTCR_TCSEL(3))
143 IMX_AUDMUX_V2_PDCR_RXDSEL(3)
144 >;
145 };
146
147 audmux4 {
148 fsl,audmux-port = <3>;
149 fsl,port-config = <
150 (IMX_AUDMUX_V2_PTCR_TFSDIR |
151 IMX_AUDMUX_V2_PTCR_TFSEL(1) |
152 IMX_AUDMUX_V2_PTCR_RCLKDIR |
153 IMX_AUDMUX_V2_PTCR_RCSEL(1 | 0x8) |
154 IMX_AUDMUX_V2_PTCR_TCLKDIR |
155 IMX_AUDMUX_V2_PTCR_TCSEL(1))
156 IMX_AUDMUX_V2_PDCR_RXDSEL(1)
157 >;
158 };
159};
160
102&cpu0 { 161&cpu0 {
103 /* 162 /*
104 * Although the imx6q fuse indicates that 1.2GHz operation is possible, 163 * Although the imx6q fuse indicates that 1.2GHz operation is possible,
@@ -160,9 +219,25 @@
160 reg = <0x50>; 219 reg = <0x50>;
161 pagesize = <16>; 220 pagesize = <16>;
162 }; 221 };
222
223 wm8731: codec@1a {
224 #sound-dai-cells = <0>;
225 compatible = "wlf,wm8731";
226 reg = <0x1a>;
227 };
163}; 228};
164 229
165&iomuxc { 230&iomuxc {
231 pinctrl_audmux: audmuxgrp {
232 fsl,pins = <
233 MX6QDL_PAD_SD2_CMD__AUD4_RXC 0x17059
234 MX6QDL_PAD_SD2_DAT0__AUD4_RXD 0x17059
235 MX6QDL_PAD_SD2_DAT3__AUD4_TXC 0x17059
236 MX6QDL_PAD_SD2_DAT2__AUD4_TXD 0x17059
237 MX6QDL_PAD_SD2_DAT1__AUD4_TXFS 0x17059
238 >;
239 };
240
166 pinctrl_ecspi1: ecspi1grp { 241 pinctrl_ecspi1: ecspi1grp {
167 fsl,pins = < 242 fsl,pins = <
168 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1 243 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
@@ -279,6 +354,14 @@
279 status = "okay"; 354 status = "okay";
280}; 355};
281 356
357&ssi2 {
358 assigned-clocks = <&clks IMX6QDL_CLK_SSI2_SEL>,
359 <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
360 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
361 assigned-clock-rates = <0>, <786432000>;
362 status = "okay";
363};
364
282&uart4 { 365&uart4 {
283 pinctrl-names = "default"; 366 pinctrl-names = "default";
284 pinctrl-0 = <&pinctrl_uart4>; 367 pinctrl-0 = <&pinctrl_uart4>;
diff --git a/arch/arm/boot/dts/imx6q-gw5903.dts b/arch/arm/boot/dts/imx6q-gw5903.dts
new file mode 100644
index 000000000000..a182e4cb0e6e
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-gw5903.dts
@@ -0,0 +1,55 @@
1/*
2 * Copyright 2017 Gateworks Corporation
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48/dts-v1/;
49#include "imx6q.dtsi"
50#include "imx6qdl-gw5903.dtsi"
51
52/ {
53 model = "Gateworks Ventana i.MX6 Dual/Quad GW5903";
54 compatible = "gw,imx6q-gw5903", "gw,ventana", "fsl,imx6q";
55};
diff --git a/arch/arm/boot/dts/imx6q-gw5904.dts b/arch/arm/boot/dts/imx6q-gw5904.dts
new file mode 100644
index 000000000000..ca1e2ae3341e
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-gw5904.dts
@@ -0,0 +1,59 @@
1/*
2 * Copyright 2017 Gateworks Corporation
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48/dts-v1/;
49#include "imx6q.dtsi"
50#include "imx6qdl-gw5904.dtsi"
51
52/ {
53 model = "Gateworks Ventana i.MX6 Dual/Quad GW5904";
54 compatible = "gw,imx6q-gw5904", "gw,ventana", "fsl,imx6q";
55};
56
57&sata {
58 status = "okay";
59};
diff --git a/arch/arm/boot/dts/imx6q-icore-ofcap10.dts b/arch/arm/boot/dts/imx6q-icore-ofcap10.dts
new file mode 100644
index 000000000000..49b60ca20e6d
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-icore-ofcap10.dts
@@ -0,0 +1,76 @@
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 "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 "imx6q.dtsi"
46#include "imx6qdl-icore.dtsi"
47
48/ {
49 model = "Engicam i.CoreM6 Quad/Dual OpenFrame Capacitive touch 10.1 Kit";
50 compatible = "engicam,imx6-icore", "fsl,imx6q";
51};
52
53&ldb {
54 status = "okay";
55
56 lvds-channel@0 {
57 fsl,data-mapping = "spwg";
58 fsl,data-width = <24>;
59 status = "okay";
60
61 display-timings {
62 native-mode = <&timing0>;
63 timing0: timing0 {
64 clock-frequency = <60000000>;
65 hactive = <1280>;
66 vactive = <800>;
67 hback-porch = <40>;
68 hfront-porch = <40>;
69 vback-porch = <10>;
70 vfront-porch = <3>;
71 hsync-len = <80>;
72 vsync-len = <10>;
73 };
74 };
75 };
76};
diff --git a/arch/arm/boot/dts/imx6q-icore-ofcap12.dts b/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
new file mode 100644
index 000000000000..9e230f56c5fb
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
@@ -0,0 +1,76 @@
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 "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 "imx6q.dtsi"
46#include "imx6qdl-icore.dtsi"
47
48/ {
49 model = "Engicam i.CoreM6 Quad/Dual OpenFrame Capacitive touch 12 Kit";
50 compatible = "engicam,imx6-icore", "fsl,imx6q";
51};
52
53&ldb {
54 status = "okay";
55
56 lvds-channel@0 {
57 fsl,data-mapping = "spwg";
58 fsl,data-width = <18>;
59 status = "okay";
60
61 display-timings {
62 native-mode = <&timing0>;
63 timing0: timing0 {
64 clock-frequency = <46800000>;
65 hactive = <1280>;
66 vactive = <480>;
67 hback-porch = <353>;
68 hfront-porch = <47>;
69 vback-porch = <39>;
70 vfront-porch = <4>;
71 hsync-len = <8>;
72 vsync-len = <2>;
73 };
74 };
75 };
76};
diff --git a/arch/arm/boot/dts/imx6q-icore.dts b/arch/arm/boot/dts/imx6q-icore.dts
index 59eb7adc2472..5613dd9dc469 100644
--- a/arch/arm/boot/dts/imx6q-icore.dts
+++ b/arch/arm/boot/dts/imx6q-icore.dts
@@ -57,3 +57,37 @@
57&can2 { 57&can2 {
58 status = "okay"; 58 status = "okay";
59}; 59};
60
61&i2c1 {
62 max11801: touchscreen@48 {
63 compatible = "maxim,max11801";
64 reg = <0x48>;
65 interrupt-parent = <&gpio3>;
66 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
67 };
68};
69
70&ldb {
71 status = "okay";
72
73 lvds-channel@0 {
74 fsl,data-mapping = "spwg";
75 fsl,data-width = <18>;
76 status = "okay";
77
78 display-timings {
79 native-mode = <&timing0>;
80 timing0: timing0 {
81 clock-frequency = <60000000>;
82 hactive = <800>;
83 vactive = <480>;
84 hback-porch = <30>;
85 hfront-porch = <30>;
86 vback-porch = <5>;
87 vfront-porch = <5>;
88 hsync-len = <64>;
89 vsync-len = <20>;
90 };
91 };
92 };
93};
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
index 69bdd82ce21f..d900ad6ec5f8 100644
--- a/arch/arm/boot/dts/imx6q-utilite-pro.dts
+++ b/arch/arm/boot/dts/imx6q-utilite-pro.dts
@@ -101,9 +101,11 @@
101 101
102 hdmi-connector { 102 hdmi-connector {
103 compatible = "hdmi-connector"; 103 compatible = "hdmi-connector";
104 104 pinctrl-names = "default";
105 pinctrl-0 = <&pinctrl_hpd>;
105 type = "a"; 106 type = "a";
106 ddc-i2c-bus = <&i2c_dvi_ddc>; 107 ddc-i2c-bus = <&i2c_dvi_ddc>;
108 hpd-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
107 109
108 port { 110 port {
109 hdmi_connector_in: endpoint { 111 hdmi_connector_in: endpoint {
@@ -209,6 +211,12 @@
209 >; 211 >;
210 }; 212 };
211 213
214 pinctrl_hpd: hpdgrp {
215 fsl,pins = <
216 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1b0b0
217 >;
218 };
219
212 pinctrl_i2c1: i2c1grp { 220 pinctrl_i2c1: i2c1grp {
213 fsl,pins = < 221 fsl,pins = <
214 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1 222 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
diff --git a/arch/arm/boot/dts/imx6q-zii-rdu2.dts b/arch/arm/boot/dts/imx6q-zii-rdu2.dts
new file mode 100644
index 000000000000..b2d346640fd7
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-zii-rdu2.dts
@@ -0,0 +1,50 @@
1/*
2 * Copyright (C) 2016-2017 Zodiac Inflight Innovations
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/dts-v1/;
43
44#include <imx6q.dtsi>
45#include <imx6qdl-zii-rdu2.dtsi>
46
47/ {
48 model = "ZII RDU2 Board";
49 compatible = "zii,imx6q-zii-rdu2", "fsl,imx6q";
50};
diff --git a/arch/arm/boot/dts/imx6qdl-gw5903.dtsi b/arch/arm/boot/dts/imx6qdl-gw5903.dtsi
new file mode 100644
index 000000000000..444425153fc7
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-gw5903.dtsi
@@ -0,0 +1,654 @@
1/*
2 * Copyright 2017 Gateworks Corporation
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48#include <dt-bindings/gpio/gpio.h>
49
50/ {
51 chosen {
52 stdout-path = &uart2;
53 };
54
55 backlight {
56 compatible = "pwm-backlight";
57 pwms = <&pwm1 0 5000000>;
58 brightness-levels = <
59 0 1 2 3 4 5 6 7 8 9
60 10 11 12 13 14 15 16 17 18 19
61 20 21 22 23 24 25 26 27 28 29
62 30 31 32 33 34 35 36 37 38 39
63 40 41 42 43 44 45 46 47 48 49
64 50 51 52 53 54 55 56 57 58 59
65 60 61 62 63 64 65 66 67 68 69
66 70 71 72 73 74 75 76 77 78 79
67 80 81 82 83 84 85 86 87 88 89
68 90 91 92 93 94 95 96 97 98 99
69 100
70 >;
71 default-brightness-level = <100>;
72 };
73
74 leds {
75 compatible = "gpio-leds";
76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_gpio_leds>;
78
79 led0: user1 {
80 label = "user1";
81 gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; /* MX6_LOCLED# */
82 default-state = "off";
83 };
84 };
85
86 memory {
87 reg = <0x10000000 0x40000000>;
88 };
89
90 reg_5p0v: regulator-5p0v {
91 compatible = "regulator-fixed";
92 regulator-name = "5P0V";
93 regulator-min-microvolt = <5000000>;
94 regulator-max-microvolt = <5000000>;
95 regulator-always-on;
96 };
97
98 reg_3p3v: regulator-3p3v {
99 compatible = "regulator-fixed";
100 regulator-name = "3P3V";
101 regulator-min-microvolt = <3300000>;
102 regulator-max-microvolt = <3300000>;
103 regulator-always-on;
104 };
105
106 reg_2p5v: regulator-2p5v {
107 compatible = "regulator-fixed";
108 regulator-name = "2P5V";
109 regulator-min-microvolt = <2500000>;
110 regulator-max-microvolt = <2500000>;
111 regulator-always-on;
112 };
113
114 reg_usb_h1_vbus: regulator-usb-h1-vbus {
115 compatible = "regulator-fixed";
116 regulator-name = "usb_h1_vbus";
117 regulator-min-microvolt = <5000000>;
118 regulator-max-microvolt = <5000000>;
119 gpio = <&gpio3 30 0>;
120 enable-active-high;
121 };
122
123 reg_usb_otg_vbus: regulator-usb-otg-vbus {
124 compatible = "regulator-fixed";
125 regulator-name = "usb_otg_vbus";
126 regulator-min-microvolt = <5000000>;
127 regulator-max-microvolt = <5000000>;
128 gpio = <&gpio4 15 GPIO_ACTIVE_HIGH>;
129 enable-active-high;
130 };
131
132 reg_12p0: regulator-12p0v {
133 compatible = "regulator-fixed";
134 regulator-name = "12P0V";
135 regulator-min-microvolt = <12000000>;
136 regulator-max-microvolt = <12000000>;
137 gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
138 enable-active-high;
139 };
140
141 sound {
142 compatible = "fsl,imx-audio-tlv320";
143 model = "imx-tlv320";
144 ssi-controller = <&ssi1>;
145 audio-codec = <&tlv320aic3105>;
146 /* routing of sink, source */
147 audio-routing =
148 /* TLV320 LINE1L pin <-> Mic Jack connector */
149 "LINE1L", "Mic Jack",
150 /* board Headphone Jack <-> HPOUT */
151 "Headphone Jack", "HPLOUT",
152 "Headphone Jack", "HPROUT",
153 "Mic Jack", "Mic Bias";
154 mux-int-port = <1>;
155 mux-ext-port = <6>;
156 };
157};
158
159&audmux {
160 pinctrl-names = "default";
161 pinctrl-0 = <&pinctrl_audmux>;
162 status = "okay";
163};
164
165&clks {
166 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
167 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
168 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
169 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
170};
171
172&fec {
173 pinctrl-names = "default";
174 pinctrl-0 = <&pinctrl_enet>;
175 phy-mode = "rgmii-id";
176 status = "okay";
177};
178
179&i2c1 {
180 clock-frequency = <100000>;
181 pinctrl-names = "default";
182 pinctrl-0 = <&pinctrl_i2c1>;
183 status = "okay";
184
185 pca9555: gpio@23 {
186 compatible = "nxp,pca9555";
187 reg = <0x23>;
188 gpio-controller;
189 #gpio-cells = <2>;
190 };
191
192 eeprom1: eeprom@50 {
193 compatible = "atmel,24c02";
194 reg = <0x50>;
195 pagesize = <16>;
196 };
197
198 eeprom2: eeprom@51 {
199 compatible = "atmel,24c02";
200 reg = <0x51>;
201 pagesize = <16>;
202 };
203
204 eeprom3: eeprom@52 {
205 compatible = "atmel,24c02";
206 reg = <0x52>;
207 pagesize = <16>;
208 };
209
210 eeprom4: eeprom@53 {
211 compatible = "atmel,24c02";
212 reg = <0x53>;
213 pagesize = <16>;
214 };
215
216 dts1672: rtc@68 {
217 compatible = "dallas,ds1672";
218 reg = <0x68>;
219 };
220};
221
222&i2c2 {
223 clock-frequency = <400000>;
224 pinctrl-names = "default";
225 pinctrl-0 = <&pinctrl_i2c2>;
226 status = "okay";
227
228 ltc3676: pmic@3c {
229 compatible = "lltc,ltc3676";
230 reg = <0x3c>;
231 interrupt-parent = <&gpio1>;
232 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
233
234 regulators {
235 /* VDD_1P8 (1+R1/R2 = 2.505): Aud/eMMC/microSD/Touch */
236 reg_1p8v: sw1 {
237 regulator-name = "vdd1p8";
238 regulator-min-microvolt = <1033310>;
239 regulator-max-microvolt = <2004000>;
240 lltc,fb-voltage-divider = <301000 200000>;
241 regulator-ramp-delay = <7000>;
242 regulator-boot-on;
243 regulator-always-on;
244 };
245
246 /* VDD_DDR (1+R1/R2 = 2.105) */
247 reg_vdd_ddr: sw2 {
248 regulator-name = "vddddr";
249 regulator-min-microvolt = <868310>;
250 regulator-max-microvolt = <1684000>;
251 lltc,fb-voltage-divider = <221000 200000>;
252 regulator-ramp-delay = <7000>;
253 regulator-boot-on;
254 regulator-always-on;
255 };
256
257 /* VDD_ARM (1+R1/R2 = 1.635) */
258 reg_vdd_arm: sw3 {
259 regulator-name = "vddarm";
260 regulator-min-microvolt = <674400>;
261 regulator-max-microvolt = <1308000>;
262 lltc,fb-voltage-divider = <127000 200000>;
263 regulator-ramp-delay = <7000>;
264 regulator-boot-on;
265 regulator-always-on;
266 linux,phandle = <&reg_vdd_arm>;
267 };
268
269 /* VDD_SOC (1+R1/R2 = 1.635) */
270 reg_vdd_soc: sw4 {
271 regulator-name = "vddsoc";
272 regulator-min-microvolt = <674400>;
273 regulator-max-microvolt = <1308000>;
274 lltc,fb-voltage-divider = <127000 200000>;
275 regulator-ramp-delay = <7000>;
276 regulator-boot-on;
277 regulator-always-on;
278 linux,phandle = <&reg_vdd_soc>;
279 };
280
281 /* VDD_1P0 (1+R1/R2 = 1.38): */
282 reg_1p0v: ldo2 {
283 regulator-name = "vdd1p0";
284 regulator-min-microvolt = <1002777>;
285 regulator-max-microvolt = <1002777>;
286 lltc,fb-voltage-divider = <100000 261000>;
287 regulator-boot-on;
288 regulator-always-on;
289 };
290
291 /* VDD_HIGH (1+R1/R2 = 4.17) */
292 reg_3p0v: ldo4 {
293 regulator-name = "vdd3p0";
294 regulator-min-microvolt = <3023250>;
295 regulator-max-microvolt = <3023250>;
296 lltc,fb-voltage-divider = <634000 200000>;
297 regulator-boot-on;
298 regulator-always-on;
299 };
300 };
301 };
302};
303
304&i2c3 {
305 clock-frequency = <400000>;
306 pinctrl-names = "default";
307 pinctrl-0 = <&pinctrl_i2c3>;
308 status = "okay";
309
310 tlv320aic3105: codec@18 {
311 compatible = "ti,tlv320aic3x";
312 reg = <0x18>;
313 gpio-reset = <&gpio5 17 GPIO_ACTIVE_LOW>;
314 clocks = <&clks IMX6QDL_CLK_CKO>;
315 ai3x-micbias-vg = <2>; /* MICBIAS_2_5V */
316 /* Regulators */
317 DRVDD-supply = <&reg_3p3v>;
318 AVDD-supply = <&reg_3p3v>;
319 IOVDD-supply = <&reg_3p3v>;
320 DVDD-supply = <&reg_1p8v>;
321 };
322
323 accelerometer@1d {
324 compatible = "fsl,mma8451";
325 reg = <0x1d>;
326 interrupt-parent = <&gpio7>;
327 interrupts = <11 IRQ_TYPE_EDGE_RISING>;
328 interrupt-names = "INT2";
329 };
330
331 /* headphone detect */
332 ts3a227e@3b {
333 compatible = "ti,ts3a227e";
334 reg = <0x3b>;
335 interrupt-parent = <&gpio5>;
336 interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
337 ti,micbias = <4>; /* 2.5V micbias */
338 };
339};
340
341&ldb {
342 status = "okay";
343
344 lvds-channel@0 {
345 fsl,data-mapping = "spwg";
346 fsl,data-width = <18>;
347 status = "okay";
348
349 display-timings {
350 native-mode = <&timing0>;
351 timing0: g101evn010 {
352 clock-frequency = <68930000>;
353 hactive = <1280>;
354 vactive = <800>;
355 hback-porch = <220>;
356 hfront-porch = <40>;
357 vback-porch = <21>;
358 vfront-porch = <7>;
359 hsync-len = <60>;
360 vsync-len = <10>;
361 };
362 };
363 };
364};
365
366&pwm1 {
367 pinctrl-names = "default";
368 pinctrl-0 = <&pinctrl_pwm1>;
369 status = "okay";
370};
371
372&ssi1 {
373 status = "okay";
374};
375
376&uart1 {
377 pinctrl-names = "default";
378 pinctrl-0 = <&pinctrl_uart1>;
379 status = "okay";
380};
381
382&uart2 {
383 pinctrl-names = "default";
384 pinctrl-0 = <&pinctrl_uart2>;
385 status = "okay";
386};
387
388&usbotg {
389 vbus-supply = <&reg_usb_otg_vbus>;
390 pinctrl-names = "default";
391 pinctrl-0 = <&pinctrl_usbotg>;
392 disable-over-current;
393 status = "okay";
394};
395
396&usbh1 {
397 vbus-supply = <&reg_usb_h1_vbus>;
398 status = "okay";
399};
400
401&usdhc1 {
402 pinctrl-names = "default";
403 pinctrl-0 = <&pinctrl_usdhc1_200mhz>;
404 vmmc-supply = <&reg_3p3v>;
405 non-removable;
406 bus-width = <4>;
407 status = "okay";
408};
409
410&usdhc2 {
411 pinctrl-names = "default", "state_100mhz", "state_200mhz";
412 pinctrl-0 = <&pinctrl_usdhc2>;
413 pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
414 pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
415 cd-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
416 vmmc-supply = <&reg_3p3v>;
417 max-frequency = <100000000>;
418 status = "okay";
419};
420
421&usdhc3 {
422 pinctrl-names = "default", "state_100mhz", "state_200mhz";
423 pinctrl-0 = <&pinctrl_usdhc3>;
424 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
425 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
426 non-removable;
427 vmmc-supply = <&reg_3p3v>;
428 keep-power-in-suspend;
429 status = "okay";
430};
431
432&wdog1 {
433 pinctrl-names = "default";
434 pinctrl-0 = <&pinctrl_wdog>;
435 fsl,ext-reset-output;
436};
437
438&iomuxc {
439 pinctrl_audmux: audmuxgrp {
440 fsl,pins = <
441 MX6QDL_PAD_DI0_PIN2__AUD6_TXD 0x130b0
442 MX6QDL_PAD_DI0_PIN3__AUD6_TXFS 0x130b0
443 MX6QDL_PAD_DI0_PIN4__AUD6_RXD 0x130b0
444 MX6QDL_PAD_DI0_PIN15__AUD6_TXC 0x130b0
445 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0 /* MCK */
446 >;
447 };
448
449 pinctrl_enet: enetgrp {
450 fsl,pins = <
451 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
452 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
453 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
454 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
455 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
456 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
457 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
458 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
459 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
460 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
461 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
462 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
463 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
464 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
465 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
466 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x4001b0b0 /* PHY_RST# */
467 MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25 0x4001b0b0 /* PHY_EN */
468 >;
469 };
470
471 pinctrl_gpio_leds: gpioledsgrp {
472 fsl,pins = <
473 MX6QDL_PAD_NANDF_CS1__GPIO6_IO14 0x1b0b0
474 >;
475 };
476
477 pinctrl_i2c1: i2c1grp {
478 fsl,pins = <
479 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
480 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
481 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x0001b0b0 /* GSC_IRQ# */
482 >;
483 };
484
485 pinctrl_i2c2: i2c2grp {
486 fsl,pins = <
487 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
488 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
489 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x0001b0b0 /* PMIC_IRQ# */
490 >;
491 };
492
493 pinctrl_i2c3: i2c3grp {
494 fsl,pins = <
495 /* I2C3 */
496 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
497 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
498
499 /* Headphone Detect */
500 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x0001b0b0 /* HPDET_IRQ# */
501 MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16 0x0001b0b0 /* HPDET_MIC# */
502
503 /* Codec */
504 MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x0001b0b0 /* CODEC_RST# */
505
506 /* Touch Controller */
507 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x0001b0b0 /* TOUCH_IRQ# */
508 MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x0001b0b0 /* TOUCH_RST */
509
510 /* Stow Sensor */
511 MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x0001b0b0 /* ACCEL_IRQ2 */
512 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x0001b0b0 /* ACCEL_IRQ1 */
513 >;
514 };
515
516 pinctrl_pwm1: pwm1grp {
517 fsl,pins = <
518 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x1b0b1
519 >;
520 };
521
522 pinctrl_uart1: uart1grp {
523 fsl,pins = <
524 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
525 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
526 MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30 0x1b0b1 /* TXEN */
527 >;
528 };
529
530 pinctrl_uart2: uart2grp {
531 fsl,pins = <
532 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
533 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
534 >;
535 };
536
537 pinctrl_usbotg: usbotggrp {
538 fsl,pins = <
539 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
540 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x4001b0b0 /* PWR_EN */
541 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0 /* OC */
542 >;
543 };
544
545 pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
546 fsl,pins = <
547 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x4001b0b0 /* EMMY_EN */
548 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x4001b0b0 /* EMMY_CFG1# */
549 MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x4001b0b0 /* EMMY_CFG2# */
550 MX6QDL_PAD_NANDF_D6__GPIO2_IO06 0x0001b0b0 /* EMMY_BTWAKE# */
551 MX6QDL_PAD_NANDF_D7__GPIO2_IO07 0x0001b0b0 /* EMMY_WFWAKE# */
552
553 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f9
554 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x100f9
555 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f9
556 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f9
557 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f9
558 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f9
559 >;
560 };
561
562 pinctrl_usdhc2: usdhc2grp {
563 fsl,pins = <
564 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
565 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
566 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
567 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
568 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
569 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
570 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x17059 /* CD */
571 MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x17059
572 >;
573 };
574
575 pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
576 fsl,pins = <
577 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
578 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
579 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
580 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
581 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
582 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9
583 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x170b9 /* CD */
584 MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x170b9
585 >;
586 };
587
588 pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
589 fsl,pins = <
590 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
591 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
592 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
593 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
594 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
595 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
596 MX6QDL_PAD_NANDF_CS0__GPIO6_IO11 0x170f9 /* CD */
597 MX6QDL_PAD_KEY_ROW1__SD2_VSELECT 0x170f9
598 >;
599 };
600
601 pinctrl_usdhc3: usdhc3grp {
602 fsl,pins = <
603 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
604 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
605 MX6QDL_PAD_SD3_RST__SD3_RESET 0x10059
606 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
607 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
608 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
609 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
610 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
611 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
612 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
613 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
614 >;
615 };
616
617 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
618 fsl,pins = <
619 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
620 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
621 MX6QDL_PAD_SD3_RST__SD3_RESET 0x100b9
622 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
623 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
624 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
625 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
626 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b9
627 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b9
628 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b9
629 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b9
630 >;
631 };
632
633 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
634 fsl,pins = <
635 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
636 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
637 MX6QDL_PAD_SD3_RST__SD3_RESET 0x100f9
638 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
639 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
640 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
641 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
642 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f9
643 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f9
644 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f9
645 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f9
646 >;
647 };
648
649 pinctrl_wdog: wdoggrp {
650 fsl,pins = <
651 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
652 >;
653 };
654};
diff --git a/arch/arm/boot/dts/imx6qdl-gw5904.dtsi b/arch/arm/boot/dts/imx6qdl-gw5904.dtsi
new file mode 100644
index 000000000000..fd4b68be9fe9
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-gw5904.dtsi
@@ -0,0 +1,641 @@
1/*
2 * Copyright 2017 Gateworks Corporation
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public
20 * License along with this file; if not, write to the Free
21 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 * MA 02110-1301 USA
23 *
24 * Or, alternatively,
25 *
26 * b) Permission is hereby granted, free of charge, to any person
27 * obtaining a copy of this software and associated documentation
28 * files (the "Software"), to deal in the Software without
29 * restriction, including without limitation the rights to use,
30 * copy, modify, merge, publish, distribute, sublicense, and/or
31 * sell copies of the Software, and to permit persons to whom the
32 * Software is furnished to do so, subject to the following
33 * conditions:
34 *
35 * The above copyright notice and this permission notice shall be
36 * included in all copies or substantial portions of the Software.
37 *
38 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
39 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
40 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
41 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
42 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
43 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
44 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
45 * OTHER DEALINGS IN THE SOFTWARE.
46 */
47
48#include <dt-bindings/gpio/gpio.h>
49
50/ {
51 /* these are used by bootloader for disabling nodes */
52 aliases {
53 led0 = &led0;
54 led1 = &led1;
55 led2 = &led2;
56 usb0 = &usbh1;
57 usb1 = &usbotg;
58 };
59
60 chosen {
61 stdout-path = &uart2;
62 };
63
64 backlight {
65 compatible = "pwm-backlight";
66 pwms = <&pwm4 0 5000000>;
67 brightness-levels = <0 4 8 16 32 64 128 255>;
68 default-brightness-level = <7>;
69 };
70
71 leds {
72 compatible = "gpio-leds";
73 pinctrl-names = "default";
74 pinctrl-0 = <&pinctrl_gpio_leds>;
75
76 led0: user1 {
77 label = "user1";
78 gpios = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDG */
79 default-state = "on";
80 linux,default-trigger = "heartbeat";
81 };
82
83 led1: user2 {
84 label = "user2";
85 gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>; /* MX6_PANLEDR */
86 default-state = "off";
87 };
88
89 led2: user3 {
90 label = "user3";
91 gpios = <&gpio4 15 GPIO_ACTIVE_LOW>; /* MX6_LOCLED# */
92 default-state = "off";
93 };
94 };
95
96 memory {
97 reg = <0x10000000 0x40000000>;
98 };
99
100 pps {
101 compatible = "pps-gpio";
102 pinctrl-names = "default";
103 pinctrl-0 = <&pinctrl_pps>;
104 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
105 };
106
107 reg_1p0v: regulator-1p0v {
108 compatible = "regulator-fixed";
109 regulator-name = "1P0V";
110 regulator-min-microvolt = <1000000>;
111 regulator-max-microvolt = <1000000>;
112 regulator-always-on;
113 };
114
115 reg_3p3v: regulator-3p3v {
116 compatible = "regulator-fixed";
117 regulator-name = "3P3V";
118 regulator-min-microvolt = <3300000>;
119 regulator-max-microvolt = <3300000>;
120 regulator-always-on;
121 };
122
123 reg_usb_h1_vbus: regulator-usb-h1-vbus {
124 compatible = "regulator-fixed";
125 regulator-name = "usb_h1_vbus";
126 regulator-min-microvolt = <5000000>;
127 regulator-max-microvolt = <5000000>;
128 regulator-always-on;
129 };
130
131 reg_usb_otg_vbus: regulator-usb-otg-vbus {
132 compatible = "regulator-fixed";
133 regulator-name = "usb_otg_vbus";
134 regulator-min-microvolt = <5000000>;
135 regulator-max-microvolt = <5000000>;
136 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
137 enable-active-high;
138 };
139};
140
141&clks {
142 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
143 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
144 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
145 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
146};
147
148&fec {
149 pinctrl-names = "default";
150 pinctrl-0 = <&pinctrl_enet>;
151 phy-mode = "rgmii-id";
152 status = "okay";
153
154 fixed-link {
155 speed = <1000>;
156 full-duplex;
157 };
158
159 mdio {
160 #address-cells = <1>;
161 #size-cells = <0>;
162
163 switch@0 {
164 compatible = "marvell,mv88e6085";
165 #address-cells = <1>;
166 #size-cells = <0>;
167 reg = <0>;
168
169 ports {
170 #address-cells = <1>;
171 #size-cells = <0>;
172
173 port@0 {
174 reg = <0>;
175 label = "lan4";
176 };
177
178 port@1 {
179 reg = <1>;
180 label = "lan3";
181 };
182
183 port@2 {
184 reg = <2>;
185 label = "lan2";
186 };
187
188 port@3 {
189 reg = <3>;
190 label = "lan1";
191 };
192
193 port@5 {
194 reg = <5>;
195 label = "cpu";
196 ethernet = <&fec>;
197 };
198 };
199 };
200 };
201};
202
203&i2c1 {
204 clock-frequency = <100000>;
205 pinctrl-names = "default";
206 pinctrl-0 = <&pinctrl_i2c1>;
207 status = "okay";
208
209 pca9555: gpio@23 {
210 compatible = "nxp,pca9555";
211 reg = <0x23>;
212 gpio-controller;
213 #gpio-cells = <2>;
214 };
215
216 eeprom1: eeprom@50 {
217 compatible = "atmel,24c02";
218 reg = <0x50>;
219 pagesize = <16>;
220 };
221
222 eeprom2: eeprom@51 {
223 compatible = "atmel,24c02";
224 reg = <0x51>;
225 pagesize = <16>;
226 };
227
228 eeprom3: eeprom@52 {
229 compatible = "atmel,24c02";
230 reg = <0x52>;
231 pagesize = <16>;
232 };
233
234 eeprom4: eeprom@53 {
235 compatible = "atmel,24c02";
236 reg = <0x53>;
237 pagesize = <16>;
238 };
239
240 dts1672: rtc@68 {
241 compatible = "dallas,ds1672";
242 reg = <0x68>;
243 };
244};
245
246&i2c2 {
247 clock-frequency = <100000>;
248 pinctrl-names = "default";
249 pinctrl-0 = <&pinctrl_i2c2>;
250 status = "okay";
251
252 ltc3676: pmic@3c {
253 compatible = "lltc,ltc3676";
254 reg = <0x3c>;
255 interrupt-parent = <&gpio1>;
256 interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
257
258 regulators {
259 /* VDD_SOC (1+R1/R2 = 1.635) */
260 reg_vdd_soc: sw1 {
261 regulator-name = "vddsoc";
262 regulator-min-microvolt = <674400>;
263 regulator-max-microvolt = <1308000>;
264 lltc,fb-voltage-divider = <127000 200000>;
265 regulator-ramp-delay = <7000>;
266 regulator-boot-on;
267 regulator-always-on;
268 };
269
270 /* VDD_1P8 (1+R1/R2 = 2.505): GbE switch */
271 reg_1p8v: sw2 {
272 regulator-name = "vdd1p8";
273 regulator-min-microvolt = <1033310>;
274 regulator-max-microvolt = <2004000>;
275 lltc,fb-voltage-divider = <301000 200000>;
276 regulator-ramp-delay = <7000>;
277 regulator-boot-on;
278 regulator-always-on;
279 };
280
281 /* VDD_ARM (1+R1/R2 = 1.635) */
282 reg_vdd_arm: sw3 {
283 regulator-name = "vddarm";
284 regulator-min-microvolt = <674400>;
285 regulator-max-microvolt = <1308000>;
286 lltc,fb-voltage-divider = <127000 200000>;
287 regulator-ramp-delay = <7000>;
288 regulator-boot-on;
289 regulator-always-on;
290 };
291
292 /* VDD_DDR (1+R1/R2 = 2.105) */
293 reg_vdd_ddr: sw4 {
294 regulator-name = "vddddr";
295 regulator-min-microvolt = <868310>;
296 regulator-max-microvolt = <1684000>;
297 lltc,fb-voltage-divider = <221000 200000>;
298 regulator-ramp-delay = <7000>;
299 regulator-boot-on;
300 regulator-always-on;
301 };
302
303 /* VDD_2P5 (1+R1/R2 = 3.435): PCIe/ENET-PHY */
304 reg_2p5v: ldo2 {
305 regulator-name = "vdd2p5";
306 regulator-min-microvolt = <2490375>;
307 regulator-max-microvolt = <2490375>;
308 lltc,fb-voltage-divider = <487000 200000>;
309 regulator-boot-on;
310 regulator-always-on;
311 };
312
313 /* VDD_HIGH (1+R1/R2 = 4.17) */
314 reg_3p0v: ldo4 {
315 regulator-name = "vdd3p0";
316 regulator-min-microvolt = <3023250>;
317 regulator-max-microvolt = <3023250>;
318 lltc,fb-voltage-divider = <634000 200000>;
319 regulator-boot-on;
320 regulator-always-on;
321 };
322 };
323 };
324};
325
326&i2c3 {
327 clock-frequency = <100000>;
328 pinctrl-names = "default";
329 pinctrl-0 = <&pinctrl_i2c3>;
330 status = "okay";
331
332 egalax_ts: touchscreen@4 {
333 compatible = "eeti,egalax_ts";
334 reg = <0x04>;
335 interrupt-parent = <&gpio1>;
336 interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
337 wakeup-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
338 };
339};
340
341&ldb {
342 status = "okay";
343
344 lvds-channel@0 {
345 fsl,data-mapping = "spwg";
346 fsl,data-width = <18>;
347 status = "okay";
348
349 display-timings {
350 native-mode = <&timing0>;
351 timing0: hsd100pxn1 {
352 clock-frequency = <65000000>;
353 hactive = <1024>;
354 vactive = <768>;
355 hback-porch = <220>;
356 hfront-porch = <40>;
357 vback-porch = <21>;
358 vfront-porch = <7>;
359 hsync-len = <60>;
360 vsync-len = <10>;
361 };
362 };
363 };
364};
365
366&pcie {
367 pinctrl-names = "default";
368 pinctrl-0 = <&pinctrl_pcie>;
369 reset-gpio = <&gpio1 0 GPIO_ACTIVE_LOW>;
370 status = "okay";
371};
372
373&pwm2 {
374 pinctrl-names = "default";
375 pinctrl-0 = <&pinctrl_pwm2>; /* MX6_DIO1 */
376 status = "disabled";
377};
378
379&pwm3 {
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_pwm3>; /* MX6_DIO2 */
382 status = "disabled";
383};
384
385&pwm4 {
386 pinctrl-names = "default";
387 pinctrl-0 = <&pinctrl_pwm4>;
388 status = "okay";
389};
390
391&uart1 {
392 pinctrl-names = "default";
393 pinctrl-0 = <&pinctrl_uart1>;
394 status = "okay";
395};
396
397&uart2 {
398 pinctrl-names = "default";
399 pinctrl-0 = <&pinctrl_uart2>;
400 status = "okay";
401};
402
403&uart3 {
404 pinctrl-names = "default";
405 pinctrl-0 = <&pinctrl_uart3>;
406 uart-has-rtscts;
407 status = "okay";
408};
409
410&uart4 {
411 pinctrl-names = "default";
412 pinctrl-0 = <&pinctrl_uart4>;
413 uart-has-rtscts;
414 status = "okay";
415};
416
417&uart5 {
418 pinctrl-names = "default";
419 pinctrl-0 = <&pinctrl_uart5>;
420 status = "okay";
421};
422
423&usbotg {
424 vbus-supply = <&reg_usb_otg_vbus>;
425 pinctrl-names = "default";
426 pinctrl-0 = <&pinctrl_usbotg>;
427 disable-over-current;
428 status = "okay";
429};
430
431&usbh1 {
432 vbus-supply = <&reg_usb_h1_vbus>;
433 status = "okay";
434};
435
436&usdhc3 {
437 pinctrl-names = "default", "state_100mhz", "state_200mhz";
438 pinctrl-0 = <&pinctrl_usdhc3>;
439 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
440 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
441 non-removable;
442 vmmc-supply = <&reg_3p3v>;
443 keep-power-in-suspend;
444 status = "okay";
445};
446
447&wdog1 {
448 pinctrl-names = "default";
449 pinctrl-0 = <&pinctrl_wdog>;
450 fsl,ext-reset-output;
451};
452
453&iomuxc {
454 pinctrl_enet: enetgrp {
455 fsl,pins = <
456 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
457 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
458 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
459 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
460 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
461 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
462 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
463 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
464 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
465 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
466 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
467 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
468 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
469 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
470 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
471 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
472 MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x4001b0b0 /* PHY_RST# */
473 >;
474 };
475
476 pinctrl_gpio_leds: gpioledsgrp {
477 fsl,pins = <
478 MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0
479 MX6QDL_PAD_KEY_ROW0__GPIO4_IO07 0x1b0b0
480 MX6QDL_PAD_KEY_ROW4__GPIO4_IO15 0x1b0b0
481 >;
482 };
483
484 pinctrl_i2c1: i2c1grp {
485 fsl,pins = <
486 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
487 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
488 >;
489 };
490
491 pinctrl_i2c2: i2c2grp {
492 fsl,pins = <
493 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
494 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
495 >;
496 };
497
498 pinctrl_i2c3: i2c3grp {
499 fsl,pins = <
500 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
501 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
502 >;
503 };
504
505 pinctrl_pcie: pciegrp {
506 fsl,pins = <
507 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0 /* PCIE RST */
508 >;
509 };
510
511 pinctrl_pmic: pmicgrp {
512 fsl,pins = <
513 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0 /* PMIC_IRQ# */
514 >;
515 };
516
517 pinctrl_pps: ppsgrp {
518 fsl,pins = <
519 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
520 >;
521 };
522
523 pinctrl_pwm2: pwm2grp {
524 fsl,pins = <
525 MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x1b0b1
526 >;
527 };
528
529 pinctrl_pwm3: pwm3grp {
530 fsl,pins = <
531 MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x1b0b1
532 >;
533 };
534
535 pinctrl_pwm4: pwm4grp {
536 fsl,pins = <
537 MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x1b0b1
538 >;
539 };
540
541 pinctrl_uart1: uart1grp {
542 fsl,pins = <
543 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
544 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
545 >;
546 };
547
548 pinctrl_uart2: uart2grp {
549 fsl,pins = <
550 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
551 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
552 >;
553 };
554
555 pinctrl_uart3: uart3grp {
556 fsl,pins = <
557 MX6QDL_PAD_EIM_D23__UART3_CTS_B 0x1b0b1
558 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
559 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
560 MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
561 >;
562 };
563
564 pinctrl_uart4: uart4grp {
565 fsl,pins = <
566 MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
567 MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
568 MX6QDL_PAD_CSI0_DAT16__UART4_RTS_B 0x1b0b1
569 MX6QDL_PAD_CSI0_DAT17__UART4_CTS_B 0x1b0b1
570 >;
571 };
572
573 pinctrl_uart5: uart5grp {
574 fsl,pins = <
575 MX6QDL_PAD_KEY_COL1__UART5_TX_DATA 0x1b0b1
576 MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA 0x1b0b1
577 >;
578 };
579
580 pinctrl_usbotg: usbotggrp {
581 fsl,pins = <
582 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
583 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 /* PWR_EN */
584 MX6QDL_PAD_KEY_COL4__GPIO4_IO14 0x1b0b0 /* OC */
585 >;
586 };
587
588 pinctrl_usdhc3: usdhc3grp {
589 fsl,pins = <
590 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
591 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
592 MX6QDL_PAD_SD3_RST__SD3_RESET 0x10059
593 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
594 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
595 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
596 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
597 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
598 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
599 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
600 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
601 >;
602 };
603
604 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
605 fsl,pins = <
606 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
607 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
608 MX6QDL_PAD_SD3_RST__SD3_RESET 0x100b9
609 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
610 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
611 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
612 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
613 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170b9
614 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170b9
615 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170b9
616 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170b9
617 >;
618 };
619
620 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
621 fsl,pins = <
622 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
623 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
624 MX6QDL_PAD_SD3_RST__SD3_RESET 0x100f9
625 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
626 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
627 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
628 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
629 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x170f9
630 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x170f9
631 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x170f9
632 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x170f9
633 >;
634 };
635
636 pinctrl_wdog: wdoggrp {
637 fsl,pins = <
638 MX6QDL_PAD_DISP0_DAT8__WDOG1_B 0x1b0b0
639 >;
640 };
641};
diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
index 55bebfc9ad94..56d0c5d21cd0 100644
--- a/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -48,6 +48,13 @@
48 reg = <0x10000000 0x80000000>; 48 reg = <0x10000000 0x80000000>;
49 }; 49 };
50 50
51 backlight {
52 compatible = "pwm-backlight";
53 pwms = <&pwm3 0 100000>;
54 brightness-levels = <0 4 8 16 32 64 128 255>;
55 default-brightness-level = <7>;
56 };
57
51 reg_3p3v: regulator-3p3v { 58 reg_3p3v: regulator-3p3v {
52 compatible = "regulator-fixed"; 59 compatible = "regulator-fixed";
53 regulator-name = "3P3V"; 60 regulator-name = "3P3V";
@@ -136,6 +143,12 @@
136 status = "okay"; 143 status = "okay";
137}; 144};
138 145
146&pwm3 {
147 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_pwm3>;
149 status = "okay";
150};
151
139&uart4 { 152&uart4 {
140 pinctrl-names = "default"; 153 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_uart4>; 154 pinctrl-0 = <&pinctrl_uart4>;
@@ -246,6 +259,12 @@
246 >; 259 >;
247 }; 260 };
248 261
262 pinctrl_pwm3: pwm3grp {
263 fsl,pins = <
264 MX6QDL_PAD_SD4_DAT1__PWM3_OUT 0x1b0b1
265 >;
266 };
267
249 pinctrl_usbotg: usbotggrp { 268 pinctrl_usbotg: usbotggrp {
250 fsl,pins = < 269 fsl,pins = <
251 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059 270 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index 63bf95ed8c88..58055ceec6dc 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -548,6 +548,18 @@
548 status = "okay"; 548 status = "okay";
549}; 549};
550 550
551&reg_arm {
552 vin-supply = <&sw1a_reg>;
553};
554
555&reg_pu {
556 vin-supply = <&sw1c_reg>;
557};
558
559&reg_soc {
560 vin-supply = <&sw1c_reg>;
561};
562
551&snvs_poweroff { 563&snvs_poweroff {
552 status = "okay"; 564 status = "okay";
553}; 565};
diff --git a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
new file mode 100644
index 000000000000..5d94b5ee6aa0
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
@@ -0,0 +1,932 @@
1/*
2 * Copyright (C) 2016-2017 Zodiac Inflight Innovations
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 <dt-bindings/gpio/gpio.h>
43#include <dt-bindings/sound/fsl-imx-audmux.h>
44
45/ {
46 chosen {
47 stdout-path = &uart1;
48 };
49
50 aliases {
51 mdio-gpio0 = &mdio1;
52 };
53
54 mdio1: mdio {
55 compatible = "virtual,mdio-gpio";
56 #address-cells = <1>;
57 #size-cells = <0>;
58 pinctrl-names = "default";
59 pinctrl-0 = <&pinctrl_mdio1>;
60 gpios = <&gpio6 5 GPIO_ACTIVE_HIGH
61 &gpio6 4 GPIO_ACTIVE_HIGH>;
62 };
63
64 reg_28p0v: regulator-28p0v {
65 compatible = "regulator-fixed";
66 regulator-name = "28V_IN";
67 regulator-min-microvolt = <28000000>;
68 regulator-max-microvolt = <28000000>;
69 regulator-always-on;
70 };
71
72 reg_12p0v: regulator-12p0v {
73 compatible = "regulator-fixed";
74 vin-supply = <&reg_28p0v>;
75 regulator-name = "12V_MAIN";
76 regulator-min-microvolt = <12000000>;
77 regulator-max-microvolt = <12000000>;
78 regulator-always-on;
79 };
80
81 reg_5p0v_main: regulator-5p0v-main {
82 compatible = "regulator-fixed";
83 vin-supply = <&reg_12p0v>;
84 regulator-name = "5V_MAIN";
85 regulator-min-microvolt = <5000000>;
86 regulator-max-microvolt = <5000000>;
87 regulator-always-on;
88 };
89
90 reg_5p0v_user_usb: regulator-5p0v-user-usb {
91 compatible = "regulator-fixed";
92 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_reg_user_usb>;
94 vin-supply = <&reg_5p0v_main>;
95 regulator-name = "5V_USER_USB";
96 regulator-min-microvolt = <5000000>;
97 regulator-max-microvolt = <5000000>;
98 gpio = <&gpio3 22 GPIO_ACTIVE_LOW>;
99 startup-delay-us = <1000>;
100 };
101
102 reg_3p3v_pmic: regulator-3p3v-pmic {
103 compatible = "regulator-fixed";
104 vin-supply = <&reg_12p0v>;
105 regulator-name = "PMIC_3V3";
106 regulator-min-microvolt = <3300000>;
107 regulator-max-microvolt = <3300000>;
108 regulator-always-on;
109 };
110
111 reg_3p3v: regulator-3p3v {
112 compatible = "regulator-fixed";
113 vin-supply = <&reg_3p3v_pmic>;
114 regulator-name = "GEN_3V3";
115 regulator-min-microvolt = <3300000>;
116 regulator-max-microvolt = <3300000>;
117 regulator-always-on;
118 };
119
120 reg_3p3v_sd: regulator-3p3v-sd {
121 compatible = "regulator-fixed";
122 pinctrl-names = "default";
123 pinctrl-0 = <&pinctrl_reg_3p3v_sd>;
124 vin-supply = <&reg_3p3v>;
125 regulator-name = "3V3_SD";
126 regulator-min-microvolt = <3300000>;
127 regulator-max-microvolt = <3300000>;
128 gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
129 startup-delay-us = <1000>;
130 enable-active-high;
131 regulator-always-on;
132 };
133
134 reg_3p3v_display: regulator-3p3v-display {
135 compatible = "regulator-fixed";
136 vin-supply = <&reg_12p0v>;
137 regulator-name = "3V3_DISPLAY";
138 regulator-min-microvolt = <3300000>;
139 regulator-max-microvolt = <3300000>;
140 regulator-always-on;
141 };
142
143 reg_3p3v_ssd: regulator-3p3v-ssd {
144 compatible = "regulator-fixed";
145 vin-supply = <&reg_12p0v>;
146 regulator-name = "3V3_SSD";
147 regulator-min-microvolt = <3300000>;
148 regulator-max-microvolt = <3300000>;
149 regulator-always-on;
150 };
151
152 sound1 {
153 compatible = "simple-audio-card";
154 simple-audio-card,name = "Front";
155 simple-audio-card,format = "i2s";
156 simple-audio-card,bitclock-master = <&sound1_codec>;
157 simple-audio-card,frame-master = <&sound1_codec>;
158 simple-audio-card,widgets =
159 "Headphone", "Headphone Jack";
160 simple-audio-card,routing =
161 "Headphone Jack", "HPLEFT",
162 "Headphone Jack", "HPRIGHT",
163 "LEFTIN", "HPL",
164 "RIGHTIN", "HPR";
165 simple-audio-card,aux-devs = <&hpa1>;
166
167 sound1_cpu: simple-audio-card,cpu {
168 sound-dai = <&ssi2>;
169 };
170
171 sound1_codec: simple-audio-card,codec {
172 sound-dai = <&codec1>;
173 clocks = <&cs2000>;
174 };
175 };
176
177 sound2 {
178 compatible = "simple-audio-card";
179 simple-audio-card,name = "Back";
180 simple-audio-card,format = "i2s";
181 simple-audio-card,bitclock-master = <&sound2_codec>;
182 simple-audio-card,frame-master = <&sound2_codec>;
183 simple-audio-card,widgets =
184 "Headphone", "Headphone Jack";
185 simple-audio-card,routing =
186 "Headphone Jack", "HPLEFT",
187 "Headphone Jack", "HPRIGHT",
188 "LEFTIN", "HPL",
189 "RIGHTIN", "HPR";
190 simple-audio-card,aux-devs = <&hpa2>;
191
192 sound2_cpu: simple-audio-card,cpu {
193 sound-dai = <&ssi1>;
194 };
195
196 sound2_codec: simple-audio-card,codec {
197 sound-dai = <&codec2>;
198 clocks = <&cs2000>;
199 };
200 };
201
202 panel {
203 power-supply = <&reg_3p3v_display>;
204 status = "disabled";
205
206 port {
207 panel_in: endpoint {
208 remote-endpoint = <&lvds0_out>;
209 };
210 };
211 };
212
213 disp0: disp0 {
214 #address-cells = <1>;
215 #size-cells = <0>;
216 compatible = "fsl,imx-parallel-display";
217 pinctrl-names = "default";
218 pinctrl-0 = <&pinctrl_disp0>;
219 status = "disabled";
220
221 port@0 {
222 reg = <0>;
223
224 disp0_in_0: endpoint {
225 remote-endpoint = <&ipu1_di0_disp0>;
226 };
227 };
228
229 port@1 {
230 reg = <1>;
231
232 disp0_out: endpoint {
233 remote-endpoint = <&tc358767_in>;
234 };
235 };
236 };
237
238 cs2000_ref: cs2000-ref {
239 compatible = "fixed-clock";
240 #clock-cells = <0>;
241 clock-frequency = <24576000>;
242 };
243
244 cs2000_in_dummy: cs2000-in-dummy {
245 compatible = "fixed-clock";
246 #clock-cells = <0>;
247 clock-frequency = <0>;
248 };
249
250 edp_refclk: edp-refclk {
251 compatible = "fixed-clock";
252 #clock-cells = <0>;
253 clock-frequency = <19200000>;
254 };
255};
256
257&reg_arm {
258 vin-supply = <&sw1a_reg>;
259};
260
261&reg_pu {
262 vin-supply = <&sw1c_reg>;
263};
264
265&reg_soc {
266 vin-supply = <&sw1c_reg>;
267};
268
269&ldb {
270 lvds-channel@0 {
271 port@4 {
272 reg = <4>;
273
274 lvds0_out: endpoint {
275 remote-endpoint = <&panel_in>;
276 };
277 };
278 };
279};
280
281&uart1 {
282 pinctrl-names = "default";
283 pinctrl-0 = <&pinctrl_uart1>;
284 status = "okay";
285};
286
287&uart3 {
288 pinctrl-names = "default";
289 pinctrl-0 = <&pinctrl_uart3>;
290 uart-has-rtscts;
291 linux,rs485-enabled-at-boot-time;
292 status = "okay";
293};
294
295&uart4 {
296 pinctrl-names = "default";
297 pinctrl-0 = <&pinctrl_uart4>;
298 status = "okay";
299};
300
301&ecspi1 {
302 pinctrl-names = "default";
303 pinctrl-0 = <&pinctrl_ecspi1>;
304 cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>;
305 status = "okay";
306
307 flash@0 {
308 compatible = "st,m25p128", "jedec,spi-nor";
309 spi-max-frequency = <20000000>;
310 reg = <0>;
311 };
312};
313
314&i2c1 {
315 pinctrl-names = "default";
316 pinctrl-0 = <&pinctrl_i2c1>;
317 clock-frequency = <100000>;
318 status = "okay";
319
320 codec2: codec@18 {
321 compatible = "ti,tlv320dac3100";
322 pinctrl-names = "default";
323 pinctrl-0 = <&pinctrl_codec2>;
324 reg = <0x18>;
325 #sound-dai-cells = <0>;
326 HPVDD-supply = <&reg_3p3v>;
327 SPRVDD-supply = <&reg_3p3v>;
328 SPLVDD-supply = <&reg_3p3v>;
329 AVDD-supply = <&reg_3p3v>;
330 IOVDD-supply = <&reg_3p3v>;
331 DVDD-supply = <&vgen4_reg>;
332 gpio-reset = <&gpio1 2 GPIO_ACTIVE_HIGH>;
333 };
334
335 accel@1c {
336 pinctrl-names = "default";
337 pinctrl-0 = <&pinctrl_accel>;
338 compatible = "fsl,mma8451";
339 reg = <0x1c>;
340 interrupt-parent = <&gpio1>;
341 interrupt-names = "int1", "int2";
342 interrupts = <18 IRQ_TYPE_LEVEL_LOW>, <20 IRQ_TYPE_LEVEL_LOW>;
343 };
344
345 hpa2: amp@60 {
346 compatible = "ti,tpa6130a2";
347 pinctrl-names = "default";
348 pinctrl-0 = <&pinctrl_tpa2>;
349 reg = <0x60>;
350 power-gpio = <&gpio1 5 GPIO_ACTIVE_HIGH>;
351 Vdd-supply = <&reg_5p0v_main>;
352 };
353
354 edp-bridge@68 {
355 compatible = "toshiba,tc358767";
356 pinctrl-names = "default";
357 pinctrl-0 = <&pinctrl_tc358767>;
358 reg = <0x68>;
359 shutdown-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
360 clock-names = "ref";
361 clocks = <&edp_refclk>;
362 status = "disabled";
363
364 ports {
365 #address-cells = <1>;
366 #size-cells = <0>;
367
368 port@1 {
369 reg = <1>;
370
371 tc358767_in: endpoint {
372 remote-endpoint = <&disp0_out>;
373 };
374 };
375 };
376 };
377};
378
379&i2c2 {
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_i2c2>;
382 clock-frequency = <100000>;
383 status = "okay";
384
385 pmic@08 {
386 compatible = "fsl,pfuze100";
387 pinctrl-names = "default";
388 pinctrl-0 = <&pinctrl_pfuze100_irq>;
389 reg = <0x08>;
390 interrupt-parent = <&gpio7>;
391 interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
392
393 regulators {
394 sw1a_reg: sw1ab {
395 regulator-min-microvolt = <300000>;
396 regulator-max-microvolt = <1875000>;
397 regulator-boot-on;
398 regulator-always-on;
399 regulator-ramp-delay = <6250>;
400 };
401
402 sw1c_reg: sw1c {
403 regulator-min-microvolt = <300000>;
404 regulator-max-microvolt = <1875000>;
405 regulator-boot-on;
406 regulator-always-on;
407 regulator-ramp-delay = <6250>;
408 };
409
410 sw2_reg: sw2 {
411 regulator-min-microvolt = <800000>;
412 regulator-max-microvolt = <3000000>;
413 regulator-boot-on;
414 regulator-always-on;
415 };
416
417 sw3a_reg: sw3a {
418 regulator-min-microvolt = <400000>;
419 regulator-max-microvolt = <1500000>;
420 regulator-boot-on;
421 regulator-always-on;
422 };
423
424 sw3b_reg: sw3b {
425 regulator-min-microvolt = <400000>;
426 regulator-max-microvolt = <1500000>;
427 regulator-boot-on;
428 regulator-always-on;
429 };
430
431 sw4_reg: sw4 {
432 regulator-min-microvolt = <800000>;
433 regulator-max-microvolt = <1800000>;
434 regulator-boot-on;
435 regulator-always-on;
436 };
437
438 snvs_reg: vsnvs {
439 regulator-min-microvolt = <1000000>;
440 regulator-max-microvolt = <3000000>;
441 regulator-boot-on;
442 regulator-always-on;
443 };
444
445 vref_reg: vrefddr {
446 regulator-boot-on;
447 regulator-always-on;
448 };
449
450 vgen2_reg: vgen2 {
451 regulator-min-microvolt = <1000000>;
452 regulator-max-microvolt = <1500000>;
453 regulator-always-on;
454 };
455
456 vgen4_reg: vgen4 {
457 regulator-min-microvolt = <1200000>;
458 regulator-max-microvolt = <1800000>;
459 regulator-always-on;
460 };
461
462 vgen5_reg: vgen5 {
463 regulator-min-microvolt = <1800000>;
464 regulator-max-microvolt = <2500000>;
465 regulator-always-on;
466 };
467
468 vgen6_reg: vgen6 {
469 regulator-min-microvolt = <1800000>;
470 regulator-max-microvolt = <2800000>;
471 regulator-always-on;
472 };
473 };
474 };
475
476 temp-sense@48 {
477 compatible = "national,lm75";
478 reg = <0x48>;
479 };
480
481 cs2000: clkgen@4e {
482 compatible = "cirrus,cs2000-cp";
483 reg = <0x4e>;
484 #clock-cells = <0>;
485 clock-names = "clk_in", "ref_clk";
486 clocks = <&cs2000_in_dummy>, <&cs2000_ref>;
487 assigned-clocks = <&cs2000>;
488 assigned-clock-rates = <24000000>;
489 };
490
491 eeprom@54 {
492 compatible = "at,24c128";
493 reg = <0x54>;
494 };
495
496 rtc@68 {
497 compatible = "dallas,ds1341";
498 reg = <0x68>;
499 };
500};
501
502&i2c3 {
503 pinctrl-names = "default";
504 pinctrl-0 = <&pinctrl_i2c3>;
505 clock-frequency = <400000>;
506 status = "okay";
507
508 codec1: codec@18 {
509 compatible = "ti,tlv320dac3100";
510 pinctrl-names = "default";
511 pinctrl-0 = <&pinctrl_codec1>;
512 reg = <0x18>;
513 #sound-dai-cells = <0>;
514 HPVDD-supply = <&reg_3p3v>;
515 SPRVDD-supply = <&reg_3p3v>;
516 SPLVDD-supply = <&reg_3p3v>;
517 AVDD-supply = <&reg_3p3v>;
518 IOVDD-supply = <&reg_3p3v>;
519 DVDD-supply = <&vgen4_reg>;
520 gpio-reset = <&gpio1 0 GPIO_ACTIVE_HIGH>;
521 };
522
523 touchscreen@20 {
524 compatible = "syna,rmi4-i2c";
525 pinctrl-names = "default";
526 pinctrl-0 = <&pinctrl_ts>;
527 reg = <0x20>;
528 interrupt-parent = <&gpio1>;
529 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
530 vdd-supply = <&reg_5p0v_main>;
531 vio-supply = <&reg_3p3v>;
532
533 #address-cells = <1>;
534 #size-cells = <0>;
535
536 rmi4-f01@1 {
537 reg = <0x1>;
538 syna,nosleep-mode = <1>;
539 };
540
541 rmi4-f11@11 {
542 reg = <0x11>;
543 touchscreen-inverted-y;
544 touchscreen-swapped-x-y;
545 syna,sensor-type = <1>;
546 };
547
548 rmi4-f12@12 {
549 reg = <0x12>;
550 touchscreen-inverted-y;
551 touchscreen-swapped-x-y;
552 syna,sensor-type = <1>;
553 };
554 };
555
556 hpa1: amp@60 {
557 compatible = "ti,tpa6130a2";
558 pinctrl-names = "default";
559 pinctrl-0 = <&pinctrl_tpa1>;
560 reg = <0x60>;
561 power-gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
562 Vdd-supply = <&reg_5p0v_main>;
563 };
564};
565
566&ipu1_di0_disp0 {
567 remote-endpoint = <&disp0_in_0>;
568};
569
570&pcie {
571 pinctrl-names = "default";
572 pinctrl-0 = <&pinctrl_pcie>;
573 reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
574 status = "okay";
575};
576
577&usdhc2 {
578 pinctrl-names = "default";
579 pinctrl-0 = <&pinctrl_usdhc2>;
580 bus-width = <4>;
581 cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
582 wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
583 vmmc-supply = <&reg_3p3v_sd>;
584 vqmmc-supply = <&reg_3p3v>;
585 status = "okay";
586};
587
588&usdhc3 {
589 pinctrl-names = "default";
590 pinctrl-0 = <&pinctrl_usdhc3>;
591 bus-width = <4>;
592 cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
593 wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
594 vmmc-supply = <&reg_3p3v_sd>;
595 vqmmc-supply = <&reg_3p3v>;
596 status = "okay";
597};
598
599&usdhc4 {
600 pinctrl-names = "default";
601 pinctrl-0 = <&pinctrl_usdhc4>;
602 bus-width = <8>;
603 vmmc-supply = <&reg_3p3v>;
604 vqmmc-supply = <&reg_3p3v>;
605 non-removable;
606 status = "okay";
607};
608
609&sata {
610 target-supply = <&reg_3p3v_ssd>;
611 status = "okay";
612};
613
614&fec {
615 pinctrl-names = "default";
616 pinctrl-0 = <&pinctrl_enet>;
617 phy-mode = "rmii";
618 phy-reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
619 phy-reset-duration = <100>;
620 phy-supply = <&reg_3p3v>;
621 status = "okay";
622
623 fixed-link {
624 speed = <100>;
625 full-duplex;
626 };
627};
628
629&usbh1 {
630 vbus-supply = <&reg_5p0v_main>;
631 status = "okay";
632};
633
634&usbotg {
635 vbus-supply = <&reg_5p0v_user_usb>;
636 disable-over-current;
637 dr_mode = "host";
638 status = "okay";
639};
640
641&ssi1 {
642 status = "okay";
643};
644
645&ssi2 {
646 status = "okay";
647};
648
649&audmux {
650 pinctrl-names = "default";
651 pinctrl-0 = <&pinctrl_audmux>;
652 status = "okay";
653
654 ssi1 {
655 fsl,audmux-port = <0>;
656 fsl,port-config = <
657 (IMX_AUDMUX_V2_PTCR_SYN |
658 IMX_AUDMUX_V2_PTCR_TFSEL(2) |
659 IMX_AUDMUX_V2_PTCR_TCSEL(2) |
660 IMX_AUDMUX_V2_PTCR_TFSDIR |
661 IMX_AUDMUX_V2_PTCR_TCLKDIR)
662 IMX_AUDMUX_V2_PDCR_RXDSEL(2)
663 >;
664 };
665
666 aud3 {
667 fsl,audmux-port = <2>;
668 fsl,port-config = <
669 IMX_AUDMUX_V2_PTCR_SYN
670 IMX_AUDMUX_V2_PDCR_RXDSEL(0)
671 >;
672 };
673
674 ssi2 {
675 fsl,audmux-port = <1>;
676 fsl,port-config = <
677 (IMX_AUDMUX_V2_PTCR_SYN |
678 IMX_AUDMUX_V2_PTCR_TFSEL(4) |
679 IMX_AUDMUX_V2_PTCR_TCSEL(4) |
680 IMX_AUDMUX_V2_PTCR_TFSDIR |
681 IMX_AUDMUX_V2_PTCR_TCLKDIR)
682 IMX_AUDMUX_V2_PDCR_RXDSEL(4)
683 >;
684 };
685
686 aud5 {
687 fsl,audmux-port = <4>;
688 fsl,port-config = <
689 IMX_AUDMUX_V2_PTCR_SYN
690 IMX_AUDMUX_V2_PDCR_RXDSEL(1)
691 >;
692 };
693};
694
695&iomuxc {
696 pinctrl_accel: accelgrp {
697 fsl,pins = <
698 MX6QDL_PAD_SD1_CMD__GPIO1_IO18 0x4001b000
699 MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x4001b000
700 >;
701 };
702
703 pinctrl_audmux: audmuxgrp {
704 fsl,pins = <
705 MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0
706 MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x130b0
707 MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0
708 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0
709 MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x130b0
710 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0
711 >;
712 };
713
714 pinctrl_codec1: dac1grp {
715 fsl,pins = <
716 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x40000038
717 >;
718 };
719
720 pinctrl_codec2: dac2grp {
721 fsl,pins = <
722 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x40000038
723 >;
724 };
725
726 pinctrl_disp0: disp0grp {
727 fsl,pins = <
728 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x100f9
729 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x100f9
730 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x100f9
731 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x100f9
732 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x100f9
733 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x100f9
734 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x100f9
735 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x100f9
736 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x100f9
737 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x100f9
738 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x100f9
739 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x100f9
740 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x100f9
741 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x100f9
742 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x100f9
743 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x100f9
744 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x100f9
745 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x100f9
746 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x100f9
747 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x100f9
748 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x100f9
749 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x100f9
750 MX6QDL_PAD_DISP0_DAT18__IPU1_DISP0_DATA18 0x100f9
751 MX6QDL_PAD_DISP0_DAT19__IPU1_DISP0_DATA19 0x100f9
752 MX6QDL_PAD_DISP0_DAT20__IPU1_DISP0_DATA20 0x100f9
753 MX6QDL_PAD_DISP0_DAT21__IPU1_DISP0_DATA21 0x100f9
754 MX6QDL_PAD_DISP0_DAT22__IPU1_DISP0_DATA22 0x100f9
755 MX6QDL_PAD_DISP0_DAT23__IPU1_DISP0_DATA23 0x100f9
756 >;
757 };
758
759 pinctrl_ecspi1: ecspi1grp {
760 fsl,pins = <
761 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
762 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
763 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
764 MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b1
765 >;
766 };
767
768 pinctrl_enet: enetgrp {
769 fsl,pins = <
770 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x000b1
771 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x100b1
772 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x100f5
773 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x100f5
774 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x100c0
775 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x100c0
776 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x100f5
777 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x100f5
778 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x40010040
779 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x100b0
780 MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1b0b0
781 >;
782 };
783
784 pinctrl_i2c1: i2c1grp {
785 fsl,pins = <
786 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
787 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
788 >;
789 };
790
791 pinctrl_i2c2: i2c2grp {
792 fsl,pins = <
793 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
794 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
795 >;
796 };
797
798 pinctrl_i2c3: i2c3grp {
799 fsl,pins = <
800 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
801 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
802 >;
803 };
804
805 pinctrl_mdio1: bitbangmdiogrp {
806 fsl,pins = <
807 /* Bitbang MDIO for DEB Switch */
808 MX6QDL_PAD_CSI0_DAT19__GPIO6_IO05 0x4001b030
809 MX6QDL_PAD_CSI0_DAT18__GPIO6_IO04 0x40018830
810 >;
811 };
812
813 pinctrl_pcie: pciegrp {
814 fsl,pins = <
815 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x10038
816 >;
817 };
818
819 pinctrl_pfuze100_irq: pfuze100grp {
820 fsl,pins = <
821 MX6QDL_PAD_GPIO_18__GPIO7_IO13 0x40010000
822 >;
823 };
824
825 pinctrl_reg_3p3v_sd: mmcsupply1grp {
826 fsl,pins = <
827 MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x858
828 >;
829 };
830
831 pinctrl_reg_user_usb: usbotggrp {
832 fsl,pins = <
833 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x40000038
834 >;
835 };
836
837 pinctrl_rmii_phy_irq: phygrp {
838 fsl,pins = <
839 MX6QDL_PAD_EIM_D30__GPIO3_IO30 0x40010000
840 >;
841 };
842
843 pinctrl_tc358767: tc358767grp {
844 fsl,pins = <
845 MX6QDL_PAD_GPIO_9__GPIO1_IO09 0x10
846 >;
847 };
848
849 pinctrl_tpa1: tpa6130-1grp {
850 fsl,pins = <
851 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x40000038
852 >;
853 };
854
855 pinctrl_tpa2: tpa6130-2grp {
856 fsl,pins = <
857 MX6QDL_PAD_GPIO_5__GPIO1_IO05 0x40000038
858 >;
859 };
860
861 pinctrl_ts: tsgrp {
862 fsl,pins = <
863 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0
864 MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0
865 >;
866 };
867
868 pinctrl_uart1: uart1grp {
869 fsl,pins = <
870 MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA 0x1b0b1
871 MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA 0x1b0b1
872 >;
873 };
874
875 pinctrl_uart3: uart3grp {
876 fsl,pins = <
877 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1
878 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1
879 MX6QDL_PAD_EIM_D31__UART3_RTS_B 0x1b0b1
880 >;
881 };
882
883 pinctrl_uart4: uart4grp {
884 fsl,pins = <
885 MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA 0x1b0b1
886 MX6QDL_PAD_CSI0_DAT13__UART4_RX_DATA 0x1b0b1
887 >;
888 };
889
890 pinctrl_usdhc2: usdhc2grp {
891 fsl,pins = <
892 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x10059
893 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10069
894 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
895 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
896 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
897 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
898 MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x40010040
899 MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x40010040
900 >;
901 };
902
903 pinctrl_usdhc3: usdhc3grp {
904 fsl,pins = <
905 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x10059
906 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10069
907 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
908 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
909 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
910 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
911 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x40010040
912 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x40010040
913
914 >;
915 };
916
917 pinctrl_usdhc4: usdhc4grp {
918 fsl,pins = <
919 MX6QDL_PAD_SD4_CMD__SD4_CMD 0x17059
920 MX6QDL_PAD_SD4_CLK__SD4_CLK 0x10059
921 MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
922 MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
923 MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
924 MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
925 MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
926 MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
927 MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
928 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
929 MX6QDL_PAD_NANDF_ALE__SD4_RESET 0x1b0b1
930 >;
931 };
932};
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 6d7bf6496117..e426faa9c243 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -197,7 +197,7 @@
197 arm,shared-override; 197 arm,shared-override;
198 }; 198 };
199 199
200 pcie: pcie@0x01000000 { 200 pcie: pcie@1ffc000 {
201 compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; 201 compatible = "fsl,imx6q-pcie", "snps,dw-pcie";
202 reg = <0x01ffc000 0x04000>, 202 reg = <0x01ffc000 0x04000>,
203 <0x01f00000 0x80000>; 203 <0x01f00000 0x80000>;
@@ -205,6 +205,7 @@
205 #address-cells = <3>; 205 #address-cells = <3>;
206 #size-cells = <2>; 206 #size-cells = <2>;
207 device_type = "pci"; 207 device_type = "pci";
208 bus-range = <0x00 0xff>;
208 ranges = <0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */ 209 ranges = <0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */
209 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ 210 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */
210 num-lanes = <1>; 211 num-lanes = <1>;
diff --git a/arch/arm/boot/dts/imx6qp-nitrogen6_som2.dts b/arch/arm/boot/dts/imx6qp-nitrogen6_som2.dts
new file mode 100644
index 000000000000..011726c836cd
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-nitrogen6_som2.dts
@@ -0,0 +1,55 @@
1/*
2 * Copyright 2017 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 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
45#include "imx6qp.dtsi"
46#include "imx6qdl-nitrogen6_som2.dtsi"
47
48/ {
49 model = "Boundary Devices i.MX6 Quad Plus Nitrogen6_SOM2 Board";
50 compatible = "boundary,imx6qp-nitrogen6_som2", "fsl,imx6qp";
51};
52
53&sata {
54 status = "okay";
55};
diff --git a/arch/arm/boot/dts/imx6qp-sabresd.dts b/arch/arm/boot/dts/imx6qp-sabresd.dts
index b23458062f5e..a8a5004dd9c8 100644
--- a/arch/arm/boot/dts/imx6qp-sabresd.dts
+++ b/arch/arm/boot/dts/imx6qp-sabresd.dts
@@ -50,8 +50,8 @@
50 compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp"; 50 compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
51}; 51};
52 52
53&cpu0 { 53&reg_arm {
54 arm-supply = <&sw2_reg>; 54 vin-supply = <&sw2_reg>;
55}; 55};
56 56
57&iomuxc { 57&iomuxc {
diff --git a/arch/arm/boot/dts/imx6qp-zii-rdu2.dts b/arch/arm/boot/dts/imx6qp-zii-rdu2.dts
new file mode 100644
index 000000000000..882b3bd97e07
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qp-zii-rdu2.dts
@@ -0,0 +1,50 @@
1/*
2 * Copyright (C) 2016-2017 Zodiac Inflight Innovations
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/dts-v1/;
43
44#include <imx6qp.dtsi>
45#include <imx6qdl-zii-rdu2.dtsi>
46
47/ {
48 model = "ZII RDU2+ Board";
49 compatible = "zii,imx6qp-zii-rdu2", "fsl,imx6qp";
50};
diff --git a/arch/arm/boot/dts/imx6qp.dtsi b/arch/arm/boot/dts/imx6qp.dtsi
index 24d071f5d9cd..59453f2ac4ba 100644
--- a/arch/arm/boot/dts/imx6qp.dtsi
+++ b/arch/arm/boot/dts/imx6qp.dtsi
@@ -56,40 +56,59 @@
56 clocks = <&clks IMX6QDL_CLK_OCRAM>; 56 clocks = <&clks IMX6QDL_CLK_OCRAM>;
57 }; 57 };
58 58
59 ipu1: ipu@02400000 { 59 aips-bus@02100000 {
60 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu"; 60 pre1: pre@21c8000 {
61 clocks = <&clks IMX6QDL_CLK_IPU1>, 61 compatible = "fsl,imx6qp-pre";
62 <&clks IMX6QDL_CLK_IPU1_DI0>, <&clks IMX6QDL_CLK_IPU1_DI1>, 62 reg = <0x021c8000 0x1000>;
63 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>, 63 interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
64 <&clks IMX6QDL_CLK_LDB_DI0_PODF>, <&clks IMX6QDL_CLK_LDB_DI1_PODF>, 64 clocks = <&clks IMX6QDL_CLK_PRE0>;
65 <&clks IMX6QDL_CLK_PRG0_APB>; 65 clock-names = "axi";
66 clock-names = "bus", 66 fsl,iram = <&ocram2>;
67 "di0", "di1", 67 };
68 "di0_sel", "di1_sel",
69 "ldb_di0", "ldb_di1", "prg";
70 };
71 68
72 ipu2: ipu@02800000 { 69 pre2: pre@21c9000 {
73 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu"; 70 compatible = "fsl,imx6qp-pre";
74 clocks = <&clks IMX6QDL_CLK_IPU2>, 71 reg = <0x021c9000 0x1000>;
75 <&clks IMX6QDL_CLK_IPU2_DI0>, <&clks IMX6QDL_CLK_IPU2_DI1>, 72 interrupts = <GIC_SPI 97 IRQ_TYPE_EDGE_RISING>;
76 <&clks IMX6QDL_CLK_IPU2_DI0_SEL>, <&clks IMX6QDL_CLK_IPU2_DI1_SEL>, 73 clocks = <&clks IMX6QDL_CLK_PRE1>;
77 <&clks IMX6QDL_CLK_LDB_DI0_PODF>, <&clks IMX6QDL_CLK_LDB_DI1_PODF>, 74 clock-names = "axi";
78 <&clks IMX6QDL_CLK_PRG1_APB>; 75 fsl,iram = <&ocram2>;
79 clock-names = "bus", 76 };
80 "di0", "di1",
81 "di0_sel", "di1_sel",
82 "ldb_di0", "ldb_di1", "prg";
83 };
84 77
85 pcie: pcie@0x01000000 { 78 pre3: pre@21ca000 {
86 compatible = "fsl,imx6qp-pcie", "snps,dw-pcie"; 79 compatible = "fsl,imx6qp-pre";
87 }; 80 reg = <0x021ca000 0x1000>;
81 interrupts = <GIC_SPI 98 IRQ_TYPE_EDGE_RISING>;
82 clocks = <&clks IMX6QDL_CLK_PRE2>;
83 clock-names = "axi";
84 fsl,iram = <&ocram3>;
85 };
88 86
89 aips-bus@02100000 { 87 pre4: pre@21cb000 {
90 mmdc0: mmdc@021b0000 { /* MMDC0 */ 88 compatible = "fsl,imx6qp-pre";
91 compatible = "fsl,imx6qp-mmdc", "fsl,imx6q-mmdc"; 89 reg = <0x021cb000 0x1000>;
92 reg = <0x021b0000 0x4000>; 90 interrupts = <GIC_SPI 99 IRQ_TYPE_EDGE_RISING>;
91 clocks = <&clks IMX6QDL_CLK_PRE3>;
92 clock-names = "axi";
93 fsl,iram = <&ocram3>;
94 };
95
96 prg1: prg@21cc000 {
97 compatible = "fsl,imx6qp-prg";
98 reg = <0x021cc000 0x1000>;
99 clocks = <&clks IMX6QDL_CLK_PRG0_APB>,
100 <&clks IMX6QDL_CLK_PRG0_AXI>;
101 clock-names = "ipg", "axi";
102 fsl,pres = <&pre1>, <&pre2>, <&pre3>;
103 };
104
105 prg2: prg@21cd000 {
106 compatible = "fsl,imx6qp-prg";
107 reg = <0x021cd000 0x1000>;
108 clocks = <&clks IMX6QDL_CLK_PRG1_APB>,
109 <&clks IMX6QDL_CLK_PRG1_AXI>;
110 clock-names = "ipg", "axi";
111 fsl,pres = <&pre4>, <&pre2>, <&pre3>;
93 }; 112 };
94 }; 113 };
95 }; 114 };
@@ -101,6 +120,16 @@
101 <0 119 IRQ_TYPE_LEVEL_HIGH>; 120 <0 119 IRQ_TYPE_LEVEL_HIGH>;
102}; 121};
103 122
123&ipu1 {
124 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
125 fsl,prg = <&prg1>;
126};
127
128&ipu2 {
129 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
130 fsl,prg = <&prg2>;
131};
132
104&ldb { 133&ldb {
105 clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>, 134 clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>, <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
106 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>, 135 <&clks IMX6QDL_CLK_IPU1_DI0_SEL>, <&clks IMX6QDL_CLK_IPU1_DI1_SEL>,
@@ -110,3 +139,11 @@
110 "di0_sel", "di1_sel", "di2_sel", "di3_sel", 139 "di0_sel", "di1_sel", "di2_sel", "di3_sel",
111 "di0", "di1"; 140 "di0", "di1";
112}; 141};
142
143&mmdc0 {
144 compatible = "fsl,imx6qp-mmdc", "fsl,imx6q-mmdc";
145};
146
147&pcie {
148 compatible = "fsl,imx6qp-pcie", "snps,dw-pcie";
149};
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index dd4ec85ecbaa..3f1416be4c36 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -297,7 +297,8 @@
297 }; 297 };
298 298
299 uart1: serial@02020000 { 299 uart1: serial@02020000 {
300 compatible = "fsl,imx6sx-uart", "fsl,imx21-uart"; 300 compatible = "fsl,imx6sx-uart",
301 "fsl,imx6q-uart", "fsl,imx21-uart";
301 reg = <0x02020000 0x4000>; 302 reg = <0x02020000 0x4000>;
302 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 303 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
303 clocks = <&clks IMX6SX_CLK_UART_IPG>, 304 clocks = <&clks IMX6SX_CLK_UART_IPG>,
@@ -1053,7 +1054,8 @@
1053 }; 1054 };
1054 1055
1055 uart2: serial@021e8000 { 1056 uart2: serial@021e8000 {
1056 compatible = "fsl,imx6sx-uart", "fsl,imx21-uart"; 1057 compatible = "fsl,imx6sx-uart",
1058 "fsl,imx6q-uart", "fsl,imx21-uart";
1057 reg = <0x021e8000 0x4000>; 1059 reg = <0x021e8000 0x4000>;
1058 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 1060 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
1059 clocks = <&clks IMX6SX_CLK_UART_IPG>, 1061 clocks = <&clks IMX6SX_CLK_UART_IPG>,
@@ -1065,7 +1067,8 @@
1065 }; 1067 };
1066 1068
1067 uart3: serial@021ec000 { 1069 uart3: serial@021ec000 {
1068 compatible = "fsl,imx6sx-uart", "fsl,imx21-uart"; 1070 compatible = "fsl,imx6sx-uart",
1071 "fsl,imx6q-uart", "fsl,imx21-uart";
1069 reg = <0x021ec000 0x4000>; 1072 reg = <0x021ec000 0x4000>;
1070 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 1073 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
1071 clocks = <&clks IMX6SX_CLK_UART_IPG>, 1074 clocks = <&clks IMX6SX_CLK_UART_IPG>,
@@ -1077,7 +1080,8 @@
1077 }; 1080 };
1078 1081
1079 uart4: serial@021f0000 { 1082 uart4: serial@021f0000 {
1080 compatible = "fsl,imx6sx-uart", "fsl,imx21-uart"; 1083 compatible = "fsl,imx6sx-uart",
1084 "fsl,imx6q-uart", "fsl,imx21-uart";
1081 reg = <0x021f0000 0x4000>; 1085 reg = <0x021f0000 0x4000>;
1082 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 1086 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1083 clocks = <&clks IMX6SX_CLK_UART_IPG>, 1087 clocks = <&clks IMX6SX_CLK_UART_IPG>,
@@ -1089,7 +1093,8 @@
1089 }; 1093 };
1090 1094
1091 uart5: serial@021f4000 { 1095 uart5: serial@021f4000 {
1092 compatible = "fsl,imx6sx-uart", "fsl,imx21-uart"; 1096 compatible = "fsl,imx6sx-uart",
1097 "fsl,imx6q-uart", "fsl,imx21-uart";
1093 reg = <0x021f4000 0x4000>; 1098 reg = <0x021f4000 0x4000>;
1094 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 1099 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
1095 clocks = <&clks IMX6SX_CLK_UART_IPG>, 1100 clocks = <&clks IMX6SX_CLK_UART_IPG>,
@@ -1229,7 +1234,8 @@
1229 }; 1234 };
1230 1235
1231 uart6: serial@022a0000 { 1236 uart6: serial@022a0000 {
1232 compatible = "fsl,imx6sx-uart", "fsl,imx21-uart"; 1237 compatible = "fsl,imx6sx-uart",
1238 "fsl,imx6q-uart", "fsl,imx21-uart";
1233 reg = <0x022a0000 0x4000>; 1239 reg = <0x022a0000 0x4000>;
1234 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 1240 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
1235 clocks = <&clks IMX6SX_CLK_UART_IPG>, 1241 clocks = <&clks IMX6SX_CLK_UART_IPG>,
@@ -1281,7 +1287,7 @@
1281 }; 1287 };
1282 }; 1288 };
1283 1289
1284 pcie: pcie@0x08000000 { 1290 pcie: pcie@8ffc000 {
1285 compatible = "fsl,imx6sx-pcie", "snps,dw-pcie"; 1291 compatible = "fsl,imx6sx-pcie", "snps,dw-pcie";
1286 reg = <0x08ffc000 0x4000>; /* DBI */ 1292 reg = <0x08ffc000 0x4000>; /* DBI */
1287 #address-cells = <3>; 1293 #address-cells = <3>;
@@ -1293,6 +1299,7 @@
1293 0x81000000 0 0 0x08f80000 0 0x00010000 1299 0x81000000 0 0 0x08f80000 0 0x00010000
1294 /* non-prefetchable memory */ 1300 /* non-prefetchable memory */
1295 0x82000000 0 0x08000000 0x08000000 0 0x00f00000>; 1301 0x82000000 0 0x08000000 0x08000000 0 0x00f00000>;
1302 bus-range = <0x00 0xff>;
1296 num-lanes = <1>; 1303 num-lanes = <1>;
1297 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; 1304 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
1298 clocks = <&clks IMX6SX_CLK_PCIE_REF_125M>, 1305 clocks = <&clks IMX6SX_CLK_PCIE_REF_125M>,
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
index 00f98e5bfcaf..f18e1f1d0ce2 100644
--- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
@@ -85,11 +85,6 @@
85 assigned-clock-rates = <786432000>; 85 assigned-clock-rates = <786432000>;
86}; 86};
87 87
88&cpu0 {
89 arm-supply = <&reg_arm>;
90 soc-supply = <&reg_soc>;
91};
92
93&i2c2 { 88&i2c2 {
94 clock_frequency = <100000>; 89 clock_frequency = <100000>;
95 pinctrl-names = "default"; 90 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6ul-geam.dtsi b/arch/arm/boot/dts/imx6ul-geam.dtsi
index 940aef67313b..eb94d956808b 100644
--- a/arch/arm/boot/dts/imx6ul-geam.dtsi
+++ b/arch/arm/boot/dts/imx6ul-geam.dtsi
@@ -49,6 +49,23 @@
49 reg = <0x80000000 0x08000000>; 49 reg = <0x80000000 0x08000000>;
50 }; 50 };
51 51
52 backlight {
53 compatible = "pwm-backlight";
54 pwms = <&pwm8 0 100000>;
55 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
56 10 11 12 13 14 15 16 17 18 19
57 20 21 22 23 24 25 26 27 28 29
58 30 31 32 33 34 35 36 37 38 39
59 40 41 42 43 44 45 46 47 48 49
60 50 51 52 53 54 55 56 57 58 59
61 60 61 62 63 64 65 66 67 68 69
62 70 71 72 73 74 75 76 77 78 79
63 80 81 82 83 84 85 86 87 88 89
64 90 91 92 93 94 95 96 97 98 99
65 100>;
66 default-brightness-level = <100>;
67 };
68
52 chosen { 69 chosen {
53 stdout-path = &uart1; 70 stdout-path = &uart1;
54 }; 71 };
@@ -143,12 +160,24 @@
143 display = <&display0>; 160 display = <&display0>;
144}; 161};
145 162
163&pwm8 {
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_pwm8>;
166 status = "okay";
167};
168
146&tsc { 169&tsc {
147 pinctrl-names = "default"; 170 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_tsc>; 171 pinctrl-0 = <&pinctrl_tsc>;
149 xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>; 172 xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
150}; 173};
151 174
175&sai2 {
176 pinctrl-names = "default";
177 pinctrl-0 = <&pinctrl_sai2>;
178 status = "okay";
179};
180
152&uart1 { 181&uart1 {
153 pinctrl-names = "default"; 182 pinctrl-names = "default";
154 pinctrl-0 = <&pinctrl_uart1>; 183 pinctrl-0 = <&pinctrl_uart1>;
@@ -290,6 +319,12 @@
290 >; 319 >;
291 }; 320 };
292 321
322 pinctrl_pwm8: pwm8grp {
323 fsl,pins = <
324 MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x110b0
325 >;
326 };
327
293 pinctrl_tsc: tscgrp { 328 pinctrl_tsc: tscgrp {
294 fsl,pin = < 329 fsl,pin = <
295 MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0 330 MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0xb0
@@ -299,6 +334,16 @@
299 >; 334 >;
300 }; 335 };
301 336
337 pinctrl_sai2: sai2grp {
338 fsl,pins = <
339 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0
340 MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x4001b031
341 MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
342 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
343 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0
344 >;
345 };
346
302 pinctrl_uart1: uart1grp { 347 pinctrl_uart1: uart1grp {
303 fsl,pins = < 348 fsl,pins = <
304 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 349 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
diff --git a/arch/arm/boot/dts/imx6ul-isiot-common.dtsi b/arch/arm/boot/dts/imx6ul-isiot-common.dtsi
new file mode 100644
index 000000000000..2beaab6e272e
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-isiot-common.dtsi
@@ -0,0 +1,141 @@
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 "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&i2c1 {
44 stmpe811: gpio-expander@44 {
45 compatible = "st,stmpe811";
46 reg = <0x44>;
47 #address-cells = <1>;
48 #size-cells = <0>;
49 pinctrl-names = "default";
50 pinctrl-0 = <&pinctrl_stmpe>;
51 interrupt-parent = <&gpio1>;
52 interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
53 interrupt-controller;
54 #interrupt-cells = <2>;
55
56 stmpe: touchscreen {
57 compatible = "st,stmpe-ts";
58 st,sample-time = <4>;
59 st,mod-12b = <1>;
60 st,ref-sel = <0>;
61 st,adc-freq = <1>;
62 st,ave-ctrl = <1>;
63 st,touch-det-delay = <2>;
64 st,settling = <2>;
65 st,fraction-z = <7>;
66 st,i-drive = <1>;
67 };
68 };
69};
70
71&lcdif {
72 pinctrl-names = "default";
73 pinctrl-0 = <&pinctrl_lcdif_dat
74 &pinctrl_lcdif_ctrl>;
75 display = <&display0>;
76 status = "okay";
77
78 display0: display {
79 bits-per-pixel = <16>;
80 bus-width = <18>;
81
82 display-timings {
83 native-mode = <&timing0>;
84 timing0: timing0 {
85 clock-frequency = <28000000>;
86 hactive = <800>;
87 vactive = <480>;
88 hfront-porch = <30>;
89 hback-porch = <30>;
90 hsync-len = <64>;
91 vback-porch = <5>;
92 vfront-porch = <5>;
93 vsync-len = <20>;
94 hsync-active = <0>;
95 vsync-active = <0>;
96 de-active = <1>;
97 pixelclk-active = <0>;
98 };
99 };
100 };
101};
102
103&iomuxc {
104 pinctrl_lcdif_ctrl: lcdifctrlgrp {
105 fsl,pins = <
106 MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
107 MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
108 MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
109 MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
110 >;
111 };
112
113 pinctrl_lcdif_dat: lcdifdatgrp {
114 fsl,pins = <
115 MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
116 MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
117 MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
118 MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
119 MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
120 MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
121 MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
122 MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
123 MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
124 MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
125 MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
126 MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
127 MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
128 MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
129 MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
130 MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
131 MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
132 MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
133 >;
134 };
135
136 pinctrl_stmpe: stmpegrp {
137 fsl,pins = <
138 MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x1b0b0
139 >;
140 };
141};
diff --git a/arch/arm/boot/dts/imx6ul-isiot-emmc.dts b/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
index f5b422898e61..73a1d0f0b9d5 100644
--- a/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
+++ b/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
@@ -43,6 +43,7 @@
43/dts-v1/; 43/dts-v1/;
44 44
45#include "imx6ul-isiot.dtsi" 45#include "imx6ul-isiot.dtsi"
46#include "imx6ul-isiot-common.dtsi"
46 47
47/ { 48/ {
48 model = "Engicam Is.IoT MX6UL eMMC Starter kit"; 49 model = "Engicam Is.IoT MX6UL eMMC Starter kit";
diff --git a/arch/arm/boot/dts/imx6ul-isiot-nand.dts b/arch/arm/boot/dts/imx6ul-isiot-nand.dts
index de15e1c75dd1..da29a86eb6a8 100644
--- a/arch/arm/boot/dts/imx6ul-isiot-nand.dts
+++ b/arch/arm/boot/dts/imx6ul-isiot-nand.dts
@@ -43,6 +43,7 @@
43/dts-v1/; 43/dts-v1/;
44 44
45#include "imx6ul-isiot.dtsi" 45#include "imx6ul-isiot.dtsi"
46#include "imx6ul-isiot-common.dtsi"
46 47
47/ { 48/ {
48 model = "Engicam Is.IoT MX6UL NAND Starter kit"; 49 model = "Engicam Is.IoT MX6UL NAND Starter kit";
diff --git a/arch/arm/boot/dts/imx6ul-isiot.dtsi b/arch/arm/boot/dts/imx6ul-isiot.dtsi
index 0b43699af3e3..ea30380ad7a4 100644
--- a/arch/arm/boot/dts/imx6ul-isiot.dtsi
+++ b/arch/arm/boot/dts/imx6ul-isiot.dtsi
@@ -52,6 +52,49 @@
52 chosen { 52 chosen {
53 stdout-path = &uart1; 53 stdout-path = &uart1;
54 }; 54 };
55
56 backlight {
57 compatible = "pwm-backlight";
58 pwms = <&pwm8 0 100000>;
59 brightness-levels = < 0 1 2 3 4 5 6 7 8 9
60 10 11 12 13 14 15 16 17 18 19
61 20 21 22 23 24 25 26 27 28 29
62 30 31 32 33 34 35 36 37 38 39
63 40 41 42 43 44 45 46 47 48 49
64 50 51 52 53 54 55 56 57 58 59
65 60 61 62 63 64 65 66 67 68 69
66 70 71 72 73 74 75 76 77 78 79
67 80 81 82 83 84 85 86 87 88 89
68 90 91 92 93 94 95 96 97 98 99
69 100>;
70 default-brightness-level = <100>;
71 };
72};
73
74&i2c1 {
75 clock-frequency = <100000>;
76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_i2c1>;
78 status = "okay";
79};
80
81&i2c2 {
82 clock_frequency = <100000>;
83 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_i2c2>;
85 status = "okay";
86};
87
88&pwm8 {
89 pinctrl-names = "default";
90 pinctrl-0 = <&pinctrl_pwm8>;
91 status = "okay";
92};
93
94&sai2 {
95 pinctrl-names = "default";
96 pinctrl-0 = <&pinctrl_sai2>;
97 status = "okay";
55}; 98};
56 99
57&uart1 { 100&uart1 {
@@ -72,6 +115,36 @@
72}; 115};
73 116
74&iomuxc { 117&iomuxc {
118 pinctrl_i2c1: i2c1grp {
119 fsl,pins = <
120 MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
121 MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
122 >;
123 };
124
125 pinctrl_i2c2: i2c2grp {
126 fsl,pins = <
127 MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0
128 MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b0
129 >;
130 };
131
132 pinctrl_pwm8: pwm8grp {
133 fsl,pins = <
134 MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x110b0
135 >;
136 };
137
138 pinctrl_sai2: sai2grp {
139 fsl,pins = <
140 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0
141 MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x4001b031
142 MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
143 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
144 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0
145 >;
146 };
147
75 pinctrl_uart1: uart1grp { 148 pinctrl_uart1: uart1grp {
76 fsl,pins = < 149 fsl,pins = <
77 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1 150 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
diff --git a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
index 373ee19196a6..18bebd6d8d47 100644
--- a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
@@ -44,11 +44,39 @@
44 chosen { 44 chosen {
45 stdout-path = "serial0:115200n8"; 45 stdout-path = "serial0:115200n8";
46 }; 46 };
47
48 panel: panel {
49 compatible = "edt,et057090dhu";
50 backlight = <&bl>;
51 power-supply = <&reg_3v3>;
52
53 port {
54 panel_in: endpoint {
55 remote-endpoint = <&lcdif_out>;
56 };
57 };
58 };
59
60 reg_3v3: regulator-3v3 {
61 compatible = "regulator-fixed";
62 regulator-name = "3.3V";
63 regulator-min-microvolt = <3300000>;
64 regulator-max-microvolt = <3300000>;
65 };
66
67 reg_5v0: regulator-5v0 {
68 compatible = "regulator-fixed";
69 regulator-name = "5V";
70 regulator-min-microvolt = <5000000>;
71 regulator-max-microvolt = <5000000>;
72 };
47}; 73};
48 74
49&bl { 75&bl {
50 brightness-levels = <0 4 8 16 32 64 128 255>; 76 brightness-levels = <0 4 8 16 32 64 128 255>;
51 default-brightness-level = <6>; 77 default-brightness-level = <6>;
78 power-supply = <&reg_3v3>;
79
52 status = "okay"; 80 status = "okay";
53}; 81};
54 82
@@ -75,32 +103,11 @@
75}; 103};
76 104
77&lcdif { 105&lcdif {
78 display = <&display0>;
79 status = "okay"; 106 status = "okay";
80 107
81 display0: lcd-display { 108 port {
82 bits-per-pixel = <16>; 109 lcdif_out: endpoint {
83 bus-width = <18>; 110 remote-endpoint = <&panel_in>;
84
85 display-timings {
86 native-mode = <&timing_vga>;
87
88 /* Standard VGA timing */
89 timing_vga: 640x480 {
90 clock-frequency = <25175000>;
91 hactive = <640>;
92 vactive = <480>;
93 hback-porch = <40>;
94 hfront-porch = <24>;
95 vback-porch = <32>;
96 vfront-porch = <11>;
97 hsync-len = <96>;
98 vsync-len = <2>;
99 de-active = <1>;
100 hsync-active = <0>;
101 vsync-active = <0>;
102 pixelclk-active = <0>;
103 };
104 }; 111 };
105 }; 112 };
106}; 113};
diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
index a171545478be..2d87489f9105 100644
--- a/arch/arm/boot/dts/imx7-colibri.dtsi
+++ b/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -60,13 +60,6 @@
60 regulator-max-microvolt = <3300000>; 60 regulator-max-microvolt = <3300000>;
61 }; 61 };
62 62
63 reg_vref_1v8: regulator-vref-1v8 {
64 compatible = "regulator-fixed";
65 regulator-name = "vref-1v8";
66 regulator-min-microvolt = <1800000>;
67 regulator-max-microvolt = <1800000>;
68 };
69
70 sound { 63 sound {
71 compatible = "simple-audio-card"; 64 compatible = "simple-audio-card";
72 simple-audio-card,name = "imx7-sgtl5000"; 65 simple-audio-card,name = "imx7-sgtl5000";
@@ -85,11 +78,11 @@
85}; 78};
86 79
87&adc1 { 80&adc1 {
88 vref-supply = <&reg_vref_1v8>; 81 vref-supply = <&reg_DCDC3>;
89}; 82};
90 83
91&adc2 { 84&adc2 {
92 vref-supply = <&reg_vref_1v8>; 85 vref-supply = <&reg_DCDC3>;
93}; 86};
94 87
95&cpu0 { 88&cpu0 {
@@ -151,29 +144,29 @@
151 144
152 regulators { 145 regulators {
153 reg_DCDC1: DCDC1 { /* V1.0_SOC */ 146 reg_DCDC1: DCDC1 { /* V1.0_SOC */
154 regulator-min-microvolt = <975000>; 147 regulator-min-microvolt = <1000000>;
155 regulator-max-microvolt = <1125000>; 148 regulator-max-microvolt = <1100000>;
156 regulator-boot-on; 149 regulator-boot-on;
157 regulator-always-on; 150 regulator-always-on;
158 }; 151 };
159 152
160 reg_DCDC2: DCDC2 { /* V1.1_ARM */ 153 reg_DCDC2: DCDC2 { /* V1.1_ARM */
161 regulator-min-microvolt = <975000>; 154 regulator-min-microvolt = <975000>;
162 regulator-max-microvolt = <1125000>; 155 regulator-max-microvolt = <1100000>;
163 regulator-boot-on; 156 regulator-boot-on;
164 regulator-always-on; 157 regulator-always-on;
165 }; 158 };
166 159
167 reg_DCDC3: DCDC3 { /* V1.8 */ 160 reg_DCDC3: DCDC3 { /* V1.8 */
168 regulator-min-microvolt = <1775000>; 161 regulator-min-microvolt = <1800000>;
169 regulator-max-microvolt = <1825000>; 162 regulator-max-microvolt = <1800000>;
170 regulator-boot-on; 163 regulator-boot-on;
171 regulator-always-on; 164 regulator-always-on;
172 }; 165 };
173 166
174 reg_DCDC4: DCDC4 { /* V1.35_DRAM */ 167 reg_DCDC4: DCDC4 { /* V1.35_DRAM */
175 regulator-min-microvolt = <1325000>; 168 regulator-min-microvolt = <1350000>;
176 regulator-max-microvolt = <1375000>; 169 regulator-max-microvolt = <1350000>;
177 regulator-boot-on; 170 regulator-boot-on;
178 regulator-always-on; 171 regulator-always-on;
179 }; 172 };
@@ -181,33 +174,33 @@
181 reg_LDO1: LDO1 { /* PWR_EN_+V3.3_ETH */ 174 reg_LDO1: LDO1 { /* PWR_EN_+V3.3_ETH */
182 regulator-min-microvolt = <1800000>; 175 regulator-min-microvolt = <1800000>;
183 regulator-max-microvolt = <3300000>; 176 regulator-max-microvolt = <3300000>;
184 regulator-always-on; 177 regulator-boot-on;
185 }; 178 };
186 179
187 reg_LDO2: LDO2 { /* +V1.8_SD */ 180 reg_LDO2: LDO2 { /* +V1.8_SD */
188 regulator-min-microvolt = <1775000>; 181 regulator-min-microvolt = <1800000>;
189 regulator-max-microvolt = <3325000>; 182 regulator-max-microvolt = <3300000>;
190 regulator-boot-on; 183 regulator-boot-on;
191 regulator-always-on; 184 regulator-always-on;
192 }; 185 };
193 186
194 reg_LDO3: LDO3 { /* PWR_EN_+V3.3_LPSR */ 187 reg_LDO3: LDO3 { /* PWR_EN_+V3.3_LPSR */
195 regulator-min-microvolt = <3275000>; 188 regulator-min-microvolt = <3300000>;
196 regulator-max-microvolt = <3325000>; 189 regulator-max-microvolt = <3300000>;
197 regulator-boot-on; 190 regulator-boot-on;
198 regulator-always-on; 191 regulator-always-on;
199 }; 192 };
200 193
201 reg_LDO4: LDO4 { /* V1.8_LPSR */ 194 reg_LDO4: LDO4 { /* V1.8_LPSR */
202 regulator-min-microvolt = <1775000>; 195 regulator-min-microvolt = <1800000>;
203 regulator-max-microvolt = <1825000>; 196 regulator-max-microvolt = <1800000>;
204 regulator-boot-on; 197 regulator-boot-on;
205 regulator-always-on; 198 regulator-always-on;
206 }; 199 };
207 200
208 reg_LDO5: LDO5 { /* PWR_EN_+V3.3 */ 201 reg_LDO5: LDO5 { /* PWR_EN_+V3.3 */
209 regulator-min-microvolt = <1775000>; 202 regulator-min-microvolt = <3300000>;
210 regulator-max-microvolt = <1825000>; 203 regulator-max-microvolt = <3300000>;
211 regulator-boot-on; 204 regulator-boot-on;
212 regulator-always-on; 205 regulator-always-on;
213 }; 206 };
diff --git a/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts b/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts
index bd01d2cc642d..a608a14d8c85 100644
--- a/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts
@@ -57,6 +57,7 @@
57 regulator-min-microvolt = <5000000>; 57 regulator-min-microvolt = <5000000>;
58 regulator-max-microvolt = <5000000>; 58 regulator-max-microvolt = <5000000>;
59 gpio = <&gpio4 7 GPIO_ACTIVE_LOW>; 59 gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
60 vin-supply = <&reg_5v0>;
60 }; 61 };
61}; 62};
62 63
diff --git a/arch/arm/boot/dts/imx7d-sdb-sht11.dts b/arch/arm/boot/dts/imx7d-sdb-sht11.dts
new file mode 100644
index 000000000000..64a20ed1713a
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-sdb-sht11.dts
@@ -0,0 +1,74 @@
1/*
2 * Copyright (C) 2015 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 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 "imx7d-sdb.dts"
44
45/ {
46 sensor {
47 pinctrl-names = "default";
48 pinctrl-0 = <&pinctrl_sensor>;
49 compatible = "sensirion,sht15";
50 clk-gpios = <&gpio4 12 0>;
51 data-gpios = <&gpio4 13 0>;
52 vcc-supply = <&reg_sht15>;
53 };
54
55 reg_sht15: regulator-sht15 {
56 compatible = "regulator-fixed";
57 regulator-name = "reg_sht15";
58 regulator-min-microvolt = <3300000>;
59 regulator-max-microvolt = <3300000>;
60 };
61};
62
63&i2c3 {
64 status = "disabled";
65};
66
67&iomuxc {
68 pinctrl_sensor: sensorgrp {
69 fsl,pins = <
70 MX7D_PAD_I2C3_SDA__GPIO4_IO13 0x4000007f
71 MX7D_PAD_I2C3_SCL__GPIO4_IO12 0x4000007f
72 >;
73 };
74};
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index 5d3a43b8de20..c4f12fd2e044 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -493,10 +493,9 @@
493 }; 493 };
494 494
495 ocotp: ocotp-ctrl@30350000 { 495 ocotp: ocotp-ctrl@30350000 {
496 compatible = "syscon"; 496 compatible = "fsl,imx7d-ocotp", "syscon";
497 reg = <0x30350000 0x10000>; 497 reg = <0x30350000 0x10000>;
498 clocks = <&clks IMX7D_CLK_DUMMY>; 498 clocks = <&clks IMX7D_OCOTP_CLK>;
499 status = "disabled";
500 }; 499 };
501 500
502 anatop: anatop@30360000 { 501 anatop: anatop@30360000 {
@@ -559,7 +558,7 @@
559 }; 558 };
560 559
561 src: src@30390000 { 560 src: src@30390000 {
562 compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon"; 561 compatible = "fsl,imx7d-src", "syscon";
563 reg = <0x30390000 0x10000>; 562 reg = <0x30390000 0x10000>;
564 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 563 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
565 #reset-cells = <1>; 564 #reset-cells = <1>;
diff --git a/arch/arm/boot/dts/include/arm b/arch/arm/boot/dts/include/arm
new file mode 120000
index 000000000000..a96aa0ea9d8c
--- /dev/null
+++ b/arch/arm/boot/dts/include/arm
@@ -0,0 +1 @@
.. \ No newline at end of file
diff --git a/arch/arm/boot/dts/include/arm64 b/arch/arm/boot/dts/include/arm64
new file mode 120000
index 000000000000..074a835fca3e
--- /dev/null
+++ b/arch/arm/boot/dts/include/arm64
@@ -0,0 +1 @@
../../../../arm64/boot/dts \ No newline at end of file
diff --git a/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
new file mode 100644
index 000000000000..f5aeb3959afd
--- /dev/null
+++ b/arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
@@ -0,0 +1,243 @@
1/*
2 * Common CPCAP configuration used on Motorola phones
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&mcspi1 {
10 cpcap: pmic@0 {
11 compatible = "motorola,cpcap", "st,6556002";
12 reg = <0>; /* cs0 */
13 interrupt-parent = <&gpio1>;
14 interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
15 interrupt-controller;
16 #interrupt-cells = <2>;
17 #address-cells = <1>;
18 #size-cells = <0>;
19 spi-max-frequency = <3000000>;
20 spi-cs-high;
21
22 cpcap_adc: adc {
23 compatible = "motorola,mapphone-cpcap-adc";
24 interrupts-extended = <&cpcap 8 0>;
25 interrupt-names = "adcdone";
26 #io-channel-cells = <1>;
27 };
28
29 cpcap_charger: charger {
30 compatible = "motorola,mapphone-cpcap-charger";
31 interrupts-extended = <
32 &cpcap 13 0 &cpcap 12 0 &cpcap 29 0 &cpcap 28 0
33 &cpcap 22 0 &cpcap 20 0 &cpcap 19 0 &cpcap 54 0
34 >;
35 interrupt-names =
36 "chrg_det", "rvrs_chrg", "chrg_se1b", "se0conn",
37 "rvrs_mode", "chrgcurr1", "vbusvld", "battdetb";
38 mode-gpios = <&gpio3 29 GPIO_ACTIVE_LOW
39 &gpio3 23 GPIO_ACTIVE_LOW>;
40 io-channels = <&cpcap_adc 0 &cpcap_adc 1
41 &cpcap_adc 2 &cpcap_adc 5
42 &cpcap_adc 6>;
43 io-channel-names = "battdetb", "battp",
44 "vbus", "chg_isense",
45 "batti";
46 };
47
48 cpcap_regulator: regulator {
49 compatible = "motorola,mapphone-cpcap-regulator";
50
51 cpcap_regulators: regulators {
52 };
53 };
54
55 cpcap_rtc: rtc {
56 compatible = "motorola,cpcap-rtc";
57
58 interrupt-parent = <&cpcap>;
59 interrupts = <39 IRQ_TYPE_NONE>, <26 IRQ_TYPE_NONE>;
60 };
61
62 power_button: button {
63 compatible = "motorola,cpcap-pwrbutton";
64
65 interrupts = <23 IRQ_TYPE_NONE>;
66 };
67
68 cpcap_usb2_phy: phy {
69 compatible = "motorola,mapphone-cpcap-usb-phy";
70 pinctrl-0 = <&usb_gpio_mux_sel1 &usb_gpio_mux_sel2>;
71 pinctrl-1 = <&usb_ulpi_pins>;
72 pinctrl-2 = <&usb_utmi_pins>;
73 pinctrl-3 = <&uart3_pins>;
74 pinctrl-names = "default", "ulpi", "utmi", "uart";
75 #phy-cells = <0>;
76 interrupts-extended = <
77 &cpcap 15 0 &cpcap 14 0 &cpcap 28 0 &cpcap 19 0
78 &cpcap 18 0 &cpcap 17 0 &cpcap 16 0 &cpcap 49 0
79 &cpcap 48 1
80 >;
81 interrupt-names =
82 "id_ground", "id_float", "se0conn", "vbusvld",
83 "sessvld", "sessend", "se1", "dm", "dp";
84 mode-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH
85 &gpio1 0 GPIO_ACTIVE_HIGH>;
86 io-channels = <&cpcap_adc 2>, <&cpcap_adc 7>;
87 io-channel-names = "vbus", "id";
88 vusb-supply = <&vusb>;
89 };
90
91 led_red: led-red {
92 compatible = "motorola,cpcap-led-red";
93 vdd-supply = <&sw5>;
94 label = "status-led:red";
95 };
96
97 led_green: led-green {
98 compatible = "motorola,cpcap-led-green";
99 vdd-supply = <&sw5>;
100 label = "status-led:green";
101 };
102
103 led_blue: led-blue {
104 compatible = "motorola,cpcap-led-blue";
105 vdd-supply = <&sw5>;
106 label = "status-led:blue";
107 };
108
109 led_adl: led-adl {
110 compatible = "motorola,cpcap-led-adl";
111 vdd-supply = <&sw5>;
112 label = "button-backlight";
113 };
114
115 led_cp: led-cp {
116 compatible = "motorola,cpcap-led-cp";
117 vdd-supply = <&sw5>;
118 label = "shift-key-light";
119 };
120 };
121};
122
123&cpcap_regulators {
124 sw5: SW5 {
125 regulator-min-microvolt = <5050000>;
126 regulator-max-microvolt = <5050000>;
127 regulator-enable-ramp-delay = <50000>;
128 regulator-boot-on;
129 };
130
131 vcam: VCAM {
132 regulator-min-microvolt = <2900000>;
133 regulator-max-microvolt = <2900000>;
134 regulator-enable-ramp-delay = <1000>;
135 };
136
137 /* Used by DSS */
138 vcsi: VCSI {
139 regulator-min-microvolt = <1800000>;
140 regulator-max-microvolt = <1800000>;
141 regulator-enable-ramp-delay = <1000>;
142 regulator-boot-on;
143 };
144
145 vdac: VDAC {
146 regulator-min-microvolt = <1800000>;
147 regulator-max-microvolt = <1800000>;
148 regulator-enable-ramp-delay = <1000>;
149 };
150
151 vdig: VDIG {
152 regulator-min-microvolt = <1875000>;
153 regulator-max-microvolt = <1875000>;
154 regulator-enable-ramp-delay = <1000>;
155 };
156
157 vfuse: VFUSE {
158 regulator-min-microvolt = <1500000>;
159 regulator-max-microvolt = <3150000>;
160 regulator-enable-ramp-delay = <1000>;
161 };
162
163 vhvio: VHVIO {
164 regulator-min-microvolt = <2775000>;
165 regulator-max-microvolt = <2775000>;
166 regulator-enable-ramp-delay = <1000>;
167 regulator-always-on;
168 };
169
170 /* Used by eMMC at mmc2 */
171 vsdio: VSDIO {
172 regulator-min-microvolt = <2900000>;
173 regulator-max-microvolt = <2900000>;
174 regulator-enable-ramp-delay = <1000>;
175 };
176
177 vpll: VPLL {
178 regulator-min-microvolt = <1200000>;
179 regulator-max-microvolt = <1800000>;
180 regulator-enable-ramp-delay = <100>;
181 };
182
183 vrf1: VRF1 {
184 regulator-min-microvolt = <2775000>;
185 regulator-max-microvolt = <2775000>;
186 regulator-enable-ramp-delay = <1000>;
187 };
188
189 vrf2: VRF2 {
190 regulator-min-microvolt = <2775000>;
191 regulator-max-microvolt = <2775000>;
192 regulator-enable-ramp-delay = <1000>;
193 };
194
195 vrfref: VRFREF {
196 regulator-min-microvolt = <2500000>;
197 regulator-max-microvolt = <2775000>;
198 regulator-enable-ramp-delay = <100>;
199 };
200
201 vwlan1: VWLAN1 {
202 regulator-min-microvolt = <1800000>;
203 regulator-max-microvolt = <1900000>;
204 regulator-enable-ramp-delay = <1000>;
205 };
206
207 /* Used by micro-SDIO at mmc1 */
208 vwlan2: VWLAN2 {
209 regulator-min-microvolt = <3000000>;
210 regulator-max-microvolt = <3000000>;
211 regulator-enable-ramp-delay = <1000>;
212 };
213
214 vsim: VSIM {
215 regulator-min-microvolt = <1800000>;
216 regulator-max-microvolt = <2900000>;
217 regulator-enable-ramp-delay = <1000>;
218 };
219
220 vsimcard: VSIMCARD {
221 regulator-min-microvolt = <1800000>;
222 regulator-max-microvolt = <2900000>;
223 regulator-enable-ramp-delay = <1000>;
224 };
225
226 vvib: VVIB {
227 regulator-min-microvolt = <1300000>;
228 regulator-max-microvolt = <3000000>;
229 regulator-enable-ramp-delay = <500>;
230 };
231
232 vusb: VUSB {
233 regulator-min-microvolt = <3300000>;
234 regulator-max-microvolt = <3300000>;
235 regulator-enable-ramp-delay = <1000>;
236 };
237
238 vaudio: VAUDIO {
239 regulator-min-microvolt = <2775000>;
240 regulator-max-microvolt = <2775000>;
241 regulator-enable-ramp-delay = <1000>;
242 };
243};
diff --git a/arch/arm/boot/dts/moxart-uc7112lx.dts b/arch/arm/boot/dts/moxart-uc7112lx.dts
index 10d088df0c35..4a962a26482d 100644
--- a/arch/arm/boot/dts/moxart-uc7112lx.dts
+++ b/arch/arm/boot/dts/moxart-uc7112lx.dts
@@ -6,7 +6,7 @@
6 */ 6 */
7 7
8/dts-v1/; 8/dts-v1/;
9/include/ "moxart.dtsi" 9#include "moxart.dtsi"
10 10
11/ { 11/ {
12 model = "MOXA UC-7112-LX"; 12 model = "MOXA UC-7112-LX";
diff --git a/arch/arm/boot/dts/moxart.dtsi b/arch/arm/boot/dts/moxart.dtsi
index 1fd27ed65a01..e86f8c905ac5 100644
--- a/arch/arm/boot/dts/moxart.dtsi
+++ b/arch/arm/boot/dts/moxart.dtsi
@@ -6,6 +6,7 @@
6 */ 6 */
7 7
8/include/ "skeleton.dtsi" 8/include/ "skeleton.dtsi"
9#include <dt-bindings/interrupt-controller/irq.h>
9 10
10/ { 11/ {
11 compatible = "moxa,moxart"; 12 compatible = "moxa,moxart";
@@ -36,8 +37,8 @@
36 ranges; 37 ranges;
37 38
38 intc: interrupt-controller@98800000 { 39 intc: interrupt-controller@98800000 {
39 compatible = "moxa,moxart-ic"; 40 compatible = "moxa,moxart-ic", "faraday,ftintc010";
40 reg = <0x98800000 0x38>; 41 reg = <0x98800000 0x100>;
41 interrupt-controller; 42 interrupt-controller;
42 #interrupt-cells = <2>; 43 #interrupt-cells = <2>;
43 interrupt-mask = <0x00080000>; 44 interrupt-mask = <0x00080000>;
@@ -59,15 +60,15 @@
59 timer: timer@98400000 { 60 timer: timer@98400000 {
60 compatible = "moxa,moxart-timer"; 61 compatible = "moxa,moxart-timer";
61 reg = <0x98400000 0x42>; 62 reg = <0x98400000 0x42>;
62 interrupts = <19 1>; 63 interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
63 clocks = <&clk_apb>; 64 clocks = <&clk_apb>;
64 }; 65 };
65 66
66 gpio: gpio@98700000 { 67 gpio: gpio@98700000 {
67 gpio-controller; 68 gpio-controller;
68 #gpio-cells = <2>; 69 #gpio-cells = <2>;
69 compatible = "moxa,moxart-gpio"; 70 compatible = "moxa,moxart-gpio", "faraday,ftgpio010";
70 reg = <0x98700000 0xC>; 71 reg = <0x98700000 0x100>;
71 }; 72 };
72 73
73 rtc: rtc { 74 rtc: rtc {
@@ -80,7 +81,7 @@
80 dma: dma@90500000 { 81 dma: dma@90500000 {
81 compatible = "moxa,moxart-dma"; 82 compatible = "moxa,moxart-dma";
82 reg = <0x90500080 0x40>; 83 reg = <0x90500080 0x40>;
83 interrupts = <24 0>; 84 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
84 #dma-cells = <1>; 85 #dma-cells = <1>;
85 }; 86 };
86 87
@@ -93,7 +94,7 @@
93 sdhci: sdhci@98e00000 { 94 sdhci: sdhci@98e00000 {
94 compatible = "moxa,moxart-sdhci"; 95 compatible = "moxa,moxart-sdhci";
95 reg = <0x98e00000 0x5C>; 96 reg = <0x98e00000 0x5C>;
96 interrupts = <5 0>; 97 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
97 clocks = <&clk_apb>; 98 clocks = <&clk_apb>;
98 dmas = <&dma 5>, 99 dmas = <&dma 5>,
99 <&dma 5>; 100 <&dma 5>;
@@ -120,7 +121,7 @@
120 mac0: mac@90900000 { 121 mac0: mac@90900000 {
121 compatible = "moxa,moxart-mac"; 122 compatible = "moxa,moxart-mac";
122 reg = <0x90900000 0x90>; 123 reg = <0x90900000 0x90>;
123 interrupts = <25 0>; 124 interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
124 phy-handle = <&ethphy0>; 125 phy-handle = <&ethphy0>;
125 phy-mode = "mii"; 126 phy-mode = "mii";
126 status = "disabled"; 127 status = "disabled";
@@ -129,7 +130,7 @@
129 mac1: mac@92000000 { 130 mac1: mac@92000000 {
130 compatible = "moxa,moxart-mac"; 131 compatible = "moxa,moxart-mac";
131 reg = <0x92000000 0x90>; 132 reg = <0x92000000 0x90>;
132 interrupts = <27 0>; 133 interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
133 phy-handle = <&ethphy1>; 134 phy-handle = <&ethphy1>;
134 phy-mode = "mii"; 135 phy-mode = "mii";
135 status = "disabled"; 136 status = "disabled";
@@ -138,7 +139,7 @@
138 uart0: uart@98200000 { 139 uart0: uart@98200000 {
139 compatible = "ns16550a"; 140 compatible = "ns16550a";
140 reg = <0x98200000 0x20>; 141 reg = <0x98200000 0x20>;
141 interrupts = <31 8>; 142 interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
142 reg-shift = <2>; 143 reg-shift = <2>;
143 reg-io-width = <4>; 144 reg-io-width = <4>;
144 clock-frequency = <14745600>; 145 clock-frequency = <14745600>;
diff --git a/arch/arm/boot/dts/omap3-cpu-thermal.dtsi b/arch/arm/boot/dts/omap3-cpu-thermal.dtsi
new file mode 100644
index 000000000000..235ecfd61e2d
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-cpu-thermal.dtsi
@@ -0,0 +1,20 @@
1/*
2 * Device Tree Source for OMAP3 SoC CPU thermal
3 *
4 * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
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/thermal/thermal.h>
12
13cpu_thermal: cpu_thermal {
14 polling-delay-passive = <250>; /* milliseconds */
15 polling-delay = <1000>; /* milliseconds */
16 coefficients = <0 20000>;
17
18 /* sensor ID */
19 thermal-sensors = <&bandgap 0>;
20};
diff --git a/arch/arm/boot/dts/omap3-igep.dtsi b/arch/arm/boot/dts/omap3-igep.dtsi
index e268efde6c6d..4ad7d5565906 100644
--- a/arch/arm/boot/dts/omap3-igep.dtsi
+++ b/arch/arm/boot/dts/omap3-igep.dtsi
@@ -37,6 +37,13 @@
37}; 37};
38 38
39&omap3_pmx_core { 39&omap3_pmx_core {
40 gpmc_pins: pinmux_gpmc_pins {
41 pinctrl-single,pins = <
42 /* OneNAND seems to require PIN_INPUT on clock. */
43 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
44 >;
45 };
46
40 uart1_pins: pinmux_uart1_pins { 47 uart1_pins: pinmux_uart1_pins {
41 pinctrl-single,pins = < 48 pinctrl-single,pins = <
42 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */ 49 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE0) /* uart1_rx.uart1_rx */
@@ -98,6 +105,9 @@
98}; 105};
99 106
100&gpmc { 107&gpmc {
108 pinctrl-names = "default";
109 pinctrl-0 = <&gpmc_pins>;
110
101 nand@0,0 { 111 nand@0,0 {
102 compatible = "ti,omap2-nand"; 112 compatible = "ti,omap2-nand";
103 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */ 113 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
@@ -126,6 +136,48 @@
126 136
127 #address-cells = <1>; 137 #address-cells = <1>;
128 #size-cells = <1>; 138 #size-cells = <1>;
139
140 status = "okay";
141 };
142
143 onenand@0,0 {
144 compatible = "ti,omap2-onenand";
145 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
146
147 gpmc,sync-read;
148 gpmc,sync-write;
149 gpmc,burst-length = <16>;
150 gpmc,burst-read;
151 gpmc,burst-wrap;
152 gpmc,burst-write;
153 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
154 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
155 gpmc,cs-on-ns = <0>;
156 gpmc,cs-rd-off-ns = <87>;
157 gpmc,cs-wr-off-ns = <87>;
158 gpmc,adv-on-ns = <0>;
159 gpmc,adv-rd-off-ns = <10>;
160 gpmc,adv-wr-off-ns = <10>;
161 gpmc,oe-on-ns = <15>;
162 gpmc,oe-off-ns = <87>;
163 gpmc,we-on-ns = <0>;
164 gpmc,we-off-ns = <87>;
165 gpmc,rd-cycle-ns = <112>;
166 gpmc,wr-cycle-ns = <112>;
167 gpmc,access-ns = <81>;
168 gpmc,page-burst-access-ns = <15>;
169 gpmc,bus-turnaround-ns = <0>;
170 gpmc,cycle2cycle-delay-ns = <0>;
171 gpmc,wait-monitoring-ns = <0>;
172 gpmc,clk-activation-ns = <5>;
173 gpmc,wr-data-mux-bus-ns = <30>;
174 gpmc,wr-access-ns = <81>;
175 gpmc,sync-clk-ps = <15000>;
176
177 #address-cells = <1>;
178 #size-cells = <1>;
179
180 status = "disabled";
129 }; 181 };
130}; 182};
131 183
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index b64cfda8dbb7..49f37084e435 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -155,6 +155,13 @@
155 compatible = "nokia,n900-ir"; 155 compatible = "nokia,n900-ir";
156 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */ 156 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
157 }; 157 };
158
159 /* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
160 vctcxo: vctcxo {
161 compatible = "fixed-clock";
162 #clock-cells = <0>;
163 clock-frequency = <38400000>;
164 };
158}; 165};
159 166
160&omap3_pmx_core { 167&omap3_pmx_core {
@@ -162,8 +169,10 @@
162 169
163 uart2_pins: pinmux_uart2_pins { 170 uart2_pins: pinmux_uart2_pins {
164 pinctrl-single,pins = < 171 pinctrl-single,pins = <
165 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */ 172 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
173 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
166 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */ 174 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
175 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
167 >; 176 >;
168 }; 177 };
169 178
@@ -920,6 +929,8 @@
920 929
921 interrupt-parent = <&gpio2>; 930 interrupt-parent = <&gpio2>;
922 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */ 931 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
932
933 clocks = <&vctcxo>;
923 }; 934 };
924}; 935};
925 936
@@ -937,9 +948,17 @@
937}; 948};
938 949
939&uart2 { 950&uart2 {
940 interrupts-extended = <&intc 73 &omap3_pmx_core OMAP3_UART2_RX>;
941 pinctrl-names = "default"; 951 pinctrl-names = "default";
942 pinctrl-0 = <&uart2_pins>; 952 pinctrl-0 = <&uart2_pins>;
953
954 bcm2048: bluetooth {
955 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
956 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
957 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
958 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
959 clocks = <&vctcxo>;
960 clock-names = "sysclk";
961 };
943}; 962};
944 963
945&uart3 { 964&uart3 {
diff --git a/arch/arm/boot/dts/omap3-n950-n9.dtsi b/arch/arm/boot/dts/omap3-n950-n9.dtsi
index 5d8c4b4a4205..df3366fa5409 100644
--- a/arch/arm/boot/dts/omap3-n950-n9.dtsi
+++ b/arch/arm/boot/dts/omap3-n950-n9.dtsi
@@ -58,6 +58,13 @@
58 pinctrl-0 = <&debug_leds>; 58 pinctrl-0 = <&debug_leds>;
59 }; 59 };
60 }; 60 };
61
62 /* controlled (enabled/disabled) directly by wl1271 */
63 vctcxo: vctcxo {
64 compatible = "fixed-clock";
65 #clock-cells = <0>;
66 clock-frequency = <38400000>;
67 };
61}; 68};
62 69
63&omap3_pmx_core { 70&omap3_pmx_core {
@@ -125,6 +132,15 @@
125 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE4) /* gpio_93 (cmt_apeslpx) */ 132 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE4) /* gpio_93 (cmt_apeslpx) */
126 >; 133 >;
127 }; 134 };
135
136 uart2_pins: pinmux_uart2_pins {
137 pinctrl-single,pins = <
138 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
139 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
140 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
141 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
142 >;
143 };
128}; 144};
129 145
130&omap3_pmx_core2 { 146&omap3_pmx_core2 {
@@ -435,3 +451,19 @@
435&ssi_port2 { 451&ssi_port2 {
436 status = "disabled"; 452 status = "disabled";
437}; 453};
454
455&uart2 {
456 pinctrl-names = "default";
457 pinctrl-0 = <&uart2_pins>;
458
459 bluetooth {
460 compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth";
461
462 reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* 26 */
463 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
464 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
465
466 clocks = <&vctcxo>;
467 clock-names = "sysclk";
468 };
469};
diff --git a/arch/arm/boot/dts/omap34xx.dtsi b/arch/arm/boot/dts/omap34xx.dtsi
index 834fdf13601f..ac4f8795b756 100644
--- a/arch/arm/boot/dts/omap34xx.dtsi
+++ b/arch/arm/boot/dts/omap34xx.dtsi
@@ -14,7 +14,7 @@
14 14
15/ { 15/ {
16 cpus { 16 cpus {
17 cpu@0 { 17 cpu: cpu@0 {
18 /* OMAP343x/OMAP35xx variants OPP1-5 */ 18 /* OMAP343x/OMAP35xx variants OPP1-5 */
19 operating-points = < 19 operating-points = <
20 /* kHz uV */ 20 /* kHz uV */
@@ -56,12 +56,16 @@
56 }; 56 };
57 }; 57 };
58 58
59 bandgap@48002524 { 59 bandgap: bandgap@48002524 {
60 reg = <0x48002524 0x4>; 60 reg = <0x48002524 0x4>;
61 compatible = "ti,omap34xx-bandgap"; 61 compatible = "ti,omap34xx-bandgap";
62 #thermal-sensor-cells = <0>; 62 #thermal-sensor-cells = <0>;
63 }; 63 };
64 }; 64 };
65
66 thermal_zones: thermal-zones {
67 #include "omap3-cpu-thermal.dtsi"
68 };
65}; 69};
66 70
67&ssi { 71&ssi {
diff --git a/arch/arm/boot/dts/omap36xx.dtsi b/arch/arm/boot/dts/omap36xx.dtsi
index d1a3e56b50ce..ade31d74c70c 100644
--- a/arch/arm/boot/dts/omap36xx.dtsi
+++ b/arch/arm/boot/dts/omap36xx.dtsi
@@ -19,7 +19,7 @@
19 19
20 cpus { 20 cpus {
21 /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */ 21 /* OMAP3630/OMAP37xx 'standard device' variants OPP50 to OPP130 */
22 cpu@0 { 22 cpu: cpu@0 {
23 operating-points = < 23 operating-points = <
24 /* kHz uV */ 24 /* kHz uV */
25 300000 1012500 25 300000 1012500
@@ -88,12 +88,16 @@
88 }; 88 };
89 }; 89 };
90 90
91 bandgap@48002524 { 91 bandgap: bandgap@48002524 {
92 reg = <0x48002524 0x4>; 92 reg = <0x48002524 0x4>;
93 compatible = "ti,omap36xx-bandgap"; 93 compatible = "ti,omap36xx-bandgap";
94 #thermal-sensor-cells = <0>; 94 #thermal-sensor-cells = <0>;
95 }; 95 };
96 }; 96 };
97
98 thermal_zones: thermal-zones {
99 #include "omap3-cpu-thermal.dtsi"
100 };
97}; 101};
98 102
99/* OMAP3630 needs dss_96m_fck for VENC */ 103/* OMAP3630 needs dss_96m_fck for VENC */
diff --git a/arch/arm/boot/dts/omap4-droid4-xt894.dts b/arch/arm/boot/dts/omap4-droid4-xt894.dts
index f3ccb4ceed9e..89eb607f4a9e 100644
--- a/arch/arm/boot/dts/omap4-droid4-xt894.dts
+++ b/arch/arm/boot/dts/omap4-droid4-xt894.dts
@@ -5,7 +5,9 @@
5 */ 5 */
6/dts-v1/; 6/dts-v1/;
7 7
8#include <dt-bindings/input/input.h>
8#include "omap443x.dtsi" 9#include "omap443x.dtsi"
10#include "motorola-cpcap-mapphone.dtsi"
9 11
10/ { 12/ {
11 model = "Motorola Droid 4 XT894"; 13 model = "Motorola Droid 4 XT894";
@@ -15,35 +17,76 @@
15 stdout-path = &uart3; 17 stdout-path = &uart3;
16 }; 18 };
17 19
20 aliases {
21 display0 = &lcd0;
22 display1 = &hdmi0;
23 };
24
18 /* 25 /*
19 * We seem to have only 1021 MB accessible, 1021 - 1022 is locked, 26 * 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 27 * then 1023 - 1024 seems to contain mbm.
21 * below about SRAM and L3_ICLK2 being unused by default,
22 */ 28 */
23 memory { 29 memory {
24 device_type = "memory"; 30 device_type = "memory";
25 reg = <0x80000000 0x3fd00000>; /* 1021 MB */ 31 reg = <0x80000000 0x3fd00000>; /* 1021 MB */
26 }; 32 };
27 33
28 /* CPCAP really supports 1650000 to 3400000 range */ 34 /* Poweroff GPIO probably connected to CPCAP */
29 vmmc: regulator-mmc { 35 gpio-poweroff {
36 compatible = "gpio-poweroff";
37 pinctrl-0 = <&poweroff_gpio>;
38 pinctrl-names = "default";
39 gpios = <&gpio2 18 GPIO_ACTIVE_LOW>; /* gpio50 */
40 };
41
42 hdmi0: connector {
43 compatible = "hdmi-connector";
44 pinctrl-0 = <&hdmi_hpd_gpio>;
45 pinctrl-names = "default";
46 label = "hdmi";
47 type = "d";
48
49 hpd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; /* gpio63 */
50
51 port {
52 hdmi_connector_in: endpoint {
53 remote-endpoint = <&hdmi_out>;
54 };
55 };
56 };
57
58 /*
59 * HDMI 5V regulator probably sourced from battery. Let's keep
60 * keep this as always enabled for HDMI to work until we've
61 * figured what the encoder chip is.
62 */
63 hdmi_regulator: regulator-hdmi {
30 compatible = "regulator-fixed"; 64 compatible = "regulator-fixed";
31 regulator-name = "vmmc"; 65 regulator-name = "hdmi";
32 regulator-min-microvolt = <3000000>; 66 regulator-min-microvolt = <5000000>;
33 regulator-max-microvolt = <3000000>; 67 regulator-max-microvolt = <5000000>;
68 gpio = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* gpio59 */
69 enable-active-high;
34 regulator-always-on; 70 regulator-always-on;
35 }; 71 };
36 72
37 /* CPCAP really supports 3000000 to 3100000 range */ 73 /* HS USB Host PHY on PORT 1 */
38 vemmc: regulator-emmc { 74 hsusb1_phy: hsusb1_phy {
75 compatible = "usb-nop-xceiv";
76 };
77
78 /* LCD regulator from sw5 source */
79 lcd_regulator: regulator-lcd {
39 compatible = "regulator-fixed"; 80 compatible = "regulator-fixed";
40 regulator-name = "vemmc"; 81 regulator-name = "lcd";
41 regulator-min-microvolt = <3000000>; 82 regulator-min-microvolt = <5050000>;
42 regulator-max-microvolt = <3000000>; 83 regulator-max-microvolt = <5050000>;
43 regulator-always-on; 84 gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>; /* gpio96 */
85 enable-active-high;
86 vin-supply = <&sw5>;
44 }; 87 };
45 88
46 /* CPCAP really supports 1650000 to 1950000 range */ 89 /* This is probably coming straight from the battery.. */
47 wl12xx_vmmc: regulator-wl12xx { 90 wl12xx_vmmc: regulator-wl12xx {
48 compatible = "regulator-fixed"; 91 compatible = "regulator-fixed";
49 regulator-name = "vwl1271"; 92 regulator-name = "vwl1271";
@@ -53,21 +96,195 @@
53 startup-delay-us = <70000>; 96 startup-delay-us = <70000>;
54 enable-active-high; 97 enable-active-high;
55 }; 98 };
99
100 gpio_keys {
101 compatible = "gpio-keys";
102
103 volume_down {
104 label = "Volume Down";
105 gpios = <&gpio5 26 GPIO_ACTIVE_LOW>; /* gpio154 */
106 linux,code = <KEY_VOLUMEDOWN>;
107 linux,can-disable;
108 };
109
110 slider {
111 label = "Keypad Slide";
112 gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
113 linux,input-type = <EV_SW>;
114 linux,code = <SW_KEYPAD_SLIDE>;
115 linux,can-disable;
116
117 };
118 };
119};
120
121&dss {
122 status = "okay";
123};
124
125&gpio6 {
126 touchscreen_reset {
127 gpio-hog;
128 gpios = <13 0>;
129 output-high;
130 line-name = "touchscreen-reset";
131 };
132};
133
134&dsi1 {
135 status = "okay";
136 vdd-supply = <&vcsi>;
137
138 port {
139 dsi1_out_ep: endpoint {
140 remote-endpoint = <&lcd0_in>;
141 lanes = <0 1 2 3 4 5>;
142 };
143 };
144
145 lcd0: display {
146 compatible = "panel-dsi-cm";
147 label = "lcd0";
148 vddi-supply = <&lcd_regulator>;
149 reset-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */
150
151 panel-timing {
152 clock-frequency = <0>; /* Calculated by dsi */
153
154 hback-porch = <2>;
155 hactive = <540>;
156 hfront-porch = <0>;
157 hsync-len = <2>;
158
159 vback-porch = <1>;
160 vactive = <960>;
161 vfront-porch = <0>;
162 vsync-len = <1>;
163
164 hsync-active = <0>;
165 vsync-active = <0>;
166 de-active = <1>;
167 pixelclk-active = <1>;
168 };
169
170 port {
171 lcd0_in: endpoint {
172 remote-endpoint = <&dsi1_out_ep>;
173 };
174 };
175 };
56}; 176};
57 177
58/* L3_2 interconnect is unused, SRAM, GPMC and L3_ICLK2 disabled */ 178&hdmi {
59&gpmc { 179 status = "okay";
60 status = "disabled"; 180 pinctrl-0 = <&dss_hdmi_pins>;
181 pinctrl-names = "default";
182 vdda-supply = <&vdac>;
183
184 port {
185 hdmi_out: endpoint {
186 remote-endpoint = <&hdmi_connector_in>;
187 lanes = <1 0 3 2 5 4 7 6>;
188 };
189 };
190};
191
192&i2c1 {
193 tmp105@48 {
194 compatible = "ti,tmp105";
195 reg = <0x48>;
196 pinctrl-0 = <&tmp105_irq>;
197 pinctrl-names = "default";
198 /* kpd_row0.gpio_178 */
199 interrupts-extended = <&gpio6 18 IRQ_TYPE_EDGE_FALLING
200 &omap4_pmx_core 0x14e>;
201 interrupt-names = "irq", "wakeup";
202 wakeup-source;
203 };
204};
205
206&keypad {
207 keypad,num-rows = <8>;
208 keypad,num-columns = <8>;
209 linux,keymap = <
210
211 /* Row 1 */
212 MATRIX_KEY(0, 2, KEY_1)
213 MATRIX_KEY(0, 6, KEY_2)
214 MATRIX_KEY(2, 3, KEY_3)
215 MATRIX_KEY(0, 7, KEY_4)
216 MATRIX_KEY(0, 4, KEY_5)
217 MATRIX_KEY(5, 5, KEY_6)
218 MATRIX_KEY(0, 1, KEY_7)
219 MATRIX_KEY(0, 5, KEY_8)
220 MATRIX_KEY(0, 0, KEY_9)
221 MATRIX_KEY(1, 6, KEY_0)
222
223 /* Row 2 */
224 MATRIX_KEY(3, 4, KEY_APOSTROPHE)
225 MATRIX_KEY(7, 6, KEY_Q)
226 MATRIX_KEY(7, 7, KEY_W)
227 MATRIX_KEY(7, 2, KEY_E)
228 MATRIX_KEY(1, 0, KEY_R)
229 MATRIX_KEY(4, 4, KEY_T)
230 MATRIX_KEY(1, 2, KEY_Y)
231 MATRIX_KEY(6, 7, KEY_U)
232 MATRIX_KEY(2, 2, KEY_I)
233 MATRIX_KEY(5, 6, KEY_O)
234 MATRIX_KEY(3, 7, KEY_P)
235 MATRIX_KEY(6, 5, KEY_BACKSPACE)
236
237 /* Row 3 */
238 MATRIX_KEY(5, 4, KEY_TAB)
239 MATRIX_KEY(5, 7, KEY_A)
240 MATRIX_KEY(2, 7, KEY_S)
241 MATRIX_KEY(7, 0, KEY_D)
242 MATRIX_KEY(2, 6, KEY_F)
243 MATRIX_KEY(6, 2, KEY_G)
244 MATRIX_KEY(6, 6, KEY_H)
245 MATRIX_KEY(1, 4, KEY_J)
246 MATRIX_KEY(3, 1, KEY_K)
247 MATRIX_KEY(2, 1, KEY_L)
248 MATRIX_KEY(4, 6, KEY_ENTER)
249
250 /* Row 4 */
251 MATRIX_KEY(3, 6, KEY_LEFTSHIFT) /* KEY_CAPSLOCK */
252 MATRIX_KEY(6, 1, KEY_Z)
253 MATRIX_KEY(7, 4, KEY_X)
254 MATRIX_KEY(5, 1, KEY_C)
255 MATRIX_KEY(1, 7, KEY_V)
256 MATRIX_KEY(2, 4, KEY_B)
257 MATRIX_KEY(4, 1, KEY_N)
258 MATRIX_KEY(1, 1, KEY_M)
259 MATRIX_KEY(3, 5, KEY_COMMA)
260 MATRIX_KEY(5, 2, KEY_DOT)
261 MATRIX_KEY(6, 3, KEY_UP)
262 MATRIX_KEY(7, 3, KEY_OK)
263
264 /* Row 5 */
265 MATRIX_KEY(2, 5, KEY_LEFTCTRL) /* KEY_LEFTSHIFT */
266 MATRIX_KEY(4, 5, KEY_LEFTALT) /* SYM */
267 MATRIX_KEY(6, 0, KEY_MINUS)
268 MATRIX_KEY(4, 7, KEY_EQUAL)
269 MATRIX_KEY(1, 5, KEY_SPACE)
270 MATRIX_KEY(3, 2, KEY_SLASH)
271 MATRIX_KEY(4, 3, KEY_LEFT)
272 MATRIX_KEY(5, 3, KEY_DOWN)
273 MATRIX_KEY(3, 3, KEY_RIGHT)
274
275 /* Side buttons, KEY_VOLUMEDOWN and KEY_PWER are on CPCAP? */
276 MATRIX_KEY(5, 0, KEY_VOLUMEUP)
277 >;
61}; 278};
62 279
63&mmc1 { 280&mmc1 {
64 vmmc-supply = <&vmmc>; 281 vmmc-supply = <&vwlan2>;
65 bus-width = <4>; 282 bus-width = <4>;
66 cd-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>; /* gpio106 */ 283 cd-gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* gpio176 */
67}; 284};
68 285
69&mmc2 { 286&mmc2 {
70 vmmc-supply = <&vemmc>; 287 vmmc-supply = <&vsdio>;
71 bus-width = <8>; 288 bus-width = <8>;
72 non-removable; 289 non-removable;
73}; 290};
@@ -93,12 +310,78 @@
93 }; 310 };
94}; 311};
95 312
96/* L3_2 interconnect is unused, SRAM, GPMC and L3_ICLK2 disabled */ 313&i2c1 {
97&ocmcram { 314 lm3532@38 {
98 status = "disabled"; 315 compatible = "ti,lm3532";
316 reg = <0x38>;
317
318 enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
319
320 backlight {
321 compatible = "ti,lm3532-backlight";
322
323 lcd {
324 led-sources = <0 1 2>;
325 ramp-up-msec = <1>;
326 ramp-down-msec = <0>;
327 };
328 };
329 };
330};
331
332/*
333 * REVISIT: Add gpio173 reset pin handling to the driver, see gpio-hog above.
334 * If the GPIO reset is used, we probably need to have /lib/firmware/maxtouch.fw
335 * available. See "mxt-app" and "droid4-touchscreen-firmware" tools for more
336 * information.
337 */
338&i2c2 {
339 tsp@4a {
340 compatible = "atmel,maxtouch";
341 reg = <0x4a>;
342 pinctrl-names = "default";
343 pinctrl-0 = <&touchscreen_pins>;
344
345 /* gpio_183 with sys_nirq2 pad as wakeup */
346 interrupts-extended = <&gpio6 23 IRQ_TYPE_EDGE_FALLING
347 &omap4_pmx_core 0x160>;
348 interrupt-names = "irq", "wakeup";
349 wakeup-source;
350 };
99}; 351};
100 352
101&omap4_pmx_core { 353&omap4_pmx_core {
354
355 /* hdmi_hpd.gpio_63 */
356 hdmi_hpd_gpio: pinmux_hdmi_hpd_pins {
357 pinctrl-single,pins = <
358 OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3)
359 >;
360 };
361
362 /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */
363 dss_hdmi_pins: pinmux_dss_hdmi_pins {
364 pinctrl-single,pins = <
365 OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)
366 OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0)
367 OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0)
368 >;
369 };
370
371 /* gpmc_ncs0.gpio_50 */
372 poweroff_gpio: pinmux_poweroff_pins {
373 pinctrl-single,pins = <
374 OMAP4_IOPAD(0x074, PIN_OUTPUT_PULLUP | MUX_MODE3)
375 >;
376 };
377
378 /* kpd_row0.gpio_178 */
379 tmp105_irq: pinmux_tmp105_irq {
380 pinctrl-single,pins = <
381 OMAP4_IOPAD(0x18e, PIN_INPUT_PULLUP | MUX_MODE3)
382 >;
383 };
384
102 usb_gpio_mux_sel1: pinmux_usb_gpio_mux_sel1_pins { 385 usb_gpio_mux_sel1: pinmux_usb_gpio_mux_sel1_pins {
103 /* gpio_60 */ 386 /* gpio_60 */
104 pinctrl-single,pins = < 387 pinctrl-single,pins = <
@@ -106,6 +389,12 @@
106 >; 389 >;
107 }; 390 };
108 391
392 touchscreen_pins: pinmux_touchscreen_pins {
393 pinctrl-single,pins = <
394 OMAP4_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE3)
395 >;
396 };
397
109 usb_ulpi_pins: pinmux_usb_ulpi_pins { 398 usb_ulpi_pins: pinmux_usb_ulpi_pins {
110 pinctrl-single,pins = < 399 pinctrl-single,pins = <
111 OMAP4_IOPAD(0x196, MUX_MODE7) 400 OMAP4_IOPAD(0x196, MUX_MODE7)
@@ -180,9 +469,49 @@
180 &omap4_pmx_core 0x17c>; 469 &omap4_pmx_core 0x17c>;
181}; 470};
182 471
472&usbhsehci {
473 phys = <&hsusb1_phy>;
474};
475
476&usbhshost {
477 port1-mode = "ohci-phy-4pin-dpdm";
478 port2-mode = "ehci-tll";
479};
480
183/* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */ 481/* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */
184&usb_otg_hs { 482&usb_otg_hs {
185 interface-type = <1>; 483 interface-type = <1>;
186 mode = <3>; 484 mode = <3>;
187 power = <50>; 485 power = <50>;
188}; 486};
487
488&i2c4 {
489 ak8975: magnetometer@c {
490 compatible = "asahi-kasei,ak8975";
491 reg = <0x0c>;
492
493 vdd-supply = <&vhvio>;
494
495 interrupt-parent = <&gpio6>;
496 interrupts = <15 IRQ_TYPE_EDGE_RISING>; /* gpio175 */
497
498 rotation-matrix = "-1", "0", "0",
499 "0", "1", "0",
500 "0", "0", "-1";
501
502 };
503
504 lis3dh: accelerometer@18 {
505 compatible = "st,lis3dh-accel";
506 reg = <0x18>;
507
508 vdd-supply = <&vhvio>;
509
510 interrupt-parent = <&gpio2>;
511 interrupts = <2 IRQ_TYPE_EDGE_BOTH>; /* gpio34 */
512
513 rotation-matrix = "0", "-1", "0",
514 "1", "0", "0",
515 "0", "0", "1";
516 };
517};
diff --git a/arch/arm/boot/dts/omap443x.dtsi b/arch/arm/boot/dts/omap443x.dtsi
index fc6a8610c24c..03c8ad91ddac 100644
--- a/arch/arm/boot/dts/omap443x.dtsi
+++ b/arch/arm/boot/dts/omap443x.dtsi
@@ -71,4 +71,8 @@
71 71
72}; 72};
73 73
74&cpu_thermal {
75 coefficients = <0 20000>;
76};
77
74/include/ "omap443x-clocks.dtsi" 78/include/ "omap443x-clocks.dtsi"
diff --git a/arch/arm/boot/dts/omap4460.dtsi b/arch/arm/boot/dts/omap4460.dtsi
index ef66e12e0a67..c43f2a2d0a1e 100644
--- a/arch/arm/boot/dts/omap4460.dtsi
+++ b/arch/arm/boot/dts/omap4460.dtsi
@@ -90,4 +90,8 @@
90 90
91}; 91};
92 92
93&cpu_thermal {
94 coefficients = <348 (-9301)>;
95};
96
93/include/ "omap446x-clocks.dtsi" 97/include/ "omap446x-clocks.dtsi"
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index 222155ca8ad7..eaff2a5751dd 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -1127,6 +1127,15 @@
1127 1127
1128&cpu_thermal { 1128&cpu_thermal {
1129 polling-delay = <500>; /* milliseconds */ 1129 polling-delay = <500>; /* milliseconds */
1130 coefficients = <65 (-1791)>;
1130}; 1131};
1131 1132
1132/include/ "omap54xx-clocks.dtsi" 1133/include/ "omap54xx-clocks.dtsi"
1134
1135&gpu_thermal {
1136 coefficients = <117 (-2992)>;
1137};
1138
1139&core_thermal {
1140 coefficients = <0 2000>;
1141};
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
index 39d9e6ddefed..2da1413f5720 100644
--- a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
@@ -95,17 +95,17 @@
95 function = "sdc1"; 95 function = "sdc1";
96 }; 96 };
97 clk { 97 clk {
98 pins = "gpio167"; /* SDC5 CLK */ 98 pins = "gpio167"; /* SDC1 CLK */
99 drive-strength = <16>; 99 drive-strength = <16>;
100 bias-disable; 100 bias-disable;
101 }; 101 };
102 cmd { 102 cmd {
103 pins = "gpio168"; /* SDC5 CMD */ 103 pins = "gpio168"; /* SDC1 CMD */
104 drive-strength = <10>; 104 drive-strength = <10>;
105 bias-pull-up; 105 bias-pull-up;
106 }; 106 };
107 data { 107 data {
108 /* SDC5 D0 to D7 */ 108 /* SDC1 D0 to D7 */
109 pins = "gpio159", "gpio160", "gpio161", "gpio162", 109 pins = "gpio159", "gpio160", "gpio161", "gpio162",
110 "gpio163", "gpio164", "gpio165", "gpio166"; 110 "gpio163", "gpio164", "gpio165", "gpio166";
111 drive-strength = <10>; 111 drive-strength = <10>;
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index 91c9a62ae725..747669a62aa8 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -392,6 +392,21 @@
392 cap-mmc-highspeed; 392 cap-mmc-highspeed;
393 }; 393 };
394 394
395 sdcc2: sdcc@12140000 {
396 status = "disabled";
397 compatible = "arm,pl18x", "arm,primecell";
398 arm,primecell-periphid = <0x00051180>;
399 reg = <0x12140000 0x8000>;
400 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
401 interrupt-names = "cmd_irq";
402 clocks = <&gcc SDC2_CLK>, <&gcc SDC2_H_CLK>;
403 clock-names = "mclk", "apb_pclk";
404 bus-width = <8>;
405 max-frequency = <48000000>;
406 cap-sd-highspeed;
407 cap-mmc-highspeed;
408 };
409
395 sdcc3: sdcc@12180000 { 410 sdcc3: sdcc@12180000 {
396 compatible = "arm,pl18x", "arm,primecell"; 411 compatible = "arm,pl18x", "arm,primecell";
397 arm,primecell-periphid = <0x00051180>; 412 arm,primecell-periphid = <0x00051180>;
@@ -408,6 +423,21 @@
408 no-1-8-v; 423 no-1-8-v;
409 }; 424 };
410 425
426 sdcc4: sdcc@121c0000 {
427 compatible = "arm,pl18x", "arm,primecell";
428 arm,primecell-periphid = <0x00051180>;
429 status = "disabled";
430 reg = <0x121c0000 0x8000>;
431 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
432 interrupt-names = "cmd_irq";
433 clocks = <&gcc SDC4_CLK>, <&gcc SDC4_H_CLK>;
434 clock-names = "mclk", "apb_pclk";
435 bus-width = <4>;
436 max-frequency = <48000000>;
437 cap-sd-highspeed;
438 cap-mmc-highspeed;
439 };
440
411 sdcc5: sdcc@12200000 { 441 sdcc5: sdcc@12200000 {
412 compatible = "arm,pl18x", "arm,primecell"; 442 compatible = "arm,pl18x", "arm,primecell";
413 arm,primecell-periphid = <0x00051180>; 443 arm,primecell-periphid = <0x00051180>;
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
index 96c853bab8ba..e7c1577d56f4 100644
--- a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
@@ -413,14 +413,6 @@
413 dma-controller@f9944000 { 413 dma-controller@f9944000 {
414 qcom,controlled-remotely; 414 qcom,controlled-remotely;
415 }; 415 };
416
417 usb-phy@f9a55000 {
418 status = "ok";
419 };
420
421 usb@f9a55000 {
422 status = "ok";
423 };
424}; 416};
425 417
426&spmi_bus { 418&spmi_bus {
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index d3e1a61b8671..307bf6a647b3 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -2,8 +2,8 @@
2 2
3#include <dt-bindings/interrupt-controller/arm-gic.h> 3#include <dt-bindings/interrupt-controller/arm-gic.h>
4#include <dt-bindings/clock/qcom,gcc-msm8974.h> 4#include <dt-bindings/clock/qcom,gcc-msm8974.h>
5#include <dt-bindings/clock/qcom,rpmcc.h>
5#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/reset/qcom,gcc-msm8974.h>
7#include "skeleton.dtsi" 7#include "skeleton.dtsi"
8 8
9/ { 9/ {
@@ -67,7 +67,7 @@
67 #size-cells = <0>; 67 #size-cells = <0>;
68 interrupts = <1 9 0xf04>; 68 interrupts = <1 9 0xf04>;
69 69
70 cpu@0 { 70 CPU0: cpu@0 {
71 compatible = "qcom,krait"; 71 compatible = "qcom,krait";
72 enable-method = "qcom,kpss-acc-v2"; 72 enable-method = "qcom,kpss-acc-v2";
73 device_type = "cpu"; 73 device_type = "cpu";
@@ -78,7 +78,7 @@
78 cpu-idle-states = <&CPU_SPC>; 78 cpu-idle-states = <&CPU_SPC>;
79 }; 79 };
80 80
81 cpu@1 { 81 CPU1: cpu@1 {
82 compatible = "qcom,krait"; 82 compatible = "qcom,krait";
83 enable-method = "qcom,kpss-acc-v2"; 83 enable-method = "qcom,kpss-acc-v2";
84 device_type = "cpu"; 84 device_type = "cpu";
@@ -89,7 +89,7 @@
89 cpu-idle-states = <&CPU_SPC>; 89 cpu-idle-states = <&CPU_SPC>;
90 }; 90 };
91 91
92 cpu@2 { 92 CPU2: cpu@2 {
93 compatible = "qcom,krait"; 93 compatible = "qcom,krait";
94 enable-method = "qcom,kpss-acc-v2"; 94 enable-method = "qcom,kpss-acc-v2";
95 device_type = "cpu"; 95 device_type = "cpu";
@@ -100,7 +100,7 @@
100 cpu-idle-states = <&CPU_SPC>; 100 cpu-idle-states = <&CPU_SPC>;
101 }; 101 };
102 102
103 cpu@3 { 103 CPU3: cpu@3 {
104 compatible = "qcom,krait"; 104 compatible = "qcom,krait";
105 enable-method = "qcom,kpss-acc-v2"; 105 enable-method = "qcom,kpss-acc-v2";
106 device_type = "cpu"; 106 device_type = "cpu";
@@ -250,6 +250,9 @@
250 250
251 cx-supply = <&pm8841_s2>; 251 cx-supply = <&pm8841_s2>;
252 252
253 clocks = <&xo_board>;
254 clock-names = "xo";
255
253 memory-region = <&adsp_region>; 256 memory-region = <&adsp_region>;
254 257
255 qcom,smem-states = <&adsp_smp2p_out 0>; 258 qcom,smem-states = <&adsp_smp2p_out 0>;
@@ -695,42 +698,276 @@
695 qcom,ee = <0>; 698 qcom,ee = <0>;
696 }; 699 };
697 700
698 usb1_phy: usb-phy@f9a55000 { 701 etr@fc322000 {
699 compatible = "qcom,usb-otg-snps"; 702 compatible = "arm,coresight-tmc", "arm,primecell";
703 reg = <0xfc322000 0x1000>;
700 704
701 reg = <0xf9a55000 0x400>; 705 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
702 interrupts-extended = <&intc 0 134 0>, <&intc 0 140 0>, 706 clock-names = "apb_pclk", "atclk";
703 <&spmi_bus 0 0x9 0 0>;
704 interrupt-names = "core_irq", "async_irq", "pmic_id_irq";
705 707
706 vddcx-supply = <&pm8841_s2>; 708 port {
707 v3p3-supply = <&pm8941_l24>; 709 etr_in: endpoint {
708 v1p8-supply = <&pm8941_l6>; 710 slave-mode;
711 remote-endpoint = <&replicator_out0>;
712 };
713 };
714 };
709 715
710 dr_mode = "otg"; 716 tpiu@fc318000 {
711 qcom,phy-init-sequence = <0x63 0x81 0xfffffff>; 717 compatible = "arm,coresight-tpiu", "arm,primecell";
712 qcom,otg-control = <1>; 718 reg = <0xfc318000 0x1000>;
713 qcom,phy-num = <0>;
714 719
715 resets = <&gcc GCC_USB2A_PHY_BCR>, <&gcc GCC_USB_HS_BCR>; 720 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
716 reset-names = "phy", "link"; 721 clock-names = "apb_pclk", "atclk";
717 722
718 clocks = <&gcc GCC_XO_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>, 723 port {
719 <&gcc GCC_USB_HS_AHB_CLK>; 724 tpiu_in: endpoint {
720 clock-names = "phy", "core", "iface"; 725 slave-mode;
726 remote-endpoint = <&replicator_out1>;
727 };
728 };
729 };
721 730
722 status = "disabled"; 731 replicator@fc31c000 {
732 compatible = "qcom,coresight-replicator1x", "arm,primecell";
733 reg = <0xfc31c000 0x1000>;
734
735 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
736 clock-names = "apb_pclk", "atclk";
737
738 ports {
739 #address-cells = <1>;
740 #size-cells = <0>;
741
742 port@0 {
743 reg = <0>;
744 replicator_out0: endpoint {
745 remote-endpoint = <&etr_in>;
746 };
747 };
748 port@1 {
749 reg = <1>;
750 replicator_out1: endpoint {
751 remote-endpoint = <&tpiu_in>;
752 };
753 };
754 port@2 {
755 reg = <0>;
756 replicator_in: endpoint {
757 slave-mode;
758 remote-endpoint = <&etf_out>;
759 };
760 };
761 };
723 }; 762 };
724 763
725 usb@f9a55000 { 764 etf@fc307000 {
726 compatible = "qcom,ci-hdrc"; 765 compatible = "arm,coresight-tmc", "arm,primecell";
727 reg = <0xf9a55000 0x400>; 766 reg = <0xfc307000 0x1000>;
728 dr_mode = "otg";
729 interrupts = <0 134 0>, <0 140 0>;
730 interrupt-names = "core_irq", "async_irq";
731 usb-phy = <&usb1_phy>;
732 767
733 status = "disabled"; 768 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
769 clock-names = "apb_pclk", "atclk";
770
771 ports {
772 #address-cells = <1>;
773 #size-cells = <0>;
774
775 port@0 {
776 reg = <0>;
777 etf_out: endpoint {
778 remote-endpoint = <&replicator_in>;
779 };
780 };
781 port@1 {
782 reg = <0>;
783 etf_in: endpoint {
784 slave-mode;
785 remote-endpoint = <&merger_out>;
786 };
787 };
788 };
789 };
790
791 funnel@fc31b000 {
792 compatible = "arm,coresight-funnel", "arm,primecell";
793 reg = <0xfc31b000 0x1000>;
794
795 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
796 clock-names = "apb_pclk", "atclk";
797
798 ports {
799 #address-cells = <1>;
800 #size-cells = <0>;
801
802 /*
803 * Not described input ports:
804 * 0 - connected trought funnel to Audio, Modem and
805 * Resource and Power Manager CPU's
806 * 2...7 - not-connected
807 */
808 port@1 {
809 reg = <1>;
810 merger_in1: endpoint {
811 slave-mode;
812 remote-endpoint = <&funnel1_out>;
813 };
814 };
815 port@8 {
816 reg = <0>;
817 merger_out: endpoint {
818 remote-endpoint = <&etf_in>;
819 };
820 };
821 };
822 };
823
824 funnel@fc31a000 {
825 compatible = "arm,coresight-funnel", "arm,primecell";
826 reg = <0xfc31a000 0x1000>;
827
828 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
829 clock-names = "apb_pclk", "atclk";
830
831 ports {
832 #address-cells = <1>;
833 #size-cells = <0>;
834
835 /*
836 * Not described input ports:
837 * 0 - not-connected
838 * 1 - connected trought funnel to Multimedia CPU
839 * 2 - connected to Wireless CPU
840 * 3 - not-connected
841 * 4 - not-connected
842 * 6 - not-connected
843 * 7 - connected to STM
844 */
845 port@5 {
846 reg = <5>;
847 funnel1_in5: endpoint {
848 slave-mode;
849 remote-endpoint = <&kpss_out>;
850 };
851 };
852 port@8 {
853 reg = <0>;
854 funnel1_out: endpoint {
855 remote-endpoint = <&merger_in1>;
856 };
857 };
858 };
859 };
860
861 funnel@fc345000 { /* KPSS funnel only 4 inputs are used */
862 compatible = "arm,coresight-funnel", "arm,primecell";
863 reg = <0xfc345000 0x1000>;
864
865 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
866 clock-names = "apb_pclk", "atclk";
867
868 ports {
869 #address-cells = <1>;
870 #size-cells = <0>;
871
872 port@0 {
873 reg = <0>;
874 kpss_in0: endpoint {
875 slave-mode;
876 remote-endpoint = <&etm0_out>;
877 };
878 };
879 port@1 {
880 reg = <1>;
881 kpss_in1: endpoint {
882 slave-mode;
883 remote-endpoint = <&etm1_out>;
884 };
885 };
886 port@2 {
887 reg = <2>;
888 kpss_in2: endpoint {
889 slave-mode;
890 remote-endpoint = <&etm2_out>;
891 };
892 };
893 port@3 {
894 reg = <3>;
895 kpss_in3: endpoint {
896 slave-mode;
897 remote-endpoint = <&etm3_out>;
898 };
899 };
900 port@8 {
901 reg = <0>;
902 kpss_out: endpoint {
903 remote-endpoint = <&funnel1_in5>;
904 };
905 };
906 };
907 };
908
909 etm@fc33c000 {
910 compatible = "arm,coresight-etm4x", "arm,primecell";
911 reg = <0xfc33c000 0x1000>;
912
913 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
914 clock-names = "apb_pclk", "atclk";
915
916 cpu = <&CPU0>;
917
918 port {
919 etm0_out: endpoint {
920 remote-endpoint = <&kpss_in0>;
921 };
922 };
923 };
924
925 etm@fc33d000 {
926 compatible = "arm,coresight-etm4x", "arm,primecell";
927 reg = <0xfc33d000 0x1000>;
928
929 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
930 clock-names = "apb_pclk", "atclk";
931
932 cpu = <&CPU1>;
933
934 port {
935 etm1_out: endpoint {
936 remote-endpoint = <&kpss_in1>;
937 };
938 };
939 };
940
941 etm@fc33e000 {
942 compatible = "arm,coresight-etm4x", "arm,primecell";
943 reg = <0xfc33e000 0x1000>;
944
945 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
946 clock-names = "apb_pclk", "atclk";
947
948 cpu = <&CPU2>;
949
950 port {
951 etm2_out: endpoint {
952 remote-endpoint = <&kpss_in2>;
953 };
954 };
955 };
956
957 etm@fc33f000 {
958 compatible = "arm,coresight-etm4x", "arm,primecell";
959 reg = <0xfc33f000 0x1000>;
960
961 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
962 clock-names = "apb_pclk", "atclk";
963
964 cpu = <&CPU3>;
965
966 port {
967 etm3_out: endpoint {
968 remote-endpoint = <&kpss_in3>;
969 };
970 };
734 }; 971 };
735 }; 972 };
736 973
@@ -760,6 +997,11 @@
760 compatible = "qcom,rpm-msm8974"; 997 compatible = "qcom,rpm-msm8974";
761 qcom,smd-channels = "rpm_requests"; 998 qcom,smd-channels = "rpm_requests";
762 999
1000 rpmcc: clock-controller {
1001 compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
1002 #clock-cells = <1>;
1003 };
1004
763 pm8841-regulators { 1005 pm8841-regulators {
764 compatible = "qcom,rpm-pm8841-regulators"; 1006 compatible = "qcom,rpm-pm8841-regulators";
765 1007
diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts
index 118a8e2b86bd..52a7b586bac7 100644
--- a/arch/arm/boot/dts/r7s72100-genmai.dts
+++ b/arch/arm/boot/dts/r7s72100-genmai.dts
@@ -44,6 +44,10 @@
44 clock-frequency = <48000000>; 44 clock-frequency = <48000000>;
45}; 45};
46 46
47&rtc_x1_clk {
48 clock-frequency = <32768>;
49};
50
47&mtu2 { 51&mtu2 {
48 status = "okay"; 52 status = "okay";
49}; 53};
@@ -59,6 +63,10 @@
59 }; 63 };
60}; 64};
61 65
66&rtc {
67 status = "okay";
68};
69
62&scif2 { 70&scif2 {
63 status = "okay"; 71 status = "okay";
64}; 72};
diff --git a/arch/arm/boot/dts/r7s72100-rskrza1.dts b/arch/arm/boot/dts/r7s72100-rskrza1.dts
index 02b59c5b3c53..72df20a04320 100644
--- a/arch/arm/boot/dts/r7s72100-rskrza1.dts
+++ b/arch/arm/boot/dts/r7s72100-rskrza1.dts
@@ -43,6 +43,10 @@
43 clock-frequency = <48000000>; 43 clock-frequency = <48000000>;
44}; 44};
45 45
46&rtc_x1_clk {
47 clock-frequency = <32768>;
48};
49
46&mtu2 { 50&mtu2 {
47 status = "okay"; 51 status = "okay";
48}; 52};
@@ -69,6 +73,10 @@
69 status = "okay"; 73 status = "okay";
70}; 74};
71 75
76&rtc {
77 status = "okay";
78};
79
72&scif2 { 80&scif2 {
73 status = "okay"; 81 status = "okay";
74}; 82};
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi
index 1cf2bd038090..0423996e4dcc 100644
--- a/arch/arm/boot/dts/r7s72100.dtsi
+++ b/arch/arm/boot/dts/r7s72100.dtsi
@@ -51,6 +51,20 @@
51 clock-frequency = <0>; 51 clock-frequency = <0>;
52 }; 52 };
53 53
54 rtc_x1_clk: rtc_x1 {
55 #clock-cells = <0>;
56 compatible = "fixed-clock";
57 /* If clk present, value must be set by board to 32678 */
58 clock-frequency = <0>;
59 };
60
61 rtc_x3_clk: rtc_x3 {
62 #clock-cells = <0>;
63 compatible = "fixed-clock";
64 /* If clk present, value must be set by board to 4000000 */
65 clock-frequency = <0>;
66 };
67
54 /* Fixed factor clocks */ 68 /* Fixed factor clocks */
55 b_clk: b { 69 b_clk: b {
56 #clock-cells = <0>; 70 #clock-cells = <0>;
@@ -117,11 +131,20 @@
117 clock-output-names = "ostm0", "ostm1"; 131 clock-output-names = "ostm0", "ostm1";
118 }; 132 };
119 133
134 mstp6_clks: mstp6_clks@fcfe042c {
135 #clock-cells = <1>;
136 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
137 reg = <0xfcfe042c 4>;
138 clocks = <&p0_clk>;
139 clock-indices = <R7S72100_CLK_RTC>;
140 clock-output-names = "rtc";
141 };
142
120 mstp7_clks: mstp7_clks@fcfe0430 { 143 mstp7_clks: mstp7_clks@fcfe0430 {
121 #clock-cells = <1>; 144 #clock-cells = <1>;
122 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; 145 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
123 reg = <0xfcfe0430 4>; 146 reg = <0xfcfe0430 4>;
124 clocks = <&p0_clk>; 147 clocks = <&b_clk>;
125 clock-indices = <R7S72100_CLK_ETHER>; 148 clock-indices = <R7S72100_CLK_ETHER>;
126 clock-output-names = "ether"; 149 clock-output-names = "ether";
127 }; 150 };
@@ -162,9 +185,12 @@
162 #clock-cells = <1>; 185 #clock-cells = <1>;
163 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks"; 186 compatible = "renesas,r7s72100-mstp-clocks", "renesas,cpg-mstp-clocks";
164 reg = <0xfcfe0444 4>; 187 reg = <0xfcfe0444 4>;
165 clocks = <&p1_clk>, <&p1_clk>; 188 clocks = <&p1_clk>, <&p1_clk>, <&p1_clk>, <&p1_clk>;
166 clock-indices = <R7S72100_CLK_SDHI1 R7S72100_CLK_SDHI0>; 189 clock-indices = <
167 clock-output-names = "sdhi1", "sdhi0"; 190 R7S72100_CLK_SDHI00 R7S72100_CLK_SDHI01
191 R7S72100_CLK_SDHI10 R7S72100_CLK_SDHI11
192 >;
193 clock-output-names = "sdhi00", "sdhi01", "sdhi10", "sdhi11";
168 }; 194 };
169 }; 195 };
170 196
@@ -379,6 +405,13 @@
379 cache-level = <2>; 405 cache-level = <2>;
380 }; 406 };
381 407
408 wdt: watchdog@fcfe0000 {
409 compatible = "renesas,r7s72100-wdt", "renesas,rza-wdt";
410 reg = <0xfcfe0000 0x6>;
411 interrupts = <GIC_SPI 106 IRQ_TYPE_EDGE_RISING>;
412 clocks = <&p0_clk>;
413 };
414
382 i2c0: i2c@fcfee000 { 415 i2c0: i2c@fcfee000 {
383 #address-cells = <1>; 416 #address-cells = <1>;
384 #size-cells = <0>; 417 #size-cells = <0>;
@@ -499,7 +532,10 @@
499 GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH 532 GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH
500 GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>; 533 GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
501 534
502 clocks = <&mstp12_clks R7S72100_CLK_SDHI0>; 535 clocks = <&mstp12_clks R7S72100_CLK_SDHI00>,
536 <&mstp12_clks R7S72100_CLK_SDHI01>;
537 clock-names = "core", "cd";
538 power-domains = <&cpg_clocks>;
503 cap-sd-highspeed; 539 cap-sd-highspeed;
504 cap-sdio-irq; 540 cap-sdio-irq;
505 status = "disabled"; 541 status = "disabled";
@@ -512,7 +548,10 @@
512 GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH 548 GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH
513 GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>; 549 GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>;
514 550
515 clocks = <&mstp12_clks R7S72100_CLK_SDHI1>; 551 clocks = <&mstp12_clks R7S72100_CLK_SDHI10>,
552 <&mstp12_clks R7S72100_CLK_SDHI11>;
553 clock-names = "core", "cd";
554 power-domains = <&cpg_clocks>;
516 cap-sd-highspeed; 555 cap-sd-highspeed;
517 cap-sdio-irq; 556 cap-sdio-irq;
518 status = "disabled"; 557 status = "disabled";
@@ -535,4 +574,18 @@
535 power-domains = <&cpg_clocks>; 574 power-domains = <&cpg_clocks>;
536 status = "disabled"; 575 status = "disabled";
537 }; 576 };
577
578 rtc: rtc@fcff1000 {
579 compatible = "renesas,r7s72100-rtc", "renesas,sh-rtc";
580 reg = <0xfcff1000 0x2e>;
581 interrupts = <GIC_SPI 276 IRQ_TYPE_EDGE_RISING
582 GIC_SPI 277 IRQ_TYPE_EDGE_RISING
583 GIC_SPI 278 IRQ_TYPE_EDGE_RISING>;
584 interrupt-names = "alarm", "period", "carry";
585 clocks = <&mstp6_clks R7S72100_CLK_RTC>, <&rtc_x1_clk>,
586 <&rtc_x3_clk>, <&extal_clk>;
587 clock-names = "fck", "rtc_x1", "rtc_x3", "extal";
588 power-domains = <&cpg_clocks>;
589 status = "disabled";
590 };
538}; 591};
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 00eb9a7114dc..1f5c9f6dddba 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -32,18 +32,16 @@
32 next-level-cache = <&L2_CA15>; 32 next-level-cache = <&L2_CA15>;
33 }; 33 };
34 34
35 L2_CA15: cache-controller@0 { 35 L2_CA15: cache-controller-0 {
36 compatible = "cache"; 36 compatible = "cache";
37 reg = <0>;
38 clocks = <&cpg_clocks R8A73A4_CLK_Z>; 37 clocks = <&cpg_clocks R8A73A4_CLK_Z>;
39 power-domains = <&pd_a3sm>; 38 power-domains = <&pd_a3sm>;
40 cache-unified; 39 cache-unified;
41 cache-level = <2>; 40 cache-level = <2>;
42 }; 41 };
43 42
44 L2_CA7: cache-controller@100 { 43 L2_CA7: cache-controller-1 {
45 compatible = "cache"; 44 compatible = "cache";
46 reg = <0x100>;
47 clocks = <&cpg_clocks R8A73A4_CLK_Z2>; 45 clocks = <&cpg_clocks R8A73A4_CLK_Z2>;
48 power-domains = <&pd_a3km>; 46 power-domains = <&pd_a3km>;
49 cache-unified; 47 cache-unified;
@@ -469,6 +467,9 @@
469 <0 0xf1004000 0 0x2000>, 467 <0 0xf1004000 0 0x2000>,
470 <0 0xf1006000 0 0x2000>; 468 <0 0xf1006000 0 0x2000>;
471 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 469 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
470 clocks = <&mstp4_clks R8A73A4_CLK_INTC_SYS>;
471 clock-names = "clk";
472 power-domains = <&pd_c4>;
472 }; 473 };
473 474
474 bsc: bus@fec10000 { 475 bsc: bus@fec10000 {
@@ -727,16 +728,18 @@
727 mstp4_clks: mstp4_clks@e6150140 { 728 mstp4_clks: mstp4_clks@e6150140 {
728 compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks"; 729 compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
729 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 730 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
730 clocks = <&main_div2_clk>, <&main_div2_clk>, 731 clocks = <&main_div2_clk>, <&cpg_clocks R8A73A4_CLK_ZS>,
732 <&main_div2_clk>,
731 <&cpg_clocks R8A73A4_CLK_HP>, 733 <&cpg_clocks R8A73A4_CLK_HP>,
732 <&cpg_clocks R8A73A4_CLK_HP>; 734 <&cpg_clocks R8A73A4_CLK_HP>;
733 #clock-cells = <1>; 735 #clock-cells = <1>;
734 clock-indices = < 736 clock-indices = <
735 R8A73A4_CLK_IRQC R8A73A4_CLK_IIC5 737 R8A73A4_CLK_IRQC R8A73A4_CLK_INTC_SYS
736 R8A73A4_CLK_IIC4 R8A73A4_CLK_IIC3 738 R8A73A4_CLK_IIC5 R8A73A4_CLK_IIC4
739 R8A73A4_CLK_IIC3
737 >; 740 >;
738 clock-output-names = 741 clock-output-names =
739 "irqc", "iic5", "iic4", "iic3"; 742 "irqc", "intc-sys", "iic5", "iic4", "iic3";
740 }; 743 };
741 mstp5_clks: mstp5_clks@e6150144 { 744 mstp5_clks: mstp5_clks@e6150144 {
742 compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks"; 745 compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
diff --git a/arch/arm/boot/dts/r8a7743.dtsi b/arch/arm/boot/dts/r8a7743.dtsi
index d8393b97768b..0ddac81742e4 100644
--- a/arch/arm/boot/dts/r8a7743.dtsi
+++ b/arch/arm/boot/dts/r8a7743.dtsi
@@ -32,9 +32,8 @@
32 next-level-cache = <&L2_CA15>; 32 next-level-cache = <&L2_CA15>;
33 }; 33 };
34 34
35 L2_CA15: cache-controller@0 { 35 L2_CA15: cache-controller-0 {
36 compatible = "cache"; 36 compatible = "cache";
37 reg = <0>;
38 cache-unified; 37 cache-unified;
39 cache-level = <2>; 38 cache-level = <2>;
40 power-domains = <&sysc R8A7743_PD_CA15_SCU>; 39 power-domains = <&sysc R8A7743_PD_CA15_SCU>;
@@ -63,6 +62,7 @@
63 clocks = <&cpg CPG_MOD 408>; 62 clocks = <&cpg CPG_MOD 408>;
64 clock-names = "clk"; 63 clock-names = "clk";
65 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 64 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
65 resets = <&cpg 408>;
66 }; 66 };
67 67
68 irqc: interrupt-controller@e61c0000 { 68 irqc: interrupt-controller@e61c0000 {
@@ -82,6 +82,7 @@
82 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 82 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
83 clocks = <&cpg CPG_MOD 407>; 83 clocks = <&cpg CPG_MOD 407>;
84 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 84 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
85 resets = <&cpg 407>;
85 }; 86 };
86 87
87 timer { 88 timer {
@@ -103,6 +104,7 @@
103 clock-names = "extal", "usb_extal"; 104 clock-names = "extal", "usb_extal";
104 #clock-cells = <2>; 105 #clock-cells = <2>;
105 #power-domain-cells = <0>; 106 #power-domain-cells = <0>;
107 #reset-cells = <1>;
106 }; 108 };
107 109
108 prr: chipid@ff000044 { 110 prr: chipid@ff000044 {
@@ -149,6 +151,7 @@
149 clocks = <&cpg CPG_MOD 219>; 151 clocks = <&cpg CPG_MOD 219>;
150 clock-names = "fck"; 152 clock-names = "fck";
151 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 153 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
154 resets = <&cpg 219>;
152 #dma-cells = <1>; 155 #dma-cells = <1>;
153 dma-channels = <15>; 156 dma-channels = <15>;
154 }; 157 };
@@ -181,6 +184,7 @@
181 clocks = <&cpg CPG_MOD 218>; 184 clocks = <&cpg CPG_MOD 218>;
182 clock-names = "fck"; 185 clock-names = "fck";
183 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 186 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
187 resets = <&cpg 218>;
184 #dma-cells = <1>; 188 #dma-cells = <1>;
185 dma-channels = <15>; 189 dma-channels = <15>;
186 }; 190 };
@@ -196,6 +200,7 @@
196 <&dmac1 0x21>, <&dmac1 0x22>; 200 <&dmac1 0x21>, <&dmac1 0x22>;
197 dma-names = "tx", "rx", "tx", "rx"; 201 dma-names = "tx", "rx", "tx", "rx";
198 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 202 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
203 resets = <&cpg 204>;
199 status = "disabled"; 204 status = "disabled";
200 }; 205 };
201 206
@@ -210,6 +215,7 @@
210 <&dmac1 0x25>, <&dmac1 0x26>; 215 <&dmac1 0x25>, <&dmac1 0x26>;
211 dma-names = "tx", "rx", "tx", "rx"; 216 dma-names = "tx", "rx", "tx", "rx";
212 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 217 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
218 resets = <&cpg 203>;
213 status = "disabled"; 219 status = "disabled";
214 }; 220 };
215 221
@@ -224,6 +230,7 @@
224 <&dmac1 0x27>, <&dmac1 0x28>; 230 <&dmac1 0x27>, <&dmac1 0x28>;
225 dma-names = "tx", "rx", "tx", "rx"; 231 dma-names = "tx", "rx", "tx", "rx";
226 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 232 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
233 resets = <&cpg 202>;
227 status = "disabled"; 234 status = "disabled";
228 }; 235 };
229 236
@@ -238,6 +245,7 @@
238 <&dmac1 0x1b>, <&dmac1 0x1c>; 245 <&dmac1 0x1b>, <&dmac1 0x1c>;
239 dma-names = "tx", "rx", "tx", "rx"; 246 dma-names = "tx", "rx", "tx", "rx";
240 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 247 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
248 resets = <&cpg 1106>;
241 status = "disabled"; 249 status = "disabled";
242 }; 250 };
243 251
@@ -252,6 +260,7 @@
252 <&dmac1 0x1f>, <&dmac1 0x20>; 260 <&dmac1 0x1f>, <&dmac1 0x20>;
253 dma-names = "tx", "rx", "tx", "rx"; 261 dma-names = "tx", "rx", "tx", "rx";
254 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 262 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
263 resets = <&cpg 1107>;
255 status = "disabled"; 264 status = "disabled";
256 }; 265 };
257 266
@@ -266,6 +275,7 @@
266 <&dmac1 0x23>, <&dmac1 0x24>; 275 <&dmac1 0x23>, <&dmac1 0x24>;
267 dma-names = "tx", "rx", "tx", "rx"; 276 dma-names = "tx", "rx", "tx", "rx";
268 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 277 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
278 resets = <&cpg 1108>;
269 status = "disabled"; 279 status = "disabled";
270 }; 280 };
271 281
@@ -277,9 +287,10 @@
277 clocks = <&cpg CPG_MOD 206>; 287 clocks = <&cpg CPG_MOD 206>;
278 clock-names = "fck"; 288 clock-names = "fck";
279 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, 289 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
280 <&dmac1 0x3d>, <&dmac1 0x3e>; 290 <&dmac1 0x3d>, <&dmac1 0x3e>;
281 dma-names = "tx", "rx", "tx", "rx"; 291 dma-names = "tx", "rx", "tx", "rx";
282 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 292 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
293 resets = <&cpg 206>;
283 status = "disabled"; 294 status = "disabled";
284 }; 295 };
285 296
@@ -294,6 +305,7 @@
294 <&dmac1 0x19>, <&dmac1 0x1a>; 305 <&dmac1 0x19>, <&dmac1 0x1a>;
295 dma-names = "tx", "rx", "tx", "rx"; 306 dma-names = "tx", "rx", "tx", "rx";
296 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 307 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
308 resets = <&cpg 207>;
297 status = "disabled"; 309 status = "disabled";
298 }; 310 };
299 311
@@ -308,6 +320,7 @@
308 <&dmac1 0x1d>, <&dmac1 0x1e>; 320 <&dmac1 0x1d>, <&dmac1 0x1e>;
309 dma-names = "tx", "rx", "tx", "rx"; 321 dma-names = "tx", "rx", "tx", "rx";
310 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 322 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
323 resets = <&cpg 216>;
311 status = "disabled"; 324 status = "disabled";
312 }; 325 };
313 326
@@ -323,6 +336,7 @@
323 <&dmac1 0x29>, <&dmac1 0x2a>; 336 <&dmac1 0x29>, <&dmac1 0x2a>;
324 dma-names = "tx", "rx", "tx", "rx"; 337 dma-names = "tx", "rx", "tx", "rx";
325 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 338 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
339 resets = <&cpg 721>;
326 status = "disabled"; 340 status = "disabled";
327 }; 341 };
328 342
@@ -338,6 +352,7 @@
338 <&dmac1 0x2d>, <&dmac1 0x2e>; 352 <&dmac1 0x2d>, <&dmac1 0x2e>;
339 dma-names = "tx", "rx", "tx", "rx"; 353 dma-names = "tx", "rx", "tx", "rx";
340 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 354 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
355 resets = <&cpg 720>;
341 status = "disabled"; 356 status = "disabled";
342 }; 357 };
343 358
@@ -353,6 +368,7 @@
353 <&dmac1 0x2b>, <&dmac1 0x2c>; 368 <&dmac1 0x2b>, <&dmac1 0x2c>;
354 dma-names = "tx", "rx", "tx", "rx"; 369 dma-names = "tx", "rx", "tx", "rx";
355 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 370 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
371 resets = <&cpg 719>;
356 status = "disabled"; 372 status = "disabled";
357 }; 373 };
358 374
@@ -368,6 +384,7 @@
368 <&dmac1 0x2f>, <&dmac1 0x30>; 384 <&dmac1 0x2f>, <&dmac1 0x30>;
369 dma-names = "tx", "rx", "tx", "rx"; 385 dma-names = "tx", "rx", "tx", "rx";
370 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 386 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
387 resets = <&cpg 718>;
371 status = "disabled"; 388 status = "disabled";
372 }; 389 };
373 390
@@ -383,6 +400,7 @@
383 <&dmac1 0xfb>, <&dmac1 0xfc>; 400 <&dmac1 0xfb>, <&dmac1 0xfc>;
384 dma-names = "tx", "rx", "tx", "rx"; 401 dma-names = "tx", "rx", "tx", "rx";
385 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 402 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
403 resets = <&cpg 715>;
386 status = "disabled"; 404 status = "disabled";
387 }; 405 };
388 406
@@ -398,6 +416,7 @@
398 <&dmac1 0xfd>, <&dmac1 0xfe>; 416 <&dmac1 0xfd>, <&dmac1 0xfe>;
399 dma-names = "tx", "rx", "tx", "rx"; 417 dma-names = "tx", "rx", "tx", "rx";
400 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 418 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
419 resets = <&cpg 714>;
401 status = "disabled"; 420 status = "disabled";
402 }; 421 };
403 422
@@ -413,6 +432,7 @@
413 <&dmac1 0x39>, <&dmac1 0x3a>; 432 <&dmac1 0x39>, <&dmac1 0x3a>;
414 dma-names = "tx", "rx", "tx", "rx"; 433 dma-names = "tx", "rx", "tx", "rx";
415 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 434 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
435 resets = <&cpg 717>;
416 status = "disabled"; 436 status = "disabled";
417 }; 437 };
418 438
@@ -428,6 +448,7 @@
428 <&dmac1 0x4d>, <&dmac1 0x4e>; 448 <&dmac1 0x4d>, <&dmac1 0x4e>;
429 dma-names = "tx", "rx", "tx", "rx"; 449 dma-names = "tx", "rx", "tx", "rx";
430 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 450 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
451 resets = <&cpg 716>;
431 status = "disabled"; 452 status = "disabled";
432 }; 453 };
433 454
@@ -443,6 +464,7 @@
443 <&dmac1 0x3b>, <&dmac1 0x3c>; 464 <&dmac1 0x3b>, <&dmac1 0x3c>;
444 dma-names = "tx", "rx", "tx", "rx"; 465 dma-names = "tx", "rx", "tx", "rx";
445 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 466 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
467 resets = <&cpg 713>;
446 status = "disabled"; 468 status = "disabled";
447 }; 469 };
448 470
@@ -452,6 +474,7 @@
452 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 474 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
453 clocks = <&cpg CPG_MOD 813>; 475 clocks = <&cpg CPG_MOD 813>;
454 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>; 476 power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
477 resets = <&cpg 813>;
455 phy-mode = "rmii"; 478 phy-mode = "rmii";
456 #address-cells = <1>; 479 #address-cells = <1>;
457 #size-cells = <0>; 480 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/r8a7745.dtsi b/arch/arm/boot/dts/r8a7745.dtsi
index 1f65ff68a469..2feb0084bb3b 100644
--- a/arch/arm/boot/dts/r8a7745.dtsi
+++ b/arch/arm/boot/dts/r8a7745.dtsi
@@ -32,9 +32,8 @@
32 next-level-cache = <&L2_CA7>; 32 next-level-cache = <&L2_CA7>;
33 }; 33 };
34 34
35 L2_CA7: cache-controller@0 { 35 L2_CA7: cache-controller-0 {
36 compatible = "cache"; 36 compatible = "cache";
37 reg = <0>;
38 cache-unified; 37 cache-unified;
39 cache-level = <2>; 38 cache-level = <2>;
40 power-domains = <&sysc R8A7745_PD_CA7_SCU>; 39 power-domains = <&sysc R8A7745_PD_CA7_SCU>;
@@ -63,6 +62,7 @@
63 clocks = <&cpg CPG_MOD 408>; 62 clocks = <&cpg CPG_MOD 408>;
64 clock-names = "clk"; 63 clock-names = "clk";
65 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 64 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
65 resets = <&cpg 408>;
66 }; 66 };
67 67
68 irqc: interrupt-controller@e61c0000 { 68 irqc: interrupt-controller@e61c0000 {
@@ -82,6 +82,7 @@
82 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 82 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
83 clocks = <&cpg CPG_MOD 407>; 83 clocks = <&cpg CPG_MOD 407>;
84 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 84 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
85 resets = <&cpg 407>;
85 }; 86 };
86 87
87 timer { 88 timer {
@@ -103,6 +104,7 @@
103 clock-names = "extal", "usb_extal"; 104 clock-names = "extal", "usb_extal";
104 #clock-cells = <2>; 105 #clock-cells = <2>;
105 #power-domain-cells = <0>; 106 #power-domain-cells = <0>;
107 #reset-cells = <1>;
106 }; 108 };
107 109
108 prr: chipid@ff000044 { 110 prr: chipid@ff000044 {
@@ -149,6 +151,7 @@
149 clocks = <&cpg CPG_MOD 219>; 151 clocks = <&cpg CPG_MOD 219>;
150 clock-names = "fck"; 152 clock-names = "fck";
151 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 153 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
154 resets = <&cpg 219>;
152 #dma-cells = <1>; 155 #dma-cells = <1>;
153 dma-channels = <15>; 156 dma-channels = <15>;
154 }; 157 };
@@ -181,6 +184,7 @@
181 clocks = <&cpg CPG_MOD 218>; 184 clocks = <&cpg CPG_MOD 218>;
182 clock-names = "fck"; 185 clock-names = "fck";
183 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 186 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
187 resets = <&cpg 218>;
184 #dma-cells = <1>; 188 #dma-cells = <1>;
185 dma-channels = <15>; 189 dma-channels = <15>;
186 }; 190 };
@@ -196,6 +200,7 @@
196 <&dmac1 0x21>, <&dmac1 0x22>; 200 <&dmac1 0x21>, <&dmac1 0x22>;
197 dma-names = "tx", "rx", "tx", "rx"; 201 dma-names = "tx", "rx", "tx", "rx";
198 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 202 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
203 resets = <&cpg 204>;
199 status = "disabled"; 204 status = "disabled";
200 }; 205 };
201 206
@@ -210,6 +215,7 @@
210 <&dmac1 0x25>, <&dmac1 0x26>; 215 <&dmac1 0x25>, <&dmac1 0x26>;
211 dma-names = "tx", "rx", "tx", "rx"; 216 dma-names = "tx", "rx", "tx", "rx";
212 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 217 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
218 resets = <&cpg 203>;
213 status = "disabled"; 219 status = "disabled";
214 }; 220 };
215 221
@@ -224,6 +230,7 @@
224 <&dmac1 0x27>, <&dmac1 0x28>; 230 <&dmac1 0x27>, <&dmac1 0x28>;
225 dma-names = "tx", "rx", "tx", "rx"; 231 dma-names = "tx", "rx", "tx", "rx";
226 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 232 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
233 resets = <&cpg 202>;
227 status = "disabled"; 234 status = "disabled";
228 }; 235 };
229 236
@@ -238,6 +245,7 @@
238 <&dmac1 0x1b>, <&dmac1 0x1c>; 245 <&dmac1 0x1b>, <&dmac1 0x1c>;
239 dma-names = "tx", "rx", "tx", "rx"; 246 dma-names = "tx", "rx", "tx", "rx";
240 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 247 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
248 resets = <&cpg 1106>;
241 status = "disabled"; 249 status = "disabled";
242 }; 250 };
243 251
@@ -252,6 +260,7 @@
252 <&dmac1 0x1f>, <&dmac1 0x20>; 260 <&dmac1 0x1f>, <&dmac1 0x20>;
253 dma-names = "tx", "rx", "tx", "rx"; 261 dma-names = "tx", "rx", "tx", "rx";
254 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 262 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
263 resets = <&cpg 1107>;
255 status = "disabled"; 264 status = "disabled";
256 }; 265 };
257 266
@@ -266,6 +275,7 @@
266 <&dmac1 0x23>, <&dmac1 0x24>; 275 <&dmac1 0x23>, <&dmac1 0x24>;
267 dma-names = "tx", "rx", "tx", "rx"; 276 dma-names = "tx", "rx", "tx", "rx";
268 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 277 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
278 resets = <&cpg 1108>;
269 status = "disabled"; 279 status = "disabled";
270 }; 280 };
271 281
@@ -277,9 +287,10 @@
277 clocks = <&cpg CPG_MOD 206>; 287 clocks = <&cpg CPG_MOD 206>;
278 clock-names = "fck"; 288 clock-names = "fck";
279 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>, 289 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
280 <&dmac1 0x3d>, <&dmac1 0x3e>; 290 <&dmac1 0x3d>, <&dmac1 0x3e>;
281 dma-names = "tx", "rx", "tx", "rx"; 291 dma-names = "tx", "rx", "tx", "rx";
282 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 292 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
293 resets = <&cpg 206>;
283 status = "disabled"; 294 status = "disabled";
284 }; 295 };
285 296
@@ -294,6 +305,7 @@
294 <&dmac1 0x19>, <&dmac1 0x1a>; 305 <&dmac1 0x19>, <&dmac1 0x1a>;
295 dma-names = "tx", "rx", "tx", "rx"; 306 dma-names = "tx", "rx", "tx", "rx";
296 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 307 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
308 resets = <&cpg 207>;
297 status = "disabled"; 309 status = "disabled";
298 }; 310 };
299 311
@@ -308,6 +320,7 @@
308 <&dmac1 0x1d>, <&dmac1 0x1e>; 320 <&dmac1 0x1d>, <&dmac1 0x1e>;
309 dma-names = "tx", "rx", "tx", "rx"; 321 dma-names = "tx", "rx", "tx", "rx";
310 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 322 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
323 resets = <&cpg 216>;
311 status = "disabled"; 324 status = "disabled";
312 }; 325 };
313 326
@@ -323,6 +336,7 @@
323 <&dmac1 0x29>, <&dmac1 0x2a>; 336 <&dmac1 0x29>, <&dmac1 0x2a>;
324 dma-names = "tx", "rx", "tx", "rx"; 337 dma-names = "tx", "rx", "tx", "rx";
325 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 338 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
339 resets = <&cpg 721>;
326 status = "disabled"; 340 status = "disabled";
327 }; 341 };
328 342
@@ -338,6 +352,7 @@
338 <&dmac1 0x2d>, <&dmac1 0x2e>; 352 <&dmac1 0x2d>, <&dmac1 0x2e>;
339 dma-names = "tx", "rx", "tx", "rx"; 353 dma-names = "tx", "rx", "tx", "rx";
340 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 354 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
355 resets = <&cpg 720>;
341 status = "disabled"; 356 status = "disabled";
342 }; 357 };
343 358
@@ -353,6 +368,7 @@
353 <&dmac1 0x2b>, <&dmac1 0x2c>; 368 <&dmac1 0x2b>, <&dmac1 0x2c>;
354 dma-names = "tx", "rx", "tx", "rx"; 369 dma-names = "tx", "rx", "tx", "rx";
355 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 370 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
371 resets = <&cpg 719>;
356 status = "disabled"; 372 status = "disabled";
357 }; 373 };
358 374
@@ -368,6 +384,7 @@
368 <&dmac1 0x2f>, <&dmac1 0x30>; 384 <&dmac1 0x2f>, <&dmac1 0x30>;
369 dma-names = "tx", "rx", "tx", "rx"; 385 dma-names = "tx", "rx", "tx", "rx";
370 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 386 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
387 resets = <&cpg 718>;
371 status = "disabled"; 388 status = "disabled";
372 }; 389 };
373 390
@@ -383,6 +400,7 @@
383 <&dmac1 0xfb>, <&dmac1 0xfc>; 400 <&dmac1 0xfb>, <&dmac1 0xfc>;
384 dma-names = "tx", "rx", "tx", "rx"; 401 dma-names = "tx", "rx", "tx", "rx";
385 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 402 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
403 resets = <&cpg 715>;
386 status = "disabled"; 404 status = "disabled";
387 }; 405 };
388 406
@@ -398,6 +416,7 @@
398 <&dmac1 0xfd>, <&dmac1 0xfe>; 416 <&dmac1 0xfd>, <&dmac1 0xfe>;
399 dma-names = "tx", "rx", "tx", "rx"; 417 dma-names = "tx", "rx", "tx", "rx";
400 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 418 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
419 resets = <&cpg 714>;
401 status = "disabled"; 420 status = "disabled";
402 }; 421 };
403 422
@@ -413,6 +432,7 @@
413 <&dmac1 0x39>, <&dmac1 0x3a>; 432 <&dmac1 0x39>, <&dmac1 0x3a>;
414 dma-names = "tx", "rx", "tx", "rx"; 433 dma-names = "tx", "rx", "tx", "rx";
415 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 434 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
435 resets = <&cpg 717>;
416 status = "disabled"; 436 status = "disabled";
417 }; 437 };
418 438
@@ -428,6 +448,7 @@
428 <&dmac1 0x4d>, <&dmac1 0x4e>; 448 <&dmac1 0x4d>, <&dmac1 0x4e>;
429 dma-names = "tx", "rx", "tx", "rx"; 449 dma-names = "tx", "rx", "tx", "rx";
430 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 450 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
451 resets = <&cpg 716>;
431 status = "disabled"; 452 status = "disabled";
432 }; 453 };
433 454
@@ -443,6 +464,7 @@
443 <&dmac1 0x3b>, <&dmac1 0x3c>; 464 <&dmac1 0x3b>, <&dmac1 0x3c>;
444 dma-names = "tx", "rx", "tx", "rx"; 465 dma-names = "tx", "rx", "tx", "rx";
445 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 466 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
467 resets = <&cpg 713>;
446 status = "disabled"; 468 status = "disabled";
447 }; 469 };
448 470
@@ -452,6 +474,7 @@
452 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>; 474 interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
453 clocks = <&cpg CPG_MOD 813>; 475 clocks = <&cpg CPG_MOD 813>;
454 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>; 476 power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
477 resets = <&cpg 813>;
455 phy-mode = "rmii"; 478 phy-mode = "rmii";
456 #address-cells = <1>; 479 #address-cells = <1>;
457 #size-cells = <0>; 480 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts
index 211d239d9041..c79d55eb43c5 100644
--- a/arch/arm/boot/dts/r8a7778-bockw.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw.dts
@@ -229,5 +229,4 @@
229 229
230&scif_clk { 230&scif_clk {
231 clock-frequency = <14745600>; 231 clock-frequency = <14745600>;
232 status = "okay";
233}; 232};
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts
index 89c5b24a3d03..9412a86f9b30 100644
--- a/arch/arm/boot/dts/r8a7779-marzen.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -236,7 +236,6 @@
236 236
237&scif_clk { 237&scif_clk {
238 clock-frequency = <14745600>; 238 clock-frequency = <14745600>;
239 status = "okay";
240}; 239};
241 240
242&sdhi0 { 241&sdhi0 {
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index bd512c86e852..ba100a6f67ca 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -581,7 +581,6 @@
581 581
582&scif_clk { 582&scif_clk {
583 clock-frequency = <14745600>; 583 clock-frequency = <14745600>;
584 status = "okay";
585}; 584};
586 585
587&msiof1 { 586&msiof1 {
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 6d10450de6d7..99269aaca6fc 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -129,17 +129,15 @@
129 next-level-cache = <&L2_CA7>; 129 next-level-cache = <&L2_CA7>;
130 }; 130 };
131 131
132 L2_CA15: cache-controller@0 { 132 L2_CA15: cache-controller-0 {
133 compatible = "cache"; 133 compatible = "cache";
134 reg = <0>;
135 power-domains = <&sysc R8A7790_PD_CA15_SCU>; 134 power-domains = <&sysc R8A7790_PD_CA15_SCU>;
136 cache-unified; 135 cache-unified;
137 cache-level = <2>; 136 cache-level = <2>;
138 }; 137 };
139 138
140 L2_CA7: cache-controller@100 { 139 L2_CA7: cache-controller-1 {
141 compatible = "cache"; 140 compatible = "cache";
142 reg = <0x100>;
143 power-domains = <&sysc R8A7790_PD_CA7_SCU>; 141 power-domains = <&sysc R8A7790_PD_CA7_SCU>;
144 cache-unified; 142 cache-unified;
145 cache-level = <2>; 143 cache-level = <2>;
@@ -187,6 +185,9 @@
187 <0 0xf1004000 0 0x2000>, 185 <0 0xf1004000 0 0x2000>,
188 <0 0xf1006000 0 0x2000>; 186 <0 0xf1006000 0 0x2000>;
189 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 187 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
188 clocks = <&mstp4_clks R8A7790_CLK_INTC_SYS>;
189 clock-names = "clk";
190 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
190 }; 191 };
191 192
192 gpio0: gpio@e6050000 { 193 gpio0: gpio@e6050000 {
@@ -1100,7 +1101,7 @@
1100 }; 1101 };
1101 1102
1102 /* External CAN clock */ 1103 /* External CAN clock */
1103 can_clk: can_clk { 1104 can_clk: can {
1104 compatible = "fixed-clock"; 1105 compatible = "fixed-clock";
1105 #clock-cells = <0>; 1106 #clock-cells = <0>;
1106 /* This value must be overridden by the board. */ 1107 /* This value must be overridden by the board. */
@@ -1366,10 +1367,10 @@
1366 mstp4_clks: mstp4_clks@e6150140 { 1367 mstp4_clks: mstp4_clks@e6150140 {
1367 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; 1368 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1368 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 1369 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1369 clocks = <&cp_clk>; 1370 clocks = <&cp_clk>, <&zs_clk>;
1370 #clock-cells = <1>; 1371 #clock-cells = <1>;
1371 clock-indices = <R8A7790_CLK_IRQC>; 1372 clock-indices = <R8A7790_CLK_IRQC R8A7790_CLK_INTC_SYS>;
1372 clock-output-names = "irqc"; 1373 clock-output-names = "irqc", "intc-sys";
1373 }; 1374 };
1374 mstp5_clks: mstp5_clks@e6150144 { 1375 mstp5_clks: mstp5_clks@e6150144 {
1375 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; 1376 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1442,8 +1443,11 @@
1442 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; 1443 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1443 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; 1444 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1444 clocks = <&p_clk>, 1445 clocks = <&p_clk>,
1445 <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1446 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1446 <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1447 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1448 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1449 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1450 <&mstp10_clks R8A7790_CLK_SSI_ALL>, <&mstp10_clks R8A7790_CLK_SSI_ALL>,
1447 <&p_clk>, 1451 <&p_clk>,
1448 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, 1452 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1449 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, 1453 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
@@ -1740,11 +1744,11 @@
1740 1744
1741 rcar_sound,dvc { 1745 rcar_sound,dvc {
1742 dvc0: dvc-0 { 1746 dvc0: dvc-0 {
1743 dmas = <&audma0 0xbc>; 1747 dmas = <&audma1 0xbc>;
1744 dma-names = "tx"; 1748 dma-names = "tx";
1745 }; 1749 };
1746 dvc1: dvc-1 { 1750 dvc1: dvc-1 {
1747 dmas = <&audma0 0xbe>; 1751 dmas = <&audma1 0xbe>;
1748 dma-names = "tx"; 1752 dma-names = "tx";
1749 }; 1753 };
1750 }; 1754 };
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index 5405d337d744..001e6116c47c 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -292,7 +292,7 @@
292 x2_clk: x2-clock { 292 x2_clk: x2-clock {
293 compatible = "fixed-clock"; 293 compatible = "fixed-clock";
294 #clock-cells = <0>; 294 #clock-cells = <0>;
295 clock-frequency = <148500000>; 295 clock-frequency = <74250000>;
296 }; 296 };
297 297
298 x13_clk: x13-clock { 298 x13_clk: x13-clock {
@@ -516,7 +516,6 @@
516 516
517&scif_clk { 517&scif_clk {
518 clock-frequency = <14745600>; 518 clock-frequency = <14745600>;
519 status = "okay";
520}; 519};
521 520
522&sdhi0 { 521&sdhi0 {
@@ -767,7 +766,6 @@
767 766
768&pcie_bus_clk { 767&pcie_bus_clk {
769 clock-frequency = <100000000>; 768 clock-frequency = <100000000>;
770 status = "okay";
771}; 769};
772 770
773&pciec { 771&pciec {
diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts
index 6761d11d3f9e..95da5cb9d37a 100644
--- a/arch/arm/boot/dts/r8a7791-porter.dts
+++ b/arch/arm/boot/dts/r8a7791-porter.dts
@@ -226,7 +226,7 @@
226 226
227 phy-handle = <&phy1>; 227 phy-handle = <&phy1>;
228 renesas,ether-link-active-low; 228 renesas,ether-link-active-low;
229 status = "ok"; 229 status = "okay";
230 230
231 phy1: ethernet-phy@1 { 231 phy1: ethernet-phy@1 {
232 reg = <1>; 232 reg = <1>;
@@ -359,7 +359,7 @@
359 359
360/* composite video input */ 360/* composite video input */
361&vin0 { 361&vin0 {
362 status = "ok"; 362 status = "okay";
363 pinctrl-0 = <&vin0_pins>; 363 pinctrl-0 = <&vin0_pins>;
364 pinctrl-names = "default"; 364 pinctrl-names = "default";
365 365
@@ -401,7 +401,6 @@
401 401
402&pcie_bus_clk { 402&pcie_bus_clk {
403 clock-frequency = <100000000>; 403 clock-frequency = <100000000>;
404 status = "okay";
405}; 404};
406 405
407&pciec { 406&pciec {
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 9f9e48511836..4d0c2ce59900 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -74,9 +74,8 @@
74 next-level-cache = <&L2_CA15>; 74 next-level-cache = <&L2_CA15>;
75 }; 75 };
76 76
77 L2_CA15: cache-controller@0 { 77 L2_CA15: cache-controller-0 {
78 compatible = "cache"; 78 compatible = "cache";
79 reg = <0>;
80 power-domains = <&sysc R8A7791_PD_CA15_SCU>; 79 power-domains = <&sysc R8A7791_PD_CA15_SCU>;
81 cache-unified; 80 cache-unified;
82 cache-level = <2>; 81 cache-level = <2>;
@@ -118,6 +117,9 @@
118 <0 0xf1004000 0 0x2000>, 117 <0 0xf1004000 0 0x2000>,
119 <0 0xf1006000 0 0x2000>; 118 <0 0xf1006000 0 0x2000>;
120 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 119 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
120 clocks = <&mstp4_clks R8A7791_CLK_INTC_SYS>;
121 clock-names = "clk";
122 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
121 }; 123 };
122 124
123 gpio0: gpio@e6050000 { 125 gpio0: gpio@e6050000 {
@@ -1124,7 +1126,7 @@
1124 }; 1126 };
1125 1127
1126 /* External CAN clock */ 1128 /* External CAN clock */
1127 can_clk: can_clk { 1129 can_clk: can {
1128 compatible = "fixed-clock"; 1130 compatible = "fixed-clock";
1129 #clock-cells = <0>; 1131 #clock-cells = <0>;
1130 /* This value must be overridden by the board. */ 1132 /* This value must be overridden by the board. */
@@ -1366,10 +1368,10 @@
1366 mstp4_clks: mstp4_clks@e6150140 { 1368 mstp4_clks: mstp4_clks@e6150140 {
1367 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; 1369 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1368 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 1370 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1369 clocks = <&cp_clk>; 1371 clocks = <&cp_clk>, <&zs_clk>;
1370 #clock-cells = <1>; 1372 #clock-cells = <1>;
1371 clock-indices = <R8A7791_CLK_IRQC>; 1373 clock-indices = <R8A7791_CLK_IRQC R8A7791_CLK_INTC_SYS>;
1372 clock-output-names = "irqc"; 1374 clock-output-names = "irqc", "intc-sys";
1373 }; 1375 };
1374 mstp5_clks: mstp5_clks@e6150144 { 1376 mstp5_clks: mstp5_clks@e6150144 {
1375 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; 1377 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1445,8 +1447,11 @@
1445 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks"; 1447 compatible = "renesas,r8a7791-mstp-clocks", "renesas,cpg-mstp-clocks";
1446 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; 1448 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1447 clocks = <&p_clk>, 1449 clocks = <&p_clk>,
1448 <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1450 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1449 <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1451 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1452 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1453 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1454 <&mstp10_clks R8A7791_CLK_SSI_ALL>, <&mstp10_clks R8A7791_CLK_SSI_ALL>,
1450 <&p_clk>, 1455 <&p_clk>,
1451 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, 1456 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1452 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, 1457 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
@@ -1777,11 +1782,11 @@
1777 1782
1778 rcar_sound,dvc { 1783 rcar_sound,dvc {
1779 dvc0: dvc-0 { 1784 dvc0: dvc-0 {
1780 dmas = <&audma0 0xbc>; 1785 dmas = <&audma1 0xbc>;
1781 dma-names = "tx"; 1786 dma-names = "tx";
1782 }; 1787 };
1783 dvc1: dvc-1 { 1788 dvc1: dvc-1 {
1784 dmas = <&audma0 0xbe>; 1789 dmas = <&audma1 0xbe>;
1785 dma-names = "tx"; 1790 dma-names = "tx";
1786 }; 1791 };
1787 }; 1792 };
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index 8ecfda7a004e..0efecb232ee5 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -46,7 +46,7 @@
46 compatible = "arm,cortex-a15"; 46 compatible = "arm,cortex-a15";
47 reg = <0>; 47 reg = <0>;
48 clock-frequency = <1000000000>; 48 clock-frequency = <1000000000>;
49 clocks = <&cpg_clocks R8A7792_CLK_Z>; 49 clocks = <&z_clk>;
50 power-domains = <&sysc R8A7792_PD_CA15_CPU0>; 50 power-domains = <&sysc R8A7792_PD_CA15_CPU0>;
51 next-level-cache = <&L2_CA15>; 51 next-level-cache = <&L2_CA15>;
52 }; 52 };
@@ -60,9 +60,8 @@
60 next-level-cache = <&L2_CA15>; 60 next-level-cache = <&L2_CA15>;
61 }; 61 };
62 62
63 L2_CA15: cache-controller@0 { 63 L2_CA15: cache-controller-0 {
64 compatible = "cache"; 64 compatible = "cache";
65 reg = <0>;
66 cache-unified; 65 cache-unified;
67 cache-level = <2>; 66 cache-level = <2>;
68 power-domains = <&sysc R8A7792_PD_CA15_SCU>; 67 power-domains = <&sysc R8A7792_PD_CA15_SCU>;
@@ -93,6 +92,9 @@
93 <0 0xf1006000 0 0x2000>; 92 <0 0xf1006000 0 0x2000>;
94 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | 93 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
95 IRQ_TYPE_LEVEL_HIGH)>; 94 IRQ_TYPE_LEVEL_HIGH)>;
95 clocks = <&mstp4_clks R8A7792_CLK_INTC_SYS>;
96 clock-names = "clk";
97 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
96 }; 98 };
97 99
98 irqc: interrupt-controller@e61c0000 { 100 irqc: interrupt-controller@e61c0000 {
@@ -764,7 +766,7 @@
764 clocks = <&extal_clk>; 766 clocks = <&extal_clk>;
765 #clock-cells = <1>; 767 #clock-cells = <1>;
766 clock-output-names = "main", "pll0", "pll1", "pll3", 768 clock-output-names = "main", "pll0", "pll1", "pll3",
767 "lb", "qspi", "z"; 769 "lb", "qspi";
768 #power-domain-cells = <0>; 770 #power-domain-cells = <0>;
769 }; 771 };
770 772
@@ -776,6 +778,13 @@
776 clock-div = <2>; 778 clock-div = <2>;
777 clock-mult = <1>; 779 clock-mult = <1>;
778 }; 780 };
781 z_clk: z {
782 compatible = "fixed-factor-clock";
783 clocks = <&cpg_clocks R8A7792_CLK_PLL0>;
784 #clock-cells = <0>;
785 clock-div = <1>;
786 clock-mult = <1>;
787 };
779 zx_clk: zx { 788 zx_clk: zx {
780 compatible = "fixed-factor-clock"; 789 compatible = "fixed-factor-clock";
781 clocks = <&cpg_clocks R8A7792_CLK_PLL1>; 790 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
@@ -896,10 +905,12 @@
896 compatible = "renesas,r8a7792-mstp-clocks", 905 compatible = "renesas,r8a7792-mstp-clocks",
897 "renesas,cpg-mstp-clocks"; 906 "renesas,cpg-mstp-clocks";
898 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 907 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
899 clocks = <&cp_clk>; 908 clocks = <&cp_clk>, <&zs_clk>;
900 #clock-cells = <1>; 909 #clock-cells = <1>;
901 clock-indices = <R8A7792_CLK_IRQC>; 910 clock-indices = <
902 clock-output-names = "irqc"; 911 R8A7792_CLK_IRQC R8A7792_CLK_INTC_SYS
912 >;
913 clock-output-names = "irqc", "intc-sys";
903 }; 914 };
904 mstp7_clks: mstp7_clks@e615014c { 915 mstp7_clks: mstp7_clks@e615014c {
905 compatible = "renesas,r8a7792-mstp-clocks", 916 compatible = "renesas,r8a7792-mstp-clocks",
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 92fff07c5e2b..806c93f6ae8b 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -412,7 +412,6 @@
412 412
413&scif_clk { 413&scif_clk {
414 clock-frequency = <14745600>; 414 clock-frequency = <14745600>;
415 status = "okay";
416}; 415};
417 416
418&sdhi0 { 417&sdhi0 {
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 48ce21c5e8db..4de6041d61f9 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -65,9 +65,8 @@
65 power-domains = <&sysc R8A7793_PD_CA15_CPU1>; 65 power-domains = <&sysc R8A7793_PD_CA15_CPU1>;
66 }; 66 };
67 67
68 L2_CA15: cache-controller@0 { 68 L2_CA15: cache-controller-0 {
69 compatible = "cache"; 69 compatible = "cache";
70 reg = <0>;
71 power-domains = <&sysc R8A7793_PD_CA15_SCU>; 70 power-domains = <&sysc R8A7793_PD_CA15_SCU>;
72 cache-unified; 71 cache-unified;
73 cache-level = <2>; 72 cache-level = <2>;
@@ -109,6 +108,9 @@
109 <0 0xf1004000 0 0x2000>, 108 <0 0xf1004000 0 0x2000>,
110 <0 0xf1006000 0 0x2000>; 109 <0 0xf1006000 0 0x2000>;
111 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 110 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
111 clocks = <&mstp4_clks R8A7793_CLK_INTC_SYS>;
112 clock-names = "clk";
113 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
112 }; 114 };
113 115
114 gpio0: gpio@e6050000 { 116 gpio0: gpio@e6050000 {
@@ -1179,10 +1181,12 @@
1179 mstp4_clks: mstp4_clks@e6150140 { 1181 mstp4_clks: mstp4_clks@e6150140 {
1180 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks"; 1182 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1181 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 1183 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1182 clocks = <&cp_clk>; 1184 clocks = <&cp_clk>, <&zs_clk>;
1183 #clock-cells = <1>; 1185 #clock-cells = <1>;
1184 clock-indices = <R8A7793_CLK_IRQC>; 1186 clock-indices = <
1185 clock-output-names = "irqc"; 1187 R8A7793_CLK_IRQC R8A7793_CLK_INTC_SYS
1188 >;
1189 clock-output-names = "irqc", "intc-sys";
1186 }; 1190 };
1187 mstp5_clks: mstp5_clks@e6150144 { 1191 mstp5_clks: mstp5_clks@e6150144 {
1188 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks"; 1192 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1265,8 +1269,11 @@
1265 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks"; 1269 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
1266 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>; 1270 reg = <0 0xe6150998 0 4>, <0 0xe61509a8 0 4>;
1267 clocks = <&p_clk>, 1271 clocks = <&p_clk>,
1268 <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1272 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1269 <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1273 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1274 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1275 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1276 <&mstp10_clks R8A7793_CLK_SSI_ALL>, <&mstp10_clks R8A7793_CLK_SSI_ALL>,
1270 <&p_clk>, 1277 <&p_clk>,
1271 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>, 1278 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
1272 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>, 1279 <&mstp10_clks R8A7793_CLK_SCU_ALL>, <&mstp10_clks R8A7793_CLK_SCU_ALL>,
@@ -1426,11 +1433,11 @@
1426 1433
1427 rcar_sound,dvc { 1434 rcar_sound,dvc {
1428 dvc0: dvc-0 { 1435 dvc0: dvc-0 {
1429 dmas = <&audma0 0xbc>; 1436 dmas = <&audma1 0xbc>;
1430 dma-names = "tx"; 1437 dma-names = "tx";
1431 }; 1438 };
1432 dvc1: dvc-1 { 1439 dvc1: dvc-1 {
1433 dmas = <&audma0 0xbe>; 1440 dmas = <&audma1 0xbe>;
1434 dma-names = "tx"; 1441 dma-names = "tx";
1435 }; 1442 };
1436 }; 1443 };
diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts
index 569e3f0e97a5..f1eea13cdf44 100644
--- a/arch/arm/boot/dts/r8a7794-alt.dts
+++ b/arch/arm/boot/dts/r8a7794-alt.dts
@@ -168,7 +168,7 @@
168 status = "okay"; 168 status = "okay";
169 169
170 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 170 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
171 <&mstp7_clks R8A7794_CLK_DU0>, 171 <&mstp7_clks R8A7794_CLK_DU1>,
172 <&x13_clk>, <&x2_clk>; 172 <&x13_clk>, <&x2_clk>;
173 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 173 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
174 174
@@ -375,7 +375,6 @@
375 375
376&scif_clk { 376&scif_clk {
377 clock-frequency = <14745600>; 377 clock-frequency = <14745600>;
378 status = "okay";
379}; 378};
380 379
381&qspi { 380&qspi {
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
index cf880ac06f4b..4cb5278d104d 100644
--- a/arch/arm/boot/dts/r8a7794-silk.dts
+++ b/arch/arm/boot/dts/r8a7794-silk.dts
@@ -248,7 +248,6 @@
248 248
249&scif_clk { 249&scif_clk {
250 clock-frequency = <14745600>; 250 clock-frequency = <14745600>;
251 status = "okay";
252}; 251};
253 252
254&ether { 253&ether {
@@ -425,7 +424,7 @@
425 status = "okay"; 424 status = "okay";
426 425
427 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 426 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
428 <&mstp7_clks R8A7794_CLK_DU0>, 427 <&mstp7_clks R8A7794_CLK_DU1>,
429 <&x2_clk>, <&x3_clk>; 428 <&x2_clk>, <&x3_clk>;
430 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1"; 429 clock-names = "du.0", "du.1", "dclkin.0", "dclkin.1";
431 430
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 319c1069b7ee..a19b884fb258 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -43,6 +43,7 @@
43 compatible = "arm,cortex-a7"; 43 compatible = "arm,cortex-a7";
44 reg = <0>; 44 reg = <0>;
45 clock-frequency = <1000000000>; 45 clock-frequency = <1000000000>;
46 clocks = <&z2_clk>;
46 power-domains = <&sysc R8A7794_PD_CA7_CPU0>; 47 power-domains = <&sysc R8A7794_PD_CA7_CPU0>;
47 next-level-cache = <&L2_CA7>; 48 next-level-cache = <&L2_CA7>;
48 }; 49 };
@@ -56,9 +57,8 @@
56 next-level-cache = <&L2_CA7>; 57 next-level-cache = <&L2_CA7>;
57 }; 58 };
58 59
59 L2_CA7: cache-controller@0 { 60 L2_CA7: cache-controller-0 {
60 compatible = "cache"; 61 compatible = "cache";
61 reg = <0>;
62 power-domains = <&sysc R8A7794_PD_CA7_SCU>; 62 power-domains = <&sysc R8A7794_PD_CA7_SCU>;
63 cache-unified; 63 cache-unified;
64 cache-level = <2>; 64 cache-level = <2>;
@@ -75,6 +75,9 @@
75 <0 0xf1004000 0 0x2000>, 75 <0 0xf1004000 0 0x2000>,
76 <0 0xf1006000 0 0x2000>; 76 <0 0xf1006000 0 0x2000>;
77 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 77 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
78 clocks = <&mstp4_clks R8A7794_CLK_INTC_SYS>;
79 clock-names = "clk";
80 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
78 }; 81 };
79 82
80 gpio0: gpio@e6050000 { 83 gpio0: gpio@e6050000 {
@@ -923,7 +926,7 @@
923 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 926 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
924 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 927 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
925 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 928 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
926 <&mstp7_clks R8A7794_CLK_DU0>; 929 <&mstp7_clks R8A7794_CLK_DU1>;
927 clock-names = "du.0", "du.1"; 930 clock-names = "du.0", "du.1";
928 status = "disabled"; 931 status = "disabled";
929 932
@@ -1062,6 +1065,13 @@
1062 clock-div = <2>; 1065 clock-div = <2>;
1063 clock-mult = <1>; 1066 clock-mult = <1>;
1064 }; 1067 };
1068 z2_clk: z2 {
1069 compatible = "fixed-factor-clock";
1070 clocks = <&cpg_clocks R8A7794_CLK_PLL0>;
1071 #clock-cells = <0>;
1072 clock-div = <1>;
1073 clock-mult = <1>;
1074 };
1065 zg_clk: zg { 1075 zg_clk: zg {
1066 compatible = "fixed-factor-clock"; 1076 compatible = "fixed-factor-clock";
1067 clocks = <&cpg_clocks R8A7794_CLK_PLL1>; 1077 clocks = <&cpg_clocks R8A7794_CLK_PLL1>;
@@ -1248,10 +1258,10 @@
1248 mstp4_clks: mstp4_clks@e6150140 { 1258 mstp4_clks: mstp4_clks@e6150140 {
1249 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; 1259 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
1250 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>; 1260 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
1251 clocks = <&cp_clk>; 1261 clocks = <&cp_clk>, <&zs_clk>;
1252 #clock-cells = <1>; 1262 #clock-cells = <1>;
1253 clock-indices = <R8A7794_CLK_IRQC>; 1263 clock-indices = <R8A7794_CLK_IRQC R8A7794_CLK_INTC_SYS>;
1254 clock-output-names = "irqc"; 1264 clock-output-names = "irqc", "intc-sys";
1255 }; 1265 };
1256 mstp5_clks: mstp5_clks@e6150144 { 1266 mstp5_clks: mstp5_clks@e6150144 {
1257 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; 1267 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1268,19 +1278,21 @@
1268 clocks = <&mp_clk>, <&hp_clk>, 1278 clocks = <&mp_clk>, <&hp_clk>,
1269 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>, 1279 <&zs_clk>, <&p_clk>, <&p_clk>, <&zs_clk>,
1270 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>, 1280 <&zs_clk>, <&p_clk>, <&p_clk>, <&p_clk>, <&p_clk>,
1271 <&zx_clk>; 1281 <&zx_clk>, <&zx_clk>;
1272 #clock-cells = <1>; 1282 #clock-cells = <1>;
1273 clock-indices = < 1283 clock-indices = <
1274 R8A7794_CLK_EHCI R8A7794_CLK_HSUSB 1284 R8A7794_CLK_EHCI R8A7794_CLK_HSUSB
1275 R8A7794_CLK_HSCIF2 R8A7794_CLK_SCIF5 1285 R8A7794_CLK_HSCIF2 R8A7794_CLK_SCIF5
1276 R8A7794_CLK_SCIF4 R8A7794_CLK_HSCIF1 R8A7794_CLK_HSCIF0 1286 R8A7794_CLK_SCIF4 R8A7794_CLK_HSCIF1 R8A7794_CLK_HSCIF0
1277 R8A7794_CLK_SCIF3 R8A7794_CLK_SCIF2 R8A7794_CLK_SCIF1 1287 R8A7794_CLK_SCIF3 R8A7794_CLK_SCIF2 R8A7794_CLK_SCIF1
1278 R8A7794_CLK_SCIF0 R8A7794_CLK_DU0 1288 R8A7794_CLK_SCIF0
1289 R8A7794_CLK_DU1 R8A7794_CLK_DU0
1279 >; 1290 >;
1280 clock-output-names = 1291 clock-output-names =
1281 "ehci", "hsusb", 1292 "ehci", "hsusb",
1282 "hscif2", "scif5", "scif4", "hscif1", "hscif0", 1293 "hscif2", "scif5", "scif4", "hscif1", "hscif0",
1283 "scif3", "scif2", "scif1", "scif0", "du0"; 1294 "scif3", "scif2", "scif1", "scif0",
1295 "du1", "du0";
1284 }; 1296 };
1285 mstp8_clks: mstp8_clks@e6150990 { 1297 mstp8_clks: mstp8_clks@e6150990 {
1286 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks"; 1298 compatible = "renesas,r8a7794-mstp-clocks", "renesas,cpg-mstp-clocks";
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
index ff9b90bfaefd..ec91325d3b6e 100644
--- a/arch/arm/boot/dts/rk3036.dtsi
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -250,6 +250,8 @@
250 clock-names = "biu", "ciu"; 250 clock-names = "biu", "ciu";
251 fifo-depth = <0x100>; 251 fifo-depth = <0x100>;
252 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 252 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
253 resets = <&cru SRST_MMC0>;
254 reset-names = "reset";
253 status = "disabled"; 255 status = "disabled";
254 }; 256 };
255 257
@@ -262,6 +264,8 @@
262 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample"; 264 clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
263 fifo-depth = <0x100>; 265 fifo-depth = <0x100>;
264 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 266 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
267 resets = <&cru SRST_SDIO>;
268 reset-names = "reset";
265 status = "disabled"; 269 status = "disabled";
266 }; 270 };
267 271
@@ -286,6 +290,8 @@
286 num-slots = <1>; 290 num-slots = <1>;
287 pinctrl-names = "default"; 291 pinctrl-names = "default";
288 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 292 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
293 resets = <&cru SRST_EMMC>;
294 reset-names = "reset";
289 status = "disabled"; 295 status = "disabled";
290 }; 296 };
291 297
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 1aff4ad22fc4..1399bc04ea77 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -545,12 +545,12 @@
545}; 545};
546 546
547&global_timer { 547&global_timer {
548 interrupts = <GIC_PPI 11 0xf04>; 548 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
549 status = "disabled"; 549 status = "disabled";
550}; 550};
551 551
552&local_timer { 552&local_timer {
553 interrupts = <GIC_PPI 13 0xf04>; 553 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
554}; 554};
555 555
556&i2c0 { 556&i2c0 {
diff --git a/arch/arm/boot/dts/rk322x.dtsi b/arch/arm/boot/dts/rk322x.dtsi
index 641607d9ad29..48a0c1cf4301 100644
--- a/arch/arm/boot/dts/rk322x.dtsi
+++ b/arch/arm/boot/dts/rk322x.dtsi
@@ -414,6 +414,8 @@
414 fifo-depth = <0x100>; 414 fifo-depth = <0x100>;
415 pinctrl-names = "default"; 415 pinctrl-names = "default";
416 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; 416 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
417 resets = <&cru SRST_EMMC>;
418 reset-names = "reset";
417 status = "disabled"; 419 status = "disabled";
418 }; 420 };
419 421
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
index 21326f3e8564..30e93f694ae8 100644
--- a/arch/arm/boot/dts/rk3288-miqi.dts
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
@@ -68,11 +68,9 @@
68 compatible = "gpio-leds"; 68 compatible = "gpio-leds";
69 69
70 work { 70 work {
71 gpios = <&gpio7 RK_PA4 GPIO_ACTIVE_LOW>; 71 gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
72 label = "miqi:green:user"; 72 label = "miqi:green:user";
73 linux,default-trigger = "default-on"; 73 linux,default-trigger = "timer";
74 pinctrl-names = "default";
75 pinctrl-0 = <&led_ctl>;
76 }; 74 };
77 }; 75 };
78 76
@@ -363,12 +361,6 @@
363 }; 361 };
364 }; 362 };
365 363
366 leds {
367 led_ctl: led-ctl {
368 rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
369 };
370 };
371
372 sdmmc { 364 sdmmc {
373 /* 365 /*
374 * Default drive strength isn't enough to achieve even 366 * Default drive strength isn't enough to achieve even
diff --git a/arch/arm/boot/dts/rk3288-phycore-rdk.dts b/arch/arm/boot/dts/rk3288-phycore-rdk.dts
new file mode 100644
index 000000000000..3dda79579b51
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-phycore-rdk.dts
@@ -0,0 +1,298 @@
1/*
2 * Device tree file for Phytec PCM-947 carrier board
3 * Copyright (C) 2017 PHYTEC Messtechnik GmbH
4 * Author: Wadim Egorov <w.egorov@phytec.de>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46
47#include <dt-bindings/input/input.h>
48#include <dt-bindings/leds/leds-pca9532.h>
49#include "rk3288-phycore-som.dtsi"
50
51/ {
52 model = "Phytec RK3288 PCM-947";
53 compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
54
55 user_buttons: user-buttons {
56 compatible = "gpio-keys";
57 pinctrl-names = "default";
58 pinctrl-0 = <&user_button_pins>;
59
60 button@0 {
61 label = "home";
62 linux,code = <KEY_HOME>;
63 gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
64 wakeup-source;
65 };
66
67 button@1 {
68 label = "menu";
69 linux,code = <KEY_MENU>;
70 gpios = <&gpio8 3 GPIO_ACTIVE_HIGH>;
71 wakeup-source;
72 };
73 };
74
75 vcc_host0_5v: usb-host0-regulator {
76 compatible = "regulator-fixed";
77 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
78 pinctrl-names = "default";
79 pinctrl-0 = <&host0_vbus_drv>;
80 regulator-name = "vcc_host0_5v";
81 regulator-min-microvolt = <5000000>;
82 regulator-max-microvolt = <5000000>;
83 regulator-always-on;
84 vin-supply = <&vdd_in_otg_out>;
85 };
86
87 vcc_host1_5v: usb-host1-regulator {
88 compatible = "regulator-fixed";
89 gpio = <&gpio2 0 GPIO_ACTIVE_HIGH>;
90 pinctrl-names = "default";
91 pinctrl-0 = <&host1_vbus_drv>;
92 regulator-name = "vcc_host1_5v";
93 regulator-min-microvolt = <5000000>;
94 regulator-max-microvolt = <5000000>;
95 regulator-always-on;
96 vin-supply = <&vdd_in_otg_out>;
97 };
98
99 vcc_otg_5v: usb-otg-regulator {
100 compatible = "regulator-fixed";
101 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
102 pinctrl-names = "default";
103 pinctrl-0 = <&otg_vbus_drv>;
104 regulator-name = "vcc_otg_5v";
105 regulator-min-microvolt = <5000000>;
106 regulator-max-microvolt = <5000000>;
107 regulator-always-on;
108 vin-supply = <&vdd_in_otg_out>;
109 };
110};
111
112&gmac {
113 status = "okay";
114};
115
116&hdmi {
117 status = "okay";
118};
119
120&i2c1 {
121 status = "okay";
122
123 touchscreen@44 {
124 compatible = "st,stmpe811";
125 reg = <0x44>;
126 };
127
128 adc@64 {
129 compatible = "maxim,max1037";
130 reg = <0x64>;
131 };
132
133 i2c_rtc: rtc@68 {
134 compatible = "rv4162";
135 reg = <0x68>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&i2c_rtc_int>;
138 interrupt-parent = <&gpio5>;
139 interrupts = <10 0>;
140 };
141};
142
143&i2c3 {
144 status = "okay";
145
146 i2c_eeprom_cb: eeprom@51 {
147 compatible = "atmel,24c32";
148 reg = <0x51>;
149 pagesize = <32>;
150 };
151};
152
153&i2c4 {
154 status = "okay";
155
156 /* PCA9533 - 4-bit LED dimmer */
157 leddim: leddimmer@62 {
158 compatible = "nxp,pca9533";
159 reg = <0x62>;
160
161 led1 {
162 label = "red:user1";
163 linux,default-trigger = "none";
164 type = <PCA9532_TYPE_LED>;
165 };
166
167 led2 {
168 label = "green:user2";
169 linux,default-trigger = "none";
170 type = <PCA9532_TYPE_LED>;
171 };
172
173 led3 {
174 label = "blue:user3";
175 linux,default-trigger = "none";
176 type = <PCA9532_TYPE_LED>;
177 };
178
179 led4 {
180 label = "red:user4";
181 linux,default-trigger = "none";
182 type = <PCA9532_TYPE_LED>;
183 };
184 };
185};
186
187&i2c5 {
188 status = "okay";
189};
190
191&pinctrl {
192 pcfg_pull_up_drv_12ma: pcfg-pull-up-drv-12ma {
193 bias-pull-up;
194 drive-strength = <12>;
195 };
196
197 buttons {
198 user_button_pins: user-button-pins {
199 /* button 1 */
200 rockchip,pins = <8 3 RK_FUNC_GPIO &pcfg_pull_up>,
201 /* button 2 */
202 <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
203 };
204 };
205
206 rv4162 {
207 i2c_rtc_int: i2c-rtc-int {
208 rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>;
209 };
210 };
211
212 sdmmc {
213 /*
214 * Default drive strength isn't enough to achieve even
215 * high-speed mode on pcm-947 board so bump up to 12 mA.
216 */
217 sdmmc_bus4: sdmmc-bus4 {
218 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
219 <6 17 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
220 <6 18 RK_FUNC_1 &pcfg_pull_up_drv_12ma>,
221 <6 19 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
222 };
223
224 sdmmc_clk: sdmmc-clk {
225 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_12ma>;
226 };
227
228 sdmmc_cmd: sdmmc-cmd {
229 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_12ma>;
230 };
231
232 sdmmc_pwr: sdmmc-pwr {
233 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
234 };
235 };
236
237 touchscreen {
238 ts_irq_pin: ts-irq-pin {
239 rockchip,pins = <5 15 RK_FUNC_GPIO &pcfg_pull_none>;
240 };
241 };
242
243 usb_host {
244 host0_vbus_drv: host0-vbus-drv {
245 rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
246 };
247
248 host1_vbus_drv: host1-vbus-drv {
249 rockchip,pins = <2 0 RK_FUNC_GPIO &pcfg_pull_none>;
250 };
251 };
252
253 usb_otg {
254 otg_vbus_drv: otg-vbus-drv {
255 rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
256 };
257 };
258};
259
260&sdmmc {
261 bus-width = <4>;
262 cap-mmc-highspeed;
263 cap-sd-highspeed;
264 card-detect-delay = <200>;
265 disable-wp;
266 num-slots = <1>;
267 pinctrl-names = "default";
268 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
269 vmmc-supply = <&vdd_io_sd>;
270 vqmmc-supply = <&vdd_io_sd>;
271 status = "okay";
272};
273
274&uart0 {
275 pinctrl-names = "default";
276 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
277 status = "okay";
278};
279
280&uart2 {
281 status = "okay";
282};
283
284&usbphy {
285 status = "okay";
286};
287
288&usb_host0_ehci {
289 status = "okay";
290};
291
292&usb_host1 {
293 status = "okay";
294};
295
296&usb_otg {
297 status = "okay";
298};
diff --git a/arch/arm/boot/dts/rk3288-phycore-som.dtsi b/arch/arm/boot/dts/rk3288-phycore-som.dtsi
new file mode 100644
index 000000000000..26cd3ad45160
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-phycore-som.dtsi
@@ -0,0 +1,497 @@
1/*
2 * Device tree file for Phytec phyCORE-RK3288 SoM
3 * Copyright (C) 2017 PHYTEC Messtechnik GmbH
4 * Author: Wadim Egorov <w.egorov@phytec.de>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45#include <dt-bindings/net/ti-dp83867.h>
46#include "rk3288.dtsi"
47
48/ {
49 model = "Phytec RK3288 phyCORE";
50 compatible = "phytec,rk3288-phycore-som", "rockchip,rk3288";
51
52 /*
53 * Set the minimum memory size here and
54 * let the bootloader set the real size.
55 */
56 memory {
57 device_type = "memory";
58 reg = <0 0x8000000>;
59 };
60
61 aliases {
62 rtc0 = &i2c_rtc;
63 rtc1 = &rk818;
64 };
65
66 ext_gmac: external-gmac-clock {
67 compatible = "fixed-clock";
68 #clock-cells = <0>;
69 clock-frequency = <125000000>;
70 clock-output-names = "ext_gmac";
71 };
72
73 leds: user-leds {
74 compatible = "gpio-leds";
75 pinctrl-names = "default";
76 pinctrl-0 = <&user_led>;
77
78 user {
79 label = "green_led";
80 gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
81 linux,default-trigger = "heartbeat";
82 default-state = "keep";
83 };
84 };
85
86 vdd_emmc_io: vdd-emmc-io {
87 compatible = "regulator-fixed";
88 regulator-name = "vdd_emmc_io";
89 regulator-min-microvolt = <1800000>;
90 regulator-max-microvolt = <1800000>;
91 vin-supply = <&vdd_3v3_io>;
92 };
93
94 vdd_in_otg_out: vdd-in-otg-out {
95 compatible = "regulator-fixed";
96 regulator-name = "vdd_in_otg_out";
97 regulator-always-on;
98 regulator-boot-on;
99 regulator-min-microvolt = <5000000>;
100 regulator-max-microvolt = <5000000>;
101 };
102
103 vdd_misc_1v8: vdd-misc-1v8 {
104 compatible = "regulator-fixed";
105 regulator-name = "vdd_misc_1v8";
106 regulator-always-on;
107 regulator-boot-on;
108 regulator-min-microvolt = <1800000>;
109 regulator-max-microvolt = <1800000>;
110 };
111};
112
113&cpu0 {
114 cpu0-supply = <&vdd_cpu>;
115 operating-points = <
116 /* KHz uV */
117 1800000 1400000
118 1608000 1350000
119 1512000 1300000
120 1416000 1200000
121 1200000 1100000
122 1008000 1050000
123 816000 1000000
124 696000 950000
125 600000 900000
126 408000 900000
127 312000 900000
128 216000 900000
129 126000 900000
130 >;
131};
132
133&emmc {
134 status = "okay";
135 bus-width = <8>;
136 cap-mmc-highspeed;
137 disable-wp;
138 non-removable;
139 num-slots = <1>;
140 pinctrl-names = "default";
141 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
142 vmmc-supply = <&vdd_3v3_io>;
143 vqmmc-supply = <&vdd_emmc_io>;
144};
145
146&gmac {
147 assigned-clocks = <&cru SCLK_MAC>;
148 assigned-clock-parents = <&ext_gmac>;
149 clock_in_out = "input";
150 pinctrl-names = "default";
151 pinctrl-0 = <&rgmii_pins &phy_rst &phy_int>;
152 phy-handle = <&phy0>;
153 phy-supply = <&vdd_eth_2v5>;
154 phy-mode = "rgmii-id";
155 snps,reset-active-low;
156 snps,reset-delays-us = <0 10000 1000000>;
157 snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_HIGH>;
158 tx_delay = <0x0>;
159 rx_delay = <0x0>;
160
161 mdio0 {
162 compatible = "snps,dwmac-mdio";
163 #address-cells = <1>;
164 #size-cells = <0>;
165
166 phy0: ethernet-phy@0 {
167 compatible = "ethernet-phy-ieee802.3-c22";
168 reg = <0>;
169 interrupt-parent = <&gpio4>;
170 interrupts = <2 IRQ_TYPE_EDGE_FALLING>;
171 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
172 ti,tx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
173 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
174 enet-phy-lane-no-swap;
175 };
176 };
177};
178
179&hdmi {
180 ddc-i2c-bus = <&i2c5>;
181};
182
183&io_domains {
184 status = "okay";
185 sdcard-supply = <&vdd_io_sd>;
186 flash0-supply = <&vdd_emmc_io>;
187 flash1-supply = <&vdd_misc_1v8>;
188 gpio1830-supply = <&vdd_3v3_io>;
189 gpio30-supply = <&vdd_3v3_io>;
190 bb-supply = <&vdd_3v3_io>;
191 dvp-supply = <&vdd_3v3_io>;
192 lcdc-supply = <&vdd_3v3_io>;
193 wifi-supply = <&vdd_3v3_io>;
194 audio-supply = <&vdd_3v3_io>;
195};
196
197&i2c0 {
198 status = "okay";
199 clock-frequency = <400000>;
200
201 rk818: pmic@1c {
202 compatible = "rockchip,rk818";
203 reg = <0x1c>;
204 interrupt-parent = <&gpio0>;
205 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
206 pinctrl-names = "default";
207 pinctrl-0 = <&pmic_int>;
208 rockchip,system-power-controller;
209 wakeup-source;
210 #clock-cells = <1>;
211
212 vcc1-supply = <&vdd_sys>;
213 vcc2-supply = <&vdd_sys>;
214 vcc3-supply = <&vdd_sys>;
215 vcc4-supply = <&vdd_sys>;
216 boost-supply = <&vdd_in_otg_out>;
217 vcc6-supply = <&vdd_sys>;
218 vcc7-supply = <&vdd_misc_1v8>;
219 vcc8-supply = <&vdd_misc_1v8>;
220 vcc9-supply = <&vdd_3v3_io>;
221 vddio-supply = <&vdd_3v3_io>;
222
223 regulators {
224 vdd_log: DCDC_REG1 {
225 regulator-name = "vdd_log";
226 regulator-always-on;
227 regulator-boot-on;
228 regulator-min-microvolt = <1100000>;
229 regulator-max-microvolt = <1100000>;
230 regulator-state-mem {
231 regulator-off-in-suspend;
232 };
233 };
234
235 vdd_gpu: DCDC_REG2 {
236 regulator-name = "vdd_gpu";
237 regulator-always-on;
238 regulator-boot-on;
239 regulator-min-microvolt = <800000>;
240 regulator-max-microvolt = <1250000>;
241 regulator-state-mem {
242 regulator-on-in-suspend;
243 regulator-suspend-microvolt = <1000000>;
244 };
245 };
246
247 vcc_ddr: DCDC_REG3 {
248 regulator-name = "vcc_ddr";
249 regulator-always-on;
250 regulator-boot-on;
251 regulator-state-mem {
252 regulator-on-in-suspend;
253 };
254 };
255
256 vdd_3v3_io: DCDC_REG4 {
257 regulator-name = "vdd_3v3_io";
258 regulator-always-on;
259 regulator-boot-on;
260 regulator-min-microvolt = <3300000>;
261 regulator-max-microvolt = <3300000>;
262 regulator-state-mem {
263 regulator-on-in-suspend;
264 regulator-suspend-microvolt = <3300000>;
265 };
266 };
267
268 vdd_sys: DCDC_BOOST {
269 regulator-name = "vdd_sys";
270 regulator-always-on;
271 regulator-boot-on;
272 regulator-min-microvolt = <5000000>;
273 regulator-max-microvolt = <5000000>;
274 regulator-state-mem {
275 regulator-on-in-suspend;
276 regulator-suspend-microvolt = <5000000>;
277 };
278 };
279
280 /* vcc9 */
281 vdd_sd: SWITCH_REG {
282 regulator-name = "vdd_sd";
283 regulator-always-on;
284 regulator-boot-on;
285 regulator-state-mem {
286 regulator-off-in-suspend;
287 };
288 };
289
290 /* vcc6 */
291 vdd_eth_2v5: LDO_REG2 {
292 regulator-name = "vdd_eth_2v5";
293 regulator-always-on;
294 regulator-boot-on;
295 regulator-min-microvolt = <2500000>;
296 regulator-max-microvolt = <2500000>;
297 regulator-state-mem {
298 regulator-on-in-suspend;
299 regulator-suspend-microvolt = <2500000>;
300 };
301 };
302
303 /* vcc7 */
304 vdd_1v0: LDO_REG3 {
305 regulator-name = "vdd_1v0";
306 regulator-always-on;
307 regulator-boot-on;
308 regulator-min-microvolt = <1000000>;
309 regulator-max-microvolt = <1000000>;
310 regulator-state-mem {
311 regulator-on-in-suspend;
312 regulator-suspend-microvolt = <1000000>;
313 };
314 };
315
316 /* vcc8 */
317 vdd_1v8_lcd_ldo: LDO_REG4 {
318 regulator-name = "vdd_1v8_lcd_ldo";
319 regulator-always-on;
320 regulator-boot-on;
321 regulator-min-microvolt = <1800000>;
322 regulator-max-microvolt = <1800000>;
323 regulator-state-mem {
324 regulator-on-in-suspend;
325 regulator-suspend-microvolt = <1800000>;
326 };
327 };
328
329 /* vcc8 */
330 vdd_1v0_lcd: LDO_REG6 {
331 regulator-name = "vdd_1v0_lcd";
332 regulator-always-on;
333 regulator-boot-on;
334 regulator-min-microvolt = <1000000>;
335 regulator-max-microvolt = <1000000>;
336 regulator-state-mem {
337 regulator-on-in-suspend;
338 regulator-suspend-microvolt = <1000000>;
339 };
340 };
341
342 /* vcc7 */
343 vdd_1v8_ldo: LDO_REG7 {
344 regulator-name = "vdd_1v8_ldo";
345 regulator-always-on;
346 regulator-boot-on;
347 regulator-min-microvolt = <1800000>;
348 regulator-max-microvolt = <1800000>;
349 regulator-state-mem {
350 regulator-off-in-suspend;
351 regulator-suspend-microvolt = <1800000>;
352 };
353 };
354
355 /* vcc9 */
356 vdd_io_sd: LDO_REG9 {
357 regulator-name = "vdd_io_sd";
358 regulator-always-on;
359 regulator-boot-on;
360 regulator-min-microvolt = <3300000>;
361 regulator-max-microvolt = <3300000>;
362 regulator-state-mem {
363 regulator-on-in-suspend;
364 regulator-suspend-microvolt = <3300000>;
365 };
366 };
367 };
368 };
369
370 /* M24C32-D */
371 i2c_eeprom: eeprom@50 {
372 compatible = "atmel,24c32";
373 reg = <0x50>;
374 pagesize = <32>;
375 };
376
377 vdd_cpu: regulator@60 {
378 compatible = "fcs,fan53555";
379 reg = <0x60>;
380 fcs,suspend-voltage-selector = <1>;
381 regulator-always-on;
382 regulator-boot-on;
383 regulator-enable-ramp-delay = <300>;
384 regulator-name = "vdd_cpu";
385 regulator-min-microvolt = <800000>;
386 regulator-max-microvolt = <1430000>;
387 regulator-ramp-delay = <8000>;
388 vin-supply = <&vdd_sys>;
389 };
390};
391
392&pinctrl {
393 pcfg_output_high: pcfg-output-high {
394 output-high;
395 };
396
397 emmc {
398 /*
399 * We run eMMC at max speed; bump up drive strength.
400 * We also have external pulls, so disable the internal ones.
401 */
402 emmc_clk: emmc-clk {
403 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_12ma>;
404 };
405
406 emmc_cmd: emmc-cmd {
407 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_12ma>;
408 };
409
410 emmc_bus8: emmc-bus8 {
411 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_12ma>,
412 <3 1 RK_FUNC_2 &pcfg_pull_none_12ma>,
413 <3 2 RK_FUNC_2 &pcfg_pull_none_12ma>,
414 <3 3 RK_FUNC_2 &pcfg_pull_none_12ma>,
415 <3 4 RK_FUNC_2 &pcfg_pull_none_12ma>,
416 <3 5 RK_FUNC_2 &pcfg_pull_none_12ma>,
417 <3 6 RK_FUNC_2 &pcfg_pull_none_12ma>,
418 <3 7 RK_FUNC_2 &pcfg_pull_none_12ma>;
419 };
420 };
421
422 gmac {
423 phy_int: phy-int {
424 rockchip,pins = <4 2 RK_FUNC_GPIO &pcfg_pull_up>;
425 };
426
427 phy_rst: phy-rst {
428 rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
429 };
430 };
431
432 leds {
433 user_led: user-led {
434 rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_output_high>;
435 };
436 };
437
438 pmic {
439 pmic_int: pmic-int {
440 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
441 };
442
443 /* Pin for switching state between sleep and non-sleep state */
444 pmic_sleep: pmic-sleep {
445 rockchip,pins = <RK_GPIO0 0 RK_FUNC_GPIO &pcfg_pull_up>;
446 };
447 };
448};
449
450&pwm1 {
451 status = "okay";
452};
453
454&saradc {
455 status = "okay";
456 vref-supply = <&vdd_1v8_ldo>;
457};
458
459&spi2 {
460 status = "okay";
461
462 serial_flash: flash@0 {
463 compatible = "micron,n25q128a13", "jedec,spi-nor";
464 reg = <0x0>;
465 spi-max-frequency = <50000000>;
466 m25p,fast-read;
467 #address-cells = <1>;
468 #size-cells = <1>;
469 status = "okay";
470 };
471};
472
473&tsadc {
474 status = "okay";
475 rockchip,hw-tshut-mode = <0>;
476 rockchip,hw-tshut-polarity = <0>;
477};
478
479&vopb {
480 status = "okay";
481};
482
483&vopb_mmu {
484 status = "okay";
485};
486
487&vopl {
488 status = "okay";
489};
490
491&vopl_mmu {
492 status = "okay";
493};
494
495&wdt {
496 status = "okay";
497};
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index 1c0bbc9b928b..f0778a46bca9 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -136,7 +136,7 @@
136 regulator-always-on; 136 regulator-always-on;
137 }; 137 };
138 138
139 vcc_io: REG2 { 139 vcc_io: vccio_codec: REG2 {
140 regulator-name = "VCC_IO"; 140 regulator-name = "VCC_IO";
141 regulator-min-microvolt = <3300000>; 141 regulator-min-microvolt = <3300000>;
142 regulator-max-microvolt = <3300000>; 142 regulator-max-microvolt = <3300000>;
diff --git a/arch/arm/boot/dts/rk3288-rock2-square.dts b/arch/arm/boot/dts/rk3288-rock2-square.dts
index 96a2e745bb93..a23a94811be8 100644
--- a/arch/arm/boot/dts/rk3288-rock2-square.dts
+++ b/arch/arm/boot/dts/rk3288-rock2-square.dts
@@ -81,11 +81,35 @@
81 }; 81 };
82 }; 82 };
83 83
84 sata_pwr: sata-prw-regulator {
85 compatible = "regulator-fixed";
86 enable-active-high;
87 gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>;
88 pinctrl-names = "default";
89 pinctrl-0 = <&sata_pwr_en>;
90 /* Always turn on the 5V sata power connector */
91 regulator-always-on;
92 regulator-name = "sata_pwr";
93 };
94
84 spdif_out: spdif-out { 95 spdif_out: spdif-out {
85 compatible = "linux,spdif-dit"; 96 compatible = "linux,spdif-dit";
86 #sound-dai-cells = <0>; 97 #sound-dai-cells = <0>;
87 }; 98 };
88 99
100 sound-i2s {
101 compatible = "rockchip,rk3288-hdmi-analog";
102 pinctrl-names = "default";
103 pinctrl-0 = <&phone_ctl>, <&hp_det>;
104 rockchip,audio-codec = <&es8388>;
105 rockchip,hp-det-gpios = <&gpio7 7 GPIO_ACTIVE_HIGH>;
106 rockchip,hp-en-gpios = <&gpio8 0 GPIO_ACTIVE_HIGH>;
107 rockchip,i2s-controller = <&i2s>;
108 rockchip,model = "I2S";
109 rockchip,routing = "Analog", "LOUT2",
110 "Analog", "ROUT2";
111 };
112
89 sdio_pwrseq: sdio-pwrseq { 113 sdio_pwrseq: sdio-pwrseq {
90 compatible = "mmc-pwrseq-simple"; 114 compatible = "mmc-pwrseq-simple";
91 clocks = <&hym8563>; 115 clocks = <&hym8563>;
@@ -173,10 +197,28 @@
173 }; 197 };
174}; 198};
175 199
200&i2c2 {
201 status = "okay";
202
203 es8388: es8388@10 {
204 compatible = "everest,es8388", "everest,es8328";
205 reg = <0x10>;
206 AVDD-supply = <&vccio_codec>;
207 DVDD-supply = <&vccio_codec>;
208 HPVDD-supply = <&vccio_codec>;
209 PVDD-supply = <&vccio_codec>;
210 clocks = <&cru SCLK_I2S0_OUT>;
211 };
212};
213
176&i2c5 { 214&i2c5 {
177 status = "okay"; 215 status = "okay";
178}; 216};
179 217
218&i2s {
219 status = "okay";
220};
221
180&pinctrl { 222&pinctrl {
181 ir { 223 ir {
182 ir_int: ir-int { 224 ir_int: ir-int {
@@ -190,12 +232,28 @@
190 }; 232 };
191 }; 233 };
192 234
235 headphone {
236 hp_det: hp-det {
237 rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>;
238 };
239
240 phone_ctl: phone-ctl {
241 rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
242 };
243 };
244
193 usb { 245 usb {
194 host_vbus_drv: host-vbus-drv { 246 host_vbus_drv: host-vbus-drv {
195 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>; 247 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
196 }; 248 };
197 }; 249 };
198 250
251 sata {
252 sata_pwr_en: sata-pwr-en {
253 rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_pull_none>;
254 };
255 };
256
199 sdmmc { 257 sdmmc {
200 sdmmc_pwr: sdmmc-pwr { 258 sdmmc_pwr: sdmmc-pwr {
201 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>; 259 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -224,3 +282,7 @@
224&usb_host0_ehci { 282&usb_host0_ehci {
225 status = "okay"; 283 status = "okay";
226}; 284};
285
286&usb_host1 {
287 status = "okay";
288};
diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts
new file mode 100644
index 000000000000..f601c78386a9
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-tinker.dts
@@ -0,0 +1,536 @@
1/*
2 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of 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
45#include "rk3288.dtsi"
46#include <dt-bindings/input/input.h>
47
48/ {
49 model = "Rockchip RK3288 Tinker Board";
50 compatible = "asus,rk3288-tinker", "rockchip,rk3288";
51
52 memory {
53 reg = <0x0 0x80000000>;
54 device_type = "memory";
55 };
56
57 ext_gmac: external-gmac-clock {
58 compatible = "fixed-clock";
59 #clock-cells = <0>;
60 clock-frequency = <125000000>;
61 clock-output-names = "ext_gmac";
62 };
63
64 gpio-keys {
65 compatible = "gpio-keys";
66 #address-cells = <1>;
67 #size-cells = <0>;
68 autorepeat;
69
70 pinctrl-names = "default";
71 pinctrl-0 = <&pwrbtn>;
72
73 button@0 {
74 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
75 linux,code = <KEY_POWER>;
76 label = "GPIO Key Power";
77 linux,input-type = <1>;
78 wakeup-source;
79 debounce-interval = <100>;
80 };
81 };
82
83 gpio-leds {
84 compatible = "gpio-leds";
85
86 act-led {
87 gpios=<&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
88 linux,default-trigger="mmc0";
89 };
90
91 heartbeat-led {
92 gpios=<&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
93 linux,default-trigger="heartbeat";
94 };
95
96 pwr-led {
97 gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
98 linux,default-trigger = "default-on";
99 };
100 };
101
102 sound {
103 compatible = "simple-audio-card";
104 simple-audio-card,format = "i2s";
105 simple-audio-card,name = "rockchip,tinker-codec";
106 simple-audio-card,mclk-fs = <512>;
107
108 simple-audio-card,codec {
109 sound-dai = <&hdmi>;
110 };
111
112 simple-audio-card,cpu {
113 sound-dai = <&i2s>;
114 };
115 };
116
117 vcc_sys: vsys-regulator {
118 compatible = "regulator-fixed";
119 regulator-name = "vcc_sys";
120 regulator-min-microvolt = <5000000>;
121 regulator-max-microvolt = <5000000>;
122 regulator-always-on;
123 regulator-boot-on;
124 };
125
126 vcc_sd: sdmmc-regulator {
127 compatible = "regulator-fixed";
128 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
129 pinctrl-names = "default";
130 pinctrl-0 = <&sdmmc_pwr>;
131 regulator-name = "vcc_sd";
132 regulator-min-microvolt = <3300000>;
133 regulator-max-microvolt = <3300000>;
134 startup-delay-us = <100000>;
135 vin-supply = <&vcc_io>;
136 };
137};
138
139&cpu0 {
140 cpu0-supply = <&vdd_cpu>;
141};
142
143&gmac {
144 assigned-clocks = <&cru SCLK_MAC>;
145 assigned-clock-parents = <&ext_gmac>;
146 clock_in_out = "input";
147 phy-mode = "rgmii";
148 phy-supply = <&vcc33_lan>;
149 pinctrl-names = "default";
150 pinctrl-0 = <&rgmii_pins>;
151 snps,reset-gpio = <&gpio4 7 0>;
152 snps,reset-active-low;
153 snps,reset-delays-us = <0 10000 1000000>;
154 tx_delay = <0x30>;
155 rx_delay = <0x10>;
156 status = "ok";
157};
158
159&hdmi {
160 ddc-i2c-bus = <&i2c5>;
161 status = "okay";
162};
163
164&i2c0 {
165 clock-frequency = <400000>;
166 status = "okay";
167
168 rk808: pmic@1b {
169 compatible = "rockchip,rk808";
170 reg = <0x1b>;
171 interrupt-parent = <&gpio0>;
172 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
173 #clock-cells = <1>;
174 clock-output-names = "xin32k", "rk808-clkout2";
175 dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
176 <&gpio0 12 GPIO_ACTIVE_HIGH>;
177 pinctrl-names = "default";
178 pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
179 rockchip,system-power-controller;
180 wakeup-source;
181
182 vcc1-supply = <&vcc_sys>;
183 vcc2-supply = <&vcc_sys>;
184 vcc3-supply = <&vcc_sys>;
185 vcc4-supply = <&vcc_sys>;
186 vcc6-supply = <&vcc_sys>;
187 vcc7-supply = <&vcc_sys>;
188 vcc8-supply = <&vcc_io>;
189 vcc9-supply = <&vcc_io>;
190 vcc10-supply = <&vcc_io>;
191 vcc11-supply = <&vcc_sys>;
192 vcc12-supply = <&vcc_io>;
193 vddio-supply = <&vcc_io>;
194
195 regulators {
196 vdd_cpu: DCDC_REG1 {
197 regulator-always-on;
198 regulator-boot-on;
199 regulator-min-microvolt = <750000>;
200 regulator-max-microvolt = <1350000>;
201 regulator-name = "vdd_arm";
202 regulator-ramp-delay = <6000>;
203 regulator-state-mem {
204 regulator-off-in-suspend;
205 };
206 };
207
208 vdd_gpu: DCDC_REG2 {
209 regulator-always-on;
210 regulator-boot-on;
211 regulator-min-microvolt = <850000>;
212 regulator-max-microvolt = <1250000>;
213 regulator-name = "vdd_gpu";
214 regulator-ramp-delay = <6000>;
215 regulator-state-mem {
216 regulator-on-in-suspend;
217 regulator-suspend-microvolt = <1000000>;
218 };
219 };
220
221 vcc_ddr: DCDC_REG3 {
222 regulator-always-on;
223 regulator-boot-on;
224 regulator-name = "vcc_ddr";
225 regulator-state-mem {
226 regulator-on-in-suspend;
227 };
228 };
229
230 vcc_io: DCDC_REG4 {
231 regulator-always-on;
232 regulator-boot-on;
233 regulator-min-microvolt = <3300000>;
234 regulator-max-microvolt = <3300000>;
235 regulator-name = "vcc_io";
236 regulator-state-mem {
237 regulator-on-in-suspend;
238 regulator-suspend-microvolt = <3300000>;
239 };
240 };
241
242 vcc18_ldo1: LDO_REG1 {
243 regulator-always-on;
244 regulator-boot-on;
245 regulator-min-microvolt = <1800000>;
246 regulator-max-microvolt = <1800000>;
247 regulator-name = "vcc18_ldo1";
248 regulator-state-mem {
249 regulator-on-in-suspend;
250 regulator-suspend-microvolt = <1800000>;
251 };
252 };
253
254 vcc33_mipi: LDO_REG2 {
255 regulator-always-on;
256 regulator-boot-on;
257 regulator-min-microvolt = <3300000>;
258 regulator-max-microvolt = <3300000>;
259 regulator-name = "vcc33_mipi";
260 regulator-state-mem {
261 regulator-off-in-suspend;
262 };
263 };
264
265 vdd_10: LDO_REG3 {
266 regulator-always-on;
267 regulator-boot-on;
268 regulator-min-microvolt = <1000000>;
269 regulator-max-microvolt = <1000000>;
270 regulator-name = "vdd_10";
271 regulator-state-mem {
272 regulator-on-in-suspend;
273 regulator-suspend-microvolt = <1000000>;
274 };
275 };
276
277 vcc18_codec: LDO_REG4 {
278 regulator-always-on;
279 regulator-boot-on;
280 regulator-min-microvolt = <1800000>;
281 regulator-max-microvolt = <1800000>;
282 regulator-name = "vcc18_codec";
283 regulator-state-mem {
284 regulator-on-in-suspend;
285 regulator-suspend-microvolt = <1800000>;
286 };
287 };
288
289 vccio_sd: LDO_REG5 {
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <3300000>;
292 regulator-name = "vccio_sd";
293 regulator-state-mem {
294 regulator-on-in-suspend;
295 regulator-suspend-microvolt = <3300000>;
296 };
297 };
298
299 vdd10_lcd: LDO_REG6 {
300 regulator-always-on;
301 regulator-boot-on;
302 regulator-min-microvolt = <1000000>;
303 regulator-max-microvolt = <1000000>;
304 regulator-name = "vdd10_lcd";
305 regulator-state-mem {
306 regulator-on-in-suspend;
307 regulator-suspend-microvolt = <1000000>;
308 };
309 };
310
311 vcc_18: LDO_REG7 {
312 regulator-always-on;
313 regulator-boot-on;
314 regulator-min-microvolt = <1800000>;
315 regulator-max-microvolt = <1800000>;
316 regulator-name = "vcc_18";
317 regulator-state-mem {
318 regulator-on-in-suspend;
319 regulator-suspend-microvolt = <1800000>;
320 };
321 };
322
323 vcc18_lcd: LDO_REG8 {
324 regulator-always-on;
325 regulator-boot-on;
326 regulator-min-microvolt = <1800000>;
327 regulator-max-microvolt = <1800000>;
328 regulator-name = "vcc18_lcd";
329 regulator-state-mem {
330 regulator-on-in-suspend;
331 regulator-suspend-microvolt = <1800000>;
332 };
333 };
334
335 vcc33_sd: SWITCH_REG1 {
336 regulator-always-on;
337 regulator-boot-on;
338 regulator-name = "vcc33_sd";
339 regulator-state-mem {
340 regulator-on-in-suspend;
341 };
342 };
343
344 vcc33_lan: SWITCH_REG2 {
345 regulator-always-on;
346 regulator-boot-on;
347 regulator-name = "vcc33_lan";
348 regulator-state-mem {
349 regulator-on-in-suspend;
350 };
351 };
352 };
353 };
354};
355
356&i2c2 {
357 status = "okay";
358};
359
360&i2c5 {
361 status = "okay";
362};
363
364&i2s {
365 #sound-dai-cells = <0>;
366 status = "okay";
367};
368
369&io_domains {
370 status = "okay";
371
372 sdcard-supply = <&vccio_sd>;
373};
374
375&pinctrl {
376 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
377 drive-strength = <8>;
378 };
379
380 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
381 bias-pull-up;
382 drive-strength = <8>;
383 };
384
385 backlight {
386 bl_en: bl-en {
387 rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
388 };
389 };
390
391 buttons {
392 pwrbtn: pwrbtn {
393 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
394 };
395 };
396
397 eth_phy {
398 eth_phy_pwr: eth-phy-pwr {
399 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
400 };
401 };
402
403 pmic {
404 pmic_int: pmic-int {
405 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO \
406 &pcfg_pull_up>;
407 };
408
409 dvs_1: dvs-1 {
410 rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO \
411 &pcfg_pull_down>;
412 };
413
414 dvs_2: dvs-2 {
415 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO \
416 &pcfg_pull_down>;
417 };
418 };
419
420 sdmmc {
421 sdmmc_bus4: sdmmc-bus4 {
422 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
423 <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
424 <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
425 <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
426 };
427
428 sdmmc_clk: sdmmc-clk {
429 rockchip,pins = <6 20 RK_FUNC_1 \
430 &pcfg_pull_none_drv_8ma>;
431 };
432
433 sdmmc_cmd: sdmmc-cmd {
434 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
435 };
436
437 sdmmc_pwr: sdmmc-pwr {
438 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
439 };
440 };
441
442 usb {
443 host_vbus_drv: host-vbus-drv {
444 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
445 };
446
447 pwr_3g: pwr-3g {
448 rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
449 };
450 };
451};
452
453&pwm0 {
454 status = "okay";
455};
456
457&saradc {
458 vref-supply = <&vcc18_ldo1>;
459 status ="okay";
460};
461
462&sdmmc {
463 bus-width = <4>;
464 cap-mmc-highspeed;
465 cap-sd-highspeed;
466 card-detect-delay = <200>;
467 disable-wp; /* wp not hooked up */
468 num-slots = <1>;
469 pinctrl-names = "default";
470 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
471 status = "okay";
472 vmmc-supply = <&vcc33_sd>;
473 vqmmc-supply = <&vccio_sd>;
474};
475
476&tsadc {
477 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
478 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
479 status = "okay";
480};
481
482&uart0 {
483 status = "okay";
484};
485
486&uart1 {
487 status = "okay";
488};
489
490&uart2 {
491 status = "okay";
492};
493
494&uart3 {
495 status = "okay";
496};
497
498&uart4 {
499 status = "okay";
500};
501
502&usbphy {
503 status = "okay";
504};
505
506&usb_host0_ehci {
507 status = "okay";
508};
509
510&usb_host1 {
511 status = "okay";
512};
513
514&usb_otg {
515 status= "okay";
516};
517
518&vopb {
519 status = "okay";
520};
521
522&vopb_mmu {
523 status = "okay";
524};
525
526&vopl {
527 status = "okay";
528};
529
530&vopl_mmu {
531 status = "okay";
532};
533
534&wdt {
535 status = "okay";
536};
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index df8a0dbe9d91..ad5d6022e95f 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -236,6 +236,8 @@
236 fifo-depth = <0x100>; 236 fifo-depth = <0x100>;
237 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 237 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
238 reg = <0xff0c0000 0x4000>; 238 reg = <0xff0c0000 0x4000>;
239 resets = <&cru SRST_MMC0>;
240 reset-names = "reset";
239 status = "disabled"; 241 status = "disabled";
240 }; 242 };
241 243
@@ -248,6 +250,8 @@
248 fifo-depth = <0x100>; 250 fifo-depth = <0x100>;
249 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 251 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
250 reg = <0xff0d0000 0x4000>; 252 reg = <0xff0d0000 0x4000>;
253 resets = <&cru SRST_SDIO0>;
254 reset-names = "reset";
251 status = "disabled"; 255 status = "disabled";
252 }; 256 };
253 257
@@ -260,6 +264,8 @@
260 fifo-depth = <0x100>; 264 fifo-depth = <0x100>;
261 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 265 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
262 reg = <0xff0e0000 0x4000>; 266 reg = <0xff0e0000 0x4000>;
267 resets = <&cru SRST_SDIO1>;
268 reset-names = "reset";
263 status = "disabled"; 269 status = "disabled";
264 }; 270 };
265 271
@@ -272,6 +278,8 @@
272 fifo-depth = <0x100>; 278 fifo-depth = <0x100>;
273 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 279 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
274 reg = <0xff0f0000 0x4000>; 280 reg = <0xff0f0000 0x4000>;
281 resets = <&cru SRST_EMMC>;
282 reset-names = "reset";
275 status = "disabled"; 283 status = "disabled";
276 }; 284 };
277 285
diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index 0b45811cf28b..4aa6f60d6a22 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -132,14 +132,14 @@
132 global_timer: global-timer@1013c200 { 132 global_timer: global-timer@1013c200 {
133 compatible = "arm,cortex-a9-global-timer"; 133 compatible = "arm,cortex-a9-global-timer";
134 reg = <0x1013c200 0x20>; 134 reg = <0x1013c200 0x20>;
135 interrupts = <GIC_PPI 11 0x304>; 135 interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
136 clocks = <&cru CORE_PERI>; 136 clocks = <&cru CORE_PERI>;
137 }; 137 };
138 138
139 local_timer: local-timer@1013c600 { 139 local_timer: local-timer@1013c600 {
140 compatible = "arm,cortex-a9-twd-timer"; 140 compatible = "arm,cortex-a9-twd-timer";
141 reg = <0x1013c600 0x20>; 141 reg = <0x1013c600 0x20>;
142 interrupts = <GIC_PPI 13 0x304>; 142 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
143 clocks = <&cru CORE_PERI>; 143 clocks = <&cru CORE_PERI>;
144 }; 144 };
145 145
@@ -223,7 +223,11 @@
223 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 223 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
224 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>; 224 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>;
225 clock-names = "biu", "ciu"; 225 clock-names = "biu", "ciu";
226 dmas = <&dmac2 1>;
227 dma-names = "rx-tx";
226 fifo-depth = <256>; 228 fifo-depth = <256>;
229 resets = <&cru SRST_SDMMC>;
230 reset-names = "reset";
227 status = "disabled"; 231 status = "disabled";
228 }; 232 };
229 233
@@ -233,7 +237,11 @@
233 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 237 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
234 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>; 238 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>;
235 clock-names = "biu", "ciu"; 239 clock-names = "biu", "ciu";
240 dmas = <&dmac2 3>;
241 dma-names = "rx-tx";
236 fifo-depth = <256>; 242 fifo-depth = <256>;
243 resets = <&cru SRST_SDIO>;
244 reset-names = "reset";
237 status = "disabled"; 245 status = "disabled";
238 }; 246 };
239 247
@@ -243,7 +251,11 @@
243 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 251 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
244 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>; 252 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>;
245 clock-names = "biu", "ciu"; 253 clock-names = "biu", "ciu";
254 dmas = <&dmac2 4>;
255 dma-names = "rx-tx";
246 fifo-depth = <256>; 256 fifo-depth = <256>;
257 resets = <&cru SRST_EMMC>;
258 reset-names = "reset";
247 status = "disabled"; 259 status = "disabled";
248 }; 260 };
249 261
diff --git a/arch/arm/boot/dts/s3c64xx.dtsi b/arch/arm/boot/dts/s3c64xx.dtsi
index 0ccb414cd268..c55cbb3af2c0 100644
--- a/arch/arm/boot/dts/s3c64xx.dtsi
+++ b/arch/arm/boot/dts/s3c64xx.dtsi
@@ -94,13 +94,12 @@
94 }; 94 };
95 95
96 watchdog: watchdog@7e004000 { 96 watchdog: watchdog@7e004000 {
97 compatible = "samsung,s3c2410-wdt"; 97 compatible = "samsung,s3c6410-wdt";
98 reg = <0x7e004000 0x1000>; 98 reg = <0x7e004000 0x1000>;
99 interrupt-parent = <&vic0>; 99 interrupt-parent = <&vic0>;
100 interrupts = <26>; 100 interrupts = <26>;
101 clock-names = "watchdog"; 101 clock-names = "watchdog";
102 clocks = <&clocks PCLK_WDT>; 102 clocks = <&clocks PCLK_WDT>;
103 status = "disabled";
104 }; 103 };
105 104
106 i2c0: i2c@7f004000 { 105 i2c0: i2c@7f004000 {
diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi
index a853918be43f..726c5d0dbd5b 100644
--- a/arch/arm/boot/dts/s5pv210.dtsi
+++ b/arch/arm/boot/dts/s5pv210.dtsi
@@ -310,7 +310,7 @@
310 }; 310 };
311 311
312 watchdog: watchdog@e2700000 { 312 watchdog: watchdog@e2700000 {
313 compatible = "samsung,s3c2410-wdt"; 313 compatible = "samsung,s3c6410-wdt";
314 reg = <0xe2700000 0x1000>; 314 reg = <0xe2700000 0x1000>;
315 interrupt-parent = <&vic0>; 315 interrupt-parent = <&vic0>;
316 interrupts = <26>; 316 interrupts = <26>;
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 528b4e9c6d3d..8067c71c3a38 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -1305,6 +1305,11 @@
1305 status = "okay"; 1305 status = "okay";
1306 }; 1306 };
1307 1307
1308 sfrbu: sfr@fc05c000 {
1309 compatible = "atmel,sama5d2-sfrbu", "syscon";
1310 reg = <0xfc05c000 0x20>;
1311 };
1312
1308 chipid@fc069000 { 1313 chipid@fc069000 {
1309 compatible = "atmel,sama5d2-chipid"; 1314 compatible = "atmel,sama5d2-chipid";
1310 reg = <0xfc069000 0x8>; 1315 reg = <0xfc069000 0x8>;
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index 2c43c4d85dee..b2674bdb8e6a 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -15,7 +15,6 @@
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18#include "skeleton.dtsi"
19#include <dt-bindings/reset/altr,rst-mgr.h> 18#include <dt-bindings/reset/altr,rst-mgr.h>
20 19
21/ { 20/ {
@@ -38,13 +37,13 @@
38 #size-cells = <0>; 37 #size-cells = <0>;
39 enable-method = "altr,socfpga-smp"; 38 enable-method = "altr,socfpga-smp";
40 39
41 cpu@0 { 40 cpu0: cpu@0 {
42 compatible = "arm,cortex-a9"; 41 compatible = "arm,cortex-a9";
43 device_type = "cpu"; 42 device_type = "cpu";
44 reg = <0>; 43 reg = <0>;
45 next-level-cache = <&L2>; 44 next-level-cache = <&L2>;
46 }; 45 };
47 cpu@1 { 46 cpu1: cpu@1 {
48 compatible = "arm,cortex-a9"; 47 compatible = "arm,cortex-a9";
49 device_type = "cpu"; 48 device_type = "cpu";
50 reg = <1>; 49 reg = <1>;
@@ -52,6 +51,15 @@
52 }; 51 };
53 }; 52 };
54 53
54 pmu: pmu@ff111000 {
55 compatible = "arm,cortex-a9-pmu";
56 interrupt-parent = <&intc>;
57 interrupts = <0 176 4>, <0 177 4>;
58 interrupt-affinity = <&cpu0>, <&cpu1>;
59 reg = <0xff111000 0x1000>,
60 <0xff113000 0x1000>;
61 };
62
55 intc: intc@fffed000 { 63 intc: intc@fffed000 {
56 compatible = "arm,cortex-a9-gic"; 64 compatible = "arm,cortex-a9-gic";
57 #interrupt-cells = <3>; 65 #interrupt-cells = <3>;
@@ -145,7 +153,7 @@
145 compatible = "fixed-clock"; 153 compatible = "fixed-clock";
146 }; 154 };
147 155
148 main_pll: main_pll { 156 main_pll: main_pll@40 {
149 #address-cells = <1>; 157 #address-cells = <1>;
150 #size-cells = <0>; 158 #size-cells = <0>;
151 #clock-cells = <0>; 159 #clock-cells = <0>;
@@ -153,7 +161,7 @@
153 clocks = <&osc1>; 161 clocks = <&osc1>;
154 reg = <0x40>; 162 reg = <0x40>;
155 163
156 mpuclk: mpuclk { 164 mpuclk: mpuclk@48 {
157 #clock-cells = <0>; 165 #clock-cells = <0>;
158 compatible = "altr,socfpga-perip-clk"; 166 compatible = "altr,socfpga-perip-clk";
159 clocks = <&main_pll>; 167 clocks = <&main_pll>;
@@ -161,7 +169,7 @@
161 reg = <0x48>; 169 reg = <0x48>;
162 }; 170 };
163 171
164 mainclk: mainclk { 172 mainclk: mainclk@4c {
165 #clock-cells = <0>; 173 #clock-cells = <0>;
166 compatible = "altr,socfpga-perip-clk"; 174 compatible = "altr,socfpga-perip-clk";
167 clocks = <&main_pll>; 175 clocks = <&main_pll>;
@@ -169,7 +177,7 @@
169 reg = <0x4C>; 177 reg = <0x4C>;
170 }; 178 };
171 179
172 dbg_base_clk: dbg_base_clk { 180 dbg_base_clk: dbg_base_clk@50 {
173 #clock-cells = <0>; 181 #clock-cells = <0>;
174 compatible = "altr,socfpga-perip-clk"; 182 compatible = "altr,socfpga-perip-clk";
175 clocks = <&main_pll>, <&osc1>; 183 clocks = <&main_pll>, <&osc1>;
@@ -177,21 +185,21 @@
177 reg = <0x50>; 185 reg = <0x50>;
178 }; 186 };
179 187
180 main_qspi_clk: main_qspi_clk { 188 main_qspi_clk: main_qspi_clk@54 {
181 #clock-cells = <0>; 189 #clock-cells = <0>;
182 compatible = "altr,socfpga-perip-clk"; 190 compatible = "altr,socfpga-perip-clk";
183 clocks = <&main_pll>; 191 clocks = <&main_pll>;
184 reg = <0x54>; 192 reg = <0x54>;
185 }; 193 };
186 194
187 main_nand_sdmmc_clk: main_nand_sdmmc_clk { 195 main_nand_sdmmc_clk: main_nand_sdmmc_clk@58 {
188 #clock-cells = <0>; 196 #clock-cells = <0>;
189 compatible = "altr,socfpga-perip-clk"; 197 compatible = "altr,socfpga-perip-clk";
190 clocks = <&main_pll>; 198 clocks = <&main_pll>;
191 reg = <0x58>; 199 reg = <0x58>;
192 }; 200 };
193 201
194 cfg_h2f_usr0_clk: cfg_h2f_usr0_clk { 202 cfg_h2f_usr0_clk: cfg_h2f_usr0_clk@5c {
195 #clock-cells = <0>; 203 #clock-cells = <0>;
196 compatible = "altr,socfpga-perip-clk"; 204 compatible = "altr,socfpga-perip-clk";
197 clocks = <&main_pll>; 205 clocks = <&main_pll>;
@@ -199,7 +207,7 @@
199 }; 207 };
200 }; 208 };
201 209
202 periph_pll: periph_pll { 210 periph_pll: periph_pll@80 {
203 #address-cells = <1>; 211 #address-cells = <1>;
204 #size-cells = <0>; 212 #size-cells = <0>;
205 #clock-cells = <0>; 213 #clock-cells = <0>;
@@ -207,42 +215,42 @@
207 clocks = <&osc1>, <&osc2>, <&f2s_periph_ref_clk>; 215 clocks = <&osc1>, <&osc2>, <&f2s_periph_ref_clk>;
208 reg = <0x80>; 216 reg = <0x80>;
209 217
210 emac0_clk: emac0_clk { 218 emac0_clk: emac0_clk@88 {
211 #clock-cells = <0>; 219 #clock-cells = <0>;
212 compatible = "altr,socfpga-perip-clk"; 220 compatible = "altr,socfpga-perip-clk";
213 clocks = <&periph_pll>; 221 clocks = <&periph_pll>;
214 reg = <0x88>; 222 reg = <0x88>;
215 }; 223 };
216 224
217 emac1_clk: emac1_clk { 225 emac1_clk: emac1_clk@8c {
218 #clock-cells = <0>; 226 #clock-cells = <0>;
219 compatible = "altr,socfpga-perip-clk"; 227 compatible = "altr,socfpga-perip-clk";
220 clocks = <&periph_pll>; 228 clocks = <&periph_pll>;
221 reg = <0x8C>; 229 reg = <0x8C>;
222 }; 230 };
223 231
224 per_qspi_clk: per_qsi_clk { 232 per_qspi_clk: per_qsi_clk@90 {
225 #clock-cells = <0>; 233 #clock-cells = <0>;
226 compatible = "altr,socfpga-perip-clk"; 234 compatible = "altr,socfpga-perip-clk";
227 clocks = <&periph_pll>; 235 clocks = <&periph_pll>;
228 reg = <0x90>; 236 reg = <0x90>;
229 }; 237 };
230 238
231 per_nand_mmc_clk: per_nand_mmc_clk { 239 per_nand_mmc_clk: per_nand_mmc_clk@94 {
232 #clock-cells = <0>; 240 #clock-cells = <0>;
233 compatible = "altr,socfpga-perip-clk"; 241 compatible = "altr,socfpga-perip-clk";
234 clocks = <&periph_pll>; 242 clocks = <&periph_pll>;
235 reg = <0x94>; 243 reg = <0x94>;
236 }; 244 };
237 245
238 per_base_clk: per_base_clk { 246 per_base_clk: per_base_clk@98 {
239 #clock-cells = <0>; 247 #clock-cells = <0>;
240 compatible = "altr,socfpga-perip-clk"; 248 compatible = "altr,socfpga-perip-clk";
241 clocks = <&periph_pll>; 249 clocks = <&periph_pll>;
242 reg = <0x98>; 250 reg = <0x98>;
243 }; 251 };
244 252
245 h2f_usr1_clk: h2f_usr1_clk { 253 h2f_usr1_clk: h2f_usr1_clk@9c {
246 #clock-cells = <0>; 254 #clock-cells = <0>;
247 compatible = "altr,socfpga-perip-clk"; 255 compatible = "altr,socfpga-perip-clk";
248 clocks = <&periph_pll>; 256 clocks = <&periph_pll>;
@@ -250,7 +258,7 @@
250 }; 258 };
251 }; 259 };
252 260
253 sdram_pll: sdram_pll { 261 sdram_pll: sdram_pll@c0 {
254 #address-cells = <1>; 262 #address-cells = <1>;
255 #size-cells = <0>; 263 #size-cells = <0>;
256 #clock-cells = <0>; 264 #clock-cells = <0>;
@@ -258,28 +266,28 @@
258 clocks = <&osc1>, <&osc2>, <&f2s_sdram_ref_clk>; 266 clocks = <&osc1>, <&osc2>, <&f2s_sdram_ref_clk>;
259 reg = <0xC0>; 267 reg = <0xC0>;
260 268
261 ddr_dqs_clk: ddr_dqs_clk { 269 ddr_dqs_clk: ddr_dqs_clk@c8 {
262 #clock-cells = <0>; 270 #clock-cells = <0>;
263 compatible = "altr,socfpga-perip-clk"; 271 compatible = "altr,socfpga-perip-clk";
264 clocks = <&sdram_pll>; 272 clocks = <&sdram_pll>;
265 reg = <0xC8>; 273 reg = <0xC8>;
266 }; 274 };
267 275
268 ddr_2x_dqs_clk: ddr_2x_dqs_clk { 276 ddr_2x_dqs_clk: ddr_2x_dqs_clk@cc {
269 #clock-cells = <0>; 277 #clock-cells = <0>;
270 compatible = "altr,socfpga-perip-clk"; 278 compatible = "altr,socfpga-perip-clk";
271 clocks = <&sdram_pll>; 279 clocks = <&sdram_pll>;
272 reg = <0xCC>; 280 reg = <0xCC>;
273 }; 281 };
274 282
275 ddr_dq_clk: ddr_dq_clk { 283 ddr_dq_clk: ddr_dq_clk@d0 {
276 #clock-cells = <0>; 284 #clock-cells = <0>;
277 compatible = "altr,socfpga-perip-clk"; 285 compatible = "altr,socfpga-perip-clk";
278 clocks = <&sdram_pll>; 286 clocks = <&sdram_pll>;
279 reg = <0xD0>; 287 reg = <0xD0>;
280 }; 288 };
281 289
282 h2f_usr2_clk: h2f_usr2_clk { 290 h2f_usr2_clk: h2f_usr2_clk@d4 {
283 #clock-cells = <0>; 291 #clock-cells = <0>;
284 compatible = "altr,socfpga-perip-clk"; 292 compatible = "altr,socfpga-perip-clk";
285 clocks = <&sdram_pll>; 293 clocks = <&sdram_pll>;
@@ -678,7 +686,7 @@
678 status = "disabled"; 686 status = "disabled";
679 }; 687 };
680 688
681 eccmgr: eccmgr@ffd08140 { 689 eccmgr: eccmgr {
682 compatible = "altr,socfpga-ecc-manager"; 690 compatible = "altr,socfpga-ecc-manager";
683 #address-cells = <1>; 691 #address-cells = <1>;
684 #size-cells = <1>; 692 #size-cells = <1>;
@@ -879,7 +887,7 @@
879 dma-names = "tx", "rx"; 887 dma-names = "tx", "rx";
880 }; 888 };
881 889
882 usbphy0: usbphy@0 { 890 usbphy0: usbphy {
883 #phy-cells = <0>; 891 #phy-cells = <0>;
884 compatible = "usb-nop-xceiv"; 892 compatible = "usb-nop-xceiv";
885 status = "okay"; 893 status = "okay";
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
index 6b0b7463f36f..bead79e4b2aa 100644
--- a/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -14,7 +14,6 @@
14 * this program. If not, see <http://www.gnu.org/licenses/>. 14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include "skeleton.dtsi"
18#include <dt-bindings/interrupt-controller/arm-gic.h> 17#include <dt-bindings/interrupt-controller/arm-gic.h>
19#include <dt-bindings/reset/altr,rst-mgr-a10.h> 18#include <dt-bindings/reset/altr,rst-mgr-a10.h>
20 19
@@ -119,7 +118,7 @@
119 compatible = "fixed-clock"; 118 compatible = "fixed-clock";
120 }; 119 };
121 120
122 main_pll: main_pll { 121 main_pll: main_pll@40 {
123 #address-cells = <1>; 122 #address-cells = <1>;
124 #size-cells = <0>; 123 #size-cells = <0>;
125 #clock-cells = <0>; 124 #clock-cells = <0>;
@@ -142,35 +141,35 @@
142 div-reg = <0x144 0 11>; 141 div-reg = <0x144 0 11>;
143 }; 142 };
144 143
145 main_emaca_clk: main_emaca_clk { 144 main_emaca_clk: main_emaca_clk@68 {
146 #clock-cells = <0>; 145 #clock-cells = <0>;
147 compatible = "altr,socfpga-a10-perip-clk"; 146 compatible = "altr,socfpga-a10-perip-clk";
148 clocks = <&main_pll>; 147 clocks = <&main_pll>;
149 reg = <0x68>; 148 reg = <0x68>;
150 }; 149 };
151 150
152 main_emacb_clk: main_emacb_clk { 151 main_emacb_clk: main_emacb_clk@6c {
153 #clock-cells = <0>; 152 #clock-cells = <0>;
154 compatible = "altr,socfpga-a10-perip-clk"; 153 compatible = "altr,socfpga-a10-perip-clk";
155 clocks = <&main_pll>; 154 clocks = <&main_pll>;
156 reg = <0x6C>; 155 reg = <0x6C>;
157 }; 156 };
158 157
159 main_emac_ptp_clk: main_emac_ptp_clk { 158 main_emac_ptp_clk: main_emac_ptp_clk@70 {
160 #clock-cells = <0>; 159 #clock-cells = <0>;
161 compatible = "altr,socfpga-a10-perip-clk"; 160 compatible = "altr,socfpga-a10-perip-clk";
162 clocks = <&main_pll>; 161 clocks = <&main_pll>;
163 reg = <0x70>; 162 reg = <0x70>;
164 }; 163 };
165 164
166 main_gpio_db_clk: main_gpio_db_clk { 165 main_gpio_db_clk: main_gpio_db_clk@74 {
167 #clock-cells = <0>; 166 #clock-cells = <0>;
168 compatible = "altr,socfpga-a10-perip-clk"; 167 compatible = "altr,socfpga-a10-perip-clk";
169 clocks = <&main_pll>; 168 clocks = <&main_pll>;
170 reg = <0x74>; 169 reg = <0x74>;
171 }; 170 };
172 171
173 main_sdmmc_clk: main_sdmmc_clk { 172 main_sdmmc_clk: main_sdmmc_clk@78 {
174 #clock-cells = <0>; 173 #clock-cells = <0>;
175 compatible = "altr,socfpga-a10-perip-clk" 174 compatible = "altr,socfpga-a10-perip-clk"
176; 175;
@@ -178,28 +177,28 @@
178 reg = <0x78>; 177 reg = <0x78>;
179 }; 178 };
180 179
181 main_s2f_usr0_clk: main_s2f_usr0_clk { 180 main_s2f_usr0_clk: main_s2f_usr0_clk@7c {
182 #clock-cells = <0>; 181 #clock-cells = <0>;
183 compatible = "altr,socfpga-a10-perip-clk"; 182 compatible = "altr,socfpga-a10-perip-clk";
184 clocks = <&main_pll>; 183 clocks = <&main_pll>;
185 reg = <0x7C>; 184 reg = <0x7C>;
186 }; 185 };
187 186
188 main_s2f_usr1_clk: main_s2f_usr1_clk { 187 main_s2f_usr1_clk: main_s2f_usr1_clk@80 {
189 #clock-cells = <0>; 188 #clock-cells = <0>;
190 compatible = "altr,socfpga-a10-perip-clk"; 189 compatible = "altr,socfpga-a10-perip-clk";
191 clocks = <&main_pll>; 190 clocks = <&main_pll>;
192 reg = <0x80>; 191 reg = <0x80>;
193 }; 192 };
194 193
195 main_hmc_pll_ref_clk: main_hmc_pll_ref_clk { 194 main_hmc_pll_ref_clk: main_hmc_pll_ref_clk@84 {
196 #clock-cells = <0>; 195 #clock-cells = <0>;
197 compatible = "altr,socfpga-a10-perip-clk"; 196 compatible = "altr,socfpga-a10-perip-clk";
198 clocks = <&main_pll>; 197 clocks = <&main_pll>;
199 reg = <0x84>; 198 reg = <0x84>;
200 }; 199 };
201 200
202 main_periph_ref_clk: main_periph_ref_clk { 201 main_periph_ref_clk: main_periph_ref_clk@9c {
203 #clock-cells = <0>; 202 #clock-cells = <0>;
204 compatible = "altr,socfpga-a10-perip-clk"; 203 compatible = "altr,socfpga-a10-perip-clk";
205 clocks = <&main_pll>; 204 clocks = <&main_pll>;
@@ -207,7 +206,7 @@
207 }; 206 };
208 }; 207 };
209 208
210 periph_pll: periph_pll { 209 periph_pll: periph_pll@c0 {
211 #address-cells = <1>; 210 #address-cells = <1>;
212 #size-cells = <0>; 211 #size-cells = <0>;
213 #clock-cells = <0>; 212 #clock-cells = <0>;
@@ -230,56 +229,56 @@
230 div-reg = <0x144 16 11>; 229 div-reg = <0x144 16 11>;
231 }; 230 };
232 231
233 peri_emaca_clk: peri_emaca_clk { 232 peri_emaca_clk: peri_emaca_clk@e8 {
234 #clock-cells = <0>; 233 #clock-cells = <0>;
235 compatible = "altr,socfpga-a10-perip-clk"; 234 compatible = "altr,socfpga-a10-perip-clk";
236 clocks = <&periph_pll>; 235 clocks = <&periph_pll>;
237 reg = <0xE8>; 236 reg = <0xE8>;
238 }; 237 };
239 238
240 peri_emacb_clk: peri_emacb_clk { 239 peri_emacb_clk: peri_emacb_clk@ec {
241 #clock-cells = <0>; 240 #clock-cells = <0>;
242 compatible = "altr,socfpga-a10-perip-clk"; 241 compatible = "altr,socfpga-a10-perip-clk";
243 clocks = <&periph_pll>; 242 clocks = <&periph_pll>;
244 reg = <0xEC>; 243 reg = <0xEC>;
245 }; 244 };
246 245
247 peri_emac_ptp_clk: peri_emac_ptp_clk { 246 peri_emac_ptp_clk: peri_emac_ptp_clk@f0 {
248 #clock-cells = <0>; 247 #clock-cells = <0>;
249 compatible = "altr,socfpga-a10-perip-clk"; 248 compatible = "altr,socfpga-a10-perip-clk";
250 clocks = <&periph_pll>; 249 clocks = <&periph_pll>;
251 reg = <0xF0>; 250 reg = <0xF0>;
252 }; 251 };
253 252
254 peri_gpio_db_clk: peri_gpio_db_clk { 253 peri_gpio_db_clk: peri_gpio_db_clk@f4 {
255 #clock-cells = <0>; 254 #clock-cells = <0>;
256 compatible = "altr,socfpga-a10-perip-clk"; 255 compatible = "altr,socfpga-a10-perip-clk";
257 clocks = <&periph_pll>; 256 clocks = <&periph_pll>;
258 reg = <0xF4>; 257 reg = <0xF4>;
259 }; 258 };
260 259
261 peri_sdmmc_clk: peri_sdmmc_clk { 260 peri_sdmmc_clk: peri_sdmmc_clk@f8 {
262 #clock-cells = <0>; 261 #clock-cells = <0>;
263 compatible = "altr,socfpga-a10-perip-clk"; 262 compatible = "altr,socfpga-a10-perip-clk";
264 clocks = <&periph_pll>; 263 clocks = <&periph_pll>;
265 reg = <0xF8>; 264 reg = <0xF8>;
266 }; 265 };
267 266
268 peri_s2f_usr0_clk: peri_s2f_usr0_clk { 267 peri_s2f_usr0_clk: peri_s2f_usr0_clk@fc {
269 #clock-cells = <0>; 268 #clock-cells = <0>;
270 compatible = "altr,socfpga-a10-perip-clk"; 269 compatible = "altr,socfpga-a10-perip-clk";
271 clocks = <&periph_pll>; 270 clocks = <&periph_pll>;
272 reg = <0xFC>; 271 reg = <0xFC>;
273 }; 272 };
274 273
275 peri_s2f_usr1_clk: peri_s2f_usr1_clk { 274 peri_s2f_usr1_clk: peri_s2f_usr1_clk@100 {
276 #clock-cells = <0>; 275 #clock-cells = <0>;
277 compatible = "altr,socfpga-a10-perip-clk"; 276 compatible = "altr,socfpga-a10-perip-clk";
278 clocks = <&periph_pll>; 277 clocks = <&periph_pll>;
279 reg = <0x100>; 278 reg = <0x100>;
280 }; 279 };
281 280
282 peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk { 281 peri_hmc_pll_ref_clk: peri_hmc_pll_ref_clk@104 {
283 #clock-cells = <0>; 282 #clock-cells = <0>;
284 compatible = "altr,socfpga-a10-perip-clk"; 283 compatible = "altr,socfpga-a10-perip-clk";
285 clocks = <&periph_pll>; 284 clocks = <&periph_pll>;
@@ -287,7 +286,7 @@
287 }; 286 };
288 }; 287 };
289 288
290 mpu_free_clk: mpu_free_clk { 289 mpu_free_clk: mpu_free_clk@60 {
291 #clock-cells = <0>; 290 #clock-cells = <0>;
292 compatible = "altr,socfpga-a10-perip-clk"; 291 compatible = "altr,socfpga-a10-perip-clk";
293 clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>, 292 clocks = <&main_mpu_base_clk>, <&peri_mpu_base_clk>,
@@ -296,7 +295,7 @@
296 reg = <0x60>; 295 reg = <0x60>;
297 }; 296 };
298 297
299 noc_free_clk: noc_free_clk { 298 noc_free_clk: noc_free_clk@64 {
300 #clock-cells = <0>; 299 #clock-cells = <0>;
301 compatible = "altr,socfpga-a10-perip-clk"; 300 compatible = "altr,socfpga-a10-perip-clk";
302 clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>, 301 clocks = <&main_noc_base_clk>, <&peri_noc_base_clk>,
@@ -305,7 +304,7 @@
305 reg = <0x64>; 304 reg = <0x64>;
306 }; 305 };
307 306
308 s2f_user1_free_clk: s2f_user1_free_clk { 307 s2f_user1_free_clk: s2f_user1_free_clk@104 {
309 #clock-cells = <0>; 308 #clock-cells = <0>;
310 compatible = "altr,socfpga-a10-perip-clk"; 309 compatible = "altr,socfpga-a10-perip-clk";
311 clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>, 310 clocks = <&main_s2f_usr1_clk>, <&peri_s2f_usr1_clk>,
@@ -314,7 +313,7 @@
314 reg = <0x104>; 313 reg = <0x104>;
315 }; 314 };
316 315
317 sdmmc_free_clk: sdmmc_free_clk { 316 sdmmc_free_clk: sdmmc_free_clk@f8 {
318 #clock-cells = <0>; 317 #clock-cells = <0>;
319 compatible = "altr,socfpga-a10-perip-clk"; 318 compatible = "altr,socfpga-a10-perip-clk";
320 clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>, 319 clocks = <&main_sdmmc_clk>, <&peri_sdmmc_clk>,
@@ -649,7 +648,7 @@
649 reg = <0xffe00000 0x40000>; 648 reg = <0xffe00000 0x40000>;
650 }; 649 };
651 650
652 eccmgr: eccmgr@ffd06000 { 651 eccmgr: eccmgr {
653 compatible = "altr,socfpga-a10-ecc-manager"; 652 compatible = "altr,socfpga-a10-ecc-manager";
654 altr,sysmgr-syscon = <&sysmgr>; 653 altr,sysmgr-syscon = <&sysmgr>;
655 #address-cells = <1>; 654 #address-cells = <1>;
@@ -806,7 +805,7 @@
806 status = "disabled"; 805 status = "disabled";
807 }; 806 };
808 807
809 usbphy0: usbphy@0 { 808 usbphy0: usbphy {
810 #phy-cells = <0>; 809 #phy-cells = <0>;
811 compatible = "usb-nop-xceiv"; 810 compatible = "usb-nop-xceiv";
812 status = "okay"; 811 status = "okay";
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
index c57e6cea0d83..94e088473823 100644
--- a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
@@ -30,7 +30,7 @@
30 stdout-path = "serial0:115200n8"; 30 stdout-path = "serial0:115200n8";
31 }; 31 };
32 32
33 memory { 33 memory@0 {
34 name = "memory"; 34 name = "memory";
35 device_type = "memory"; 35 device_type = "memory";
36 reg = <0x0 0x40000000>; /* 1GB */ 36 reg = <0x0 0x40000000>; /* 1GB */
@@ -121,6 +121,11 @@
121 gpio-controller; 121 gpio-controller;
122 #gpio-cells = <2>; 122 #gpio-cells = <2>;
123 }; 123 };
124
125 a10sr_rst: reset-controller {
126 compatible = "altr,a10sr-reset";
127 #reset-cells = <1>;
128 };
124 }; 129 };
125}; 130};
126 131
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index 8672edf9ba4e..aac4feea86f3 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -26,7 +26,7 @@
26 stdout-path = "serial0:115200n8"; 26 stdout-path = "serial0:115200n8";
27 }; 27 };
28 28
29 memory { 29 memory@0 {
30 name = "memory"; 30 name = "memory";
31 device_type = "memory"; 31 device_type = "memory";
32 reg = <0x0 0x40000000>; /* 1GB */ 32 reg = <0x0 0x40000000>; /* 1GB */
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
index 5ecd2ef405e3..7b49395452b6 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
@@ -25,7 +25,7 @@
25 stdout-path = "serial0:115200n8"; 25 stdout-path = "serial0:115200n8";
26 }; 26 };
27 27
28 memory { 28 memory@0 {
29 name = "memory"; 29 name = "memory";
30 device_type = "memory"; 30 device_type = "memory";
31 reg = <0x0 0x40000000>; /* 1GB */ 31 reg = <0x0 0x40000000>; /* 1GB */
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi b/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
index 6ad3b1eb9b86..3c03da6b8b1d 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
+++ b/arch/arm/boot/dts/socfpga_cyclone5_mcv.dtsi
@@ -21,7 +21,7 @@
21 model = "Aries/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@0 {
25 name = "memory"; 25 name = "memory";
26 device_type = "memory"; 26 device_type = "memory";
27 reg = <0x0 0x40000000>; /* 1 GiB */ 27 reg = <0x0 0x40000000>; /* 1 GiB */
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts b/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
index e5a98e5696ca..21e397287e29 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_mcvevk.dts
@@ -71,7 +71,6 @@
71 71
72 stmpe_touchscreen { 72 stmpe_touchscreen {
73 compatible = "st,stmpe-ts"; 73 compatible = "st,stmpe-ts";
74 reg = <0>;
75 ts,sample-time = <4>; 74 ts,sample-time = <4>;
76 ts,mod-12b = <1>; 75 ts,mod-12b = <1>;
77 ts,ref-sel = <0>; 76 ts,ref-sel = <0>;
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index 7ea32c81e720..155829f9eba1 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -26,7 +26,7 @@
26 stdout-path = "serial0:115200n8"; 26 stdout-path = "serial0:115200n8";
27 }; 27 };
28 28
29 memory { 29 memory@0 {
30 name = "memory"; 30 name = "memory";
31 device_type = "memory"; 31 device_type = "memory";
32 reg = <0x0 0x40000000>; /* 1GB */ 32 reg = <0x0 0x40000000>; /* 1GB */
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
index a0c90b3bdfd1..a4a555c19d94 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -26,7 +26,7 @@
26 stdout-path = "serial0:115200n8"; 26 stdout-path = "serial0:115200n8";
27 }; 27 };
28 28
29 memory { 29 memory@0 {
30 name = "memory"; 30 name = "memory";
31 device_type = "memory"; 31 device_type = "memory";
32 reg = <0x0 0x40000000>; /* 1GB */ 32 reg = <0x0 0x40000000>; /* 1GB */
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts b/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
index c3d52f27b21e..53bf99eef66d 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
@@ -25,7 +25,7 @@
25 bootargs = "console=ttyS0,115200"; 25 bootargs = "console=ttyS0,115200";
26 }; 26 };
27 27
28 memory { 28 memory@0 {
29 name = "memory"; 29 name = "memory";
30 device_type = "memory"; 30 device_type = "memory";
31 reg = <0x0 0x40000000>; /* 1GB */ 31 reg = <0x0 0x40000000>; /* 1GB */
@@ -60,18 +60,18 @@
60&leds { 60&leds {
61 compatible = "gpio-leds"; 61 compatible = "gpio-leds";
62 62
63 led@0 { 63 led0 {
64 label = "led:green:heartbeat"; 64 label = "led:green:heartbeat";
65 gpios = <&porta 28 1>; 65 gpios = <&porta 28 1>;
66 linux,default-trigger = "heartbeat"; 66 linux,default-trigger = "heartbeat";
67 }; 67 };
68 68
69 led@1 { 69 led1 {
70 label = "led:green:D7"; 70 label = "led:green:D7";
71 gpios = <&portb 19 1>; 71 gpios = <&portb 19 1>;
72 }; 72 };
73 73
74 led@2 { 74 led2 {
75 label = "led:green:D8"; 75 label = "led:green:D8";
76 gpios = <&portb 25 1>; 76 gpios = <&portb 25 1>;
77 }; 77 };
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts b/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
index 5b7e3c27e6e9..8860dd2e242c 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sodia.dts
@@ -28,7 +28,7 @@
28 stdout-path = "serial0:115200n8"; 28 stdout-path = "serial0:115200n8";
29 }; 29 };
30 30
31 memory { 31 memory@0 {
32 name = "memory"; 32 name = "memory";
33 device_type = "memory"; 33 device_type = "memory";
34 reg = <0x0 0x40000000>; 34 reg = <0x0 0x40000000>;
@@ -121,3 +121,24 @@
121&usb1 { 121&usb1 {
122 status = "okay"; 122 status = "okay";
123}; 123};
124
125&qspi {
126 status = "okay";
127
128 flash0: n25q512a@0 {
129 #address-cells = <1>;
130 #size-cells = <1>;
131 compatible = "n25q512a";
132 reg = <0>;
133 spi-max-frequency = <100000000>;
134
135 m25p,fast-read;
136 cdns,page-size = <256>;
137 cdns,block-size = <16>;
138 cdns,read-delay = <4>;
139 cdns,tshsl-ns = <50>;
140 cdns,tsd2d-ns = <50>;
141 cdns,tchsh-ns = <4>;
142 cdns,tslch-ns = <4>;
143 };
144};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
index 363ee62457fe..893198049397 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
@@ -57,7 +57,7 @@
57 bootargs = "console=ttyS0,115200"; 57 bootargs = "console=ttyS0,115200";
58 }; 58 };
59 59
60 memory { 60 memory@0 {
61 name = "memory"; 61 name = "memory";
62 device_type = "memory"; 62 device_type = "memory";
63 reg = <0x0 0x40000000>; /* 1GB */ 63 reg = <0x0 0x40000000>; /* 1GB */
diff --git a/arch/arm/boot/dts/socfpga_vt.dts b/arch/arm/boot/dts/socfpga_vt.dts
index f9345e02ca49..dfe2193cd4d5 100644
--- a/arch/arm/boot/dts/socfpga_vt.dts
+++ b/arch/arm/boot/dts/socfpga_vt.dts
@@ -26,7 +26,7 @@
26 bootargs = "console=ttyS0,57600"; 26 bootargs = "console=ttyS0,57600";
27 }; 27 };
28 28
29 memory { 29 memory@0 {
30 name = "memory"; 30 name = "memory";
31 device_type = "memory"; 31 device_type = "memory";
32 reg = <0x0 0x40000000>; /* 1 GB */ 32 reg = <0x0 0x40000000>; /* 1 GB */
diff --git a/arch/arm/boot/dts/spear600-evb.dts b/arch/arm/boot/dts/spear600-evb.dts
index d865a891776d..c67e76c8ba5d 100644
--- a/arch/arm/boot/dts/spear600-evb.dts
+++ b/arch/arm/boot/dts/spear600-evb.dts
@@ -22,95 +22,91 @@
22 device_type = "memory"; 22 device_type = "memory";
23 reg = <0 0x10000000>; 23 reg = <0 0x10000000>;
24 }; 24 };
25};
25 26
26 ahb { 27&clcd {
27 clcd@fc200000 { 28 status = "okay";
28 status = "okay"; 29};
29 };
30 30
31 dma@fc400000 { 31&dmac {
32 status = "okay"; 32 status = "okay";
33 }; 33};
34 34
35 ehci@e1800000 { 35&ehci_usb0 {
36 status = "okay"; 36 status = "okay";
37 }; 37};
38 38
39 ehci@e2000000 { 39&ehci_usb1 {
40 status = "okay"; 40 status = "okay";
41 }; 41};
42 42
43 gmac: ethernet@e0800000 { 43&gmac {
44 phy-mode = "gmii"; 44 phy-mode = "gmii";
45 status = "okay"; 45 status = "okay";
46 }; 46};
47 47
48 ohci@e1900000 { 48&ohci_usb0 {
49 status = "okay"; 49 status = "okay";
50 }; 50};
51 51
52 ohci@e2100000 { 52&ohci_usb1 {
53 status = "okay"; 53 status = "okay";
54 }; 54};
55 55
56 smi: flash@fc000000 { 56&smi {
57 status = "okay"; 57 status = "okay";
58 clock-rate=<50000000>; 58 clock-rate = <50000000>;
59
60 flash@f8000000 {
61 #address-cells = <1>;
62 #size-cells = <1>;
63 reg = <0xf8000000 0x800000>;
64 st,smi-fast-mode;
65
66 partition@0 {
67 label = "xloader";
68 reg = <0x0 0x10000>;
69 };
70 partition@10000 {
71 label = "u-boot";
72 reg = <0x10000 0x50000>;
73 };
74 partition@60000 {
75 label = "environment";
76 reg = <0x60000 0x10000>;
77 };
78 partition@70000 {
79 label = "dtb";
80 reg = <0x70000 0x10000>;
81 };
82 partition@80000 {
83 label = "linux";
84 reg = <0x80000 0x310000>;
85 };
86 partition@390000 {
87 label = "rootfs";
88 reg = <0x390000 0x0>;
89 };
90 };
91 };
92 59
93 apb { 60 flash@f8000000 {
94 serial@d0000000 { 61 reg = <0xf8000000 0x800000>;
95 status = "okay"; 62 st,smi-fast-mode;
96 pinctrl-names = "default";
97 pinctrl-0 = <>;
98 };
99 63
100 serial@d0080000 { 64 partitions {
101 status = "okay"; 65 compatible = "fixed-partitions";
102 pinctrl-names = "default"; 66 #address-cells = <1>;
103 pinctrl-0 = <>; 67 #size-cells = <1>;
104 };
105 68
106 rtc@fc900000 { 69 partition@0 {
107 status = "okay"; 70 label = "xloader";
71 reg = <0x0 0x10000>;
108 }; 72 };
109 73 partition@10000 {
110 i2c@d0200000 { 74 label = "u-boot";
111 clock-frequency = <400000>; 75 reg = <0x10000 0x50000>;
112 status = "okay"; 76 };
77 partition@60000 {
78 label = "environment";
79 reg = <0x60000 0x10000>;
80 };
81 partition@70000 {
82 label = "dtb";
83 reg = <0x70000 0x10000>;
84 };
85 partition@80000 {
86 label = "linux";
87 reg = <0x80000 0x310000>;
88 };
89 partition@390000 {
90 label = "rootfs";
91 reg = <0x390000 0x0>;
113 }; 92 };
114 }; 93 };
115 }; 94 };
116}; 95};
96
97&uart0 {
98 status = "okay";
99};
100
101&uart1 {
102 status = "okay";
103};
104
105&rtc {
106 status = "okay";
107};
108
109&i2c {
110 clock-frequency = <400000>;
111 status = "okay";
112};
diff --git a/arch/arm/boot/dts/spear600.dtsi b/arch/arm/boot/dts/spear600.dtsi
index 9f60a7b6a42b..6b32d20acc9f 100644
--- a/arch/arm/boot/dts/spear600.dtsi
+++ b/arch/arm/boot/dts/spear600.dtsi
@@ -49,7 +49,7 @@
49 #interrupt-cells = <1>; 49 #interrupt-cells = <1>;
50 }; 50 };
51 51
52 clcd@fc200000 { 52 clcd: clcd@fc200000 {
53 compatible = "arm,pl110", "arm,primecell"; 53 compatible = "arm,pl110", "arm,primecell";
54 reg = <0xfc200000 0x1000>; 54 reg = <0xfc200000 0x1000>;
55 interrupt-parent = <&vic1>; 55 interrupt-parent = <&vic1>;
@@ -57,7 +57,7 @@
57 status = "disabled"; 57 status = "disabled";
58 }; 58 };
59 59
60 dma@fc400000 { 60 dmac: dma@fc400000 {
61 compatible = "arm,pl080", "arm,primecell"; 61 compatible = "arm,pl080", "arm,primecell";
62 reg = <0xfc400000 0x1000>; 62 reg = <0xfc400000 0x1000>;
63 interrupt-parent = <&vic1>; 63 interrupt-parent = <&vic1>;
@@ -97,7 +97,7 @@
97 status = "disabled"; 97 status = "disabled";
98 }; 98 };
99 99
100 ehci@e1800000 { 100 ehci_usb0: ehci@e1800000 {
101 compatible = "st,spear600-ehci", "usb-ehci"; 101 compatible = "st,spear600-ehci", "usb-ehci";
102 reg = <0xe1800000 0x1000>; 102 reg = <0xe1800000 0x1000>;
103 interrupt-parent = <&vic1>; 103 interrupt-parent = <&vic1>;
@@ -105,7 +105,7 @@
105 status = "disabled"; 105 status = "disabled";
106 }; 106 };
107 107
108 ehci@e2000000 { 108 ehci_usb1: ehci@e2000000 {
109 compatible = "st,spear600-ehci", "usb-ehci"; 109 compatible = "st,spear600-ehci", "usb-ehci";
110 reg = <0xe2000000 0x1000>; 110 reg = <0xe2000000 0x1000>;
111 interrupt-parent = <&vic1>; 111 interrupt-parent = <&vic1>;
@@ -113,7 +113,7 @@
113 status = "disabled"; 113 status = "disabled";
114 }; 114 };
115 115
116 ohci@e1900000 { 116 ohci_usb0: ohci@e1900000 {
117 compatible = "st,spear600-ohci", "usb-ohci"; 117 compatible = "st,spear600-ohci", "usb-ohci";
118 reg = <0xe1900000 0x1000>; 118 reg = <0xe1900000 0x1000>;
119 interrupt-parent = <&vic1>; 119 interrupt-parent = <&vic1>;
@@ -121,7 +121,7 @@
121 status = "disabled"; 121 status = "disabled";
122 }; 122 };
123 123
124 ohci@e2100000 { 124 ohci_usb1: ohci@e2100000 {
125 compatible = "st,spear600-ohci", "usb-ohci"; 125 compatible = "st,spear600-ohci", "usb-ohci";
126 reg = <0xe2100000 0x1000>; 126 reg = <0xe2100000 0x1000>;
127 interrupt-parent = <&vic1>; 127 interrupt-parent = <&vic1>;
@@ -135,7 +135,7 @@
135 compatible = "simple-bus"; 135 compatible = "simple-bus";
136 ranges = <0xd0000000 0xd0000000 0x30000000>; 136 ranges = <0xd0000000 0xd0000000 0x30000000>;
137 137
138 serial@d0000000 { 138 uart0: serial@d0000000 {
139 compatible = "arm,pl011", "arm,primecell"; 139 compatible = "arm,pl011", "arm,primecell";
140 reg = <0xd0000000 0x1000>; 140 reg = <0xd0000000 0x1000>;
141 interrupt-parent = <&vic0>; 141 interrupt-parent = <&vic0>;
@@ -143,7 +143,7 @@
143 status = "disabled"; 143 status = "disabled";
144 }; 144 };
145 145
146 serial@d0080000 { 146 uart1: serial@d0080000 {
147 compatible = "arm,pl011", "arm,primecell"; 147 compatible = "arm,pl011", "arm,primecell";
148 reg = <0xd0080000 0x1000>; 148 reg = <0xd0080000 0x1000>;
149 interrupt-parent = <&vic0>; 149 interrupt-parent = <&vic0>;
@@ -181,7 +181,7 @@
181 interrupts = <4>; 181 interrupts = <4>;
182 }; 182 };
183 183
184 i2c@d0200000 { 184 i2c: i2c@d0200000 {
185 #address-cells = <1>; 185 #address-cells = <1>;
186 #size-cells = <0>; 186 #size-cells = <0>;
187 compatible = "snps,designware-i2c"; 187 compatible = "snps,designware-i2c";
@@ -191,7 +191,7 @@
191 status = "disabled"; 191 status = "disabled";
192 }; 192 };
193 193
194 rtc@fc900000 { 194 rtc: rtc@fc900000 {
195 compatible = "st,spear600-rtc"; 195 compatible = "st,spear600-rtc";
196 reg = <0xfc900000 0x1000>; 196 reg = <0xfc900000 0x1000>;
197 interrupts = <10>; 197 interrupts = <10>;
@@ -204,6 +204,14 @@
204 interrupt-parent = <&vic0>; 204 interrupt-parent = <&vic0>;
205 interrupts = <16>; 205 interrupts = <16>;
206 }; 206 };
207
208 adc: adc@d820b000 {
209 compatible = "st,spear600-adc";
210 reg = <0xd820b000 0x1000>;
211 interrupt-parent = <&vic1>;
212 interrupts = <6>;
213 status = "disabled";
214 };
207 }; 215 };
208 }; 216 };
209}; 217};
diff --git a/arch/arm/boot/dts/stih407-family.dtsi b/arch/arm/boot/dts/stih407-family.dtsi
index 044184580326..12c0757594d7 100644
--- a/arch/arm/boot/dts/stih407-family.dtsi
+++ b/arch/arm/boot/dts/stih407-family.dtsi
@@ -464,6 +464,8 @@
464 clock-names = "ssc"; 464 clock-names = "ssc";
465 pinctrl-names = "default"; 465 pinctrl-names = "default";
466 pinctrl-0 = <&pinctrl_spi1_default>; 466 pinctrl-0 = <&pinctrl_spi1_default>;
467 #address-cells = <1>;
468 #size-cells = <0>;
467 469
468 status = "disabled"; 470 status = "disabled";
469 }; 471 };
@@ -476,6 +478,8 @@
476 clock-names = "ssc"; 478 clock-names = "ssc";
477 pinctrl-names = "default"; 479 pinctrl-names = "default";
478 pinctrl-0 = <&pinctrl_spi2_default>; 480 pinctrl-0 = <&pinctrl_spi2_default>;
481 #address-cells = <1>;
482 #size-cells = <0>;
479 483
480 status = "disabled"; 484 status = "disabled";
481 }; 485 };
@@ -488,6 +492,8 @@
488 clock-names = "ssc"; 492 clock-names = "ssc";
489 pinctrl-names = "default"; 493 pinctrl-names = "default";
490 pinctrl-0 = <&pinctrl_spi3_default>; 494 pinctrl-0 = <&pinctrl_spi3_default>;
495 #address-cells = <1>;
496 #size-cells = <0>;
491 497
492 status = "disabled"; 498 status = "disabled";
493 }; 499 };
@@ -500,6 +506,8 @@
500 clock-names = "ssc"; 506 clock-names = "ssc";
501 pinctrl-names = "default"; 507 pinctrl-names = "default";
502 pinctrl-0 = <&pinctrl_spi4_default>; 508 pinctrl-0 = <&pinctrl_spi4_default>;
509 #address-cells = <1>;
510 #size-cells = <0>;
503 511
504 status = "disabled"; 512 status = "disabled";
505 }; 513 };
@@ -513,6 +521,8 @@
513 clock-names = "ssc"; 521 clock-names = "ssc";
514 pinctrl-names = "default"; 522 pinctrl-names = "default";
515 pinctrl-0 = <&pinctrl_spi10_default>; 523 pinctrl-0 = <&pinctrl_spi10_default>;
524 #address-cells = <1>;
525 #size-cells = <0>;
516 526
517 status = "disabled"; 527 status = "disabled";
518 }; 528 };
@@ -525,6 +535,8 @@
525 clock-names = "ssc"; 535 clock-names = "ssc";
526 pinctrl-names = "default"; 536 pinctrl-names = "default";
527 pinctrl-0 = <&pinctrl_spi11_default>; 537 pinctrl-0 = <&pinctrl_spi11_default>;
538 #address-cells = <1>;
539 #size-cells = <0>;
528 540
529 status = "disabled"; 541 status = "disabled";
530 }; 542 };
@@ -537,6 +549,8 @@
537 clock-names = "ssc"; 549 clock-names = "ssc";
538 pinctrl-names = "default"; 550 pinctrl-names = "default";
539 pinctrl-0 = <&pinctrl_spi12_default>; 551 pinctrl-0 = <&pinctrl_spi12_default>;
552 #address-cells = <1>;
553 #size-cells = <0>;
540 554
541 status = "disabled"; 555 status = "disabled";
542 }; 556 };
@@ -789,7 +803,7 @@
789 status = "okay"; 803 status = "okay";
790 }; 804 };
791 805
792 st231_gp0: remote-processor { 806 st231_gp0: st231-gp0@0 {
793 compatible = "st,st231-rproc"; 807 compatible = "st,st231-rproc";
794 memory-region = <&gp0_reserved>; 808 memory-region = <&gp0_reserved>;
795 resets = <&softreset STIH407_ST231_GP0_SOFTRESET>; 809 resets = <&softreset STIH407_ST231_GP0_SOFTRESET>;
@@ -802,7 +816,7 @@
802 mboxes = <&mailbox0 0 2>, <&mailbox2 0 1>, <&mailbox0 0 3>, <&mailbox2 0 0>; 816 mboxes = <&mailbox0 0 2>, <&mailbox2 0 1>, <&mailbox0 0 3>, <&mailbox2 0 0>;
803 }; 817 };
804 818
805 st231_delta: remote-processor { 819 st231_delta: st231-delta@0 {
806 compatible = "st,st231-rproc"; 820 compatible = "st,st231-rproc";
807 memory-region = <&delta_reserved>; 821 memory-region = <&delta_reserved>;
808 resets = <&softreset STIH407_ST231_DMU_SOFTRESET>; 822 resets = <&softreset STIH407_ST231_DMU_SOFTRESET>;
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
index 3c99466989b1..b6331146aa02 100644
--- a/arch/arm/boot/dts/stm32429i-eval.dts
+++ b/arch/arm/boot/dts/stm32429i-eval.dts
@@ -167,6 +167,34 @@
167 status = "okay"; 167 status = "okay";
168}; 168};
169 169
170&timers1 {
171 status = "okay";
172
173 pwm {
174 pinctrl-0 = <&pwm1_pins>;
175 pinctrl-names = "default";
176 status = "okay";
177 };
178
179 timer@0 {
180 status = "okay";
181 };
182};
183
184&timers3 {
185 status = "okay";
186
187 pwm {
188 pinctrl-0 = <&pwm3_pins>;
189 pinctrl-names = "default";
190 status = "okay";
191 };
192
193 timer@2 {
194 status = "okay";
195 };
196};
197
170&usart1 { 198&usart1 {
171 pinctrl-0 = <&usart1_pins_a>; 199 pinctrl-0 = <&usart1_pins_a>;
172 pinctrl-names = "default"; 200 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/stm32746g-eval.dts b/arch/arm/boot/dts/stm32746g-eval.dts
index 0dc18a0f0940..69a957963fa8 100644
--- a/arch/arm/boot/dts/stm32746g-eval.dts
+++ b/arch/arm/boot/dts/stm32746g-eval.dts
@@ -93,6 +93,10 @@
93 status = "okay"; 93 status = "okay";
94}; 94};
95 95
96&rtc {
97 status = "okay";
98};
99
96&usart1 { 100&usart1 {
97 pinctrl-0 = <&usart1_pins_a>; 101 pinctrl-0 = <&usart1_pins_a>;
98 pinctrl-names = "default"; 102 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 9222b9f37bc0..191fa50e34eb 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -88,6 +88,14 @@
88 gpios = <&gpioa 0 0>; 88 gpios = <&gpioa 0 0>;
89 }; 89 };
90 }; 90 };
91
92 /* This turns on vbus for otg for host mode (dwc2) */
93 vcc5v_otg: vcc5v-otg-regulator {
94 compatible = "regulator-fixed";
95 gpio = <&gpioc 4 0>;
96 regulator-name = "vcc5_host1";
97 regulator-always-on;
98 };
91}; 99};
92 100
93&clk_hse { 101&clk_hse {
@@ -105,3 +113,11 @@
105 pinctrl-names = "default"; 113 pinctrl-names = "default";
106 status = "okay"; 114 status = "okay";
107}; 115};
116
117&usbotg_hs {
118 compatible = "st,stm32f4x9-fsotg";
119 dr_mode = "host";
120 pinctrl-0 = <&usbotg_fs_pins_b>;
121 pinctrl-names = "default";
122 status = "okay";
123};
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index ee0da970e8ad..b2a2b5c38caa 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -450,6 +450,8 @@
450 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>; 450 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>;
451 interrupt-parent = <&adc>; 451 interrupt-parent = <&adc>;
452 interrupts = <0>; 452 interrupts = <0>;
453 dmas = <&dma2 0 0 0x400 0x0>;
454 dma-names = "rx";
453 status = "disabled"; 455 status = "disabled";
454 }; 456 };
455 457
@@ -460,6 +462,8 @@
460 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>; 462 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>;
461 interrupt-parent = <&adc>; 463 interrupt-parent = <&adc>;
462 interrupts = <1>; 464 interrupts = <1>;
465 dmas = <&dma2 3 1 0x400 0x0>;
466 dma-names = "rx";
463 status = "disabled"; 467 status = "disabled";
464 }; 468 };
465 469
@@ -470,6 +474,8 @@
470 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>; 474 clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>;
471 interrupt-parent = <&adc>; 475 interrupt-parent = <&adc>;
472 interrupts = <2>; 476 interrupts = <2>;
477 dmas = <&dma2 1 2 0x400 0x0>;
478 dma-names = "rx";
473 status = "disabled"; 479 status = "disabled";
474 }; 480 };
475 }; 481 };
@@ -666,6 +672,28 @@
666 }; 672 };
667 }; 673 };
668 674
675 usbotg_fs_pins_a: usbotg_fs@0 {
676 pins {
677 pinmux = <STM32F429_PA10_FUNC_OTG_FS_ID>,
678 <STM32F429_PA11_FUNC_OTG_FS_DM>,
679 <STM32F429_PA12_FUNC_OTG_FS_DP>;
680 bias-disable;
681 drive-push-pull;
682 slew-rate = <2>;
683 };
684 };
685
686 usbotg_fs_pins_b: usbotg_fs@1 {
687 pins {
688 pinmux = <STM32F429_PB12_FUNC_OTG_HS_ID>,
689 <STM32F429_PB14_FUNC_OTG_HS_DM>,
690 <STM32F429_PB15_FUNC_OTG_HS_DP>;
691 bias-disable;
692 drive-push-pull;
693 slew-rate = <2>;
694 };
695 };
696
669 usbotg_hs_pins_a: usbotg_hs@0 { 697 usbotg_hs_pins_a: usbotg_hs@0 {
670 pins { 698 pins {
671 pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>, 699 pinmux = <STM32F429_PH4_FUNC_OTG_HS_ULPI_NXT>,
@@ -805,6 +833,15 @@
805 status = "disabled"; 833 status = "disabled";
806 }; 834 };
807 835
836 usbotg_fs: usb@50000000 {
837 compatible = "st,stm32f4x9-fsotg";
838 reg = <0x50000000 0x40000>;
839 interrupts = <67>;
840 clocks = <&rcc 0 39>;
841 clock-names = "otg";
842 status = "disabled";
843 };
844
808 rng: rng@50060800 { 845 rng: rng@50060800 {
809 compatible = "st,stm32-rng"; 846 compatible = "st,stm32-rng";
810 reg = <0x50060800 0x400>; 847 reg = <0x50060800 0x400>;
diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
index 0dd56ef574fa..75470c34b92c 100644
--- a/arch/arm/boot/dts/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/stm32f469-disco.dts
@@ -68,6 +68,15 @@
68 soc { 68 soc {
69 dma-ranges = <0xc0000000 0x0 0x10000000>; 69 dma-ranges = <0xc0000000 0x0 0x10000000>;
70 }; 70 };
71
72 /* This turns on vbus for otg for host mode (dwc2) */
73 vcc5v_otg: vcc5v-otg-regulator {
74 compatible = "regulator-fixed";
75 enable-active-high;
76 gpio = <&gpiob 2 0>;
77 regulator-name = "vcc5_host1";
78 regulator-always-on;
79 };
71}; 80};
72 81
73&rcc { 82&rcc {
@@ -115,3 +124,10 @@
115 pinctrl-names = "default"; 124 pinctrl-names = "default";
116 status = "okay"; 125 status = "okay";
117}; 126};
127
128&usbotg_fs {
129 dr_mode = "host";
130 pinctrl-0 = <&usbotg_fs_pins_a>;
131 pinctrl-names = "default";
132 status = "okay";
133};
diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
index 755fb923c07b..c2765ce12e2e 100644
--- a/arch/arm/boot/dts/stm32f746.dtsi
+++ b/arch/arm/boot/dts/stm32f746.dtsi
@@ -43,6 +43,8 @@
43#include "skeleton.dtsi" 43#include "skeleton.dtsi"
44#include "armv7-m.dtsi" 44#include "armv7-m.dtsi"
45#include <dt-bindings/pinctrl/stm32f746-pinfunc.h> 45#include <dt-bindings/pinctrl/stm32f746-pinfunc.h>
46#include <dt-bindings/clock/stm32fx-clock.h>
47#include <dt-bindings/mfd/stm32f7-rcc.h>
46 48
47/ { 49/ {
48 clocks { 50 clocks {
@@ -51,6 +53,24 @@
51 compatible = "fixed-clock"; 53 compatible = "fixed-clock";
52 clock-frequency = <0>; 54 clock-frequency = <0>;
53 }; 55 };
56
57 clk-lse {
58 #clock-cells = <0>;
59 compatible = "fixed-clock";
60 clock-frequency = <32768>;
61 };
62
63 clk-lsi {
64 #clock-cells = <0>;
65 compatible = "fixed-clock";
66 clock-frequency = <32000>;
67 };
68
69 clk_i2s_ckin: clk-i2s-ckin {
70 #clock-cells = <0>;
71 compatible = "fixed-clock";
72 clock-frequency = <48000000>;
73 };
54 }; 74 };
55 75
56 soc { 76 soc {
@@ -58,7 +78,7 @@
58 compatible = "st,stm32-timer"; 78 compatible = "st,stm32-timer";
59 reg = <0x40000000 0x400>; 79 reg = <0x40000000 0x400>;
60 interrupts = <28>; 80 interrupts = <28>;
61 clocks = <&rcc 0 128>; 81 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
62 status = "disabled"; 82 status = "disabled";
63 }; 83 };
64 84
@@ -66,7 +86,7 @@
66 compatible = "st,stm32-timer"; 86 compatible = "st,stm32-timer";
67 reg = <0x40000400 0x400>; 87 reg = <0x40000400 0x400>;
68 interrupts = <29>; 88 interrupts = <29>;
69 clocks = <&rcc 0 129>; 89 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
70 status = "disabled"; 90 status = "disabled";
71 }; 91 };
72 92
@@ -74,7 +94,7 @@
74 compatible = "st,stm32-timer"; 94 compatible = "st,stm32-timer";
75 reg = <0x40000800 0x400>; 95 reg = <0x40000800 0x400>;
76 interrupts = <30>; 96 interrupts = <30>;
77 clocks = <&rcc 0 130>; 97 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
78 status = "disabled"; 98 status = "disabled";
79 }; 99 };
80 100
@@ -82,14 +102,14 @@
82 compatible = "st,stm32-timer"; 102 compatible = "st,stm32-timer";
83 reg = <0x40000c00 0x400>; 103 reg = <0x40000c00 0x400>;
84 interrupts = <50>; 104 interrupts = <50>;
85 clocks = <&rcc 0 131>; 105 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
86 }; 106 };
87 107
88 timer6: timer@40001000 { 108 timer6: timer@40001000 {
89 compatible = "st,stm32-timer"; 109 compatible = "st,stm32-timer";
90 reg = <0x40001000 0x400>; 110 reg = <0x40001000 0x400>;
91 interrupts = <54>; 111 interrupts = <54>;
92 clocks = <&rcc 0 132>; 112 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
93 status = "disabled"; 113 status = "disabled";
94 }; 114 };
95 115
@@ -97,7 +117,21 @@
97 compatible = "st,stm32-timer"; 117 compatible = "st,stm32-timer";
98 reg = <0x40001400 0x400>; 118 reg = <0x40001400 0x400>;
99 interrupts = <55>; 119 interrupts = <55>;
100 clocks = <&rcc 0 133>; 120 clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
121 status = "disabled";
122 };
123
124 rtc: rtc@40002800 {
125 compatible = "st,stm32-rtc";
126 reg = <0x40002800 0x400>;
127 clocks = <&rcc 1 CLK_RTC>;
128 clock-names = "ck_rtc";
129 assigned-clocks = <&rcc 1 CLK_RTC>;
130 assigned-clock-parents = <&rcc 1 CLK_LSE>;
131 interrupt-parent = <&exti>;
132 interrupts = <17 1>;
133 interrupt-names = "alarm";
134 st,syscfg = <&pwrcfg>;
101 status = "disabled"; 135 status = "disabled";
102 }; 136 };
103 137
@@ -105,7 +139,7 @@
105 compatible = "st,stm32f7-usart", "st,stm32f7-uart"; 139 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
106 reg = <0x40004400 0x400>; 140 reg = <0x40004400 0x400>;
107 interrupts = <38>; 141 interrupts = <38>;
108 clocks = <&rcc 0 145>; 142 clocks = <&rcc 1 CLK_USART2>;
109 status = "disabled"; 143 status = "disabled";
110 }; 144 };
111 145
@@ -113,7 +147,7 @@
113 compatible = "st,stm32f7-usart", "st,stm32f7-uart"; 147 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
114 reg = <0x40004800 0x400>; 148 reg = <0x40004800 0x400>;
115 interrupts = <39>; 149 interrupts = <39>;
116 clocks = <&rcc 0 146>; 150 clocks = <&rcc 1 CLK_USART3>;
117 status = "disabled"; 151 status = "disabled";
118 }; 152 };
119 153
@@ -121,7 +155,7 @@
121 compatible = "st,stm32f7-uart"; 155 compatible = "st,stm32f7-uart";
122 reg = <0x40004c00 0x400>; 156 reg = <0x40004c00 0x400>;
123 interrupts = <52>; 157 interrupts = <52>;
124 clocks = <&rcc 0 147>; 158 clocks = <&rcc 1 CLK_UART4>;
125 status = "disabled"; 159 status = "disabled";
126 }; 160 };
127 161
@@ -129,7 +163,7 @@
129 compatible = "st,stm32f7-uart"; 163 compatible = "st,stm32f7-uart";
130 reg = <0x40005000 0x400>; 164 reg = <0x40005000 0x400>;
131 interrupts = <53>; 165 interrupts = <53>;
132 clocks = <&rcc 0 148>; 166 clocks = <&rcc 1 CLK_UART5>;
133 status = "disabled"; 167 status = "disabled";
134 }; 168 };
135 169
@@ -137,7 +171,7 @@
137 compatible = "st,stm32f7-usart", "st,stm32f7-uart"; 171 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
138 reg = <0x40007800 0x400>; 172 reg = <0x40007800 0x400>;
139 interrupts = <82>; 173 interrupts = <82>;
140 clocks = <&rcc 0 158>; 174 clocks = <&rcc 1 CLK_UART7>;
141 status = "disabled"; 175 status = "disabled";
142 }; 176 };
143 177
@@ -145,7 +179,7 @@
145 compatible = "st,stm32f7-usart", "st,stm32f7-uart"; 179 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
146 reg = <0x40007c00 0x400>; 180 reg = <0x40007c00 0x400>;
147 interrupts = <83>; 181 interrupts = <83>;
148 clocks = <&rcc 0 159>; 182 clocks = <&rcc 1 CLK_UART8>;
149 status = "disabled"; 183 status = "disabled";
150 }; 184 };
151 185
@@ -153,7 +187,7 @@
153 compatible = "st,stm32f7-usart", "st,stm32f7-uart"; 187 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
154 reg = <0x40011000 0x400>; 188 reg = <0x40011000 0x400>;
155 interrupts = <37>; 189 interrupts = <37>;
156 clocks = <&rcc 0 164>; 190 clocks = <&rcc 1 CLK_USART1>;
157 status = "disabled"; 191 status = "disabled";
158 }; 192 };
159 193
@@ -161,7 +195,7 @@
161 compatible = "st,stm32f7-usart", "st,stm32f7-uart"; 195 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
162 reg = <0x40011400 0x400>; 196 reg = <0x40011400 0x400>;
163 interrupts = <71>; 197 interrupts = <71>;
164 clocks = <&rcc 0 165>; 198 clocks = <&rcc 1 CLK_USART6>;
165 status = "disabled"; 199 status = "disabled";
166 }; 200 };
167 201
@@ -178,6 +212,11 @@
178 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>; 212 interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
179 }; 213 };
180 214
215 pwrcfg: power-config@40007000 {
216 compatible = "syscon";
217 reg = <0x40007000 0x400>;
218 };
219
181 pin-controller { 220 pin-controller {
182 #address-cells = <1>; 221 #address-cells = <1>;
183 #size-cells = <1>; 222 #size-cells = <1>;
@@ -191,7 +230,7 @@
191 gpio-controller; 230 gpio-controller;
192 #gpio-cells = <2>; 231 #gpio-cells = <2>;
193 reg = <0x0 0x400>; 232 reg = <0x0 0x400>;
194 clocks = <&rcc 0 256>; 233 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOA)>;
195 st,bank-name = "GPIOA"; 234 st,bank-name = "GPIOA";
196 }; 235 };
197 236
@@ -199,7 +238,7 @@
199 gpio-controller; 238 gpio-controller;
200 #gpio-cells = <2>; 239 #gpio-cells = <2>;
201 reg = <0x400 0x400>; 240 reg = <0x400 0x400>;
202 clocks = <&rcc 0 257>; 241 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOB)>;
203 st,bank-name = "GPIOB"; 242 st,bank-name = "GPIOB";
204 }; 243 };
205 244
@@ -207,7 +246,7 @@
207 gpio-controller; 246 gpio-controller;
208 #gpio-cells = <2>; 247 #gpio-cells = <2>;
209 reg = <0x800 0x400>; 248 reg = <0x800 0x400>;
210 clocks = <&rcc 0 258>; 249 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOC)>;
211 st,bank-name = "GPIOC"; 250 st,bank-name = "GPIOC";
212 }; 251 };
213 252
@@ -215,7 +254,7 @@
215 gpio-controller; 254 gpio-controller;
216 #gpio-cells = <2>; 255 #gpio-cells = <2>;
217 reg = <0xc00 0x400>; 256 reg = <0xc00 0x400>;
218 clocks = <&rcc 0 259>; 257 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOD)>;
219 st,bank-name = "GPIOD"; 258 st,bank-name = "GPIOD";
220 }; 259 };
221 260
@@ -223,7 +262,7 @@
223 gpio-controller; 262 gpio-controller;
224 #gpio-cells = <2>; 263 #gpio-cells = <2>;
225 reg = <0x1000 0x400>; 264 reg = <0x1000 0x400>;
226 clocks = <&rcc 0 260>; 265 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOE)>;
227 st,bank-name = "GPIOE"; 266 st,bank-name = "GPIOE";
228 }; 267 };
229 268
@@ -231,7 +270,7 @@
231 gpio-controller; 270 gpio-controller;
232 #gpio-cells = <2>; 271 #gpio-cells = <2>;
233 reg = <0x1400 0x400>; 272 reg = <0x1400 0x400>;
234 clocks = <&rcc 0 261>; 273 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOF)>;
235 st,bank-name = "GPIOF"; 274 st,bank-name = "GPIOF";
236 }; 275 };
237 276
@@ -239,7 +278,7 @@
239 gpio-controller; 278 gpio-controller;
240 #gpio-cells = <2>; 279 #gpio-cells = <2>;
241 reg = <0x1800 0x400>; 280 reg = <0x1800 0x400>;
242 clocks = <&rcc 0 262>; 281 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOG)>;
243 st,bank-name = "GPIOG"; 282 st,bank-name = "GPIOG";
244 }; 283 };
245 284
@@ -247,7 +286,7 @@
247 gpio-controller; 286 gpio-controller;
248 #gpio-cells = <2>; 287 #gpio-cells = <2>;
249 reg = <0x1c00 0x400>; 288 reg = <0x1c00 0x400>;
250 clocks = <&rcc 0 263>; 289 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOH)>;
251 st,bank-name = "GPIOH"; 290 st,bank-name = "GPIOH";
252 }; 291 };
253 292
@@ -255,7 +294,7 @@
255 gpio-controller; 294 gpio-controller;
256 #gpio-cells = <2>; 295 #gpio-cells = <2>;
257 reg = <0x2000 0x400>; 296 reg = <0x2000 0x400>;
258 clocks = <&rcc 0 264>; 297 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOI)>;
259 st,bank-name = "GPIOI"; 298 st,bank-name = "GPIOI";
260 }; 299 };
261 300
@@ -263,7 +302,7 @@
263 gpio-controller; 302 gpio-controller;
264 #gpio-cells = <2>; 303 #gpio-cells = <2>;
265 reg = <0x2400 0x400>; 304 reg = <0x2400 0x400>;
266 clocks = <&rcc 0 265>; 305 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOJ)>;
267 st,bank-name = "GPIOJ"; 306 st,bank-name = "GPIOJ";
268 }; 307 };
269 308
@@ -271,7 +310,7 @@
271 gpio-controller; 310 gpio-controller;
272 #gpio-cells = <2>; 311 #gpio-cells = <2>;
273 reg = <0x2800 0x400>; 312 reg = <0x2800 0x400>;
274 clocks = <&rcc 0 266>; 313 clocks = <&rcc 0 STM32F7_AHB1_CLOCK(GPIOK)>;
275 st,bank-name = "GPIOK"; 314 st,bank-name = "GPIOK";
276 }; 315 };
277 316
@@ -298,9 +337,12 @@
298 337
299 rcc: rcc@40023800 { 338 rcc: rcc@40023800 {
300 #clock-cells = <2>; 339 #clock-cells = <2>;
301 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc"; 340 compatible = "st,stm32f746-rcc", "st,stm32-rcc";
302 reg = <0x40023800 0x400>; 341 reg = <0x40023800 0x400>;
303 clocks = <&clk_hse>; 342 clocks = <&clk_hse>, <&clk_i2s_ckin>;
343 st,syscfg = <&pwrcfg>;
344 assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
345 assigned-clock-rates = <1000000>;
304 }; 346 };
305 }; 347 };
306}; 348};
diff --git a/arch/arm/boot/dts/stm32h743-pinctrl.dtsi b/arch/arm/boot/dts/stm32h743-pinctrl.dtsi
new file mode 100644
index 000000000000..fcc1e0640233
--- /dev/null
+++ b/arch/arm/boot/dts/stm32h743-pinctrl.dtsi
@@ -0,0 +1,156 @@
1/*
2 * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.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 <dt-bindings/pinctrl/stm32h7-pinfunc.h>
44
45/ {
46 soc {
47 pin-controller {
48 #address-cells = <1>;
49 #size-cells = <1>;
50 compatible = "st,stm32h743-pinctrl";
51 ranges = <0 0x58020000 0x3000>;
52 pins-are-numbered;
53
54 gpioa: gpio@58020000 {
55 gpio-controller;
56 #gpio-cells = <2>;
57 reg = <0x0 0x400>;
58 clocks = <&timer_clk>;
59 st,bank-name = "GPIOA";
60 };
61
62 gpiob: gpio@58020400 {
63 gpio-controller;
64 #gpio-cells = <2>;
65 reg = <0x400 0x400>;
66 clocks = <&timer_clk>;
67 st,bank-name = "GPIOB";
68 };
69
70 gpioc: gpio@58020800 {
71 gpio-controller;
72 #gpio-cells = <2>;
73 reg = <0x800 0x400>;
74 clocks = <&timer_clk>;
75 st,bank-name = "GPIOC";
76 };
77
78 gpiod: gpio@58020c00 {
79 gpio-controller;
80 #gpio-cells = <2>;
81 reg = <0xc00 0x400>;
82 clocks = <&timer_clk>;
83 st,bank-name = "GPIOD";
84 };
85
86 gpioe: gpio@58021000 {
87 gpio-controller;
88 #gpio-cells = <2>;
89 reg = <0x1000 0x400>;
90 clocks = <&timer_clk>;
91 st,bank-name = "GPIOE";
92 };
93
94 gpiof: gpio@58021400 {
95 gpio-controller;
96 #gpio-cells = <2>;
97 reg = <0x1400 0x400>;
98 clocks = <&timer_clk>;
99 st,bank-name = "GPIOF";
100 };
101
102 gpiog: gpio@58021800 {
103 gpio-controller;
104 #gpio-cells = <2>;
105 reg = <0x1800 0x400>;
106 clocks = <&timer_clk>;
107 st,bank-name = "GPIOG";
108 };
109
110 gpioh: gpio@58021c00 {
111 gpio-controller;
112 #gpio-cells = <2>;
113 reg = <0x1c00 0x400>;
114 clocks = <&timer_clk>;
115 st,bank-name = "GPIOH";
116 };
117
118 gpioi: gpio@58022000 {
119 gpio-controller;
120 #gpio-cells = <2>;
121 reg = <0x2000 0x400>;
122 clocks = <&timer_clk>;
123 st,bank-name = "GPIOI";
124 };
125
126 gpioj: gpio@58022400 {
127 gpio-controller;
128 #gpio-cells = <2>;
129 reg = <0x2400 0x400>;
130 clocks = <&timer_clk>;
131 st,bank-name = "GPIOJ";
132 };
133
134 gpiok: gpio@58022800 {
135 gpio-controller;
136 #gpio-cells = <2>;
137 reg = <0x2800 0x400>;
138 clocks = <&timer_clk>;
139 st,bank-name = "GPIOK";
140 };
141
142 usart1_pins: usart1@0 {
143 pins1 {
144 pinmux = <STM32H7_PB14_FUNC_USART1_TX>;
145 bias-disable;
146 drive-push-pull;
147 slew-rate = <0>;
148 };
149 pins2 {
150 pinmux = <STM32H7_PB15_FUNC_USART1_RX>;
151 bias-disable;
152 };
153 };
154 };
155 };
156};
diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi
new file mode 100644
index 000000000000..46856298ee16
--- /dev/null
+++ b/arch/arm/boot/dts/stm32h743.dtsi
@@ -0,0 +1,83 @@
1/*
2 * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.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
46/ {
47 clocks {
48 clk_hse: clk-hse {
49 #clock-cells = <0>;
50 compatible = "fixed-clock";
51 clock-frequency = <0>;
52 };
53
54 timer_clk: timer-clk {
55 #clock-cells = <0>;
56 compatible = "fixed-clock";
57 clock-frequency = <125000000>;
58 };
59 };
60
61 soc {
62 usart1: serial@40011000 {
63 compatible = "st,stm32f7-usart", "st,stm32f7-uart";
64 reg = <0x40011000 0x400>;
65 interrupts = <37>;
66 status = "disabled";
67 clocks = <&timer_clk>;
68
69 };
70
71 timer5: timer@40000c00 {
72 compatible = "st,stm32-timer";
73 reg = <0x40000c00 0x400>;
74 interrupts = <50>;
75 clocks = <&timer_clk>;
76 };
77 };
78};
79
80&systick {
81 clock-frequency = <250000000>;
82 status = "okay";
83};
diff --git a/arch/arm/boot/dts/stm32h743i-eval.dts b/arch/arm/boot/dts/stm32h743i-eval.dts
new file mode 100644
index 000000000000..c6effbb36e4a
--- /dev/null
+++ b/arch/arm/boot/dts/stm32h743i-eval.dts
@@ -0,0 +1,74 @@
1/*
2 * Copyright 2017 - Alexandre Torgue <alexandre.torgue@st.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 "stm32h743.dtsi"
45#include "stm32h743-pinctrl.dtsi"
46
47/ {
48 model = "STMicroelectronics STM32H743i-EVAL board";
49 compatible = "st,stm32h743i-eval", "st,stm32h743";
50
51 chosen {
52 bootargs = "root=/dev/ram";
53 stdout-path = "serial0:115200n8";
54 };
55
56 memory {
57 reg = <0xd0000000 0x2000000>;
58 };
59
60 aliases {
61 serial0 = &usart1;
62 };
63};
64
65&clk_hse {
66 clock-frequency = <125000000>;
67};
68
69&usart1 {
70 pinctrl-0 = <&usart1_pins>;
71 pinctrl-names = "default";
72 status = "okay";
73};
74
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
index f3fc27412a67..f2a01fe2bebc 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "Mele A1000"; 52 model = "Mele A1000";
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index 04e040e6233d..d844938e2aa7 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -46,7 +46,6 @@
46#include "sunxi-common-regulators.dtsi" 46#include "sunxi-common-regulators.dtsi"
47 47
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Cubietech Cubieboard"; 51 model = "Cubietech Cubieboard";
diff --git a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
index 8317fbfeec4a..aad3bec1cb39 100644
--- a/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
+++ b/arch/arm/boot/dts/sun4i-a10-dserve-dsrv9703c.dts
@@ -46,7 +46,6 @@
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h> 49#include <dt-bindings/pwm/pwm.h>
51 50
52/ { 51/ {
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index a48b46474417..a1a7282199d5 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "Miniand Hackberry"; 52 model = "Miniand Hackberry";
diff --git a/arch/arm/boot/dts/sun4i-a10-inet1.dts b/arch/arm/boot/dts/sun4i-a10-inet1.dts
index f3092703a1a6..b8923b92cb36 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet1.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet1.dts
@@ -46,7 +46,6 @@
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h> 49#include <dt-bindings/pwm/pwm.h>
51 50
52/ { 51/ {
diff --git a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
index 4ef2a60a8cd4..4a27eb9102cd 100644
--- a/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
+++ b/arch/arm/boot/dts/sun4i-a10-inet9f-rev03.dts
@@ -46,7 +46,6 @@
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "iNet-9F Rev 03"; 51 model = "iNet-9F Rev 03";
diff --git a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
index fc4d4d49e2e2..308dc1513041 100644
--- a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
+++ b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "Jesurun Q5"; 52 model = "Jesurun Q5";
diff --git a/arch/arm/boot/dts/sun4i-a10-marsboard.dts b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
index a2885039d5f1..98a5f7258dca 100644
--- a/arch/arm/boot/dts/sun4i-a10-marsboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-marsboard.dts
@@ -46,7 +46,6 @@
46#include "sunxi-common-regulators.dtsi" 46#include "sunxi-common-regulators.dtsi"
47 47
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "HAOYU Electronics Marsboard A10"; 51 model = "HAOYU Electronics Marsboard A10";
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
index af42ebb3a97b..484c57493bd2 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "PineRiver Mini X-Plus"; 52 model = "PineRiver Mini X-Plus";
diff --git a/arch/arm/boot/dts/sun4i-a10-mk802.dts b/arch/arm/boot/dts/sun4i-a10-mk802.dts
index 9c1afd4277d7..2b75745cd246 100644
--- a/arch/arm/boot/dts/sun4i-a10-mk802.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mk802.dts
@@ -44,7 +44,6 @@
44#include "sun4i-a10.dtsi" 44#include "sun4i-a10.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48 47
49/ { 48/ {
50 model = "MK802"; 49 model = "MK802";
diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
index 214a5accfe93..3a2522a9419d 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "Olimex A10-OLinuXino-LIME"; 50 model = "Olimex A10-OLinuXino-LIME";
diff --git a/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
index b0365d63ba70..83596fd2ccfc 100644
--- a/arch/arm/boot/dts/sun4i-a10-pcduino.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pcduino.dts
@@ -47,7 +47,6 @@
47 47
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h> 49#include <dt-bindings/input/input.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "LinkSprite pcDuino"; 52 model = "LinkSprite pcDuino";
diff --git a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
index bfa6bbdaab27..a68c7cc53b94 100644
--- a/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
+++ b/arch/arm/boot/dts/sun4i-a10-pov-protab2-ips9.dts
@@ -46,7 +46,6 @@
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h> 49#include <dt-bindings/pwm/pwm.h>
51 50
52/ { 51/ {
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index ba20b48c0702..b63668ece151 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -47,7 +47,6 @@
47 47
48#include <dt-bindings/clock/sun4i-a10-pll2.h> 48#include <dt-bindings/clock/sun4i-a10-pll2.h>
49#include <dt-bindings/dma/sun4i-a10.h> 49#include <dt-bindings/dma/sun4i-a10.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 interrupt-parent = <&intc>; 52 interrupt-parent = <&intc>;
@@ -974,6 +973,11 @@
974 #interrupt-cells = <3>; 973 #interrupt-cells = <3>;
975 #gpio-cells = <3>; 974 #gpio-cells = <3>;
976 975
976 can0_pins_a: can0@0 {
977 pins = "PH20", "PH21";
978 function = "can";
979 };
980
977 emac_pins_a: emac0@0 { 981 emac_pins_a: emac0@0 {
978 pins = "PA0", "PA1", "PA2", 982 pins = "PA0", "PA1", "PA2",
979 "PA3", "PA4", "PA5", "PA6", 983 "PA3", "PA4", "PA5", "PA6",
@@ -1283,6 +1287,22 @@
1283 status = "disabled"; 1287 status = "disabled";
1284 }; 1288 };
1285 1289
1290 ps20: ps2@01c2a000 {
1291 compatible = "allwinner,sun4i-a10-ps2";
1292 reg = <0x01c2a000 0x400>;
1293 interrupts = <62>;
1294 clocks = <&apb1_gates 6>;
1295 status = "disabled";
1296 };
1297
1298 ps21: ps2@01c2a400 {
1299 compatible = "allwinner,sun4i-a10-ps2";
1300 reg = <0x01c2a400 0x400>;
1301 interrupts = <63>;
1302 clocks = <&apb1_gates 7>;
1303 status = "disabled";
1304 };
1305
1286 i2c0: i2c@01c2ac00 { 1306 i2c0: i2c@01c2ac00 {
1287 compatible = "allwinner,sun4i-a10-i2c"; 1307 compatible = "allwinner,sun4i-a10-i2c";
1288 reg = <0x01c2ac00 0x400>; 1308 reg = <0x01c2ac00 0x400>;
@@ -1313,19 +1333,11 @@
1313 #size-cells = <0>; 1333 #size-cells = <0>;
1314 }; 1334 };
1315 1335
1316 ps20: ps2@01c2a000 { 1336 can0: can@01c2bc00 {
1317 compatible = "allwinner,sun4i-a10-ps2"; 1337 compatible = "allwinner,sun4i-a10-can";
1318 reg = <0x01c2a000 0x400>; 1338 reg = <0x01c2bc00 0x400>;
1319 interrupts = <62>; 1339 interrupts = <26>;
1320 clocks = <&apb1_gates 6>; 1340 clocks = <&apb1_gates 4>;
1321 status = "disabled";
1322 };
1323
1324 ps21: ps2@01c2a400 {
1325 compatible = "allwinner,sun4i-a10-ps2";
1326 reg = <0x01c2a400 0x400>;
1327 interrupts = <63>;
1328 clocks = <&apb1_gates 7>;
1329 status = "disabled"; 1341 status = "disabled";
1330 }; 1342 };
1331 }; 1343 };
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
index a539b72ce093..c6f742a7e69f 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t003.dts
@@ -44,7 +44,6 @@
44#include "sun5i-a10s.dtsi" 44#include "sun5i-a10s.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48 47
49/ { 48/ {
50 model = "Auxtek t003 A10s hdmi tv-stick"; 49 model = "Auxtek t003 A10s hdmi tv-stick";
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
index e1b5e8a446fe..a27c3fa58736 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
@@ -44,7 +44,6 @@
44#include "sun5i-a10s.dtsi" 44#include "sun5i-a10s.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48 47
49/ { 48/ {
50 model = "Auxtek t004 A10s hdmi tv-stick"; 49 model = "Auxtek t004 A10s hdmi tv-stick";
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index d8245c6314a7..894f874a5beb 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h> 50#include <dt-bindings/input/input.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Olimex A10s-Olinuxino Micro"; 53 model = "Olimex A10s-Olinuxino Micro";
@@ -83,7 +82,7 @@
83 82
84&emac { 83&emac {
85 pinctrl-names = "default"; 84 pinctrl-names = "default";
86 pinctrl-0 = <&emac_pins_a>; 85 pinctrl-0 = <&emac_pins_b>;
87 phy = <&phy1>; 86 phy = <&phy1>;
88 status = "okay"; 87 status = "okay";
89}; 88};
@@ -257,7 +256,7 @@
257 256
258&uart2 { 257&uart2 {
259 pinctrl-names = "default"; 258 pinctrl-names = "default";
260 pinctrl-0 = <&uart2_pins_a>; 259 pinctrl-0 = <&uart2_pins_b>;
261 status = "okay"; 260 status = "okay";
262}; 261};
263 262
diff --git a/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts b/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
index 51371f9b1cf0..262b3669f04d 100644
--- a/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-r7-tv-dongle.dts
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "R7 A10s hdmi tv-stick"; 50 model = "R7 A10s hdmi tv-stick";
diff --git a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
index 2b8adda0deda..ea3e5655a61b 100644
--- a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "A10s-Wobo i5"; 51 model = "A10s-Wobo i5";
@@ -95,7 +94,7 @@
95 94
96&emac { 95&emac {
97 pinctrl-names = "default"; 96 pinctrl-names = "default";
98 pinctrl-0 = <&emac_pins_b>; 97 pinctrl-0 = <&emac_pins_a>;
99 phy = <&phy1>; 98 phy = <&phy1>;
100 status = "okay"; 99 status = "okay";
101}; 100};
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index 24b0f5f556f8..1e38ff80366c 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -47,7 +47,6 @@
47#include "sun5i.dtsi" 47#include "sun5i.dtsi"
48 48
49#include <dt-bindings/dma/sun4i-a10.h> 49#include <dt-bindings/dma/sun4i-a10.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 interrupt-parent = <&intc>; 52 interrupt-parent = <&intc>;
@@ -61,7 +60,7 @@
61 #size-cells = <1>; 60 #size-cells = <1>;
62 ranges; 61 ranges;
63 62
64 framebuffer@0 { 63 framebuffer@2 {
65 compatible = "allwinner,simple-framebuffer", 64 compatible = "allwinner,simple-framebuffer",
66 "simple-framebuffer"; 65 "simple-framebuffer";
67 allwinner,pipeline = "de_be0-lcd0-hdmi"; 66 allwinner,pipeline = "de_be0-lcd0-hdmi";
@@ -70,45 +69,9 @@
70 <&ccu CLK_DE_BE>, <&ccu CLK_HDMI>; 69 <&ccu CLK_DE_BE>, <&ccu CLK_HDMI>;
71 status = "disabled"; 70 status = "disabled";
72 }; 71 };
73
74 framebuffer@1 {
75 compatible = "allwinner,simple-framebuffer",
76 "simple-framebuffer";
77 allwinner,pipeline = "de_be0-lcd0";
78 clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
79 <&ccu CLK_TCON_CH0>, <&ccu CLK_DRAM_DE_BE>;
80 status = "disabled";
81 };
82
83 framebuffer@2 {
84 compatible = "allwinner,simple-framebuffer",
85 "simple-framebuffer";
86 allwinner,pipeline = "de_be0-lcd0-tve0";
87 clocks = <&ccu CLK_AHB_TVE>, <&ccu CLK_AHB_LCD>,
88 <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
89 <&ccu CLK_TCON_CH1>, <&ccu CLK_DRAM_DE_BE>;
90 status = "disabled";
91 };
92 }; 72 };
93 73
94 soc@01c00000 { 74 soc@01c00000 {
95 emac: ethernet@01c0b000 {
96 compatible = "allwinner,sun4i-a10-emac";
97 reg = <0x01c0b000 0x1000>;
98 interrupts = <55>;
99 clocks = <&ccu CLK_AHB_EMAC>;
100 allwinner,sram = <&emac_sram 1>;
101 status = "disabled";
102 };
103
104 mdio: mdio@01c0b080 {
105 compatible = "allwinner,sun4i-a10-mdio";
106 reg = <0x01c0b080 0x14>;
107 status = "disabled";
108 #address-cells = <1>;
109 #size-cells = <0>;
110 };
111
112 pwm: pwm@01c20e00 { 75 pwm: pwm@01c20e00 {
113 compatible = "allwinner,sun5i-a10s-pwm"; 76 compatible = "allwinner,sun5i-a10s-pwm";
114 reg = <0x01c20e00 0xc>; 77 reg = <0x01c20e00 0xc>;
@@ -116,26 +79,6 @@
116 #pwm-cells = <3>; 79 #pwm-cells = <3>;
117 status = "disabled"; 80 status = "disabled";
118 }; 81 };
119
120 uart0: serial@01c28000 {
121 compatible = "snps,dw-apb-uart";
122 reg = <0x01c28000 0x400>;
123 interrupts = <1>;
124 reg-shift = <2>;
125 reg-io-width = <4>;
126 clocks = <&ccu CLK_APB1_UART0>;
127 status = "disabled";
128 };
129
130 uart2: serial@01c28800 {
131 compatible = "snps,dw-apb-uart";
132 reg = <0x01c28800 0x400>;
133 interrupts = <3>;
134 reg-shift = <2>;
135 reg-io-width = <4>;
136 clocks = <&ccu CLK_APB1_UART2>;
137 status = "disabled";
138 };
139 }; 82 };
140}; 83};
141 84
@@ -151,12 +94,12 @@
151 function = "uart0"; 94 function = "uart0";
152 }; 95 };
153 96
154 uart2_pins_a: uart2@0 { 97 uart2_pins_b: uart2@1 {
155 pins = "PC18", "PC19"; 98 pins = "PC18", "PC19";
156 function = "uart2"; 99 function = "uart2";
157 }; 100 };
158 101
159 emac_pins_a: emac0@0 { 102 emac_pins_b: emac0@1 {
160 pins = "PA0", "PA1", "PA2", 103 pins = "PA0", "PA1", "PA2",
161 "PA3", "PA4", "PA5", "PA6", 104 "PA3", "PA4", "PA5", "PA6",
162 "PA7", "PA8", "PA9", "PA10", 105 "PA7", "PA8", "PA9", "PA10",
@@ -165,15 +108,6 @@
165 function = "emac"; 108 function = "emac";
166 }; 109 };
167 110
168 emac_pins_b: emac0@1 {
169 pins = "PD6", "PD7", "PD10",
170 "PD11", "PD12", "PD13", "PD14",
171 "PD15", "PD18", "PD19", "PD20",
172 "PD21", "PD22", "PD23", "PD24",
173 "PD25", "PD26", "PD27";
174 function = "emac";
175 };
176
177 mmc1_pins_a: mmc1@0 { 111 mmc1_pins_a: mmc1@0 {
178 pins = "PG3", "PG4", "PG5", 112 pins = "PG3", "PG4", "PG5",
179 "PG6", "PG7", "PG8"; 113 "PG6", "PG7", "PG8";
@@ -193,9 +127,4 @@
193}; 127};
194 128
195&sram_a { 129&sram_a {
196 emac_sram: sram-section@8000 {
197 compatible = "allwinner,sun4i-a10-sram-a3-a4";
198 reg = <0x8000 0x4000>;
199 status = "disabled";
200 };
201}; 130};
diff --git a/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts b/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
index 42435454acef..34411d27aadf 100644
--- a/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
+++ b/arch/arm/boot/dts/sun5i-a13-empire-electronix-d709.dts
@@ -46,7 +46,6 @@
46#include <dt-bindings/gpio/gpio.h> 46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h> 49#include <dt-bindings/pwm/pwm.h>
51 50
52/ { 51/ {
diff --git a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
index 5879a75cf97a..2489c16f7efa 100644
--- a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
+++ b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "HSG H702"; 51 model = "HSG H702";
diff --git a/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts b/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts
index 566cda91a66b..bc883893f4a4 100644
--- a/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts
+++ b/arch/arm/boot/dts/sun5i-a13-licheepi-one.dts
@@ -50,7 +50,6 @@
50 50
51#include <dt-bindings/gpio/gpio.h> 51#include <dt-bindings/gpio/gpio.h>
52#include <dt-bindings/input/input.h> 52#include <dt-bindings/input/input.h>
53#include <dt-bindings/pinctrl/sun4i-a10.h>
54 53
55/ { 54/ {
56 model = "Lichee Pi One"; 55 model = "Lichee Pi One";
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
index 60e393e28783..3a831eaf1dfc 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino-micro.dts
@@ -46,7 +46,6 @@
46#include "sunxi-common-regulators.dtsi" 46#include "sunxi-common-regulators.dtsi"
47 47
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Olimex A13-Olinuxino Micro"; 51 model = "Olimex A13-Olinuxino Micro";
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index 940d47e88056..95f591bb8ced 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h> 50#include <dt-bindings/input/input.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Olimex A13-Olinuxino"; 53 model = "Olimex A13-Olinuxino";
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index fb2ddb9a04c9..6436bad94404 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -46,27 +46,11 @@
46 46
47#include "sun5i.dtsi" 47#include "sun5i.dtsi"
48 48
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/thermal/thermal.h> 49#include <dt-bindings/thermal/thermal.h>
51 50
52/ { 51/ {
53 interrupt-parent = <&intc>; 52 interrupt-parent = <&intc>;
54 53
55 chosen {
56 #address-cells = <1>;
57 #size-cells = <1>;
58 ranges;
59
60 framebuffer@0 {
61 compatible = "allwinner,simple-framebuffer",
62 "simple-framebuffer";
63 allwinner,pipeline = "de_be0-lcd0";
64 clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
65 <&ccu CLK_TCON_CH0>, <&ccu CLK_DRAM_DE_BE>;
66 status = "disabled";
67 };
68 };
69
70 thermal-zones { 54 thermal-zones {
71 cpu_thermal { 55 cpu_thermal {
72 /* milliseconds */ 56 /* milliseconds */
@@ -105,44 +89,6 @@
105 }; 89 };
106 90
107 soc@01c00000 { 91 soc@01c00000 {
108 tcon0: lcd-controller@01c0c000 {
109 compatible = "allwinner,sun5i-a13-tcon";
110 reg = <0x01c0c000 0x1000>;
111 interrupts = <44>;
112 resets = <&ccu RST_LCD>;
113 reset-names = "lcd";
114 clocks = <&ccu CLK_AHB_LCD>,
115 <&ccu CLK_TCON_CH0>,
116 <&ccu CLK_TCON_CH1>;
117 clock-names = "ahb",
118 "tcon-ch0",
119 "tcon-ch1";
120 clock-output-names = "tcon-pixel-clock";
121 status = "disabled";
122
123 ports {
124 #address-cells = <1>;
125 #size-cells = <0>;
126
127 tcon0_in: port@0 {
128 #address-cells = <1>;
129 #size-cells = <0>;
130 reg = <0>;
131
132 tcon0_in_be0: endpoint@0 {
133 reg = <0>;
134 remote-endpoint = <&be0_out_tcon0>;
135 };
136 };
137
138 tcon0_out: port@1 {
139 #address-cells = <1>;
140 #size-cells = <0>;
141 reg = <1>;
142 };
143 };
144 };
145
146 pwm: pwm@01c20e00 { 92 pwm: pwm@01c20e00 {
147 compatible = "allwinner,sun5i-a13-pwm"; 93 compatible = "allwinner,sun5i-a13-pwm";
148 reg = <0x01c20e00 0xc>; 94 reg = <0x01c20e00 0xc>;
@@ -151,74 +97,6 @@
151 status = "disabled"; 97 status = "disabled";
152 }; 98 };
153 99
154 fe0: display-frontend@01e00000 {
155 compatible = "allwinner,sun5i-a13-display-frontend";
156 reg = <0x01e00000 0x20000>;
157 interrupts = <47>;
158 clocks = <&ccu CLK_DE_FE>, <&ccu CLK_DE_FE>,
159 <&ccu CLK_DRAM_DE_FE>;
160 clock-names = "ahb", "mod",
161 "ram";
162 resets = <&ccu RST_DE_FE>;
163 status = "disabled";
164
165 ports {
166 #address-cells = <1>;
167 #size-cells = <0>;
168
169 fe0_out: port@1 {
170 #address-cells = <1>;
171 #size-cells = <0>;
172 reg = <1>;
173
174 fe0_out_be0: endpoint@0 {
175 reg = <0>;
176 remote-endpoint = <&be0_in_fe0>;
177 };
178 };
179 };
180 };
181
182 be0: display-backend@01e60000 {
183 compatible = "allwinner,sun5i-a13-display-backend";
184 reg = <0x01e60000 0x10000>;
185 clocks = <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
186 <&ccu CLK_DRAM_DE_BE>;
187 clock-names = "ahb", "mod",
188 "ram";
189 resets = <&ccu RST_DE_BE>;
190 status = "disabled";
191
192 assigned-clocks = <&ccu CLK_DE_BE>;
193 assigned-clock-rates = <300000000>;
194
195 ports {
196 #address-cells = <1>;
197 #size-cells = <0>;
198
199 be0_in: port@0 {
200 #address-cells = <1>;
201 #size-cells = <0>;
202 reg = <0>;
203
204 be0_in_fe0: endpoint@0 {
205 reg = <0>;
206 remote-endpoint = <&fe0_out_be0>;
207 };
208 };
209
210 be0_out: port@1 {
211 #address-cells = <1>;
212 #size-cells = <0>;
213 reg = <1>;
214
215 be0_out_tcon0: endpoint@0 {
216 reg = <0>;
217 remote-endpoint = <&tcon0_in_be0>;
218 };
219 };
220 };
221 };
222 }; 100 };
223}; 101};
224 102
@@ -244,22 +122,4 @@
244 122
245&pio { 123&pio {
246 compatible = "allwinner,sun5i-a13-pinctrl"; 124 compatible = "allwinner,sun5i-a13-pinctrl";
247
248 lcd_rgb666_pins: lcd_rgb666@0 {
249 pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
250 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
251 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
252 "PD24", "PD25", "PD26", "PD27";
253 function = "lcd0";
254 };
255
256 uart1_pins_a: uart1@0 {
257 pins = "PE10", "PE11";
258 function = "uart1";
259 };
260
261 uart1_pins_b: uart1@1 {
262 pins = "PG3", "PG4";
263 function = "uart1";
264 };
265}; 125};
diff --git a/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts b/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
index 0cf0813d363a..c55b11a4d3c7 100644
--- a/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
+++ b/arch/arm/boot/dts/sun5i-gr8-chip-pro.dts
@@ -171,7 +171,7 @@
171 171
172&pwm { 172&pwm {
173 pinctrl-names = "default"; 173 pinctrl-names = "default";
174 pinctrl-0 = <&pwm0_pins_a>, <&pwm1_pins>; 174 pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
175 status = "disabled"; 175 status = "disabled";
176}; 176};
177 177
@@ -220,7 +220,7 @@
220 220
221&uart1 { 221&uart1 {
222 pinctrl-names = "default"; 222 pinctrl-names = "default";
223 pinctrl-0 = <&uart1_pins_a>, <&uart1_cts_rts_pins_a>; 223 pinctrl-0 = <&uart1_pins_b>, <&uart1_cts_rts_pins_a>;
224 status = "okay"; 224 status = "okay";
225}; 225};
226 226
diff --git a/arch/arm/boot/dts/sun5i-gr8-evb.dts b/arch/arm/boot/dts/sun5i-gr8-evb.dts
index 1a845af4d4db..558c16a30543 100644
--- a/arch/arm/boot/dts/sun5i-gr8-evb.dts
+++ b/arch/arm/boot/dts/sun5i-gr8-evb.dts
@@ -281,7 +281,7 @@
281 281
282&pwm { 282&pwm {
283 pinctrl-names = "default"; 283 pinctrl-names = "default";
284 pinctrl-0 = <&pwm0_pins_a>; 284 pinctrl-0 = <&pwm0_pins>;
285 status = "okay"; 285 status = "okay";
286}; 286};
287 287
@@ -332,7 +332,7 @@
332 332
333&uart1 { 333&uart1 {
334 pinctrl-names = "default"; 334 pinctrl-names = "default";
335 pinctrl-0 = <&uart1_pins_a>, <&uart1_cts_rts_pins_a>; 335 pinctrl-0 = <&uart1_pins_b>, <&uart1_cts_rts_pins_a>;
336 status = "okay"; 336 status = "okay";
337}; 337};
338 338
diff --git a/arch/arm/boot/dts/sun5i-gr8.dtsi b/arch/arm/boot/dts/sun5i-gr8.dtsi
index cb9b2aaf7297..3eb56cad0cea 100644
--- a/arch/arm/boot/dts/sun5i-gr8.dtsi
+++ b/arch/arm/boot/dts/sun5i-gr8.dtsi
@@ -42,429 +42,19 @@
42 * OTHER DEALINGS IN THE SOFTWARE. 42 * OTHER DEALINGS IN THE SOFTWARE.
43 */ 43 */
44 44
45#include "sun5i.dtsi"
46
45#include <dt-bindings/clock/sun5i-ccu.h> 47#include <dt-bindings/clock/sun5i-ccu.h>
46#include <dt-bindings/dma/sun4i-a10.h> 48#include <dt-bindings/dma/sun4i-a10.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48#include <dt-bindings/reset/sun5i-ccu.h> 49#include <dt-bindings/reset/sun5i-ccu.h>
49 50
50/ { 51/ {
51 interrupt-parent = <&intc>;
52 #address-cells = <1>;
53 #size-cells = <1>;
54
55 cpus {
56 #address-cells = <1>;
57 #size-cells = <0>;
58
59 cpu0: cpu@0 {
60 device_type = "cpu";
61 compatible = "arm,cortex-a8";
62 reg = <0x0>;
63 clocks = <&ccu CLK_CPU>;
64 };
65 };
66
67 clocks {
68 #address-cells = <1>;
69 #size-cells = <1>;
70 ranges;
71
72 osc24M: clk@01c20050 {
73 #clock-cells = <0>;
74 compatible = "fixed-clock";
75 clock-frequency = <24000000>;
76 clock-output-names = "osc24M";
77 };
78
79 osc32k: clk@0 {
80 #clock-cells = <0>;
81 compatible = "fixed-clock";
82 clock-frequency = <32768>;
83 clock-output-names = "osc32k";
84 };
85 };
86
87 display-engine { 52 display-engine {
88 compatible = "allwinner,sun5i-a13-display-engine"; 53 compatible = "allwinner,sun5i-a13-display-engine";
89 allwinner,pipelines = <&fe0>; 54 allwinner,pipelines = <&fe0>;
90 }; 55 };
91 56
92 soc@01c00000 { 57 soc@01c00000 {
93 compatible = "simple-bus";
94 #address-cells = <1>;
95 #size-cells = <1>;
96 ranges;
97
98 sram-controller@01c00000 {
99 compatible = "allwinner,sun4i-a10-sram-controller";
100 reg = <0x01c00000 0x30>;
101 #address-cells = <1>;
102 #size-cells = <1>;
103 ranges;
104
105 sram_a: sram@00000000 {
106 compatible = "mmio-sram";
107 reg = <0x00000000 0xc000>;
108 #address-cells = <1>;
109 #size-cells = <1>;
110 ranges = <0 0x00000000 0xc000>;
111 };
112
113 sram_d: sram@00010000 {
114 compatible = "mmio-sram";
115 reg = <0x00010000 0x1000>;
116 #address-cells = <1>;
117 #size-cells = <1>;
118 ranges = <0 0x00010000 0x1000>;
119
120 otg_sram: sram-section@0000 {
121 compatible = "allwinner,sun4i-a10-sram-d";
122 reg = <0x0000 0x1000>;
123 status = "disabled";
124 };
125 };
126 };
127
128 dma: dma-controller@01c02000 {
129 compatible = "allwinner,sun4i-a10-dma";
130 reg = <0x01c02000 0x1000>;
131 interrupts = <27>;
132 clocks = <&ccu CLK_AHB_DMA>;
133 #dma-cells = <2>;
134 };
135
136 nfc: nand@01c03000 {
137 compatible = "allwinner,sun4i-a10-nand";
138 reg = <0x01c03000 0x1000>;
139 interrupts = <37>;
140 clocks = <&ccu CLK_AHB_NAND>, <&ccu CLK_NAND>;
141 clock-names = "ahb", "mod";
142 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
143 dma-names = "rxtx";
144 status = "disabled";
145 #address-cells = <1>;
146 #size-cells = <0>;
147 };
148
149 spi0: spi@01c05000 {
150 compatible = "allwinner,sun4i-a10-spi";
151 reg = <0x01c05000 0x1000>;
152 interrupts = <10>;
153 clocks = <&ccu CLK_AHB_SPI0>, <&ccu CLK_SPI0>;
154 clock-names = "ahb", "mod";
155 dmas = <&dma SUN4I_DMA_DEDICATED 27>,
156 <&dma SUN4I_DMA_DEDICATED 26>;
157 dma-names = "rx", "tx";
158 status = "disabled";
159 #address-cells = <1>;
160 #size-cells = <0>;
161 };
162
163 spi1: spi@01c06000 {
164 compatible = "allwinner,sun4i-a10-spi";
165 reg = <0x01c06000 0x1000>;
166 interrupts = <11>;
167 clocks = <&ccu CLK_AHB_SPI1>, <&ccu CLK_SPI1>;
168 clock-names = "ahb", "mod";
169 dmas = <&dma SUN4I_DMA_DEDICATED 9>,
170 <&dma SUN4I_DMA_DEDICATED 8>;
171 dma-names = "rx", "tx";
172 status = "disabled";
173 #address-cells = <1>;
174 #size-cells = <0>;
175 };
176
177 tve0: tv-encoder@01c0a000 {
178 compatible = "allwinner,sun4i-a10-tv-encoder";
179 reg = <0x01c0a000 0x1000>;
180 clocks = <&ccu CLK_AHB_TVE>;
181 resets = <&ccu RST_TVE>;
182 status = "disabled";
183
184 port {
185 #address-cells = <1>;
186 #size-cells = <0>;
187
188 tve0_in_tcon0: endpoint@0 {
189 reg = <0>;
190 remote-endpoint = <&tcon0_out_tve0>;
191 };
192 };
193 };
194
195 tcon0: lcd-controller@01c0c000 {
196 compatible = "allwinner,sun5i-a13-tcon";
197 reg = <0x01c0c000 0x1000>;
198 interrupts = <44>;
199 resets = <&ccu RST_LCD>;
200 reset-names = "lcd";
201 clocks = <&ccu CLK_AHB_LCD>,
202 <&ccu CLK_TCON_CH0>,
203 <&ccu CLK_TCON_CH1>;
204 clock-names = "ahb",
205 "tcon-ch0",
206 "tcon-ch1";
207 clock-output-names = "tcon-pixel-clock";
208 status = "disabled";
209
210 ports {
211 #address-cells = <1>;
212 #size-cells = <0>;
213
214 tcon0_in: port@0 {
215 #address-cells = <1>;
216 #size-cells = <0>;
217 reg = <0>;
218
219 tcon0_in_be0: endpoint@0 {
220 reg = <0>;
221 remote-endpoint = <&be0_out_tcon0>;
222 };
223 };
224
225 tcon0_out: port@1 {
226 #address-cells = <1>;
227 #size-cells = <0>;
228 reg = <1>;
229
230 tcon0_out_tve0: endpoint@1 {
231 reg = <1>;
232 remote-endpoint = <&tve0_in_tcon0>;
233 };
234 };
235 };
236 };
237
238 mmc0: mmc@01c0f000 {
239 compatible = "allwinner,sun5i-a13-mmc";
240 reg = <0x01c0f000 0x1000>;
241 clocks = <&ccu CLK_AHB_MMC0>, <&ccu CLK_MMC0>;
242 clock-names = "ahb", "mmc";
243 interrupts = <32>;
244 status = "disabled";
245 #address-cells = <1>;
246 #size-cells = <0>;
247 };
248
249 mmc1: mmc@01c10000 {
250 compatible = "allwinner,sun5i-a13-mmc";
251 reg = <0x01c10000 0x1000>;
252 clocks = <&ccu CLK_AHB_MMC1>, <&ccu CLK_MMC1>;
253 clock-names = "ahb", "mmc";
254 interrupts = <33>;
255 status = "disabled";
256 #address-cells = <1>;
257 #size-cells = <0>;
258 };
259
260 mmc2: mmc@01c11000 {
261 compatible = "allwinner,sun5i-a13-mmc";
262 reg = <0x01c11000 0x1000>;
263 clocks = <&ccu CLK_AHB_MMC2>, <&ccu CLK_MMC2>;
264 clock-names = "ahb", "mmc";
265 interrupts = <34>;
266 status = "disabled";
267 #address-cells = <1>;
268 #size-cells = <0>;
269 };
270
271 usb_otg: usb@01c13000 {
272 compatible = "allwinner,sun4i-a10-musb";
273 reg = <0x01c13000 0x0400>;
274 clocks = <&ccu CLK_AHB_OTG>;
275 interrupts = <38>;
276 interrupt-names = "mc";
277 phys = <&usbphy 0>;
278 phy-names = "usb";
279 extcon = <&usbphy 0>;
280 allwinner,sram = <&otg_sram 1>;
281 status = "disabled";
282
283 dr_mode = "otg";
284 };
285
286 usbphy: phy@01c13400 {
287 #phy-cells = <1>;
288 compatible = "allwinner,sun5i-a13-usb-phy";
289 reg = <0x01c13400 0x10 0x01c14800 0x4>;
290 reg-names = "phy_ctrl", "pmu1";
291 clocks = <&ccu CLK_USB_PHY0>;
292 clock-names = "usb_phy";
293 resets = <&ccu RST_USB_PHY0>, <&ccu RST_USB_PHY1>;
294 reset-names = "usb0_reset", "usb1_reset";
295 status = "disabled";
296 };
297
298 ehci0: usb@01c14000 {
299 compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
300 reg = <0x01c14000 0x100>;
301 interrupts = <39>;
302 clocks = <&ccu CLK_AHB_EHCI>;
303 phys = <&usbphy 1>;
304 phy-names = "usb";
305 status = "disabled";
306 };
307
308 ohci0: usb@01c14400 {
309 compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
310 reg = <0x01c14400 0x100>;
311 interrupts = <40>;
312 clocks = <&ccu CLK_USB_OHCI>, <&ccu CLK_AHB_OHCI>;
313 phys = <&usbphy 1>;
314 phy-names = "usb";
315 status = "disabled";
316 };
317
318 spi2: spi@01c17000 {
319 compatible = "allwinner,sun4i-a10-spi";
320 reg = <0x01c17000 0x1000>;
321 interrupts = <12>;
322 clocks = <&ccu CLK_AHB_SPI2>, <&ccu CLK_SPI2>;
323 clock-names = "ahb", "mod";
324 dmas = <&dma SUN4I_DMA_DEDICATED 29>,
325 <&dma SUN4I_DMA_DEDICATED 28>;
326 dma-names = "rx", "tx";
327 status = "disabled";
328 #address-cells = <1>;
329 #size-cells = <0>;
330 };
331
332 ccu: clock@01c20000 {
333 compatible = "nextthing,gr8-ccu";
334 reg = <0x01c20000 0x400>;
335 clocks = <&osc24M>, <&osc32k>;
336 clock-names = "hosc", "losc";
337 #clock-cells = <1>;
338 #reset-cells = <1>;
339 };
340
341 intc: interrupt-controller@01c20400 {
342 compatible = "allwinner,sun4i-a10-ic";
343 reg = <0x01c20400 0x400>;
344 interrupt-controller;
345 #interrupt-cells = <1>;
346 };
347
348 pio: pinctrl@01c20800 {
349 compatible = "nextthing,gr8-pinctrl";
350 reg = <0x01c20800 0x400>;
351 interrupts = <28>;
352 clocks = <&ccu CLK_APB0_PIO>;
353 gpio-controller;
354 interrupt-controller;
355 #interrupt-cells = <3>;
356 #gpio-cells = <3>;
357
358 i2c0_pins_a: i2c0@0 {
359 pins = "PB0", "PB1";
360 function = "i2c0";
361 };
362
363 i2c1_pins_a: i2c1@0 {
364 pins = "PB15", "PB16";
365 function = "i2c1";
366 };
367
368 i2c2_pins_a: i2c2@0 {
369 pins = "PB17", "PB18";
370 function = "i2c2";
371 };
372
373 i2s0_data_pins_a: i2s0-data@0 {
374 pins = "PB6", "PB7", "PB8", "PB9";
375 function = "i2s0";
376 };
377
378 i2s0_mclk_pins_a: i2s0-mclk@0 {
379 pins = "PB5";
380 function = "i2s0";
381 };
382
383 ir0_rx_pins_a: ir0@0 {
384 pins = "PB4";
385 function = "ir0";
386 };
387
388 lcd_rgb666_pins: lcd-rgb666@0 {
389 pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
390 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
391 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
392 "PD24", "PD25", "PD26", "PD27";
393 function = "lcd0";
394 };
395
396 mmc0_pins_a: mmc0@0 {
397 pins = "PF0", "PF1", "PF2", "PF3",
398 "PF4", "PF5";
399 function = "mmc0";
400 drive-strength = <30>;
401 };
402
403 nand_pins_a: nand-base0@0 {
404 pins = "PC0", "PC1", "PC2",
405 "PC5", "PC8", "PC9", "PC10",
406 "PC11", "PC12", "PC13", "PC14",
407 "PC15";
408 function = "nand0";
409 };
410
411 nand_cs0_pins_a: nand-cs@0 {
412 pins = "PC4";
413 function = "nand0";
414 };
415
416 nand_rb0_pins_a: nand-rb@0 {
417 pins = "PC6";
418 function = "nand0";
419 };
420
421 pwm0_pins_a: pwm0@0 {
422 pins = "PB2";
423 function = "pwm0";
424 };
425
426 pwm1_pins: pwm1 {
427 pins = "PG13";
428 function = "pwm1";
429 };
430
431 spdif_tx_pins_a: spdif@0 {
432 pins = "PB10";
433 function = "spdif";
434 bias-pull-up;
435 };
436
437 uart1_pins_a: uart1@1 {
438 pins = "PG3", "PG4";
439 function = "uart1";
440 };
441
442 uart1_cts_rts_pins_a: uart1-cts-rts@0 {
443 pins = "PG5", "PG6";
444 function = "uart1";
445 };
446
447 uart2_pins_a: uart2@1 {
448 pins = "PD2", "PD3";
449 function = "uart2";
450 };
451
452 uart2_cts_rts_pins_a: uart2-cts-rts@0 {
453 pins = "PD4", "PD5";
454 function = "uart2";
455 };
456
457 uart3_pins_a: uart3@1 {
458 pins = "PG9", "PG10";
459 function = "uart3";
460 };
461
462 uart3_cts_rts_pins_a: uart3-cts-rts@0 {
463 pins = "PG11", "PG12";
464 function = "uart3";
465 };
466 };
467
468 pwm: pwm@01c20e00 { 58 pwm: pwm@01c20e00 {
469 compatible = "allwinner,sun5i-a10s-pwm"; 59 compatible = "allwinner,sun5i-a10s-pwm";
470 reg = <0x01c20e00 0xc>; 60 reg = <0x01c20e00 0xc>;
@@ -473,18 +63,6 @@
473 status = "disabled"; 63 status = "disabled";
474 }; 64 };
475 65
476 timer@01c20c00 {
477 compatible = "allwinner,sun4i-a10-timer";
478 reg = <0x01c20c00 0x90>;
479 interrupts = <22>;
480 clocks = <&ccu CLK_HOSC>;
481 };
482
483 wdt: watchdog@01c20c90 {
484 compatible = "allwinner,sun4i-a10-wdt";
485 reg = <0x01c20c90 0x10>;
486 };
487
488 spdif: spdif@01c21000 { 66 spdif: spdif@01c21000 {
489 #sound-dai-cells = <0>; 67 #sound-dai-cells = <0>;
490 compatible = "allwinner,sun4i-a10-spdif"; 68 compatible = "allwinner,sun4i-a10-spdif";
@@ -498,15 +76,6 @@
498 status = "disabled"; 76 status = "disabled";
499 }; 77 };
500 78
501 ir0: ir@01c21800 {
502 compatible = "allwinner,sun4i-a10-ir";
503 clocks = <&ccu CLK_APB0_IR>, <&ccu CLK_IR>;
504 clock-names = "apb", "ir";
505 interrupts = <5>;
506 reg = <0x01c21800 0x40>;
507 status = "disabled";
508 };
509
510 i2s0: i2s@01c22400 { 79 i2s0: i2s@01c22400 {
511 #sound-dai-cells = <0>; 80 #sound-dai-cells = <0>;
512 compatible = "allwinner,sun4i-a10-i2s"; 81 compatible = "allwinner,sun4i-a10-i2s";
@@ -519,168 +88,39 @@
519 dma-names = "rx", "tx"; 88 dma-names = "rx", "tx";
520 status = "disabled"; 89 status = "disabled";
521 }; 90 };
91 };
92};
522 93
523 lradc: lradc@01c22800 { 94&ccu {
524 compatible = "allwinner,sun4i-a10-lradc-keys"; 95 compatible = "nextthing,gr8-ccu";
525 reg = <0x01c22800 0x100>; 96};
526 interrupts = <31>;
527 status = "disabled";
528 };
529
530 codec: codec@01c22c00 {
531 #sound-dai-cells = <0>;
532 compatible = "allwinner,sun4i-a10-codec";
533 reg = <0x01c22c00 0x40>;
534 interrupts = <30>;
535 clocks = <&ccu CLK_APB0_CODEC>, <&ccu CLK_CODEC>;
536 clock-names = "apb", "codec";
537 dmas = <&dma SUN4I_DMA_NORMAL 19>,
538 <&dma SUN4I_DMA_NORMAL 19>;
539 dma-names = "rx", "tx";
540 status = "disabled";
541 };
542
543 rtp: rtp@01c25000 {
544 compatible = "allwinner,sun5i-a13-ts";
545 reg = <0x01c25000 0x100>;
546 interrupts = <29>;
547 #thermal-sensor-cells = <0>;
548 };
549
550 uart1: serial@01c28400 {
551 compatible = "snps,dw-apb-uart";
552 reg = <0x01c28400 0x400>;
553 interrupts = <2>;
554 reg-shift = <2>;
555 reg-io-width = <4>;
556 clocks = <&ccu CLK_APB1_UART1>;
557 status = "disabled";
558 };
559
560 uart2: serial@01c28800 {
561 compatible = "snps,dw-apb-uart";
562 reg = <0x01c28800 0x400>;
563 interrupts = <3>;
564 reg-shift = <2>;
565 reg-io-width = <4>;
566 clocks = <&ccu CLK_APB1_UART2>;
567 status = "disabled";
568 };
569
570 uart3: serial@01c28c00 {
571 compatible = "snps,dw-apb-uart";
572 reg = <0x01c28c00 0x400>;
573 interrupts = <4>;
574 reg-shift = <2>;
575 reg-io-width = <4>;
576 clocks = <&ccu CLK_APB1_UART3>;
577 status = "disabled";
578 };
579
580 i2c0: i2c@01c2ac00 {
581 compatible = "allwinner,sun4i-a10-i2c";
582 reg = <0x01c2ac00 0x400>;
583 interrupts = <7>;
584 clocks = <&ccu CLK_APB1_I2C0>;
585 status = "disabled";
586 #address-cells = <1>;
587 #size-cells = <0>;
588 };
589
590 i2c1: i2c@01c2b000 {
591 compatible = "allwinner,sun4i-a10-i2c";
592 reg = <0x01c2b000 0x400>;
593 interrupts = <8>;
594 clocks = <&ccu CLK_APB1_I2C1>;
595 status = "disabled";
596 #address-cells = <1>;
597 #size-cells = <0>;
598 };
599
600 i2c2: i2c@01c2b400 {
601 compatible = "allwinner,sun4i-a10-i2c";
602 reg = <0x01c2b400 0x400>;
603 interrupts = <9>;
604 clocks = <&ccu CLK_APB1_I2C2>;
605 status = "disabled";
606 #address-cells = <1>;
607 #size-cells = <0>;
608 };
609
610 timer@01c60000 {
611 compatible = "allwinner,sun5i-a13-hstimer";
612 reg = <0x01c60000 0x1000>;
613 interrupts = <82>, <83>;
614 clocks = <&ccu CLK_AHB_HSTIMER>;
615 };
616
617 fe0: display-frontend@01e00000 {
618 compatible = "allwinner,sun5i-a13-display-frontend";
619 reg = <0x01e00000 0x20000>;
620 interrupts = <47>;
621 clocks = <&ccu CLK_AHB_DE_FE>, <&ccu CLK_DE_FE>,
622 <&ccu CLK_DRAM_DE_FE>;
623 clock-names = "ahb", "mod",
624 "ram";
625 resets = <&ccu RST_DE_FE>;
626 status = "disabled";
627
628 ports {
629 #address-cells = <1>;
630 #size-cells = <0>;
631
632 fe0_out: port@1 {
633 #address-cells = <1>;
634 #size-cells = <0>;
635 reg = <1>;
636
637 fe0_out_be0: endpoint@0 {
638 reg = <0>;
639 remote-endpoint = <&be0_in_fe0>;
640 };
641 };
642 };
643 };
644
645 be0: display-backend@01e60000 {
646 compatible = "allwinner,sun5i-a13-display-backend";
647 reg = <0x01e60000 0x10000>;
648 clocks = <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
649 <&ccu CLK_DRAM_DE_BE>;
650 clock-names = "ahb", "mod",
651 "ram";
652 resets = <&ccu RST_DE_BE>;
653 status = "disabled";
654 97
655 assigned-clocks = <&ccu CLK_DE_BE>; 98&pio {
656 assigned-clock-rates = <300000000>; 99 compatible = "nextthing,gr8-pinctrl";
657 100
658 ports { 101 i2s0_data_pins_a: i2s0-data@0 {
659 #address-cells = <1>; 102 pins = "PB6", "PB7", "PB8", "PB9";
660 #size-cells = <0>; 103 function = "i2s0";
104 };
661 105
662 be0_in: port@0 { 106 i2s0_mclk_pins_a: i2s0-mclk@0 {
663 #address-cells = <1>; 107 pins = "PB5";
664 #size-cells = <0>; 108 function = "i2s0";
665 reg = <0>; 109 };
666 110
667 be0_in_fe0: endpoint@0 { 111 pwm1_pins: pwm1 {
668 reg = <0>; 112 pins = "PG13";
669 remote-endpoint = <&fe0_out_be0>; 113 function = "pwm1";
670 }; 114 };
671 };
672 115
673 be0_out: port@1 { 116 spdif_tx_pins_a: spdif@0 {
674 #address-cells = <1>; 117 pins = "PB10";
675 #size-cells = <0>; 118 function = "spdif";
676 reg = <1>; 119 bias-pull-up;
120 };
677 121
678 be0_out_tcon0: endpoint@0 { 122 uart1_cts_rts_pins_a: uart1-cts-rts@0 {
679 reg = <0>; 123 pins = "PG5", "PG6";
680 remote-endpoint = <&tcon0_in_be0>; 124 function = "uart1";
681 };
682 };
683 };
684 };
685 }; 125 };
686}; 126};
diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts
index e86fa46fdd45..d0785602663b 100644
--- a/arch/arm/boot/dts/sun5i-r8-chip.dts
+++ b/arch/arm/boot/dts/sun5i-r8-chip.dts
@@ -128,6 +128,10 @@
128 128
129#include "axp209.dtsi" 129#include "axp209.dtsi"
130 130
131&ac_power_supply {
132 status = "okay";
133};
134
131&i2c1 { 135&i2c1 {
132 pinctrl-names = "default"; 136 pinctrl-names = "default";
133 pinctrl-0 = <&i2c1_pins_a>; 137 pinctrl-0 = <&i2c1_pins_a>;
@@ -281,7 +285,7 @@
281&uart3 { 285&uart3 {
282 pinctrl-names = "default"; 286 pinctrl-names = "default";
283 pinctrl-0 = <&uart3_pins_a>, 287 pinctrl-0 = <&uart3_pins_a>,
284 <&uart3_pins_cts_rts_a>; 288 <&uart3_cts_rts_pins_a>;
285 status = "okay"; 289 status = "okay";
286}; 290};
287 291
diff --git a/arch/arm/boot/dts/sun5i-r8.dtsi b/arch/arm/boot/dts/sun5i-r8.dtsi
index 4c1141396c99..de35dbcd1191 100644
--- a/arch/arm/boot/dts/sun5i-r8.dtsi
+++ b/arch/arm/boot/dts/sun5i-r8.dtsi
@@ -45,43 +45,3 @@
45 45
46#include "sun5i-a13.dtsi" 46#include "sun5i-a13.dtsi"
47 47
48/ {
49 chosen {
50 framebuffer@1 {
51 compatible = "allwinner,simple-framebuffer",
52 "simple-framebuffer";
53 allwinner,pipeline = "de_be0-lcd0-tve0";
54 clocks = <&ccu CLK_AHB_TVE>, <&ccu CLK_AHB_LCD>,
55 <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
56 <&ccu CLK_TCON_CH1>, <&ccu CLK_DRAM_DE_BE>;
57 status = "disabled";
58 };
59 };
60
61 soc@01c00000 {
62 tve0: tv-encoder@01c0a000 {
63 compatible = "allwinner,sun4i-a10-tv-encoder";
64 reg = <0x01c0a000 0x1000>;
65 clocks = <&ccu CLK_AHB_TVE>;
66 resets = <&ccu RST_TVE>;
67 status = "disabled";
68
69 port {
70 #address-cells = <1>;
71 #size-cells = <0>;
72
73 tve0_in_tcon0: endpoint@0 {
74 reg = <0>;
75 remote-endpoint = <&tcon0_out_tve0>;
76 };
77 };
78 };
79 };
80};
81
82&tcon0_out {
83 tcon0_out_tve0: endpoint@1 {
84 reg = <1>;
85 remote-endpoint = <&tve0_in_tcon0>;
86 };
87};
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index a9574a6cd95c..5175f9cc9bed 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/clock/sun5i-ccu.h> 47#include <dt-bindings/clock/sun5i-ccu.h>
48#include <dt-bindings/dma/sun4i-a10.h> 48#include <dt-bindings/dma/sun4i-a10.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/reset/sun5i-ccu.h> 49#include <dt-bindings/reset/sun5i-ccu.h>
51 50
52/ { 51/ {
@@ -64,6 +63,31 @@
64 }; 63 };
65 }; 64 };
66 65
66 chosen {
67 #address-cells = <1>;
68 #size-cells = <1>;
69 ranges;
70
71 framebuffer@0 {
72 compatible = "allwinner,simple-framebuffer",
73 "simple-framebuffer";
74 allwinner,pipeline = "de_be0-lcd0";
75 clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
76 <&ccu CLK_TCON_CH0>, <&ccu CLK_DRAM_DE_BE>;
77 status = "disabled";
78 };
79
80 framebuffer@1 {
81 compatible = "allwinner,simple-framebuffer",
82 "simple-framebuffer";
83 allwinner,pipeline = "de_be0-lcd0-tve0";
84 clocks = <&ccu CLK_AHB_TVE>, <&ccu CLK_AHB_LCD>,
85 <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
86 <&ccu CLK_TCON_CH1>, <&ccu CLK_DRAM_DE_BE>;
87 status = "disabled";
88 };
89 };
90
67 clocks { 91 clocks {
68 #address-cells = <1>; 92 #address-cells = <1>;
69 #size-cells = <1>; 93 #size-cells = <1>;
@@ -105,6 +129,12 @@
105 ranges = <0 0x00000000 0xc000>; 129 ranges = <0 0x00000000 0xc000>;
106 }; 130 };
107 131
132 emac_sram: sram-section@8000 {
133 compatible = "allwinner,sun4i-a10-sram-a3-a4";
134 reg = <0x8000 0x4000>;
135 status = "disabled";
136 };
137
108 sram_d: sram@00010000 { 138 sram_d: sram@00010000 {
109 compatible = "mmio-sram"; 139 compatible = "mmio-sram";
110 reg = <0x00010000 0x1000>; 140 reg = <0x00010000 0x1000>;
@@ -128,6 +158,19 @@
128 #dma-cells = <2>; 158 #dma-cells = <2>;
129 }; 159 };
130 160
161 nfc: nand@01c03000 {
162 compatible = "allwinner,sun4i-a10-nand";
163 reg = <0x01c03000 0x1000>;
164 interrupts = <37>;
165 clocks = <&ccu CLK_AHB_NAND>, <&ccu CLK_NAND>;
166 clock-names = "ahb", "mod";
167 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
168 dma-names = "rxtx";
169 status = "disabled";
170 #address-cells = <1>;
171 #size-cells = <0>;
172 };
173
131 spi0: spi@01c05000 { 174 spi0: spi@01c05000 {
132 compatible = "allwinner,sun4i-a10-spi"; 175 compatible = "allwinner,sun4i-a10-spi";
133 reg = <0x01c05000 0x1000>; 176 reg = <0x01c05000 0x1000>;
@@ -156,6 +199,84 @@
156 #size-cells = <0>; 199 #size-cells = <0>;
157 }; 200 };
158 201
202 tve0: tv-encoder@01c0a000 {
203 compatible = "allwinner,sun4i-a10-tv-encoder";
204 reg = <0x01c0a000 0x1000>;
205 clocks = <&ccu CLK_AHB_TVE>;
206 resets = <&ccu RST_TVE>;
207 status = "disabled";
208
209 port {
210 #address-cells = <1>;
211 #size-cells = <0>;
212
213 tve0_in_tcon0: endpoint@0 {
214 reg = <0>;
215 remote-endpoint = <&tcon0_out_tve0>;
216 };
217 };
218 };
219
220 emac: ethernet@01c0b000 {
221 compatible = "allwinner,sun4i-a10-emac";
222 reg = <0x01c0b000 0x1000>;
223 interrupts = <55>;
224 clocks = <&ccu CLK_AHB_EMAC>;
225 allwinner,sram = <&emac_sram 1>;
226 status = "disabled";
227 };
228
229 mdio: mdio@01c0b080 {
230 compatible = "allwinner,sun4i-a10-mdio";
231 reg = <0x01c0b080 0x14>;
232 status = "disabled";
233 #address-cells = <1>;
234 #size-cells = <0>;
235 };
236
237 tcon0: lcd-controller@01c0c000 {
238 compatible = "allwinner,sun5i-a13-tcon";
239 reg = <0x01c0c000 0x1000>;
240 interrupts = <44>;
241 resets = <&ccu RST_LCD>;
242 reset-names = "lcd";
243 clocks = <&ccu CLK_AHB_LCD>,
244 <&ccu CLK_TCON_CH0>,
245 <&ccu CLK_TCON_CH1>;
246 clock-names = "ahb",
247 "tcon-ch0",
248 "tcon-ch1";
249 clock-output-names = "tcon-pixel-clock";
250 status = "disabled";
251
252 ports {
253 #address-cells = <1>;
254 #size-cells = <0>;
255
256 tcon0_in: port@0 {
257 #address-cells = <1>;
258 #size-cells = <0>;
259 reg = <0>;
260
261 tcon0_in_be0: endpoint@0 {
262 reg = <0>;
263 remote-endpoint = <&be0_out_tcon0>;
264 };
265 };
266
267 tcon0_out: port@1 {
268 #address-cells = <1>;
269 #size-cells = <0>;
270 reg = <1>;
271
272 tcon0_out_tve0: endpoint@1 {
273 reg = <1>;
274 remote-endpoint = <&tve0_in_tcon0>;
275 };
276 };
277 };
278 };
279
159 mmc0: mmc@01c0f000 { 280 mmc0: mmc@01c0f000 {
160 compatible = "allwinner,sun5i-a13-mmc"; 281 compatible = "allwinner,sun5i-a13-mmc";
161 reg = <0x01c0f000 0x1000>; 282 reg = <0x01c0f000 0x1000>;
@@ -273,6 +394,15 @@
273 #interrupt-cells = <3>; 394 #interrupt-cells = <3>;
274 #gpio-cells = <3>; 395 #gpio-cells = <3>;
275 396
397 emac_pins_a: emac0@0 {
398 pins = "PD6", "PD7", "PD10",
399 "PD11", "PD12", "PD13", "PD14",
400 "PD15", "PD18", "PD19", "PD20",
401 "PD21", "PD22", "PD23", "PD24",
402 "PD25", "PD26", "PD27";
403 function = "emac";
404 };
405
276 i2c0_pins_a: i2c0@0 { 406 i2c0_pins_a: i2c0@0 {
277 pins = "PB0", "PB1"; 407 pins = "PB0", "PB1";
278 function = "i2c0"; 408 function = "i2c0";
@@ -288,6 +418,11 @@
288 function = "i2c2"; 418 function = "i2c2";
289 }; 419 };
290 420
421 ir0_rx_pins_a: ir0@0 {
422 pins = "PB4";
423 function = "ir0";
424 };
425
291 lcd_rgb565_pins: lcd_rgb565@0 { 426 lcd_rgb565_pins: lcd_rgb565@0 {
292 pins = "PD3", "PD4", "PD5", "PD6", "PD7", 427 pins = "PD3", "PD4", "PD5", "PD6", "PD7",
293 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", 428 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
@@ -296,6 +431,14 @@
296 function = "lcd0"; 431 function = "lcd0";
297 }; 432 };
298 433
434 lcd_rgb666_pins: lcd_rgb666@0 {
435 pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
436 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
437 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
438 "PD24", "PD25", "PD26", "PD27";
439 function = "lcd0";
440 };
441
299 mmc0_pins_a: mmc0@0 { 442 mmc0_pins_a: mmc0@0 {
300 pins = "PF0", "PF1", "PF2", "PF3", 443 pins = "PF0", "PF1", "PF2", "PF3",
301 "PF4", "PF5"; 444 "PF4", "PF5";
@@ -321,6 +464,24 @@
321 bias-pull-up; 464 bias-pull-up;
322 }; 465 };
323 466
467 nand_pins_a: nand-base0@0 {
468 pins = "PC0", "PC1", "PC2",
469 "PC5", "PC8", "PC9", "PC10",
470 "PC11", "PC12", "PC13", "PC14",
471 "PC15";
472 function = "nand0";
473 };
474
475 nand_cs0_pins_a: nand-cs@0 {
476 pins = "PC4";
477 function = "nand0";
478 };
479
480 nand_rb0_pins_a: nand-rb@0 {
481 pins = "PC6";
482 function = "nand0";
483 };
484
324 spi2_pins_a: spi2@0 { 485 spi2_pins_a: spi2@0 {
325 pins = "PE1", "PE2", "PE3"; 486 pins = "PE1", "PE2", "PE3";
326 function = "spi2"; 487 function = "spi2";
@@ -331,12 +492,32 @@
331 function = "spi2"; 492 function = "spi2";
332 }; 493 };
333 494
495 uart1_pins_a: uart1@0 {
496 pins = "PE10", "PE11";
497 function = "uart1";
498 };
499
500 uart1_pins_b: uart1@1 {
501 pins = "PG3", "PG4";
502 function = "uart1";
503 };
504
505 uart2_pins_a: uart2@0 {
506 pins = "PD2", "PD3";
507 function = "uart2";
508 };
509
510 uart2_cts_rts_pins_a: uart2-cts-rts@0 {
511 pins = "PD4", "PD5";
512 function = "uart2";
513 };
514
334 uart3_pins_a: uart3@0 { 515 uart3_pins_a: uart3@0 {
335 pins = "PG9", "PG10"; 516 pins = "PG9", "PG10";
336 function = "uart3"; 517 function = "uart3";
337 }; 518 };
338 519
339 uart3_pins_cts_rts_a: uart3-cts-rts@0 { 520 uart3_cts_rts_pins_a: uart3-cts-rts@0 {
340 pins = "PG11", "PG12"; 521 pins = "PG11", "PG12";
341 function = "uart3"; 522 function = "uart3";
342 }; 523 };
@@ -359,6 +540,15 @@
359 reg = <0x01c20c90 0x10>; 540 reg = <0x01c20c90 0x10>;
360 }; 541 };
361 542
543 ir0: ir@01c21800 {
544 compatible = "allwinner,sun4i-a10-ir";
545 clocks = <&ccu CLK_APB0_IR>, <&ccu CLK_IR>;
546 clock-names = "apb", "ir";
547 interrupts = <5>;
548 reg = <0x01c21800 0x40>;
549 status = "disabled";
550 };
551
362 lradc: lradc@01c22800 { 552 lradc: lradc@01c22800 {
363 compatible = "allwinner,sun4i-a10-lradc-keys"; 553 compatible = "allwinner,sun4i-a10-lradc-keys";
364 reg = <0x01c22800 0x100>; 554 reg = <0x01c22800 0x100>;
@@ -391,6 +581,16 @@
391 #thermal-sensor-cells = <0>; 581 #thermal-sensor-cells = <0>;
392 }; 582 };
393 583
584 uart0: serial@01c28000 {
585 compatible = "snps,dw-apb-uart";
586 reg = <0x01c28000 0x400>;
587 interrupts = <1>;
588 reg-shift = <2>;
589 reg-io-width = <4>;
590 clocks = <&ccu CLK_APB1_UART0>;
591 status = "disabled";
592 };
593
394 uart1: serial@01c28400 { 594 uart1: serial@01c28400 {
395 compatible = "snps,dw-apb-uart"; 595 compatible = "snps,dw-apb-uart";
396 reg = <0x01c28400 0x400>; 596 reg = <0x01c28400 0x400>;
@@ -401,6 +601,16 @@
401 status = "disabled"; 601 status = "disabled";
402 }; 602 };
403 603
604 uart2: serial@01c28800 {
605 compatible = "snps,dw-apb-uart";
606 reg = <0x01c28800 0x400>;
607 interrupts = <3>;
608 reg-shift = <2>;
609 reg-io-width = <4>;
610 clocks = <&ccu CLK_APB1_UART2>;
611 status = "disabled";
612 };
613
404 uart3: serial@01c28c00 { 614 uart3: serial@01c28c00 {
405 compatible = "snps,dw-apb-uart"; 615 compatible = "snps,dw-apb-uart";
406 reg = <0x01c28c00 0x400>; 616 reg = <0x01c28c00 0x400>;
@@ -447,5 +657,75 @@
447 interrupts = <82>, <83>; 657 interrupts = <82>, <83>;
448 clocks = <&ccu CLK_AHB_HSTIMER>; 658 clocks = <&ccu CLK_AHB_HSTIMER>;
449 }; 659 };
660
661 fe0: display-frontend@01e00000 {
662 compatible = "allwinner,sun5i-a13-display-frontend";
663 reg = <0x01e00000 0x20000>;
664 interrupts = <47>;
665 clocks = <&ccu CLK_DE_FE>, <&ccu CLK_DE_FE>,
666 <&ccu CLK_DRAM_DE_FE>;
667 clock-names = "ahb", "mod",
668 "ram";
669 resets = <&ccu RST_DE_FE>;
670 status = "disabled";
671
672 ports {
673 #address-cells = <1>;
674 #size-cells = <0>;
675
676 fe0_out: port@1 {
677 #address-cells = <1>;
678 #size-cells = <0>;
679 reg = <1>;
680
681 fe0_out_be0: endpoint@0 {
682 reg = <0>;
683 remote-endpoint = <&be0_in_fe0>;
684 };
685 };
686 };
687 };
688
689 be0: display-backend@01e60000 {
690 compatible = "allwinner,sun5i-a13-display-backend";
691 reg = <0x01e60000 0x10000>;
692 interrupts = <47>;
693 clocks = <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DE_BE>,
694 <&ccu CLK_DRAM_DE_BE>;
695 clock-names = "ahb", "mod",
696 "ram";
697 resets = <&ccu RST_DE_BE>;
698 status = "disabled";
699
700 assigned-clocks = <&ccu CLK_DE_BE>;
701 assigned-clock-rates = <300000000>;
702
703 ports {
704 #address-cells = <1>;
705 #size-cells = <0>;
706
707 be0_in: port@0 {
708 #address-cells = <1>;
709 #size-cells = <0>;
710 reg = <0>;
711
712 be0_in_fe0: endpoint@0 {
713 reg = <0>;
714 remote-endpoint = <&fe0_out_be0>;
715 };
716 };
717
718 be0_out: port@1 {
719 #address-cells = <1>;
720 #size-cells = <0>;
721 reg = <1>;
722
723 be0_out_tcon0: endpoint@0 {
724 reg = <0>;
725 remote-endpoint = <&tcon0_in_be0>;
726 };
727 };
728 };
729 };
450 }; 730 };
451}; 731};
diff --git a/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts b/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
index effbdc766938..7f34323a668c 100644
--- a/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
+++ b/arch/arm/boot/dts/sun6i-a31-app4-evb1.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "Allwinner A31 APP4 EVB1 Evaluation Board"; 52 model = "Allwinner A31 APP4 EVB1 Evaluation Board";
diff --git a/arch/arm/boot/dts/sun6i-a31-colombus.dts b/arch/arm/boot/dts/sun6i-a31-colombus.dts
index f5ececd45bc0..85eff0307ca4 100644
--- a/arch/arm/boot/dts/sun6i-a31-colombus.dts
+++ b/arch/arm/boot/dts/sun6i-a31-colombus.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "WITS A31 Colombus Evaluation Board"; 52 model = "WITS A31 Colombus Evaluation Board";
diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
index f094eeb6c499..d4f74f476f25 100644
--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -47,7 +47,6 @@
47#include "sunxi-common-regulators.dtsi" 47#include "sunxi-common-regulators.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "Merrii A31 Hummingbird"; 52 model = "Merrii A31 Hummingbird";
diff --git a/arch/arm/boot/dts/sun6i-a31-i7.dts b/arch/arm/boot/dts/sun6i-a31-i7.dts
index 2bc57d2dcd80..010a84c7c012 100644
--- a/arch/arm/boot/dts/sun6i-a31-i7.dts
+++ b/arch/arm/boot/dts/sun6i-a31-i7.dts
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "Mele I7 Quad top set box"; 50 model = "Mele I7 Quad top set box";
diff --git a/arch/arm/boot/dts/sun6i-a31-m9.dts b/arch/arm/boot/dts/sun6i-a31-m9.dts
index 8af5b667a46d..50605fd4449e 100644
--- a/arch/arm/boot/dts/sun6i-a31-m9.dts
+++ b/arch/arm/boot/dts/sun6i-a31-m9.dts
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "Mele M9 top set box"; 50 model = "Mele M9 top set box";
diff --git a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
index bf0f5831126f..5219556e9f73 100644
--- a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
+++ b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "Mele A1000G Quad top set box"; 50 model = "Mele A1000G Quad top set box";
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index a4b96184cac1..9c999d3788f6 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -48,7 +48,6 @@
48#include <dt-bindings/thermal/thermal.h> 48#include <dt-bindings/thermal/thermal.h>
49 49
50#include <dt-bindings/clock/sun6i-a31-ccu.h> 50#include <dt-bindings/clock/sun6i-a31-ccu.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52#include <dt-bindings/reset/sun6i-a31-ccu.h> 51#include <dt-bindings/reset/sun6i-a31-ccu.h>
53 52
54/ { 53/ {
diff --git a/arch/arm/boot/dts/sun6i-a31s-cs908.dts b/arch/arm/boot/dts/sun6i-a31s-cs908.dts
index 5e8f8c4f2b30..75e578159c3a 100644
--- a/arch/arm/boot/dts/sun6i-a31s-cs908.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-cs908.dts
@@ -43,8 +43,6 @@
43/dts-v1/; 43/dts-v1/;
44#include "sun6i-a31s.dtsi" 44#include "sun6i-a31s.dtsi"
45 45
46#include <dt-bindings/pinctrl/sun4i-a10.h>
47
48/ { 46/ {
49 model = "CSQ CS908 top set box"; 47 model = "CSQ CS908 top set box";
50 compatible = "csq,cs908", "allwinner,sun6i-a31s"; 48 compatible = "csq,cs908", "allwinner,sun6i-a31s";
diff --git a/arch/arm/boot/dts/sun6i-a31s-primo81.dts b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
index 2238eda318f6..f3712753fa42 100644
--- a/arch/arm/boot/dts/sun6i-a31s-primo81.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-primo81.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h> 50#include <dt-bindings/input/input.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "MSI Primo81 tablet"; 53 model = "MSI Primo81 tablet";
diff --git a/arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi b/arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi
index 4ec0c8679b2e..d7325bc4eeb4 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "Sinlinx SinA31s Core Board"; 50 model = "Sinlinx SinA31s Core Board";
diff --git a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
index 7ff68bdd7109..b3d98222bd81 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sina31s.dts
@@ -63,6 +63,23 @@
63 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; /* PH13 */ 63 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; /* PH13 */
64 }; 64 };
65 }; 65 };
66
67 sound {
68 compatible = "simple-audio-card";
69 simple-audio-card,name = "On-board SPDIF";
70 simple-audio-card,cpu {
71 sound-dai = <&spdif>;
72 };
73
74 simple-audio-card,codec {
75 sound-dai = <&spdif_out>;
76 };
77 };
78
79 spdif_out: spdif-out {
80 #sound-dai-cells = <0>;
81 compatible = "linux,spdif-dit";
82 };
66}; 83};
67 84
68&codec { 85&codec {
@@ -153,6 +170,12 @@
153 regulator-name = "vcc-gmac-phy"; 170 regulator-name = "vcc-gmac-phy";
154}; 171};
155 172
173&spdif {
174 pinctrl-names = "default";
175 pinctrl-0 = <&spdif_pins_a>;
176 status = "okay";
177};
178
156&usb_otg { 179&usb_otg {
157 dr_mode = "peripheral"; 180 dr_mode = "peripheral";
158 status = "okay"; 181 status = "okay";
diff --git a/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts b/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
index 3bd862bf82a9..bdfdce8ca6ba 100644
--- a/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-sinovoip-bpi-m2.dts
@@ -86,6 +86,10 @@
86 }; 86 };
87}; 87};
88 88
89&cpu0 {
90 cpu-supply = <&reg_dcdc3>;
91};
92
89&ehci0 { 93&ehci0 {
90 status = "okay"; 94 status = "okay";
91}; 95};
@@ -151,6 +155,17 @@
151 status = "okay"; 155 status = "okay";
152}; 156};
153 157
158&p2wi {
159 status = "okay";
160
161 axp22x: pmic@68 {
162 compatible = "x-powers,axp221";
163 reg = <0x68>;
164 interrupt-parent = <&nmi_intc>;
165 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
166 };
167};
168
154&pio { 169&pio {
155 gmac_phy_reset_pin_bpi_m2: gmac_phy_reset_pin@0 { 170 gmac_phy_reset_pin_bpi_m2: gmac_phy_reset_pin@0 {
156 pins = "PA21"; 171 pins = "PA21";
@@ -176,6 +191,48 @@
176 }; 191 };
177}; 192};
178 193
194#include "axp22x.dtsi"
195
196&reg_dc5ldo {
197 regulator-min-microvolt = <700000>;
198 regulator-max-microvolt = <1320000>;
199 regulator-name = "vdd-cpus";
200};
201
202&reg_dcdc1 {
203 regulator-always-on;
204 regulator-min-microvolt = <3000000>;
205 regulator-max-microvolt = <3000000>;
206 regulator-name = "vdd-3v0";
207};
208
209&reg_dcdc2 {
210 regulator-min-microvolt = <700000>;
211 regulator-max-microvolt = <1320000>;
212 regulator-name = "vdd-gpu";
213};
214
215&reg_dcdc3 {
216 regulator-always-on;
217 regulator-min-microvolt = <700000>;
218 regulator-max-microvolt = <1320000>;
219 regulator-name = "vdd-cpu";
220};
221
222&reg_dcdc4 {
223 regulator-always-on;
224 regulator-min-microvolt = <700000>;
225 regulator-max-microvolt = <1320000>;
226 regulator-name = "vdd-sys-dll";
227};
228
229&reg_dcdc5 {
230 regulator-always-on;
231 regulator-min-microvolt = <1500000>;
232 regulator-max-microvolt = <1500000>;
233 regulator-name = "vcc-dram";
234};
235
179&uart0 { 236&uart0 {
180 pinctrl-names = "default"; 237 pinctrl-names = "default";
181 pinctrl-0 = <&uart0_pins_a>; 238 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
index 154ebf5082ed..f3edf9ca435c 100644
--- a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts
@@ -45,7 +45,6 @@
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49 48
50/ { 49/ {
51 model = "Yones TopTech BS1078 v2 Tablet"; 50 model = "Yones TopTech BS1078 v2 Tablet";
diff --git a/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
index edaba5f904fd..3cc4046b904a 100644
--- a/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun6i-reference-design-tablet.dtsi
@@ -44,7 +44,6 @@
44 44
45#include <dt-bindings/gpio/gpio.h> 45#include <dt-bindings/gpio/gpio.h>
46#include <dt-bindings/input/input.h> 46#include <dt-bindings/input/input.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48 47
49/ { 48/ {
50 aliases { 49 aliases {
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
index 91f2e5f9efcb..ed2f35adf542 100644
--- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "LeMaker Banana Pi"; 53 model = "LeMaker Banana Pi";
diff --git a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
index 4dc1e10f88c4..a2eab7aa80e0 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubieboard2.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Cubietech Cubieboard2"; 53 model = "Cubietech Cubieboard2";
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index f019aa3fe96d..102903e83bd2 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Cubietech Cubietruck"; 53 model = "Cubietech Cubietruck";
@@ -268,6 +267,10 @@
268 267
269#include "axp209.dtsi" 268#include "axp209.dtsi"
270 269
270&ac_power_supply {
271 status = "okay";
272};
273
271&reg_dcdc2 { 274&reg_dcdc2 {
272 regulator-always-on; 275 regulator-always-on;
273 regulator-min-microvolt = <1000000>; 276 regulator-min-microvolt = <1000000>;
@@ -324,6 +327,10 @@
324 status = "okay"; 327 status = "okay";
325}; 328};
326 329
330&usb_power_supply {
331 status = "okay";
332};
333
327&usbphy { 334&usbphy {
328 pinctrl-names = "default"; 335 pinctrl-names = "default";
329 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; 336 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
diff --git a/arch/arm/boot/dts/sun7i-a20-hummingbird.dts b/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
index e921ba42f170..99c00b9a1546 100644
--- a/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
+++ b/arch/arm/boot/dts/sun7i-a20-hummingbird.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Merrii A20 Hummingbird"; 53 model = "Merrii A20 Hummingbird";
diff --git a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
index 385fd8232ae0..4da49717da21 100644
--- a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
+++ b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "I12 / Q5 / QT840A A20 tvbox"; 51 model = "I12 / Q5 / QT840A A20 tvbox";
diff --git a/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts b/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts
index f5b5325a70e2..28d3abbdc2d4 100644
--- a/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts
+++ b/arch/arm/boot/dts/sun7i-a20-icnova-swac.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "ICnova-A20 SWAC"; 51 model = "ICnova-A20 SWAC";
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
index bbf1c8cbaac6..96bb0bc198ba 100644
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Lamobo R1"; 51 model = "Lamobo R1";
diff --git a/arch/arm/boot/dts/sun7i-a20-m3.dts b/arch/arm/boot/dts/sun7i-a20-m3.dts
index 0e074bd0e8c9..86f69813683e 100644
--- a/arch/arm/boot/dts/sun7i-a20-m3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-m3.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Mele M3"; 53 model = "Mele M3";
diff --git a/arch/arm/boot/dts/sun7i-a20-mk808c.dts b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
index 97d7a8b65a03..c4ee30709f3a 100644
--- a/arch/arm/boot/dts/sun7i-a20-mk808c.dts
+++ b/arch/arm/boot/dts/sun7i-a20-mk808c.dts
@@ -53,7 +53,6 @@
53 53
54#include <dt-bindings/gpio/gpio.h> 54#include <dt-bindings/gpio/gpio.h>
55#include <dt-bindings/interrupt-controller/irq.h> 55#include <dt-bindings/interrupt-controller/irq.h>
56#include <dt-bindings/pinctrl/sun4i-a10.h>
57 56
58/ { 57/ {
59 model = "mk808c"; 58 model = "mk808c";
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 a1450c10b08e..1af5b46862cb 100644
--- a/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olimex-som-evb.dts
@@ -48,7 +48,6 @@
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h> 49#include <dt-bindings/input/input.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Olimex A20-Olimex-SOM-EVB"; 53 model = "Olimex A20-Olimex-SOM-EVB";
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
index 1297432c2802..dcd0f7a0dffa 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
@@ -49,7 +49,6 @@
49 49
50#include <dt-bindings/gpio/gpio.h> 50#include <dt-bindings/gpio/gpio.h>
51#include <dt-bindings/interrupt-controller/irq.h> 51#include <dt-bindings/interrupt-controller/irq.h>
52#include <dt-bindings/pinctrl/sun4i-a10.h>
53 52
54/ { 53/ {
55 model = "Olimex A20-OLinuXino-LIME"; 54 model = "Olimex A20-OLinuXino-LIME";
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
index 71cca5360728..e7d45425758c 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Olimex A20-OLinuXino-LIME2"; 51 model = "Olimex A20-OLinuXino-LIME2";
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index 223fbd9f7c62..def0ad8395bb 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -49,7 +49,6 @@
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h> 50#include <dt-bindings/input/input.h>
51#include <dt-bindings/interrupt-controller/irq.h> 51#include <dt-bindings/interrupt-controller/irq.h>
52#include <dt-bindings/pinctrl/sun4i-a10.h>
53 52
54/ { 53/ {
55 model = "Olimex A20-Olinuxino Micro"; 54 model = "Olimex A20-Olinuxino Micro";
@@ -85,6 +84,14 @@
85 status = "okay"; 84 status = "okay";
86}; 85};
87 86
87&codec {
88 status = "okay";
89};
90
91&cpu0 {
92 cpu-supply = <&reg_dcdc2>;
93};
94
88&ehci0 { 95&ehci0 {
89 status = "okay"; 96 status = "okay";
90}; 97};
@@ -111,13 +118,9 @@
111 status = "okay"; 118 status = "okay";
112 119
113 axp209: pmic@34 { 120 axp209: pmic@34 {
114 compatible = "x-powers,axp209";
115 reg = <0x34>; 121 reg = <0x34>;
116 interrupt-parent = <&nmi_intc>; 122 interrupt-parent = <&nmi_intc>;
117 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 123 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
118
119 interrupt-controller;
120 #interrupt-cells = <1>;
121 }; 124 };
122}; 125};
123 126
@@ -251,6 +254,29 @@
251 }; 254 };
252}; 255};
253 256
257#include "axp209.dtsi"
258
259&reg_dcdc2 {
260 regulator-always-on;
261 regulator-min-microvolt = <1000000>;
262 regulator-max-microvolt = <1400000>;
263 regulator-name = "vdd-cpu";
264};
265
266&reg_dcdc3 {
267 regulator-always-on;
268 regulator-min-microvolt = <1000000>;
269 regulator-max-microvolt = <1400000>;
270 regulator-name = "vdd-int-dll";
271};
272
273&reg_ldo2 {
274 regulator-always-on;
275 regulator-min-microvolt = <3000000>;
276 regulator-max-microvolt = <3000000>;
277 regulator-name = "avcc";
278};
279
254&reg_ahci_5v { 280&reg_ahci_5v {
255 status = "okay"; 281 status = "okay";
256}; 282};
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
index a74265749227..7af4c8fc1865 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi-mini.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Orange Pi Mini"; 53 model = "Orange Pi Mini";
diff --git a/arch/arm/boot/dts/sun7i-a20-orangepi.dts b/arch/arm/boot/dts/sun7i-a20-orangepi.dts
index 3de980c8f8ff..0a8d4a05e8a0 100644
--- a/arch/arm/boot/dts/sun7i-a20-orangepi.dts
+++ b/arch/arm/boot/dts/sun7i-a20-orangepi.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Orange Pi"; 53 model = "Orange Pi";
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
index 4599f98a3aee..7c96b53b76bf 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
@@ -48,7 +48,6 @@
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h> 49#include <dt-bindings/input/input.h>
50#include <dt-bindings/interrupt-controller/irq.h> 50#include <dt-bindings/interrupt-controller/irq.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "LinkSprite pcDuino3"; 53 model = "LinkSprite pcDuino3";
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 2db97fc820dd..93aa55970bd7 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -49,7 +49,6 @@
49 49
50#include <dt-bindings/clock/sun4i-a10-pll2.h> 50#include <dt-bindings/clock/sun4i-a10-pll2.h>
51#include <dt-bindings/dma/sun4i-a10.h> 51#include <dt-bindings/dma/sun4i-a10.h>
52#include <dt-bindings/pinctrl/sun4i-a10.h>
53 52
54/ { 53/ {
55 interrupt-parent = <&gic>; 54 interrupt-parent = <&gic>;
@@ -1096,6 +1095,11 @@
1096 #interrupt-cells = <3>; 1095 #interrupt-cells = <3>;
1097 #gpio-cells = <3>; 1096 #gpio-cells = <3>;
1098 1097
1098 can0_pins_a: can0@0 {
1099 pins = "PH20", "PH21";
1100 function = "can";
1101 };
1102
1099 clk_out_a_pins_a: clk_out_a@0 { 1103 clk_out_a_pins_a: clk_out_a@0 {
1100 pins = "PI12"; 1104 pins = "PI12";
1101 function = "clk_out_a"; 1105 function = "clk_out_a";
@@ -1538,6 +1542,22 @@
1538 status = "disabled"; 1542 status = "disabled";
1539 }; 1543 };
1540 1544
1545 ps20: ps2@01c2a000 {
1546 compatible = "allwinner,sun4i-a10-ps2";
1547 reg = <0x01c2a000 0x400>;
1548 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1549 clocks = <&apb1_gates 6>;
1550 status = "disabled";
1551 };
1552
1553 ps21: ps2@01c2a400 {
1554 compatible = "allwinner,sun4i-a10-ps2";
1555 reg = <0x01c2a400 0x400>;
1556 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
1557 clocks = <&apb1_gates 7>;
1558 status = "disabled";
1559 };
1560
1541 i2c0: i2c@01c2ac00 { 1561 i2c0: i2c@01c2ac00 {
1542 compatible = "allwinner,sun7i-a20-i2c", 1562 compatible = "allwinner,sun7i-a20-i2c",
1543 "allwinner,sun4i-a10-i2c"; 1563 "allwinner,sun4i-a10-i2c";
@@ -1582,6 +1602,15 @@
1582 #size-cells = <0>; 1602 #size-cells = <0>;
1583 }; 1603 };
1584 1604
1605 can0: can@01c2bc00 {
1606 compatible = "allwinner,sun7i-a20-can",
1607 "allwinner,sun4i-a10-can";
1608 reg = <0x01c2bc00 0x400>;
1609 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
1610 clocks = <&apb1_gates 4>;
1611 status = "disabled";
1612 };
1613
1585 i2c4: i2c@01c2c000 { 1614 i2c4: i2c@01c2c000 {
1586 compatible = "allwinner,sun7i-a20-i2c", 1615 compatible = "allwinner,sun7i-a20-i2c",
1587 "allwinner,sun4i-a10-i2c"; 1616 "allwinner,sun4i-a10-i2c";
@@ -1629,20 +1658,5 @@
1629 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 1658 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
1630 }; 1659 };
1631 1660
1632 ps20: ps2@01c2a000 {
1633 compatible = "allwinner,sun4i-a10-ps2";
1634 reg = <0x01c2a000 0x400>;
1635 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1636 clocks = <&apb1_gates 6>;
1637 status = "disabled";
1638 };
1639
1640 ps21: ps2@01c2a400 {
1641 compatible = "allwinner,sun4i-a10-ps2";
1642 reg = <0x01c2a400 0x400>;
1643 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
1644 clocks = <&apb1_gates 7>;
1645 status = "disabled";
1646 };
1647 }; 1661 };
1648}; 1662};
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 8a3ed21cb7bc..a8b978d0f35b 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -47,7 +47,6 @@
47#include <dt-bindings/interrupt-controller/arm-gic.h> 47#include <dt-bindings/interrupt-controller/arm-gic.h>
48 48
49#include <dt-bindings/clock/sun8i-a23-a33-ccu.h> 49#include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51#include <dt-bindings/reset/sun8i-a23-a33-ccu.h> 50#include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
52 51
53/ { 52/ {
@@ -493,6 +492,7 @@
493 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>; 492 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
494 clock-names = "bus", "core"; 493 clock-names = "bus", "core";
495 resets = <&ccu RST_BUS_GPU>; 494 resets = <&ccu RST_BUS_GPU>;
495 #cooling-cells = <2>;
496 496
497 assigned-clocks = <&ccu CLK_GPU>; 497 assigned-clocks = <&ccu CLK_GPU>;
498 assigned-clock-rates = <384000000>; 498 assigned-clock-rates = <384000000>;
diff --git a/arch/arm/boot/dts/sun8i-a23-evb.dts b/arch/arm/boot/dts/sun8i-a23-evb.dts
index c21f5b1b255e..87289a60c520 100644
--- a/arch/arm/boot/dts/sun8i-a23-evb.dts
+++ b/arch/arm/boot/dts/sun8i-a23-evb.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h> 50#include <dt-bindings/input/input.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Allwinner A23 Evaluation Board"; 53 model = "Allwinner A23 Evaluation Board";
diff --git a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
index 3ab5c0c09d93..b6958e8f2f01 100644
--- a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
+++ b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
@@ -50,7 +50,6 @@
50}; 50};
51 51
52&codec { 52&codec {
53 pinctrl-0 = <&codec_pa_pin>;
54 allwinner,pa-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */ 53 allwinner,pa-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
55 allwinner,audio-routing = 54 allwinner,audio-routing =
56 "Headphone", "HP", 55 "Headphone", "HP",
@@ -62,12 +61,3 @@
62 "Headset Mic", "HBIAS"; 61 "Headset Mic", "HBIAS";
63 status = "okay"; 62 status = "okay";
64}; 63};
65
66&pio {
67 codec_pa_pin: codec_pa_pin@0 {
68 allwinner,pins = "PH9";
69 allwinner,function = "gpio_out";
70 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
71 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
72 };
73};
diff --git a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
index 03b89bdd55ba..9b620cc1d5f1 100644
--- a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
+++ b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
@@ -48,7 +48,6 @@
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h> 50#include <dt-bindings/input/input.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h>
52 51
53/ { 52/ {
54 model = "Sinlinx SinA33"; 53 model = "Sinlinx SinA33";
@@ -84,6 +83,24 @@
84 status = "okay"; 83 status = "okay";
85}; 84};
86 85
86&cpu0 {
87 cpu-supply = <&reg_dcdc3>;
88};
89
90&cpu0_opp_table {
91 opp@1104000000 {
92 opp-hz = /bits/ 64 <1104000000>;
93 opp-microvolt = <1320000>;
94 clock-latency-ns = <244144>; /* 8 32k periods */
95 };
96
97 opp@1200000000 {
98 opp-hz = /bits/ 64 <1200000000>;
99 opp-microvolt = <1320000>;
100 clock-latency-ns = <244144>; /* 8 32k periods */
101 };
102};
103
87&de { 104&de {
88 status = "okay"; 105 status = "okay";
89}; 106};
@@ -175,6 +192,10 @@
175 192
176#include "axp223.dtsi" 193#include "axp223.dtsi"
177 194
195&ac_power_supply {
196 status = "okay";
197};
198
178&reg_aldo1 { 199&reg_aldo1 {
179 regulator-always-on; 200 regulator-always-on;
180 regulator-min-microvolt = <3000000>; 201 regulator-min-microvolt = <3000000>;
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 306af6cadf26..013978259372 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -43,24 +43,79 @@
43 */ 43 */
44 44
45#include "sun8i-a23-a33.dtsi" 45#include "sun8i-a23-a33.dtsi"
46#include <dt-bindings/thermal/thermal.h>
46 47
47/ { 48/ {
48 cpu0_opp_table: opp_table0 { 49 cpu0_opp_table: opp_table0 {
49 compatible = "operating-points-v2"; 50 compatible = "operating-points-v2";
50 opp-shared; 51 opp-shared;
51 52
53 opp@120000000 {
54 opp-hz = /bits/ 64 <120000000>;
55 opp-microvolt = <1040000>;
56 clock-latency-ns = <244144>; /* 8 32k periods */
57 };
58
59 opp@240000000 {
60 opp-hz = /bits/ 64 <240000000>;
61 opp-microvolt = <1040000>;
62 clock-latency-ns = <244144>; /* 8 32k periods */
63 };
64
65 opp@312000000 {
66 opp-hz = /bits/ 64 <312000000>;
67 opp-microvolt = <1040000>;
68 clock-latency-ns = <244144>; /* 8 32k periods */
69 };
70
71 opp@408000000 {
72 opp-hz = /bits/ 64 <408000000>;
73 opp-microvolt = <1040000>;
74 clock-latency-ns = <244144>; /* 8 32k periods */
75 };
76
77 opp@480000000 {
78 opp-hz = /bits/ 64 <480000000>;
79 opp-microvolt = <1040000>;
80 clock-latency-ns = <244144>; /* 8 32k periods */
81 };
82
83 opp@504000000 {
84 opp-hz = /bits/ 64 <504000000>;
85 opp-microvolt = <1040000>;
86 clock-latency-ns = <244144>; /* 8 32k periods */
87 };
88
89 opp@600000000 {
90 opp-hz = /bits/ 64 <600000000>;
91 opp-microvolt = <1040000>;
92 clock-latency-ns = <244144>; /* 8 32k periods */
93 };
94
52 opp@648000000 { 95 opp@648000000 {
53 opp-hz = /bits/ 64 <648000000>; 96 opp-hz = /bits/ 64 <648000000>;
54 opp-microvolt = <1040000>; 97 opp-microvolt = <1040000>;
55 clock-latency-ns = <244144>; /* 8 32k periods */ 98 clock-latency-ns = <244144>; /* 8 32k periods */
56 }; 99 };
57 100
101 opp@720000000 {
102 opp-hz = /bits/ 64 <720000000>;
103 opp-microvolt = <1100000>;
104 clock-latency-ns = <244144>; /* 8 32k periods */
105 };
106
58 opp@816000000 { 107 opp@816000000 {
59 opp-hz = /bits/ 64 <816000000>; 108 opp-hz = /bits/ 64 <816000000>;
60 opp-microvolt = <1100000>; 109 opp-microvolt = <1100000>;
61 clock-latency-ns = <244144>; /* 8 32k periods */ 110 clock-latency-ns = <244144>; /* 8 32k periods */
62 }; 111 };
63 112
113 opp@912000000 {
114 opp-hz = /bits/ 64 <912000000>;
115 opp-microvolt = <1200000>;
116 clock-latency-ns = <244144>; /* 8 32k periods */
117 };
118
64 opp@1008000000 { 119 opp@1008000000 {
65 opp-hz = /bits/ 64 <1008000000>; 120 opp-hz = /bits/ 64 <1008000000>;
66 opp-microvolt = <1200000>; 121 opp-microvolt = <1200000>;
@@ -73,6 +128,7 @@
73 clocks = <&ccu CLK_CPUX>; 128 clocks = <&ccu CLK_CPUX>;
74 clock-names = "cpu"; 129 clock-names = "cpu";
75 operating-points-v2 = <&cpu0_opp_table>; 130 operating-points-v2 = <&cpu0_opp_table>;
131 #cooling-cells = <2>;
76 }; 132 };
77 133
78 cpu@1 { 134 cpu@1 {
@@ -100,6 +156,27 @@
100 status = "disabled"; 156 status = "disabled";
101 }; 157 };
102 158
159 iio-hwmon {
160 compatible = "iio-hwmon";
161 io-channels = <&ths>;
162 };
163
164 mali_opp_table: gpu-opp-table {
165 compatible = "operating-points-v2";
166
167 opp@144000000 {
168 opp-hz = /bits/ 64 <144000000>;
169 };
170
171 opp@240000000 {
172 opp-hz = /bits/ 64 <240000000>;
173 };
174
175 opp@384000000 {
176 opp-hz = /bits/ 64 <384000000>;
177 };
178 };
179
103 memory { 180 memory {
104 reg = <0x40000000 0x80000000>; 181 reg = <0x40000000 0x80000000>;
105 }; 182 };
@@ -196,6 +273,13 @@
196 status = "disabled"; 273 status = "disabled";
197 }; 274 };
198 275
276 ths: ths@01c25000 {
277 compatible = "allwinner,sun8i-a33-ths";
278 reg = <0x01c25000 0x100>;
279 #thermal-sensor-cells = <0>;
280 #io-channel-cells = <0>;
281 };
282
199 fe0: display-frontend@01e00000 { 283 fe0: display-frontend@01e00000 {
200 compatible = "allwinner,sun8i-a33-display-frontend"; 284 compatible = "allwinner,sun8i-a33-display-frontend";
201 reg = <0x01e00000 0x20000>; 285 reg = <0x01e00000 0x20000>;
@@ -306,12 +390,83 @@
306 }; 390 };
307 }; 391 };
308 }; 392 };
393
394 thermal-zones {
395 cpu_thermal {
396 /* milliseconds */
397 polling-delay-passive = <250>;
398 polling-delay = <1000>;
399 thermal-sensors = <&ths>;
400
401 cooling-maps {
402 map0 {
403 trip = <&cpu_alert0>;
404 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
405 };
406 map1 {
407 trip = <&cpu_alert1>;
408 cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
409 };
410
411 map2 {
412 trip = <&gpu_alert0>;
413 cooling-device = <&mali 1 THERMAL_NO_LIMIT>;
414 };
415
416 map3 {
417 trip = <&gpu_alert1>;
418 cooling-device = <&mali 2 THERMAL_NO_LIMIT>;
419 };
420 };
421
422 trips {
423 cpu_alert0: cpu_alert0 {
424 /* milliCelsius */
425 temperature = <75000>;
426 hysteresis = <2000>;
427 type = "passive";
428 };
429
430 gpu_alert0: gpu_alert0 {
431 /* milliCelsius */
432 temperature = <85000>;
433 hysteresis = <2000>;
434 type = "passive";
435 };
436
437 cpu_alert1: cpu_alert1 {
438 /* milliCelsius */
439 temperature = <90000>;
440 hysteresis = <2000>;
441 type = "hot";
442 };
443
444 gpu_alert1: gpu_alert1 {
445 /* milliCelsius */
446 temperature = <95000>;
447 hysteresis = <2000>;
448 type = "hot";
449 };
450
451 cpu_crit: cpu_crit {
452 /* milliCelsius */
453 temperature = <110000>;
454 hysteresis = <2000>;
455 type = "critical";
456 };
457 };
458 };
459 };
309}; 460};
310 461
311&ccu { 462&ccu {
312 compatible = "allwinner,sun8i-a33-ccu"; 463 compatible = "allwinner,sun8i-a33-ccu";
313}; 464};
314 465
466&mali {
467 operating-points-v2 = <&mali_opp_table>;
468};
469
315&pio { 470&pio {
316 compatible = "allwinner,sun8i-a33-pinctrl"; 471 compatible = "allwinner,sun8i-a33-pinctrl";
317 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>, 472 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index a789a7caf217..0ec143773ee9 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -47,8 +47,6 @@
47 47
48#include <dt-bindings/interrupt-controller/arm-gic.h> 48#include <dt-bindings/interrupt-controller/arm-gic.h>
49 49
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51
52/ { 50/ {
53 interrupt-parent = <&gic>; 51 interrupt-parent = <&gic>;
54 52
diff --git a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
index b7ca916d871d..9e8b082c134f 100644
--- a/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
+++ b/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts
@@ -49,7 +49,6 @@
49 49
50#include <dt-bindings/gpio/gpio.h> 50#include <dt-bindings/gpio/gpio.h>
51#include <dt-bindings/input/input.h> 51#include <dt-bindings/input/input.h>
52#include <dt-bindings/pinctrl/sun4i-a10.h>
53 52
54/ { 53/ {
55 model = "Xunlong Orange Pi Zero"; 54 model = "Xunlong Orange Pi Zero";
@@ -96,6 +95,10 @@
96 }; 95 };
97}; 96};
98 97
98&ehci0 {
99 status = "okay";
100};
101
99&ehci1 { 102&ehci1 {
100 status = "okay"; 103 status = "okay";
101}; 104};
@@ -132,6 +135,10 @@
132 bias-pull-up; 135 bias-pull-up;
133}; 136};
134 137
138&ohci0 {
139 status = "okay";
140};
141
135&ohci1 { 142&ohci1 {
136 status = "okay"; 143 status = "okay";
137}; 144};
@@ -154,7 +161,17 @@
154 status = "disabled"; 161 status = "disabled";
155}; 162};
156 163
164&usb_otg {
165 dr_mode = "peripheral";
166 status = "okay";
167};
168
157&usbphy { 169&usbphy {
158 /* USB VBUS is always on */ 170 /*
171 * USB Type-A port VBUS is always on. However, MicroUSB VBUS can only
172 * power up the board; when it's used as OTG port, this VBUS is
173 * always off even if the board is powered via GPIO pins.
174 */
159 status = "okay"; 175 status = "okay";
176 usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
160}; 177};
diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
index c0c49dd4d3b2..52acbe111cad 100644
--- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Banana Pi BPI-M2-Plus"; 51 model = "Banana Pi BPI-M2-Plus";
diff --git a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
index 25b225b7dfd6..e7fae65eb5d3 100644
--- a/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
+++ b/arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Beelink X2"; 51 model = "Beelink X2";
@@ -138,6 +137,16 @@
138 }; 137 };
139}; 138};
140 139
140&mmc2 {
141 pinctrl-names = "default";
142 pinctrl-0 = <&mmc2_8bit_pins>;
143 vmmc-supply = <&reg_vcc3v3>;
144 bus-width = <8>;
145 non-removable;
146 cap-mmc-hw-reset;
147 status = "okay";
148};
149
141&ohci1 { 150&ohci1 {
142 status = "okay"; 151 status = "okay";
143}; 152};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
new file mode 100644
index 000000000000..03ff6f8b93ff
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dts
@@ -0,0 +1,96 @@
1/*
2 * Copyright (C) 2017 Jelle van der Waa <jelle@vdwaa.nl>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48
49/ {
50 model = "FriendlyARM NanoPi NEO Air";
51 compatible = "friendlyarm,nanopi-neo-air", "allwinner,sun8i-h3";
52
53 aliases {
54 serial0 = &uart0;
55 };
56
57 chosen {
58 stdout-path = "serial0:115200n8";
59 };
60
61 leds {
62 compatible = "gpio-leds";
63
64 pwr {
65 label = "nanopi:green:pwr";
66 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
67 default-state = "on";
68 };
69
70 status {
71 label = "nanopi:blue:status";
72 gpios = <&pio 0 10 GPIO_ACTIVE_HIGH>; /* PA10 */
73 };
74 };
75};
76
77&mmc0 {
78 pinctrl-names = "default";
79 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
80 vmmc-supply = <&reg_vcc3v3>;
81 bus-width = <4>;
82 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
83 cd-inverted;
84 status = "okay";
85};
86
87&uart0 {
88 pinctrl-names = "default";
89 pinctrl-0 = <&uart0_pins_a>;
90 status = "okay";
91};
92
93&usbphy {
94 /* USB VBUS is always on */
95 status = "okay";
96};
diff --git a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
index 2216e68d1838..c6decee41a27 100644
--- a/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
@@ -47,7 +47,6 @@
47 47
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h> 49#include <dt-bindings/input/input.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 aliases { 52 aliases {
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
index 047e9e1c6093..5b6d14555b7c 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-2.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Xunlong Orange Pi 2"; 51 model = "Xunlong Orange Pi 2";
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
index 22b99b407019..9b47a0def740 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-lite.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Xunlong Orange Pi Lite"; 51 model = "Xunlong Orange Pi Lite";
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
index 34da853ee037..5fea430e0eb1 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-one.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Xunlong Orange Pi One"; 51 model = "Xunlong Orange Pi One";
@@ -90,6 +89,10 @@
90 }; 89 };
91}; 90};
92 91
92&ehci0 {
93 status = "okay";
94};
95
93&ehci1 { 96&ehci1 {
94 status = "okay"; 97 status = "okay";
95}; 98};
@@ -104,6 +107,10 @@
104 status = "okay"; 107 status = "okay";
105}; 108};
106 109
110&ohci0 {
111 status = "okay";
112};
113
107&ohci1 { 114&ohci1 {
108 status = "okay"; 115 status = "okay";
109}; 116};
@@ -127,6 +134,11 @@
127 }; 134 };
128}; 135};
129 136
137&reg_usb0_vbus {
138 gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
139 status = "okay";
140};
141
130&uart0 { 142&uart0 {
131 pinctrl-names = "default"; 143 pinctrl-names = "default";
132 pinctrl-0 = <&uart0_pins_a>; 144 pinctrl-0 = <&uart0_pins_a>;
@@ -151,7 +163,14 @@
151 status = "disabled"; 163 status = "disabled";
152}; 164};
153 165
166&usb_otg {
167 dr_mode = "otg";
168 status = "okay";
169};
170
154&usbphy { 171&usbphy {
155 /* USB VBUS is always on */ 172 /* USB Type-A port's VBUS is always on */
173 usb0_id_det-gpios = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
174 usb0_vbus-supply = <&reg_usb0_vbus>;
156 status = "okay"; 175 status = "okay";
157}; 176};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
index d43978d3294e..f148111c326d 100644
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts
@@ -46,7 +46,6 @@
46 46
47#include <dt-bindings/gpio/gpio.h> 47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h> 48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Xunlong Orange Pi PC"; 51 model = "Xunlong Orange Pi PC";
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index 27780b97c863..b36f9f423c39 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -40,16 +40,9 @@
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 41 */
42 42
43#include "skeleton.dtsi" 43#include "sunxi-h3-h5.dtsi"
44
45#include <dt-bindings/clock/sun8i-h3-ccu.h>
46#include <dt-bindings/interrupt-controller/arm-gic.h>
47#include <dt-bindings/pinctrl/sun4i-a10.h>
48#include <dt-bindings/reset/sun8i-h3-ccu.h>
49 44
50/ { 45/ {
51 interrupt-parent = <&gic>;
52
53 cpus { 46 cpus {
54 #address-cells = <1>; 47 #address-cells = <1>;
55 #size-cells = <0>; 48 #size-cells = <0>;
@@ -86,563 +79,48 @@
86 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 79 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
87 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 80 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
88 }; 81 };
82};
89 83
90 clocks { 84&ccu {
91 #address-cells = <1>; 85 compatible = "allwinner,sun8i-h3-ccu";
92 #size-cells = <1>; 86};
93 ranges;
94
95 osc24M: osc24M_clk {
96 #clock-cells = <0>;
97 compatible = "fixed-clock";
98 clock-frequency = <24000000>;
99 clock-output-names = "osc24M";
100 };
101
102 osc32k: osc32k_clk {
103 #clock-cells = <0>;
104 compatible = "fixed-clock";
105 clock-frequency = <32768>;
106 clock-output-names = "osc32k";
107 };
108
109 apb0: apb0_clk {
110 compatible = "fixed-factor-clock";
111 #clock-cells = <0>;
112 clock-div = <1>;
113 clock-mult = <1>;
114 clocks = <&osc24M>;
115 clock-output-names = "apb0";
116 };
117
118 apb0_gates: clk@01f01428 {
119 compatible = "allwinner,sun8i-h3-apb0-gates-clk",
120 "allwinner,sun4i-a10-gates-clk";
121 reg = <0x01f01428 0x4>;
122 #clock-cells = <1>;
123 clocks = <&apb0>;
124 clock-indices = <0>, <1>;
125 clock-output-names = "apb0_pio", "apb0_ir";
126 };
127
128 ir_clk: ir_clk@01f01454 {
129 compatible = "allwinner,sun4i-a10-mod0-clk";
130 reg = <0x01f01454 0x4>;
131 #clock-cells = <0>;
132 clocks = <&osc32k>, <&osc24M>;
133 clock-output-names = "ir";
134 };
135 };
136
137 soc {
138 compatible = "simple-bus";
139 #address-cells = <1>;
140 #size-cells = <1>;
141 ranges;
142
143 dma: dma-controller@01c02000 {
144 compatible = "allwinner,sun8i-h3-dma";
145 reg = <0x01c02000 0x1000>;
146 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
147 clocks = <&ccu CLK_BUS_DMA>;
148 resets = <&ccu RST_BUS_DMA>;
149 #dma-cells = <1>;
150 };
151
152 mmc0: mmc@01c0f000 {
153 compatible = "allwinner,sun7i-a20-mmc";
154 reg = <0x01c0f000 0x1000>;
155 clocks = <&ccu CLK_BUS_MMC0>,
156 <&ccu CLK_MMC0>,
157 <&ccu CLK_MMC0_OUTPUT>,
158 <&ccu CLK_MMC0_SAMPLE>;
159 clock-names = "ahb",
160 "mmc",
161 "output",
162 "sample";
163 resets = <&ccu RST_BUS_MMC0>;
164 reset-names = "ahb";
165 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
166 status = "disabled";
167 #address-cells = <1>;
168 #size-cells = <0>;
169 };
170
171 mmc1: mmc@01c10000 {
172 compatible = "allwinner,sun7i-a20-mmc";
173 reg = <0x01c10000 0x1000>;
174 clocks = <&ccu CLK_BUS_MMC1>,
175 <&ccu CLK_MMC1>,
176 <&ccu CLK_MMC1_OUTPUT>,
177 <&ccu CLK_MMC1_SAMPLE>;
178 clock-names = "ahb",
179 "mmc",
180 "output",
181 "sample";
182 resets = <&ccu RST_BUS_MMC1>;
183 reset-names = "ahb";
184 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
185 status = "disabled";
186 #address-cells = <1>;
187 #size-cells = <0>;
188 };
189
190 mmc2: mmc@01c11000 {
191 compatible = "allwinner,sun7i-a20-mmc";
192 reg = <0x01c11000 0x1000>;
193 clocks = <&ccu CLK_BUS_MMC2>,
194 <&ccu CLK_MMC2>,
195 <&ccu CLK_MMC2_OUTPUT>,
196 <&ccu CLK_MMC2_SAMPLE>;
197 clock-names = "ahb",
198 "mmc",
199 "output",
200 "sample";
201 resets = <&ccu RST_BUS_MMC2>;
202 reset-names = "ahb";
203 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
204 status = "disabled";
205 #address-cells = <1>;
206 #size-cells = <0>;
207 };
208
209 usbphy: phy@01c19400 {
210 compatible = "allwinner,sun8i-h3-usb-phy";
211 reg = <0x01c19400 0x2c>,
212 <0x01c1a800 0x4>,
213 <0x01c1b800 0x4>,
214 <0x01c1c800 0x4>,
215 <0x01c1d800 0x4>;
216 reg-names = "phy_ctrl",
217 "pmu0",
218 "pmu1",
219 "pmu2",
220 "pmu3";
221 clocks = <&ccu CLK_USB_PHY0>,
222 <&ccu CLK_USB_PHY1>,
223 <&ccu CLK_USB_PHY2>,
224 <&ccu CLK_USB_PHY3>;
225 clock-names = "usb0_phy",
226 "usb1_phy",
227 "usb2_phy",
228 "usb3_phy";
229 resets = <&ccu RST_USB_PHY0>,
230 <&ccu RST_USB_PHY1>,
231 <&ccu RST_USB_PHY2>,
232 <&ccu RST_USB_PHY3>;
233 reset-names = "usb0_reset",
234 "usb1_reset",
235 "usb2_reset",
236 "usb3_reset";
237 status = "disabled";
238 #phy-cells = <1>;
239 };
240
241 ehci1: usb@01c1b000 {
242 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
243 reg = <0x01c1b000 0x100>;
244 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
245 clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>;
246 resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>;
247 phys = <&usbphy 1>;
248 phy-names = "usb";
249 status = "disabled";
250 };
251
252 ohci1: usb@01c1b400 {
253 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
254 reg = <0x01c1b400 0x100>;
255 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
256 clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>,
257 <&ccu CLK_USB_OHCI1>;
258 resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>;
259 phys = <&usbphy 1>;
260 phy-names = "usb";
261 status = "disabled";
262 };
263
264 ehci2: usb@01c1c000 {
265 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
266 reg = <0x01c1c000 0x100>;
267 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
268 clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>;
269 resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
270 phys = <&usbphy 2>;
271 phy-names = "usb";
272 status = "disabled";
273 };
274
275 ohci2: usb@01c1c400 {
276 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
277 reg = <0x01c1c400 0x100>;
278 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
279 clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>,
280 <&ccu CLK_USB_OHCI2>;
281 resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
282 phys = <&usbphy 2>;
283 phy-names = "usb";
284 status = "disabled";
285 };
286
287 ehci3: usb@01c1d000 {
288 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
289 reg = <0x01c1d000 0x100>;
290 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
291 clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>;
292 resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>;
293 phys = <&usbphy 3>;
294 phy-names = "usb";
295 status = "disabled";
296 };
297
298 ohci3: usb@01c1d400 {
299 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
300 reg = <0x01c1d400 0x100>;
301 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
302 clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>,
303 <&ccu CLK_USB_OHCI3>;
304 resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>;
305 phys = <&usbphy 3>;
306 phy-names = "usb";
307 status = "disabled";
308 };
309
310 ccu: clock@01c20000 {
311 compatible = "allwinner,sun8i-h3-ccu";
312 reg = <0x01c20000 0x400>;
313 clocks = <&osc24M>, <&osc32k>;
314 clock-names = "hosc", "losc";
315 #clock-cells = <1>;
316 #reset-cells = <1>;
317 };
318
319 pio: pinctrl@01c20800 {
320 compatible = "allwinner,sun8i-h3-pinctrl";
321 reg = <0x01c20800 0x400>;
322 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
323 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
324 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
325 clock-names = "apb", "hosc", "losc";
326 gpio-controller;
327 #gpio-cells = <3>;
328 interrupt-controller;
329 #interrupt-cells = <3>;
330
331 i2c0_pins: i2c0 {
332 pins = "PA11", "PA12";
333 function = "i2c0";
334 };
335
336 i2c1_pins: i2c1 {
337 pins = "PA18", "PA19";
338 function = "i2c1";
339 };
340
341 i2c2_pins: i2c2 {
342 pins = "PE12", "PE13";
343 function = "i2c2";
344 };
345
346 mmc0_pins_a: mmc0@0 {
347 pins = "PF0", "PF1", "PF2", "PF3",
348 "PF4", "PF5";
349 function = "mmc0";
350 drive-strength = <30>;
351 bias-pull-up;
352 };
353
354 mmc0_cd_pin: mmc0_cd_pin@0 {
355 pins = "PF6";
356 function = "gpio_in";
357 bias-pull-up;
358 };
359
360 mmc1_pins_a: mmc1@0 {
361 pins = "PG0", "PG1", "PG2", "PG3",
362 "PG4", "PG5";
363 function = "mmc1";
364 drive-strength = <30>;
365 bias-pull-up;
366 };
367
368 mmc2_8bit_pins: mmc2_8bit {
369 pins = "PC5", "PC6", "PC8",
370 "PC9", "PC10", "PC11",
371 "PC12", "PC13", "PC14",
372 "PC15", "PC16";
373 function = "mmc2";
374 drive-strength = <30>;
375 bias-pull-up;
376 };
377
378 spdif_tx_pins_a: spdif@0 {
379 pins = "PA17";
380 function = "spdif";
381 };
382
383 spi0_pins: spi0 {
384 pins = "PC0", "PC1", "PC2", "PC3";
385 function = "spi0";
386 };
387
388 spi1_pins: spi1 {
389 pins = "PA15", "PA16", "PA14", "PA13";
390 function = "spi1";
391 };
392
393 uart0_pins_a: uart0@0 {
394 pins = "PA4", "PA5";
395 function = "uart0";
396 };
397
398 uart1_pins: uart1 {
399 pins = "PG6", "PG7";
400 function = "uart1";
401 };
402
403 uart1_rts_cts_pins: uart1_rts_cts {
404 pins = "PG8", "PG9";
405 function = "uart1";
406 };
407
408 uart2_pins: uart2 {
409 pins = "PA0", "PA1";
410 function = "uart2";
411 };
412
413 uart3_pins: uart3 {
414 pins = "PA13", "PA14";
415 function = "uart3";
416 };
417 };
418
419 timer@01c20c00 {
420 compatible = "allwinner,sun4i-a10-timer";
421 reg = <0x01c20c00 0xa0>;
422 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
423 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
424 clocks = <&osc24M>;
425 };
426
427 spi0: spi@01c68000 {
428 compatible = "allwinner,sun8i-h3-spi";
429 reg = <0x01c68000 0x1000>;
430 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
431 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
432 clock-names = "ahb", "mod";
433 dmas = <&dma 23>, <&dma 23>;
434 dma-names = "rx", "tx";
435 pinctrl-names = "default";
436 pinctrl-0 = <&spi0_pins>;
437 resets = <&ccu RST_BUS_SPI0>;
438 status = "disabled";
439 #address-cells = <1>;
440 #size-cells = <0>;
441 };
442
443 spi1: spi@01c69000 {
444 compatible = "allwinner,sun8i-h3-spi";
445 reg = <0x01c69000 0x1000>;
446 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
447 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
448 clock-names = "ahb", "mod";
449 dmas = <&dma 24>, <&dma 24>;
450 dma-names = "rx", "tx";
451 pinctrl-names = "default";
452 pinctrl-0 = <&spi1_pins>;
453 resets = <&ccu RST_BUS_SPI1>;
454 status = "disabled";
455 #address-cells = <1>;
456 #size-cells = <0>;
457 };
458
459 wdt0: watchdog@01c20ca0 {
460 compatible = "allwinner,sun6i-a31-wdt";
461 reg = <0x01c20ca0 0x20>;
462 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
463 };
464
465 spdif: spdif@01c21000 {
466 #sound-dai-cells = <0>;
467 compatible = "allwinner,sun8i-h3-spdif";
468 reg = <0x01c21000 0x400>;
469 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
470 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
471 resets = <&ccu RST_BUS_SPDIF>;
472 clock-names = "apb", "spdif";
473 dmas = <&dma 2>;
474 dma-names = "tx";
475 status = "disabled";
476 };
477
478 pwm: pwm@01c21400 {
479 compatible = "allwinner,sun8i-h3-pwm";
480 reg = <0x01c21400 0x8>;
481 clocks = <&osc24M>;
482 #pwm-cells = <3>;
483 status = "disabled";
484 };
485
486 codec: codec@01c22c00 {
487 #sound-dai-cells = <0>;
488 compatible = "allwinner,sun8i-h3-codec";
489 reg = <0x01c22c00 0x400>;
490 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
491 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
492 clock-names = "apb", "codec";
493 resets = <&ccu RST_BUS_CODEC>;
494 dmas = <&dma 15>, <&dma 15>;
495 dma-names = "rx", "tx";
496 allwinner,codec-analog-controls = <&codec_analog>;
497 status = "disabled";
498 };
499
500 uart0: serial@01c28000 {
501 compatible = "snps,dw-apb-uart";
502 reg = <0x01c28000 0x400>;
503 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
504 reg-shift = <2>;
505 reg-io-width = <4>;
506 clocks = <&ccu CLK_BUS_UART0>;
507 resets = <&ccu RST_BUS_UART0>;
508 dmas = <&dma 6>, <&dma 6>;
509 dma-names = "rx", "tx";
510 status = "disabled";
511 };
512
513 uart1: serial@01c28400 {
514 compatible = "snps,dw-apb-uart";
515 reg = <0x01c28400 0x400>;
516 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
517 reg-shift = <2>;
518 reg-io-width = <4>;
519 clocks = <&ccu CLK_BUS_UART1>;
520 resets = <&ccu RST_BUS_UART1>;
521 dmas = <&dma 7>, <&dma 7>;
522 dma-names = "rx", "tx";
523 status = "disabled";
524 };
525
526 uart2: serial@01c28800 {
527 compatible = "snps,dw-apb-uart";
528 reg = <0x01c28800 0x400>;
529 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
530 reg-shift = <2>;
531 reg-io-width = <4>;
532 clocks = <&ccu CLK_BUS_UART2>;
533 resets = <&ccu RST_BUS_UART2>;
534 dmas = <&dma 8>, <&dma 8>;
535 dma-names = "rx", "tx";
536 status = "disabled";
537 };
538
539 uart3: serial@01c28c00 {
540 compatible = "snps,dw-apb-uart";
541 reg = <0x01c28c00 0x400>;
542 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
543 reg-shift = <2>;
544 reg-io-width = <4>;
545 clocks = <&ccu CLK_BUS_UART3>;
546 resets = <&ccu RST_BUS_UART3>;
547 dmas = <&dma 9>, <&dma 9>;
548 dma-names = "rx", "tx";
549 status = "disabled";
550 };
551
552 i2c0: i2c@01c2ac00 {
553 compatible = "allwinner,sun6i-a31-i2c";
554 reg = <0x01c2ac00 0x400>;
555 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
556 clocks = <&ccu CLK_BUS_I2C0>;
557 resets = <&ccu RST_BUS_I2C0>;
558 pinctrl-names = "default";
559 pinctrl-0 = <&i2c0_pins>;
560 status = "disabled";
561 #address-cells = <1>;
562 #size-cells = <0>;
563 };
564
565 i2c1: i2c@01c2b000 {
566 compatible = "allwinner,sun6i-a31-i2c";
567 reg = <0x01c2b000 0x400>;
568 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
569 clocks = <&ccu CLK_BUS_I2C1>;
570 resets = <&ccu RST_BUS_I2C1>;
571 pinctrl-names = "default";
572 pinctrl-0 = <&i2c1_pins>;
573 status = "disabled";
574 #address-cells = <1>;
575 #size-cells = <0>;
576 };
577
578 i2c2: i2c@01c2b400 {
579 compatible = "allwinner,sun6i-a31-i2c";
580 reg = <0x01c2b000 0x400>;
581 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
582 clocks = <&ccu CLK_BUS_I2C2>;
583 resets = <&ccu RST_BUS_I2C2>;
584 pinctrl-names = "default";
585 pinctrl-0 = <&i2c2_pins>;
586 status = "disabled";
587 #address-cells = <1>;
588 #size-cells = <0>;
589 };
590
591 gic: interrupt-controller@01c81000 {
592 compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
593 reg = <0x01c81000 0x1000>,
594 <0x01c82000 0x2000>,
595 <0x01c84000 0x2000>,
596 <0x01c86000 0x2000>;
597 interrupt-controller;
598 #interrupt-cells = <3>;
599 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
600 };
601
602 rtc: rtc@01f00000 {
603 compatible = "allwinner,sun6i-a31-rtc";
604 reg = <0x01f00000 0x54>;
605 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
606 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
607 };
608
609 apb0_reset: reset@01f014b0 {
610 reg = <0x01f014b0 0x4>;
611 compatible = "allwinner,sun6i-a31-clock-reset";
612 #reset-cells = <1>;
613 };
614 87
615 codec_analog: codec-analog@01f015c0 { 88&mmc0 {
616 compatible = "allwinner,sun8i-h3-codec-analog"; 89 compatible = "allwinner,sun7i-a20-mmc";
617 reg = <0x01f015c0 0x4>; 90 clocks = <&ccu CLK_BUS_MMC0>,
618 }; 91 <&ccu CLK_MMC0>,
92 <&ccu CLK_MMC0_OUTPUT>,
93 <&ccu CLK_MMC0_SAMPLE>;
94 clock-names = "ahb",
95 "mmc",
96 "output",
97 "sample";
98};
619 99
620 ir: ir@01f02000 { 100&mmc1 {
621 compatible = "allwinner,sun5i-a13-ir"; 101 compatible = "allwinner,sun7i-a20-mmc";
622 clocks = <&apb0_gates 1>, <&ir_clk>; 102 clocks = <&ccu CLK_BUS_MMC1>,
623 clock-names = "apb", "ir"; 103 <&ccu CLK_MMC1>,
624 resets = <&apb0_reset 1>; 104 <&ccu CLK_MMC1_OUTPUT>,
625 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 105 <&ccu CLK_MMC1_SAMPLE>;
626 reg = <0x01f02000 0x40>; 106 clock-names = "ahb",
627 status = "disabled"; 107 "mmc",
628 }; 108 "output",
109 "sample";
110};
629 111
630 r_pio: pinctrl@01f02c00 { 112&mmc2 {
631 compatible = "allwinner,sun8i-h3-r-pinctrl"; 113 compatible = "allwinner,sun7i-a20-mmc";
632 reg = <0x01f02c00 0x400>; 114 clocks = <&ccu CLK_BUS_MMC2>,
633 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 115 <&ccu CLK_MMC2>,
634 clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>; 116 <&ccu CLK_MMC2_OUTPUT>,
635 clock-names = "apb", "hosc", "losc"; 117 <&ccu CLK_MMC2_SAMPLE>;
636 resets = <&apb0_reset 0>; 118 clock-names = "ahb",
637 gpio-controller; 119 "mmc",
638 #gpio-cells = <3>; 120 "output",
639 interrupt-controller; 121 "sample";
640 #interrupt-cells = <3>; 122};
641 123
642 ir_pins_a: ir@0 { 124&pio {
643 pins = "PL11"; 125 compatible = "allwinner,sun8i-h3-pinctrl";
644 function = "s_cir_rx";
645 };
646 };
647 };
648}; 126};
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index 9112a200fd5e..3741ac71c3d6 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -47,7 +47,6 @@
47#include "sun9i-a80.dtsi" 47#include "sun9i-a80.dtsi"
48 48
49#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51 50
52/ { 51/ {
53 model = "Cubietech Cubieboard4"; 52 model = "Cubietech Cubieboard4";
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 0fc3a87f5576..85f1ad670310 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -46,7 +46,6 @@
46#include "sun9i-a80.dtsi" 46#include "sun9i-a80.dtsi"
47 47
48#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50 49
51/ { 50/ {
52 model = "Merrii A80 Optimus Board"; 51 model = "Merrii A80 Optimus Board";
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 15b6d122f878..759a72317eb8 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -46,8 +46,6 @@
46 46
47#include <dt-bindings/interrupt-controller/arm-gic.h> 47#include <dt-bindings/interrupt-controller/arm-gic.h>
48 48
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50
51#include <dt-bindings/clock/sun9i-a80-ccu.h> 49#include <dt-bindings/clock/sun9i-a80-ccu.h>
52#include <dt-bindings/clock/sun9i-a80-de.h> 50#include <dt-bindings/clock/sun9i-a80-de.h>
53#include <dt-bindings/clock/sun9i-a80-usb.h> 51#include <dt-bindings/clock/sun9i-a80-usb.h>
diff --git a/arch/arm/boot/dts/sunxi-common-regulators.dtsi b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
index 17c09fed9e84..ce5c53e4452f 100644
--- a/arch/arm/boot/dts/sunxi-common-regulators.dtsi
+++ b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
@@ -43,7 +43,6 @@
43 */ 43 */
44 44
45#include <dt-bindings/gpio/gpio.h> 45#include <dt-bindings/gpio/gpio.h>
46#include <dt-bindings/pinctrl/sun4i-a10.h>
47 46
48&pio { 47&pio {
49 ahci_pwr_pin_a: ahci_pwr_pin@0 { 48 ahci_pwr_pin_a: ahci_pwr_pin@0 {
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
new file mode 100644
index 000000000000..6640ebfa6419
--- /dev/null
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -0,0 +1,618 @@
1/*
2 * Copyright (C) 2015 Jens Kuske <jenskuske@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include <dt-bindings/clock/sun8i-h3-ccu.h>
44#include <dt-bindings/interrupt-controller/arm-gic.h>
45#include <dt-bindings/reset/sun8i-h3-ccu.h>
46
47/ {
48 interrupt-parent = <&gic>;
49 #address-cells = <1>;
50 #size-cells = <1>;
51
52 clocks {
53 #address-cells = <1>;
54 #size-cells = <1>;
55 ranges;
56
57 osc24M: osc24M_clk {
58 #clock-cells = <0>;
59 compatible = "fixed-clock";
60 clock-frequency = <24000000>;
61 clock-output-names = "osc24M";
62 };
63
64 osc32k: osc32k_clk {
65 #clock-cells = <0>;
66 compatible = "fixed-clock";
67 clock-frequency = <32768>;
68 clock-output-names = "osc32k";
69 };
70
71 apb0: apb0_clk {
72 compatible = "fixed-factor-clock";
73 #clock-cells = <0>;
74 clock-div = <1>;
75 clock-mult = <1>;
76 clocks = <&osc24M>;
77 clock-output-names = "apb0";
78 };
79
80 apb0_gates: clk@01f01428 {
81 compatible = "allwinner,sun8i-h3-apb0-gates-clk",
82 "allwinner,sun4i-a10-gates-clk";
83 reg = <0x01f01428 0x4>;
84 #clock-cells = <1>;
85 clocks = <&apb0>;
86 clock-indices = <0>, <1>;
87 clock-output-names = "apb0_pio", "apb0_ir";
88 };
89
90 ir_clk: ir_clk@01f01454 {
91 compatible = "allwinner,sun4i-a10-mod0-clk";
92 reg = <0x01f01454 0x4>;
93 #clock-cells = <0>;
94 clocks = <&osc32k>, <&osc24M>;
95 clock-output-names = "ir";
96 };
97 };
98
99 soc {
100 compatible = "simple-bus";
101 #address-cells = <1>;
102 #size-cells = <1>;
103 ranges;
104
105 dma: dma-controller@01c02000 {
106 compatible = "allwinner,sun8i-h3-dma";
107 reg = <0x01c02000 0x1000>;
108 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
109 clocks = <&ccu CLK_BUS_DMA>;
110 resets = <&ccu RST_BUS_DMA>;
111 #dma-cells = <1>;
112 };
113
114 mmc0: mmc@01c0f000 {
115 /* compatible and clocks are in per SoC .dtsi file */
116 reg = <0x01c0f000 0x1000>;
117 resets = <&ccu RST_BUS_MMC0>;
118 reset-names = "ahb";
119 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
120 status = "disabled";
121 #address-cells = <1>;
122 #size-cells = <0>;
123 };
124
125 mmc1: mmc@01c10000 {
126 /* compatible and clocks are in per SoC .dtsi file */
127 reg = <0x01c10000 0x1000>;
128 resets = <&ccu RST_BUS_MMC1>;
129 reset-names = "ahb";
130 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
131 status = "disabled";
132 #address-cells = <1>;
133 #size-cells = <0>;
134 };
135
136 mmc2: mmc@01c11000 {
137 /* compatible and clocks are in per SoC .dtsi file */
138 reg = <0x01c11000 0x1000>;
139 resets = <&ccu RST_BUS_MMC2>;
140 reset-names = "ahb";
141 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
142 status = "disabled";
143 #address-cells = <1>;
144 #size-cells = <0>;
145 };
146
147 usb_otg: usb@01c19000 {
148 compatible = "allwinner,sun8i-h3-musb";
149 reg = <0x01c19000 0x400>;
150 clocks = <&ccu CLK_BUS_OTG>;
151 resets = <&ccu RST_BUS_OTG>;
152 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
153 interrupt-names = "mc";
154 phys = <&usbphy 0>;
155 phy-names = "usb";
156 extcon = <&usbphy 0>;
157 status = "disabled";
158 };
159
160 usbphy: phy@01c19400 {
161 compatible = "allwinner,sun8i-h3-usb-phy";
162 reg = <0x01c19400 0x2c>,
163 <0x01c1a800 0x4>,
164 <0x01c1b800 0x4>,
165 <0x01c1c800 0x4>,
166 <0x01c1d800 0x4>;
167 reg-names = "phy_ctrl",
168 "pmu0",
169 "pmu1",
170 "pmu2",
171 "pmu3";
172 clocks = <&ccu CLK_USB_PHY0>,
173 <&ccu CLK_USB_PHY1>,
174 <&ccu CLK_USB_PHY2>,
175 <&ccu CLK_USB_PHY3>;
176 clock-names = "usb0_phy",
177 "usb1_phy",
178 "usb2_phy",
179 "usb3_phy";
180 resets = <&ccu RST_USB_PHY0>,
181 <&ccu RST_USB_PHY1>,
182 <&ccu RST_USB_PHY2>,
183 <&ccu RST_USB_PHY3>;
184 reset-names = "usb0_reset",
185 "usb1_reset",
186 "usb2_reset",
187 "usb3_reset";
188 status = "disabled";
189 #phy-cells = <1>;
190 };
191
192 ehci0: usb@01c1a000 {
193 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
194 reg = <0x01c1a000 0x100>;
195 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
196 clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>;
197 resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
198 status = "disabled";
199 };
200
201 ohci0: usb@01c1a400 {
202 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
203 reg = <0x01c1a400 0x100>;
204 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
205 clocks = <&ccu CLK_BUS_EHCI0>, <&ccu CLK_BUS_OHCI0>,
206 <&ccu CLK_USB_OHCI0>;
207 resets = <&ccu RST_BUS_EHCI0>, <&ccu RST_BUS_OHCI0>;
208 status = "disabled";
209 };
210
211 ehci1: usb@01c1b000 {
212 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
213 reg = <0x01c1b000 0x100>;
214 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
215 clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>;
216 resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>;
217 phys = <&usbphy 1>;
218 phy-names = "usb";
219 status = "disabled";
220 };
221
222 ohci1: usb@01c1b400 {
223 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
224 reg = <0x01c1b400 0x100>;
225 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
226 clocks = <&ccu CLK_BUS_EHCI1>, <&ccu CLK_BUS_OHCI1>,
227 <&ccu CLK_USB_OHCI1>;
228 resets = <&ccu RST_BUS_EHCI1>, <&ccu RST_BUS_OHCI1>;
229 phys = <&usbphy 1>;
230 phy-names = "usb";
231 status = "disabled";
232 };
233
234 ehci2: usb@01c1c000 {
235 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
236 reg = <0x01c1c000 0x100>;
237 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
238 clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>;
239 resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
240 phys = <&usbphy 2>;
241 phy-names = "usb";
242 status = "disabled";
243 };
244
245 ohci2: usb@01c1c400 {
246 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
247 reg = <0x01c1c400 0x100>;
248 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
249 clocks = <&ccu CLK_BUS_EHCI2>, <&ccu CLK_BUS_OHCI2>,
250 <&ccu CLK_USB_OHCI2>;
251 resets = <&ccu RST_BUS_EHCI2>, <&ccu RST_BUS_OHCI2>;
252 phys = <&usbphy 2>;
253 phy-names = "usb";
254 status = "disabled";
255 };
256
257 ehci3: usb@01c1d000 {
258 compatible = "allwinner,sun8i-h3-ehci", "generic-ehci";
259 reg = <0x01c1d000 0x100>;
260 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
261 clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>;
262 resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>;
263 phys = <&usbphy 3>;
264 phy-names = "usb";
265 status = "disabled";
266 };
267
268 ohci3: usb@01c1d400 {
269 compatible = "allwinner,sun8i-h3-ohci", "generic-ohci";
270 reg = <0x01c1d400 0x100>;
271 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
272 clocks = <&ccu CLK_BUS_EHCI3>, <&ccu CLK_BUS_OHCI3>,
273 <&ccu CLK_USB_OHCI3>;
274 resets = <&ccu RST_BUS_EHCI3>, <&ccu RST_BUS_OHCI3>;
275 phys = <&usbphy 3>;
276 phy-names = "usb";
277 status = "disabled";
278 };
279
280 ccu: clock@01c20000 {
281 /* compatible is in per SoC .dtsi file */
282 reg = <0x01c20000 0x400>;
283 clocks = <&osc24M>, <&osc32k>;
284 clock-names = "hosc", "losc";
285 #clock-cells = <1>;
286 #reset-cells = <1>;
287 };
288
289 pio: pinctrl@01c20800 {
290 /* compatible is in per SoC .dtsi file */
291 reg = <0x01c20800 0x400>;
292 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
293 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
294 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
295 clock-names = "apb", "hosc", "losc";
296 gpio-controller;
297 #gpio-cells = <3>;
298 interrupt-controller;
299 #interrupt-cells = <3>;
300
301 i2c0_pins: i2c0 {
302 pins = "PA11", "PA12";
303 function = "i2c0";
304 };
305
306 i2c1_pins: i2c1 {
307 pins = "PA18", "PA19";
308 function = "i2c1";
309 };
310
311 i2c2_pins: i2c2 {
312 pins = "PE12", "PE13";
313 function = "i2c2";
314 };
315
316 mmc0_pins_a: mmc0@0 {
317 pins = "PF0", "PF1", "PF2", "PF3",
318 "PF4", "PF5";
319 function = "mmc0";
320 drive-strength = <30>;
321 bias-pull-up;
322 };
323
324 mmc0_cd_pin: mmc0_cd_pin@0 {
325 pins = "PF6";
326 function = "gpio_in";
327 bias-pull-up;
328 };
329
330 mmc1_pins_a: mmc1@0 {
331 pins = "PG0", "PG1", "PG2", "PG3",
332 "PG4", "PG5";
333 function = "mmc1";
334 drive-strength = <30>;
335 bias-pull-up;
336 };
337
338 mmc2_8bit_pins: mmc2_8bit {
339 pins = "PC5", "PC6", "PC8",
340 "PC9", "PC10", "PC11",
341 "PC12", "PC13", "PC14",
342 "PC15", "PC16";
343 function = "mmc2";
344 drive-strength = <30>;
345 bias-pull-up;
346 };
347
348 spdif_tx_pins_a: spdif@0 {
349 pins = "PA17";
350 function = "spdif";
351 };
352
353 spi0_pins: spi0 {
354 pins = "PC0", "PC1", "PC2", "PC3";
355 function = "spi0";
356 };
357
358 spi1_pins: spi1 {
359 pins = "PA15", "PA16", "PA14", "PA13";
360 function = "spi1";
361 };
362
363 uart0_pins_a: uart0@0 {
364 pins = "PA4", "PA5";
365 function = "uart0";
366 };
367
368 uart1_pins: uart1 {
369 pins = "PG6", "PG7";
370 function = "uart1";
371 };
372
373 uart1_rts_cts_pins: uart1_rts_cts {
374 pins = "PG8", "PG9";
375 function = "uart1";
376 };
377
378 uart2_pins: uart2 {
379 pins = "PA0", "PA1";
380 function = "uart2";
381 };
382
383 uart3_pins: uart3 {
384 pins = "PA13", "PA14";
385 function = "uart3";
386 };
387 };
388
389 timer@01c20c00 {
390 compatible = "allwinner,sun4i-a10-timer";
391 reg = <0x01c20c00 0xa0>;
392 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
393 <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
394 clocks = <&osc24M>;
395 };
396
397 spi0: spi@01c68000 {
398 compatible = "allwinner,sun8i-h3-spi";
399 reg = <0x01c68000 0x1000>;
400 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
402 clock-names = "ahb", "mod";
403 dmas = <&dma 23>, <&dma 23>;
404 dma-names = "rx", "tx";
405 pinctrl-names = "default";
406 pinctrl-0 = <&spi0_pins>;
407 resets = <&ccu RST_BUS_SPI0>;
408 status = "disabled";
409 #address-cells = <1>;
410 #size-cells = <0>;
411 };
412
413 spi1: spi@01c69000 {
414 compatible = "allwinner,sun8i-h3-spi";
415 reg = <0x01c69000 0x1000>;
416 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
417 clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
418 clock-names = "ahb", "mod";
419 dmas = <&dma 24>, <&dma 24>;
420 dma-names = "rx", "tx";
421 pinctrl-names = "default";
422 pinctrl-0 = <&spi1_pins>;
423 resets = <&ccu RST_BUS_SPI1>;
424 status = "disabled";
425 #address-cells = <1>;
426 #size-cells = <0>;
427 };
428
429 wdt0: watchdog@01c20ca0 {
430 compatible = "allwinner,sun6i-a31-wdt";
431 reg = <0x01c20ca0 0x20>;
432 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
433 };
434
435 spdif: spdif@01c21000 {
436 #sound-dai-cells = <0>;
437 compatible = "allwinner,sun8i-h3-spdif";
438 reg = <0x01c21000 0x400>;
439 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
440 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
441 resets = <&ccu RST_BUS_SPDIF>;
442 clock-names = "apb", "spdif";
443 dmas = <&dma 2>;
444 dma-names = "tx";
445 status = "disabled";
446 };
447
448 pwm: pwm@01c21400 {
449 compatible = "allwinner,sun8i-h3-pwm";
450 reg = <0x01c21400 0x8>;
451 clocks = <&osc24M>;
452 #pwm-cells = <3>;
453 status = "disabled";
454 };
455
456 codec: codec@01c22c00 {
457 #sound-dai-cells = <0>;
458 compatible = "allwinner,sun8i-h3-codec";
459 reg = <0x01c22c00 0x400>;
460 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
461 clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
462 clock-names = "apb", "codec";
463 resets = <&ccu RST_BUS_CODEC>;
464 dmas = <&dma 15>, <&dma 15>;
465 dma-names = "rx", "tx";
466 allwinner,codec-analog-controls = <&codec_analog>;
467 status = "disabled";
468 };
469
470 uart0: serial@01c28000 {
471 compatible = "snps,dw-apb-uart";
472 reg = <0x01c28000 0x400>;
473 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
474 reg-shift = <2>;
475 reg-io-width = <4>;
476 clocks = <&ccu CLK_BUS_UART0>;
477 resets = <&ccu RST_BUS_UART0>;
478 dmas = <&dma 6>, <&dma 6>;
479 dma-names = "rx", "tx";
480 status = "disabled";
481 };
482
483 uart1: serial@01c28400 {
484 compatible = "snps,dw-apb-uart";
485 reg = <0x01c28400 0x400>;
486 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
487 reg-shift = <2>;
488 reg-io-width = <4>;
489 clocks = <&ccu CLK_BUS_UART1>;
490 resets = <&ccu RST_BUS_UART1>;
491 dmas = <&dma 7>, <&dma 7>;
492 dma-names = "rx", "tx";
493 status = "disabled";
494 };
495
496 uart2: serial@01c28800 {
497 compatible = "snps,dw-apb-uart";
498 reg = <0x01c28800 0x400>;
499 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
500 reg-shift = <2>;
501 reg-io-width = <4>;
502 clocks = <&ccu CLK_BUS_UART2>;
503 resets = <&ccu RST_BUS_UART2>;
504 dmas = <&dma 8>, <&dma 8>;
505 dma-names = "rx", "tx";
506 status = "disabled";
507 };
508
509 uart3: serial@01c28c00 {
510 compatible = "snps,dw-apb-uart";
511 reg = <0x01c28c00 0x400>;
512 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
513 reg-shift = <2>;
514 reg-io-width = <4>;
515 clocks = <&ccu CLK_BUS_UART3>;
516 resets = <&ccu RST_BUS_UART3>;
517 dmas = <&dma 9>, <&dma 9>;
518 dma-names = "rx", "tx";
519 status = "disabled";
520 };
521
522 i2c0: i2c@01c2ac00 {
523 compatible = "allwinner,sun6i-a31-i2c";
524 reg = <0x01c2ac00 0x400>;
525 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
526 clocks = <&ccu CLK_BUS_I2C0>;
527 resets = <&ccu RST_BUS_I2C0>;
528 pinctrl-names = "default";
529 pinctrl-0 = <&i2c0_pins>;
530 status = "disabled";
531 #address-cells = <1>;
532 #size-cells = <0>;
533 };
534
535 i2c1: i2c@01c2b000 {
536 compatible = "allwinner,sun6i-a31-i2c";
537 reg = <0x01c2b000 0x400>;
538 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
539 clocks = <&ccu CLK_BUS_I2C1>;
540 resets = <&ccu RST_BUS_I2C1>;
541 pinctrl-names = "default";
542 pinctrl-0 = <&i2c1_pins>;
543 status = "disabled";
544 #address-cells = <1>;
545 #size-cells = <0>;
546 };
547
548 i2c2: i2c@01c2b400 {
549 compatible = "allwinner,sun6i-a31-i2c";
550 reg = <0x01c2b000 0x400>;
551 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
552 clocks = <&ccu CLK_BUS_I2C2>;
553 resets = <&ccu RST_BUS_I2C2>;
554 pinctrl-names = "default";
555 pinctrl-0 = <&i2c2_pins>;
556 status = "disabled";
557 #address-cells = <1>;
558 #size-cells = <0>;
559 };
560
561 gic: interrupt-controller@01c81000 {
562 compatible = "arm,gic-400";
563 reg = <0x01c81000 0x1000>,
564 <0x01c82000 0x2000>,
565 <0x01c84000 0x2000>,
566 <0x01c86000 0x2000>;
567 interrupt-controller;
568 #interrupt-cells = <3>;
569 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
570 };
571
572 rtc: rtc@01f00000 {
573 compatible = "allwinner,sun6i-a31-rtc";
574 reg = <0x01f00000 0x54>;
575 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
576 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
577 };
578
579 apb0_reset: reset@01f014b0 {
580 reg = <0x01f014b0 0x4>;
581 compatible = "allwinner,sun6i-a31-clock-reset";
582 #reset-cells = <1>;
583 };
584
585 codec_analog: codec-analog@01f015c0 {
586 compatible = "allwinner,sun8i-h3-codec-analog";
587 reg = <0x01f015c0 0x4>;
588 };
589
590 ir: ir@01f02000 {
591 compatible = "allwinner,sun5i-a13-ir";
592 clocks = <&apb0_gates 1>, <&ir_clk>;
593 clock-names = "apb", "ir";
594 resets = <&apb0_reset 1>;
595 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
596 reg = <0x01f02000 0x40>;
597 status = "disabled";
598 };
599
600 r_pio: pinctrl@01f02c00 {
601 compatible = "allwinner,sun8i-h3-r-pinctrl";
602 reg = <0x01f02c00 0x400>;
603 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
604 clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
605 clock-names = "apb", "hosc", "losc";
606 resets = <&apb0_reset 0>;
607 gpio-controller;
608 #gpio-cells = <3>;
609 interrupt-controller;
610 #interrupt-cells = <3>;
611
612 ir_pins_a: ir@0 {
613 pins = "PL11";
614 function = "s_cir_rx";
615 };
616 };
617 };
618};
diff --git a/arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi b/arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi
index b8241462fcea..245d0bcde441 100644
--- a/arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi
@@ -42,7 +42,6 @@
42 42
43#include <dt-bindings/gpio/gpio.h> 43#include <dt-bindings/gpio/gpio.h>
44#include <dt-bindings/input/input.h> 44#include <dt-bindings/input/input.h>
45#include <dt-bindings/pinctrl/sun4i-a10.h>
46#include "sunxi-common-regulators.dtsi" 45#include "sunxi-common-regulators.dtsi"
47 46
48&i2c0 { 47&i2c0 {
diff --git a/arch/arm/boot/dts/uniphier-ld4-ref.dts b/arch/arm/boot/dts/uniphier-ld4-ref.dts
index 110031bc0e7e..e0da4ee21c21 100644
--- a/arch/arm/boot/dts/uniphier-ld4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ld4-ref.dts
@@ -52,11 +52,6 @@
52 model = "UniPhier LD4 Reference Board"; 52 model = "UniPhier LD4 Reference Board";
53 compatible = "socionext,uniphier-ld4-ref", "socionext,uniphier-ld4"; 53 compatible = "socionext,uniphier-ld4-ref", "socionext,uniphier-ld4";
54 54
55 memory {
56 device_type = "memory";
57 reg = <0x80000000 0x20000000>;
58 };
59
60 chosen { 55 chosen {
61 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
62 }; 57 };
@@ -71,6 +66,11 @@
71 i2c2 = &i2c2; 66 i2c2 = &i2c2;
72 i2c3 = &i2c3; 67 i2c3 = &i2c3;
73 }; 68 };
69
70 memory@80000000 {
71 device_type = "memory";
72 reg = <0x80000000 0x20000000>;
73 };
74}; 74};
75 75
76&ethsc { 76&ethsc {
diff --git a/arch/arm/boot/dts/uniphier-ld4.dtsi b/arch/arm/boot/dts/uniphier-ld4.dtsi
index a7c494d7c43a..4f5fe15eaee2 100644
--- a/arch/arm/boot/dts/uniphier-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ld4.dtsi
@@ -43,10 +43,10 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "skeleton.dtsi"
47
48/ { 46/ {
49 compatible = "socionext,uniphier-ld4"; 47 compatible = "socionext,uniphier-ld4";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 50
51 cpus { 51 cpus {
52 #address-cells = <1>; 52 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
index c05d631dcf02..a397a8811c78 100644
--- a/arch/arm/boot/dts/uniphier-ld6b-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
@@ -52,11 +52,6 @@
52 model = "UniPhier LD6b Reference Board"; 52 model = "UniPhier LD6b Reference Board";
53 compatible = "socionext,uniphier-ld6b-ref", "socionext,uniphier-ld6b"; 53 compatible = "socionext,uniphier-ld6b-ref", "socionext,uniphier-ld6b";
54 54
55 memory {
56 device_type = "memory";
57 reg = <0x80000000 0x80000000>;
58 };
59
60 chosen { 55 chosen {
61 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
62 }; 57 };
@@ -73,6 +68,11 @@
73 i2c5 = &i2c5; 68 i2c5 = &i2c5;
74 i2c6 = &i2c6; 69 i2c6 = &i2c6;
75 }; 70 };
71
72 memory@80000000 {
73 device_type = "memory";
74 reg = <0x80000000 0x80000000>;
75 };
76}; 76};
77 77
78&ethsc { 78&ethsc {
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
index 8ee79da9af7c..246f35ffb638 100644
--- a/arch/arm/boot/dts/uniphier-pinctrl.dtsi
+++ b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
@@ -45,7 +45,7 @@
45 45
46&pinctrl { 46&pinctrl {
47 pinctrl_emmc: emmc_grp { 47 pinctrl_emmc: emmc_grp {
48 groups = "emmc"; 48 groups = "emmc", "emmc_dat8";
49 function = "emmc"; 49 function = "emmc";
50 }; 50 };
51 51
diff --git a/arch/arm/boot/dts/uniphier-pro4-ace.dts b/arch/arm/boot/dts/uniphier-pro4-ace.dts
index 0ab0a40c041e..fefc89149234 100644
--- a/arch/arm/boot/dts/uniphier-pro4-ace.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-ace.dts
@@ -50,11 +50,6 @@
50 model = "UniPhier Pro4 Ace Board"; 50 model = "UniPhier Pro4 Ace Board";
51 compatible = "socionext,uniphier-pro4-ace", "socionext,uniphier-pro4"; 51 compatible = "socionext,uniphier-pro4-ace", "socionext,uniphier-pro4";
52 52
53 memory {
54 device_type = "memory";
55 reg = <0x80000000 0x40000000>;
56 };
57
58 chosen { 53 chosen {
59 stdout-path = "serial0:115200n8"; 54 stdout-path = "serial0:115200n8";
60 }; 55 };
@@ -70,6 +65,11 @@
70 i2c5 = &i2c5; 65 i2c5 = &i2c5;
71 i2c6 = &i2c6; 66 i2c6 = &i2c6;
72 }; 67 };
68
69 memory@80000000 {
70 device_type = "memory";
71 reg = <0x80000000 0x40000000>;
72 };
73}; 73};
74 74
75&serial0 { 75&serial0 {
@@ -90,6 +90,7 @@
90 eeprom@54 { 90 eeprom@54 {
91 compatible = "st,24c64"; 91 compatible = "st,24c64";
92 reg = <0x54>; 92 reg = <0x54>;
93 pagesize = <32>;
93 }; 94 };
94}; 95};
95 96
diff --git a/arch/arm/boot/dts/uniphier-pro4-ref.dts b/arch/arm/boot/dts/uniphier-pro4-ref.dts
index 9e92e60d25ce..6077e634d14a 100644
--- a/arch/arm/boot/dts/uniphier-pro4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-ref.dts
@@ -52,11 +52,6 @@
52 model = "UniPhier Pro4 Reference Board"; 52 model = "UniPhier Pro4 Reference Board";
53 compatible = "socionext,uniphier-pro4-ref", "socionext,uniphier-pro4"; 53 compatible = "socionext,uniphier-pro4-ref", "socionext,uniphier-pro4";
54 54
55 memory {
56 device_type = "memory";
57 reg = <0x80000000 0x40000000>;
58 };
59
60 chosen { 55 chosen {
61 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
62 }; 57 };
@@ -73,6 +68,11 @@
73 i2c5 = &i2c5; 68 i2c5 = &i2c5;
74 i2c6 = &i2c6; 69 i2c6 = &i2c6;
75 }; 70 };
71
72 memory@80000000 {
73 device_type = "memory";
74 reg = <0x80000000 0x40000000>;
75 };
76}; 76};
77 77
78&ethsc { 78&ethsc {
diff --git a/arch/arm/boot/dts/uniphier-pro4-sanji.dts b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
index dc4ea8832ce2..6c63c8bad825 100644
--- a/arch/arm/boot/dts/uniphier-pro4-sanji.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
@@ -50,11 +50,6 @@
50 model = "UniPhier Pro4 Sanji Board"; 50 model = "UniPhier Pro4 Sanji Board";
51 compatible = "socionext,uniphier-pro4-sanji", "socionext,uniphier-pro4"; 51 compatible = "socionext,uniphier-pro4-sanji", "socionext,uniphier-pro4";
52 52
53 memory {
54 device_type = "memory";
55 reg = <0x80000000 0x80000000>;
56 };
57
58 chosen { 53 chosen {
59 stdout-path = "serial0:115200n8"; 54 stdout-path = "serial0:115200n8";
60 }; 55 };
@@ -69,6 +64,11 @@
69 i2c5 = &i2c5; 64 i2c5 = &i2c5;
70 i2c6 = &i2c6; 65 i2c6 = &i2c6;
71 }; 66 };
67
68 memory@80000000 {
69 device_type = "memory";
70 reg = <0x80000000 0x80000000>;
71 };
72}; 72};
73 73
74&serial0 { 74&serial0 {
@@ -85,6 +85,7 @@
85 eeprom@54 { 85 eeprom@54 {
86 compatible = "st,24c64"; 86 compatible = "st,24c64";
87 reg = <0x54>; 87 reg = <0x54>;
88 pagesize = <32>;
88 }; 89 };
89}; 90};
90 91
diff --git a/arch/arm/boot/dts/uniphier-pro4.dtsi b/arch/arm/boot/dts/uniphier-pro4.dtsi
index e960b09ff01c..794a85a7068b 100644
--- a/arch/arm/boot/dts/uniphier-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro4.dtsi
@@ -43,10 +43,10 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "skeleton.dtsi"
47
48/ { 46/ {
49 compatible = "socionext,uniphier-pro4"; 47 compatible = "socionext,uniphier-pro4";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 50
51 cpus { 51 cpus {
52 #address-cells = <1>; 52 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
index dbc5e5333163..df07b555cbed 100644
--- a/arch/arm/boot/dts/uniphier-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro5.dtsi
@@ -43,10 +43,10 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "skeleton.dtsi"
47
48/ { 46/ {
49 compatible = "socionext,uniphier-pro5"; 47 compatible = "socionext,uniphier-pro5";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 50
51 cpus { 51 cpus {
52 #address-cells = <1>; 52 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
index 373818ace086..cccc86658d20 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
@@ -51,11 +51,6 @@
51 compatible = "socionext,uniphier-pxs2-gentil", 51 compatible = "socionext,uniphier-pxs2-gentil",
52 "socionext,uniphier-pxs2"; 52 "socionext,uniphier-pxs2";
53 53
54 memory {
55 device_type = "memory";
56 reg = <0x80000000 0x80000000>;
57 };
58
59 chosen { 54 chosen {
60 stdout-path = "serial0:115200n8"; 55 stdout-path = "serial0:115200n8";
61 }; 56 };
@@ -70,6 +65,11 @@
70 i2c5 = &i2c5; 65 i2c5 = &i2c5;
71 i2c6 = &i2c6; 66 i2c6 = &i2c6;
72 }; 67 };
68
69 memory@80000000 {
70 device_type = "memory";
71 reg = <0x80000000 0x80000000>;
72 };
73}; 73};
74 74
75&serial2 { 75&serial2 {
@@ -82,6 +82,7 @@
82 eeprom@54 { 82 eeprom@54 {
83 compatible = "st,24c64"; 83 compatible = "st,24c64";
84 reg = <0x54>; 84 reg = <0x54>;
85 pagesize = <32>;
85 }; 86 };
86}; 87};
87 88
diff --git a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
index 51a3eacddfc6..803a39aa39d0 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
@@ -50,11 +50,6 @@
50 model = "UniPhier PXs2 Vodka Board"; 50 model = "UniPhier PXs2 Vodka Board";
51 compatible = "socionext,uniphier-pxs2-vodka", "socionext,uniphier-pxs2"; 51 compatible = "socionext,uniphier-pxs2-vodka", "socionext,uniphier-pxs2";
52 52
53 memory {
54 device_type = "memory";
55 reg = <0x80000000 0x80000000>;
56 };
57
58 chosen { 53 chosen {
59 stdout-path = "serial0:115200n8"; 54 stdout-path = "serial0:115200n8";
60 }; 55 };
@@ -68,6 +63,11 @@
68 i2c5 = &i2c5; 63 i2c5 = &i2c5;
69 i2c6 = &i2c6; 64 i2c6 = &i2c6;
70 }; 65 };
66
67 memory@80000000 {
68 device_type = "memory";
69 reg = <0x80000000 0x80000000>;
70 };
71}; 71};
72 72
73&serial2 { 73&serial2 {
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
index e9e031d63c1a..58c3e2f35706 100644
--- a/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -43,10 +43,10 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "skeleton.dtsi"
47
48/ { 46/ {
49 compatible = "socionext,uniphier-pxs2"; 47 compatible = "socionext,uniphier-pxs2";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 50
51 cpus { 51 cpus {
52 #address-cells = <1>; 52 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-ref-daughter.dtsi b/arch/arm/boot/dts/uniphier-ref-daughter.dtsi
index f7df0881c5e0..c62ae1a81f47 100644
--- a/arch/arm/boot/dts/uniphier-ref-daughter.dtsi
+++ b/arch/arm/boot/dts/uniphier-ref-daughter.dtsi
@@ -1,7 +1,8 @@
1/* 1/*
2 * Device Tree Source for UniPhier Reference Daughter Board 2 * Device Tree Source for UniPhier Reference Daughter Board
3 * 3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 4 * Copyright (C) 2015-2017 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5 * 6 *
6 * This file is dual-licensed: you can use it either under the terms 7 * 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 * of the GPL or the X11 license, at your option. Note that this dual
@@ -46,5 +47,6 @@
46 eeprom@50 { 47 eeprom@50 {
47 compatible = "microchip,24lc128"; 48 compatible = "microchip,24lc128";
48 reg = <0x50>; 49 reg = <0x50>;
50 pagesize = <64>;
49 }; 51 };
50}; 52};
diff --git a/arch/arm/boot/dts/uniphier-sld3-ref.dts b/arch/arm/boot/dts/uniphier-sld3-ref.dts
index ac792ae07ae0..eb63dcca92b5 100644
--- a/arch/arm/boot/dts/uniphier-sld3-ref.dts
+++ b/arch/arm/boot/dts/uniphier-sld3-ref.dts
@@ -52,12 +52,6 @@
52 model = "UniPhier sLD3 Reference Board"; 52 model = "UniPhier sLD3 Reference Board";
53 compatible = "socionext,uniphier-sld3-ref", "socionext,uniphier-sld3"; 53 compatible = "socionext,uniphier-sld3-ref", "socionext,uniphier-sld3";
54 54
55 memory {
56 device_type = "memory";
57 reg = <0x80000000 0x20000000
58 0xc0000000 0x20000000>;
59 };
60
61 chosen { 55 chosen {
62 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
63 }; 57 };
@@ -72,6 +66,12 @@
72 i2c3 = &i2c3; 66 i2c3 = &i2c3;
73 i2c4 = &i2c4; 67 i2c4 = &i2c4;
74 }; 68 };
69
70 memory@8000000 {
71 device_type = "memory";
72 reg = <0x80000000 0x20000000
73 0xc0000000 0x20000000>;
74 };
75}; 75};
76 76
77&ethsc { 77&ethsc {
diff --git a/arch/arm/boot/dts/uniphier-sld3.dtsi b/arch/arm/boot/dts/uniphier-sld3.dtsi
index 9fad6bd2db8a..01d77edac01f 100644
--- a/arch/arm/boot/dts/uniphier-sld3.dtsi
+++ b/arch/arm/boot/dts/uniphier-sld3.dtsi
@@ -43,10 +43,10 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "skeleton.dtsi"
47
48/ { 46/ {
49 compatible = "socionext,uniphier-sld3"; 47 compatible = "socionext,uniphier-sld3";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 50
51 cpus { 51 cpus {
52 #address-cells = <1>; 52 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-sld8-ref.dts b/arch/arm/boot/dts/uniphier-sld8-ref.dts
index a8291f988066..737d276349fd 100644
--- a/arch/arm/boot/dts/uniphier-sld8-ref.dts
+++ b/arch/arm/boot/dts/uniphier-sld8-ref.dts
@@ -52,11 +52,6 @@
52 model = "UniPhier sLD8 Reference Board"; 52 model = "UniPhier sLD8 Reference Board";
53 compatible = "socionext,uniphier-sld8-ref", "socionext,uniphier-sld8"; 53 compatible = "socionext,uniphier-sld8-ref", "socionext,uniphier-sld8";
54 54
55 memory {
56 device_type = "memory";
57 reg = <0x80000000 0x20000000>;
58 };
59
60 chosen { 55 chosen {
61 stdout-path = "serial0:115200n8"; 56 stdout-path = "serial0:115200n8";
62 }; 57 };
@@ -71,6 +66,11 @@
71 i2c2 = &i2c2; 66 i2c2 = &i2c2;
72 i2c3 = &i2c3; 67 i2c3 = &i2c3;
73 }; 68 };
69
70 memory@80000000 {
71 device_type = "memory";
72 reg = <0x80000000 0x20000000>;
73 };
74}; 74};
75 75
76&ethsc { 76&ethsc {
diff --git a/arch/arm/boot/dts/uniphier-sld8.dtsi b/arch/arm/boot/dts/uniphier-sld8.dtsi
index b2c980ead7f0..eb06fdc04b02 100644
--- a/arch/arm/boot/dts/uniphier-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-sld8.dtsi
@@ -43,10 +43,10 @@
43 * OTHER DEALINGS IN THE SOFTWARE. 43 * OTHER DEALINGS IN THE SOFTWARE.
44 */ 44 */
45 45
46/include/ "skeleton.dtsi"
47
48/ { 46/ {
49 compatible = "socionext,uniphier-sld8"; 47 compatible = "socionext,uniphier-sld8";
48 #address-cells = <1>;
49 #size-cells = <1>;
50 50
51 cpus { 51 cpus {
52 #address-cells = <1>; 52 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/uniphier-support-card.dtsi b/arch/arm/boot/dts/uniphier-support-card.dtsi
index 51ecc9b9c0ce..f61dfec2807f 100644
--- a/arch/arm/boot/dts/uniphier-support-card.dtsi
+++ b/arch/arm/boot/dts/uniphier-support-card.dtsi
@@ -1,7 +1,8 @@
1/* 1/*
2 * Device Tree Source for UniPhier Support Card (Expansion Board) 2 * Device Tree Source for UniPhier Support Card (Expansion Board)
3 * 3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com> 4 * Copyright (C) 2015-2017 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
5 * 6 *
6 * This file is dual-licensed: you can use it either under the terms 7 * 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 * of the GPL or the X11 license, at your option. Note that this dual
@@ -46,7 +47,7 @@
46 status = "okay"; 47 status = "okay";
47 ranges = <1 0x00000000 0x42000000 0x02000000>; 48 ranges = <1 0x00000000 0x42000000 0x02000000>;
48 49
49 support_card: support_card { 50 support_card: support_card@1,1f00000 {
50 compatible = "simple-bus"; 51 compatible = "simple-bus";
51 #address-cells = <1>; 52 #address-cells = <1>;
52 #size-cells = <1>; 53 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
index 3086efacd00e..35714ff6f467 100644
--- a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
+++ b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
@@ -71,7 +71,7 @@
71 #size-cells = <1>; 71 #size-cells = <1>;
72 ranges = <0 3 0 0x200000>; 72 ranges = <0 3 0 0x200000>;
73 73
74 v2m_sysreg: sysreg@010000 { 74 v2m_sysreg: sysreg@10000 {
75 compatible = "arm,vexpress-sysreg"; 75 compatible = "arm,vexpress-sysreg";
76 reg = <0x010000 0x1000>; 76 reg = <0x010000 0x1000>;
77 77
@@ -94,7 +94,7 @@
94 }; 94 };
95 }; 95 };
96 96
97 v2m_sysctl: sysctl@020000 { 97 v2m_sysctl: sysctl@20000 {
98 compatible = "arm,sp810", "arm,primecell"; 98 compatible = "arm,sp810", "arm,primecell";
99 reg = <0x020000 0x1000>; 99 reg = <0x020000 0x1000>;
100 clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>; 100 clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>;
@@ -106,7 +106,7 @@
106 }; 106 };
107 107
108 /* PCI-E I2C bus */ 108 /* PCI-E I2C bus */
109 v2m_i2c_pcie: i2c@030000 { 109 v2m_i2c_pcie: i2c@30000 {
110 compatible = "arm,versatile-i2c"; 110 compatible = "arm,versatile-i2c";
111 reg = <0x030000 0x1000>; 111 reg = <0x030000 0x1000>;
112 112
@@ -119,7 +119,7 @@
119 }; 119 };
120 }; 120 };
121 121
122 aaci@040000 { 122 aaci@40000 {
123 compatible = "arm,pl041", "arm,primecell"; 123 compatible = "arm,pl041", "arm,primecell";
124 reg = <0x040000 0x1000>; 124 reg = <0x040000 0x1000>;
125 interrupts = <11>; 125 interrupts = <11>;
@@ -127,7 +127,7 @@
127 clock-names = "apb_pclk"; 127 clock-names = "apb_pclk";
128 }; 128 };
129 129
130 mmci@050000 { 130 mmci@50000 {
131 compatible = "arm,pl180", "arm,primecell"; 131 compatible = "arm,pl180", "arm,primecell";
132 reg = <0x050000 0x1000>; 132 reg = <0x050000 0x1000>;
133 interrupts = <9 10>; 133 interrupts = <9 10>;
@@ -139,7 +139,7 @@
139 clock-names = "mclk", "apb_pclk"; 139 clock-names = "mclk", "apb_pclk";
140 }; 140 };
141 141
142 kmi@060000 { 142 kmi@60000 {
143 compatible = "arm,pl050", "arm,primecell"; 143 compatible = "arm,pl050", "arm,primecell";
144 reg = <0x060000 0x1000>; 144 reg = <0x060000 0x1000>;
145 interrupts = <12>; 145 interrupts = <12>;
@@ -147,7 +147,7 @@
147 clock-names = "KMIREFCLK", "apb_pclk"; 147 clock-names = "KMIREFCLK", "apb_pclk";
148 }; 148 };
149 149
150 kmi@070000 { 150 kmi@70000 {
151 compatible = "arm,pl050", "arm,primecell"; 151 compatible = "arm,pl050", "arm,primecell";
152 reg = <0x070000 0x1000>; 152 reg = <0x070000 0x1000>;
153 interrupts = <13>; 153 interrupts = <13>;
@@ -155,7 +155,7 @@
155 clock-names = "KMIREFCLK", "apb_pclk"; 155 clock-names = "KMIREFCLK", "apb_pclk";
156 }; 156 };
157 157
158 v2m_serial0: uart@090000 { 158 v2m_serial0: uart@90000 {
159 compatible = "arm,pl011", "arm,primecell"; 159 compatible = "arm,pl011", "arm,primecell";
160 reg = <0x090000 0x1000>; 160 reg = <0x090000 0x1000>;
161 interrupts = <5>; 161 interrupts = <5>;
@@ -163,7 +163,7 @@
163 clock-names = "uartclk", "apb_pclk"; 163 clock-names = "uartclk", "apb_pclk";
164 }; 164 };
165 165
166 v2m_serial1: uart@0a0000 { 166 v2m_serial1: uart@a0000 {
167 compatible = "arm,pl011", "arm,primecell"; 167 compatible = "arm,pl011", "arm,primecell";
168 reg = <0x0a0000 0x1000>; 168 reg = <0x0a0000 0x1000>;
169 interrupts = <6>; 169 interrupts = <6>;
@@ -171,7 +171,7 @@
171 clock-names = "uartclk", "apb_pclk"; 171 clock-names = "uartclk", "apb_pclk";
172 }; 172 };
173 173
174 v2m_serial2: uart@0b0000 { 174 v2m_serial2: uart@b0000 {
175 compatible = "arm,pl011", "arm,primecell"; 175 compatible = "arm,pl011", "arm,primecell";
176 reg = <0x0b0000 0x1000>; 176 reg = <0x0b0000 0x1000>;
177 interrupts = <7>; 177 interrupts = <7>;
@@ -179,7 +179,7 @@
179 clock-names = "uartclk", "apb_pclk"; 179 clock-names = "uartclk", "apb_pclk";
180 }; 180 };
181 181
182 v2m_serial3: uart@0c0000 { 182 v2m_serial3: uart@c0000 {
183 compatible = "arm,pl011", "arm,primecell"; 183 compatible = "arm,pl011", "arm,primecell";
184 reg = <0x0c0000 0x1000>; 184 reg = <0x0c0000 0x1000>;
185 interrupts = <8>; 185 interrupts = <8>;
@@ -187,7 +187,7 @@
187 clock-names = "uartclk", "apb_pclk"; 187 clock-names = "uartclk", "apb_pclk";
188 }; 188 };
189 189
190 wdt@0f0000 { 190 wdt@f0000 {
191 compatible = "arm,sp805", "arm,primecell"; 191 compatible = "arm,sp805", "arm,primecell";
192 reg = <0x0f0000 0x1000>; 192 reg = <0x0f0000 0x1000>;
193 interrupts = <0>; 193 interrupts = <0>;
diff --git a/arch/arm/boot/dts/vexpress-v2m.dtsi b/arch/arm/boot/dts/vexpress-v2m.dtsi
index c6393d3f1719..1b6f6393be93 100644
--- a/arch/arm/boot/dts/vexpress-v2m.dtsi
+++ b/arch/arm/boot/dts/vexpress-v2m.dtsi
@@ -70,7 +70,7 @@
70 #size-cells = <1>; 70 #size-cells = <1>;
71 ranges = <0 7 0 0x20000>; 71 ranges = <0 7 0 0x20000>;
72 72
73 v2m_sysreg: sysreg@00000 { 73 v2m_sysreg: sysreg@0 {
74 compatible = "arm,vexpress-sysreg"; 74 compatible = "arm,vexpress-sysreg";
75 reg = <0x00000 0x1000>; 75 reg = <0x00000 0x1000>;
76 76
@@ -93,7 +93,7 @@
93 }; 93 };
94 }; 94 };
95 95
96 v2m_sysctl: sysctl@01000 { 96 v2m_sysctl: sysctl@1000 {
97 compatible = "arm,sp810", "arm,primecell"; 97 compatible = "arm,sp810", "arm,primecell";
98 reg = <0x01000 0x1000>; 98 reg = <0x01000 0x1000>;
99 clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>; 99 clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&smbclk>;
@@ -105,7 +105,7 @@
105 }; 105 };
106 106
107 /* PCI-E I2C bus */ 107 /* PCI-E I2C bus */
108 v2m_i2c_pcie: i2c@02000 { 108 v2m_i2c_pcie: i2c@2000 {
109 compatible = "arm,versatile-i2c"; 109 compatible = "arm,versatile-i2c";
110 reg = <0x02000 0x1000>; 110 reg = <0x02000 0x1000>;
111 111
@@ -118,7 +118,7 @@
118 }; 118 };
119 }; 119 };
120 120
121 aaci@04000 { 121 aaci@4000 {
122 compatible = "arm,pl041", "arm,primecell"; 122 compatible = "arm,pl041", "arm,primecell";
123 reg = <0x04000 0x1000>; 123 reg = <0x04000 0x1000>;
124 interrupts = <11>; 124 interrupts = <11>;
@@ -126,7 +126,7 @@
126 clock-names = "apb_pclk"; 126 clock-names = "apb_pclk";
127 }; 127 };
128 128
129 mmci@05000 { 129 mmci@5000 {
130 compatible = "arm,pl180", "arm,primecell"; 130 compatible = "arm,pl180", "arm,primecell";
131 reg = <0x05000 0x1000>; 131 reg = <0x05000 0x1000>;
132 interrupts = <9 10>; 132 interrupts = <9 10>;
@@ -138,7 +138,7 @@
138 clock-names = "mclk", "apb_pclk"; 138 clock-names = "mclk", "apb_pclk";
139 }; 139 };
140 140
141 kmi@06000 { 141 kmi@6000 {
142 compatible = "arm,pl050", "arm,primecell"; 142 compatible = "arm,pl050", "arm,primecell";
143 reg = <0x06000 0x1000>; 143 reg = <0x06000 0x1000>;
144 interrupts = <12>; 144 interrupts = <12>;
@@ -146,7 +146,7 @@
146 clock-names = "KMIREFCLK", "apb_pclk"; 146 clock-names = "KMIREFCLK", "apb_pclk";
147 }; 147 };
148 148
149 kmi@07000 { 149 kmi@7000 {
150 compatible = "arm,pl050", "arm,primecell"; 150 compatible = "arm,pl050", "arm,primecell";
151 reg = <0x07000 0x1000>; 151 reg = <0x07000 0x1000>;
152 interrupts = <13>; 152 interrupts = <13>;
@@ -154,7 +154,7 @@
154 clock-names = "KMIREFCLK", "apb_pclk"; 154 clock-names = "KMIREFCLK", "apb_pclk";
155 }; 155 };
156 156
157 v2m_serial0: uart@09000 { 157 v2m_serial0: uart@9000 {
158 compatible = "arm,pl011", "arm,primecell"; 158 compatible = "arm,pl011", "arm,primecell";
159 reg = <0x09000 0x1000>; 159 reg = <0x09000 0x1000>;
160 interrupts = <5>; 160 interrupts = <5>;
@@ -162,7 +162,7 @@
162 clock-names = "uartclk", "apb_pclk"; 162 clock-names = "uartclk", "apb_pclk";
163 }; 163 };
164 164
165 v2m_serial1: uart@0a000 { 165 v2m_serial1: uart@a000 {
166 compatible = "arm,pl011", "arm,primecell"; 166 compatible = "arm,pl011", "arm,primecell";
167 reg = <0x0a000 0x1000>; 167 reg = <0x0a000 0x1000>;
168 interrupts = <6>; 168 interrupts = <6>;
@@ -170,7 +170,7 @@
170 clock-names = "uartclk", "apb_pclk"; 170 clock-names = "uartclk", "apb_pclk";
171 }; 171 };
172 172
173 v2m_serial2: uart@0b000 { 173 v2m_serial2: uart@b000 {
174 compatible = "arm,pl011", "arm,primecell"; 174 compatible = "arm,pl011", "arm,primecell";
175 reg = <0x0b000 0x1000>; 175 reg = <0x0b000 0x1000>;
176 interrupts = <7>; 176 interrupts = <7>;
@@ -178,7 +178,7 @@
178 clock-names = "uartclk", "apb_pclk"; 178 clock-names = "uartclk", "apb_pclk";
179 }; 179 };
180 180
181 v2m_serial3: uart@0c000 { 181 v2m_serial3: uart@c000 {
182 compatible = "arm,pl011", "arm,primecell"; 182 compatible = "arm,pl011", "arm,primecell";
183 reg = <0x0c000 0x1000>; 183 reg = <0x0c000 0x1000>;
184 interrupts = <8>; 184 interrupts = <8>;
@@ -186,7 +186,7 @@
186 clock-names = "uartclk", "apb_pclk"; 186 clock-names = "uartclk", "apb_pclk";
187 }; 187 };
188 188
189 wdt@0f000 { 189 wdt@f000 {
190 compatible = "arm,sp805", "arm,primecell"; 190 compatible = "arm,sp805", "arm,primecell";
191 reg = <0x0f000 0x1000>; 191 reg = <0x0f000 0x1000>;
192 interrupts = <0>; 192 interrupts = <0>;
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
index 15f4fd3f4695..0c8de0ca73ee 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dts
@@ -220,7 +220,7 @@
220 }; 220 };
221 }; 221 };
222 222
223 smb@08000000 { 223 smb@8000000 {
224 compatible = "simple-bus"; 224 compatible = "simple-bus";
225 225
226 #address-cells = <2>; 226 #address-cells = <2>;
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
index bd107c5a0226..65ecf206388c 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
@@ -385,7 +385,7 @@
385 }; 385 };
386 }; 386 };
387 387
388 etb@0,20010000 { 388 etb@20010000 {
389 compatible = "arm,coresight-etb10", "arm,primecell"; 389 compatible = "arm,coresight-etb10", "arm,primecell";
390 reg = <0 0x20010000 0 0x1000>; 390 reg = <0 0x20010000 0 0x1000>;
391 391
@@ -399,7 +399,7 @@
399 }; 399 };
400 }; 400 };
401 401
402 tpiu@0,20030000 { 402 tpiu@20030000 {
403 compatible = "arm,coresight-tpiu", "arm,primecell"; 403 compatible = "arm,coresight-tpiu", "arm,primecell";
404 reg = <0 0x20030000 0 0x1000>; 404 reg = <0 0x20030000 0 0x1000>;
405 405
@@ -449,7 +449,7 @@
449 }; 449 };
450 }; 450 };
451 451
452 funnel@0,20040000 { 452 funnel@20040000 {
453 compatible = "arm,coresight-funnel", "arm,primecell"; 453 compatible = "arm,coresight-funnel", "arm,primecell";
454 reg = <0 0x20040000 0 0x1000>; 454 reg = <0 0x20040000 0 0x1000>;
455 455
@@ -513,7 +513,7 @@
513 }; 513 };
514 }; 514 };
515 515
516 ptm@0,2201c000 { 516 ptm@2201c000 {
517 compatible = "arm,coresight-etm3x", "arm,primecell"; 517 compatible = "arm,coresight-etm3x", "arm,primecell";
518 reg = <0 0x2201c000 0 0x1000>; 518 reg = <0 0x2201c000 0 0x1000>;
519 519
@@ -527,7 +527,7 @@
527 }; 527 };
528 }; 528 };
529 529
530 ptm@0,2201d000 { 530 ptm@2201d000 {
531 compatible = "arm,coresight-etm3x", "arm,primecell"; 531 compatible = "arm,coresight-etm3x", "arm,primecell";
532 reg = <0 0x2201d000 0 0x1000>; 532 reg = <0 0x2201d000 0 0x1000>;
533 533
@@ -541,7 +541,7 @@
541 }; 541 };
542 }; 542 };
543 543
544 etm@0,2203c000 { 544 etm@2203c000 {
545 compatible = "arm,coresight-etm3x", "arm,primecell"; 545 compatible = "arm,coresight-etm3x", "arm,primecell";
546 reg = <0 0x2203c000 0 0x1000>; 546 reg = <0 0x2203c000 0 0x1000>;
547 547
@@ -555,7 +555,7 @@
555 }; 555 };
556 }; 556 };
557 557
558 etm@0,2203d000 { 558 etm@2203d000 {
559 compatible = "arm,coresight-etm3x", "arm,primecell"; 559 compatible = "arm,coresight-etm3x", "arm,primecell";
560 reg = <0 0x2203d000 0 0x1000>; 560 reg = <0 0x2203d000 0 0x1000>;
561 561
@@ -569,7 +569,7 @@
569 }; 569 };
570 }; 570 };
571 571
572 etm@0,2203e000 { 572 etm@2203e000 {
573 compatible = "arm,coresight-etm3x", "arm,primecell"; 573 compatible = "arm,coresight-etm3x", "arm,primecell";
574 reg = <0 0x2203e000 0 0x1000>; 574 reg = <0 0x2203e000 0 0x1000>;
575 575
@@ -583,7 +583,7 @@
583 }; 583 };
584 }; 584 };
585 585
586 smb@08000000 { 586 smb@8000000 {
587 compatible = "simple-bus"; 587 compatible = "simple-bus";
588 588
589 #address-cells = <2>; 589 #address-cells = <2>;
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
index 1acecaf4b13d..6e69b8e6c1a7 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca5s.dts
@@ -190,7 +190,7 @@
190 }; 190 };
191 }; 191 };
192 192
193 smb@08000000 { 193 smb@8000000 {
194 compatible = "simple-bus"; 194 compatible = "simple-bus";
195 195
196 #address-cells = <2>; 196 #address-cells = <2>;
diff --git a/arch/arm/boot/dts/vexpress-v2p-ca9.dts b/arch/arm/boot/dts/vexpress-v2p-ca9.dts
index b608a03ee02f..c9305b58afc2 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca9.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca9.dts
@@ -300,7 +300,7 @@
300 }; 300 };
301 }; 301 };
302 302
303 smb@04000000 { 303 smb@4000000 {
304 compatible = "simple-bus"; 304 compatible = "simple-bus";
305 305
306 #address-cells = <2>; 306 #address-cells = <2>;
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 7940408838df..37f95427616f 100644
--- a/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-b.dts
@@ -239,7 +239,7 @@
239 #size-cells = <0>; 239 #size-cells = <0>;
240 reg = <4>; 240 reg = <4>;
241 241
242 switch2: switch2@0 { 242 switch2: switch@0 {
243 compatible = "marvell,mv88e6085"; 243 compatible = "marvell,mv88e6085";
244 #address-cells = <1>; 244 #address-cells = <1>;
245 #size-cells = <0>; 245 #size-cells = <0>;
@@ -459,18 +459,6 @@
459 >; 459 >;
460 }; 460 };
461 461
462 pinctrl_gpio_switch0: pinctrl-gpio-switch0 {
463 fsl,pins = <
464 VF610_PAD_PTB5__GPIO_27 0x219d
465 >;
466 };
467
468 pinctrl_gpio_switch1: pinctrl-gpio-switch1 {
469 fsl,pins = <
470 VF610_PAD_PTB4__GPIO_26 0x219d
471 >;
472 };
473
474 pinctrl_mdio_mux: pinctrl-mdio-mux { 462 pinctrl_mdio_mux: pinctrl-mdio-mux {
475 fsl,pins = < 463 fsl,pins = <
476 VF610_PAD_PTA18__GPIO_8 0x31c2 464 VF610_PAD_PTA18__GPIO_8 0x31c2
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
index 6a45bd24ffe6..db3b408ea55a 100644
--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
@@ -67,11 +67,17 @@
67 67
68 switch0: switch@0 { 68 switch0: switch@0 {
69 compatible = "marvell,mv88e6190"; 69 compatible = "marvell,mv88e6190";
70 pinctrl-0 = <&pinctrl_gpio_switch0>;
71 pinctrl-names = "default";
70 #address-cells = <1>; 72 #address-cells = <1>;
71 #size-cells = <0>; 73 #size-cells = <0>;
72 reg = <0>; 74 reg = <0>;
73 dsa,member = <0 0>; 75 dsa,member = <0 0>;
74 eeprom-length = <512>; 76 eeprom-length = <512>;
77 interrupt-parent = <&gpio0>;
78 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
79 interrupt-controller;
80 #interrupt-cells = <2>;
75 81
76 ports { 82 ports {
77 #address-cells = <1>; 83 #address-cells = <1>;
@@ -91,21 +97,25 @@
91 port@1 { 97 port@1 {
92 reg = <1>; 98 reg = <1>;
93 label = "lan1"; 99 label = "lan1";
100 phy-handle = <&switch0phy1>;
94 }; 101 };
95 102
96 port@2 { 103 port@2 {
97 reg = <2>; 104 reg = <2>;
98 label = "lan2"; 105 label = "lan2";
106 phy-handle = <&switch0phy2>;
99 }; 107 };
100 108
101 port@3 { 109 port@3 {
102 reg = <3>; 110 reg = <3>;
103 label = "lan3"; 111 label = "lan3";
112 phy-handle = <&switch0phy3>;
104 }; 113 };
105 114
106 port@4 { 115 port@4 {
107 reg = <4>; 116 reg = <4>;
108 label = "lan4"; 117 label = "lan4";
118 phy-handle = <&switch0phy4>;
109 }; 119 };
110 120
111 switch0port10: port@10 { 121 switch0port10: port@10 {
@@ -115,6 +125,35 @@
115 link = <&switch1port10>; 125 link = <&switch1port10>;
116 }; 126 };
117 }; 127 };
128
129 mdio {
130 #address-cells = <1>;
131 #size-cells = <0>;
132
133 switch0phy1: switch0phy@1 {
134 reg = <1>;
135 interrupt-parent = <&switch0>;
136 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
137 };
138
139 switch0phy2: switch0phy@2 {
140 reg = <2>;
141 interrupt-parent = <&switch0>;
142 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
143 };
144
145 switch0phy3: switch0phy@3 {
146 reg = <3>;
147 interrupt-parent = <&switch0>;
148 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
149 };
150
151 switch0phy4: switch0phy@4 {
152 reg = <4>;
153 interrupt-parent = <&switch0>;
154 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
155 };
156 };
118 }; 157 };
119 }; 158 };
120 159
@@ -125,11 +164,17 @@
125 164
126 switch1: switch@0 { 165 switch1: switch@0 {
127 compatible = "marvell,mv88e6190"; 166 compatible = "marvell,mv88e6190";
167 pinctrl-0 = <&pinctrl_gpio_switch1>;
168 pinctrl-names = "default";
128 #address-cells = <1>; 169 #address-cells = <1>;
129 #size-cells = <0>; 170 #size-cells = <0>;
130 reg = <0>; 171 reg = <0>;
131 dsa,member = <0 1>; 172 dsa,member = <0 1>;
132 eeprom-length = <512>; 173 eeprom-length = <512>;
174 interrupt-parent = <&gpio0>;
175 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
176 interrupt-controller;
177 #interrupt-cells = <2>;
133 178
134 ports { 179 ports {
135 #address-cells = <1>; 180 #address-cells = <1>;
@@ -138,21 +183,25 @@
138 port@1 { 183 port@1 {
139 reg = <1>; 184 reg = <1>;
140 label = "lan5"; 185 label = "lan5";
186 phy-handle = <&switch1phy1>;
141 }; 187 };
142 188
143 port@2 { 189 port@2 {
144 reg = <2>; 190 reg = <2>;
145 label = "lan6"; 191 label = "lan6";
192 phy-handle = <&switch1phy2>;
146 }; 193 };
147 194
148 port@3 { 195 port@3 {
149 reg = <3>; 196 reg = <3>;
150 label = "lan7"; 197 label = "lan7";
198 phy-handle = <&switch1phy3>;
151 }; 199 };
152 200
153 port@4 { 201 port@4 {
154 reg = <4>; 202 reg = <4>;
155 label = "lan8"; 203 label = "lan8";
204 phy-handle = <&switch1phy4>;
156 }; 205 };
157 206
158 207
@@ -163,6 +212,34 @@
163 link = <&switch0port10>; 212 link = <&switch0port10>;
164 }; 213 };
165 }; 214 };
215 mdio {
216 #address-cells = <1>;
217 #size-cells = <0>;
218
219 switch1phy1: switch1phy@1 {
220 reg = <1>;
221 interrupt-parent = <&switch1>;
222 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
223 };
224
225 switch1phy2: switch1phy@2 {
226 reg = <2>;
227 interrupt-parent = <&switch1>;
228 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
229 };
230
231 switch1phy3: switch1phy@3 {
232 reg = <3>;
233 interrupt-parent = <&switch1>;
234 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
235 };
236
237 switch1phy4: switch1phy@4 {
238 reg = <4>;
239 interrupt-parent = <&switch1>;
240 interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
241 };
242 };
166 }; 243 };
167 }; 244 };
168 245
diff --git a/arch/arm/boot/dts/vf610-zii-dev.dtsi b/arch/arm/boot/dts/vf610-zii-dev.dtsi
index ca9e1bc35e45..6b58d3a97992 100644
--- a/arch/arm/boot/dts/vf610-zii-dev.dtsi
+++ b/arch/arm/boot/dts/vf610-zii-dev.dtsi
@@ -296,6 +296,18 @@
296 >; 296 >;
297 }; 297 };
298 298
299 pinctrl_gpio_switch0: pinctrl-gpio-switch0 {
300 fsl,pins = <
301 VF610_PAD_PTB5__GPIO_27 0x219d
302 >;
303 };
304
305 pinctrl_gpio_switch1: pinctrl-gpio-switch1 {
306 fsl,pins = <
307 VF610_PAD_PTB4__GPIO_26 0x219d
308 >;
309 };
310
299 pinctrl_i2c_mux_reset: pinctrl-i2c-mux-reset { 311 pinctrl_i2c_mux_reset: pinctrl-i2c-mux-reset {
300 fsl,pins = < 312 fsl,pins = <
301 VF610_PAD_PTE14__GPIO_119 0x31c2 313 VF610_PAD_PTE14__GPIO_119 0x31c2
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
index 098ad557fee3..e2b0da2c0bc7 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -106,6 +106,13 @@
106 }; 106 };
107 }; 107 };
108 108
109 irda_regulator: irda-regulator {
110 compatible = "regulator-fixed";
111 enable-active-high;
112 gpio = <&gpr3 3 GPIO_ACTIVE_HIGH>;
113 regulator-name = "irda_regulator";
114 };
115
109 sound { 116 sound {
110 compatible = "samsung,tm2-audio"; 117 compatible = "samsung,tm2-audio";
111 audio-codec = <&wm5110>; 118 audio-codec = <&wm5110>;
@@ -298,6 +305,8 @@
298 status = "okay"; 305 status = "okay";
299 vddcore-supply = <&ldo6_reg>; 306 vddcore-supply = <&ldo6_reg>;
300 vddio-supply = <&ldo7_reg>; 307 vddio-supply = <&ldo7_reg>;
308 samsung,burst-clock-frequency = <512000000>;
309 samsung,esc-clock-frequency = <16000000>;
301 samsung,pll-clock-frequency = <24000000>; 310 samsung,pll-clock-frequency = <24000000>;
302 pinctrl-names = "default"; 311 pinctrl-names = "default";
303 pinctrl-0 = <&te_irq>; 312 pinctrl-0 = <&te_irq>;
@@ -749,6 +758,19 @@
749 }; 758 };
750}; 759};
751 760
761&hsi2c_5 {
762 status = "okay";
763
764 stmfts: touchscreen@49 {
765 compatible = "st,stmfts";
766 reg = <0x49>;
767 interrupt-parent = <&gpa1>;
768 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
769 avdd-supply = <&ldo30_reg>;
770 vdd-supply = <&ldo31_reg>;
771 };
772};
773
752&hsi2c_7 { 774&hsi2c_7 {
753 status = "okay"; 775 status = "okay";
754 776
@@ -894,7 +916,7 @@
894 PIN(INPUT, gpa0-7, NONE, FAST_SR1); 916 PIN(INPUT, gpa0-7, NONE, FAST_SR1);
895 917
896 PIN(INPUT, gpa1-0, UP, FAST_SR1); 918 PIN(INPUT, gpa1-0, UP, FAST_SR1);
897 PIN(INPUT, gpa1-1, NONE, FAST_SR1); 919 PIN(INPUT, gpa1-1, UP, FAST_SR1);
898 PIN(INPUT, gpa1-2, NONE, FAST_SR1); 920 PIN(INPUT, gpa1-2, NONE, FAST_SR1);
899 PIN(INPUT, gpa1-3, DOWN, FAST_SR1); 921 PIN(INPUT, gpa1-3, DOWN, FAST_SR1);
900 PIN(INPUT, gpa1-4, DOWN, FAST_SR1); 922 PIN(INPUT, gpa1-4, DOWN, FAST_SR1);
@@ -1074,7 +1096,6 @@
1074 PIN(INPUT, gpg3-0, DOWN, FAST_SR1); 1096 PIN(INPUT, gpg3-0, DOWN, FAST_SR1);
1075 PIN(INPUT, gpg3-1, DOWN, FAST_SR1); 1097 PIN(INPUT, gpg3-1, DOWN, FAST_SR1);
1076 PIN(INPUT, gpg3-5, DOWN, FAST_SR1); 1098 PIN(INPUT, gpg3-5, DOWN, FAST_SR1);
1077 PIN(INPUT, gpg3-7, DOWN, FAST_SR1);
1078 }; 1099 };
1079}; 1100};
1080 1101
@@ -1152,6 +1173,24 @@
1152 }; 1173 };
1153}; 1174};
1154 1175
1176&spi_3 {
1177 status = "okay";
1178 no-cs-readback;
1179
1180 irled@0 {
1181 compatible = "ir-spi-led";
1182 reg = <0x0>;
1183 spi-max-frequency = <5000000>;
1184 power-supply = <&irda_regulator>;
1185 duty-cycle = <60>;
1186 led-active-low;
1187
1188 controller-data {
1189 samsung,spi-feedback-delay = <0>;
1190 };
1191 };
1192};
1193
1155&timer { 1194&timer {
1156 clock-frequency = <24000000>; 1195 clock-frequency = <24000000>;
1157}; 1196};
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts
index dea0a6f5bc18..3ff95277a8ec 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2.dts
@@ -52,6 +52,18 @@
52 assigned-clock-rates = <250000000>, <400000000>; 52 assigned-clock-rates = <250000000>, <400000000>;
53}; 53};
54 54
55&dsi {
56 panel@0 {
57 compatible = "samsung,s6e3ha2";
58 reg = <0>;
59 vdd3-supply = <&ldo27_reg>;
60 vci-supply = <&ldo28_reg>;
61 reset-gpios = <&gpg0 0 GPIO_ACTIVE_LOW>;
62 enable-gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>;
63 te-gpios = <&gpf1 3 GPIO_ACTIVE_HIGH>;
64 };
65};
66
55&hsi2c_9 { 67&hsi2c_9 {
56 status = "okay"; 68 status = "okay";
57 69
@@ -76,3 +88,8 @@
76 regulator-min-microvolt = <3000000>; 88 regulator-min-microvolt = <3000000>;
77 regulator-max-microvolt = <3000000>; 89 regulator-max-microvolt = <3000000>;
78}; 90};
91
92&stmfts {
93 touchscreen-size-x = <1439>;
94 touchscreen-size-y = <2559>;
95};
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
index 7891a31adc17..b73e1231a86f 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts
@@ -52,6 +52,17 @@
52 assigned-clock-rates = <278000000>, <400000000>; 52 assigned-clock-rates = <278000000>, <400000000>;
53}; 53};
54 54
55&dsi {
56 panel@0 {
57 compatible = "samsung,s6e3hf2";
58 reg = <0>;
59 vdd3-supply = <&ldo27_reg>;
60 vci-supply = <&ldo28_reg>;
61 reset-gpios = <&gpg0 0 GPIO_ACTIVE_LOW>;
62 enable-gpios = <&gpf1 5 GPIO_ACTIVE_HIGH>;
63 };
64};
65
55&ldo31_reg { 66&ldo31_reg {
56 regulator-name = "TSP_VDD_1.8V_AP"; 67 regulator-name = "TSP_VDD_1.8V_AP";
57 regulator-min-microvolt = <1800000>; 68 regulator-min-microvolt = <1800000>;
@@ -63,3 +74,10 @@
63 regulator-min-microvolt = <3300000>; 74 regulator-min-microvolt = <3300000>;
64 regulator-max-microvolt = <3300000>; 75 regulator-max-microvolt = <3300000>;
65}; 76};
77
78&stmfts {
79 touchscreen-size-x = <1599>;
80 touchscreen-size-y = <2559>;
81 touch-key-connected;
82 ledvdd-supply = <&ldo33_reg>;
83};
diff --git a/arch/arm64/boot/dts/include/arm b/arch/arm64/boot/dts/include/arm
new file mode 120000
index 000000000000..cf63d80e2b93
--- /dev/null
+++ b/arch/arm64/boot/dts/include/arm
@@ -0,0 +1 @@
../../../../arm/boot/dts \ No newline at end of file
diff --git a/arch/arm64/boot/dts/include/arm64 b/arch/arm64/boot/dts/include/arm64
new file mode 120000
index 000000000000..a96aa0ea9d8c
--- /dev/null
+++ b/arch/arm64/boot/dts/include/arm64
@@ -0,0 +1 @@
.. \ No newline at end of file
diff --git a/include/dt-bindings/clock/r7s72100-clock.h b/include/dt-bindings/clock/r7s72100-clock.h
index ce09915c298f..bc256d31099a 100644
--- a/include/dt-bindings/clock/r7s72100-clock.h
+++ b/include/dt-bindings/clock/r7s72100-clock.h
@@ -29,6 +29,9 @@
29#define R7S72100_CLK_OSTM0 1 29#define R7S72100_CLK_OSTM0 1
30#define R7S72100_CLK_OSTM1 0 30#define R7S72100_CLK_OSTM1 0
31 31
32/* MSTP6 */
33#define R7S72100_CLK_RTC 0
34
32/* MSTP7 */ 35/* MSTP7 */
33#define R7S72100_CLK_ETHER 4 36#define R7S72100_CLK_ETHER 4
34 37
@@ -49,7 +52,9 @@
49#define R7S72100_CLK_SPI4 3 52#define R7S72100_CLK_SPI4 3
50 53
51/* MSTP12 */ 54/* MSTP12 */
52#define R7S72100_CLK_SDHI0 3 55#define R7S72100_CLK_SDHI00 3
53#define R7S72100_CLK_SDHI1 2 56#define R7S72100_CLK_SDHI01 2
57#define R7S72100_CLK_SDHI10 1
58#define R7S72100_CLK_SDHI11 0
54 59
55#endif /* __DT_BINDINGS_CLOCK_R7S72100_H__ */ 60#endif /* __DT_BINDINGS_CLOCK_R7S72100_H__ */
diff --git a/include/dt-bindings/clock/r8a73a4-clock.h b/include/dt-bindings/clock/r8a73a4-clock.h
index dd11ecdf837e..4b3668157257 100644
--- a/include/dt-bindings/clock/r8a73a4-clock.h
+++ b/include/dt-bindings/clock/r8a73a4-clock.h
@@ -54,6 +54,7 @@
54#define R8A73A4_CLK_IIC3 11 54#define R8A73A4_CLK_IIC3 11
55#define R8A73A4_CLK_IIC4 10 55#define R8A73A4_CLK_IIC4 10
56#define R8A73A4_CLK_IIC5 9 56#define R8A73A4_CLK_IIC5 9
57#define R8A73A4_CLK_INTC_SYS 8
57#define R8A73A4_CLK_IRQC 7 58#define R8A73A4_CLK_IRQC 7
58 59
59/* MSTP5 */ 60/* MSTP5 */
diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h
index fa5e8da809f2..20641fa68e73 100644
--- a/include/dt-bindings/clock/r8a7790-clock.h
+++ b/include/dt-bindings/clock/r8a7790-clock.h
@@ -82,6 +82,7 @@
82 82
83/* MSTP4 */ 83/* MSTP4 */
84#define R8A7790_CLK_IRQC 7 84#define R8A7790_CLK_IRQC 7
85#define R8A7790_CLK_INTC_SYS 8
85 86
86/* MSTP5 */ 87/* MSTP5 */
87#define R8A7790_CLK_AUDIO_DMAC1 1 88#define R8A7790_CLK_AUDIO_DMAC1 1
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h
index ffa11379b3f0..adc50dc31ab3 100644
--- a/include/dt-bindings/clock/r8a7791-clock.h
+++ b/include/dt-bindings/clock/r8a7791-clock.h
@@ -72,6 +72,7 @@
72 72
73/* MSTP4 */ 73/* MSTP4 */
74#define R8A7791_CLK_IRQC 7 74#define R8A7791_CLK_IRQC 7
75#define R8A7791_CLK_INTC_SYS 8
75 76
76/* MSTP5 */ 77/* MSTP5 */
77#define R8A7791_CLK_AUDIO_DMAC1 1 78#define R8A7791_CLK_AUDIO_DMAC1 1
diff --git a/include/dt-bindings/clock/r8a7792-clock.h b/include/dt-bindings/clock/r8a7792-clock.h
index 9a8b392ceb00..5be90bc23bd7 100644
--- a/include/dt-bindings/clock/r8a7792-clock.h
+++ b/include/dt-bindings/clock/r8a7792-clock.h
@@ -17,7 +17,6 @@
17#define R8A7792_CLK_PLL3 3 17#define R8A7792_CLK_PLL3 3
18#define R8A7792_CLK_LB 4 18#define R8A7792_CLK_LB 4
19#define R8A7792_CLK_QSPI 5 19#define R8A7792_CLK_QSPI 5
20#define R8A7792_CLK_Z 6
21 20
22/* MSTP0 */ 21/* MSTP0 */
23#define R8A7792_CLK_MSIOF0 0 22#define R8A7792_CLK_MSIOF0 0
@@ -45,6 +44,7 @@
45 44
46/* MSTP4 */ 45/* MSTP4 */
47#define R8A7792_CLK_IRQC 7 46#define R8A7792_CLK_IRQC 7
47#define R8A7792_CLK_INTC_SYS 8
48 48
49/* MSTP5 */ 49/* MSTP5 */
50#define R8A7792_CLK_AUDIO_DMAC0 2 50#define R8A7792_CLK_AUDIO_DMAC0 2
diff --git a/include/dt-bindings/clock/r8a7793-clock.h b/include/dt-bindings/clock/r8a7793-clock.h
index efcbc594fe82..7318d45d4e7e 100644
--- a/include/dt-bindings/clock/r8a7793-clock.h
+++ b/include/dt-bindings/clock/r8a7793-clock.h
@@ -77,10 +77,11 @@
77 77
78/* MSTP4 */ 78/* MSTP4 */
79#define R8A7793_CLK_IRQC 7 79#define R8A7793_CLK_IRQC 7
80#define R8A7793_CLK_INTC_SYS 8
80 81
81/* MSTP5 */ 82/* MSTP5 */
82#define R8A7793_CLK_AUDIO_DMAC1 1 83#define R8A7793_CLK_AUDIO_DMAC1 1
83#define R8A7793_CLK_AUDIO_DMAC0 2 84#define R8A7793_CLK_AUDIO_DMAC0 2
84#define R8A7793_CLK_ADSP_MOD 6 85#define R8A7793_CLK_ADSP_MOD 6
85#define R8A7793_CLK_THERMAL 22 86#define R8A7793_CLK_THERMAL 22
86#define R8A7793_CLK_PWM 23 87#define R8A7793_CLK_PWM 23
diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h
index 88e64846cf37..93e99c3ffc8d 100644
--- a/include/dt-bindings/clock/r8a7794-clock.h
+++ b/include/dt-bindings/clock/r8a7794-clock.h
@@ -64,6 +64,7 @@
64 64
65/* MSTP4 */ 65/* MSTP4 */
66#define R8A7794_CLK_IRQC 7 66#define R8A7794_CLK_IRQC 7
67#define R8A7794_CLK_INTC_SYS 8
67 68
68/* MSTP5 */ 69/* MSTP5 */
69#define R8A7794_CLK_AUDIO_DMAC0 2 70#define R8A7794_CLK_AUDIO_DMAC0 2
@@ -81,6 +82,7 @@
81#define R8A7794_CLK_SCIF2 19 82#define R8A7794_CLK_SCIF2 19
82#define R8A7794_CLK_SCIF1 20 83#define R8A7794_CLK_SCIF1 20
83#define R8A7794_CLK_SCIF0 21 84#define R8A7794_CLK_SCIF0 21
85#define R8A7794_CLK_DU1 23
84#define R8A7794_CLK_DU0 24 86#define R8A7794_CLK_DU0 24
85 87
86/* MSTP8 */ 88/* MSTP8 */
diff --git a/include/dt-bindings/mfd/stm32f7-rcc.h b/include/dt-bindings/mfd/stm32f7-rcc.h
new file mode 100644
index 000000000000..e36cc69959c7
--- /dev/null
+++ b/include/dt-bindings/mfd/stm32f7-rcc.h
@@ -0,0 +1,112 @@
1/*
2 * This header provides constants for the STM32F7 RCC IP
3 */
4
5#ifndef _DT_BINDINGS_MFD_STM32F7_RCC_H
6#define _DT_BINDINGS_MFD_STM32F7_RCC_H
7
8/* AHB1 */
9#define STM32F7_RCC_AHB1_GPIOA 0
10#define STM32F7_RCC_AHB1_GPIOB 1
11#define STM32F7_RCC_AHB1_GPIOC 2
12#define STM32F7_RCC_AHB1_GPIOD 3
13#define STM32F7_RCC_AHB1_GPIOE 4
14#define STM32F7_RCC_AHB1_GPIOF 5
15#define STM32F7_RCC_AHB1_GPIOG 6
16#define STM32F7_RCC_AHB1_GPIOH 7
17#define STM32F7_RCC_AHB1_GPIOI 8
18#define STM32F7_RCC_AHB1_GPIOJ 9
19#define STM32F7_RCC_AHB1_GPIOK 10
20#define STM32F7_RCC_AHB1_CRC 12
21#define STM32F7_RCC_AHB1_BKPSRAM 18
22#define STM32F7_RCC_AHB1_DTCMRAM 20
23#define STM32F7_RCC_AHB1_DMA1 21
24#define STM32F7_RCC_AHB1_DMA2 22
25#define STM32F7_RCC_AHB1_DMA2D 23
26#define STM32F7_RCC_AHB1_ETHMAC 25
27#define STM32F7_RCC_AHB1_ETHMACTX 26
28#define STM32F7_RCC_AHB1_ETHMACRX 27
29#define STM32FF_RCC_AHB1_ETHMACPTP 28
30#define STM32F7_RCC_AHB1_OTGHS 29
31#define STM32F7_RCC_AHB1_OTGHSULPI 30
32
33#define STM32F7_AHB1_RESET(bit) (STM32F7_RCC_AHB1_##bit + (0x10 * 8))
34#define STM32F7_AHB1_CLOCK(bit) (STM32F7_RCC_AHB1_##bit)
35
36
37/* AHB2 */
38#define STM32F7_RCC_AHB2_DCMI 0
39#define STM32F7_RCC_AHB2_CRYP 4
40#define STM32F7_RCC_AHB2_HASH 5
41#define STM32F7_RCC_AHB2_RNG 6
42#define STM32F7_RCC_AHB2_OTGFS 7
43
44#define STM32F7_AHB2_RESET(bit) (STM32F7_RCC_AHB2_##bit + (0x14 * 8))
45#define STM32F7_AHB2_CLOCK(bit) (STM32F7_RCC_AHB2_##bit + 0x20)
46
47/* AHB3 */
48#define STM32F7_RCC_AHB3_FMC 0
49#define STM32F7_RCC_AHB3_QSPI 1
50
51#define STM32F7_AHB3_RESET(bit) (STM32F7_RCC_AHB3_##bit + (0x18 * 8))
52#define STM32F7_AHB3_CLOCK(bit) (STM32F7_RCC_AHB3_##bit + 0x40)
53
54/* APB1 */
55#define STM32F7_RCC_APB1_TIM2 0
56#define STM32F7_RCC_APB1_TIM3 1
57#define STM32F7_RCC_APB1_TIM4 2
58#define STM32F7_RCC_APB1_TIM5 3
59#define STM32F7_RCC_APB1_TIM6 4
60#define STM32F7_RCC_APB1_TIM7 5
61#define STM32F7_RCC_APB1_TIM12 6
62#define STM32F7_RCC_APB1_TIM13 7
63#define STM32F7_RCC_APB1_TIM14 8
64#define STM32F7_RCC_APB1_LPTIM1 9
65#define STM32F7_RCC_APB1_WWDG 11
66#define STM32F7_RCC_APB1_SPI2 14
67#define STM32F7_RCC_APB1_SPI3 15
68#define STM32F7_RCC_APB1_SPDIFRX 16
69#define STM32F7_RCC_APB1_UART2 17
70#define STM32F7_RCC_APB1_UART3 18
71#define STM32F7_RCC_APB1_UART4 19
72#define STM32F7_RCC_APB1_UART5 20
73#define STM32F7_RCC_APB1_I2C1 21
74#define STM32F7_RCC_APB1_I2C2 22
75#define STM32F7_RCC_APB1_I2C3 23
76#define STM32F7_RCC_APB1_I2C4 24
77#define STM32F7_RCC_APB1_CAN1 25
78#define STM32F7_RCC_APB1_CAN2 26
79#define STM32F7_RCC_APB1_CEC 27
80#define STM32F7_RCC_APB1_PWR 28
81#define STM32F7_RCC_APB1_DAC 29
82#define STM32F7_RCC_APB1_UART7 30
83#define STM32F7_RCC_APB1_UART8 31
84
85#define STM32F7_APB1_RESET(bit) (STM32F7_RCC_APB1_##bit + (0x20 * 8))
86#define STM32F7_APB1_CLOCK(bit) (STM32F7_RCC_APB1_##bit + 0x80)
87
88/* APB2 */
89#define STM32F7_RCC_APB2_TIM1 0
90#define STM32F7_RCC_APB2_TIM8 1
91#define STM32F7_RCC_APB2_USART1 4
92#define STM32F7_RCC_APB2_USART6 5
93#define STM32F7_RCC_APB2_ADC1 8
94#define STM32F7_RCC_APB2_ADC2 9
95#define STM32F7_RCC_APB2_ADC3 10
96#define STM32F7_RCC_APB2_SDMMC1 11
97#define STM32F7_RCC_APB2_SPI1 12
98#define STM32F7_RCC_APB2_SPI4 13
99#define STM32F7_RCC_APB2_SYSCFG 14
100#define STM32F7_RCC_APB2_TIM9 16
101#define STM32F7_RCC_APB2_TIM10 17
102#define STM32F7_RCC_APB2_TIM11 18
103#define STM32F7_RCC_APB2_SPI5 20
104#define STM32F7_RCC_APB2_SPI6 21
105#define STM32F7_RCC_APB2_SAI1 22
106#define STM32F7_RCC_APB2_SAI2 23
107#define STM32F7_RCC_APB2_LTDC 26
108
109#define STM32F7_APB2_RESET(bit) (STM32F7_RCC_APB2_##bit + (0x24 * 8))
110#define STM32F7_APB2_CLOCK(bit) (STM32F7_RCC_APB2_##bit + 0xA0)
111
112#endif /* _DT_BINDINGS_MFD_STM32F7_RCC_H */