aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-09-01 16:09:20 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-09-01 16:09:20 -0400
commitb3a5af435ab4b860714b2f56c65fd506aa677e71 (patch)
tree4673c2c4a4fe83783a7ee3ec782803452a4f0eb0
parent102178108e2246cb4b329d3fb7872cd3d7120205 (diff)
parent4c80a00388dd7b9d9e7ebf31e62b96c7b74178b8 (diff)
Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM DT updates from Olof Johansson: "Ladies and gentlemen, we proudly announce to you the latest branch of ARM device tree contents for the mainline kernel. Come and see, come and see! No less than twentythree thousand lines of additions! Just imagine the joy you will have of using your mainline kernel on newly supported hardware such as Rockchip Chromebooks, Freescale i.MX6UL boards or UniPhier hardware! For those of you feeling less adventurous, added hardware support on platforms such as TI DM814x and Gumstix Overo platforms might be more of your liking. We've got something for everyone here! Ahem. Cough. So, anyway... This is the usual large batch of DT updates. Lots and lots of smaller changes, some of the larger ones to point out are: - Rockchip veyron (Chromebook) support, as well as several other new boards - DRM support on Atmel AT91SAM9N12EK - USB additions on some Allwinner platforms - Mediatek MT6580 support - Freescale i.MX6UL support - cleanups for Renesas shmobile platforms - lots of added devices on LPC18xx - lots of added devices and boards on UniPhier There's also some dependent code added here, in particular some branches that are primarily merged through the clock tree" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (389 commits) ARM: tegra: Add gpio-ranges property ARM: tegra: Fix AHB base address on Tegra20, Tegra30 and Tegra114 ARM: tegra: Add Tegra124 PMU support ARM: tegra: jetson-tk1: Add GK20A GPU DT node ARM: tegra: venice2: Add GK20A GPU DT node ARM: tegra: Add IOMMU node to GK20A ARM: tegra: Add CPU regulator to the Jetson TK1 device tree ARM: tegra: Add entries for cpufreq on Tegra124 ARM: tegra: Enable the DFLL on the Jetson TK1 ARM: tegra: Add the DFLL to Tegra124 device tree ARM: dts: zynq: Add devicetree entry for Xilinx Zynq reset controller. ARM: dts: UniPhier: fix PPI interrupt CPU mask of timer nodes ARM: dts: rockchip: correct regulator power states for suspend ARM: dts: rockchip: correct regulator PM properties ARM: dts: vexpress: Use assigned-clock-parents for sp810 pinctrl: tegra: Only set the gpio range if needed arm: boot: dts: am4372: add ARM timers and SCU nodes ARM: dts: AM4372: Add the am4372-rtc compatible string ARM: shmobile: r8a7794 dtsi: Add CPG/MSTP Clock Domain ARM: shmobile: r8a7793 dtsi: Add CPG/MSTP Clock Domain ...
-rw-r--r--Documentation/devicetree/bindings/arm/atmel-at91.txt13
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt14
-rw-r--r--Documentation/devicetree/bindings/arm/marvell,kirkwood.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek.txt4
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/omap/omap.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt35
-rw-r--r--Documentation/devicetree/bindings/clock/imx6ul-clock.txt13
-rw-r--r--Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt4
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/synopsys.txt4
-rw-r--r--Documentation/devicetree/bindings/pinctrl/fsl,imx6ul-pinctrl.txt36
-rw-r--r--Documentation/devicetree/bindings/reset/socfpga-reset.txt2
-rw-r--r--Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt2
-rw-r--r--Documentation/devicetree/bindings/rtc/rtc-omap.txt1
-rw-r--r--Documentation/devicetree/bindings/serial/mtk-uart.txt3
-rw-r--r--Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt6
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt3
-rw-r--r--Documentation/devicetree/bindings/watchdog/atmel-wdt.txt2
-rw-r--r--arch/arm/boot/dts/Makefile41
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts20
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts69
-rw-r--r--arch/arm/boot/dts/am335x-evmsk.dts62
-rw-r--r--arch/arm/boot/dts/am335x-phycore-som.dtsi368
-rw-r--r--arch/arm/boot/dts/am335x-wega-rdk.dts22
-rw-r--r--arch/arm/boot/dts/am335x-wega.dtsi151
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi25
-rw-r--r--arch/arm/boot/dts/am4372.dtsi67
-rw-r--r--arch/arm/boot/dts/am437x-gp-evm.dts185
-rw-r--r--arch/arm/boot/dts/am437x-sk-evm.dts45
-rw-r--r--arch/arm/boot/dts/am43x-epos-evm.dts130
-rw-r--r--arch/arm/boot/dts/am43xx-clocks.dtsi9
-rw-r--r--arch/arm/boot/dts/am57xx-beagle-x15.dts1
-rw-r--r--arch/arm/boot/dts/armada-375.dtsi4
-rw-r--r--arch/arm/boot/dts/armada-388-gp.dts12
-rw-r--r--arch/arm/boot/dts/armada-38x.dtsi8
-rw-r--r--arch/arm/boot/dts/armada-39x.dtsi8
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts134
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts9
-rw-r--r--arch/arm/boot/dts/at91-sama5d4ek.dts9
-rw-r--r--arch/arm/boot/dts/at91rm9200.dtsi10
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi11
-rw-r--r--arch/arm/boot/dts/at91sam9261.dtsi7
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi7
-rw-r--r--arch/arm/boot/dts/at91sam9g15.dtsi1
-rw-r--r--arch/arm/boot/dts/at91sam9g15ek.dts25
-rw-r--r--arch/arm/boot/dts/at91sam9g35.dtsi1
-rw-r--r--arch/arm/boot/dts/at91sam9g35ek.dts21
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi60
-rw-r--r--arch/arm/boot/dts/at91sam9m10g45ek.dts47
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi83
-rw-r--r--arch/arm/boot/dts/at91sam9n12ek.dts61
-rw-r--r--arch/arm/boot/dts/at91sam9rl.dtsi8
-rw-r--r--arch/arm/boot/dts/at91sam9x35.dtsi1
-rw-r--r--arch/arm/boot/dts/at91sam9x35ek.dts20
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi12
-rw-r--r--arch/arm/boot/dts/at91sam9x5_lcd.dtsi139
-rw-r--r--arch/arm/boot/dts/at91sam9x5dm.dtsi101
-rw-r--r--arch/arm/boot/dts/atlas7-evb.dts18
-rw-r--r--arch/arm/boot/dts/atlas7.dtsi97
-rw-r--r--arch/arm/boot/dts/axp152.dtsi49
-rw-r--r--arch/arm/boot/dts/bcm-cygnus-clock.dtsi89
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi.dtsi7
-rw-r--r--arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6250.dts14
-rw-r--r--arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts4
-rw-r--r--arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts4
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi10
-rw-r--r--arch/arm/boot/dts/bcm7445.dtsi50
-rw-r--r--arch/arm/boot/dts/cros-ec-sbs.dtsi52
-rw-r--r--arch/arm/boot/dts/cx92755.dtsi7
-rw-r--r--arch/arm/boot/dts/cx92755_equinox.dts3
-rw-r--r--arch/arm/boot/dts/dm8148-evm.dts28
-rw-r--r--arch/arm/boot/dts/dm8148-t410.dts28
-rw-r--r--arch/arm/boot/dts/dm814x-clocks.dtsi109
-rw-r--r--arch/arm/boot/dts/dm814x.dtsi333
-rw-r--r--arch/arm/boot/dts/dm816x.dtsi2
-rw-r--r--arch/arm/boot/dts/dove.dtsi604
-rw-r--r--arch/arm/boot/dts/dra7-evm.dts18
-rw-r--r--arch/arm/boot/dts/dra7.dtsi95
-rw-r--r--arch/arm/boot/dts/dra72-evm.dts26
-rw-r--r--arch/arm/boot/dts/dra74x.dtsi7
-rw-r--r--arch/arm/boot/dts/emev2-kzm9d.dts8
-rw-r--r--arch/arm/boot/dts/emev2.dtsi48
-rw-r--r--arch/arm/boot/dts/exynos4210-universal_c210.dts620
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts3
-rw-r--r--arch/arm/boot/dts/exynos5250-pinctrl.dtsi1600
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi3
-rw-r--r--arch/arm/boot/dts/exynos5410-smdk5410.dts6
-rw-r--r--arch/arm/boot/dts/exynos5420-pinctrl.dtsi1411
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi3
-rw-r--r--arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi59
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi46
-rw-r--r--arch/arm/boot/dts/imx27.dtsi9
-rw-r--r--arch/arm/boot/dts/imx53-qsb-common.dtsi5
-rw-r--r--arch/arm/boot/dts/imx53-qsrb.dts14
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw51xx.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw52xx.dtsi35
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw53xx.dtsi35
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw54xx.dtsi34
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw551x.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-gw552x.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi39
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi137
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabrelite.dtsi39
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabresd.dtsi7
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi52
-rw-r--r--arch/arm/boot/dts/imx6sl-warp.dts32
-rw-r--r--arch/arm/boot/dts/imx6sl.dtsi21
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi28
-rw-r--r--arch/arm/boot/dts/imx6ul-14x14-evk.dts343
-rw-r--r--arch/arm/boot/dts/imx6ul-pinfunc.h938
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi707
-rw-r--r--arch/arm/boot/dts/imx7d.dtsi260
-rw-r--r--arch/arm/boot/dts/kirkwood-lswvl.dts301
-rw-r--r--arch/arm/boot/dts/kirkwood-lswxl.dts301
-rw-r--r--arch/arm/boot/dts/lpc18xx.dtsi267
-rw-r--r--arch/arm/boot/dts/lpc4337-ciaa.dts187
-rw-r--r--arch/arm/boot/dts/lpc4350-hitex-eval.dts244
-rw-r--r--arch/arm/boot/dts/lpc4357-ea4357-devkit.dts467
-rw-r--r--arch/arm/boot/dts/ls1021a-qds.dts89
-rw-r--r--arch/arm/boot/dts/ls1021a-twr.dts81
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi106
-rw-r--r--arch/arm/boot/dts/mt6580-evbp1.dts38
-rw-r--r--arch/arm/boot/dts/mt6580.dtsi116
-rw-r--r--arch/arm/boot/dts/mt8135-evbp1.dts193
-rw-r--r--arch/arm/boot/dts/mt8135.dtsi58
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-common.dtsi369
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi73
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd43.dts37
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd70.dts37
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000.dts191
-rw-r--r--arch/arm/boot/dts/omap3-lilly-a83x.dtsi12
-rw-r--r--arch/arm/boot/dts/omap3-overo-base.dtsi55
-rw-r--r--arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi3
-rw-r--r--arch/arm/boot/dts/omap3-overo-palo35-common.dtsi53
-rw-r--r--arch/arm/boot/dts/omap3-overo-palo35.dts37
-rw-r--r--arch/arm/boot/dts/omap3-overo-storm-palo35.dts37
-rw-r--r--arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts21
-rw-r--r--arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi65
-rw-r--r--arch/arm/boot/dts/omap3-overo-tobiduo.dts21
-rw-r--r--arch/arm/boot/dts/omap3-overo.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-pandora-1ghz.dts2
-rw-r--r--arch/arm/boot/dts/omap3-pandora-600mhz.dts2
-rw-r--r--arch/arm/boot/dts/omap3-pandora-common.dtsi54
-rw-r--r--arch/arm/boot/dts/omap5-uevm.dts7
-rw-r--r--arch/arm/boot/dts/omap5.dtsi7
-rw-r--r--arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts273
-rw-r--r--arch/arm/boot/dts/orion5x-lswsgl.dts276
-rw-r--r--arch/arm/boot/dts/pxa27x.dtsi36
-rw-r--r--arch/arm/boot/dts/pxa2xx.dtsi4
-rw-r--r--arch/arm/boot/dts/pxa3xx.dtsi52
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts20
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-ifc6410.dts40
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi91
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi11
-rw-r--r--arch/arm/boot/dts/qcom-msm8960-cdp.dts302
-rw-r--r--arch/arm/boot/dts/qcom-msm8960.dtsi49
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi32
-rw-r--r--arch/arm/boot/dts/r7s72100.dtsi19
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi9
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva.dts13
-rw-r--r--arch/arm/boot/dts/r8a7740.dtsi1
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi22
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi28
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts4
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi138
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts2
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi120
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts63
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi374
-rw-r--r--arch/arm/boot/dts/r8a7794-silk.dts102
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi48
-rw-r--r--arch/arm/boot/dts/rk3066a-bqcurie2.dts1
-rw-r--r--arch/arm/boot/dts/rk3066a-marsboard.dts13
-rw-r--r--arch/arm/boot/dts/rk3066a-rayeager.dts5
-rw-r--r--arch/arm/boot/dts/rk3066a.dtsi22
-rw-r--r--arch/arm/boot/dts/rk3188-radxarock.dts5
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi22
-rw-r--r--arch/arm/boot/dts/rk3288-evb.dtsi1
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dtsi3
-rw-r--r--arch/arm/boot/dts/rk3288-popmetal.dts1
-rw-r--r--arch/arm/boot/dts/rk3288-r89.dts413
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi232
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-jerry.dts197
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-minnie.dts230
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-pinky.dts128
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi122
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-speedy.dts155
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi563
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi31
-rw-r--r--arch/arm/boot/dts/rk3xxx.dtsi10
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi926
-rw-r--r--arch/arm/boot/dts/sama5d3.dtsi10
-rw-r--r--arch/arm/boot/dts/sama5d3_tcb1.dtsi4
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi25
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi3
-rw-r--r--arch/arm/boot/dts/socfpga.dtsi46
-rw-r--r--arch/arm/boot/dts/socfpga_arria10.dtsi11
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk.dtsi3
-rw-r--r--arch/arm/boot/dts/socfpga_arria5_socdk.dts3
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts111
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socdk.dts3
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_sockit.dts3
-rw-r--r--arch/arm/boot/dts/stih407-clock.dtsi4
-rw-r--r--arch/arm/boot/dts/stih407-family.dtsi45
-rw-r--r--arch/arm/boot/dts/stih407-pinctrl.dtsi200
-rw-r--r--arch/arm/boot/dts/stih407.dtsi28
-rw-r--r--arch/arm/boot/dts/stih410-clock.dtsi4
-rw-r--r--arch/arm/boot/dts/stih410.dtsi12
-rw-r--r--arch/arm/boot/dts/stih418-clock.dtsi4
-rw-r--r--arch/arm/boot/dts/stih418.dtsi4
-rw-r--r--arch/arm/boot/dts/stm32429i-eval.dts75
-rw-r--r--arch/arm/boot/dts/stm32f429-disco.dts8
-rw-r--r--arch/arm/boot/dts/stm32f429.dtsi79
-rw-r--r--arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts15
-rw-r--r--arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts34
-rw-r--r--arch/arm/boot/dts/sun4i-a10-cubieboard.dts19
-rw-r--r--arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts202
-rw-r--r--arch/arm/boot/dts/sun4i-a10-mini-xplus.dts15
-rw-r--r--arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts32
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi16
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts37
-rw-r--r--arch/arm/boot/dts/sun5i-a13-hsg-h702.dts58
-rw-r--r--arch/arm/boot/dts/sun5i-a13-olinuxino.dts37
-rw-r--r--arch/arm/boot/dts/sun5i-a13-utoo-p66.dts29
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi16
-rw-r--r--arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts5
-rw-r--r--arch/arm/boot/dts/sun6i-a31.dtsi16
-rw-r--r--arch/arm/boot/dts/sun6i-a31s-cs908.dts5
-rw-r--r--arch/arm/boot/dts/sun7i-a20-cubietruck.dts56
-rw-r--r--arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts2
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts32
-rw-r--r--arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts32
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi16
-rw-r--r--arch/arm/boot/dts/sun8i-a23-a33.dtsi25
-rw-r--r--arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts9
-rw-r--r--arch/arm/boot/dts/sun8i-a23.dtsi33
-rw-r--r--arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts17
-rw-r--r--arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts133
-rw-r--r--arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts13
-rw-r--r--arch/arm/boot/dts/sun8i-a33.dtsi33
-rw-r--r--arch/arm/boot/dts/sunxi-common-regulators.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra114.dtsi5
-rw-r--r--arch/arm/boot/dts/tegra124-jetson-tk1.dts25
-rw-r--r--arch/arm/boot/dts/tegra124-venice2.dts10
-rw-r--r--arch/arm/boot/dts/tegra124.dtsi50
-rw-r--r--arch/arm/boot/dts/tegra20.dtsi5
-rw-r--r--arch/arm/boot/dts/tegra30.dtsi5
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts38
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld4.dtsi143
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts105
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi67
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts40
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro4.dtsi158
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro5.dtsi252
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts46
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-sld3.dtsi122
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts42
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-sld8.dtsi143
-rw-r--r--arch/arm/boot/dts/uniphier-pinctrl.dtsi105
-rw-r--r--arch/arm/boot/dts/uniphier-proxstream2.dtsi273
-rw-r--r--arch/arm/boot/dts/uniphier-ref-daughter.dtsi50
-rw-r--r--arch/arm/boot/dts/vexpress-v2m-rs1.dtsi2
-rw-r--r--arch/arm/boot/dts/vexpress-v2m.dtsi2
-rw-r--r--arch/arm/boot/dts/vf-colibri-eval-v3.dtsi2
-rw-r--r--arch/arm/boot/dts/vfxxx.dtsi85
-rw-r--r--arch/arm/boot/dts/zynq-7000.dtsi10
-rw-r--r--arch/arm/boot/dts/zynq-zc702.dts28
-rw-r--r--arch/arm/configs/omap2plus_defconfig3
-rw-r--r--arch/arm/mach-omap2/pdata-quirks.c157
-rw-r--r--arch/arm/mach-orion5x/Kconfig6
-rw-r--r--arch/arm/mach-orion5x/Makefile1
-rw-r--r--arch/arm/mach-orion5x/lsmini-setup.c280
-rw-r--r--drivers/clk/ti/clk-43xx.c1
-rw-r--r--drivers/pinctrl/pinctrl-tegra.c19
-rw-r--r--include/dt-bindings/clock/r8a7790-clock.h3
-rw-r--r--include/dt-bindings/clock/r8a7791-clock.h2
-rw-r--r--include/dt-bindings/clock/r8a7793-clock.h164
-rw-r--r--include/dt-bindings/pinctrl/am43xx.h1
-rw-r--r--include/dt-bindings/pinctrl/dra.h20
-rw-r--r--include/dt-bindings/reset/altr,rst-mgr-a10.h110
282 files changed, 20100 insertions, 3197 deletions
diff --git a/Documentation/devicetree/bindings/arm/atmel-at91.txt b/Documentation/devicetree/bindings/arm/atmel-at91.txt
index 23c097812d98..7fd64ec9ee1d 100644
--- a/Documentation/devicetree/bindings/arm/atmel-at91.txt
+++ b/Documentation/devicetree/bindings/arm/atmel-at91.txt
@@ -52,6 +52,7 @@ System Timer (ST) required properties:
52- reg: Should contain registers location and length 52- reg: Should contain registers location and length
53- interrupts: Should contain interrupt for the ST which is the IRQ line 53- interrupts: Should contain interrupt for the ST which is the IRQ line
54 shared across all System Controller members. 54 shared across all System Controller members.
55- clocks: phandle to input clock.
55Its subnodes can be: 56Its subnodes can be:
56- watchdog: compatible should be "atmel,at91rm9200-wdt" 57- watchdog: compatible should be "atmel,at91rm9200-wdt"
57 58
@@ -63,7 +64,7 @@ TC/TCLIB Timer required properties:
63 Note that you can specify several interrupt cells if the TC 64 Note that you can specify several interrupt cells if the TC
64 block has one interrupt per channel. 65 block has one interrupt per channel.
65- clock-names: tuple listing input clock names. 66- clock-names: tuple listing input clock names.
66 Required elements: "t0_clk" 67 Required elements: "t0_clk", "slow_clk"
67 Optional elements: "t1_clk", "t2_clk" 68 Optional elements: "t1_clk", "t2_clk"
68- clocks: phandles to input clocks. 69- clocks: phandles to input clocks.
69 70
@@ -91,12 +92,14 @@ RSTC Reset Controller required properties:
91- compatible: Should be "atmel,<chip>-rstc". 92- compatible: Should be "atmel,<chip>-rstc".
92 <chip> can be "at91sam9260" or "at91sam9g45" or "sama5d3" 93 <chip> can be "at91sam9260" or "at91sam9g45" or "sama5d3"
93- reg: Should contain registers location and length 94- reg: Should contain registers location and length
95- clocks: phandle to input clock.
94 96
95Example: 97Example:
96 98
97 rstc@fffffd00 { 99 rstc@fffffd00 {
98 compatible = "atmel,at91sam9260-rstc"; 100 compatible = "atmel,at91sam9260-rstc";
99 reg = <0xfffffd00 0x10>; 101 reg = <0xfffffd00 0x10>;
102 clocks = <&clk32k>;
100 }; 103 };
101 104
102RAMC SDRAM/DDR Controller required properties: 105RAMC SDRAM/DDR Controller required properties:
@@ -119,6 +122,7 @@ required properties:
119- compatible: Should be "atmel,<chip>-shdwc". 122- compatible: Should be "atmel,<chip>-shdwc".
120 <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5". 123 <chip> can be "at91sam9260", "at91sam9rl" or "at91sam9x5".
121- reg: Should contain registers location and length 124- reg: Should contain registers location and length
125- clocks: phandle to input clock.
122 126
123optional properties: 127optional properties:
124- atmel,wakeup-mode: String, operation mode of the wakeup mode. 128- atmel,wakeup-mode: String, operation mode of the wakeup mode.
@@ -137,9 +141,10 @@ optional at91sam9x5 properties:
137 141
138Example: 142Example:
139 143
140 rstc@fffffd00 { 144 shdwc@fffffd10 {
141 compatible = "atmel,at91sam9260-rstc"; 145 compatible = "atmel,at91sam9260-shdwc";
142 reg = <0xfffffd00 0x10>; 146 reg = <0xfffffd10 0x10>;
147 clocks = <&clk32k>;
143 }; 148 };
144 149
145Special Function Registers (SFR) 150Special Function Registers (SFR)
diff --git a/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt b/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt
new file mode 100644
index 000000000000..6824b3180ffb
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.txt
@@ -0,0 +1,14 @@
1Raspberry Pi VideoCore firmware driver
2
3Required properties:
4
5- compatible: Should be "raspberrypi,bcm2835-firmware"
6- mboxes: Phandle to the firmware device's Mailbox.
7 (See: ../mailbox/mailbox.txt for more information)
8
9Example:
10
11firmware {
12 compatible = "raspberrypi,bcm2835-firmware";
13 mboxes = <&mailbox>;
14};
diff --git a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
index 4f40ff3fee4b..5171ad8f48ff 100644
--- a/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
+++ b/Documentation/devicetree/bindings/arm/marvell,kirkwood.txt
@@ -20,6 +20,8 @@ And in addition, the compatible shall be extended with the specific
20board. Currently known boards are: 20board. Currently known boards are:
21 21
22"buffalo,lschlv2" 22"buffalo,lschlv2"
23"buffalo,lswvl"
24"buffalo,lswxl"
23"buffalo,lsxhl" 25"buffalo,lsxhl"
24"buffalo,lsxl" 26"buffalo,lsxl"
25"dlink,dns-320" 27"dlink,dns-320"
diff --git a/Documentation/devicetree/bindings/arm/mediatek.txt b/Documentation/devicetree/bindings/arm/mediatek.txt
index dd7550a29db6..2daa424a13a4 100644
--- a/Documentation/devicetree/bindings/arm/mediatek.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek.txt
@@ -5,6 +5,7 @@ Boards with a MediaTek mt65xx/mt81xx SoC shall have the following property:
5Required root node property: 5Required root node property:
6 6
7compatible: Must contain one of 7compatible: Must contain one of
8 "mediatek,mt6580"
8 "mediatek,mt6589" 9 "mediatek,mt6589"
9 "mediatek,mt6592" 10 "mediatek,mt6592"
10 "mediatek,mt8127" 11 "mediatek,mt8127"
@@ -14,6 +15,9 @@ compatible: Must contain one of
14 15
15Supported boards: 16Supported boards:
16 17
18- Evaluation board for MT6580:
19 Required root node properties:
20 - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
17- bq Aquaris5 smart phone: 21- bq Aquaris5 smart phone:
18 Required root node properties: 22 Required root node properties:
19 - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589"; 23 - compatible = "mundoreader,bq-aquaris5", "mediatek,mt6589";
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
index 4f5a5352ccd8..3c9c3a7f3d25 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,sysirq.txt
@@ -11,6 +11,7 @@ Required properties:
11 "mediatek,mt6592-sysirq" 11 "mediatek,mt6592-sysirq"
12 "mediatek,mt6589-sysirq" 12 "mediatek,mt6589-sysirq"
13 "mediatek,mt6582-sysirq" 13 "mediatek,mt6582-sysirq"
14 "mediatek,mt6580-sysirq"
14 "mediatek,mt6577-sysirq" 15 "mediatek,mt6577-sysirq"
15- interrupt-controller : Identifies the node as an interrupt controller 16- interrupt-controller : Identifies the node as an interrupt controller
16- #interrupt-cells : Use the same format as specified by GIC in 17- #interrupt-cells : Use the same format as specified by GIC in
diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt
index 4f6a82cef1d1..9f4e5136e568 100644
--- a/Documentation/devicetree/bindings/arm/omap/omap.txt
+++ b/Documentation/devicetree/bindings/arm/omap/omap.txt
@@ -135,6 +135,9 @@ Boards:
135- AM335X OrionLXm : Substation Automation Platform 135- AM335X OrionLXm : Substation Automation Platform
136 compatible = "novatech,am335x-lxm", "ti,am33xx" 136 compatible = "novatech,am335x-lxm", "ti,am33xx"
137 137
138- AM335X phyBOARD-WEGA: Single Board Computer dev kit
139 compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx"
140
138- OMAP5 EVM : Evaluation Module 141- OMAP5 EVM : Evaluation Module
139 compatible = "ti,omap5-evm", "ti,omap5" 142 compatible = "ti,omap5-evm", "ti,omap5"
140 143
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index 60d4a1e0a9b5..af58cd74aeff 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -26,3 +26,38 @@ Rockchip platforms device tree bindings
26- ChipSPARK PopMetal-RK3288 board: 26- ChipSPARK PopMetal-RK3288 board:
27 Required root node properties: 27 Required root node properties:
28 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288"; 28 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
29
30- Netxeon R89 board:
31 Required root node properties:
32 - compatible = "netxeon,r89", "rockchip,rk3288";
33
34- Google Jerry (Hisense Chromebook C11 and more):
35 Required root node properties:
36 - compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
37 "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",
38 "google,veyron-jerry-rev3", "google,veyron-jerry",
39 "google,veyron", "rockchip,rk3288";
40
41- Google Minnie (Asus Chromebook Flip C100P):
42 Required root node properties:
43 - compatible = "google,veyron-minnie-rev4", "google,veyron-minnie-rev3",
44 "google,veyron-minnie-rev2", "google,veyron-minnie-rev1",
45 "google,veyron-minnie-rev0", "google,veyron-minnie",
46 "google,veyron", "rockchip,rk3288";
47
48- Google Pinky (dev-board):
49 Required root node properties:
50 - compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",
51 "google,veyron", "rockchip,rk3288";
52
53- Google Speedy (Asus C201 Chromebook):
54 Required root node properties:
55 - compatible = "google,veyron-speedy-rev9", "google,veyron-speedy-rev8",
56 "google,veyron-speedy-rev7", "google,veyron-speedy-rev6",
57 "google,veyron-speedy-rev5", "google,veyron-speedy-rev4",
58 "google,veyron-speedy-rev3", "google,veyron-speedy-rev2",
59 "google,veyron-speedy", "google,veyron", "rockchip,rk3288";
60
61- Rockchip R88 board:
62 Required root node properties:
63 - compatible = "rockchip,r88", "rockchip,rk3368";
diff --git a/Documentation/devicetree/bindings/clock/imx6ul-clock.txt b/Documentation/devicetree/bindings/clock/imx6ul-clock.txt
new file mode 100644
index 000000000000..571d5039f663
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/imx6ul-clock.txt
@@ -0,0 +1,13 @@
1* Clock bindings for Freescale i.MX6 UltraLite
2
3Required properties:
4- compatible: Should be "fsl,imx6ul-ccm"
5- reg: Address and length of the register set
6- #clock-cells: Should be <1>
7- clocks: list of clock specifiers, must contain an entry for each required
8 entry in clock-names
9- clock-names: should include entries "ckil", "osc", "ipp_di0" and "ipp_di1"
10
11The clock consumer should specify the desired clock by having the clock
12ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6ul-clock.h
13for the full list of i.MX6 UltraLite clock IDs.
diff --git a/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt b/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
index efb51cf0c845..d8b168ebd5f1 100644
--- a/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
+++ b/Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
@@ -21,8 +21,8 @@ Required properties:
21 "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32" 21 "st,stih416-plls-c32-ddr", "st,clkgen-plls-c32"
22 "st,stih407-plls-c32-a0", "st,clkgen-plls-c32" 22 "st,stih407-plls-c32-a0", "st,clkgen-plls-c32"
23 "st,stih407-plls-c32-a9", "st,clkgen-plls-c32" 23 "st,stih407-plls-c32-a9", "st,clkgen-plls-c32"
24 "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32" 24 "sst,plls-c32-cx_0", "st,clkgen-plls-c32"
25 "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32" 25 "sst,plls-c32-cx_1", "st,clkgen-plls-c32"
26 26
27 "st,stih415-gpu-pll-c32", "st,clkgengpu-pll-c32" 27 "st,stih415-gpu-pll-c32", "st,clkgengpu-pll-c32"
28 "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32" 28 "st,stih416-gpu-pll-c32", "st,clkgengpu-pll-c32"
diff --git a/Documentation/devicetree/bindings/memory-controllers/synopsys.txt b/Documentation/devicetree/bindings/memory-controllers/synopsys.txt
index f9c6454146b6..a43d26d41e04 100644
--- a/Documentation/devicetree/bindings/memory-controllers/synopsys.txt
+++ b/Documentation/devicetree/bindings/memory-controllers/synopsys.txt
@@ -1,5 +1,9 @@
1Binding for Synopsys IntelliDDR Multi Protocol Memory Controller 1Binding for Synopsys IntelliDDR Multi Protocol Memory Controller
2 2
3This controller has an optional ECC support in half-bus width (16-bit)
4configuration. The ECC controller corrects one bit error and detects
5two bit errors.
6
3Required properties: 7Required properties:
4 - compatible: Should be 'xlnx,zynq-ddrc-a05' 8 - compatible: Should be 'xlnx,zynq-ddrc-a05'
5 - reg: Base address and size of the controllers memory area 9 - reg: Base address and size of the controllers memory area
diff --git a/Documentation/devicetree/bindings/pinctrl/fsl,imx6ul-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/fsl,imx6ul-pinctrl.txt
new file mode 100644
index 000000000000..a81bbf37ed66
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/fsl,imx6ul-pinctrl.txt
@@ -0,0 +1,36 @@
1* Freescale i.MX6 UltraLite IOMUX Controller
2
3Please refer to fsl,imx-pinctrl.txt in this directory for common binding part
4and usage.
5
6Required properties:
7- compatible: "fsl,imx6ul-iomuxc"
8- fsl,pins: each entry consists of 6 integers and represents the mux and config
9 setting for one pin. The first 5 integers <mux_reg conf_reg input_reg mux_val
10 input_val> are specified using a PIN_FUNC_ID macro, which can be found in
11 imx6ul-pinfunc.h under device tree source folder. The last integer CONFIG is
12 the pad setting value like pull-up on this pin. Please refer to i.MX6 UltraLite
13 Reference Manual for detailed CONFIG settings.
14
15CONFIG bits definition:
16PAD_CTL_HYS (1 << 16)
17PAD_CTL_PUS_100K_DOWN (0 << 14)
18PAD_CTL_PUS_47K_UP (1 << 14)
19PAD_CTL_PUS_100K_UP (2 << 14)
20PAD_CTL_PUS_22K_UP (3 << 14)
21PAD_CTL_PUE (1 << 13)
22PAD_CTL_PKE (1 << 12)
23PAD_CTL_ODE (1 << 11)
24PAD_CTL_SPEED_LOW (0 << 6)
25PAD_CTL_SPEED_MED (1 << 6)
26PAD_CTL_SPEED_HIGH (3 << 6)
27PAD_CTL_DSE_DISABLE (0 << 3)
28PAD_CTL_DSE_260ohm (1 << 3)
29PAD_CTL_DSE_130ohm (2 << 3)
30PAD_CTL_DSE_87ohm (3 << 3)
31PAD_CTL_DSE_65ohm (4 << 3)
32PAD_CTL_DSE_52ohm (5 << 3)
33PAD_CTL_DSE_43ohm (6 << 3)
34PAD_CTL_DSE_37ohm (7 << 3)
35PAD_CTL_SRE_FAST (1 << 0)
36PAD_CTL_SRE_SLOW (0 << 0)
diff --git a/Documentation/devicetree/bindings/reset/socfpga-reset.txt b/Documentation/devicetree/bindings/reset/socfpga-reset.txt
index 32c1c8bfd5dc..98c9f560e5c5 100644
--- a/Documentation/devicetree/bindings/reset/socfpga-reset.txt
+++ b/Documentation/devicetree/bindings/reset/socfpga-reset.txt
@@ -3,6 +3,7 @@ Altera SOCFPGA Reset Manager
3Required properties: 3Required properties:
4- compatible : "altr,rst-mgr" 4- compatible : "altr,rst-mgr"
5- reg : Should contain 1 register ranges(address and length) 5- reg : Should contain 1 register ranges(address and length)
6- altr,modrst-offset : Should contain the offset of the first modrst register.
6- #reset-cells: 1 7- #reset-cells: 1
7 8
8Example: 9Example:
@@ -10,4 +11,5 @@ Example:
10 #reset-cells = <1>; 11 #reset-cells = <1>;
11 compatible = "altr,rst-mgr"; 12 compatible = "altr,rst-mgr";
12 reg = <0xffd05000 0x1000>; 13 reg = <0xffd05000 0x1000>;
14 altr,modrst-offset = <0x10>;
13 }; 15 };
diff --git a/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt b/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt
index 34c1505774bf..5d3791e789c6 100644
--- a/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt
+++ b/Documentation/devicetree/bindings/rtc/atmel,at91rm9200-rtc.txt
@@ -5,6 +5,7 @@ Required properties:
5- reg: physical base address of the controller and length of memory mapped 5- reg: physical base address of the controller and length of memory mapped
6 region. 6 region.
7- interrupts: rtc alarm/event interrupt 7- interrupts: rtc alarm/event interrupt
8- clocks: phandle to input clock.
8 9
9Example: 10Example:
10 11
@@ -12,4 +13,5 @@ rtc@fffffe00 {
12 compatible = "atmel,at91rm9200-rtc"; 13 compatible = "atmel,at91rm9200-rtc";
13 reg = <0xfffffe00 0x100>; 14 reg = <0xfffffe00 0x100>;
14 interrupts = <1 4 7>; 15 interrupts = <1 4 7>;
16 clocks = <&clk32k>;
15}; 17};
diff --git a/Documentation/devicetree/bindings/rtc/rtc-omap.txt b/Documentation/devicetree/bindings/rtc/rtc-omap.txt
index 4ba4dbd34289..43a83668673a 100644
--- a/Documentation/devicetree/bindings/rtc/rtc-omap.txt
+++ b/Documentation/devicetree/bindings/rtc/rtc-omap.txt
@@ -8,6 +8,7 @@ Required properties:
8 Wakeup generation for event Alarm. It can also be 8 Wakeup generation for event Alarm. It can also be
9 used to control an external PMIC via the 9 used to control an external PMIC via the
10 pmic_power_en pin. 10 pmic_power_en pin.
11 - "ti,am4372-rtc" - for RTC IP used similar to that on AM437X SoC family.
11- reg: Address range of rtc register set 12- reg: Address range of rtc register set
12- interrupts: rtc timer, alarm interrupts in order 13- interrupts: rtc timer, alarm interrupts in order
13- interrupt-parent: phandle for the interrupt controller 14- interrupt-parent: phandle for the interrupt controller
diff --git a/Documentation/devicetree/bindings/serial/mtk-uart.txt b/Documentation/devicetree/bindings/serial/mtk-uart.txt
index 8d63f1da07aa..a875997f2062 100644
--- a/Documentation/devicetree/bindings/serial/mtk-uart.txt
+++ b/Documentation/devicetree/bindings/serial/mtk-uart.txt
@@ -7,8 +7,9 @@ Required properties:
7 * "mediatek,mt8173-uart" for MT8173 compatible UARTS 7 * "mediatek,mt8173-uart" for MT8173 compatible UARTS
8 * "mediatek,mt6589-uart" for MT6589 compatible UARTS 8 * "mediatek,mt6589-uart" for MT6589 compatible UARTS
9 * "mediatek,mt6582-uart" for MT6582 compatible UARTS 9 * "mediatek,mt6582-uart" for MT6582 compatible UARTS
10 * "mediatek,mt6580-uart" for MT6580 compatible UARTS
10 * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582, 11 * "mediatek,mt6577-uart" for all compatible UARTS (MT8173, MT6589, MT6582,
11 MT6577) 12 MT6580, MT6577)
12 13
13- reg: The base address of the UART register bank. 14- reg: The base address of the UART register bank.
14 15
diff --git a/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt b/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
index 7c4408ff4b83..53a3029b7589 100644
--- a/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
+++ b/Documentation/devicetree/bindings/timer/mediatek,mtk-timer.txt
@@ -2,7 +2,11 @@ Mediatek MT6577, MT6572 and MT6589 Timers
2--------------------------------------- 2---------------------------------------
3 3
4Required properties: 4Required properties:
5- compatible: Should be "mediatek,mt6577-timer" 5- compatible should contain:
6 * "mediatek,mt6589-timer" for MT6589 compatible timers
7 * "mediatek,mt6580-timer" for MT6580 compatible timers
8 * "mediatek,mt6577-timer" for all compatible timers (MT6589, MT6580,
9 MT6577)
6- reg: Should contain location and length for timers register. 10- reg: Should contain location and length for timers register.
7- clocks: Clocks driving the timer hardware. This list should include two 11- clocks: Clocks driving the timer hardware. This list should include two
8 clocks. The order is system clock and as second clock the RTC clock. 12 clocks. The order is system clock and as second clock the RTC clock.
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index d444757c4d9e..d3fbd1f30eb4 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -46,6 +46,7 @@ chipone ChipOne
46chipspark ChipSPARK 46chipspark ChipSPARK
47chrp Common Hardware Reference Platform 47chrp Common Hardware Reference Platform
48chunghwa Chunghwa Picture Tubes Ltd. 48chunghwa Chunghwa Picture Tubes Ltd.
49ciaa Computadora Industrial Abierta Argentina
49cirrus Cirrus Logic, Inc. 50cirrus Cirrus Logic, Inc.
50cloudengines Cloud Engines, Inc. 51cloudengines Cloud Engines, Inc.
51cnm Chips&Media, Inc. 52cnm Chips&Media, Inc.
@@ -135,6 +136,7 @@ mitsubishi Mitsubishi Electric Corporation
135mosaixtech Mosaix Technologies, Inc. 136mosaixtech Mosaix Technologies, Inc.
136moxa Moxa 137moxa Moxa
137mpl MPL AG 138mpl MPL AG
139msi Micro-Star International Co. Ltd.
138mti Imagination Technologies Ltd. (formerly MIPS Technologies Inc.) 140mti Imagination Technologies Ltd. (formerly MIPS Technologies Inc.)
139mundoreader Mundo Reader S.L. 141mundoreader Mundo Reader S.L.
140murata Murata Manufacturing Co., Ltd. 142murata Murata Manufacturing Co., Ltd.
@@ -143,6 +145,7 @@ national National Semiconductor
143neonode Neonode Inc. 145neonode Neonode Inc.
144netgear NETGEAR 146netgear NETGEAR
145netlogic Broadcom Corporation (formerly NetLogic Microsystems) 147netlogic Broadcom Corporation (formerly NetLogic Microsystems)
148netxeon Shenzhen Netxeon Technology CO., LTD
146newhaven Newhaven Display International 149newhaven Newhaven Display International
147nintendo Nintendo 150nintendo Nintendo
148nokia Nokia 151nokia Nokia
diff --git a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt
index a4d869744f59..86fa6de1019b 100644
--- a/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt
+++ b/Documentation/devicetree/bindings/watchdog/atmel-wdt.txt
@@ -6,6 +6,7 @@ Required properties:
6- compatible: must be "atmel,at91sam9260-wdt". 6- compatible: must be "atmel,at91sam9260-wdt".
7- reg: physical base address of the controller and length of memory mapped 7- reg: physical base address of the controller and length of memory mapped
8 region. 8 region.
9- clocks: phandle to input clock.
9 10
10Optional properties: 11Optional properties:
11- timeout-sec: contains the watchdog timeout in seconds. 12- timeout-sec: contains the watchdog timeout in seconds.
@@ -39,6 +40,7 @@ Example:
39 compatible = "atmel,at91sam9260-wdt"; 40 compatible = "atmel,at91sam9260-wdt";
40 reg = <0xfffffd40 0x10>; 41 reg = <0xfffffd40 0x10>;
41 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 42 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
43 clocks = <&clk32k>;
42 timeout-sec = <15>; 44 timeout-sec = <15>;
43 atmel,watchdog-type = "hardware"; 45 atmel,watchdog-type = "hardware";
44 atmel,reset-type = "all"; 46 atmel,reset-type = "all";
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 917aa318929d..233159d2eaab 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -41,6 +41,7 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \
41 at91sam9x35ek.dtb 41 at91sam9x35ek.dtb
42dtb-$(CONFIG_SOC_SAM_V7) += \ 42dtb-$(CONFIG_SOC_SAM_V7) += \
43 at91-kizbox2.dtb \ 43 at91-kizbox2.dtb \
44 at91-sama5d2_xplained.dtb \
44 at91-sama5d3_xplained.dtb \ 45 at91-sama5d3_xplained.dtb \
45 sama5d31ek.dtb \ 46 sama5d31ek.dtb \
46 sama5d33ek.dtb \ 47 sama5d33ek.dtb \
@@ -176,6 +177,8 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
176 kirkwood-km_kirkwood.dtb \ 177 kirkwood-km_kirkwood.dtb \
177 kirkwood-laplug.dtb \ 178 kirkwood-laplug.dtb \
178 kirkwood-lschlv2.dtb \ 179 kirkwood-lschlv2.dtb \
180 kirkwood-lswvl.dtb \
181 kirkwood-lswxl.dtb \
179 kirkwood-lsxhl.dtb \ 182 kirkwood-lsxhl.dtb \
180 kirkwood-mplcec4.dtb \ 183 kirkwood-mplcec4.dtb \
181 kirkwood-mv88f6281gtw-ge.dtb \ 184 kirkwood-mv88f6281gtw-ge.dtb \
@@ -211,6 +214,7 @@ dtb-$(CONFIG_MACH_KIRKWOOD) += \
211 kirkwood-ts419-6281.dtb \ 214 kirkwood-ts419-6281.dtb \
212 kirkwood-ts419-6282.dtb 215 kirkwood-ts419-6282.dtb
213dtb-$(CONFIG_ARCH_LPC18XX) += \ 216dtb-$(CONFIG_ARCH_LPC18XX) += \
217 lpc4337-ciaa.dtb \
214 lpc4350-hitex-eval.dtb \ 218 lpc4350-hitex-eval.dtb \
215 lpc4357-ea4357-devkit.dtb 219 lpc4357-ea4357-devkit.dtb
216dtb-$(CONFIG_ARCH_LPC32XX) += \ 220dtb-$(CONFIG_ARCH_LPC32XX) += \
@@ -331,6 +335,8 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
331 imx6sx-sabreauto.dtb \ 335 imx6sx-sabreauto.dtb \
332 imx6sx-sdb-reva.dtb \ 336 imx6sx-sdb-reva.dtb \
333 imx6sx-sdb.dtb 337 imx6sx-sdb.dtb
338dtb-$(CONFIG_SOC_IMX6UL) += \
339 imx6ul-14x14-evk.dtb
334dtb-$(CONFIG_SOC_IMX7D) += \ 340dtb-$(CONFIG_SOC_IMX7D) += \
335 imx7d-sdb.dtb 341 imx7d-sdb.dtb
336dtb-$(CONFIG_SOC_LS1021A) += \ 342dtb-$(CONFIG_SOC_LS1021A) += \
@@ -390,6 +396,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
390 omap3-cm-t3530.dtb \ 396 omap3-cm-t3530.dtb \
391 omap3-cm-t3730.dtb \ 397 omap3-cm-t3730.dtb \
392 omap3-devkit8000.dtb \ 398 omap3-devkit8000.dtb \
399 omap3-devkit8000-lcd43.dtb \
400 omap3-devkit8000-lcd70.dtb \
393 omap3-evm.dtb \ 401 omap3-evm.dtb \
394 omap3-evm-37xx.dtb \ 402 omap3-evm-37xx.dtb \
395 omap3-gta04a3.dtb \ 403 omap3-gta04a3.dtb \
@@ -409,15 +417,19 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
409 omap3-overo-alto35.dtb \ 417 omap3-overo-alto35.dtb \
410 omap3-overo-chestnut43.dtb \ 418 omap3-overo-chestnut43.dtb \
411 omap3-overo-gallop43.dtb \ 419 omap3-overo-gallop43.dtb \
420 omap3-overo-palo35.dtb \
412 omap3-overo-palo43.dtb \ 421 omap3-overo-palo43.dtb \
413 omap3-overo-storm-alto35.dtb \ 422 omap3-overo-storm-alto35.dtb \
414 omap3-overo-storm-chestnut43.dtb \ 423 omap3-overo-storm-chestnut43.dtb \
415 omap3-overo-storm-gallop43.dtb \ 424 omap3-overo-storm-gallop43.dtb \
425 omap3-overo-storm-palo35.dtb \
416 omap3-overo-storm-palo43.dtb \ 426 omap3-overo-storm-palo43.dtb \
417 omap3-overo-storm-summit.dtb \ 427 omap3-overo-storm-summit.dtb \
418 omap3-overo-storm-tobi.dtb \ 428 omap3-overo-storm-tobi.dtb \
429 omap3-overo-storm-tobiduo.dtb \
419 omap3-overo-summit.dtb \ 430 omap3-overo-summit.dtb \
420 omap3-overo-tobi.dtb \ 431 omap3-overo-tobi.dtb \
432 omap3-overo-tobiduo.dtb \
421 omap3-pandora-600mhz.dtb \ 433 omap3-pandora-600mhz.dtb \
422 omap3-pandora-1ghz.dtb \ 434 omap3-pandora-1ghz.dtb \
423 omap3-sbc-t3517.dtb \ 435 omap3-sbc-t3517.dtb \
@@ -426,6 +438,8 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
426 omap3-thunder.dtb \ 438 omap3-thunder.dtb \
427 omap3-zoom3.dtb 439 omap3-zoom3.dtb
428dtb-$(CONFIG_SOC_TI81XX) += \ 440dtb-$(CONFIG_SOC_TI81XX) += \
441 dm8148-evm.dtb \
442 dm8148-t410.dtb \
429 dm8168-evm.dtb 443 dm8168-evm.dtb
430dtb-$(CONFIG_SOC_AM33XX) += \ 444dtb-$(CONFIG_SOC_AM33XX) += \
431 am335x-baltos-ir5221.dtb \ 445 am335x-baltos-ir5221.dtb \
@@ -438,7 +452,8 @@ dtb-$(CONFIG_SOC_AM33XX) += \
438 am335x-nano.dtb \ 452 am335x-nano.dtb \
439 am335x-pepper.dtb \ 453 am335x-pepper.dtb \
440 am335x-lxm.dtb \ 454 am335x-lxm.dtb \
441 am335x-chiliboard.dtb 455 am335x-chiliboard.dtb \
456 am335x-wega-rdk.dtb
442dtb-$(CONFIG_ARCH_OMAP4) += \ 457dtb-$(CONFIG_ARCH_OMAP4) += \
443 omap4-duovero-parlor.dtb \ 458 omap4-duovero-parlor.dtb \
444 omap4-panda.dtb \ 459 omap4-panda.dtb \
@@ -464,6 +479,8 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
464dtb-$(CONFIG_ARCH_ORION5X) += \ 479dtb-$(CONFIG_ARCH_ORION5X) += \
465 orion5x-lacie-d2-network.dtb \ 480 orion5x-lacie-d2-network.dtb \
466 orion5x-lacie-ethernet-disk-mini-v2.dtb \ 481 orion5x-lacie-ethernet-disk-mini-v2.dtb \
482 orion5x-linkstation-lswtgl.dtb \
483 orion5x-lswsgl.dtb \
467 orion5x-maxtor-shared-storage-2.dtb \ 484 orion5x-maxtor-shared-storage-2.dtb \
468 orion5x-rd88f5182-nas.dtb 485 orion5x-rd88f5182-nas.dtb
469dtb-$(CONFIG_ARCH_PRIMA2) += \ 486dtb-$(CONFIG_ARCH_PRIMA2) += \
@@ -488,7 +505,12 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
488 rk3288-evb-act8846.dtb \ 505 rk3288-evb-act8846.dtb \
489 rk3288-evb-rk808.dtb \ 506 rk3288-evb-rk808.dtb \
490 rk3288-firefly-beta.dtb \ 507 rk3288-firefly-beta.dtb \
491 rk3288-firefly.dtb 508 rk3288-firefly.dtb \
509 rk3288-r89.dtb \
510 rk3288-veyron-jerry.dtb \
511 rk3288-veyron-minnie.dtb \
512 rk3288-veyron-pinky.dtb \
513 rk3288-veyron-speedy.dtb
492dtb-$(CONFIG_ARCH_S3C24XX) += \ 514dtb-$(CONFIG_ARCH_S3C24XX) += \
493 s3c2416-smdk2416.dtb 515 s3c2416-smdk2416.dtb
494dtb-$(CONFIG_ARCH_S3C64XX) += \ 516dtb-$(CONFIG_ARCH_S3C64XX) += \
@@ -513,12 +535,15 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
513 r8a7790-lager.dtb \ 535 r8a7790-lager.dtb \
514 r8a7791-henninger.dtb \ 536 r8a7791-henninger.dtb \
515 r8a7791-koelsch.dtb \ 537 r8a7791-koelsch.dtb \
538 r8a7793-gose.dtb \
516 r8a7794-alt.dtb \ 539 r8a7794-alt.dtb \
540 r8a7794-silk.dtb \
517 sh73a0-kzm9g.dtb 541 sh73a0-kzm9g.dtb
518dtb-$(CONFIG_ARCH_SOCFPGA) += \ 542dtb-$(CONFIG_ARCH_SOCFPGA) += \
519 socfpga_arria5_socdk.dtb \ 543 socfpga_arria5_socdk.dtb \
520 socfpga_arria10_socdk_sdmmc.dtb \ 544 socfpga_arria10_socdk_sdmmc.dtb \
521 socfpga_cyclone5_socdk.dtb \ 545 socfpga_cyclone5_socdk.dtb \
546 socfpga_cyclone5_de0_sockit.dtb \
522 socfpga_cyclone5_sockit.dtb \ 547 socfpga_cyclone5_sockit.dtb \
523 socfpga_cyclone5_socrates.dtb \ 548 socfpga_cyclone5_socrates.dtb \
524 socfpga_vt.dtb 549 socfpga_vt.dtb
@@ -541,7 +566,9 @@ dtb-$(CONFIG_ARCH_STI) += \
541 stih416-b2020.dtb \ 566 stih416-b2020.dtb \
542 stih416-b2020e.dtb \ 567 stih416-b2020e.dtb \
543 stih418-b2199.dtb 568 stih418-b2199.dtb
544dtb-$(CONFIG_ARCH_STM32)+= stm32f429-disco.dtb 569dtb-$(CONFIG_ARCH_STM32)+= \
570 stm32f429-disco.dtb \
571 stm32429i-eval.dtb
545dtb-$(CONFIG_MACH_SUN4I) += \ 572dtb-$(CONFIG_MACH_SUN4I) += \
546 sun4i-a10-a1000.dtb \ 573 sun4i-a10-a1000.dtb \
547 sun4i-a10-ba10-tvbox.dtb \ 574 sun4i-a10-ba10-tvbox.dtb \
@@ -551,6 +578,7 @@ dtb-$(CONFIG_MACH_SUN4I) += \
551 sun4i-a10-hackberry.dtb \ 578 sun4i-a10-hackberry.dtb \
552 sun4i-a10-hyundai-a7hd.dtb \ 579 sun4i-a10-hyundai-a7hd.dtb \
553 sun4i-a10-inet97fv2.dtb \ 580 sun4i-a10-inet97fv2.dtb \
581 sun4i-a10-itead-iteaduino-plus.dts \
554 sun4i-a10-jesurun-q5.dtb \ 582 sun4i-a10-jesurun-q5.dtb \
555 sun4i-a10-marsboard.dtb \ 583 sun4i-a10-marsboard.dtb \
556 sun4i-a10-mini-xplus.dtb \ 584 sun4i-a10-mini-xplus.dtb \
@@ -598,6 +626,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
598 sun8i-a23-ippo-q8h-v1.2.dtb \ 626 sun8i-a23-ippo-q8h-v1.2.dtb \
599 sun8i-a33-et-q8-v1.6.dtb \ 627 sun8i-a33-et-q8-v1.6.dtb \
600 sun8i-a33-ga10h-v1.1.dtb \ 628 sun8i-a33-ga10h-v1.1.dtb \
629 sun8i-a33-ippo-q8h-v1.2.dtb \
601 sun8i-a33-sinlinx-sina33.dtb 630 sun8i-a33-sinlinx-sina33.dtb
602dtb-$(CONFIG_MACH_SUN9I) += \ 631dtb-$(CONFIG_MACH_SUN9I) += \
603 sun9i-a80-optimus.dtb \ 632 sun9i-a80-optimus.dtb \
@@ -639,10 +668,11 @@ dtb-$(CONFIG_ARCH_U8500) += \
639 ste-ccu8540.dtb \ 668 ste-ccu8540.dtb \
640 ste-ccu9540.dtb 669 ste-ccu9540.dtb
641dtb-$(CONFIG_ARCH_UNIPHIER) += \ 670dtb-$(CONFIG_ARCH_UNIPHIER) += \
642 uniphier-ph1-sld3-ref.dtb \
643 uniphier-ph1-ld4-ref.dtb \ 671 uniphier-ph1-ld4-ref.dtb \
672 uniphier-ph1-ld6b-ref.dtb \
644 uniphier-ph1-pro4-ref.dtb \ 673 uniphier-ph1-pro4-ref.dtb \
645 uniphier-ph1-sld8-ref.dtb 674 uniphier-ph1-sld3-ref.dtb \
675 uniphier-ph1-sld8-ref.dtb
646dtb-$(CONFIG_ARCH_VERSATILE) += \ 676dtb-$(CONFIG_ARCH_VERSATILE) += \
647 versatile-ab.dtb \ 677 versatile-ab.dtb \
648 versatile-pb.dtb 678 versatile-pb.dtb
@@ -702,6 +732,7 @@ dtb-$(CONFIG_MACH_DOVE) += \
702 dove-dove-db.dtb \ 732 dove-dove-db.dtb \
703 dove-sbc-a510.dtb 733 dove-sbc-a510.dtb
704dtb-$(CONFIG_ARCH_MEDIATEK) += \ 734dtb-$(CONFIG_ARCH_MEDIATEK) += \
735 mt6580-evbp1.dtb \
705 mt6589-aquaris5.dtb \ 736 mt6589-aquaris5.dtb \
706 mt6592-evb.dtb \ 737 mt6592-evb.dtb \
707 mt8127-moose.dtb \ 738 mt8127-moose.dtb \
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index 5c42d259fa68..eadbba32386d 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -68,16 +68,26 @@
68 68
69&lcdc { 69&lcdc {
70 status = "okay"; 70 status = "okay";
71 port {
72 lcdc_0: endpoint@0 {
73 remote-endpoint = <&hdmi_0>;
74 };
75 };
71}; 76};
72 77
73/ { 78&i2c0 {
74 hdmi { 79 tda19988 {
75 compatible = "ti,tilcdc,slave"; 80 compatible = "nxp,tda998x";
76 i2c = <&i2c0>; 81 reg = <0x70>;
77 pinctrl-names = "default", "off"; 82 pinctrl-names = "default", "off";
78 pinctrl-0 = <&nxp_hdmi_bonelt_pins>; 83 pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
79 pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>; 84 pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
80 status = "okay"; 85
86 port {
87 hdmi_0: endpoint@0 {
88 remote-endpoint = <&lcdc_0>;
89 };
90 };
81 }; 91 };
82}; 92};
83 93
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 765be2766eb0..1942a5c8132d 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -136,16 +136,29 @@
136 }; 136 };
137 137
138 sound { 138 sound {
139 compatible = "ti,da830-evm-audio"; 139 compatible = "simple-audio-card";
140 ti,model = "AM335x-EVM"; 140 simple-audio-card,name = "AM335x-EVM";
141 ti,audio-codec = <&tlv320aic3106>; 141 simple-audio-card,widgets =
142 ti,mcasp-controller = <&mcasp1>; 142 "Headphone", "Headphone Jack",
143 ti,codec-clock-rate = <12000000>; 143 "Line", "Line In";
144 ti,audio-routing = 144 simple-audio-card,routing =
145 "Headphone Jack", "HPLOUT", 145 "Headphone Jack", "HPLOUT",
146 "Headphone Jack", "HPROUT", 146 "Headphone Jack", "HPROUT",
147 "LINE1L", "Line In", 147 "LINE1L", "Line In",
148 "LINE1R", "Line In"; 148 "LINE1R", "Line In";
149 simple-audio-card,format = "dsp_b";
150 simple-audio-card,bitclock-master = <&sound_master>;
151 simple-audio-card,frame-master = <&sound_master>;
152 simple-audio-card,bitclock-inversion;
153
154 simple-audio-card,cpu {
155 sound-dai = <&mcasp1>;
156 };
157
158 sound_master: simple-audio-card,codec {
159 sound-dai = <&tlv320aic3106>;
160 system-clock-frequency = <12000000>;
161 };
149 }; 162 };
150}; 163};
151 164
@@ -342,7 +355,7 @@
342 >; 355 >;
343 }; 356 };
344 357
345 am335x_evm_audio_pins: am335x_evm_audio_pins { 358 mcasp1_pins: mcasp1_pins {
346 pinctrl-single,pins = < 359 pinctrl-single,pins = <
347 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */ 360 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
348 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */ 361 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
@@ -351,6 +364,15 @@
351 >; 364 >;
352 }; 365 };
353 366
367 mcasp1_pins_sleep: mcasp1_pins_sleep {
368 pinctrl-single,pins = <
369 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
370 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
371 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
372 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
373 >;
374 };
375
354 dcan1_pins_default: dcan1_pins_default { 376 dcan1_pins_default: dcan1_pins_default {
355 pinctrl-single,pins = < 377 pinctrl-single,pins = <
356 0x168 (PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */ 378 0x168 (PIN_OUTPUT | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
@@ -460,6 +482,7 @@
460 }; 482 };
461 483
462 tlv320aic3106: tlv320aic3106@1b { 484 tlv320aic3106: tlv320aic3106@1b {
485 #sound-dai-cells = <0>;
463 compatible = "ti,tlv320aic3106"; 486 compatible = "ti,tlv320aic3106";
464 reg = <0x1b>; 487 reg = <0x1b>;
465 status = "okay"; 488 status = "okay";
@@ -575,19 +598,21 @@
575#include "tps65910.dtsi" 598#include "tps65910.dtsi"
576 599
577&mcasp1 { 600&mcasp1 {
578 pinctrl-names = "default"; 601 #sound-dai-cells = <0>;
579 pinctrl-0 = <&am335x_evm_audio_pins>; 602 pinctrl-names = "default", "sleep";
603 pinctrl-0 = <&mcasp1_pins>;
604 pinctrl-1 = <&mcasp1_pins_sleep>;
580 605
581 status = "okay"; 606 status = "okay";
582 607
583 op-mode = <0>; /* MCASP_IIS_MODE */ 608 op-mode = <0>; /* MCASP_IIS_MODE */
584 tdm-slots = <2>; 609 tdm-slots = <2>;
585 /* 4 serializers */ 610 /* 4 serializers */
586 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 611 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
587 0 0 1 2 612 0 0 1 2
588 >; 613 >;
589 tx-num-evt = <32>; 614 tx-num-evt = <32>;
590 rx-num-evt = <32>; 615 rx-num-evt = <32>;
591}; 616};
592 617
593&tps { 618&tps {
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 156d05efcb70..315bb02c9920 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -141,14 +141,26 @@
141 }; 141 };
142 142
143 sound { 143 sound {
144 compatible = "ti,da830-evm-audio"; 144 compatible = "simple-audio-card";
145 ti,model = "AM335x-EVMSK"; 145 simple-audio-card,name = "AM335x-EVMSK";
146 ti,audio-codec = <&tlv320aic3106>; 146 simple-audio-card,widgets =
147 ti,mcasp-controller = <&mcasp1>; 147 "Headphone", "Headphone Jack";
148 ti,codec-clock-rate = <24000000>; 148 simple-audio-card,routing =
149 ti,audio-routing = 149 "Headphone Jack", "HPLOUT",
150 "Headphone Jack", "HPLOUT", 150 "Headphone Jack", "HPROUT";
151 "Headphone Jack", "HPROUT"; 151 simple-audio-card,format = "dsp_b";
152 simple-audio-card,bitclock-master = <&sound_master>;
153 simple-audio-card,frame-master = <&sound_master>;
154 simple-audio-card,bitclock-inversion;
155
156 simple-audio-card,cpu {
157 sound-dai = <&mcasp1>;
158 };
159
160 sound_master: simple-audio-card,codec {
161 sound-dai = <&tlv320aic3106>;
162 system-clock-frequency = <24000000>;
163 };
152 }; 164 };
153 165
154 panel { 166 panel {
@@ -396,6 +408,15 @@
396 >; 408 >;
397 }; 409 };
398 410
411 mcasp1_pins_sleep: mcasp1_pins_sleep {
412 pinctrl-single,pins = <
413 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
414 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
415 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
416 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
417 >;
418 };
419
399 mmc2_pins: pinmux_mmc2_pins { 420 mmc2_pins: pinmux_mmc2_pins {
400 pinctrl-single,pins = < 421 pinctrl-single,pins = <
401 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */ 422 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_31 */
@@ -462,6 +483,7 @@
462 }; 483 };
463 484
464 tlv320aic3106: tlv320aic3106@1b { 485 tlv320aic3106: tlv320aic3106@1b {
486 #sound-dai-cells = <0>;
465 compatible = "ti,tlv320aic3106"; 487 compatible = "ti,tlv320aic3106";
466 reg = <0x1b>; 488 reg = <0x1b>;
467 status = "okay"; 489 status = "okay";
@@ -661,19 +683,21 @@
661}; 683};
662 684
663&mcasp1 { 685&mcasp1 {
664 pinctrl-names = "default"; 686 #sound-dai-cells = <0>;
665 pinctrl-0 = <&mcasp1_pins>; 687 pinctrl-names = "default", "sleep";
688 pinctrl-0 = <&mcasp1_pins>;
689 pinctrl-1 = <&mcasp1_pins_sleep>;
666 690
667 status = "okay"; 691 status = "okay";
668 692
669 op-mode = <0>; /* MCASP_IIS_MODE */ 693 op-mode = <0>; /* MCASP_IIS_MODE */
670 tdm-slots = <2>; 694 tdm-slots = <2>;
671 /* 4 serializers */ 695 /* 4 serializers */
672 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 696 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
673 0 0 1 2 697 0 0 1 2
674 >; 698 >;
675 tx-num-evt = <32>; 699 tx-num-evt = <32>;
676 rx-num-evt = <32>; 700 rx-num-evt = <32>;
677}; 701};
678 702
679&tscadc { 703&tscadc {
diff --git a/arch/arm/boot/dts/am335x-phycore-som.dtsi b/arch/arm/boot/dts/am335x-phycore-som.dtsi
new file mode 100644
index 000000000000..4d28fc3aac69
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-phycore-som.dtsi
@@ -0,0 +1,368 @@
1/*
2 * Copyright (C) 2015 Phytec Messtechnik GmbH
3 * Author: Teresa Remmet <t.remmet@phytec.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10#include "am33xx.dtsi"
11
12/ {
13 model = "Phytec AM335x phyCORE";
14 compatible = "phytec,am335x-phycore-som", "ti,am33xx";
15
16 aliases {
17 rtc0 = &i2c_rtc;
18 rtc1 = &rtc;
19 };
20
21 cpus {
22 cpu@0 {
23 cpu0-supply = <&vdd1_reg>;
24 };
25 };
26
27 memory {
28 device_type = "memory";
29 reg = <0x80000000 0x10000000>; /* 256 MB */
30 };
31
32 vbat: fixedregulator@0 {
33 compatible = "regulator-fixed";
34 };
35};
36
37/* Crypto Module */
38&aes {
39 status = "okay";
40};
41
42&sham {
43 status = "okay";
44};
45
46/* Ethernet */
47&am33xx_pinmux {
48 ethernet0_pins: pinmux_ethernet0 {
49 pinctrl-single,pins = <
50 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
51 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
52 0x114 (PIN_OUTPUT | MUX_MODE1) /* mii1_txen.rmii1_txen */
53 0x124 (PIN_OUTPUT | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
54 0x128 (PIN_OUTPUT | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
55 0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
56 0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
57 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */
58 >;
59 };
60
61 mdio_pins: pinmux_mdio {
62 pinctrl-single,pins = <
63 /* MDIO */
64 0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
65 0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
66 >;
67 };
68};
69
70&cpsw_emac0 {
71 phy_id = <&davinci_mdio>, <0>;
72 phy-mode = "rmii";
73 dual_emac_res_vlan = <1>;
74};
75
76&davinci_mdio {
77 pinctrl-names = "default";
78 pinctrl-0 = <&mdio_pins>;
79 status = "okay";
80};
81
82&mac {
83 slaves = <1>;
84 pinctrl-names = "default";
85 pinctrl-0 = <&ethernet0_pins>;
86 status = "okay";
87};
88
89&phy_sel {
90 rmii-clock-ext;
91};
92
93/* I2C Busses */
94&am33xx_pinmux {
95 i2c0_pins: pinmux_i2c0 {
96 pinctrl-single,pins = <
97 0x188 (PIN_INPUT | MUX_MODE0) /* i2c0_sda.i2c0_sda */
98 0x18c (PIN_INPUT | MUX_MODE0) /* i2c0_scl.i2c0_scl */
99 >;
100 };
101};
102
103&i2c0 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&i2c0_pins>;
106 clock-frequency = <400000>;
107 status = "okay";
108
109 tps: pmic@2d {
110 reg = <0x2d>;
111 };
112
113 i2c_eeprom: eeprom@52 {
114 compatible = "atmel,24c32";
115 pagesize = <32>;
116 reg = <0x52>;
117 status = "disabled";
118 };
119
120 i2c_rtc: rtc@68 {
121 compatible = "rv4162";
122 reg = <0x68>;
123 status = "disabled";
124 };
125};
126
127/* NAND memory */
128&am33xx_pinmux {
129 nandflash_pins: pinmux_nandflash {
130 pinctrl-single,pins = <
131 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
132 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
133 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
134 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
135 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
136 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
137 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
138 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
139 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
140 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
141 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
142 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
143 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
144 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
145 >;
146 };
147};
148
149&elm {
150 status = "okay";
151};
152
153&gpmc {
154 status = "okay";
155 pinctrl-names = "default";
156 pinctrl-0 = <&nandflash_pins>;
157 ranges = <0 0 0x08000000 0x1000000>; /* CS0: NAND */
158 nandflash: nand@0,0 {
159 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
160 nand-bus-width = <8>;
161 ti,nand-ecc-opt = "bch8";
162 gpmc,device-nand = "true";
163 gpmc,device-width = <1>;
164 gpmc,sync-clk-ps = <0>;
165 gpmc,cs-on-ns = <0>;
166 gpmc,cs-rd-off-ns = <30>;
167 gpmc,cs-wr-off-ns = <30>;
168 gpmc,adv-on-ns = <0>;
169 gpmc,adv-rd-off-ns = <30>;
170 gpmc,adv-wr-off-ns = <30>;
171 gpmc,we-on-ns = <0>;
172 gpmc,we-off-ns = <20>;
173 gpmc,oe-on-ns = <10>;
174 gpmc,oe-off-ns = <30>;
175 gpmc,access-ns = <30>;
176 gpmc,rd-cycle-ns = <30>;
177 gpmc,wr-cycle-ns = <30>;
178 gpmc,wait-on-read = "true";
179 gpmc,wait-on-write = "true";
180 gpmc,bus-turnaround-ns = <0>;
181 gpmc,cycle2cycle-delay-ns = <50>;
182 gpmc,cycle2cycle-diffcsen;
183 gpmc,clk-activation-ns = <0>;
184 gpmc,wait-monitoring-ns = <0>;
185 gpmc,wr-access-ns = <30>;
186 gpmc,wr-data-mux-bus-ns = <0>;
187
188 elm_id = <&elm>;
189
190 #address-cells = <1>;
191 #size-cells = <1>;
192
193 partition@0 {
194 label = "xload";
195 reg = <0x0 0x20000>;
196 };
197 partition@1 {
198 label = "xload_backup1";
199 reg = <0x20000 0x20000>;
200 };
201 partition@2 {
202 label = "xload_backup2";
203 reg = <0x40000 0x20000>;
204 };
205 partition@3 {
206 label = "xload_backup3";
207 reg = <0x60000 0x20000>;
208 };
209 partition@4 {
210 label = "barebox";
211 reg = <0x80000 0x80000>;
212 };
213 partition@5 {
214 label = "bareboxenv";
215 reg = <0x100000 0x40000>;
216 };
217 partition@6 {
218 label = "oftree";
219 reg = <0x140000 0x40000>;
220 };
221 partition@7 {
222 label = "kernel";
223 reg = <0x180000 0x800000>;
224 };
225 partition@8 {
226 label = "root";
227 reg = <0x980000 0x0>;
228 };
229 };
230};
231
232/* Power */
233#include "tps65910.dtsi"
234
235&tps {
236 vcc1-supply = <&vbat>;
237 vcc2-supply = <&vbat>;
238 vcc3-supply = <&vbat>;
239 vcc4-supply = <&vbat>;
240 vcc5-supply = <&vbat>;
241 vcc6-supply = <&vbat>;
242 vcc7-supply = <&vbat>;
243 vccio-supply = <&vbat>;
244
245 regulators {
246 vrtc_reg: regulator@0 {
247 regulator-always-on;
248 };
249
250 vio_reg: regulator@1 {
251 regulator-always-on;
252 };
253
254 vdd1_reg: regulator@2 {
255 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
256 regulator-name = "vdd_mpu";
257 regulator-min-microvolt = <912500>;
258 regulator-max-microvolt = <1312500>;
259 regulator-boot-on;
260 regulator-always-on;
261 };
262
263 vdd2_reg: regulator@3 {
264 /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
265 regulator-name = "vdd_core";
266 regulator-min-microvolt = <912500>;
267 regulator-max-microvolt = <1150000>;
268 regulator-boot-on;
269 regulator-always-on;
270 };
271
272 vdd3_reg: regulator@4 {
273 regulator-always-on;
274 };
275
276 vdig1_reg: regulator@5 {
277 regulator-name = "vdig1_1p8v";
278 regulator-min-microvolt = <1800000>;
279 regulator-max-microvolt = <1800000>;
280 };
281
282 vdig2_reg: regulator@6 {
283 regulator-always-on;
284 };
285
286 vpll_reg: regulator@7 {
287 regulator-always-on;
288 };
289
290 vdac_reg: regulator@8 {
291 regulator-always-on;
292 };
293
294 vaux1_reg: regulator@9 {
295 regulator-always-on;
296 };
297
298 vaux2_reg: regulator@10 {
299 regulator-always-on;
300 };
301
302 vaux33_reg: regulator@11 {
303 regulator-always-on;
304 };
305
306 vmmc_reg: regulator@12 {
307 regulator-min-microvolt = <3300000>;
308 regulator-max-microvolt = <3300000>;
309 regulator-always-on;
310 };
311 };
312};
313
314&vbat {
315 regulator-name = "vbat";
316 regulator-min-microvolt = <5000000>;
317 regulator-max-microvolt = <5000000>;
318 regulator-boot-on;
319};
320
321/* SPI Busses */
322&am33xx_pinmux {
323 spi0_pins: pinmux_spi0 {
324 pinctrl-single,pins = <
325 0x150 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_clk.spi0_clk */
326 0x154 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* spi0_d0.spi0_d0 */
327 0x158 (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */
328 0x15c (PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
329 >;
330 };
331};
332
333&spi0 {
334 pinctrl-names = "default";
335 pinctrl-0 = <&spi0_pins>;
336 status = "okay";
337
338 serial_flash: m25p80@0 {
339 compatible = "m25p80";
340 spi-max-frequency = <48000000>;
341 reg = <0x0>;
342 m25p,fast-read;
343 status = "disabled";
344 #address-cells = <1>;
345 #size-cells = <1>;
346
347 partition@0 {
348 label = "xload";
349 reg = <0x0 0x20000>;
350 };
351 partition@1 {
352 label = "barebox";
353 reg = <0x20000 0x80000>;
354 };
355 partition@2 {
356 label = "bareboxenv";
357 reg = <0xa0000 0x20000>;
358 };
359 partition@3 {
360 label = "oftree";
361 reg = <0xc0000 0x20000>;
362 };
363 partition@4 {
364 label = "kernel";
365 reg = <0xe0000 0x0>;
366 };
367 };
368};
diff --git a/arch/arm/boot/dts/am335x-wega-rdk.dts b/arch/arm/boot/dts/am335x-wega-rdk.dts
new file mode 100644
index 000000000000..6431b7db8109
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-wega-rdk.dts
@@ -0,0 +1,22 @@
1/*
2 * Copyright (C) 2015 Phytec Messtechnik GmbH
3 * Author: Teresa Remmet <t.remmet@phytec.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10/dts-v1/;
11
12#include "am335x-phycore-som.dtsi"
13#include "am335x-wega.dtsi"
14
15/* SoM */
16&i2c_eeprom {
17 status = "okay";
18};
19
20&i2c_rtc {
21 status = "okay";
22};
diff --git a/arch/arm/boot/dts/am335x-wega.dtsi b/arch/arm/boot/dts/am335x-wega.dtsi
new file mode 100644
index 000000000000..5e541bd1b45a
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-wega.dtsi
@@ -0,0 +1,151 @@
1/*
2 * Copyright (C) 2015 Phytec Messtechnik GmbH
3 * Author: Teresa Remmet <t.remmet@phytec.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */
9
10/ {
11 model = "Phytec AM335x phyBOARD-WEGA";
12 compatible = "phytec,am335x-wega", "phytec,am335x-phycore-som", "ti,am33xx";
13
14};
15
16/* CAN Busses */
17&am33xx_pinmux {
18 dcan1_pins: pinmux_dcan1 {
19 pinctrl-single,pins = <
20 0x168 (PIN_OUTPUT_PULLUP | MUX_MODE2) /* uart0_ctsn.d_can1_tx */
21 0x16c (PIN_INPUT_PULLUP | MUX_MODE2) /* uart0_rtsn.d_can1_rx */
22 >;
23 };
24};
25
26&dcan1 {
27 pinctrl-names = "default";
28 pinctrl-0 = <&dcan1_pins>;
29 status = "okay";
30};
31
32/* Ethernet */
33&am33xx_pinmux {
34 ethernet1_pins: pinmux_ethernet1 {
35 pinctrl-single,pins = <
36 0x40 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a0.mii2_txen */
37 0x44 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a1.mii2_rxdv */
38 0x48 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a2.mii2_txd3 */
39 0x4c (PIN_OUTPUT | MUX_MODE1) /* gpmc_a3.mii2_txd2 */
40 0x50 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a4.mii2_txd1 */
41 0x54 (PIN_OUTPUT | MUX_MODE1) /* gpmc_a5.mii2_txd0 */
42 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a6.mii2_txclk */
43 0x5c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a7.mii2_rxclk */
44 0x60 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a8.mii2_rxd3 */
45 0x64 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a9.mii2_rxd2 */
46 0x68 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a10.mii2_rxd1 */
47 0x6c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_a11.mii2_rxd0 */
48 0x74 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_wpn.mii2_rxerr */
49 0x78 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* gpmc_ben1.mii2_col */
50 >;
51 };
52};
53
54&cpsw_emac1 {
55 phy_id = <&davinci_mdio>, <1>;
56 phy-mode = "mii";
57 dual_emac_res_vlan = <2>;
58};
59
60&mac {
61 slaves = <2>;
62 pinctrl-names = "default";
63 pinctrl-0 = <&ethernet0_pins &ethernet1_pins>;
64 dual_emac = <1>;
65};
66
67/* MMC */
68&am33xx_pinmux {
69 mmc1_pins: pinmux_mmc1 {
70 pinctrl-single,pins = <
71 0x0F0 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
72 0x0F4 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
73 0x0F8 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
74 0x0FC (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
75 0x100 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */
76 0x104 (PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
77 0x160 (PIN_INPUT_PULLUP | MUX_MODE7) /* spi0_cs1.mmc0_sdcd */
78 >;
79 };
80};
81
82&mmc1 {
83 vmmc-supply = <&vmmc_reg>;
84 bus-width = <4>;
85 pinctrl-names = "default";
86 pinctrl-0 = <&mmc1_pins>;
87 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
88 status = "okay";
89};
90
91/* UARTs */
92&am33xx_pinmux {
93 uart0_pins: pinmux_uart0 {
94 pinctrl-single,pins = <
95 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
96 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
97 >;
98 };
99
100 uart1_pins: pinmux_uart1_pins {
101 pinctrl-single,pins = <
102 0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
103 0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
104 0x178 (PIN_INPUT | MUX_MODE0) /* uart1_ctsn.uart1_ctsn */
105 0x17c (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
106 >;
107 };
108};
109
110&uart0 {
111 pinctrl-names = "default";
112 pinctrl-0 = <&uart0_pins>;
113 status = "okay";
114};
115
116&uart1 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&uart1_pins>;
119 status = "okay";
120};
121
122/* USB */
123&cppi41dma {
124 status = "okay";
125};
126
127&usb_ctrl_mod {
128 status = "okay";
129};
130
131&usb {
132 status = "okay";
133};
134
135&usb0 {
136 dr_mode = "peripheral";
137 status = "okay";
138};
139
140&usb0_phy {
141 status = "okay";
142};
143
144&usb1 {
145 dr_mode = "host";
146 status = "okay";
147};
148
149&usb1_phy {
150 status = "okay";
151};
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index b76f9a2ce05d..9117c1a1a4e2 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -103,6 +103,15 @@
103 #size-cells = <1>; 103 #size-cells = <1>;
104 ranges = <0 0x44c00000 0x280000>; 104 ranges = <0 0x44c00000 0x280000>;
105 105
106 wkup_m3: wkup_m3@100000 {
107 compatible = "ti,am3352-wkup-m3";
108 reg = <0x100000 0x4000>,
109 <0x180000 0x2000>;
110 reg-names = "umem", "dmem";
111 ti,hwmods = "wkup_m3";
112 ti,pm-firmware = "am335x-pm-firmware.elf";
113 };
114
106 prcm: prcm@200000 { 115 prcm: prcm@200000 {
107 compatible = "ti,am3-prcm"; 116 compatible = "ti,am3-prcm";
108 reg = <0x200000 0x4000>; 117 reg = <0x200000 0x4000>;
@@ -144,6 +153,14 @@
144 }; 153 };
145 }; 154 };
146 155
156 wkup_m3_ipc: wkup_m3_ipc@1324 {
157 compatible = "ti,am3352-wkup-m3-ipc";
158 reg = <0x1324 0x24>;
159 interrupts = <78>;
160 ti,rproc = <&wkup_m3>;
161 mboxes = <&mailbox &mbox_wkupm3>;
162 };
163
147 scm_clockdomains: clockdomains { 164 scm_clockdomains: clockdomains {
148 }; 165 };
149 }; 166 };
@@ -762,14 +779,6 @@
762 reg = <0x40300000 0x10000>; /* 64k */ 779 reg = <0x40300000 0x10000>; /* 64k */
763 }; 780 };
764 781
765 wkup_m3: wkup_m3@44d00000 {
766 compatible = "ti,am3353-wkup-m3";
767 reg = <0x44d00000 0x4000 /* M3 UMEM */
768 0x44d80000 0x2000>; /* M3 DMEM */
769 ti,hwmods = "wkup_m3";
770 ti,no-reset-on-init;
771 };
772
773 elm: elm@48080000 { 782 elm: elm@48080000 {
774 compatible = "ti,am3352-elm"; 783 compatible = "ti,am3352-elm";
775 reg = <0x48080000 0x2000>; 784 reg = <0x48080000 0x2000>;
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index 359a3b6daf4f..564900b9fcce 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -23,6 +23,11 @@
23 i2c1 = &i2c1; 23 i2c1 = &i2c1;
24 i2c2 = &i2c2; 24 i2c2 = &i2c2;
25 serial0 = &uart0; 25 serial0 = &uart0;
26 serial1 = &uart1;
27 serial2 = &uart2;
28 serial3 = &uart3;
29 serial4 = &uart4;
30 serial5 = &uart5;
26 ethernet0 = &cpsw_emac0; 31 ethernet0 = &cpsw_emac0;
27 ethernet1 = &cpsw_emac1; 32 ethernet1 = &cpsw_emac1;
28 }; 33 };
@@ -59,6 +64,27 @@
59 interrupt-parent = <&gic>; 64 interrupt-parent = <&gic>;
60 }; 65 };
61 66
67 scu: scu@48240000 {
68 compatible = "arm,cortex-a9-scu";
69 reg = <0x48240000 0x100>;
70 };
71
72 global_timer: timer@48240200 {
73 compatible = "arm,cortex-a9-global-timer";
74 reg = <0x48240200 0x100>;
75 interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
76 interrupt-parent = <&gic>;
77 clocks = <&dpll_mpu_m2_ck>;
78 };
79
80 local_timer: timer@48240600 {
81 compatible = "arm,cortex-a9-twd-timer";
82 reg = <0x48240600 0x100>;
83 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
84 interrupt-parent = <&gic>;
85 clocks = <&dpll_mpu_m2_ck>;
86 };
87
62 l2-cache-controller@48242000 { 88 l2-cache-controller@48242000 {
63 compatible = "arm,pl310-cache"; 89 compatible = "arm,pl310-cache";
64 reg = <0x48242000 0x1000>; 90 reg = <0x48242000 0x1000>;
@@ -83,6 +109,15 @@
83 #size-cells = <1>; 109 #size-cells = <1>;
84 ranges = <0 0x44c00000 0x287000>; 110 ranges = <0 0x44c00000 0x287000>;
85 111
112 wkup_m3: wkup_m3@100000 {
113 compatible = "ti,am4372-wkup-m3";
114 reg = <0x100000 0x4000>,
115 <0x180000 0x2000>;
116 reg-names = "umem", "dmem";
117 ti,hwmods = "wkup_m3";
118 ti,pm-firmware = "am335x-pm-firmware.elf";
119 };
120
86 prcm: prcm@1f0000 { 121 prcm: prcm@1f0000 {
87 compatible = "ti,am4-prcm"; 122 compatible = "ti,am4-prcm";
88 reg = <0x1f0000 0x11000>; 123 reg = <0x1f0000 0x11000>;
@@ -128,6 +163,14 @@
128 }; 163 };
129 }; 164 };
130 165
166 wkup_m3_ipc: wkup_m3_ipc@1324 {
167 compatible = "ti,am4372-wkup-m3-ipc";
168 reg = <0x1324 0x44>;
169 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
170 ti,rproc = <&wkup_m3>;
171 mboxes = <&mailbox &mbox_wkupm3>;
172 };
173
131 scm_clockdomains: clockdomains { 174 scm_clockdomains: clockdomains {
132 }; 175 };
133 }; 176 };
@@ -309,7 +352,8 @@
309 }; 352 };
310 353
311 rtc: rtc@44e3e000 { 354 rtc: rtc@44e3e000 {
312 compatible = "ti,am4372-rtc","ti,da830-rtc"; 355 compatible = "ti,am4372-rtc", "ti,am3352-rtc",
356 "ti,da830-rtc";
313 reg = <0x44e3e000 0x1000>; 357 reg = <0x44e3e000 0x1000>;
314 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH 358 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH
315 GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 359 GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
@@ -528,8 +572,11 @@
528 #address-cells = <1>; 572 #address-cells = <1>;
529 #size-cells = <1>; 573 #size-cells = <1>;
530 ti,hwmods = "cpgmac0"; 574 ti,hwmods = "cpgmac0";
531 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>; 575 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>,
532 clock-names = "fck", "cpts"; 576 <&dpll_clksel_mac_clk>;
577 clock-names = "fck", "cpts", "50mclk";
578 assigned-clocks = <&dpll_clksel_mac_clk>;
579 assigned-clock-rates = <50000000>;
533 status = "disabled"; 580 status = "disabled";
534 cpdma_channels = <8>; 581 cpdma_channels = <8>;
535 ale_entries = <1024>; 582 ale_entries = <1024>;
@@ -866,7 +913,12 @@
866 usb1: usb@48390000 { 913 usb1: usb@48390000 {
867 compatible = "synopsys,dwc3"; 914 compatible = "synopsys,dwc3";
868 reg = <0x48390000 0x10000>; 915 reg = <0x48390000 0x10000>;
869 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 916 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
917 <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
918 <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
919 interrupt-names = "peripheral",
920 "host",
921 "otg";
870 phys = <&usb2_phy1>; 922 phys = <&usb2_phy1>;
871 phy-names = "usb2-phy"; 923 phy-names = "usb2-phy";
872 maximum-speed = "high-speed"; 924 maximum-speed = "high-speed";
@@ -890,7 +942,12 @@
890 usb2: usb@483d0000 { 942 usb2: usb@483d0000 {
891 compatible = "synopsys,dwc3"; 943 compatible = "synopsys,dwc3";
892 reg = <0x483d0000 0x10000>; 944 reg = <0x483d0000 0x10000>;
893 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 945 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
946 <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>,
947 <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
948 interrupt-names = "peripheral",
949 "host",
950 "otg";
894 phys = <&usb2_phy2>; 951 phys = <&usb2_phy2>;
895 phy-names = "usb2-phy"; 952 phy-names = "usb2-phy";
896 maximum-speed = "high-speed"; 953 maximum-speed = "high-speed";
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 84aa30c3235a..215775dc6948 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -21,12 +21,11 @@
21 21
22 aliases { 22 aliases {
23 display0 = &lcd0; 23 display0 = &lcd0;
24 serial3 = &uart3;
25 }; 24 };
26 25
27 vmmcsd_fixed: fixedregulator-sd { 26 evm_v3_3d: fixedregulator-v3_3d {
28 compatible = "regulator-fixed"; 27 compatible = "regulator-fixed";
29 regulator-name = "vmmcsd_fixed"; 28 regulator-name = "evm_v3_3d";
30 regulator-min-microvolt = <3300000>; 29 regulator-min-microvolt = <3300000>;
31 regulator-max-microvolt = <3300000>; 30 regulator-max-microvolt = <3300000>;
32 enable-active-high; 31 enable-active-high;
@@ -83,17 +82,6 @@
83 compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; 82 compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
84 label = "lcd"; 83 label = "lcd";
85 84
86 pinctrl-names = "default";
87 pinctrl-0 = <&lcd_pins>;
88
89 /*
90 * SelLCDorHDMI, LOW to select HDMI. This is not really the
91 * panel's enable GPIO, but we don't have HDMI driver support nor
92 * support to switch between two displays, so using this gpio as
93 * panel's enable should be safe.
94 */
95 enable-gpios = <&gpio5 8 GPIO_ACTIVE_HIGH>;
96
97 panel-timing { 85 panel-timing {
98 clock-frequency = <33000000>; 86 clock-frequency = <33000000>;
99 hactive = <800>; 87 hactive = <800>;
@@ -124,6 +112,32 @@
124 clock-frequency = <12000000>; 112 clock-frequency = <12000000>;
125 }; 113 };
126 114
115 sound0: sound@0 {
116 compatible = "simple-audio-card";
117 simple-audio-card,name = "AM437x-GP-EVM";
118 simple-audio-card,widgets =
119 "Headphone", "Headphone Jack",
120 "Line", "Line In";
121 simple-audio-card,routing =
122 "Headphone Jack", "HPLOUT",
123 "Headphone Jack", "HPROUT",
124 "LINE1L", "Line In",
125 "LINE1R", "Line In";
126 simple-audio-card,format = "dsp_b";
127 simple-audio-card,bitclock-master = <&sound0_master>;
128 simple-audio-card,frame-master = <&sound0_master>;
129 simple-audio-card,bitclock-inversion;
130
131 simple-audio-card,cpu {
132 sound-dai = <&mcasp1>;
133 system-clock-frequency = <12000000>;
134 };
135
136 sound0_master: simple-audio-card,codec {
137 sound-dai = <&tlv320aic3106>;
138 system-clock-frequency = <12000000>;
139 };
140 };
127}; 141};
128 142
129&am43xx_pinmux { 143&am43xx_pinmux {
@@ -217,7 +231,6 @@
217 231
218 nand_flash_x8: nand_flash_x8 { 232 nand_flash_x8: nand_flash_x8 {
219 pinctrl-single,pins = < 233 pinctrl-single,pins = <
220 0x26c(PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* spi2_cs0.gpio/eMMCorNANDsel */
221 0x0 (PIN_INPUT | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */ 234 0x0 (PIN_INPUT | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
222 0x4 (PIN_INPUT | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */ 235 0x4 (PIN_INPUT | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
223 0x8 (PIN_INPUT | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */ 236 0x8 (PIN_INPUT | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
@@ -270,7 +283,7 @@
270 >; 283 >;
271 }; 284 };
272 285
273 lcd_pins: lcd_pins { 286 display_mux_pins: display_mux_pins {
274 pinctrl-single,pins = < 287 pinctrl-single,pins = <
275 /* GPIO 5_8 to select LCD / HDMI */ 288 /* GPIO 5_8 to select LCD / HDMI */
276 0x238 (PIN_OUTPUT_PULLUP | MUX_MODE7) 289 0x238 (PIN_OUTPUT_PULLUP | MUX_MODE7)
@@ -409,6 +422,60 @@
409 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */ 422 0x234 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart3_rtsn.uart3_rtsn */
410 >; 423 >;
411 }; 424 };
425
426 mcasp1_pins: mcasp1_pins {
427 pinctrl-single,pins = <
428 0x108 (PIN_OUTPUT_PULLDOWN | MUX_MODE4) /* mii1_col.mcasp1_axr2 */
429 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_crs.mcasp1_aclkx */
430 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* mii1_rxerr.mcasp1_fsx */
431 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* rmii1_ref_clk.mcasp1_axr3 */
432 >;
433 };
434
435 mcasp1_sleep_pins: mcasp1_sleep_pins {
436 pinctrl-single,pins = <
437 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
438 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
439 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
440 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
441 >;
442 };
443
444 gpio0_pins: gpio0_pins {
445 pinctrl-single,pins = <
446 0x26c (PIN_OUTPUT | MUX_MODE9) /* spi2_cs0.gpio0_23 SEL_eMMCorNANDn */
447 >;
448 };
449
450 emmc_pins_default: emmc_pins_default {
451 pinctrl-single,pins = <
452 0x00 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
453 0x04 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
454 0x08 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
455 0x0c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
456 0x10 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
457 0x14 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
458 0x18 (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
459 0x1c (PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
460 0x80 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
461 0x84 (PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
462 >;
463 };
464
465 emmc_pins_sleep: emmc_pins_sleep {
466 pinctrl-single,pins = <
467 0x00 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad0.gpio1_0 */
468 0x04 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad1.gpio1_1 */
469 0x08 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad2.gpio1_2 */
470 0x0c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad3.gpio1_3 */
471 0x10 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad4.gpio1_4 */
472 0x14 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad5.gpio1_5 */
473 0x18 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad6.gpio1_6 */
474 0x1c (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_ad7.gpio1_7 */
475 0x80 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn1.gpio1_30 */
476 0x84 (PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_csn2.gpio1_31 */
477 >;
478 };
412}; 479};
413 480
414&i2c0 { 481&i2c0 {
@@ -455,6 +522,8 @@
455 regulator-name = "v1_0bat"; 522 regulator-name = "v1_0bat";
456 regulator-min-microvolt = <1000000>; 523 regulator-min-microvolt = <1000000>;
457 regulator-max-microvolt = <1000000>; 524 regulator-max-microvolt = <1000000>;
525 regulator-boot-on;
526 regulator-always-on;
458 }; 527 };
459 528
460 dcdc6: regulator-dcdc6 { 529 dcdc6: regulator-dcdc6 {
@@ -462,6 +531,8 @@
462 regulator-name = "v1_8bat"; 531 regulator-name = "v1_8bat";
463 regulator-min-microvolt = <1800000>; 532 regulator-min-microvolt = <1800000>;
464 regulator-max-microvolt = <1800000>; 533 regulator-max-microvolt = <1800000>;
534 regulator-boot-on;
535 regulator-always-on;
465 }; 536 };
466 537
467 ldo1: regulator-ldo1 { 538 ldo1: regulator-ldo1 {
@@ -521,6 +592,19 @@
521 }; 592 };
522 }; 593 };
523 }; 594 };
595
596 tlv320aic3106: tlv320aic3106@1b {
597 #sound-dai-cells = <0>;
598 compatible = "ti,tlv320aic3106";
599 reg = <0x1b>;
600 status = "okay";
601
602 /* Regulators */
603 IOVDD-supply = <&evm_v3_3d>; /* V3_3D -> <tps63031> EN: V1_8D -> VBAT */
604 AVDD-supply = <&evm_v3_3d>; /* v3_3AUD -> V3_3D -> ... */
605 DRVDD-supply = <&evm_v3_3d>; /* v3_3AUD -> V3_3D -> ... */
606 DVDD-supply = <&ldo1>; /* V1_8D -> LDO1 */
607 };
524}; 608};
525 609
526&epwmss0 { 610&epwmss0 {
@@ -542,7 +626,23 @@
542}; 626};
543 627
544&gpio0 { 628&gpio0 {
629 pinctrl-names = "default";
630 pinctrl-0 = <&gpio0_pins>;
545 status = "okay"; 631 status = "okay";
632
633 p23 {
634 gpio-hog;
635 gpios = <23 GPIO_ACTIVE_HIGH>;
636 /* SelEMMCorNAND selects between eMMC and NAND:
637 * Low: NAND
638 * High: eMMC
639 * When changing this line make sure the newly
640 * selected device node is enabled and the previously
641 * selected device node is disabled.
642 */
643 output-low;
644 line-name = "SelEMMCorNAND";
645 };
546}; 646};
547 647
548&gpio1 { 648&gpio1 {
@@ -558,19 +658,48 @@
558}; 658};
559 659
560&gpio5 { 660&gpio5 {
661 pinctrl-names = "default";
662 pinctrl-0 = <&display_mux_pins>;
561 status = "okay"; 663 status = "okay";
562 ti,no-reset-on-init; 664 ti,no-reset-on-init;
665
666 p8 {
667 /*
668 * SelLCDorHDMI selects between display and audio paths:
669 * Low: HDMI display with audio via HDMI
670 * High: LCD display with analog audio via aic3111 codec
671 */
672 gpio-hog;
673 gpios = <8 GPIO_ACTIVE_HIGH>;
674 output-high;
675 line-name = "SelLCDorHDMI";
676 };
563}; 677};
564 678
565&mmc1 { 679&mmc1 {
566 status = "okay"; 680 status = "okay";
567 vmmc-supply = <&vmmcsd_fixed>; 681 vmmc-supply = <&evm_v3_3d>;
568 bus-width = <4>; 682 bus-width = <4>;
569 pinctrl-names = "default"; 683 pinctrl-names = "default";
570 pinctrl-0 = <&mmc1_pins>; 684 pinctrl-0 = <&mmc1_pins>;
571 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>; 685 cd-gpios = <&gpio0 6 GPIO_ACTIVE_HIGH>;
572}; 686};
573 687
688/* eMMC sits on mmc2 */
689&mmc2 {
690 /*
691 * When enabling eMMC, disable GPMC/NAND and set
692 * SelEMMCorNAND to output-high
693 */
694 status = "disabled";
695 vmmc-supply = <&evm_v3_3d>;
696 bus-width = <8>;
697 pinctrl-names = "default", "sleep";
698 pinctrl-0 = <&emmc_pins_default>;
699 pinctrl-1 = <&emmc_pins_sleep>;
700 ti,non-removable;
701};
702
574&mmc3 { 703&mmc3 {
575 status = "okay"; 704 status = "okay";
576 /* these are on the crossbar and are outlined in the 705 /* these are on the crossbar and are outlined in the
@@ -651,6 +780,10 @@
651}; 780};
652 781
653&gpmc { 782&gpmc {
783 /*
784 * When enabling GPMC, disable eMMC and set
785 * SelEMMCorNAND to output-low
786 */
654 status = "okay"; 787 status = "okay";
655 pinctrl-names = "default"; 788 pinctrl-names = "default";
656 pinctrl-0 = <&nand_flash_x8>; 789 pinctrl-0 = <&nand_flash_x8>;
@@ -790,3 +923,21 @@
790 }; 923 };
791 }; 924 };
792}; 925};
926
927&mcasp1 {
928 #sound-dai-cells = <0>;
929 pinctrl-names = "default", "sleep";
930 pinctrl-0 = <&mcasp1_pins>;
931 pinctrl-1 = <&mcasp1_sleep_pins>;
932
933 status = "okay";
934
935 op-mode = <0>; /* MCASP_IIS_MODE */
936 tdm-slots = <2>;
937 /* 4 serializers */
938 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
939 0 0 1 2
940 >;
941 tx-num-evt = <32>;
942 rx-num-evt = <32>;
943};
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index c17097d2c167..22af44894c66 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -32,14 +32,29 @@
32 }; 32 };
33 33
34 sound { 34 sound {
35 compatible = "ti,da830-evm-audio"; 35 compatible = "simple-audio-card";
36 ti,model = "AM437x-SK-EVM"; 36 simple-audio-card,name = "AM437x-SK-EVM";
37 ti,audio-codec = <&tlv320aic3106>; 37 simple-audio-card,widgets =
38 ti,mcasp-controller = <&mcasp1>; 38 "Headphone", "Headphone Jack",
39 ti,codec-clock-rate = <24000000>; 39 "Line", "Line In";
40 ti,audio-routing = 40 simple-audio-card,routing =
41 "Headphone Jack", "HPLOUT", 41 "Headphone Jack", "HPLOUT",
42 "Headphone Jack", "HPROUT"; 42 "Headphone Jack", "HPROUT",
43 "LINE1L", "Line In",
44 "LINE1R", "Line In";
45 simple-audio-card,format = "dsp_b";
46 simple-audio-card,bitclock-master = <&sound_master>;
47 simple-audio-card,frame-master = <&sound_master>;
48 simple-audio-card,bitclock-inversion;
49
50 simple-audio-card,cpu {
51 sound-dai = <&mcasp1>;
52 };
53
54 sound_master: simple-audio-card,codec {
55 sound-dai = <&tlv320aic3106>;
56 system-clock-frequency = <24000000>;
57 };
43 }; 58 };
44 59
45 matrix_keypad: matrix_keypad@0 { 60 matrix_keypad: matrix_keypad@0 {
@@ -364,6 +379,15 @@
364 >; 379 >;
365 }; 380 };
366 381
382 mcasp1_pins_sleep: mcasp1_pins_sleep {
383 pinctrl-single,pins = <
384 0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
385 0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
386 0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
387 0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)
388 >;
389 };
390
367 lcd_pins: lcd_pins { 391 lcd_pins: lcd_pins {
368 pinctrl-single,pins = < 392 pinctrl-single,pins = <
369 0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */ 393 0x1c (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpcm_ad7.gpio1_7 */
@@ -480,6 +504,7 @@
480 }; 504 };
481 505
482 tlv320aic3106: tlv320aic3106@1b { 506 tlv320aic3106: tlv320aic3106@1b {
507 #sound-dai-cells = <0>;
483 compatible = "ti,tlv320aic3106"; 508 compatible = "ti,tlv320aic3106";
484 reg = <0x1b>; 509 reg = <0x1b>;
485 status = "okay"; 510 status = "okay";
@@ -640,8 +665,10 @@
640}; 665};
641 666
642&mcasp1 { 667&mcasp1 {
643 pinctrl-names = "default"; 668 #sound-dai-cells = <0>;
669 pinctrl-names = "default", "sleep";
644 pinctrl-0 = <&mcasp1_pins>; 670 pinctrl-0 = <&mcasp1_pins>;
671 pinctrl-1 = <&mcasp1_pins_sleep>;
645 672
646 status = "okay"; 673 status = "okay";
647 674
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 795d68af6df9..86c2dfbe8875 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -14,6 +14,7 @@
14#include <dt-bindings/pinctrl/am43xx.h> 14#include <dt-bindings/pinctrl/am43xx.h>
15#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/pwm/pwm.h> 16#include <dt-bindings/pwm/pwm.h>
17#include <dt-bindings/sound/tlv320aic31xx-micbias.h>
17 18
18/ { 19/ {
19 model = "TI AM43x EPOS EVM"; 20 model = "TI AM43x EPOS EVM";
@@ -31,21 +32,18 @@
31 enable-active-high; 32 enable-active-high;
32 }; 33 };
33 34
35 vbat: fixedregulator@0 {
36 compatible = "regulator-fixed";
37 regulator-name = "vbat";
38 regulator-min-microvolt = <5000000>;
39 regulator-max-microvolt = <5000000>;
40 regulator-boot-on;
41 };
42
34 lcd0: display { 43 lcd0: display {
35 compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; 44 compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
36 label = "lcd"; 45 label = "lcd";
37 46
38 pinctrl-names = "default";
39 pinctrl-0 = <&lcd_pins>;
40
41 /*
42 * SelLCDorHDMI, LOW to select HDMI. This is not really the
43 * panel's enable GPIO, but we don't have HDMI driver support nor
44 * support to switch between two displays, so using this gpio as
45 * panel's enable should be safe.
46 */
47 enable-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
48
49 panel-timing { 47 panel-timing {
50 clock-frequency = <33000000>; 48 clock-frequency = <33000000>;
51 hactive = <800>; 49 hactive = <800>;
@@ -108,6 +106,38 @@
108 brightness-levels = <0 51 53 56 62 75 101 152 255>; 106 brightness-levels = <0 51 53 56 62 75 101 152 255>;
109 default-brightness-level = <8>; 107 default-brightness-level = <8>;
110 }; 108 };
109
110 sound0: sound@0 {
111 compatible = "simple-audio-card";
112 simple-audio-card,name = "AM43-EPOS-EVM";
113 simple-audio-card,widgets =
114 "Microphone", "Microphone Jack",
115 "Headphone", "Headphone Jack",
116 "Speaker", "Speaker";
117 simple-audio-card,routing =
118 "MIC1LP", "Microphone Jack",
119 "MIC1RP", "Microphone Jack",
120 "MIC1LP", "MICBIAS",
121 "MIC1RP", "MICBIAS",
122 "Headphone Jack", "HPL",
123 "Headphone Jack", "HPR",
124 "Speaker", "SPL",
125 "Speaker", "SPR";
126 simple-audio-card,format = "dsp_b";
127 simple-audio-card,bitclock-master = <&sound0_master>;
128 simple-audio-card,frame-master = <&sound0_master>;
129 simple-audio-card,bitclock-inversion;
130
131 simple-audio-card,cpu {
132 sound-dai = <&mcasp1>;
133 system-clock-frequency = <12000000>;
134 };
135
136 sound0_master: simple-audio-card,codec {
137 sound-dai = <&tlv320aic3111>;
138 system-clock-frequency = <12000000>;
139 };
140 };
111}; 141};
112 142
113&am43xx_pinmux { 143&am43xx_pinmux {
@@ -278,7 +308,7 @@
278 >; 308 >;
279 }; 309 };
280 310
281 lcd_pins: lcd_pins { 311 display_mux_pins: display_mux_pins {
282 pinctrl-single,pins = < 312 pinctrl-single,pins = <
283 /* GPMC CLK -> GPIO 2_1 to select LCD / HDMI */ 313 /* GPMC CLK -> GPIO 2_1 to select LCD / HDMI */
284 0x08C (PIN_OUTPUT_PULLUP | MUX_MODE7) 314 0x08C (PIN_OUTPUT_PULLUP | MUX_MODE7)
@@ -320,6 +350,24 @@
320 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7) 350 0x204 (DS0_PULL_UP_DOWN_EN | INPUT_EN | MUX_MODE7)
321 >; 351 >;
322 }; 352 };
353
354 mcasp1_pins: mcasp1_pins {
355 pinctrl-single,pins = <
356 0x1a0 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_ACLKR/MCASP1_ACLKX */
357 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_FSR/MCASP1_FSX */
358 0x1a8 (PIN_OUTPUT_PULLDOWN | MUX_MODE3)/* MCASP0_AXR1/MCASP1_AXR0 */
359 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE3) /* MCASP0_AHCLKX/MCASP1_AXR1 */
360 >;
361 };
362
363 mcasp1_sleep_pins: mcasp1_sleep_pins {
364 pinctrl-single,pins = <
365 0x1a0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
366 0x1a4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
367 0x1a8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
368 0x1ac (PIN_INPUT_PULLDOWN | MUX_MODE7)
369 >;
370 };
323}; 371};
324 372
325&mmc1 { 373&mmc1 {
@@ -399,6 +447,15 @@
399 regulator-always-on; 447 regulator-always-on;
400 }; 448 };
401 449
450 dcdc4: regulator-dcdc4 {
451 compatible = "ti,tps65218-dcdc4";
452 regulator-name = "vdcdc4";
453 regulator-min-microvolt = <3300000>;
454 regulator-max-microvolt = <3300000>;
455 regulator-boot-on;
456 regulator-always-on;
457 };
458
402 dcdc5: regulator-dcdc5 { 459 dcdc5: regulator-dcdc5 {
403 compatible = "ti,tps65218-dcdc5"; 460 compatible = "ti,tps65218-dcdc5";
404 regulator-name = "v1_0bat"; 461 regulator-name = "v1_0bat";
@@ -441,6 +498,23 @@
441 touchscreen-size-x = <1024>; 498 touchscreen-size-x = <1024>;
442 touchscreen-size-y = <600>; 499 touchscreen-size-y = <600>;
443 }; 500 };
501
502 tlv320aic3111: tlv320aic3111@18 {
503 #sound-dai-cells = <0>;
504 compatible = "ti,tlv320aic3111";
505 reg = <0x18>;
506 status = "okay";
507
508 ai31xx-micbias-vg = <MICBIAS_2_0V>;
509
510 /* Regulators */
511 HPVDD-supply = <&dcdc4>; /* v3_3AUD -> V3_3D -> DCDC4 */
512 SPRVDD-supply = <&vbat>; /* vbat */
513 SPLVDD-supply = <&vbat>; /* vbat */
514 AVDD-supply = <&dcdc4>; /* v3_3AUD -> V3_3D -> DCDC4 */
515 IOVDD-supply = <&dcdc4>; /* V3_3D -> DCDC4 */
516 DVDD-supply = <&ldo1>; /* V1_8AUD -> V1_8D -> LDO1 */
517 };
444}; 518};
445 519
446&i2c2 { 520&i2c2 {
@@ -458,7 +532,21 @@
458}; 532};
459 533
460&gpio2 { 534&gpio2 {
535 pinctrl-names = "default";
536 pinctrl-0 = <&display_mux_pins>;
461 status = "okay"; 537 status = "okay";
538
539 p1 {
540 /*
541 * SelLCDorHDMI selects between display and audio paths:
542 * Low: HDMI display with audio via HDMI
543 * High: LCD display with analog audio via aic3111 codec
544 */
545 gpio-hog;
546 gpios = <1 GPIO_ACTIVE_HIGH>;
547 output-high;
548 line-name = "SelLCDorHDMI";
549 };
462}; 550};
463 551
464&gpio3 { 552&gpio3 {
@@ -686,3 +774,21 @@
686 }; 774 };
687 }; 775 };
688}; 776};
777
778&mcasp1 {
779 #sound-dai-cells = <0>;
780 pinctrl-names = "default", "sleep";
781 pinctrl-0 = <&mcasp1_pins>;
782 pinctrl-1 = <&mcasp1_sleep_pins>;
783
784 status = "okay";
785
786 op-mode = <0>; /* MCASP_IIS_MODE */
787 tdm-slots = <2>;
788 /* 4 serializer */
789 serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
790 1 2 0 0
791 >;
792 tx-num-evt = <32>;
793 rx-num-evt = <32>;
794};
diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi b/arch/arm/boot/dts/am43xx-clocks.dtsi
index d0c0dfa4ec48..cc88728d751d 100644
--- a/arch/arm/boot/dts/am43xx-clocks.dtsi
+++ b/arch/arm/boot/dts/am43xx-clocks.dtsi
@@ -486,6 +486,15 @@
486 reg = <0x4238>; 486 reg = <0x4238>;
487 }; 487 };
488 488
489 dpll_clksel_mac_clk: dpll_clksel_mac_clk {
490 #clock-cells = <0>;
491 compatible = "ti,divider-clock";
492 clocks = <&dpll_core_m5_ck>;
493 reg = <0x4234>;
494 ti,bit-shift = <2>;
495 ti,dividers = <2>, <5>;
496 };
497
489 clk_32k_mosc_ck: clk_32k_mosc_ck { 498 clk_32k_mosc_ck: clk_32k_mosc_ck {
490 #clock-cells = <0>; 499 #clock-cells = <0>;
491 compatible = "fixed-clock"; 500 compatible = "fixed-clock";
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
index f9a4b317ed2f..3a05b94f59ed 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
@@ -580,7 +580,6 @@
580 580
581 vmmc-supply = <&ldo1_reg>; 581 vmmc-supply = <&ldo1_reg>;
582 vmmc_aux-supply = <&vdd_3v3>; 582 vmmc_aux-supply = <&vdd_3v3>;
583 pbias-supply = <&pbias_mmc_reg>;
584 bus-width = <4>; 583 bus-width = <4>;
585 cd-gpios = <&gpio6 27 0>; /* gpio 219 */ 584 cd-gpios = <&gpio6 27 0>; /* gpio 219 */
586}; 585};
diff --git a/arch/arm/boot/dts/armada-375.dtsi b/arch/arm/boot/dts/armada-375.dtsi
index 67a0ab0f71e0..e9a381741ce1 100644
--- a/arch/arm/boot/dts/armada-375.dtsi
+++ b/arch/arm/boot/dts/armada-375.dtsi
@@ -176,6 +176,10 @@
176 reg = <0x8000 0x1000>; 176 reg = <0x8000 0x1000>;
177 cache-unified; 177 cache-unified;
178 cache-level = <2>; 178 cache-level = <2>;
179 arm,double-linefill-incr = <1>;
180 arm,double-linefill-wrap = <0>;
181 arm,double-linefill = <1>;
182 prefetch-data = <1>;
179 }; 183 };
180 184
181 scu@c000 { 185 scu@c000 {
diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
index fd4f6fd8a2e8..353c92532e7a 100644
--- a/arch/arm/boot/dts/armada-388-gp.dts
+++ b/arch/arm/boot/dts/armada-388-gp.dts
@@ -81,10 +81,6 @@
81 pinctrl-0 = <&i2c0_pins>; 81 pinctrl-0 = <&i2c0_pins>;
82 status = "okay"; 82 status = "okay";
83 clock-frequency = <100000>; 83 clock-frequency = <100000>;
84 /*
85 * The EEPROM located at adresse 54 is needed
86 * for the boot - DO NOT ERASE IT -
87 */
88 84
89 expander0: pca9555@20 { 85 expander0: pca9555@20 {
90 compatible = "nxp,pca9555"; 86 compatible = "nxp,pca9555";
@@ -111,6 +107,10 @@
111 reg = <0x21>; 107 reg = <0x21>;
112 }; 108 };
113 109
110 eeprom@57 {
111 compatible = "atmel,24c64";
112 reg = <0x57>;
113 };
114 }; 114 };
115 115
116 serial@12000 { 116 serial@12000 {
@@ -301,9 +301,11 @@
301 reg_sata0: pwr-sata0 { 301 reg_sata0: pwr-sata0 {
302 compatible = "regulator-fixed"; 302 compatible = "regulator-fixed";
303 regulator-name = "pwr_en_sata0"; 303 regulator-name = "pwr_en_sata0";
304 regulator-min-microvolt = <12000000>;
305 regulator-max-microvolt = <12000000>;
304 enable-active-high; 306 enable-active-high;
305 regulator-always-on; 307 regulator-always-on;
306 308 gpio = <&expander0 2 GPIO_ACTIVE_HIGH>;
307 }; 309 };
308 310
309 reg_5v_sata0: v5-sata0 { 311 reg_5v_sata0: v5-sata0 {
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 04ecfe6e2bc6..f9f2347d9995 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -143,6 +143,10 @@
143 reg = <0x8000 0x1000>; 143 reg = <0x8000 0x1000>;
144 cache-unified; 144 cache-unified;
145 cache-level = <2>; 145 cache-level = <2>;
146 arm,double-linefill-incr = <1>;
147 arm,double-linefill-wrap = <0>;
148 arm,double-linefill = <1>;
149 prefetch-data = <1>;
146 }; 150 };
147 151
148 scu@c000 { 152 scu@c000 {
@@ -450,7 +454,7 @@
450 }; 454 };
451 455
452 xor@60800 { 456 xor@60800 {
453 compatible = "marvell,orion-xor"; 457 compatible = "marvell,armada-380-xor", "marvell,orion-xor";
454 reg = <0x60800 0x100 458 reg = <0x60800 0x100
455 0x60a00 0x100>; 459 0x60a00 0x100>;
456 clocks = <&gateclk 22>; 460 clocks = <&gateclk 22>;
@@ -470,7 +474,7 @@
470 }; 474 };
471 475
472 xor@60900 { 476 xor@60900 {
473 compatible = "marvell,orion-xor"; 477 compatible = "marvell,armada-380-xor", "marvell,orion-xor";
474 reg = <0x60900 0x100 478 reg = <0x60900 0x100
475 0x60b00 0x100>; 479 0x60b00 0x100>;
476 clocks = <&gateclk 28>; 480 clocks = <&gateclk 28>;
diff --git a/arch/arm/boot/dts/armada-39x.dtsi b/arch/arm/boot/dts/armada-39x.dtsi
index fc9864f85fc2..dc6efd386dbc 100644
--- a/arch/arm/boot/dts/armada-39x.dtsi
+++ b/arch/arm/boot/dts/armada-39x.dtsi
@@ -104,6 +104,10 @@
104 reg = <0x8000 0x1000>; 104 reg = <0x8000 0x1000>;
105 cache-unified; 105 cache-unified;
106 cache-level = <2>; 106 cache-level = <2>;
107 arm,double-linefill-incr = <1>;
108 arm,double-linefill-wrap = <0>;
109 arm,double-linefill = <1>;
110 prefetch-data = <1>;
107 }; 111 };
108 112
109 scu@c000 { 113 scu@c000 {
@@ -325,7 +329,7 @@
325 }; 329 };
326 330
327 xor@60800 { 331 xor@60800 {
328 compatible = "marvell,orion-xor"; 332 compatible = "marvell,armada-380-xor", "marvell,orion-xor";
329 reg = <0x60800 0x100 333 reg = <0x60800 0x100
330 0x60a00 0x100>; 334 0x60a00 0x100>;
331 clocks = <&gateclk 22>; 335 clocks = <&gateclk 22>;
@@ -345,7 +349,7 @@
345 }; 349 };
346 350
347 xor@60900 { 351 xor@60900 {
348 compatible = "marvell,orion-xor"; 352 compatible = "marvell,armada-380-xor", "marvell,orion-xor";
349 reg = <0x60900 0x100 353 reg = <0x60900 0x100
350 0x60b00 0x100>; 354 0x60b00 0x100>;
351 clocks = <&gateclk 28>; 355 clocks = <&gateclk 28>;
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
new file mode 100644
index 000000000000..e8d63afdb135
--- /dev/null
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -0,0 +1,134 @@
1/*
2 * at91-sama5d2_xplained.dts - Device Tree file for SAMA5D2 Xplained board
3 *
4 * Copyright (C) 2015 Atmel,
5 * 2015 Nicolas Ferre <nicolas.ferre@atmel.com>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45/dts-v1/;
46#include "sama5d2.dtsi"
47
48/ {
49 model = "Atmel SAMA5D2 Xplained";
50 compatible = "atmel,sama5d2-xplained", "atmel,sama5d2", "atmel,sama5";
51
52 chosen {
53 stdout-path = "serial0:115200n8";
54 };
55
56 memory {
57 reg = <0x20000000 0x80000>;
58 };
59
60 clocks {
61 #address-cells = <1>;
62 #size-cells = <1>;
63 ranges;
64
65 main_clock: clock@0 {
66 compatible = "atmel,osc", "fixed-clock";
67 clock-frequency = <12000000>;
68 };
69
70 slow_xtal {
71 clock-frequency = <32768>;
72 };
73
74 main_xtal {
75 clock-frequency = <12000000>;
76 };
77 };
78
79 ahb {
80 usb0: gadget@00300000 {
81 status = "okay";
82 };
83
84 usb1: ohci@00400000 {
85 num-ports = <3>;
86 status = "okay";
87 };
88
89 usb2: ehci@00500000 {
90 status = "okay";
91 };
92
93 apb {
94 spi0: spi@f8000000 {
95 status = "okay";
96
97 m25p80@0 {
98 compatible = "atmel,at25df321a";
99 reg = <0>;
100 spi-max-frequency = <50000000>;
101 };
102 };
103
104 macb0: ethernet@f8008000 {
105 phy-mode = "rmii";
106 status = "okay";
107 };
108
109 uart1: serial@f8020000 {
110 status = "okay";
111 };
112
113 i2c0: i2c@f8028000 {
114 dmas = <0>, <0>;
115 status = "okay";
116 };
117
118 uart3: serial@fc008000 {
119 status = "okay";
120 };
121
122 i2c1: i2c@fc028000 {
123 dmas = <0>, <0>;
124 status = "okay";
125
126 at24@54 {
127 compatible = "atmel,24c02";
128 reg = <0x54>;
129 pagesize = <16>;
130 };
131 };
132 };
133 };
134};
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index 22ad7c959103..07f46963335b 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -131,6 +131,15 @@
131 }; 131 };
132 132
133 adc0: adc@fc034000 { 133 adc0: adc@fc034000 {
134 pinctrl-names = "default";
135 pinctrl-0 = <
136 /* external trigger conflicts with USBA_VBUS */
137 &pinctrl_adc0_ad0
138 &pinctrl_adc0_ad1
139 &pinctrl_adc0_ad2
140 &pinctrl_adc0_ad3
141 &pinctrl_adc0_ad4
142 >;
134 atmel,adc-vref = <3300>; 143 atmel,adc-vref = <3300>;
135 status = "okay"; 144 status = "okay";
136 }; 145 };
diff --git a/arch/arm/boot/dts/at91-sama5d4ek.dts b/arch/arm/boot/dts/at91-sama5d4ek.dts
index d782f2926b73..49a59c7e4a5d 100644
--- a/arch/arm/boot/dts/at91-sama5d4ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d4ek.dts
@@ -100,6 +100,15 @@
100 }; 100 };
101 101
102 adc0: adc@fc034000 { 102 adc0: adc@fc034000 {
103 pinctrl-names = "default";
104 pinctrl-0 = <
105 /* external trigger conflicts with USBA_VBUS */
106 &pinctrl_adc0_ad0
107 &pinctrl_adc0_ad1
108 &pinctrl_adc0_ad2
109 &pinctrl_adc0_ad3
110 &pinctrl_adc0_ad4
111 >;
103 /* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */ 112 /* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */
104 atmel,adc-vref = <3300>; 113 atmel,adc-vref = <3300>;
105 /*atmel,adc-ts-wires = <4>;*/ /* Set up ADC touch screen */ 114 /*atmel,adc-ts-wires = <4>;*/ /* Set up ADC touch screen */
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi
index e3cfb9972f54..60edd8baebb8 100644
--- a/arch/arm/boot/dts/at91rm9200.dtsi
+++ b/arch/arm/boot/dts/at91rm9200.dtsi
@@ -359,6 +359,7 @@
359 compatible = "atmel,at91rm9200-st", "syscon", "simple-mfd"; 359 compatible = "atmel,at91rm9200-st", "syscon", "simple-mfd";
360 reg = <0xfffffd00 0x100>; 360 reg = <0xfffffd00 0x100>;
361 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 361 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
362 clocks = <&slow_xtal>;
362 363
363 watchdog { 364 watchdog {
364 compatible = "atmel,at91rm9200-wdt"; 365 compatible = "atmel,at91rm9200-wdt";
@@ -369,6 +370,7 @@
369 compatible = "atmel,at91rm9200-rtc"; 370 compatible = "atmel,at91rm9200-rtc";
370 reg = <0xfffffe00 0x40>; 371 reg = <0xfffffe00 0x40>;
371 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 372 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
373 clocks = <&slow_xtal>;
372 status = "disabled"; 374 status = "disabled";
373 }; 375 };
374 376
@@ -378,8 +380,8 @@
378 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0 380 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
379 18 IRQ_TYPE_LEVEL_HIGH 0 381 18 IRQ_TYPE_LEVEL_HIGH 0
380 19 IRQ_TYPE_LEVEL_HIGH 0>; 382 19 IRQ_TYPE_LEVEL_HIGH 0>;
381 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>; 383 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&slow_xtal>;
382 clock-names = "t0_clk", "t1_clk", "t2_clk"; 384 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
383 }; 385 };
384 386
385 tcb1: timer@fffa4000 { 387 tcb1: timer@fffa4000 {
@@ -388,8 +390,8 @@
388 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0 390 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0
389 21 IRQ_TYPE_LEVEL_HIGH 0 391 21 IRQ_TYPE_LEVEL_HIGH 0
390 22 IRQ_TYPE_LEVEL_HIGH 0>; 392 22 IRQ_TYPE_LEVEL_HIGH 0>;
391 clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>; 393 clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>, <&slow_xtal>;
392 clock-names = "t0_clk", "t1_clk", "t2_clk"; 394 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
393 }; 395 };
394 396
395 i2c0: i2c@fffb8000 { 397 i2c0: i2c@fffb8000 {
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index 4bc347549102..be9c027ddd97 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -359,11 +359,13 @@
359 rstc@fffffd00 { 359 rstc@fffffd00 {
360 compatible = "atmel,at91sam9260-rstc"; 360 compatible = "atmel,at91sam9260-rstc";
361 reg = <0xfffffd00 0x10>; 361 reg = <0xfffffd00 0x10>;
362 clocks = <&clk32k>;
362 }; 363 };
363 364
364 shdwc@fffffd10 { 365 shdwc@fffffd10 {
365 compatible = "atmel,at91sam9260-shdwc"; 366 compatible = "atmel,at91sam9260-shdwc";
366 reg = <0xfffffd10 0x10>; 367 reg = <0xfffffd10 0x10>;
368 clocks = <&clk32k>;
367 }; 369 };
368 370
369 pit: timer@fffffd30 { 371 pit: timer@fffffd30 {
@@ -379,8 +381,8 @@
379 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0 381 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0
380 18 IRQ_TYPE_LEVEL_HIGH 0 382 18 IRQ_TYPE_LEVEL_HIGH 0
381 19 IRQ_TYPE_LEVEL_HIGH 0>; 383 19 IRQ_TYPE_LEVEL_HIGH 0>;
382 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>; 384 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&clk32k>;
383 clock-names = "t0_clk", "t1_clk", "t2_clk"; 385 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
384 }; 386 };
385 387
386 tcb1: timer@fffdc000 { 388 tcb1: timer@fffdc000 {
@@ -389,8 +391,8 @@
389 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0 391 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0
390 27 IRQ_TYPE_LEVEL_HIGH 0 392 27 IRQ_TYPE_LEVEL_HIGH 0
391 28 IRQ_TYPE_LEVEL_HIGH 0>; 393 28 IRQ_TYPE_LEVEL_HIGH 0>;
392 clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>; 394 clocks = <&tc3_clk>, <&tc4_clk>, <&tc5_clk>, <&clk32k>;
393 clock-names = "t0_clk", "t1_clk", "t2_clk"; 395 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
394 }; 396 };
395 397
396 pinctrl@fffff400 { 398 pinctrl@fffff400 {
@@ -973,6 +975,7 @@
973 compatible = "atmel,at91sam9260-wdt"; 975 compatible = "atmel,at91sam9260-wdt";
974 reg = <0xfffffd40 0x10>; 976 reg = <0xfffffd40 0x10>;
975 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 977 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
978 clocks = <&clk32k>;
976 atmel,watchdog-type = "hardware"; 979 atmel,watchdog-type = "hardware";
977 atmel,reset-type = "all"; 980 atmel,reset-type = "all";
978 atmel,dbg-halt; 981 atmel,dbg-halt;
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
index b2c44a07a3d0..ce1e3e94a40c 100644
--- a/arch/arm/boot/dts/at91sam9261.dtsi
+++ b/arch/arm/boot/dts/at91sam9261.dtsi
@@ -119,8 +119,8 @@
119 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>, 119 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>,
120 <18 IRQ_TYPE_LEVEL_HIGH 0>, 120 <18 IRQ_TYPE_LEVEL_HIGH 0>,
121 <19 IRQ_TYPE_LEVEL_HIGH 0>; 121 <19 IRQ_TYPE_LEVEL_HIGH 0>;
122 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>; 122 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&slow_xtal>;
123 clock-names = "t0_clk", "t1_clk", "t2_clk"; 123 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
124 }; 124 };
125 125
126 usb1: gadget@fffa4000 { 126 usb1: gadget@fffa4000 {
@@ -820,11 +820,13 @@
820 rstc@fffffd00 { 820 rstc@fffffd00 {
821 compatible = "atmel,at91sam9260-rstc"; 821 compatible = "atmel,at91sam9260-rstc";
822 reg = <0xfffffd00 0x10>; 822 reg = <0xfffffd00 0x10>;
823 clocks = <&slow_xtal>;
823 }; 824 };
824 825
825 shdwc@fffffd10 { 826 shdwc@fffffd10 {
826 compatible = "atmel,at91sam9260-shdwc"; 827 compatible = "atmel,at91sam9260-shdwc";
827 reg = <0xfffffd10 0x10>; 828 reg = <0xfffffd10 0x10>;
829 clocks = <&slow_xtal>;
828 }; 830 };
829 831
830 pit: timer@fffffd30 { 832 pit: timer@fffffd30 {
@@ -846,6 +848,7 @@
846 compatible = "atmel,at91sam9260-wdt"; 848 compatible = "atmel,at91sam9260-wdt";
847 reg = <0xfffffd40 0x10>; 849 reg = <0xfffffd40 0x10>;
848 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 850 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
851 clocks = <&slow_xtal>;
849 status = "disabled"; 852 status = "disabled";
850 }; 853 };
851 854
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index e36d966ef5e8..f1f5fa3a9e6e 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -377,18 +377,20 @@
377 compatible = "atmel,at91rm9200-tcb"; 377 compatible = "atmel,at91rm9200-tcb";
378 reg = <0xfff7c000 0x100>; 378 reg = <0xfff7c000 0x100>;
379 interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>; 379 interrupts = <19 IRQ_TYPE_LEVEL_HIGH 0>;
380 clocks = <&tcb_clk>; 380 clocks = <&tcb_clk>, <&slow_xtal>;
381 clock-names = "t0_clk"; 381 clock-names = "t0_clk", "slow_clk";
382 }; 382 };
383 383
384 rstc@fffffd00 { 384 rstc@fffffd00 {
385 compatible = "atmel,at91sam9260-rstc"; 385 compatible = "atmel,at91sam9260-rstc";
386 reg = <0xfffffd00 0x10>; 386 reg = <0xfffffd00 0x10>;
387 clocks = <&slow_xtal>;
387 }; 388 };
388 389
389 shdwc@fffffd10 { 390 shdwc@fffffd10 {
390 compatible = "atmel,at91sam9260-shdwc"; 391 compatible = "atmel,at91sam9260-shdwc";
391 reg = <0xfffffd10 0x10>; 392 reg = <0xfffffd10 0x10>;
393 clocks = <&slow_xtal>;
392 }; 394 };
393 395
394 pinctrl@fffff200 { 396 pinctrl@fffff200 {
@@ -902,6 +904,7 @@
902 compatible = "atmel,at91sam9260-wdt"; 904 compatible = "atmel,at91sam9260-wdt";
903 reg = <0xfffffd40 0x10>; 905 reg = <0xfffffd40 0x10>;
904 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 906 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
907 clocks = <&slow_xtal>;
905 atmel,watchdog-type = "hardware"; 908 atmel,watchdog-type = "hardware";
906 atmel,reset-type = "all"; 909 atmel,reset-type = "all";
907 atmel,dbg-halt; 910 atmel,dbg-halt;
diff --git a/arch/arm/boot/dts/at91sam9g15.dtsi b/arch/arm/boot/dts/at91sam9g15.dtsi
index cfd7044616d7..27de7dc0f0e0 100644
--- a/arch/arm/boot/dts/at91sam9g15.dtsi
+++ b/arch/arm/boot/dts/at91sam9g15.dtsi
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include "at91sam9x5.dtsi" 9#include "at91sam9x5.dtsi"
10#include "at91sam9x5_lcd.dtsi"
10 11
11/ { 12/ {
12 model = "Atmel AT91SAM9G15 SoC"; 13 model = "Atmel AT91SAM9G15 SoC";
diff --git a/arch/arm/boot/dts/at91sam9g15ek.dts b/arch/arm/boot/dts/at91sam9g15ek.dts
index 26b0444b0f96..d1d2b400f1c6 100644
--- a/arch/arm/boot/dts/at91sam9g15ek.dts
+++ b/arch/arm/boot/dts/at91sam9g15ek.dts
@@ -8,9 +8,34 @@
8 */ 8 */
9/dts-v1/; 9/dts-v1/;
10#include "at91sam9g15.dtsi" 10#include "at91sam9g15.dtsi"
11#include "at91sam9x5dm.dtsi"
11#include "at91sam9x5ek.dtsi" 12#include "at91sam9x5ek.dtsi"
12 13
13/ { 14/ {
14 model = "Atmel AT91SAM9G15-EK"; 15 model = "Atmel AT91SAM9G15-EK";
15 compatible = "atmel,at91sam9g15ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; 16 compatible = "atmel,at91sam9g15ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9";
17
18 ahb {
19 apb {
20 hlcdc: hlcdc@f8038000 {
21 status = "okay";
22 };
23 };
24 };
25
26 backlight: backlight {
27 status = "okay";
28 };
29
30 bl_reg: backlight_regulator {
31 status = "okay";
32 };
33
34 panel: panel {
35 status = "okay";
36 };
37
38 panel_reg: panel_regulator {
39 status = "okay";
40 };
16}; 41};
diff --git a/arch/arm/boot/dts/at91sam9g35.dtsi b/arch/arm/boot/dts/at91sam9g35.dtsi
index e35c2fcf8298..ff4115886f97 100644
--- a/arch/arm/boot/dts/at91sam9g35.dtsi
+++ b/arch/arm/boot/dts/at91sam9g35.dtsi
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include "at91sam9x5.dtsi" 9#include "at91sam9x5.dtsi"
10#include "at91sam9x5_lcd.dtsi"
10#include "at91sam9x5_macb0.dtsi" 11#include "at91sam9x5_macb0.dtsi"
11 12
12/ { 13/ {
diff --git a/arch/arm/boot/dts/at91sam9g35ek.dts b/arch/arm/boot/dts/at91sam9g35ek.dts
index 641a9bf89ed1..23ec8b13f30a 100644
--- a/arch/arm/boot/dts/at91sam9g35ek.dts
+++ b/arch/arm/boot/dts/at91sam9g35ek.dts
@@ -8,6 +8,7 @@
8 */ 8 */
9/dts-v1/; 9/dts-v1/;
10#include "at91sam9g35.dtsi" 10#include "at91sam9g35.dtsi"
11#include "at91sam9x5dm.dtsi"
11#include "at91sam9x5ek.dtsi" 12#include "at91sam9x5ek.dtsi"
12 13
13/ { 14/ {
@@ -20,6 +21,26 @@
20 phy-mode = "rmii"; 21 phy-mode = "rmii";
21 status = "okay"; 22 status = "okay";
22 }; 23 };
24
25 hlcdc: hlcdc@f8038000 {
26 status = "okay";
27 };
23 }; 28 };
24 }; 29 };
30
31 backlight: backlight {
32 status = "okay";
33 };
34
35 bl_reg: backlight_regulator {
36 status = "okay";
37 };
38
39 panel: panel {
40 status = "okay";
41 };
42
43 panel_reg: panel_regulator {
44 status = "okay";
45 };
25}; 46};
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index 18177f5a7464..18b8b9e29704 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -387,6 +387,7 @@
387 rstc@fffffd00 { 387 rstc@fffffd00 {
388 compatible = "atmel,at91sam9g45-rstc"; 388 compatible = "atmel,at91sam9g45-rstc";
389 reg = <0xfffffd00 0x10>; 389 reg = <0xfffffd00 0x10>;
390 clocks = <&clk32k>;
390 }; 391 };
391 392
392 pit: timer@fffffd30 { 393 pit: timer@fffffd30 {
@@ -400,22 +401,23 @@
400 shdwc@fffffd10 { 401 shdwc@fffffd10 {
401 compatible = "atmel,at91sam9rl-shdwc"; 402 compatible = "atmel,at91sam9rl-shdwc";
402 reg = <0xfffffd10 0x10>; 403 reg = <0xfffffd10 0x10>;
404 clocks = <&clk32k>;
403 }; 405 };
404 406
405 tcb0: timer@fff7c000 { 407 tcb0: timer@fff7c000 {
406 compatible = "atmel,at91rm9200-tcb"; 408 compatible = "atmel,at91rm9200-tcb";
407 reg = <0xfff7c000 0x100>; 409 reg = <0xfff7c000 0x100>;
408 interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>; 410 interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>;
409 clocks = <&tcb0_clk>, <&tcb0_clk>, <&tcb0_clk>; 411 clocks = <&tcb0_clk>, <&tcb0_clk>, <&tcb0_clk>, <&clk32k>;
410 clock-names = "t0_clk", "t1_clk", "t2_clk"; 412 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
411 }; 413 };
412 414
413 tcb1: timer@fffd4000 { 415 tcb1: timer@fffd4000 {
414 compatible = "atmel,at91rm9200-tcb"; 416 compatible = "atmel,at91rm9200-tcb";
415 reg = <0xfffd4000 0x100>; 417 reg = <0xfffd4000 0x100>;
416 interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>; 418 interrupts = <18 IRQ_TYPE_LEVEL_HIGH 0>;
417 clocks = <&tcb0_clk>, <&tcb0_clk>, <&tcb0_clk>; 419 clocks = <&tcb0_clk>, <&tcb0_clk>, <&tcb0_clk>, <&clk32k>;
418 clock-names = "t0_clk", "t1_clk", "t2_clk"; 420 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
419 }; 421 };
420 422
421 dma: dma-controller@ffffec00 { 423 dma: dma-controller@ffffec00 {
@@ -498,23 +500,31 @@
498 }; 500 };
499 501
500 isi { 502 isi {
501 pinctrl_isi: isi-0 { 503 pinctrl_isi_data_0_7: isi-0-data-0-7 {
502 atmel,pins = <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* D8 */ 504 atmel,pins =
503 AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE /* D9 */ 505 <AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* D0 */
504 AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* D10 */ 506 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* D1 */
505 AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE /* D11 */ 507 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* D2 */
506 AT91_PIOB 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* D0 */ 508 AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* D3 */
507 AT91_PIOB 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* D1 */ 509 AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* D4 */
508 AT91_PIOB 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* D2 */ 510 AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* D5 */
509 AT91_PIOB 23 AT91_PERIPH_A AT91_PINCTRL_NONE /* D3 */ 511 AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* D6 */
510 AT91_PIOB 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* D4 */ 512 AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* D7 */
511 AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE /* D5 */ 513 AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PCK */
512 AT91_PIOB 26 AT91_PERIPH_A AT91_PINCTRL_NONE /* D6 */ 514 AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* VSYNC */
513 AT91_PIOB 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* D7 */ 515 AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* HSYNC */
514 AT91_PIOB 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* PCK */ 516 };
515 AT91_PIOB 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* VSYNC */ 517
516 AT91_PIOB 30 AT91_PERIPH_A AT91_PINCTRL_NONE /* HSYNC */ 518 pinctrl_isi_data_8_9: isi-0-data-8-9 {
517 AT91_PIOB 31 AT91_PERIPH_A AT91_PINCTRL_NONE /* MCK */>; 519 atmel,pins =
520 <AT91_PIOB 8 AT91_PERIPH_B AT91_PINCTRL_NONE /* D8 */
521 AT91_PIOB 9 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* D9 */
522 };
523
524 pinctrl_isi_data_10_11: isi-0-data-10-11 {
525 atmel,pins =
526 <AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE /* D10 */
527 AT91_PIOB 11 AT91_PERIPH_B AT91_PINCTRL_NONE>; /* D11 */
518 }; 528 };
519 }; 529 };
520 530
@@ -1067,9 +1077,11 @@
1067 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 5>; 1077 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 5>;
1068 clocks = <&isi_clk>; 1078 clocks = <&isi_clk>;
1069 clock-names = "isi_clk"; 1079 clock-names = "isi_clk";
1070 pinctrl-names = "default";
1071 pinctrl-0 = <&pinctrl_isi>;
1072 status = "disabled"; 1080 status = "disabled";
1081 port {
1082 #address-cells = <1>;
1083 #size-cells = <0>;
1084 };
1073 }; 1085 };
1074 1086
1075 pwm0: pwm@fffb8000 { 1087 pwm0: pwm@fffb8000 {
@@ -1113,6 +1125,7 @@
1113 compatible = "atmel,at91sam9260-wdt"; 1125 compatible = "atmel,at91sam9260-wdt";
1114 reg = <0xfffffd40 0x10>; 1126 reg = <0xfffffd40 0x10>;
1115 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1127 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1128 clocks = <&clk32k>;
1116 atmel,watchdog-type = "hardware"; 1129 atmel,watchdog-type = "hardware";
1117 atmel,reset-type = "all"; 1130 atmel,reset-type = "all";
1118 atmel,dbg-halt; 1131 atmel,dbg-halt;
@@ -1247,6 +1260,7 @@
1247 compatible = "atmel,at91rm9200-rtc"; 1260 compatible = "atmel,at91rm9200-rtc";
1248 reg = <0xfffffdb0 0x30>; 1261 reg = <0xfffffdb0 0x30>;
1249 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1262 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1263 clocks = <&clk32k>;
1250 status = "disabled"; 1264 status = "disabled";
1251 }; 1265 };
1252 1266
diff --git a/arch/arm/boot/dts/at91sam9m10g45ek.dts b/arch/arm/boot/dts/at91sam9m10g45ek.dts
index 1375d3362603..d1ae60a855d4 100644
--- a/arch/arm/boot/dts/at91sam9m10g45ek.dts
+++ b/arch/arm/boot/dts/at91sam9m10g45ek.dts
@@ -63,6 +63,25 @@
63 63
64 i2c0: i2c@fff84000 { 64 i2c0: i2c@fff84000 {
65 status = "okay"; 65 status = "okay";
66 ov2640: camera@30 {
67 compatible = "ovti,ov2640";
68 reg = <0x30>;
69 pinctrl-names = "default";
70 pinctrl-0 = <&pinctrl_pck1_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
71 resetb-gpios = <&pioD 12 GPIO_ACTIVE_LOW>;
72 pwdn-gpios = <&pioD 13 GPIO_ACTIVE_HIGH>;
73 clocks = <&pck1>;
74 clock-names = "xvclk";
75 assigned-clocks = <&pck1>;
76 assigned-clock-rates = <25000000>;
77
78 port {
79 ov2640_0: endpoint {
80 remote-endpoint = <&isi_0>;
81 bus-width = <8>;
82 };
83 };
84 };
66 }; 85 };
67 86
68 i2c1: i2c@fff88000 { 87 i2c1: i2c@fff88000 {
@@ -101,6 +120,22 @@
101 }; 120 };
102 121
103 pinctrl@fffff200 { 122 pinctrl@fffff200 {
123 camera_sensor {
124 pinctrl_pck1_as_isi_mck: pck1_as_isi_mck-0 {
125 atmel,pins =
126 <AT91_PIOB 31 AT91_PERIPH_B AT91_PINCTRL_NONE>;
127 };
128
129 pinctrl_sensor_reset: sensor_reset-0 {
130 atmel,pins =
131 <AT91_PIOD 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
132 };
133
134 pinctrl_sensor_power: sensor_power-0 {
135 atmel,pins =
136 <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
137 };
138 };
104 mmc0 { 139 mmc0 {
105 pinctrl_board_mmc0: mmc0-board { 140 pinctrl_board_mmc0: mmc0-board {
106 atmel,pins = 141 atmel,pins =
@@ -155,6 +190,18 @@
155 status = "okay"; 190 status = "okay";
156 }; 191 };
157 192
193 isi@fffb4000 {
194 pinctrl-names = "default";
195 pinctrl-0 = <&pinctrl_isi_data_0_7>;
196 status = "okay";
197 port {
198 isi_0: endpoint {
199 remote-endpoint = <&ov2640_0>;
200 bus-width = <8>;
201 };
202 };
203 };
204
158 pwm0: pwm@fffb8000 { 205 pwm0: pwm@fffb8000 {
159 status = "okay"; 206 status = "okay";
160 207
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index 5c2a8c8c8bd4..32bc9a189db0 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -376,6 +376,7 @@
376 rstc@fffffe00 { 376 rstc@fffffe00 {
377 compatible = "atmel,at91sam9g45-rstc"; 377 compatible = "atmel,at91sam9g45-rstc";
378 reg = <0xfffffe00 0x10>; 378 reg = <0xfffffe00 0x10>;
379 clocks = <&clk32k>;
379 }; 380 };
380 381
381 pit: timer@fffffe30 { 382 pit: timer@fffffe30 {
@@ -388,6 +389,7 @@
388 shdwc@fffffe10 { 389 shdwc@fffffe10 {
389 compatible = "atmel,at91sam9x5-shdwc"; 390 compatible = "atmel,at91sam9x5-shdwc";
390 reg = <0xfffffe10 0x10>; 391 reg = <0xfffffe10 0x10>;
392 clocks = <&clk32k>;
391 }; 393 };
392 394
393 sckc@fffffe50 { 395 sckc@fffffe50 {
@@ -431,16 +433,44 @@
431 compatible = "atmel,at91sam9x5-tcb"; 433 compatible = "atmel,at91sam9x5-tcb";
432 reg = <0xf8008000 0x100>; 434 reg = <0xf8008000 0x100>;
433 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>; 435 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
434 clocks = <&tcb_clk>; 436 clocks = <&tcb_clk>, <&clk32k>;
435 clock-names = "t0_clk"; 437 clock-names = "t0_clk", "slow_clk";
436 }; 438 };
437 439
438 tcb1: timer@f800c000 { 440 tcb1: timer@f800c000 {
439 compatible = "atmel,at91sam9x5-tcb"; 441 compatible = "atmel,at91sam9x5-tcb";
440 reg = <0xf800c000 0x100>; 442 reg = <0xf800c000 0x100>;
441 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>; 443 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
442 clocks = <&tcb_clk>; 444 clocks = <&tcb_clk>, <&clk32k>;
443 clock-names = "t0_clk"; 445 clock-names = "t0_clk", "slow_clk";
446 };
447
448 hlcdc: hlcdc@f8038000 {
449 compatible = "atmel,at91sam9n12-hlcdc";
450 reg = <0xf8038000 0x2000>;
451 interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
452 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
453 clock-names = "periph_clk", "sys_clk", "slow_clk";
454 status = "disabled";
455
456 hlcdc-display-controller {
457 compatible = "atmel,hlcdc-display-controller";
458 #address-cells = <1>;
459 #size-cells = <0>;
460
461 port@0 {
462 #address-cells = <1>;
463 #size-cells = <0>;
464 reg = <0>;
465 };
466 };
467
468 hlcdc_pwm: hlcdc-pwm {
469 compatible = "atmel,hlcdc-pwm";
470 pinctrl-names = "default";
471 pinctrl-0 = <&pinctrl_lcd_pwm>;
472 #pwm-cells = <3>;
473 };
444 }; 474 };
445 475
446 dma: dma-controller@ffffec00 { 476 dma: dma-controller@ffffec00 {
@@ -475,6 +505,49 @@
475 }; 505 };
476 }; 506 };
477 507
508 lcd {
509 pinctrl_lcd_base: lcd-base-0 {
510 atmel,pins =
511 <AT91_PIOC 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDVSYNC */
512 AT91_PIOC 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDHSYNC */
513 AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDISP */
514 AT91_PIOC 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDEN */
515 AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPCK */
516 };
517
518 pinctrl_lcd_pwm: lcd-pwm-0 {
519 atmel,pins = <AT91_PIOC 26 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPWM */
520 };
521
522 pinctrl_lcd_rgb888: lcd-rgb-3 {
523 atmel,pins =
524 <AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
525 AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
526 AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
527 AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
528 AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
529 AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
530 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
531 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
532 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
533 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
534 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
535 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
536 AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
537 AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
538 AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
539 AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
540 AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD16 pin */
541 AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD17 pin */
542 AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD18 pin */
543 AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD19 pin */
544 AT91_PIOC 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD20 pin */
545 AT91_PIOC 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD21 pin */
546 AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD22 pin */
547 AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD23 pin */
548 };
549 };
550
478 usart0 { 551 usart0 {
479 pinctrl_usart0: usart0-0 { 552 pinctrl_usart0: usart0-0 {
480 atmel,pins = 553 atmel,pins =
@@ -891,6 +964,7 @@
891 compatible = "atmel,at91sam9260-wdt"; 964 compatible = "atmel,at91sam9260-wdt";
892 reg = <0xfffffe40 0x10>; 965 reg = <0xfffffe40 0x10>;
893 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 966 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
967 clocks = <&clk32k>;
894 atmel,watchdog-type = "hardware"; 968 atmel,watchdog-type = "hardware";
895 atmel,reset-type = "all"; 969 atmel,reset-type = "all";
896 atmel,dbg-halt; 970 atmel,dbg-halt;
@@ -901,6 +975,7 @@
901 compatible = "atmel,at91rm9200-rtc"; 975 compatible = "atmel,at91rm9200-rtc";
902 reg = <0xfffffeb0 0x40>; 976 reg = <0xfffffeb0 0x40>;
903 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 977 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
978 clocks = <&clk32k>;
904 status = "disabled"; 979 status = "disabled";
905 }; 980 };
906 981
diff --git a/arch/arm/boot/dts/at91sam9n12ek.dts b/arch/arm/boot/dts/at91sam9n12ek.dts
index eab17fcace6d..efa75064d38a 100644
--- a/arch/arm/boot/dts/at91sam9n12ek.dts
+++ b/arch/arm/boot/dts/at91sam9n12ek.dts
@@ -128,6 +128,22 @@
128 }; 128 };
129 }; 129 };
130 130
131 hlcdc: hlcdc@f8038000 {
132 status = "okay";
133
134 hlcdc-display-controller {
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
137
138 port@0 {
139 hlcdc_panel_output: endpoint@0 {
140 reg = <0>;
141 remote-endpoint = <&panel_input>;
142 };
143 };
144 };
145 };
146
131 usb1: gadget@f803c000 { 147 usb1: gadget@f803c000 {
132 pinctrl-names = "default"; 148 pinctrl-names = "default";
133 pinctrl-0 = <&pinctrl_usb1_vbus_sense>; 149 pinctrl-0 = <&pinctrl_usb1_vbus_sense>;
@@ -161,6 +177,23 @@
161 }; 177 };
162 }; 178 };
163 179
180 backlight: backlight {
181 compatible = "pwm-backlight";
182 pwms = <&hlcdc_pwm 0 50000 0>;
183 brightness-levels = <0 4 8 16 32 64 128 255>;
184 default-brightness-level = <6>;
185 power-supply = <&bl_reg>;
186 status = "okay";
187 };
188
189 bl_reg: backlight_regulator {
190 compatible = "regulator-fixed";
191 regulator-name = "backlight-power-supply";
192 regulator-min-microvolt = <5000000>;
193 regulator-max-microvolt = <5000000>;
194 status = "okay";
195 };
196
164 leds { 197 leds {
165 compatible = "gpio-leds"; 198 compatible = "gpio-leds";
166 199
@@ -194,6 +227,34 @@
194 }; 227 };
195 }; 228 };
196 229
230 panel: panel {
231 compatible = "qd,qd43003c0-40", "simple-panel";
232 backlight = <&backlight>;
233 power-supply = <&panel_reg>;
234 #address-cells = <1>;
235 #size-cells = <0>;
236 status = "okay";
237
238 port@0 {
239 reg = <0>;
240 #address-cells = <1>;
241 #size-cells = <0>;
242
243 panel_input: endpoint@0 {
244 reg = <0>;
245 remote-endpoint = <&hlcdc_panel_output>;
246 };
247 };
248 };
249
250 panel_reg: panel_regulator {
251 compatible = "regulator-fixed";
252 regulator-name = "panel-power-supply";
253 regulator-min-microvolt = <3300000>;
254 regulator-max-microvolt = <3300000>;
255 status = "okay";
256 };
257
197 sound { 258 sound {
198 compatible = "atmel,asoc-wm8904"; 259 compatible = "atmel,asoc-wm8904";
199 pinctrl-names = "default"; 260 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
index c9920c64791c..a0b90aedd3b8 100644
--- a/arch/arm/boot/dts/at91sam9rl.dtsi
+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -121,8 +121,8 @@
121 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 0>, 121 interrupts = <16 IRQ_TYPE_LEVEL_HIGH 0>,
122 <17 IRQ_TYPE_LEVEL_HIGH 0>, 122 <17 IRQ_TYPE_LEVEL_HIGH 0>,
123 <18 IRQ_TYPE_LEVEL_HIGH 0>; 123 <18 IRQ_TYPE_LEVEL_HIGH 0>;
124 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>; 124 clocks = <&tc0_clk>, <&tc1_clk>, <&tc2_clk>, <&clk32k>;
125 clock-names = "t0_clk", "t1_clk", "t2_clk"; 125 clock-names = "t0_clk", "t1_clk", "t2_clk", "slow_clk";
126 }; 126 };
127 127
128 mmc0: mmc@fffa4000 { 128 mmc0: mmc@fffa4000 {
@@ -1018,11 +1018,13 @@
1018 rstc@fffffd00 { 1018 rstc@fffffd00 {
1019 compatible = "atmel,at91sam9260-rstc"; 1019 compatible = "atmel,at91sam9260-rstc";
1020 reg = <0xfffffd00 0x10>; 1020 reg = <0xfffffd00 0x10>;
1021 clocks = <&clk32k>;
1021 }; 1022 };
1022 1023
1023 shdwc@fffffd10 { 1024 shdwc@fffffd10 {
1024 compatible = "atmel,at91sam9260-shdwc"; 1025 compatible = "atmel,at91sam9260-shdwc";
1025 reg = <0xfffffd10 0x10>; 1026 reg = <0xfffffd10 0x10>;
1027 clocks = <&clk32k>;
1026 }; 1028 };
1027 1029
1028 pit: timer@fffffd30 { 1030 pit: timer@fffffd30 {
@@ -1036,6 +1038,7 @@
1036 compatible = "atmel,at91sam9260-wdt"; 1038 compatible = "atmel,at91sam9260-wdt";
1037 reg = <0xfffffd40 0x10>; 1039 reg = <0xfffffd40 0x10>;
1038 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1040 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1041 clocks = <&clk32k>;
1039 status = "disabled"; 1042 status = "disabled";
1040 }; 1043 };
1041 1044
@@ -1083,6 +1086,7 @@
1083 compatible = "atmel,at91rm9200-rtc"; 1086 compatible = "atmel,at91rm9200-rtc";
1084 reg = <0xfffffe00 0x40>; 1087 reg = <0xfffffe00 0x40>;
1085 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1088 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1089 clocks = <&clk32k>;
1086 status = "disabled"; 1090 status = "disabled";
1087 }; 1091 };
1088 1092
diff --git a/arch/arm/boot/dts/at91sam9x35.dtsi b/arch/arm/boot/dts/at91sam9x35.dtsi
index 499cdc81f4c0..d9054e8167b7 100644
--- a/arch/arm/boot/dts/at91sam9x35.dtsi
+++ b/arch/arm/boot/dts/at91sam9x35.dtsi
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include "at91sam9x5.dtsi" 9#include "at91sam9x5.dtsi"
10#include "at91sam9x5_lcd.dtsi"
10#include "at91sam9x5_macb0.dtsi" 11#include "at91sam9x5_macb0.dtsi"
11#include "at91sam9x5_can.dtsi" 12#include "at91sam9x5_can.dtsi"
12 13
diff --git a/arch/arm/boot/dts/at91sam9x35ek.dts b/arch/arm/boot/dts/at91sam9x35ek.dts
index 343d32818ca3..fcb67180ea26 100644
--- a/arch/arm/boot/dts/at91sam9x35ek.dts
+++ b/arch/arm/boot/dts/at91sam9x35ek.dts
@@ -8,6 +8,7 @@
8 */ 8 */
9/dts-v1/; 9/dts-v1/;
10#include "at91sam9x35.dtsi" 10#include "at91sam9x35.dtsi"
11#include "at91sam9x5dm.dtsi"
11#include "at91sam9x5ek.dtsi" 12#include "at91sam9x5ek.dtsi"
12 13
13/ { 14/ {
@@ -20,6 +21,25 @@
20 phy-mode = "rmii"; 21 phy-mode = "rmii";
21 status = "okay"; 22 status = "okay";
22 }; 23 };
24 hlcdc: hlcdc@f8038000 {
25 status = "okay";
26 };
23 }; 27 };
24 }; 28 };
29
30 backlight: backlight {
31 status = "okay";
32 };
33
34 bl_reg: backlight_regulator {
35 status = "okay";
36 };
37
38 panel: panel {
39 status = "okay";
40 };
41
42 panel_reg: panel_regulator {
43 status = "okay";
44 };
25}; 45};
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index b6c8df8d380e..747d8f070a5c 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -376,11 +376,13 @@
376 rstc@fffffe00 { 376 rstc@fffffe00 {
377 compatible = "atmel,at91sam9g45-rstc"; 377 compatible = "atmel,at91sam9g45-rstc";
378 reg = <0xfffffe00 0x10>; 378 reg = <0xfffffe00 0x10>;
379 clocks = <&clk32k>;
379 }; 380 };
380 381
381 shdwc@fffffe10 { 382 shdwc@fffffe10 {
382 compatible = "atmel,at91sam9x5-shdwc"; 383 compatible = "atmel,at91sam9x5-shdwc";
383 reg = <0xfffffe10 0x10>; 384 reg = <0xfffffe10 0x10>;
385 clocks = <&clk32k>;
384 }; 386 };
385 387
386 pit: timer@fffffe30 { 388 pit: timer@fffffe30 {
@@ -418,16 +420,16 @@
418 compatible = "atmel,at91sam9x5-tcb"; 420 compatible = "atmel,at91sam9x5-tcb";
419 reg = <0xf8008000 0x100>; 421 reg = <0xf8008000 0x100>;
420 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>; 422 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
421 clocks = <&tcb0_clk>; 423 clocks = <&tcb0_clk>, <&clk32k>;
422 clock-names = "t0_clk"; 424 clock-names = "t0_clk", "slow_clk";
423 }; 425 };
424 426
425 tcb1: timer@f800c000 { 427 tcb1: timer@f800c000 {
426 compatible = "atmel,at91sam9x5-tcb"; 428 compatible = "atmel,at91sam9x5-tcb";
427 reg = <0xf800c000 0x100>; 429 reg = <0xf800c000 0x100>;
428 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>; 430 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 0>;
429 clocks = <&tcb0_clk>; 431 clocks = <&tcb0_clk>, <&clk32k>;
430 clock-names = "t0_clk"; 432 clock-names = "t0_clk", "slow_clk";
431 }; 433 };
432 434
433 dma0: dma-controller@ffffec00 { 435 dma0: dma-controller@ffffec00 {
@@ -1173,6 +1175,7 @@
1173 compatible = "atmel,at91sam9260-wdt"; 1175 compatible = "atmel,at91sam9260-wdt";
1174 reg = <0xfffffe40 0x10>; 1176 reg = <0xfffffe40 0x10>;
1175 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1177 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1178 clocks = <&clk32k>;
1176 atmel,watchdog-type = "hardware"; 1179 atmel,watchdog-type = "hardware";
1177 atmel,reset-type = "all"; 1180 atmel,reset-type = "all";
1178 atmel,dbg-halt; 1181 atmel,dbg-halt;
@@ -1183,6 +1186,7 @@
1183 compatible = "atmel,at91sam9x5-rtc"; 1186 compatible = "atmel,at91sam9x5-rtc";
1184 reg = <0xfffffeb0 0x40>; 1187 reg = <0xfffffeb0 0x40>;
1185 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1188 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1189 clocks = <&clk32k>;
1186 status = "disabled"; 1190 status = "disabled";
1187 }; 1191 };
1188 1192
diff --git a/arch/arm/boot/dts/at91sam9x5_lcd.dtsi b/arch/arm/boot/dts/at91sam9x5_lcd.dtsi
index 485302e8233d..1629db9dd563 100644
--- a/arch/arm/boot/dts/at91sam9x5_lcd.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5_lcd.dtsi
@@ -13,6 +13,137 @@
13/ { 13/ {
14 ahb { 14 ahb {
15 apb { 15 apb {
16 hlcdc: hlcdc@f8038000 {
17 compatible = "atmel,at91sam9x5-hlcdc";
18 reg = <0xf8038000 0x4000>;
19 interrupts = <25 IRQ_TYPE_LEVEL_HIGH 0>;
20 clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
21 clock-names = "periph_clk","sys_clk", "slow_clk";
22 status = "disabled";
23
24 hlcdc-display-controller {
25 compatible = "atmel,hlcdc-display-controller";
26 #address-cells = <1>;
27 #size-cells = <0>;
28
29 port@0 {
30 #address-cells = <1>;
31 #size-cells = <0>;
32 reg = <0>;
33 };
34 };
35
36 hlcdc_pwm: hlcdc-pwm {
37 compatible = "atmel,hlcdc-pwm";
38 pinctrl-names = "default";
39 pinctrl-0 = <&pinctrl_lcd_pwm>;
40 #pwm-cells = <3>;
41 };
42 };
43
44 pinctrl@fffff400 {
45 lcd {
46 pinctrl_lcd_base: lcd-base-0 {
47 atmel,pins =
48 <AT91_PIOC 27 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDVSYNC */
49 AT91_PIOC 28 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDHSYNC */
50 AT91_PIOC 24 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDISP */
51 AT91_PIOC 29 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDDEN */
52 AT91_PIOC 30 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPCK */
53 };
54
55 pinctrl_lcd_pwm: lcd-pwm-0 {
56 atmel,pins = <AT91_PIOC 26 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDPWM */
57 };
58
59 pinctrl_lcd_rgb444: lcd-rgb-0 {
60 atmel,pins =
61 <AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
62 AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
63 AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
64 AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
65 AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
66 AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
67 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
68 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
69 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
70 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
71 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
72 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD11 pin */
73 };
74
75 pinctrl_lcd_rgb565: lcd-rgb-1 {
76 atmel,pins =
77 <AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
78 AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
79 AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
80 AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
81 AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
82 AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
83 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
84 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
85 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
86 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
87 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
88 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
89 AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
90 AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
91 AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
92 AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD15 pin */
93 };
94
95 pinctrl_lcd_rgb666: lcd-rgb-2 {
96 atmel,pins =
97 <AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
98 AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
99 AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
100 AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
101 AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
102 AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
103 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
104 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
105 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
106 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
107 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
108 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
109 AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
110 AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
111 AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
112 AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
113 AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD16 pin */
114 AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD17 pin */
115 };
116
117 pinctrl_lcd_rgb888: lcd-rgb-3 {
118 atmel,pins =
119 <AT91_PIOC 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD0 pin */
120 AT91_PIOC 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD1 pin */
121 AT91_PIOC 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD2 pin */
122 AT91_PIOC 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD3 pin */
123 AT91_PIOC 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD4 pin */
124 AT91_PIOC 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD5 pin */
125 AT91_PIOC 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD6 pin */
126 AT91_PIOC 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD7 pin */
127 AT91_PIOC 8 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD8 pin */
128 AT91_PIOC 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD9 pin */
129 AT91_PIOC 10 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD10 pin */
130 AT91_PIOC 11 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD11 pin */
131 AT91_PIOC 12 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD12 pin */
132 AT91_PIOC 13 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD13 pin */
133 AT91_PIOC 14 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD14 pin */
134 AT91_PIOC 15 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD15 pin */
135 AT91_PIOC 16 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD16 pin */
136 AT91_PIOC 17 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD17 pin */
137 AT91_PIOC 18 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD18 pin */
138 AT91_PIOC 19 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD19 pin */
139 AT91_PIOC 20 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD20 pin */
140 AT91_PIOC 21 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD21 pin */
141 AT91_PIOC 22 AT91_PERIPH_A AT91_PINCTRL_NONE /* LCDD22 pin */
142 AT91_PIOC 23 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* LCDD23 pin */
143 };
144 };
145 };
146
16 pmc: pmc@fffffc00 { 147 pmc: pmc@fffffc00 {
17 periphck { 148 periphck {
18 lcdc_clk: lcdc_clk { 149 lcdc_clk: lcdc_clk {
@@ -20,6 +151,14 @@
20 reg = <25>; 151 reg = <25>;
21 }; 152 };
22 }; 153 };
154
155 systemck {
156 lcdck: lcdck {
157 #clock-cells = <0>;
158 reg = <3>;
159 clocks = <&mck>;
160 };
161 };
23 }; 162 };
24 }; 163 };
25 }; 164 };
diff --git a/arch/arm/boot/dts/at91sam9x5dm.dtsi b/arch/arm/boot/dts/at91sam9x5dm.dtsi
new file mode 100644
index 000000000000..34c089fe0bc0
--- /dev/null
+++ b/arch/arm/boot/dts/at91sam9x5dm.dtsi
@@ -0,0 +1,101 @@
1/*
2 * at91sam9x5dm.dtsi - Device Tree file for SAM9x5 display module
3 *
4 * Copyright (C) 2014 Atmel,
5 * 2014 Free Electrons
6 *
7 * Author: Boris Brezillon <boris.brezillon@free-electrons.com>
8 *
9 * Licensed under GPLv2 or later.
10 */
11
12/ {
13 ahb {
14 apb {
15 i2c0: i2c@f8010000 {
16 qt1070: keyboard@1b {
17 compatible = "qt1070";
18 reg = <0x1b>;
19 interrupt-parent = <&pioA>;
20 interrupts = <7 0x0>;
21 pinctrl-names = "default";
22 pinctrl-0 = <&pinctrl_qt1070_irq>;
23 wakeup-source;
24 };
25 };
26
27 hlcdc: hlcdc@f8038000 {
28 hlcdc-display-controller {
29 pinctrl-names = "default";
30 pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
31
32 port@0 {
33 hlcdc_panel_output: endpoint@0 {
34 reg = <0>;
35 remote-endpoint = <&panel_input>;
36 };
37 };
38 };
39 };
40
41 adc0: adc@f804c000 {
42 atmel,adc-ts-wires = <4>;
43 atmel,adc-ts-pressure-threshold = <10000>;
44 status = "okay";
45 };
46
47 pinctrl@fffff400 {
48 board {
49 pinctrl_qt1070_irq: qt1070_irq {
50 atmel,pins =
51 <AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
52 };
53 };
54 };
55 };
56 };
57
58 backlight: backlight {
59 compatible = "pwm-backlight";
60 pwms = <&hlcdc_pwm 0 50000 0>;
61 brightness-levels = <0 4 8 16 32 64 128 255>;
62 default-brightness-level = <6>;
63 power-supply = <&bl_reg>;
64 status = "disabled";
65 };
66
67 bl_reg: backlight_regulator {
68 compatible = "regulator-fixed";
69 regulator-name = "backlight-power-supply";
70 regulator-min-microvolt = <5000000>;
71 regulator-max-microvolt = <5000000>;
72 status = "disabled";
73 };
74
75 panel: panel {
76 compatible = "foxlink,fl500wvr00-a0t", "simple-panel";
77 backlight = <&backlight>;
78 power-supply = <&panel_reg>;
79 #address-cells = <1>;
80 #size-cells = <0>;
81 status = "disabled";
82
83 port@0 {
84 #address-cells = <1>;
85 #size-cells = <0>;
86
87 panel_input: endpoint@0 {
88 reg = <0>;
89 remote-endpoint = <&hlcdc_panel_output>;
90 };
91 };
92 };
93
94 panel_reg: panel_regulator {
95 compatible = "regulator-fixed";
96 regulator-name = "panel-power-supply";
97 regulator-min-microvolt = <3300000>;
98 regulator-max-microvolt = <3300000>;
99 status = "disabled";
100 };
101};
diff --git a/arch/arm/boot/dts/atlas7-evb.dts b/arch/arm/boot/dts/atlas7-evb.dts
index 49cf59a95572..1e9cd1a8508e 100644
--- a/arch/arm/boot/dts/atlas7-evb.dts
+++ b/arch/arm/boot/dts/atlas7-evb.dts
@@ -10,6 +10,9 @@
10 10
11/include/ "atlas7.dtsi" 11/include/ "atlas7.dtsi"
12 12
13#include <dt-bindings/input/input.h>
14#include <dt-bindings/gpio/gpio.h>
15
13/ { 16/ {
14 model = "CSR SiRFatlas7 Evaluation Board"; 17 model = "CSR SiRFatlas7 Evaluation Board";
15 compatible = "sirf,atlas7-cb", "sirf,atlas7"; 18 compatible = "sirf,atlas7-cb", "sirf,atlas7";
@@ -106,5 +109,20 @@
106 }; 109 };
107 }; 110 };
108 }; 111 };
112
113 gpio_keys {
114 compatible = "gpio-keys";
115 status = "okay";
116 #address-cells = <1>;
117 #size-cells = <0>;
118
119 rearview_key {
120 label = "rearview key";
121 linux,code = <KEY_CAMERA>;
122 gpios = <&gpio_1 3 GPIO_ACTIVE_LOW>;
123 debounce_interval = <100>;
124 };
125 };
126
109 }; 127 };
110}; 128};
diff --git a/arch/arm/boot/dts/atlas7.dtsi b/arch/arm/boot/dts/atlas7.dtsi
index 3e21311f9514..83449b33de6b 100644
--- a/arch/arm/boot/dts/atlas7.dtsi
+++ b/arch/arm/boot/dts/atlas7.dtsi
@@ -21,6 +21,10 @@
21 serial5 = &uart5; 21 serial5 = &uart5;
22 serial6 = &uart6; 22 serial6 = &uart6;
23 serial9 = &usp2; 23 serial9 = &usp2;
24 spi1 = &spi1;
25 spi2 = &usp1;
26 spi3 = &usp2;
27 spi4 = &usp3;
24 }; 28 };
25 cpus { 29 cpus {
26 #address-cells = <1>; 30 #address-cells = <1>;
@@ -53,6 +57,11 @@
53 }; 57 };
54 }; 58 };
55 59
60 arm-pmu {
61 compatible = "arm,cortex-a7-pmu";
62 interrupts = <0 29 4>, <0 82 4>;
63 };
64
56 noc { 65 noc {
57 compatible = "simple-bus"; 66 compatible = "simple-bus";
58 #address-cells = <1>; 67 #address-cells = <1>;
@@ -1205,7 +1214,8 @@
1205 #address-cells = <1>; 1214 #address-cells = <1>;
1206 #size-cells = <1>; 1215 #size-cells = <1>;
1207 ranges = <0x18641000 0x18641000 0x3000>, 1216 ranges = <0x18641000 0x18641000 0x3000>,
1208 <0x18620000 0x18620000 0x1000>; 1217 <0x18620000 0x18620000 0x1000>,
1218 <0x18630000 0x18630000 0x10000>;
1209 1219
1210 cgum@18641000 { 1220 cgum@18641000 {
1211 compatible = "sirf,nocfw-cgum"; 1221 compatible = "sirf,nocfw-cgum";
@@ -1218,6 +1228,15 @@
1218 #clock-cells = <1>; 1228 #clock-cells = <1>;
1219 #reset-cells = <1>; 1229 #reset-cells = <1>;
1220 }; 1230 };
1231 pwm: pwm@18630000 {
1232 compatible = "sirf,prima2-pwm";
1233 #pwm-cells = <2>;
1234 reg = <0x18630000 0x10000>;
1235 clocks = <&car 138>, <&car 139>, <&car 237>,
1236 <&car 240>, <&car 140>, <&car 246>;
1237 clock-names = "pwmc", "sigsrc0", "sigsrc1",
1238 "sigsrc2", "sigsrc3", "sigsrc4";
1239 };
1221 }; 1240 };
1222 1241
1223 gnssm { 1242 gnssm {
@@ -1231,6 +1250,7 @@
1231 <0x18040000 0x18040000 0x1000>, 1250 <0x18040000 0x18040000 0x1000>,
1232 <0x18050000 0x18050000 0x1000>, 1251 <0x18050000 0x18050000 0x1000>,
1233 <0x18060000 0x18060000 0x1000>, 1252 <0x18060000 0x18060000 0x1000>,
1253 <0x180b0000 0x180b0000 0x4000>,
1234 <0x18100000 0x18100000 0x3000>, 1254 <0x18100000 0x18100000 0x3000>,
1235 <0x18250000 0x18250000 0x10000>, 1255 <0x18250000 0x18250000 0x10000>,
1236 <0x18200000 0x18200000 0x1000>; 1256 <0x18200000 0x18200000 0x1000>;
@@ -1314,6 +1334,18 @@
1314 dma-names = "rx", "tx"; 1334 dma-names = "rx", "tx";
1315 status = "disabled"; 1335 status = "disabled";
1316 }; 1336 };
1337 gmac: eth@180b0000 {
1338 compatible = "snps, dwc-eth-qos";
1339 reg = <0x180b0000 0x4000>;
1340 interrupts = <0 59 0>, <0 70 0>;
1341 interrupt-names = "macirq", "macpmt";
1342 clocks = <&car 39>, <&car 45>,
1343 <&car 86>, <&car 87>;
1344 clock-names = "gnssm_rgmii", "gnssm_gmac",
1345 "rgmii", "gmac";
1346 local-mac-address = [00 00 00 00 00 00];
1347 phy-mode = "rgmii";
1348 };
1317 dspub@18250000 { 1349 dspub@18250000 {
1318 compatible = "dx,cc44p"; 1350 compatible = "dx,cc44p";
1319 reg = <0x18250000 0x10000>; 1351 reg = <0x18250000 0x10000>;
@@ -1338,18 +1370,51 @@
1338 compatible = "arteris, flexnoc", "simple-bus"; 1370 compatible = "arteris, flexnoc", "simple-bus";
1339 #address-cells = <1>; 1371 #address-cells = <1>;
1340 #size-cells = <1>; 1372 #size-cells = <1>;
1341 ranges = <0x13000000 0x13000000 0x3000>; 1373 ranges = <0x13000000 0x13000000 0x3000>,
1374 <0x13010000 0x13010000 0x1400>,
1375 <0x13010800 0x13010800 0x100>,
1376 <0x13011000 0x13011000 0x100>;
1342 gpum@0x13000000 { 1377 gpum@0x13000000 {
1343 compatible = "sirf,nocfw-gpum"; 1378 compatible = "sirf,nocfw-gpum";
1344 reg = <0x13000000 0x3000>; 1379 reg = <0x13000000 0x3000>;
1345 }; 1380 };
1381 dmacsdrr: dma-controller@13010800 {
1382 cell-index = <5>;
1383 compatible = "sirf,atlas7-dmac-v2";
1384 reg = <0x13010800 0x100>;
1385 interrupts = <0 8 0>;
1386 clocks = <&car 127>;
1387 #dma-cells = <1>;
1388 #dma-channels = <1>;
1389 };
1390 dmacsdrw: dma-controller@13011000 {
1391 cell-index = <6>;
1392 compatible = "sirf,atlas7-dmac-v2";
1393 reg = <0x13011000 0x100>;
1394 interrupts = <0 9 0>;
1395 clocks = <&car 127>;
1396 #dma-cells = <1>;
1397 #dma-channels = <1>;
1398 };
1399 sdr@0x13010000 {
1400 compatible = "sirf,atlas7-sdr";
1401 reg = <0x13010000 0x1400>;
1402 interrupts = <0 7 0>,
1403 <0 8 0>,
1404 <0 9 0>;
1405 clocks = <&car 127>;
1406 dmas = <&dmacsdrr 0>, <&dmacsdrw 0>;
1407 dma-names = "tx", "rx";
1408 };
1346 }; 1409 };
1347 1410
1348 mediam { 1411 mediam {
1349 compatible = "arteris, flexnoc", "simple-bus"; 1412 compatible = "arteris, flexnoc", "simple-bus";
1350 #address-cells = <1>; 1413 #address-cells = <1>;
1351 #size-cells = <1>; 1414 #size-cells = <1>;
1352 ranges = <0x16000000 0x16000000 0x00200000>, 1415 ranges = <0x15000000 0x15000000 0x00600000>,
1416 <0x16000000 0x16000000 0x00200000>,
1417 <0x17000000 0x17000000 0x10000>,
1353 <0x17020000 0x17020000 0x1000>, 1418 <0x17020000 0x17020000 0x1000>,
1354 <0x17030000 0x17030000 0x1000>, 1419 <0x17030000 0x17030000 0x1000>,
1355 <0x17040000 0x17040000 0x1000>, 1420 <0x17040000 0x17040000 0x1000>,
@@ -1360,6 +1425,13 @@
1360 <0x17070200 0x17070200 0x100>, 1425 <0x17070200 0x17070200 0x100>,
1361 <0x170A0000 0x170A0000 0x3000>; 1426 <0x170A0000 0x170A0000 0x3000>;
1362 1427
1428 multimedia@15000000 {
1429 compatible = "sirf,atlas7-video-codec";
1430 reg = <0x15000000 0x10000>;
1431 interrupts = <0 5 0>;
1432 clocks = <&car 102>;
1433 };
1434
1363 mediam@170A0000 { 1435 mediam@170A0000 {
1364 compatible = "sirf,nocfw-mediam"; 1436 compatible = "sirf,nocfw-mediam";
1365 reg = <0x170A0000 0x3000>; 1437 reg = <0x170A0000 0x3000>;
@@ -1386,6 +1458,8 @@
1386 nand@17050000 { 1458 nand@17050000 {
1387 compatible = "sirf,atlas7-nand"; 1459 compatible = "sirf,atlas7-nand";
1388 reg = <0x17050000 0x10000>; 1460 reg = <0x17050000 0x10000>;
1461 pinctrl-names = "default";
1462 pinctrl-0 = <&nd_df_pmx>;
1389 interrupts = <0 41 0>; 1463 interrupts = <0 41 0>;
1390 clocks = <&car 108>, <&car 112>; 1464 clocks = <&car 108>, <&car 112>;
1391 clock-names = "nand_io", "nand_nand"; 1465 clock-names = "nand_io", "nand_nand";
@@ -1416,6 +1490,14 @@
1416 bus-width = <8>; 1490 bus-width = <8>;
1417 }; 1491 };
1418 1492
1493 jpeg@17000000 {
1494 compatible = "sirf,atlas7-jpeg";
1495 reg = <0x17000000 0x10000>;
1496 interrupts = <0 72 0>,
1497 <0 73 0>;
1498 clocks = <&car 103>;
1499 };
1500
1419 usb0: usb@17060000 { 1501 usb0: usb@17060000 {
1420 cell-index = <0>; 1502 cell-index = <0>;
1421 compatible = "sirf,atlas7-usb"; 1503 compatible = "sirf,atlas7-usb";
@@ -1826,7 +1908,8 @@
1826 #address-cells = <1>; 1908 #address-cells = <1>;
1827 #size-cells = <1>; 1909 #size-cells = <1>;
1828 ranges = <0x13100000 0x13100000 0x20000>, 1910 ranges = <0x13100000 0x13100000 0x20000>,
1829 <0x10e10000 0x10e10000 0x10000>; 1911 <0x10e10000 0x10e10000 0x10000>,
1912 <0x17010000 0x17010000 0x10000>;
1830 1913
1831 lcd@13100000 { 1914 lcd@13100000 {
1832 compatible = "sirf,atlas7-lcdc"; 1915 compatible = "sirf,atlas7-lcdc";
@@ -1848,6 +1931,12 @@
1848 clocks = <&car 54>; 1931 clocks = <&car 54>;
1849 resets = <&car 29>; 1932 resets = <&car 29>;
1850 }; 1933 };
1934 g2d@17010000 {
1935 compatible = "sirf, atlas7-g2d";
1936 reg = <0x17010000 0x10000>;
1937 interrupts = <0 61 0>;
1938 clocks = <&car 104>;
1939 };
1851 1940
1852 }; 1941 };
1853 1942
diff --git a/arch/arm/boot/dts/axp152.dtsi b/arch/arm/boot/dts/axp152.dtsi
new file mode 100644
index 000000000000..f90ad6c64a07
--- /dev/null
+++ b/arch/arm/boot/dts/axp152.dtsi
@@ -0,0 +1,49 @@
1/*
2 * Copyright 2015 Chen-Yu Tsai
3 *
4 * Chen-Yu Tsai <wens@csie.org>
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&axp152 {
46 compatible = "x-powers,axp152";
47 interrupt-controller;
48 #interrupt-cells = <1>;
49};
diff --git a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
index 60d8389fdb6c..32bcd45ef22b 100644
--- a/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus-clock.dtsi
@@ -36,56 +36,89 @@ clocks {
36 ranges; 36 ranges;
37 37
38 osc: oscillator { 38 osc: oscillator {
39 #clock-cells = <0>;
39 compatible = "fixed-clock"; 40 compatible = "fixed-clock";
40 #clock-cells = <1>;
41 clock-frequency = <25000000>; 41 clock-frequency = <25000000>;
42 }; 42 };
43 43
44 apb_clk: apb_clk { 44 /* Cygnus ARM PLL */
45 compatible = "fixed-clock"; 45 armpll: armpll {
46 #clock-cells = <0>; 46 #clock-cells = <0>;
47 clock-frequency = <1000000000>; 47 compatible = "brcm,cygnus-armpll";
48 clocks = <&osc>;
49 reg = <0x19000000 0x1000>;
48 }; 50 };
49 51
50 periph_clk: periph_clk { 52 /* peripheral clock for system timer */
51 compatible = "fixed-clock"; 53 periph_clk: arm_periph_clk {
52 #clock-cells = <0>; 54 #clock-cells = <0>;
53 clock-frequency = <500000000>; 55 compatible = "fixed-factor-clock";
56 clocks = <&armpll>;
57 clock-div = <2>;
58 clock-mult = <1>;
54 }; 59 };
55 60
56 sdio_clk: lcpll_ch2 { 61 /* APB bus clock */
57 compatible = "fixed-clock"; 62 apb_clk: apb_clk {
58 #clock-cells = <0>; 63 #clock-cells = <0>;
59 clock-frequency = <200000000>; 64 compatible = "fixed-factor-clock";
65 clocks = <&armpll>;
66 clock-div = <4>;
67 clock-mult = <1>;
60 }; 68 };
61 69
62 axi81_clk: axi81_clk { 70 genpll: genpll {
63 compatible = "fixed-clock"; 71 #clock-cells = <1>;
64 #clock-cells = <0>; 72 compatible = "brcm,cygnus-genpll";
65 clock-frequency = <100000000>; 73 reg = <0x0301d000 0x2c>, <0x0301c020 0x4>;
74 clocks = <&osc>;
75 clock-output-names = "genpll", "axi21", "250mhz", "ihost_sys",
76 "enet_sw", "audio_125", "can";
66 }; 77 };
67 78
68 keypad_clk: keypad_clk { 79 /* always 1/2 of the axi21 clock */
69 compatible = "fixed-clock"; 80 axi41_clk: axi41_clk {
70 #clock-cells = <0>; 81 #clock-cells = <0>;
71 clock-frequency = <31806>; 82 compatible = "fixed-factor-clock";
83 clocks = <&genpll 1>;
84 clock-div = <2>;
85 clock-mult = <1>;
72 }; 86 };
73 87
74 adc_clk: adc_clk { 88 /* always 1/4 of the axi21 clock */
75 compatible = "fixed-clock"; 89 axi81_clk: axi81_clk {
76 #clock-cells = <0>; 90 #clock-cells = <0>;
77 clock-frequency = <1562500>; 91 compatible = "fixed-factor-clock";
92 clocks = <&genpll 1>;
93 clock-div = <4>;
94 clock-mult = <1>;
78 }; 95 };
79 96
80 pwm_clk: pwm_clk { 97 lcpll0: lcpll0 {
81 compatible = "fixed-clock"; 98 #clock-cells = <1>;
82 #clock-cells = <0>; 99 compatible = "brcm,cygnus-lcpll0";
83 clock-frequency = <1000000>; 100 reg = <0x0301d02c 0x1c>, <0x0301c020 0x4>;
101 clocks = <&osc>;
102 clock-output-names = "lcpll0", "pcie_phy", "ddr_phy", "sdio",
103 "usb_phy", "smart_card", "ch5";
84 }; 104 };
85 105
86 lcd_clk: mipipll_ch1 { 106 mipipll: mipipll {
87 compatible = "fixed-clock"; 107 #clock-cells = <1>;
88 #clock-cells = <0>; 108 compatible = "brcm,cygnus-mipipll";
89 clock-frequency = <100000000>; 109 reg = <0x180a9800 0x2c>, <0x0301c020 0x4>, <0x180aa024 0x4>;
110 clocks = <&osc>;
111 clock-output-names = "mipipll", "ch0_unused", "ch1_lcd",
112 "ch2_v3d", "ch3_unused", "ch4_unused",
113 "ch5_unused";
114 };
115
116 asiu_clks: asiu_clks {
117 #clock-cells = <1>;
118 compatible = "brcm,cygnus-asiu-clk";
119 reg = <0x0301d048 0xc>, <0x180aa024 0x4>;
120
121 clocks = <&osc>;
122 clock-output-names = "keypad", "adc/touch", "pwm";
90 }; 123 };
91}; 124};
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 46780bb48bbf..ab5474e5d1c8 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -14,6 +14,13 @@
14 linux,default-trigger = "heartbeat"; 14 linux,default-trigger = "heartbeat";
15 }; 15 };
16 }; 16 };
17
18 soc {
19 firmware: firmware {
20 compatible = "raspberrypi,bcm2835-firmware";
21 mboxes = <&mailbox>;
22 };
23 };
17}; 24};
18 25
19&gpio { 26&gpio {
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
index 24f0ab59bf1b..42dcdfb769b2 100644
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
@@ -135,3 +135,7 @@
135 }; 135 };
136 }; 136 };
137}; 137};
138
139&uart0 {
140 status = "okay";
141};
diff --git a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
index f03939311717..f18e80e0b61d 100644
--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
@@ -55,3 +55,7 @@
55 }; 55 };
56 }; 56 };
57}; 57};
58
59&uart0 {
60 status = "okay";
61};
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
index 326ce8f4e49c..64b8d10ccff8 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
@@ -24,16 +24,6 @@
24 reg = <0x00000000 0x08000000>; 24 reg = <0x00000000 0x08000000>;
25 }; 25 };
26 26
27 chipcommonA {
28 uart0: serial@0300 {
29 status = "okay";
30 };
31
32 uart1: serial@0400 {
33 status = "okay";
34 };
35 };
36
37 leds { 27 leds {
38 compatible = "gpio-leds"; 28 compatible = "gpio-leds";
39 29
@@ -92,3 +82,7 @@
92 }; 82 };
93 }; 83 };
94}; 84};
85
86&uart0 {
87 status = "okay";
88};
diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
index d6a033b97c70..64a5e8ab65e0 100644
--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
@@ -118,3 +118,7 @@
118 }; 118 };
119 }; 119 };
120}; 120};
121
122&uart0 {
123 status = "okay";
124};
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
index bb0cb0bfafaf..38f0c00d1aca 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
@@ -122,3 +122,7 @@
122 }; 122 };
123 }; 123 };
124}; 124};
125
126&uart0 {
127 status = "okay";
128};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 21fefd4cdc25..6f50f672efbd 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -78,10 +78,20 @@
78 compatible = "arm,pl310-cache"; 78 compatible = "arm,pl310-cache";
79 reg = <0x2000 0x1000>; 79 reg = <0x2000 0x1000>;
80 cache-unified; 80 cache-unified;
81 arm,shared-override;
82 prefetch-data = <1>;
83 prefetch-instr = <1>;
81 cache-level = <2>; 84 cache-level = <2>;
82 }; 85 };
83 }; 86 };
84 87
88 pmu {
89 compatible = "arm,cortex-a9-pmu";
90 interrupts =
91 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
92 <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
93 };
94
85 clocks { 95 clocks {
86 #address-cells = <1>; 96 #address-cells = <1>;
87 #size-cells = <0>; 97 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/bcm7445.dtsi b/arch/arm/boot/dts/bcm7445.dtsi
index 58dcd666257c..3b6b17560687 100644
--- a/arch/arm/boot/dts/bcm7445.dtsi
+++ b/arch/arm/boot/dts/bcm7445.dtsi
@@ -109,6 +109,20 @@
109 brcm,int-fwd-mask = <0x70000>; 109 brcm,int-fwd-mask = <0x70000>;
110 }; 110 };
111 111
112 irq0_aon_intc: interrupt-controller@417280 {
113 compatible = "brcm,bcm7120-l2-intc";
114 reg = <0x417280 0x8>;
115 interrupt-parent = <&gic>;
116 #interrupt-cells = <1>;
117 interrupt-controller;
118 interrupts = <GIC_SPI 0x46 0x0>,
119 <GIC_SPI 0x44 0x0>,
120 <GIC_SPI 0x49 0x0>;
121 brcm,int-map-mask = <0x1e3 0x18000000 0x100000>;
122 brcm,int-fwd-mask = <0x0>;
123 brcm,irq-can-wake;
124 };
125
112 hif_intr2_intc: interrupt-controller@3e1000 { 126 hif_intr2_intc: interrupt-controller@3e1000 {
113 compatible = "brcm,l2-intc"; 127 compatible = "brcm,l2-intc";
114 reg = <0x3e1000 0x30>; 128 reg = <0x3e1000 0x30>;
@@ -119,6 +133,16 @@
119 interrupt-names = "hif"; 133 interrupt-names = "hif";
120 }; 134 };
121 135
136 aon_pm_l2_intc: interrupt-controller@410640 {
137 compatible = "brcm,l2-intc";
138 reg = <0x410640 0x30>;
139 interrupt-controller;
140 #interrupt-cells = <1>;
141 interrupts = <GIC_SPI 0x40 0x0>;
142 interrupt-parent = <&gic>;
143 brcm,irq-can-wake;
144 };
145
122 nand: nand@3e2800 { 146 nand: nand@3e2800 {
123 status = "disabled"; 147 status = "disabled";
124 #address-cells = <1>; 148 #address-cells = <1>;
@@ -167,6 +191,32 @@
167 #phy-cells = <0>; 191 #phy-cells = <0>;
168 }; 192 };
169 }; 193 };
194
195 upg_gio: gpio@40a700 {
196 compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
197 reg = <0x40a700 0x80>;
198 #gpio-cells = <2>;
199 #interrupt-cells = <2>;
200 gpio-controller;
201 interrupt-controller;
202 interrupt-parent = <&irq0_intc>;
203 interrupts = <6>;
204 brcm,gpio-bank-widths = <32 32 32 24>;
205 };
206
207 upg_gio_aon: gpio@4172c0 {
208 compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
209 reg = <0x4172c0 0x40>;
210 #gpio-cells = <2>;
211 #interrupt-cells = <2>;
212 gpio-controller;
213 interrupt-controller;
214 interrupts-extended = <&irq0_aon_intc 0x6>,
215 <&aon_pm_l2_intc 0x5>;
216 wakeup-source;
217 brcm,gpio-bank-widths = <18 4>;
218 };
219
170 }; 220 };
171 221
172 smpboot { 222 smpboot {
diff --git a/arch/arm/boot/dts/cros-ec-sbs.dtsi b/arch/arm/boot/dts/cros-ec-sbs.dtsi
new file mode 100644
index 000000000000..71f5c5ecce46
--- /dev/null
+++ b/arch/arm/boot/dts/cros-ec-sbs.dtsi
@@ -0,0 +1,52 @@
1/*
2 * Smart battery dts fragment for devices that use cros-ec-sbs
3 *
4 * Copyright (c) 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45&i2c_tunnel {
46 battery: sbs-battery@b {
47 compatible = "sbs,sbs-battery";
48 reg = <0xb>;
49 sbs,i2c-retry-count = <2>;
50 sbs,poll-retry-count = <1>;
51 };
52};
diff --git a/arch/arm/boot/dts/cx92755.dtsi b/arch/arm/boot/dts/cx92755.dtsi
index af333261d046..df4c6f1f93f9 100644
--- a/arch/arm/boot/dts/cx92755.dtsi
+++ b/arch/arm/boot/dts/cx92755.dtsi
@@ -88,6 +88,13 @@
88 interrupts = <25>; 88 interrupts = <25>;
89 }; 89 };
90 90
91 watchdog@f0000fc0 {
92 compatible = "cnxt,cx92755-wdt";
93 reg = <0xf0000fc0 0x8>;
94 clocks = <&main_clk>;
95 timeout-sec = <15>;
96 };
97
91 uc_regs: syscon@f00003a0 { 98 uc_regs: syscon@f00003a0 {
92 compatible = "cnxt,cx92755-uc", "syscon"; 99 compatible = "cnxt,cx92755-uc", "syscon";
93 reg = <0xf00003a0 0x10>; 100 reg = <0xf00003a0 0x10>;
diff --git a/arch/arm/boot/dts/cx92755_equinox.dts b/arch/arm/boot/dts/cx92755_equinox.dts
index 90d52cc416dc..5da00806c41e 100644
--- a/arch/arm/boot/dts/cx92755_equinox.dts
+++ b/arch/arm/boot/dts/cx92755_equinox.dts
@@ -64,8 +64,7 @@
64 }; 64 };
65 65
66 chosen { 66 chosen {
67 bootargs = "console=ttyS0,115200"; 67 stdout-path = "serial0:115200n8";
68 stdout-path = &uart0;
69 }; 68 };
70}; 69};
71 70
diff --git a/arch/arm/boot/dts/dm8148-evm.dts b/arch/arm/boot/dts/dm8148-evm.dts
new file mode 100644
index 000000000000..92bacd3c8fab
--- /dev/null
+++ b/arch/arm/boot/dts/dm8148-evm.dts
@@ -0,0 +1,28 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6/dts-v1/;
7
8#include "dm814x.dtsi"
9
10/ {
11 model = "DM8148 EVM";
12 compatible = "ti,dm8148-evm", "ti,dm8148";
13
14 memory {
15 device_type = "memory";
16 reg = <0x80000000 0x40000000>; /* 1 GB */
17 };
18};
19
20&cpsw_emac0 {
21 phy_id = <&davinci_mdio>, <0>;
22 phy-mode = "mii";
23};
24
25&cpsw_emac1 {
26 phy_id = <&davinci_mdio>, <1>;
27 phy-mode = "mii";
28};
diff --git a/arch/arm/boot/dts/dm8148-t410.dts b/arch/arm/boot/dts/dm8148-t410.dts
new file mode 100644
index 000000000000..8c4bbc7573df
--- /dev/null
+++ b/arch/arm/boot/dts/dm8148-t410.dts
@@ -0,0 +1,28 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6/dts-v1/;
7
8#include "dm814x.dtsi"
9
10/ {
11 model = "DM8148 EVM";
12 compatible = "hp,t410", "ti,dm8148";
13
14 memory {
15 device_type = "memory";
16 reg = <0x80000000 0x40000000>; /* 1 GB */
17 };
18};
19
20&cpsw_emac0 {
21 phy_id = <&davinci_mdio>, <0>;
22 phy-mode = "mii";
23};
24
25&cpsw_emac1 {
26 phy_id = <&davinci_mdio>, <1>;
27 phy-mode = "mii";
28};
diff --git a/arch/arm/boot/dts/dm814x-clocks.dtsi b/arch/arm/boot/dts/dm814x-clocks.dtsi
new file mode 100644
index 000000000000..ef1e8e7a6cc6
--- /dev/null
+++ b/arch/arm/boot/dts/dm814x-clocks.dtsi
@@ -0,0 +1,109 @@
1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License version 2 as
4 * published by the Free Software Foundation.
5 */
6
7&scm_clocks {
8
9 tclkin_ck: tclkin_ck {
10 #clock-cells = <0>;
11 compatible = "fixed-clock";
12 clock-frequency = <32768>;
13 };
14
15 devosc_ck: devosc_ck {
16 #clock-cells = <0>;
17 compatible = "fixed-clock";
18 clock-frequency = <20000000>;
19 };
20
21 /* Optional auxosc, 20 - 30 MHz range, assume 27 MHz by default */
22 auxosc_ck: auxosc_ck {
23 #clock-cells = <0>;
24 compatible = "fixed-clock";
25 clock-frequency = <27000000>;
26 };
27
28 mpu_ck: mpu_ck {
29 #clock-cells = <0>;
30 compatible = "fixed-clock";
31 clock-frequency = <1000000000>;
32 };
33
34 sysclk4_ck: sysclk4_ck {
35 #clock-cells = <0>;
36 compatible = "fixed-clock";
37 clock-frequency = <222000000>;
38 };
39
40 sysclk6_ck: sysclk6_ck {
41 #clock-cells = <0>;
42 compatible = "fixed-clock";
43 clock-frequency = <100000000>;
44 };
45
46 sysclk10_ck: sysclk10_ck {
47 #clock-cells = <0>;
48 compatible = "fixed-clock";
49 clock-frequency = <48000000>;
50 };
51
52 sysclk18_ck: sysclk18_ck {
53 #clock-cells = <0>;
54 compatible = "fixed-clock";
55 clock-frequency = <32768>;
56 };
57
58 cpsw_125mhz_gclk: cpsw_125mhz_gclk {
59 #clock-cells = <0>;
60 compatible = "fixed-clock";
61 clock-frequency = <125000000>;
62 };
63
64 cpsw_cpts_rft_clk: cpsw_cpts_rft_clk {
65 #clock-cells = <0>;
66 compatible = "fixed-clock";
67 clock-frequency = <250000000>;
68 };
69
70};
71
72&pllss_clocks {
73
74 aud_clkin0_ck: aud_clkin0_ck {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <20000000>;
78 };
79
80 aud_clkin1_ck: aud_clkin1_ck {
81 #clock-cells = <0>;
82 compatible = "fixed-clock";
83 clock-frequency = <20000000>;
84 };
85
86 aud_clkin2_ck: aud_clkin2_ck {
87 #clock-cells = <0>;
88 compatible = "fixed-clock";
89 clock-frequency = <20000000>;
90 };
91
92 timer1_mux_ck: timer1_mux_ck {
93 #clock-cells = <0>;
94 compatible = "ti,mux-clock";
95 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
96 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
97 ti,bit-shift = <3>;
98 reg = <0x2e0>;
99 };
100
101 timer2_mux_ck: timer2_mux_ck {
102 #clock-cells = <0>;
103 compatible = "ti,mux-clock";
104 clocks = <&sysclk18_ck &aud_clkin0_ck &aud_clkin1_ck
105 &aud_clkin2_ck &devosc_ck &auxosc_ck &tclkin_ck>;
106 ti,bit-shift = <6>;
107 reg = <0x2e0>;
108 };
109};
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
new file mode 100644
index 000000000000..972c9c9e885b
--- /dev/null
+++ b/arch/arm/boot/dts/dm814x.dtsi
@@ -0,0 +1,333 @@
1/*
2 * This file is licensed under the terms of the GNU General Public License
3 * version 2. This program is licensed "as is" without any warranty of any
4 * kind, whether express or implied.
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/pinctrl/omap.h>
9
10#include "skeleton.dtsi"
11
12/ {
13 compatible = "ti,dm814";
14 interrupt-parent = <&intc>;
15
16 aliases {
17 i2c0 = &i2c1;
18 i2c1 = &i2c2;
19 serial0 = &uart1;
20 serial1 = &uart2;
21 serial2 = &uart3;
22 ethernet0 = &cpsw_emac0;
23 ethernet1 = &cpsw_emac1;
24 };
25
26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29 cpu@0 {
30 compatible = "arm,cortex-a8";
31 device_type = "cpu";
32 reg = <0>;
33 };
34 };
35
36 pmu {
37 compatible = "arm,cortex-a8-pmu";
38 interrupts = <3>;
39 };
40
41 /*
42 * The soc node represents the soc top level view. It is used for IPs
43 * that are not memory mapped in the MPU view or for the MPU itself.
44 */
45 soc {
46 compatible = "ti,omap-infra";
47 mpu {
48 compatible = "ti,omap3-mpu";
49 ti,hwmods = "mpu";
50 };
51 };
52
53 ocp {
54 compatible = "simple-bus";
55 #address-cells = <1>;
56 #size-cells = <1>;
57 ranges;
58 ti,hwmods = "l3_main";
59
60 /*
61 * See TRM "Table 1-317. L4LS Instance Summary", just deduct
62 * 0x1000 from the 1-317 addresses to get the device address
63 */
64 l4ls: l4ls@48000000 {
65 compatible = "ti,dm814-l4ls", "simple-bus";
66 #address-cells = <1>;
67 #size-cells = <1>;
68 ranges = <0 0x48000000 0x2000000>;
69
70 i2c1: i2c@28000 {
71 compatible = "ti,omap4-i2c";
72 #address-cells = <1>;
73 #size-cells = <0>;
74 ti,hwmods = "i2c1";
75 reg = <0x28000 0x1000>;
76 interrupts = <70>;
77 };
78
79 elm: elm@80000 {
80 compatible = "ti,814-elm";
81 ti,hwmods = "elm";
82 reg = <0x80000 0x2000>;
83 interrupts = <4>;
84 };
85
86 gpio1: gpio@32000 {
87 compatible = "ti,omap4-gpio";
88 ti,hwmods = "gpio1";
89 ti,gpio-always-on;
90 reg = <0x32000 0x2000>;
91 interrupts = <96>;
92 gpio-controller;
93 #gpio-cells = <2>;
94 interrupt-controller;
95 #interrupt-cells = <2>;
96 };
97
98 gpio2: gpio@4c000 {
99 compatible = "ti,omap4-gpio";
100 ti,hwmods = "gpio2";
101 ti,gpio-always-on;
102 reg = <0x4c000 0x2000>;
103 interrupts = <98>;
104 gpio-controller;
105 #gpio-cells = <2>;
106 interrupt-controller;
107 #interrupt-cells = <2>;
108 };
109
110 i2c2: i2c@2a000 {
111 compatible = "ti,omap4-i2c";
112 #address-cells = <1>;
113 #size-cells = <0>;
114 ti,hwmods = "i2c2";
115 reg = <0x2a000 0x1000>;
116 interrupts = <71>;
117 };
118
119 mcspi1: spi@30000 {
120 compatible = "ti,omap4-mcspi";
121 reg = <0x30000 0x1000>;
122 #address-cells = <1>;
123 #size-cells = <0>;
124 interrupts = <65>;
125 ti,spi-num-cs = <4>;
126 ti,hwmods = "mcspi1";
127 dmas = <&edma 16 &edma 17
128 &edma 18 &edma 19>;
129 dma-names = "tx0", "rx0", "tx1", "rx1";
130 };
131
132 timer1: timer@2e000 {
133 compatible = "ti,dm814-timer";
134 reg = <0x2e000 0x2000>;
135 interrupts = <67>;
136 ti,hwmods = "timer1";
137 ti,timer-alwon;
138 };
139
140 uart1: uart@20000 {
141 compatible = "ti,omap3-uart";
142 ti,hwmods = "uart1";
143 reg = <0x20000 0x2000>;
144 clock-frequency = <48000000>;
145 interrupts = <72>;
146 dmas = <&edma 26 &edma 27>;
147 dma-names = "tx", "rx";
148 };
149
150 uart2: uart@22000 {
151 compatible = "ti,omap3-uart";
152 ti,hwmods = "uart2";
153 reg = <0x22000 0x2000>;
154 clock-frequency = <48000000>;
155 interrupts = <73>;
156 dmas = <&edma 28 &edma 29>;
157 dma-names = "tx", "rx";
158 };
159
160 uart3: uart@24000 {
161 compatible = "ti,omap3-uart";
162 ti,hwmods = "uart3";
163 reg = <0x24000 0x2000>;
164 clock-frequency = <48000000>;
165 interrupts = <74>;
166 dmas = <&edma 30 &edma 31>;
167 dma-names = "tx", "rx";
168 };
169
170 timer2: timer@40000 {
171 compatible = "ti,dm814-timer";
172 reg = <0x40000 0x2000>;
173 interrupts = <68>;
174 ti,hwmods = "timer2";
175 };
176
177 timer3: timer@42000 {
178 compatible = "ti,dm814-timer";
179 reg = <0x42000 0x2000>;
180 interrupts = <69>;
181 ti,hwmods = "timer3";
182 };
183
184 control: control@160000 {
185 compatible = "ti,dm814-scm", "simple-bus";
186 reg = <0x160000 0x16d000>;
187 #address-cells = <1>;
188 #size-cells = <1>;
189 ranges = <0 0x160000 0x16d000>;
190
191 scm_conf: scm_conf@0 {
192 compatible = "syscon";
193 reg = <0x0 0x800>;
194 #address-cells = <1>;
195 #size-cells = <1>;
196
197 scm_clocks: clocks {
198 #address-cells = <1>;
199 #size-cells = <0>;
200 };
201
202 scm_clockdomains: clockdomains {
203 };
204 };
205
206 pincntl: pinmux@800 {
207 compatible = "pinctrl-single";
208 reg = <0x800 0xc38>;
209 #address-cells = <1>;
210 #size-cells = <0>;
211 pinctrl-single,register-width = <32>;
212 pinctrl-single,function-mask = <0x300ff>;
213 };
214 };
215
216 prcm: prcm@180000 {
217 compatible = "ti,dm814-prcm", "simple-bus";
218 reg = <0x180000 0x4000>;
219
220 prcm_clocks: clocks {
221 #address-cells = <1>;
222 #size-cells = <0>;
223 };
224
225 prcm_clockdomains: clockdomains {
226 };
227 };
228
229 pllss: pllss@1c5000 {
230 compatible = "ti,dm814-pllss", "simple-bus";
231 reg = <0x1c5000 0x2000>;
232
233 pllss_clocks: clocks {
234 #address-cells = <1>;
235 #size-cells = <0>;
236 };
237
238 pllss_clockdomains: clockdomains {
239 };
240 };
241
242 wdt1: wdt@1c7000 {
243 compatible = "ti,omap3-wdt";
244 ti,hwmods = "wd_timer";
245 reg = <0x1c7000 0x1000>;
246 interrupts = <91>;
247 };
248 };
249
250 intc: interrupt-controller@48200000 {
251 compatible = "ti,dm814-intc";
252 interrupt-controller;
253 #interrupt-cells = <1>;
254 reg = <0x48200000 0x1000>;
255 };
256
257 edma: edma@49000000 {
258 compatible = "ti,edma3";
259 ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2";
260 reg = <0x49000000 0x10000>,
261 <0x44e10f90 0x40>;
262 interrupts = <12 13 14>;
263 #dma-cells = <1>;
264 };
265
266 /* See TRM "Table 1-318. L4HS Instance Summary" */
267 l4hs: l4hs@4a000000 {
268 compatible = "ti,dm814-l4hs", "simple-bus";
269 #address-cells = <1>;
270 #size-cells = <1>;
271 ranges = <0 0x4a000000 0x1b4040>;
272 };
273
274 /* REVISIT: Move to live under l4hs once driver is fixed */
275 mac: ethernet@4a100000 {
276 compatible = "ti,cpsw";
277 ti,hwmods = "cpgmac0";
278 clocks = <&cpsw_125mhz_gclk>, <&cpsw_cpts_rft_clk>;
279 clock-names = "fck", "cpts";
280 cpdma_channels = <8>;
281 ale_entries = <1024>;
282 bd_ram_size = <0x2000>;
283 no_bd_ram = <0>;
284 rx_descs = <64>;
285 mac_control = <0x20>;
286 slaves = <2>;
287 active_slave = <0>;
288 cpts_clock_mult = <0x80000000>;
289 cpts_clock_shift = <29>;
290 reg = <0x4a100000 0x800
291 0x4a100900 0x100>;
292 #address-cells = <1>;
293 #size-cells = <1>;
294 interrupt-parent = <&intc>;
295 /*
296 * c0_rx_thresh_pend
297 * c0_rx_pend
298 * c0_tx_pend
299 * c0_misc_pend
300 */
301 interrupts = <40 41 42 43>;
302 ranges;
303 syscon = <&scm_conf>;
304
305 davinci_mdio: mdio@4a100800 {
306 compatible = "ti,davinci_mdio";
307 #address-cells = <1>;
308 #size-cells = <0>;
309 ti,hwmods = "davinci_mdio";
310 bus_freq = <1000000>;
311 reg = <0x4a100800 0x100>;
312 };
313
314 cpsw_emac0: slave@4a100200 {
315 /* Filled in by U-Boot */
316 mac-address = [ 00 00 00 00 00 00 ];
317 };
318
319 cpsw_emac1: slave@4a100300 {
320 /* Filled in by U-Boot */
321 mac-address = [ 00 00 00 00 00 00 ];
322 };
323
324 phy_sel: cpsw-phy-sel@0x48160650 {
325 compatible = "ti,am3352-cpsw-phy-sel";
326 reg= <0x48160650 0x4>;
327 reg-names = "gmii-sel";
328 };
329 };
330 };
331};
332
333#include "dm814x-clocks.dtsi"
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi
index 289806adb343..3c99cfa1a876 100644
--- a/arch/arm/boot/dts/dm816x.dtsi
+++ b/arch/arm/boot/dts/dm816x.dtsi
@@ -58,7 +58,7 @@
58 * the whole bus hierarchy. 58 * the whole bus hierarchy.
59 */ 59 */
60 ocp { 60 ocp {
61 compatible = "ti,omap3-l3-smx", "simple-bus"; 61 compatible = "simple-bus";
62 reg = <0x44000000 0x10000>; 62 reg = <0x44000000 0x10000>;
63 interrupts = <9 10>; 63 interrupts = <9 10>;
64 #address-cells = <1>; 64 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
index 38b1f7e6004e..179121630ad7 100644
--- a/arch/arm/boot/dts/dove.dtsi
+++ b/arch/arm/boot/dts/dove.dtsi
@@ -419,293 +419,325 @@
419 status = "disabled"; 419 status = "disabled";
420 }; 420 };
421 421
422 thermal: thermal-diode@d001c { 422 pmu: power-management@d0000 {
423 compatible = "marvell,dove-thermal"; 423 compatible = "marvell,dove-pmu", "simple-bus";
424 reg = <0xd001c 0x0c>, <0xd005c 0x08>; 424 reg = <0xd0000 0x8000>, <0xd8000 0x8000>;
425 }; 425 ranges = <0x00000000 0x000d0000 0x8000
426 426 0x00008000 0x000d8000 0x8000>;
427 gate_clk: clock-gating-ctrl@d0038 { 427 interrupts = <33>;
428 compatible = "marvell,dove-gating-clock";
429 reg = <0xd0038 0x4>;
430 clocks = <&core_clk 0>;
431 #clock-cells = <1>;
432 };
433
434 pinctrl: pin-ctrl@d0200 {
435 compatible = "marvell,dove-pinctrl";
436 reg = <0xd0200 0x14>,
437 <0xd0440 0x04>;
438 clocks = <&gate_clk 22>;
439
440 pmx_gpio_0: pmx-gpio-0 {
441 marvell,pins = "mpp0";
442 marvell,function = "gpio";
443 };
444
445 pmx_gpio_1: pmx-gpio-1 {
446 marvell,pins = "mpp1";
447 marvell,function = "gpio";
448 };
449
450 pmx_gpio_2: pmx-gpio-2 {
451 marvell,pins = "mpp2";
452 marvell,function = "gpio";
453 };
454
455 pmx_gpio_3: pmx-gpio-3 {
456 marvell,pins = "mpp3";
457 marvell,function = "gpio";
458 };
459
460 pmx_gpio_4: pmx-gpio-4 {
461 marvell,pins = "mpp4";
462 marvell,function = "gpio";
463 };
464
465 pmx_gpio_5: pmx-gpio-5 {
466 marvell,pins = "mpp5";
467 marvell,function = "gpio";
468 };
469
470 pmx_gpio_6: pmx-gpio-6 {
471 marvell,pins = "mpp6";
472 marvell,function = "gpio";
473 };
474
475 pmx_gpio_7: pmx-gpio-7 {
476 marvell,pins = "mpp7";
477 marvell,function = "gpio";
478 };
479
480 pmx_gpio_8: pmx-gpio-8 {
481 marvell,pins = "mpp8";
482 marvell,function = "gpio";
483 };
484
485 pmx_gpio_9: pmx-gpio-9 {
486 marvell,pins = "mpp9";
487 marvell,function = "gpio";
488 };
489
490 pmx_pcie1_clkreq: pmx-pcie1-clkreq {
491 marvell,pins = "mpp9";
492 marvell,function = "pex1";
493 };
494
495 pmx_gpio_10: pmx-gpio-10 {
496 marvell,pins = "mpp10";
497 marvell,function = "gpio";
498 };
499
500 pmx_gpio_11: pmx-gpio-11 {
501 marvell,pins = "mpp11";
502 marvell,function = "gpio";
503 };
504
505 pmx_pcie0_clkreq: pmx-pcie0-clkreq {
506 marvell,pins = "mpp11";
507 marvell,function = "pex0";
508 };
509
510 pmx_gpio_12: pmx-gpio-12 {
511 marvell,pins = "mpp12";
512 marvell,function = "gpio";
513 };
514
515 pmx_gpio_13: pmx-gpio-13 {
516 marvell,pins = "mpp13";
517 marvell,function = "gpio";
518 };
519
520 pmx_audio1_extclk: pmx-audio1-extclk {
521 marvell,pins = "mpp13";
522 marvell,function = "audio1";
523 };
524
525 pmx_gpio_14: pmx-gpio-14 {
526 marvell,pins = "mpp14";
527 marvell,function = "gpio";
528 };
529
530 pmx_gpio_15: pmx-gpio-15 {
531 marvell,pins = "mpp15";
532 marvell,function = "gpio";
533 };
534
535 pmx_gpio_16: pmx-gpio-16 {
536 marvell,pins = "mpp16";
537 marvell,function = "gpio";
538 };
539
540 pmx_gpio_17: pmx-gpio-17 {
541 marvell,pins = "mpp17";
542 marvell,function = "gpio";
543 };
544
545 pmx_gpio_18: pmx-gpio-18 {
546 marvell,pins = "mpp18";
547 marvell,function = "gpio";
548 };
549
550 pmx_gpio_19: pmx-gpio-19 {
551 marvell,pins = "mpp19";
552 marvell,function = "gpio";
553 };
554
555 pmx_gpio_20: pmx-gpio-20 {
556 marvell,pins = "mpp20";
557 marvell,function = "gpio";
558 };
559
560 pmx_gpio_21: pmx-gpio-21 {
561 marvell,pins = "mpp21";
562 marvell,function = "gpio";
563 };
564
565 pmx_camera: pmx-camera {
566 marvell,pins = "mpp_camera";
567 marvell,function = "camera";
568 };
569
570 pmx_camera_gpio: pmx-camera-gpio {
571 marvell,pins = "mpp_camera";
572 marvell,function = "gpio";
573 };
574
575 pmx_sdio0: pmx-sdio0 {
576 marvell,pins = "mpp_sdio0";
577 marvell,function = "sdio0";
578 };
579
580 pmx_sdio0_gpio: pmx-sdio0-gpio {
581 marvell,pins = "mpp_sdio0";
582 marvell,function = "gpio";
583 };
584
585 pmx_sdio1: pmx-sdio1 {
586 marvell,pins = "mpp_sdio1";
587 marvell,function = "sdio1";
588 };
589
590 pmx_sdio1_gpio: pmx-sdio1-gpio {
591 marvell,pins = "mpp_sdio1";
592 marvell,function = "gpio";
593 };
594
595 pmx_audio1_gpio: pmx-audio1-gpio {
596 marvell,pins = "mpp_audio1";
597 marvell,function = "gpio";
598 };
599
600 pmx_audio1_i2s1_spdifo: pmx-audio1-i2s1-spdifo {
601 marvell,pins = "mpp_audio1";
602 marvell,function = "i2s1/spdifo";
603 };
604
605 pmx_spi0: pmx-spi0 {
606 marvell,pins = "mpp_spi0";
607 marvell,function = "spi0";
608 };
609
610 pmx_spi0_gpio: pmx-spi0-gpio {
611 marvell,pins = "mpp_spi0";
612 marvell,function = "gpio";
613 };
614
615 pmx_spi1_4_7: pmx-spi1-4-7 {
616 marvell,pins = "mpp4", "mpp5",
617 "mpp6", "mpp7";
618 marvell,function = "spi1";
619 };
620
621 pmx_spi1_20_23: pmx-spi1-20-23 {
622 marvell,pins = "mpp20", "mpp21",
623 "mpp22", "mpp23";
624 marvell,function = "spi1";
625 };
626
627 pmx_uart1: pmx-uart1 {
628 marvell,pins = "mpp_uart1";
629 marvell,function = "uart1";
630 };
631
632 pmx_uart1_gpio: pmx-uart1-gpio {
633 marvell,pins = "mpp_uart1";
634 marvell,function = "gpio";
635 };
636
637 pmx_nand: pmx-nand {
638 marvell,pins = "mpp_nand";
639 marvell,function = "nand";
640 };
641
642 pmx_nand_gpo: pmx-nand-gpo {
643 marvell,pins = "mpp_nand";
644 marvell,function = "gpo";
645 };
646
647 pmx_i2c1: pmx-i2c1 {
648 marvell,pins = "mpp17", "mpp19";
649 marvell,function = "twsi";
650 };
651
652 pmx_i2c2: pmx-i2c2 {
653 marvell,pins = "mpp_audio1";
654 marvell,function = "twsi";
655 };
656
657 pmx_ssp_i2c2: pmx-ssp-i2c2 {
658 marvell,pins = "mpp_audio1";
659 marvell,function = "ssp/twsi";
660 };
661
662 pmx_i2cmux_0: pmx-i2cmux-0 {
663 marvell,pins = "twsi";
664 marvell,function = "twsi-opt1";
665 };
666
667 pmx_i2cmux_1: pmx-i2cmux-1 {
668 marvell,pins = "twsi";
669 marvell,function = "twsi-opt2";
670 };
671
672 pmx_i2cmux_2: pmx-i2cmux-2 {
673 marvell,pins = "twsi";
674 marvell,function = "twsi-opt3";
675 };
676 };
677
678 core_clk: core-clocks@d0214 {
679 compatible = "marvell,dove-core-clock";
680 reg = <0xd0214 0x4>;
681 #clock-cells = <1>;
682 };
683
684 gpio0: gpio-ctrl@d0400 {
685 compatible = "marvell,orion-gpio";
686 #gpio-cells = <2>;
687 gpio-controller;
688 reg = <0xd0400 0x20>;
689 ngpios = <32>;
690 interrupt-controller;
691 #interrupt-cells = <2>;
692 interrupts = <12>, <13>, <14>, <60>;
693 };
694
695 gpio1: gpio-ctrl@d0420 {
696 compatible = "marvell,orion-gpio";
697 #gpio-cells = <2>;
698 gpio-controller;
699 reg = <0xd0420 0x20>;
700 ngpios = <32>;
701 interrupt-controller; 428 interrupt-controller;
702 #interrupt-cells = <2>; 429 #address-cells = <1>;
703 interrupts = <61>; 430 #size-cells = <1>;
704 }; 431 #interrupt-cells = <1>;
705 432 #reset-cells = <1>;
706 rtc: real-time-clock@d8500 { 433
707 compatible = "marvell,orion-rtc"; 434 domains {
708 reg = <0xd8500 0x20>; 435 vpu_domain: vpu-domain {
436 #power-domain-cells = <0>;
437 marvell,pmu_pwr_mask = <0x00000008>;
438 marvell,pmu_iso_mask = <0x00000001>;
439 resets = <&pmu 16>;
440 };
441
442 gpu_domain: gpu-domain {
443 #power-domain-cells = <0>;
444 marvell,pmu_pwr_mask = <0x00000004>;
445 marvell,pmu_iso_mask = <0x00000002>;
446 resets = <&pmu 18>;
447 };
448 };
449
450 thermal: thermal-diode@001c {
451 compatible = "marvell,dove-thermal";
452 reg = <0x001c 0x0c>, <0x005c 0x08>;
453 };
454
455 gate_clk: clock-gating-ctrl@0038 {
456 compatible = "marvell,dove-gating-clock";
457 reg = <0x0038 0x4>;
458 clocks = <&core_clk 0>;
459 #clock-cells = <1>;
460 };
461
462 pinctrl: pin-ctrl@0200 {
463 compatible = "marvell,dove-pinctrl";
464 reg = <0x0200 0x14>,
465 <0x0440 0x04>;
466 clocks = <&gate_clk 22>;
467
468 pmx_gpio_0: pmx-gpio-0 {
469 marvell,pins = "mpp0";
470 marvell,function = "gpio";
471 };
472
473 pmx_gpio_1: pmx-gpio-1 {
474 marvell,pins = "mpp1";
475 marvell,function = "gpio";
476 };
477
478 pmx_gpio_2: pmx-gpio-2 {
479 marvell,pins = "mpp2";
480 marvell,function = "gpio";
481 };
482
483 pmx_gpio_3: pmx-gpio-3 {
484 marvell,pins = "mpp3";
485 marvell,function = "gpio";
486 };
487
488 pmx_gpio_4: pmx-gpio-4 {
489 marvell,pins = "mpp4";
490 marvell,function = "gpio";
491 };
492
493 pmx_gpio_5: pmx-gpio-5 {
494 marvell,pins = "mpp5";
495 marvell,function = "gpio";
496 };
497
498 pmx_gpio_6: pmx-gpio-6 {
499 marvell,pins = "mpp6";
500 marvell,function = "gpio";
501 };
502
503 pmx_gpio_7: pmx-gpio-7 {
504 marvell,pins = "mpp7";
505 marvell,function = "gpio";
506 };
507
508 pmx_gpio_8: pmx-gpio-8 {
509 marvell,pins = "mpp8";
510 marvell,function = "gpio";
511 };
512
513 pmx_gpio_9: pmx-gpio-9 {
514 marvell,pins = "mpp9";
515 marvell,function = "gpio";
516 };
517
518 pmx_pcie1_clkreq: pmx-pcie1-clkreq {
519 marvell,pins = "mpp9";
520 marvell,function = "pex1";
521 };
522
523 pmx_gpio_10: pmx-gpio-10 {
524 marvell,pins = "mpp10";
525 marvell,function = "gpio";
526 };
527
528 pmx_gpio_11: pmx-gpio-11 {
529 marvell,pins = "mpp11";
530 marvell,function = "gpio";
531 };
532
533 pmx_pcie0_clkreq: pmx-pcie0-clkreq {
534 marvell,pins = "mpp11";
535 marvell,function = "pex0";
536 };
537
538 pmx_gpio_12: pmx-gpio-12 {
539 marvell,pins = "mpp12";
540 marvell,function = "gpio";
541 };
542
543 pmx_gpio_13: pmx-gpio-13 {
544 marvell,pins = "mpp13";
545 marvell,function = "gpio";
546 };
547
548 pmx_audio1_extclk: pmx-audio1-extclk {
549 marvell,pins = "mpp13";
550 marvell,function = "audio1";
551 };
552
553 pmx_gpio_14: pmx-gpio-14 {
554 marvell,pins = "mpp14";
555 marvell,function = "gpio";
556 };
557
558 pmx_gpio_15: pmx-gpio-15 {
559 marvell,pins = "mpp15";
560 marvell,function = "gpio";
561 };
562
563 pmx_gpio_16: pmx-gpio-16 {
564 marvell,pins = "mpp16";
565 marvell,function = "gpio";
566 };
567
568 pmx_gpio_17: pmx-gpio-17 {
569 marvell,pins = "mpp17";
570 marvell,function = "gpio";
571 };
572
573 pmx_gpio_18: pmx-gpio-18 {
574 marvell,pins = "mpp18";
575 marvell,function = "gpio";
576 };
577
578 pmx_gpio_19: pmx-gpio-19 {
579 marvell,pins = "mpp19";
580 marvell,function = "gpio";
581 };
582
583 pmx_gpio_20: pmx-gpio-20 {
584 marvell,pins = "mpp20";
585 marvell,function = "gpio";
586 };
587
588 pmx_gpio_21: pmx-gpio-21 {
589 marvell,pins = "mpp21";
590 marvell,function = "gpio";
591 };
592
593 pmx_camera: pmx-camera {
594 marvell,pins = "mpp_camera";
595 marvell,function = "camera";
596 };
597
598 pmx_camera_gpio: pmx-camera-gpio {
599 marvell,pins = "mpp_camera";
600 marvell,function = "gpio";
601 };
602
603 pmx_sdio0: pmx-sdio0 {
604 marvell,pins = "mpp_sdio0";
605 marvell,function = "sdio0";
606 };
607
608 pmx_sdio0_gpio: pmx-sdio0-gpio {
609 marvell,pins = "mpp_sdio0";
610 marvell,function = "gpio";
611 };
612
613 pmx_sdio1: pmx-sdio1 {
614 marvell,pins = "mpp_sdio1";
615 marvell,function = "sdio1";
616 };
617
618 pmx_sdio1_gpio: pmx-sdio1-gpio {
619 marvell,pins = "mpp_sdio1";
620 marvell,function = "gpio";
621 };
622
623 pmx_audio1_gpio: pmx-audio1-gpio {
624 marvell,pins = "mpp_audio1";
625 marvell,function = "gpio";
626 };
627
628 pmx_audio1_i2s1_spdifo: pmx-audio1-i2s1-spdifo {
629 marvell,pins = "mpp_audio1";
630 marvell,function = "i2s1/spdifo";
631 };
632
633 pmx_spi0: pmx-spi0 {
634 marvell,pins = "mpp_spi0";
635 marvell,function = "spi0";
636 };
637
638 pmx_spi0_gpio: pmx-spi0-gpio {
639 marvell,pins = "mpp_spi0";
640 marvell,function = "gpio";
641 };
642
643 pmx_spi1_4_7: pmx-spi1-4-7 {
644 marvell,pins = "mpp4", "mpp5",
645 "mpp6", "mpp7";
646 marvell,function = "spi1";
647 };
648
649 pmx_spi1_20_23: pmx-spi1-20-23 {
650 marvell,pins = "mpp20", "mpp21",
651 "mpp22", "mpp23";
652 marvell,function = "spi1";
653 };
654
655 pmx_uart1: pmx-uart1 {
656 marvell,pins = "mpp_uart1";
657 marvell,function = "uart1";
658 };
659
660 pmx_uart1_gpio: pmx-uart1-gpio {
661 marvell,pins = "mpp_uart1";
662 marvell,function = "gpio";
663 };
664
665 pmx_nand: pmx-nand {
666 marvell,pins = "mpp_nand";
667 marvell,function = "nand";
668 };
669
670 pmx_nand_gpo: pmx-nand-gpo {
671 marvell,pins = "mpp_nand";
672 marvell,function = "gpo";
673 };
674
675 pmx_i2c1: pmx-i2c1 {
676 marvell,pins = "mpp17", "mpp19";
677 marvell,function = "twsi";
678 };
679
680 pmx_i2c2: pmx-i2c2 {
681 marvell,pins = "mpp_audio1";
682 marvell,function = "twsi";
683 };
684
685 pmx_ssp_i2c2: pmx-ssp-i2c2 {
686 marvell,pins = "mpp_audio1";
687 marvell,function = "ssp/twsi";
688 };
689
690 pmx_i2cmux_0: pmx-i2cmux-0 {
691 marvell,pins = "twsi";
692 marvell,function = "twsi-opt1";
693 };
694
695 pmx_i2cmux_1: pmx-i2cmux-1 {
696 marvell,pins = "twsi";
697 marvell,function = "twsi-opt2";
698 };
699
700 pmx_i2cmux_2: pmx-i2cmux-2 {
701 marvell,pins = "twsi";
702 marvell,function = "twsi-opt3";
703 };
704 };
705
706 core_clk: core-clocks@0214 {
707 compatible = "marvell,dove-core-clock";
708 reg = <0x0214 0x4>;
709 #clock-cells = <1>;
710 };
711
712 gpio0: gpio-ctrl@0400 {
713 compatible = "marvell,orion-gpio";
714 #gpio-cells = <2>;
715 gpio-controller;
716 reg = <0x0400 0x20>;
717 ngpios = <32>;
718 interrupt-controller;
719 #interrupt-cells = <2>;
720 interrupt-parent = <&intc>;
721 interrupts = <12>, <13>, <14>, <60>;
722 };
723
724 gpio1: gpio-ctrl@0420 {
725 compatible = "marvell,orion-gpio";
726 #gpio-cells = <2>;
727 gpio-controller;
728 reg = <0x0420 0x20>;
729 ngpios = <32>;
730 interrupt-controller;
731 #interrupt-cells = <2>;
732 interrupt-parent = <&intc>;
733 interrupts = <61>;
734 };
735
736 rtc: real-time-clock@8500 {
737 compatible = "marvell,orion-rtc";
738 reg = <0x8500 0x20>;
739 interrupts = <5>;
740 };
709 }; 741 };
710 742
711 gconf: global-config@e802c { 743 gconf: global-config@e802c {
diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts
index 096f68be99e2..a6c82e5b64fe 100644
--- a/arch/arm/boot/dts/dra7-evm.dts
+++ b/arch/arm/boot/dts/dra7-evm.dts
@@ -19,6 +19,15 @@
19 reg = <0x80000000 0x60000000>; /* 1536 MB */ 19 reg = <0x80000000 0x60000000>; /* 1536 MB */
20 }; 20 };
21 21
22 evm_3v3_sd: fixedregulator-sd {
23 compatible = "regulator-fixed";
24 regulator-name = "evm_3v3_sd";
25 regulator-min-microvolt = <3300000>;
26 regulator-max-microvolt = <3300000>;
27 enable-active-high;
28 gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
29 };
30
22 mmc2_3v3: fixedregulator-mmc2 { 31 mmc2_3v3: fixedregulator-mmc2 {
23 compatible = "regulator-fixed"; 32 compatible = "regulator-fixed";
24 regulator-name = "mmc2_3v3"; 33 regulator-name = "mmc2_3v3";
@@ -349,6 +358,7 @@
349 regulator-name = "ldo1"; 358 regulator-name = "ldo1";
350 regulator-min-microvolt = <1800000>; 359 regulator-min-microvolt = <1800000>;
351 regulator-max-microvolt = <3300000>; 360 regulator-max-microvolt = <3300000>;
361 regulator-always-on;
352 regulator-boot-on; 362 regulator-boot-on;
353 }; 363 };
354 364
@@ -462,8 +472,14 @@
462 472
463&mmc1 { 473&mmc1 {
464 status = "okay"; 474 status = "okay";
465 vmmc-supply = <&ldo1_reg>; 475 vmmc-supply = <&evm_3v3_sd>;
476 vmmc_aux-supply = <&ldo1_reg>;
466 bus-width = <4>; 477 bus-width = <4>;
478 /*
479 * SDCD signal is not being used here - using the fact that GPIO mode
480 * is always hardwired.
481 */
482 cd-gpios = <&gpio6 27 0>;
467}; 483};
468 484
469&mmc2 { 485&mmc2 {
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index b058b3146874..a0d3d4bfe9cb 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -141,7 +141,7 @@
141 dra7_pmx_core: pinmux@1400 { 141 dra7_pmx_core: pinmux@1400 {
142 compatible = "ti,dra7-padconf", 142 compatible = "ti,dra7-padconf",
143 "pinctrl-single"; 143 "pinctrl-single";
144 reg = <0x1400 0x0464>; 144 reg = <0x1400 0x0468>;
145 #address-cells = <1>; 145 #address-cells = <1>;
146 #size-cells = <0>; 146 #size-cells = <0>;
147 #interrupt-cells = <1>; 147 #interrupt-cells = <1>;
@@ -149,6 +149,11 @@
149 pinctrl-single,register-width = <32>; 149 pinctrl-single,register-width = <32>;
150 pinctrl-single,function-mask = <0x3fffffff>; 150 pinctrl-single,function-mask = <0x3fffffff>;
151 }; 151 };
152
153 scm_conf1: scm_conf@1c04 {
154 compatible = "syscon";
155 reg = <0x1c04 0x0020>;
156 };
152 }; 157 };
153 158
154 cm_core_aon: cm_core_aon@5000 { 159 cm_core_aon: cm_core_aon@5000 {
@@ -286,16 +291,6 @@
286 #thermal-sensor-cells = <1>; 291 #thermal-sensor-cells = <1>;
287 }; 292 };
288 293
289 dra7_ctrl_core: ctrl_core@4a002000 {
290 compatible = "syscon";
291 reg = <0x4a002000 0x6d0>;
292 };
293
294 dra7_ctrl_general: tisyscon@4a002e00 {
295 compatible = "syscon";
296 reg = <0x4a002e00 0x7c>;
297 };
298
299 sdma: dma-controller@4a056000 { 294 sdma: dma-controller@4a056000 {
300 compatible = "ti,omap4430-sdma"; 295 compatible = "ti,omap4430-sdma";
301 reg = <0x4a056000 0x1000>; 296 reg = <0x4a056000 0x1000>;
@@ -308,6 +303,15 @@
308 dma-requests = <127>; 303 dma-requests = <127>;
309 }; 304 };
310 305
306 sdma_xbar: dma-router@4a002b78 {
307 compatible = "ti,dra7-dma-crossbar";
308 reg = <0x4a002b78 0xfc>;
309 #dma-cells = <1>;
310 dma-requests = <205>;
311 ti,dma-safe-map = <0>;
312 dma-masters = <&sdma>;
313 };
314
311 gpio1: gpio@4ae10000 { 315 gpio1: gpio@4ae10000 {
312 compatible = "ti,omap4-gpio"; 316 compatible = "ti,omap4-gpio";
313 reg = <0x4ae10000 0x200>; 317 reg = <0x4ae10000 0x200>;
@@ -403,7 +407,7 @@
403 ti,hwmods = "uart1"; 407 ti,hwmods = "uart1";
404 clock-frequency = <48000000>; 408 clock-frequency = <48000000>;
405 status = "disabled"; 409 status = "disabled";
406 dmas = <&sdma 49>, <&sdma 50>; 410 dmas = <&sdma_xbar 49>, <&sdma_xbar 50>;
407 dma-names = "tx", "rx"; 411 dma-names = "tx", "rx";
408 }; 412 };
409 413
@@ -414,7 +418,7 @@
414 ti,hwmods = "uart2"; 418 ti,hwmods = "uart2";
415 clock-frequency = <48000000>; 419 clock-frequency = <48000000>;
416 status = "disabled"; 420 status = "disabled";
417 dmas = <&sdma 51>, <&sdma 52>; 421 dmas = <&sdma_xbar 51>, <&sdma_xbar 52>;
418 dma-names = "tx", "rx"; 422 dma-names = "tx", "rx";
419 }; 423 };
420 424
@@ -425,7 +429,7 @@
425 ti,hwmods = "uart3"; 429 ti,hwmods = "uart3";
426 clock-frequency = <48000000>; 430 clock-frequency = <48000000>;
427 status = "disabled"; 431 status = "disabled";
428 dmas = <&sdma 53>, <&sdma 54>; 432 dmas = <&sdma_xbar 53>, <&sdma_xbar 54>;
429 dma-names = "tx", "rx"; 433 dma-names = "tx", "rx";
430 }; 434 };
431 435
@@ -436,7 +440,7 @@
436 ti,hwmods = "uart4"; 440 ti,hwmods = "uart4";
437 clock-frequency = <48000000>; 441 clock-frequency = <48000000>;
438 status = "disabled"; 442 status = "disabled";
439 dmas = <&sdma 55>, <&sdma 56>; 443 dmas = <&sdma_xbar 55>, <&sdma_xbar 56>;
440 dma-names = "tx", "rx"; 444 dma-names = "tx", "rx";
441 }; 445 };
442 446
@@ -447,7 +451,7 @@
447 ti,hwmods = "uart5"; 451 ti,hwmods = "uart5";
448 clock-frequency = <48000000>; 452 clock-frequency = <48000000>;
449 status = "disabled"; 453 status = "disabled";
450 dmas = <&sdma 63>, <&sdma 64>; 454 dmas = <&sdma_xbar 63>, <&sdma_xbar 64>;
451 dma-names = "tx", "rx"; 455 dma-names = "tx", "rx";
452 }; 456 };
453 457
@@ -458,7 +462,7 @@
458 ti,hwmods = "uart6"; 462 ti,hwmods = "uart6";
459 clock-frequency = <48000000>; 463 clock-frequency = <48000000>;
460 status = "disabled"; 464 status = "disabled";
461 dmas = <&sdma 79>, <&sdma 80>; 465 dmas = <&sdma_xbar 79>, <&sdma_xbar 80>;
462 dma-names = "tx", "rx"; 466 dma-names = "tx", "rx";
463 }; 467 };
464 468
@@ -867,7 +871,7 @@
867 ti,hwmods = "mmc1"; 871 ti,hwmods = "mmc1";
868 ti,dual-volt; 872 ti,dual-volt;
869 ti,needs-special-reset; 873 ti,needs-special-reset;
870 dmas = <&sdma 61>, <&sdma 62>; 874 dmas = <&sdma_xbar 61>, <&sdma_xbar 62>;
871 dma-names = "tx", "rx"; 875 dma-names = "tx", "rx";
872 status = "disabled"; 876 status = "disabled";
873 pbias-supply = <&pbias_mmc_reg>; 877 pbias-supply = <&pbias_mmc_reg>;
@@ -879,7 +883,7 @@
879 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 883 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
880 ti,hwmods = "mmc2"; 884 ti,hwmods = "mmc2";
881 ti,needs-special-reset; 885 ti,needs-special-reset;
882 dmas = <&sdma 47>, <&sdma 48>; 886 dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
883 dma-names = "tx", "rx"; 887 dma-names = "tx", "rx";
884 status = "disabled"; 888 status = "disabled";
885 }; 889 };
@@ -890,7 +894,7 @@
890 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 894 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
891 ti,hwmods = "mmc3"; 895 ti,hwmods = "mmc3";
892 ti,needs-special-reset; 896 ti,needs-special-reset;
893 dmas = <&sdma 77>, <&sdma 78>; 897 dmas = <&sdma_xbar 77>, <&sdma_xbar 78>;
894 dma-names = "tx", "rx"; 898 dma-names = "tx", "rx";
895 status = "disabled"; 899 status = "disabled";
896 }; 900 };
@@ -901,7 +905,7 @@
901 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 905 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
902 ti,hwmods = "mmc4"; 906 ti,hwmods = "mmc4";
903 ti,needs-special-reset; 907 ti,needs-special-reset;
904 dmas = <&sdma 57>, <&sdma 58>; 908 dmas = <&sdma_xbar 57>, <&sdma_xbar 58>;
905 dma-names = "tx", "rx"; 909 dma-names = "tx", "rx";
906 status = "disabled"; 910 status = "disabled";
907 }; 911 };
@@ -1046,14 +1050,14 @@
1046 #size-cells = <0>; 1050 #size-cells = <0>;
1047 ti,hwmods = "mcspi1"; 1051 ti,hwmods = "mcspi1";
1048 ti,spi-num-cs = <4>; 1052 ti,spi-num-cs = <4>;
1049 dmas = <&sdma 35>, 1053 dmas = <&sdma_xbar 35>,
1050 <&sdma 36>, 1054 <&sdma_xbar 36>,
1051 <&sdma 37>, 1055 <&sdma_xbar 37>,
1052 <&sdma 38>, 1056 <&sdma_xbar 38>,
1053 <&sdma 39>, 1057 <&sdma_xbar 39>,
1054 <&sdma 40>, 1058 <&sdma_xbar 40>,
1055 <&sdma 41>, 1059 <&sdma_xbar 41>,
1056 <&sdma 42>; 1060 <&sdma_xbar 42>;
1057 dma-names = "tx0", "rx0", "tx1", "rx1", 1061 dma-names = "tx0", "rx0", "tx1", "rx1",
1058 "tx2", "rx2", "tx3", "rx3"; 1062 "tx2", "rx2", "tx3", "rx3";
1059 status = "disabled"; 1063 status = "disabled";
@@ -1067,10 +1071,10 @@
1067 #size-cells = <0>; 1071 #size-cells = <0>;
1068 ti,hwmods = "mcspi2"; 1072 ti,hwmods = "mcspi2";
1069 ti,spi-num-cs = <2>; 1073 ti,spi-num-cs = <2>;
1070 dmas = <&sdma 43>, 1074 dmas = <&sdma_xbar 43>,
1071 <&sdma 44>, 1075 <&sdma_xbar 44>,
1072 <&sdma 45>, 1076 <&sdma_xbar 45>,
1073 <&sdma 46>; 1077 <&sdma_xbar 46>;
1074 dma-names = "tx0", "rx0", "tx1", "rx1"; 1078 dma-names = "tx0", "rx0", "tx1", "rx1";
1075 status = "disabled"; 1079 status = "disabled";
1076 }; 1080 };
@@ -1083,7 +1087,7 @@
1083 #size-cells = <0>; 1087 #size-cells = <0>;
1084 ti,hwmods = "mcspi3"; 1088 ti,hwmods = "mcspi3";
1085 ti,spi-num-cs = <2>; 1089 ti,spi-num-cs = <2>;
1086 dmas = <&sdma 15>, <&sdma 16>; 1090 dmas = <&sdma_xbar 15>, <&sdma_xbar 16>;
1087 dma-names = "tx0", "rx0"; 1091 dma-names = "tx0", "rx0";
1088 status = "disabled"; 1092 status = "disabled";
1089 }; 1093 };
@@ -1096,7 +1100,7 @@
1096 #size-cells = <0>; 1100 #size-cells = <0>;
1097 ti,hwmods = "mcspi4"; 1101 ti,hwmods = "mcspi4";
1098 ti,spi-num-cs = <1>; 1102 ti,spi-num-cs = <1>;
1099 dmas = <&sdma 70>, <&sdma 71>; 1103 dmas = <&sdma_xbar 70>, <&sdma_xbar 71>;
1100 dma-names = "tx0", "rx0"; 1104 dma-names = "tx0", "rx0";
1101 status = "disabled"; 1105 status = "disabled";
1102 }; 1106 };
@@ -1296,7 +1300,12 @@
1296 usb1: usb@48890000 { 1300 usb1: usb@48890000 {
1297 compatible = "snps,dwc3"; 1301 compatible = "snps,dwc3";
1298 reg = <0x48890000 0x17000>; 1302 reg = <0x48890000 0x17000>;
1299 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 1303 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
1304 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
1305 <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1306 interrupt-names = "peripheral",
1307 "host",
1308 "otg";
1300 phys = <&usb2_phy1>, <&usb3_phy1>; 1309 phys = <&usb2_phy1>, <&usb3_phy1>;
1301 phy-names = "usb2-phy", "usb3-phy"; 1310 phy-names = "usb2-phy", "usb3-phy";
1302 tx-fifo-resize; 1311 tx-fifo-resize;
@@ -1319,7 +1328,12 @@
1319 usb2: usb@488d0000 { 1328 usb2: usb@488d0000 {
1320 compatible = "snps,dwc3"; 1329 compatible = "snps,dwc3";
1321 reg = <0x488d0000 0x17000>; 1330 reg = <0x488d0000 0x17000>;
1322 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 1331 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
1332 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
1333 <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1334 interrupt-names = "peripheral",
1335 "host",
1336 "otg";
1323 phys = <&usb2_phy2>; 1337 phys = <&usb2_phy2>;
1324 phy-names = "usb2-phy"; 1338 phy-names = "usb2-phy";
1325 tx-fifo-resize; 1339 tx-fifo-resize;
@@ -1344,7 +1358,12 @@
1344 usb3: usb@48910000 { 1358 usb3: usb@48910000 {
1345 compatible = "snps,dwc3"; 1359 compatible = "snps,dwc3";
1346 reg = <0x48910000 0x17000>; 1360 reg = <0x48910000 0x17000>;
1347 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 1361 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1362 <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1363 <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
1364 interrupt-names = "peripheral",
1365 "host",
1366 "otg";
1348 tx-fifo-resize; 1367 tx-fifo-resize;
1349 maximum-speed = "high-speed"; 1368 maximum-speed = "high-speed";
1350 dr_mode = "otg"; 1369 dr_mode = "otg";
diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts
index 803738414086..6f6bd98c98df 100644
--- a/arch/arm/boot/dts/dra72-evm.dts
+++ b/arch/arm/boot/dts/dra72-evm.dts
@@ -30,6 +30,15 @@
30 regulator-max-microvolt = <3300000>; 30 regulator-max-microvolt = <3300000>;
31 }; 31 };
32 32
33 evm_3v3_sd: fixedregulator-sd {
34 compatible = "regulator-fixed";
35 regulator-name = "evm_3v3_sd";
36 regulator-min-microvolt = <3300000>;
37 regulator-max-microvolt = <3300000>;
38 enable-active-high;
39 gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
40 };
41
33 extcon_usb1: extcon_usb1 { 42 extcon_usb1: extcon_usb1 {
34 compatible = "linux,extcon-usb-gpio"; 43 compatible = "linux,extcon-usb-gpio";
35 id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>; 44 id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
@@ -286,6 +295,7 @@
286 regulator-name = "ldo1"; 295 regulator-name = "ldo1";
287 regulator-min-microvolt = <1800000>; 296 regulator-min-microvolt = <1800000>;
288 regulator-max-microvolt = <3300000>; 297 regulator-max-microvolt = <3300000>;
298 regulator-always-on;
289 regulator-boot-on; 299 regulator-boot-on;
290 }; 300 };
291 301
@@ -343,6 +353,12 @@
343 interrupts = <11 IRQ_TYPE_EDGE_FALLING>; 353 interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
344 interrupt-controller; 354 interrupt-controller;
345 #interrupt-cells = <2>; 355 #interrupt-cells = <2>;
356
357 cpsw_sel_s0 {
358 gpio-hog;
359 gpios = <4 GPIO_ACTIVE_HIGH>;
360 output-low;
361 };
346 }; 362 };
347}; 363};
348 364
@@ -491,14 +507,15 @@
491 status = "okay"; 507 status = "okay";
492 pinctrl-names = "default"; 508 pinctrl-names = "default";
493 pinctrl-0 = <&mmc1_pins_default>; 509 pinctrl-0 = <&mmc1_pins_default>;
494 510 vmmc-supply = <&evm_3v3_sd>;
495 vmmc-supply = <&ldo1_reg>; 511 vmmc_aux-supply = <&ldo1_reg>;
496 bus-width = <4>; 512 bus-width = <4>;
497 /* 513 /*
498 * SDCD signal is not being used here - using the fact that GPIO mode 514 * SDCD signal is not being used here - using the fact that GPIO mode
499 * is a viable alternative 515 * is a viable alternative
500 */ 516 */
501 cd-gpios = <&gpio6 27 0>; 517 cd-gpios = <&gpio6 27 0>;
518 max-frequency = <192000000>;
502}; 519};
503 520
504&mmc2 { 521&mmc2 {
@@ -510,6 +527,7 @@
510 vmmc-supply = <&evm_3v3>; 527 vmmc-supply = <&evm_3v3>;
511 bus-width = <8>; 528 bus-width = <8>;
512 ti,non-removable; 529 ti,non-removable;
530 max-frequency = <192000000>;
513}; 531};
514 532
515&dra7_pmx_core { 533&dra7_pmx_core {
@@ -571,9 +589,10 @@
571 pinctrl-names = "default", "sleep"; 589 pinctrl-names = "default", "sleep";
572 pinctrl-0 = <&cpsw_default>; 590 pinctrl-0 = <&cpsw_default>;
573 pinctrl-1 = <&cpsw_sleep>; 591 pinctrl-1 = <&cpsw_sleep>;
592 slaves = <1>;
574}; 593};
575 594
576&cpsw_emac1 { 595&cpsw_emac0 {
577 phy_id = <&davinci_mdio>, <3>; 596 phy_id = <&davinci_mdio>, <3>;
578 phy-mode = "rgmii"; 597 phy-mode = "rgmii";
579}; 598};
@@ -582,7 +601,6 @@
582 pinctrl-names = "default", "sleep"; 601 pinctrl-names = "default", "sleep";
583 pinctrl-0 = <&davinci_mdio_default>; 602 pinctrl-0 = <&davinci_mdio_default>;
584 pinctrl-1 = <&davinci_mdio_sleep>; 603 pinctrl-1 = <&davinci_mdio_sleep>;
585 active_slave = <1>;
586}; 604};
587 605
588&dcan1 { 606&dcan1 {
diff --git a/arch/arm/boot/dts/dra74x.dtsi b/arch/arm/boot/dts/dra74x.dtsi
index fa995d0ca1f2..feea98e0a4b5 100644
--- a/arch/arm/boot/dts/dra74x.dtsi
+++ b/arch/arm/boot/dts/dra74x.dtsi
@@ -65,7 +65,12 @@
65 usb4: usb@48950000 { 65 usb4: usb@48950000 {
66 compatible = "snps,dwc3"; 66 compatible = "snps,dwc3";
67 reg = <0x48950000 0x17000>; 67 reg = <0x48950000 0x17000>;
68 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>; 68 interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
69 <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
70 <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>;
71 interrupt-names = "peripheral",
72 "host",
73 "otg";
69 tx-fifo-resize; 74 tx-fifo-resize;
70 maximum-speed = "high-speed"; 75 maximum-speed = "high-speed";
71 dr_mode = "otg"; 76 dr_mode = "otg";
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts
index 1dee0aa4f40c..955c24ee4a8c 100644
--- a/arch/arm/boot/dts/emev2-kzm9d.dts
+++ b/arch/arm/boot/dts/emev2-kzm9d.dts
@@ -95,6 +95,14 @@
95 }; 95 };
96}; 96};
97 97
98&iic0 {
99 status = "okay";
100};
101
102&iic1 {
103 status = "okay";
104};
105
98&pfc { 106&pfc {
99 uart1_pins: serial@e1030000 { 107 uart1_pins: serial@e1030000 {
100 renesas,groups = "uart1_ctrl", "uart1_data"; 108 renesas,groups = "uart1_ctrl", "uart1_data";
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi
index bb45694d91bc..edad0c4eea35 100644
--- a/arch/arm/boot/dts/emev2.dtsi
+++ b/arch/arm/boot/dts/emev2.dtsi
@@ -21,6 +21,8 @@
21 gpio2 = &gpio2; 21 gpio2 = &gpio2;
22 gpio3 = &gpio3; 22 gpio3 = &gpio3;
23 gpio4 = &gpio4; 23 gpio4 = &gpio4;
24 i2c0 = &iic0;
25 i2c1 = &iic1;
24 }; 26 };
25 27
26 cpus { 28 cpus {
@@ -66,6 +68,30 @@
66 clock-frequency = <32768>; 68 clock-frequency = <32768>;
67 #clock-cells = <0>; 69 #clock-cells = <0>;
68 }; 70 };
71 iic0_sclkdiv: iic0_sclkdiv {
72 compatible = "renesas,emev2-smu-clkdiv";
73 reg = <0x624 0>;
74 clocks = <&pll3_fo>;
75 #clock-cells = <0>;
76 };
77 iic0_sclk: iic0_sclk {
78 compatible = "renesas,emev2-smu-gclk";
79 reg = <0x48c 1>;
80 clocks = <&iic0_sclkdiv>;
81 #clock-cells = <0>;
82 };
83 iic1_sclkdiv: iic1_sclkdiv {
84 compatible = "renesas,emev2-smu-clkdiv";
85 reg = <0x624 16>;
86 clocks = <&pll3_fo>;
87 #clock-cells = <0>;
88 };
89 iic1_sclk: iic1_sclk {
90 compatible = "renesas,emev2-smu-gclk";
91 reg = <0x490 1>;
92 clocks = <&iic1_sclkdiv>;
93 #clock-cells = <0>;
94 };
69 pll3_fo: pll3_fo { 95 pll3_fo: pll3_fo {
70 compatible = "fixed-factor-clock"; 96 compatible = "fixed-factor-clock";
71 clocks = <&c32ki>; 97 clocks = <&c32ki>;
@@ -234,4 +260,26 @@
234 interrupt-controller; 260 interrupt-controller;
235 #interrupt-cells = <2>; 261 #interrupt-cells = <2>;
236 }; 262 };
263
264 iic0: i2c@e0070000 {
265 #address-cells = <1>;
266 #size-cells = <0>;
267 compatible = "renesas,iic-emev2";
268 reg = <0xe0070000 0x28>;
269 interrupts = <0 32 IRQ_TYPE_EDGE_RISING>;
270 clocks = <&iic0_sclk>;
271 clock-names = "sclk";
272 status = "disabled";
273 };
274
275 iic1: i2c@e10a0000 {
276 #address-cells = <1>;
277 #size-cells = <0>;
278 compatible = "renesas,iic-emev2";
279 reg = <0xe10a0000 0x28>;
280 interrupts = <0 33 IRQ_TYPE_EDGE_RISING>;
281 clocks = <&iic1_sclk>;
282 clock-names = "sclk";
283 status = "disabled";
284 };
237}; 285};
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 775892b2cc6a..eb379526e234 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -69,66 +69,6 @@
69 enable-active-high; 69 enable-active-high;
70 }; 70 };
71 71
72 hsotg@12480000 {
73 vusb_d-supply = <&ldo3_reg>;
74 vusb_a-supply = <&ldo8_reg>;
75 dr_mode = "peripheral";
76 status = "okay";
77 };
78
79 sdhci_emmc: sdhci@12510000 {
80 bus-width = <8>;
81 non-removable;
82 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
83 pinctrl-names = "default";
84 vmmc-supply = <&vemmc_reg>;
85 status = "okay";
86 };
87
88 sdhci_sd: sdhci@12530000 {
89 bus-width = <4>;
90 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
91 pinctrl-names = "default";
92 vmmc-supply = <&ldo5_reg>;
93 cd-gpios = <&gpx3 4 0>;
94 cd-inverted;
95 status = "okay";
96 };
97
98 ehci@12580000 {
99 status = "okay";
100 port@0 {
101 status = "okay";
102 };
103 };
104
105 ohci@12590000 {
106 status = "okay";
107 port@0 {
108 status = "okay";
109 };
110 };
111
112 exynos-usbphy@125B0000 {
113 status = "okay";
114 };
115
116 serial@13800000 {
117 status = "okay";
118 };
119
120 serial@13810000 {
121 status = "okay";
122 };
123
124 serial@13820000 {
125 status = "okay";
126 };
127
128 serial@13830000 {
129 status = "okay";
130 };
131
132 gpio-keys { 72 gpio-keys {
133 compatible = "gpio-keys"; 73 compatible = "gpio-keys";
134 74
@@ -186,218 +126,6 @@
186 enable-active-high; 126 enable-active-high;
187 }; 127 };
188 128
189 i2c@13890000 {
190 samsung,i2c-sda-delay = <100>;
191 samsung,i2c-slave-addr = <0x10>;
192 samsung,i2c-max-bus-freq = <100000>;
193 pinctrl-0 = <&i2c3_bus>;
194 pinctrl-names = "default";
195 status = "okay";
196
197 tsp@4a {
198 /* TBD: Atmel maXtouch touchscreen */
199 reg = <0x4a>;
200 };
201 };
202
203 i2c@138B0000 {
204 samsung,i2c-sda-delay = <100>;
205 samsung,i2c-slave-addr = <0x10>;
206 samsung,i2c-max-bus-freq = <100000>;
207 pinctrl-0 = <&i2c5_bus>;
208 pinctrl-names = "default";
209 status = "okay";
210
211 vdd_arm_reg: pmic@60 {
212 compatible = "maxim,max8952";
213 reg = <0x60>;
214
215 max8952,vid-gpios = <&gpx0 3 0>, <&gpx0 4 0>;
216 max8952,default-mode = <0>;
217 max8952,dvs-mode-microvolt = <1250000>, <1200000>,
218 <1050000>, <950000>;
219 max8952,sync-freq = <0>;
220 max8952,ramp-speed = <0>;
221
222 regulator-name = "vdd_arm";
223 regulator-min-microvolt = <770000>;
224 regulator-max-microvolt = <1400000>;
225 regulator-always-on;
226 regulator-boot-on;
227 };
228
229 pmic@66 {
230 compatible = "national,lp3974";
231 reg = <0x66>;
232
233 max8998,pmic-buck1-default-dvs-idx = <0>;
234 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 0>,
235 <&gpx0 6 0>;
236 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
237 <1100000>, <1000000>;
238
239 max8998,pmic-buck2-default-dvs-idx = <0>;
240 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 0>;
241 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
242
243 regulators {
244 ldo2_reg: LDO2 {
245 regulator-name = "VALIVE_1.2V";
246 regulator-min-microvolt = <1200000>;
247 regulator-max-microvolt = <1200000>;
248 regulator-always-on;
249 };
250
251 ldo3_reg: LDO3 {
252 regulator-name = "VUSB+MIPI_1.1V";
253 regulator-min-microvolt = <1100000>;
254 regulator-max-microvolt = <1100000>;
255 regulator-always-on;
256 };
257
258 ldo4_reg: LDO4 {
259 regulator-name = "VADC_3.3V";
260 regulator-min-microvolt = <3300000>;
261 regulator-max-microvolt = <3300000>;
262 };
263
264 ldo5_reg: LDO5 {
265 regulator-name = "VTF_2.8V";
266 regulator-min-microvolt = <2800000>;
267 regulator-max-microvolt = <2800000>;
268 };
269
270 ldo6_reg: LDO6 {
271 regulator-name = "LDO6";
272 regulator-min-microvolt = <2000000>;
273 regulator-max-microvolt = <2000000>;
274 };
275
276 ldo7_reg: LDO7 {
277 regulator-name = "VLCD+VMIPI_1.8V";
278 regulator-min-microvolt = <1800000>;
279 regulator-max-microvolt = <1800000>;
280 };
281
282 ldo8_reg: LDO8 {
283 regulator-name = "VUSB+VDAC_3.3V";
284 regulator-min-microvolt = <3300000>;
285 regulator-max-microvolt = <3300000>;
286 regulator-always-on;
287 };
288
289 ldo9_reg: LDO9 {
290 regulator-name = "VCC_2.8V";
291 regulator-min-microvolt = <2800000>;
292 regulator-max-microvolt = <2800000>;
293 regulator-always-on;
294 };
295
296 ldo10_reg: LDO10 {
297 regulator-name = "VPLL_1.1V";
298 regulator-min-microvolt = <1100000>;
299 regulator-max-microvolt = <1100000>;
300 regulator-boot-on;
301 regulator-always-on;
302 };
303
304 ldo11_reg: LDO11 {
305 regulator-name = "CAM_AF_3.3V";
306 regulator-min-microvolt = <3300000>;
307 regulator-max-microvolt = <3300000>;
308 };
309
310 ldo12_reg: LDO12 {
311 regulator-name = "PS_2.8V";
312 regulator-min-microvolt = <2800000>;
313 regulator-max-microvolt = <2800000>;
314 };
315
316 ldo13_reg: LDO13 {
317 regulator-name = "VHIC_1.2V";
318 regulator-min-microvolt = <1200000>;
319 regulator-max-microvolt = <1200000>;
320 };
321
322 ldo14_reg: LDO14 {
323 regulator-name = "CAM_I_HOST_1.8V";
324 regulator-min-microvolt = <1800000>;
325 regulator-max-microvolt = <1800000>;
326 };
327
328 ldo15_reg: LDO15 {
329 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
330 regulator-min-microvolt = <1200000>;
331 regulator-max-microvolt = <1200000>;
332 };
333
334 ldo16_reg: LDO16 {
335 regulator-name = "CAM_S_ANA_2.8V";
336 regulator-min-microvolt = <2800000>;
337 regulator-max-microvolt = <2800000>;
338 };
339
340 ldo17_reg: LDO17 {
341 regulator-name = "VCC_3.0V_LCD";
342 regulator-min-microvolt = <3000000>;
343 regulator-max-microvolt = <3000000>;
344 };
345
346 buck1_reg: BUCK1 {
347 regulator-name = "VINT_1.1V";
348 regulator-min-microvolt = <750000>;
349 regulator-max-microvolt = <1500000>;
350 regulator-boot-on;
351 regulator-always-on;
352 };
353
354 buck2_reg: BUCK2 {
355 regulator-name = "VG3D_1.1V";
356 regulator-min-microvolt = <750000>;
357 regulator-max-microvolt = <1500000>;
358 regulator-boot-on;
359 };
360
361 buck3_reg: BUCK3 {
362 regulator-name = "VCC_1.8V";
363 regulator-min-microvolt = <1800000>;
364 regulator-max-microvolt = <1800000>;
365 regulator-always-on;
366 };
367
368 buck4_reg: BUCK4 {
369 regulator-name = "VMEM_1.2V";
370 regulator-min-microvolt = <1200000>;
371 regulator-max-microvolt = <1200000>;
372 regulator-always-on;
373 };
374
375 ap32khz_reg: EN32KHz-AP {
376 regulator-name = "32KHz AP";
377 regulator-always-on;
378 };
379
380 cp32khz_reg: EN32KHz-CP {
381 regulator-name = "32KHz CP";
382 };
383
384 vichg_reg: ENVICHG {
385 regulator-name = "VICHG";
386 };
387
388 safeout1_reg: ESAFEOUT1 {
389 regulator-name = "SAFEOUT1";
390 regulator-always-on;
391 };
392
393 safeout2_reg: ESAFEOUT2 {
394 regulator-name = "SAFEOUT2";
395 regulator-boot-on;
396 };
397 };
398 };
399 };
400
401 spi-lcd { 129 spi-lcd {
402 compatible = "spi-gpio"; 130 compatible = "spi-gpio";
403 #address-cells = <1>; 131 #address-cells = <1>;
@@ -446,27 +174,6 @@
446 }; 174 };
447 }; 175 };
448 176
449 fimd: fimd@11c00000 {
450 pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
451 pinctrl-names = "default";
452 status = "okay";
453 samsung,invert-vden;
454 samsung,invert-vclk;
455 #address-cells = <1>;
456 #size-cells = <0>;
457 port@3 {
458 reg = <3>;
459 fimd_dpi_ep: endpoint {
460 remote-endpoint = <&lcd_ep>;
461 };
462 };
463 };
464
465 pwm@139D0000 {
466 compatible = "samsung,s5p6440-pwm";
467 status = "okay";
468 };
469
470 camera { 177 camera {
471 status = "okay"; 178 status = "okay";
472 179
@@ -526,30 +233,287 @@
526 pinctrl-names = "default"; 233 pinctrl-names = "default";
527 status = "okay"; 234 status = "okay";
528 }; 235 };
236};
529 237
530 mixer@12C10000 { 238&cpu0 {
239 cpu0-supply = <&vdd_arm_reg>;
240};
241
242&ehci {
243 status = "okay";
244 port@0 {
531 status = "okay"; 245 status = "okay";
532 }; 246 };
247};
533 248
534 hdmi@12D00000 { 249&exynos_usbphy {
535 hpd-gpio = <&gpx3 7 0>; 250 status = "okay";
536 pinctrl-names = "default"; 251};
537 pinctrl-0 = <&hdmi_hpd>; 252
538 hdmi-en-supply = <&hdmi_en>; 253&fimd {
539 vdd-supply = <&ldo3_reg>; 254 pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
540 vdd_osc-supply = <&ldo4_reg>; 255 pinctrl-names = "default";
541 vdd_pll-supply = <&ldo3_reg>; 256 status = "okay";
542 ddc = <&hdmi_ddc>; 257 samsung,invert-vden;
543 status = "okay"; 258 samsung,invert-vclk;
259 #address-cells = <1>;
260 #size-cells = <0>;
261 port@3 {
262 reg = <3>;
263 fimd_dpi_ep: endpoint {
264 remote-endpoint = <&lcd_ep>;
265 };
544 }; 266 };
267};
545 268
546 i2c@138E0000 { 269&hdmi {
547 status = "okay"; 270 hpd-gpio = <&gpx3 7 0>;
271 pinctrl-names = "default";
272 pinctrl-0 = <&hdmi_hpd>;
273 hdmi-en-supply = <&hdmi_en>;
274 vdd-supply = <&ldo3_reg>;
275 vdd_osc-supply = <&ldo4_reg>;
276 vdd_pll-supply = <&ldo3_reg>;
277 ddc = <&hdmi_ddc>;
278 status = "okay";
279};
280
281&hsotg {
282 vusb_d-supply = <&ldo3_reg>;
283 vusb_a-supply = <&ldo8_reg>;
284 dr_mode = "peripheral";
285 status = "okay";
286};
287
288&i2c_3 {
289 samsung,i2c-sda-delay = <100>;
290 samsung,i2c-slave-addr = <0x10>;
291 samsung,i2c-max-bus-freq = <100000>;
292 pinctrl-0 = <&i2c3_bus>;
293 pinctrl-names = "default";
294 status = "okay";
295
296 tsp@4a {
297 /* TBD: Atmel maXtouch touchscreen */
298 reg = <0x4a>;
548 }; 299 };
549}; 300};
550 301
551&cpu0 { 302&i2c_5 {
552 cpu0-supply = <&vdd_arm_reg>; 303 samsung,i2c-sda-delay = <100>;
304 samsung,i2c-slave-addr = <0x10>;
305 samsung,i2c-max-bus-freq = <100000>;
306 pinctrl-0 = <&i2c5_bus>;
307 pinctrl-names = "default";
308 status = "okay";
309
310 vdd_arm_reg: pmic@60 {
311 compatible = "maxim,max8952";
312 reg = <0x60>;
313
314 max8952,vid-gpios = <&gpx0 3 0>, <&gpx0 4 0>;
315 max8952,default-mode = <0>;
316 max8952,dvs-mode-microvolt = <1250000>, <1200000>,
317 <1050000>, <950000>;
318 max8952,sync-freq = <0>;
319 max8952,ramp-speed = <0>;
320
321 regulator-name = "vdd_arm";
322 regulator-min-microvolt = <770000>;
323 regulator-max-microvolt = <1400000>;
324 regulator-always-on;
325 regulator-boot-on;
326 };
327
328 pmic@66 {
329 compatible = "national,lp3974";
330 reg = <0x66>;
331
332 max8998,pmic-buck1-default-dvs-idx = <0>;
333 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 0>,
334 <&gpx0 6 0>;
335 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
336 <1100000>, <1000000>;
337
338 max8998,pmic-buck2-default-dvs-idx = <0>;
339 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 0>;
340 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
341
342 regulators {
343 ldo2_reg: LDO2 {
344 regulator-name = "VALIVE_1.2V";
345 regulator-min-microvolt = <1200000>;
346 regulator-max-microvolt = <1200000>;
347 regulator-always-on;
348 };
349
350 ldo3_reg: LDO3 {
351 regulator-name = "VUSB+MIPI_1.1V";
352 regulator-min-microvolt = <1100000>;
353 regulator-max-microvolt = <1100000>;
354 regulator-always-on;
355 };
356
357 ldo4_reg: LDO4 {
358 regulator-name = "VADC_3.3V";
359 regulator-min-microvolt = <3300000>;
360 regulator-max-microvolt = <3300000>;
361 };
362
363 ldo5_reg: LDO5 {
364 regulator-name = "VTF_2.8V";
365 regulator-min-microvolt = <2800000>;
366 regulator-max-microvolt = <2800000>;
367 };
368
369 ldo6_reg: LDO6 {
370 regulator-name = "LDO6";
371 regulator-min-microvolt = <2000000>;
372 regulator-max-microvolt = <2000000>;
373 };
374
375 ldo7_reg: LDO7 {
376 regulator-name = "VLCD+VMIPI_1.8V";
377 regulator-min-microvolt = <1800000>;
378 regulator-max-microvolt = <1800000>;
379 };
380
381 ldo8_reg: LDO8 {
382 regulator-name = "VUSB+VDAC_3.3V";
383 regulator-min-microvolt = <3300000>;
384 regulator-max-microvolt = <3300000>;
385 regulator-always-on;
386 };
387
388 ldo9_reg: LDO9 {
389 regulator-name = "VCC_2.8V";
390 regulator-min-microvolt = <2800000>;
391 regulator-max-microvolt = <2800000>;
392 regulator-always-on;
393 };
394
395 ldo10_reg: LDO10 {
396 regulator-name = "VPLL_1.1V";
397 regulator-min-microvolt = <1100000>;
398 regulator-max-microvolt = <1100000>;
399 regulator-boot-on;
400 regulator-always-on;
401 };
402
403 ldo11_reg: LDO11 {
404 regulator-name = "CAM_AF_3.3V";
405 regulator-min-microvolt = <3300000>;
406 regulator-max-microvolt = <3300000>;
407 };
408
409 ldo12_reg: LDO12 {
410 regulator-name = "PS_2.8V";
411 regulator-min-microvolt = <2800000>;
412 regulator-max-microvolt = <2800000>;
413 };
414
415 ldo13_reg: LDO13 {
416 regulator-name = "VHIC_1.2V";
417 regulator-min-microvolt = <1200000>;
418 regulator-max-microvolt = <1200000>;
419 };
420
421 ldo14_reg: LDO14 {
422 regulator-name = "CAM_I_HOST_1.8V";
423 regulator-min-microvolt = <1800000>;
424 regulator-max-microvolt = <1800000>;
425 };
426
427 ldo15_reg: LDO15 {
428 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
429 regulator-min-microvolt = <1200000>;
430 regulator-max-microvolt = <1200000>;
431 };
432
433 ldo16_reg: LDO16 {
434 regulator-name = "CAM_S_ANA_2.8V";
435 regulator-min-microvolt = <2800000>;
436 regulator-max-microvolt = <2800000>;
437 };
438
439 ldo17_reg: LDO17 {
440 regulator-name = "VCC_3.0V_LCD";
441 regulator-min-microvolt = <3000000>;
442 regulator-max-microvolt = <3000000>;
443 };
444
445 buck1_reg: BUCK1 {
446 regulator-name = "VINT_1.1V";
447 regulator-min-microvolt = <750000>;
448 regulator-max-microvolt = <1500000>;
449 regulator-boot-on;
450 regulator-always-on;
451 };
452
453 buck2_reg: BUCK2 {
454 regulator-name = "VG3D_1.1V";
455 regulator-min-microvolt = <750000>;
456 regulator-max-microvolt = <1500000>;
457 regulator-boot-on;
458 };
459
460 buck3_reg: BUCK3 {
461 regulator-name = "VCC_1.8V";
462 regulator-min-microvolt = <1800000>;
463 regulator-max-microvolt = <1800000>;
464 regulator-always-on;
465 };
466
467 buck4_reg: BUCK4 {
468 regulator-name = "VMEM_1.2V";
469 regulator-min-microvolt = <1200000>;
470 regulator-max-microvolt = <1200000>;
471 regulator-always-on;
472 };
473
474 ap32khz_reg: EN32KHz-AP {
475 regulator-name = "32KHz AP";
476 regulator-always-on;
477 };
478
479 cp32khz_reg: EN32KHz-CP {
480 regulator-name = "32KHz CP";
481 };
482
483 vichg_reg: ENVICHG {
484 regulator-name = "VICHG";
485 };
486
487 safeout1_reg: ESAFEOUT1 {
488 regulator-name = "SAFEOUT1";
489 regulator-always-on;
490 };
491
492 safeout2_reg: ESAFEOUT2 {
493 regulator-name = "SAFEOUT2";
494 regulator-boot-on;
495 };
496 };
497 };
498};
499
500&i2c_8 {
501 status = "okay";
502};
503
504&mdma1 {
505 reg = <0x12840000 0x1000>;
506};
507
508&mixer {
509 status = "okay";
510};
511
512&ohci {
513 status = "okay";
514 port@0 {
515 status = "okay";
516 };
553}; 517};
554 518
555&pinctrl_1 { 519&pinctrl_1 {
@@ -568,6 +532,42 @@
568 }; 532 };
569}; 533};
570 534
571&mdma1 { 535&pwm {
572 reg = <0x12840000 0x1000>; 536 compatible = "samsung,s5p6440-pwm";
537 status = "okay";
538};
539
540&sdhci_0 {
541 bus-width = <8>;
542 non-removable;
543 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
544 pinctrl-names = "default";
545 vmmc-supply = <&vemmc_reg>;
546 status = "okay";
547};
548
549&sdhci_2 {
550 bus-width = <4>;
551 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
552 pinctrl-names = "default";
553 vmmc-supply = <&ldo5_reg>;
554 cd-gpios = <&gpx3 4 0>;
555 cd-inverted;
556 status = "okay";
557};
558
559&serial_0 {
560 status = "okay";
561};
562
563&serial_1 {
564 status = "okay";
565};
566
567&serial_2 {
568 status = "okay";
569};
570
571&serial_3 {
572 status = "okay";
573}; 573};
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index afc199d78cb9..884840059018 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -190,6 +190,9 @@
190 interrupt-parent = <&gpx2>; 190 interrupt-parent = <&gpx2>;
191 interrupts = <3 IRQ_TYPE_EDGE_FALLING>; 191 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
192 reg = <0x36>; 192 reg = <0x36>;
193
194 maxim,over-heat-temp = <700>;
195 maxim,over-volt = <4500>;
193 }; 196 };
194 }; 197 };
195 198
diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
index 886cfca044ac..880917e508b2 100644
--- a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
@@ -12,807 +12,805 @@
12 * published by the Free Software Foundation. 12 * published by the Free Software Foundation.
13*/ 13*/
14 14
15/ { 15&pinctrl_0 {
16 pinctrl@11400000 { 16 gpa0: gpa0 {
17 gpa0: gpa0 { 17 gpio-controller;
18 gpio-controller; 18 #gpio-cells = <2>;
19 #gpio-cells = <2>;
20 19
21 interrupt-controller; 20 interrupt-controller;
22 #interrupt-cells = <2>; 21 #interrupt-cells = <2>;
23 }; 22 };
24 23
25 gpa1: gpa1 { 24 gpa1: gpa1 {
26 gpio-controller; 25 gpio-controller;
27 #gpio-cells = <2>; 26 #gpio-cells = <2>;
28 27
29 interrupt-controller; 28 interrupt-controller;
30 #interrupt-cells = <2>; 29 #interrupt-cells = <2>;
31 }; 30 };
32 31
33 gpa2: gpa2 { 32 gpa2: gpa2 {
34 gpio-controller; 33 gpio-controller;
35 #gpio-cells = <2>; 34 #gpio-cells = <2>;
36 35
37 interrupt-controller; 36 interrupt-controller;
38 #interrupt-cells = <2>; 37 #interrupt-cells = <2>;
39 }; 38 };
40 39
41 gpb0: gpb0 { 40 gpb0: gpb0 {
42 gpio-controller; 41 gpio-controller;
43 #gpio-cells = <2>; 42 #gpio-cells = <2>;
44 43
45 interrupt-controller; 44 interrupt-controller;
46 #interrupt-cells = <2>; 45 #interrupt-cells = <2>;
47 }; 46 };
48 47
49 gpb1: gpb1 { 48 gpb1: gpb1 {
50 gpio-controller; 49 gpio-controller;
51 #gpio-cells = <2>; 50 #gpio-cells = <2>;
52 51
53 interrupt-controller; 52 interrupt-controller;
54 #interrupt-cells = <2>; 53 #interrupt-cells = <2>;
55 }; 54 };
56 55
57 gpb2: gpb2 { 56 gpb2: gpb2 {
58 gpio-controller; 57 gpio-controller;
59 #gpio-cells = <2>; 58 #gpio-cells = <2>;
60 59
61 interrupt-controller; 60 interrupt-controller;
62 #interrupt-cells = <2>; 61 #interrupt-cells = <2>;
63 }; 62 };
64 63
65 gpb3: gpb3 { 64 gpb3: gpb3 {
66 gpio-controller; 65 gpio-controller;
67 #gpio-cells = <2>; 66 #gpio-cells = <2>;
68 67
69 interrupt-controller; 68 interrupt-controller;
70 #interrupt-cells = <2>; 69 #interrupt-cells = <2>;
71 }; 70 };
72 71
73 gpc0: gpc0 { 72 gpc0: gpc0 {
74 gpio-controller; 73 gpio-controller;
75 #gpio-cells = <2>; 74 #gpio-cells = <2>;
76 75
77 interrupt-controller; 76 interrupt-controller;
78 #interrupt-cells = <2>; 77 #interrupt-cells = <2>;
79 }; 78 };
80 79
81 gpc1: gpc1 { 80 gpc1: gpc1 {
82 gpio-controller; 81 gpio-controller;
83 #gpio-cells = <2>; 82 #gpio-cells = <2>;
84 83
85 interrupt-controller; 84 interrupt-controller;
86 #interrupt-cells = <2>; 85 #interrupt-cells = <2>;
87 }; 86 };
88 87
89 gpc2: gpc2 { 88 gpc2: gpc2 {
90 gpio-controller; 89 gpio-controller;
91 #gpio-cells = <2>; 90 #gpio-cells = <2>;
92 91
93 interrupt-controller; 92 interrupt-controller;
94 #interrupt-cells = <2>; 93 #interrupt-cells = <2>;
95 }; 94 };
96 95
97 gpc3: gpc3 { 96 gpc3: gpc3 {
98 gpio-controller; 97 gpio-controller;
99 #gpio-cells = <2>; 98 #gpio-cells = <2>;
100 99
101 interrupt-controller; 100 interrupt-controller;
102 #interrupt-cells = <2>; 101 #interrupt-cells = <2>;
103 }; 102 };
104 103
105 gpd0: gpd0 { 104 gpd0: gpd0 {
106 gpio-controller; 105 gpio-controller;
107 #gpio-cells = <2>; 106 #gpio-cells = <2>;
108 107
109 interrupt-controller; 108 interrupt-controller;
110 #interrupt-cells = <2>; 109 #interrupt-cells = <2>;
111 }; 110 };
112 111
113 gpd1: gpd1 { 112 gpd1: gpd1 {
114 gpio-controller; 113 gpio-controller;
115 #gpio-cells = <2>; 114 #gpio-cells = <2>;
116 115
117 interrupt-controller; 116 interrupt-controller;
118 #interrupt-cells = <2>; 117 #interrupt-cells = <2>;
119 }; 118 };
120 119
121 gpy0: gpy0 { 120 gpy0: gpy0 {
122 gpio-controller; 121 gpio-controller;
123 #gpio-cells = <2>; 122 #gpio-cells = <2>;
124 }; 123 };
125 124
126 gpy1: gpy1 { 125 gpy1: gpy1 {
127 gpio-controller; 126 gpio-controller;
128 #gpio-cells = <2>; 127 #gpio-cells = <2>;
129 }; 128 };
130 129
131 gpy2: gpy2 { 130 gpy2: gpy2 {
132 gpio-controller; 131 gpio-controller;
133 #gpio-cells = <2>; 132 #gpio-cells = <2>;
134 }; 133 };
135 134
136 gpy3: gpy3 { 135 gpy3: gpy3 {
137 gpio-controller; 136 gpio-controller;
138 #gpio-cells = <2>; 137 #gpio-cells = <2>;
139 }; 138 };
140 139
141 gpy4: gpy4 { 140 gpy4: gpy4 {
142 gpio-controller; 141 gpio-controller;
143 #gpio-cells = <2>; 142 #gpio-cells = <2>;
144 }; 143 };
145 144
146 gpy5: gpy5 { 145 gpy5: gpy5 {
147 gpio-controller; 146 gpio-controller;
148 #gpio-cells = <2>; 147 #gpio-cells = <2>;
149 }; 148 };
150 149
151 gpy6: gpy6 { 150 gpy6: gpy6 {
152 gpio-controller; 151 gpio-controller;
153 #gpio-cells = <2>; 152 #gpio-cells = <2>;
154 }; 153 };
155 154
156 gpc4: gpc4 { 155 gpc4: gpc4 {
157 gpio-controller; 156 gpio-controller;
158 #gpio-cells = <2>; 157 #gpio-cells = <2>;
159 158
160 interrupt-controller; 159 interrupt-controller;
161 #interrupt-cells = <2>; 160 #interrupt-cells = <2>;
162 }; 161 };
163 162
164 gpx0: gpx0 { 163 gpx0: gpx0 {
165 gpio-controller; 164 gpio-controller;
166 #gpio-cells = <2>; 165 #gpio-cells = <2>;
167 166
168 interrupt-controller; 167 interrupt-controller;
169 interrupt-parent = <&combiner>; 168 interrupt-parent = <&combiner>;
170 #interrupt-cells = <2>; 169 #interrupt-cells = <2>;
171 interrupts = <23 0>, <24 0>, <25 0>, <25 1>, 170 interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
172 <26 0>, <26 1>, <27 0>, <27 1>; 171 <26 0>, <26 1>, <27 0>, <27 1>;
173 }; 172 };
174 173
175 gpx1: gpx1 { 174 gpx1: gpx1 {
176 gpio-controller; 175 gpio-controller;
177 #gpio-cells = <2>; 176 #gpio-cells = <2>;
178 177
179 interrupt-controller; 178 interrupt-controller;
180 interrupt-parent = <&combiner>; 179 interrupt-parent = <&combiner>;
181 #interrupt-cells = <2>; 180 #interrupt-cells = <2>;
182 interrupts = <28 0>, <28 1>, <29 0>, <29 1>, 181 interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
183 <30 0>, <30 1>, <31 0>, <31 1>; 182 <30 0>, <30 1>, <31 0>, <31 1>;
184 }; 183 };
185 184
186 gpx2: gpx2 { 185 gpx2: gpx2 {
187 gpio-controller; 186 gpio-controller;
188 #gpio-cells = <2>; 187 #gpio-cells = <2>;
189 188
190 interrupt-controller; 189 interrupt-controller;
191 #interrupt-cells = <2>; 190 #interrupt-cells = <2>;
192 }; 191 };
193 192
194 gpx3: gpx3 { 193 gpx3: gpx3 {
195 gpio-controller; 194 gpio-controller;
196 #gpio-cells = <2>; 195 #gpio-cells = <2>;
197 196
198 interrupt-controller; 197 interrupt-controller;
199 #interrupt-cells = <2>; 198 #interrupt-cells = <2>;
200 }; 199 };
201 200
202 uart0_data: uart0-data { 201 uart0_data: uart0-data {
203 samsung,pins = "gpa0-0", "gpa0-1"; 202 samsung,pins = "gpa0-0", "gpa0-1";
204 samsung,pin-function = <2>; 203 samsung,pin-function = <2>;
205 samsung,pin-pud = <0>; 204 samsung,pin-pud = <0>;
206 samsung,pin-drv = <0>; 205 samsung,pin-drv = <0>;
207 }; 206 };
208 207
209 uart0_fctl: uart0-fctl { 208 uart0_fctl: uart0-fctl {
210 samsung,pins = "gpa0-2", "gpa0-3"; 209 samsung,pins = "gpa0-2", "gpa0-3";
211 samsung,pin-function = <2>; 210 samsung,pin-function = <2>;
212 samsung,pin-pud = <0>; 211 samsung,pin-pud = <0>;
213 samsung,pin-drv = <0>; 212 samsung,pin-drv = <0>;
214 }; 213 };
215 214
216 i2c2_bus: i2c2-bus { 215 i2c2_bus: i2c2-bus {
217 samsung,pins = "gpa0-6", "gpa0-7"; 216 samsung,pins = "gpa0-6", "gpa0-7";
218 samsung,pin-function = <3>; 217 samsung,pin-function = <3>;
219 samsung,pin-pud = <3>; 218 samsung,pin-pud = <3>;
220 samsung,pin-drv = <0>; 219 samsung,pin-drv = <0>;
221 }; 220 };
222 221
223 i2c2_hs_bus: i2c2-hs-bus { 222 i2c2_hs_bus: i2c2-hs-bus {
224 samsung,pins = "gpa0-6", "gpa0-7"; 223 samsung,pins = "gpa0-6", "gpa0-7";
225 samsung,pin-function = <4>; 224 samsung,pin-function = <4>;
226 samsung,pin-pud = <3>; 225 samsung,pin-pud = <3>;
227 samsung,pin-drv = <0>; 226 samsung,pin-drv = <0>;
228 }; 227 };
229 228
230 uart2_data: uart2-data { 229 uart2_data: uart2-data {
231 samsung,pins = "gpa1-0", "gpa1-1"; 230 samsung,pins = "gpa1-0", "gpa1-1";
232 samsung,pin-function = <2>; 231 samsung,pin-function = <2>;
233 samsung,pin-pud = <0>; 232 samsung,pin-pud = <0>;
234 samsung,pin-drv = <0>; 233 samsung,pin-drv = <0>;
235 }; 234 };
236 235
237 uart2_fctl: uart2-fctl { 236 uart2_fctl: uart2-fctl {
238 samsung,pins = "gpa1-2", "gpa1-3"; 237 samsung,pins = "gpa1-2", "gpa1-3";
239 samsung,pin-function = <2>; 238 samsung,pin-function = <2>;
240 samsung,pin-pud = <0>; 239 samsung,pin-pud = <0>;
241 samsung,pin-drv = <0>; 240 samsung,pin-drv = <0>;
242 }; 241 };
243 242
244 i2c3_bus: i2c3-bus { 243 i2c3_bus: i2c3-bus {
245 samsung,pins = "gpa1-2", "gpa1-3"; 244 samsung,pins = "gpa1-2", "gpa1-3";
246 samsung,pin-function = <3>; 245 samsung,pin-function = <3>;
247 samsung,pin-pud = <3>; 246 samsung,pin-pud = <3>;
248 samsung,pin-drv = <0>; 247 samsung,pin-drv = <0>;
249 }; 248 };
250 249
251 i2c3_hs_bus: i2c3-hs-bus { 250 i2c3_hs_bus: i2c3-hs-bus {
252 samsung,pins = "gpa1-2", "gpa1-3"; 251 samsung,pins = "gpa1-2", "gpa1-3";
253 samsung,pin-function = <4>; 252 samsung,pin-function = <4>;
254 samsung,pin-pud = <3>; 253 samsung,pin-pud = <3>;
255 samsung,pin-drv = <0>; 254 samsung,pin-drv = <0>;
256 }; 255 };
257 256
258 uart3_data: uart3-data { 257 uart3_data: uart3-data {
259 samsung,pins = "gpa1-4", "gpa1-4"; 258 samsung,pins = "gpa1-4", "gpa1-4";
260 samsung,pin-function = <2>; 259 samsung,pin-function = <2>;
261 samsung,pin-pud = <0>; 260 samsung,pin-pud = <0>;
262 samsung,pin-drv = <0>; 261 samsung,pin-drv = <0>;
263 }; 262 };
264 263
265 spi0_bus: spi0-bus { 264 spi0_bus: spi0-bus {
266 samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3"; 265 samsung,pins = "gpa2-0", "gpa2-2", "gpa2-3";
267 samsung,pin-function = <2>; 266 samsung,pin-function = <2>;
268 samsung,pin-pud = <3>; 267 samsung,pin-pud = <3>;
269 samsung,pin-drv = <0>; 268 samsung,pin-drv = <0>;
270 }; 269 };
271 270
272 i2c4_bus: i2c4-bus { 271 i2c4_bus: i2c4-bus {
273 samsung,pins = "gpa2-0", "gpa2-1"; 272 samsung,pins = "gpa2-0", "gpa2-1";
274 samsung,pin-function = <3>; 273 samsung,pin-function = <3>;
275 samsung,pin-pud = <3>; 274 samsung,pin-pud = <3>;
276 samsung,pin-drv = <0>; 275 samsung,pin-drv = <0>;
277 }; 276 };
278 277
279 i2c5_bus: i2c5-bus { 278 i2c5_bus: i2c5-bus {
280 samsung,pins = "gpa2-2", "gpa2-3"; 279 samsung,pins = "gpa2-2", "gpa2-3";
281 samsung,pin-function = <3>; 280 samsung,pin-function = <3>;
282 samsung,pin-pud = <3>; 281 samsung,pin-pud = <3>;
283 samsung,pin-drv = <0>; 282 samsung,pin-drv = <0>;
284 }; 283 };
285 284
286 spi1_bus: spi1-bus { 285 spi1_bus: spi1-bus {
287 samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7"; 286 samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
288 samsung,pin-function = <2>; 287 samsung,pin-function = <2>;
289 samsung,pin-pud = <3>; 288 samsung,pin-pud = <3>;
290 samsung,pin-drv = <0>; 289 samsung,pin-drv = <0>;
291 }; 290 };
292 291
293 i2s1_bus: i2s1-bus { 292 i2s1_bus: i2s1-bus {
294 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", 293 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
295 "gpb0-4"; 294 "gpb0-4";
296 samsung,pin-function = <2>; 295 samsung,pin-function = <2>;
297 samsung,pin-pud = <0>; 296 samsung,pin-pud = <0>;
298 samsung,pin-drv = <0>; 297 samsung,pin-drv = <0>;
299 }; 298 };
300 299
301 pcm1_bus: pcm1-bus { 300 pcm1_bus: pcm1-bus {
302 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", 301 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
303 "gpb0-4"; 302 "gpb0-4";
304 samsung,pin-function = <3>; 303 samsung,pin-function = <3>;
305 samsung,pin-pud = <0>; 304 samsung,pin-pud = <0>;
306 samsung,pin-drv = <0>; 305 samsung,pin-drv = <0>;
307 }; 306 };
308 307
309 ac97_bus: ac97-bus { 308 ac97_bus: ac97-bus {
310 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", 309 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
311 "gpb0-4"; 310 "gpb0-4";
312 samsung,pin-function = <4>; 311 samsung,pin-function = <4>;
313 samsung,pin-pud = <0>; 312 samsung,pin-pud = <0>;
314 samsung,pin-drv = <0>; 313 samsung,pin-drv = <0>;
315 }; 314 };
316 315
317 i2s2_bus: i2s2-bus { 316 i2s2_bus: i2s2-bus {
318 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3", 317 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
319 "gpb1-4"; 318 "gpb1-4";
320 samsung,pin-function = <2>; 319 samsung,pin-function = <2>;
321 samsung,pin-pud = <0>; 320 samsung,pin-pud = <0>;
322 samsung,pin-drv = <0>; 321 samsung,pin-drv = <0>;
323 }; 322 };
324 323
325 pcm2_bus: pcm2-bus { 324 pcm2_bus: pcm2-bus {
326 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3", 325 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
327 "gpb1-4"; 326 "gpb1-4";
328 samsung,pin-function = <3>; 327 samsung,pin-function = <3>;
329 samsung,pin-pud = <0>; 328 samsung,pin-pud = <0>;
330 samsung,pin-drv = <0>; 329 samsung,pin-drv = <0>;
331 }; 330 };
332 331
333 spdif_bus: spdif-bus { 332 spdif_bus: spdif-bus {
334 samsung,pins = "gpb1-0", "gpb1-1"; 333 samsung,pins = "gpb1-0", "gpb1-1";
335 samsung,pin-function = <4>; 334 samsung,pin-function = <4>;
336 samsung,pin-pud = <0>; 335 samsung,pin-pud = <0>;
337 samsung,pin-drv = <0>; 336 samsung,pin-drv = <0>;
338 }; 337 };
339 338
340 spi2_bus: spi2-bus { 339 spi2_bus: spi2-bus {
341 samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4"; 340 samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
342 samsung,pin-function = <5>; 341 samsung,pin-function = <5>;
343 samsung,pin-pud = <3>; 342 samsung,pin-pud = <3>;
344 samsung,pin-drv = <0>; 343 samsung,pin-drv = <0>;
345 }; 344 };
346 345
347 i2c6_bus: i2c6-bus { 346 i2c6_bus: i2c6-bus {
348 samsung,pins = "gpb1-3", "gpb1-4"; 347 samsung,pins = "gpb1-3", "gpb1-4";
349 samsung,pin-function = <4>; 348 samsung,pin-function = <4>;
350 samsung,pin-pud = <3>; 349 samsung,pin-pud = <3>;
351 samsung,pin-drv = <0>; 350 samsung,pin-drv = <0>;
352 }; 351 };
353 352
354 pwm0_out: pwm0-out { 353 pwm0_out: pwm0-out {
355 samsung,pins = "gpb2-0"; 354 samsung,pins = "gpb2-0";
356 samsung,pin-function = <2>; 355 samsung,pin-function = <2>;
357 samsung,pin-pud = <0>; 356 samsung,pin-pud = <0>;
358 samsung,pin-drv = <0>; 357 samsung,pin-drv = <0>;
359 }; 358 };
360 359
361 pwm1_out: pwm1-out { 360 pwm1_out: pwm1-out {
362 samsung,pins = "gpb2-1"; 361 samsung,pins = "gpb2-1";
363 samsung,pin-function = <2>; 362 samsung,pin-function = <2>;
364 samsung,pin-pud = <0>; 363 samsung,pin-pud = <0>;
365 samsung,pin-drv = <0>; 364 samsung,pin-drv = <0>;
366 }; 365 };
367 366
368 pwm2_out: pwm2-out { 367 pwm2_out: pwm2-out {
369 samsung,pins = "gpb2-2"; 368 samsung,pins = "gpb2-2";
370 samsung,pin-function = <2>; 369 samsung,pin-function = <2>;
371 samsung,pin-pud = <0>; 370 samsung,pin-pud = <0>;
372 samsung,pin-drv = <0>; 371 samsung,pin-drv = <0>;
373 }; 372 };
374 373
375 pwm3_out: pwm3-out { 374 pwm3_out: pwm3-out {
376 samsung,pins = "gpb2-3"; 375 samsung,pins = "gpb2-3";
377 samsung,pin-function = <2>; 376 samsung,pin-function = <2>;
378 samsung,pin-pud = <0>; 377 samsung,pin-pud = <0>;
379 samsung,pin-drv = <0>; 378 samsung,pin-drv = <0>;
380 }; 379 };
381 380
382 i2c7_bus: i2c7-bus { 381 i2c7_bus: i2c7-bus {
383 samsung,pins = "gpb2-2", "gpb2-3"; 382 samsung,pins = "gpb2-2", "gpb2-3";
384 samsung,pin-function = <3>; 383 samsung,pin-function = <3>;
385 samsung,pin-pud = <3>; 384 samsung,pin-pud = <3>;
386 samsung,pin-drv = <0>; 385 samsung,pin-drv = <0>;
387 }; 386 };
388 387
389 i2c0_bus: i2c0-bus { 388 i2c0_bus: i2c0-bus {
390 samsung,pins = "gpb3-0", "gpb3-1"; 389 samsung,pins = "gpb3-0", "gpb3-1";
391 samsung,pin-function = <2>; 390 samsung,pin-function = <2>;
392 samsung,pin-pud = <3>; 391 samsung,pin-pud = <3>;
393 samsung,pin-drv = <0>; 392 samsung,pin-drv = <0>;
394 }; 393 };
395 394
396 i2c1_bus: i2c1-bus { 395 i2c1_bus: i2c1-bus {
397 samsung,pins = "gpb3-2", "gpb3-3"; 396 samsung,pins = "gpb3-2", "gpb3-3";
398 samsung,pin-function = <2>; 397 samsung,pin-function = <2>;
399 samsung,pin-pud = <3>; 398 samsung,pin-pud = <3>;
400 samsung,pin-drv = <0>; 399 samsung,pin-drv = <0>;
401 }; 400 };
402 401
403 i2c0_hs_bus: i2c0-hs-bus { 402 i2c0_hs_bus: i2c0-hs-bus {
404 samsung,pins = "gpb3-0", "gpb3-1"; 403 samsung,pins = "gpb3-0", "gpb3-1";
405 samsung,pin-function = <4>; 404 samsung,pin-function = <4>;
406 samsung,pin-pud = <3>; 405 samsung,pin-pud = <3>;
407 samsung,pin-drv = <0>; 406 samsung,pin-drv = <0>;
408 }; 407 };
409 408
410 i2c1_hs_bus: i2c1-hs-bus { 409 i2c1_hs_bus: i2c1-hs-bus {
411 samsung,pins = "gpb3-2", "gpb3-3"; 410 samsung,pins = "gpb3-2", "gpb3-3";
412 samsung,pin-function = <4>; 411 samsung,pin-function = <4>;
413 samsung,pin-pud = <3>; 412 samsung,pin-pud = <3>;
414 samsung,pin-drv = <0>; 413 samsung,pin-drv = <0>;
415 }; 414 };
416 415
417 sd0_clk: sd0-clk { 416 sd0_clk: sd0-clk {
418 samsung,pins = "gpc0-0"; 417 samsung,pins = "gpc0-0";
419 samsung,pin-function = <2>; 418 samsung,pin-function = <2>;
420 samsung,pin-pud = <0>; 419 samsung,pin-pud = <0>;
421 samsung,pin-drv = <3>; 420 samsung,pin-drv = <3>;
422 }; 421 };
423 422
424 sd0_cmd: sd0-cmd { 423 sd0_cmd: sd0-cmd {
425 samsung,pins = "gpc0-1"; 424 samsung,pins = "gpc0-1";
426 samsung,pin-function = <2>; 425 samsung,pin-function = <2>;
427 samsung,pin-pud = <0>; 426 samsung,pin-pud = <0>;
428 samsung,pin-drv = <3>; 427 samsung,pin-drv = <3>;
429 }; 428 };
430 429
431 sd0_cd: sd0-cd { 430 sd0_cd: sd0-cd {
432 samsung,pins = "gpc0-2"; 431 samsung,pins = "gpc0-2";
433 samsung,pin-function = <2>; 432 samsung,pin-function = <2>;
434 samsung,pin-pud = <3>; 433 samsung,pin-pud = <3>;
435 samsung,pin-drv = <3>; 434 samsung,pin-drv = <3>;
436 }; 435 };
437 436
438 sd0_bus1: sd0-bus-width1 { 437 sd0_bus1: sd0-bus-width1 {
439 samsung,pins = "gpc0-3"; 438 samsung,pins = "gpc0-3";
440 samsung,pin-function = <2>; 439 samsung,pin-function = <2>;
441 samsung,pin-pud = <3>; 440 samsung,pin-pud = <3>;
442 samsung,pin-drv = <3>; 441 samsung,pin-drv = <3>;
443 }; 442 };
444 443
445 sd0_bus4: sd0-bus-width4 { 444 sd0_bus4: sd0-bus-width4 {
446 samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6"; 445 samsung,pins = "gpc0-3", "gpc0-4", "gpc0-5", "gpc0-6";
447 samsung,pin-function = <2>; 446 samsung,pin-function = <2>;
448 samsung,pin-pud = <3>; 447 samsung,pin-pud = <3>;
449 samsung,pin-drv = <3>; 448 samsung,pin-drv = <3>;
450 }; 449 };
451 450
452 sd0_bus8: sd0-bus-width8 { 451 sd0_bus8: sd0-bus-width8 {
453 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3"; 452 samsung,pins = "gpc1-0", "gpc1-1", "gpc1-2", "gpc1-3";
454 samsung,pin-function = <2>; 453 samsung,pin-function = <2>;
455 samsung,pin-pud = <3>; 454 samsung,pin-pud = <3>;
456 samsung,pin-drv = <3>; 455 samsung,pin-drv = <3>;
457 }; 456 };
458 457
459 sd1_clk: sd1-clk { 458 sd1_clk: sd1-clk {
460 samsung,pins = "gpc2-0"; 459 samsung,pins = "gpc2-0";
461 samsung,pin-function = <2>; 460 samsung,pin-function = <2>;
462 samsung,pin-pud = <0>; 461 samsung,pin-pud = <0>;
463 samsung,pin-drv = <3>; 462 samsung,pin-drv = <3>;
464 }; 463 };
465 464
466 sd1_cmd: sd1-cmd { 465 sd1_cmd: sd1-cmd {
467 samsung,pins = "gpc2-1"; 466 samsung,pins = "gpc2-1";
468 samsung,pin-function = <2>; 467 samsung,pin-function = <2>;
469 samsung,pin-pud = <0>; 468 samsung,pin-pud = <0>;
470 samsung,pin-drv = <3>; 469 samsung,pin-drv = <3>;
471 }; 470 };
472 471
473 sd1_cd: sd1-cd { 472 sd1_cd: sd1-cd {
474 samsung,pins = "gpc2-2"; 473 samsung,pins = "gpc2-2";
475 samsung,pin-function = <2>; 474 samsung,pin-function = <2>;
476 samsung,pin-pud = <3>; 475 samsung,pin-pud = <3>;
477 samsung,pin-drv = <3>; 476 samsung,pin-drv = <3>;
478 }; 477 };
479 478
480 sd1_bus1: sd1-bus-width1 { 479 sd1_bus1: sd1-bus-width1 {
481 samsung,pins = "gpc2-3"; 480 samsung,pins = "gpc2-3";
482 samsung,pin-function = <2>; 481 samsung,pin-function = <2>;
483 samsung,pin-pud = <3>; 482 samsung,pin-pud = <3>;
484 samsung,pin-drv = <3>; 483 samsung,pin-drv = <3>;
485 }; 484 };
486 485
487 sd1_bus4: sd1-bus-width4 { 486 sd1_bus4: sd1-bus-width4 {
488 samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6"; 487 samsung,pins = "gpc2-3", "gpc2-4", "gpc2-5", "gpc2-6";
489 samsung,pin-function = <2>; 488 samsung,pin-function = <2>;
490 samsung,pin-pud = <3>; 489 samsung,pin-pud = <3>;
491 samsung,pin-drv = <3>; 490 samsung,pin-drv = <3>;
492 }; 491 };
493 492
494 sd2_clk: sd2-clk { 493 sd2_clk: sd2-clk {
495 samsung,pins = "gpc3-0"; 494 samsung,pins = "gpc3-0";
496 samsung,pin-function = <2>; 495 samsung,pin-function = <2>;
497 samsung,pin-pud = <0>; 496 samsung,pin-pud = <0>;
498 samsung,pin-drv = <3>; 497 samsung,pin-drv = <3>;
499 }; 498 };
500 499
501 sd2_cmd: sd2-cmd { 500 sd2_cmd: sd2-cmd {
502 samsung,pins = "gpc3-1"; 501 samsung,pins = "gpc3-1";
503 samsung,pin-function = <2>; 502 samsung,pin-function = <2>;
504 samsung,pin-pud = <0>; 503 samsung,pin-pud = <0>;
505 samsung,pin-drv = <3>; 504 samsung,pin-drv = <3>;
506 }; 505 };
507 506
508 sd2_cd: sd2-cd { 507 sd2_cd: sd2-cd {
509 samsung,pins = "gpc3-2"; 508 samsung,pins = "gpc3-2";
510 samsung,pin-function = <2>; 509 samsung,pin-function = <2>;
511 samsung,pin-pud = <3>; 510 samsung,pin-pud = <3>;
512 samsung,pin-drv = <3>; 511 samsung,pin-drv = <3>;
513 }; 512 };
514 513
515 sd2_bus1: sd2-bus-width1 { 514 sd2_bus1: sd2-bus-width1 {
516 samsung,pins = "gpc3-3"; 515 samsung,pins = "gpc3-3";
517 samsung,pin-function = <2>; 516 samsung,pin-function = <2>;
518 samsung,pin-pud = <3>; 517 samsung,pin-pud = <3>;
519 samsung,pin-drv = <3>; 518 samsung,pin-drv = <3>;
520 }; 519 };
521 520
522 sd2_bus4: sd2-bus-width4 { 521 sd2_bus4: sd2-bus-width4 {
523 samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6"; 522 samsung,pins = "gpc3-3", "gpc3-4", "gpc3-5", "gpc3-6";
524 samsung,pin-function = <2>; 523 samsung,pin-function = <2>;
525 samsung,pin-pud = <3>; 524 samsung,pin-pud = <3>;
526 samsung,pin-drv = <3>; 525 samsung,pin-drv = <3>;
527 }; 526 };
528 527
529 sd2_bus8: sd2-bus-width8 { 528 sd2_bus8: sd2-bus-width8 {
530 samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6"; 529 samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
531 samsung,pin-function = <3>; 530 samsung,pin-function = <3>;
532 samsung,pin-pud = <3>; 531 samsung,pin-pud = <3>;
533 samsung,pin-drv = <3>; 532 samsung,pin-drv = <3>;
534 }; 533 };
535 534
536 sd3_clk: sd3-clk { 535 sd3_clk: sd3-clk {
537 samsung,pins = "gpc4-0"; 536 samsung,pins = "gpc4-0";
538 samsung,pin-function = <2>; 537 samsung,pin-function = <2>;
539 samsung,pin-pud = <0>; 538 samsung,pin-pud = <0>;
540 samsung,pin-drv = <3>; 539 samsung,pin-drv = <3>;
541 }; 540 };
542 541
543 sd3_cmd: sd3-cmd { 542 sd3_cmd: sd3-cmd {
544 samsung,pins = "gpc4-1"; 543 samsung,pins = "gpc4-1";
545 samsung,pin-function = <2>; 544 samsung,pin-function = <2>;
546 samsung,pin-pud = <0>; 545 samsung,pin-pud = <0>;
547 samsung,pin-drv = <3>; 546 samsung,pin-drv = <3>;
548 }; 547 };
549 548
550 sd3_cd: sd3-cd { 549 sd3_cd: sd3-cd {
551 samsung,pins = "gpc4-2"; 550 samsung,pins = "gpc4-2";
552 samsung,pin-function = <2>; 551 samsung,pin-function = <2>;
553 samsung,pin-pud = <3>; 552 samsung,pin-pud = <3>;
554 samsung,pin-drv = <3>; 553 samsung,pin-drv = <3>;
555 }; 554 };
556 555
557 sd3_bus1: sd3-bus-width1 { 556 sd3_bus1: sd3-bus-width1 {
558 samsung,pins = "gpc4-3"; 557 samsung,pins = "gpc4-3";
559 samsung,pin-function = <2>; 558 samsung,pin-function = <2>;
560 samsung,pin-pud = <3>; 559 samsung,pin-pud = <3>;
561 samsung,pin-drv = <3>; 560 samsung,pin-drv = <3>;
562 }; 561 };
563 562
564 sd3_bus4: sd3-bus-width4 { 563 sd3_bus4: sd3-bus-width4 {
565 samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6"; 564 samsung,pins = "gpc4-3", "gpc4-4", "gpc4-5", "gpc4-6";
566 samsung,pin-function = <2>; 565 samsung,pin-function = <2>;
567 samsung,pin-pud = <3>; 566 samsung,pin-pud = <3>;
568 samsung,pin-drv = <3>; 567 samsung,pin-drv = <3>;
569 }; 568 };
570 569
571 uart1_data: uart1-data { 570 uart1_data: uart1-data {
572 samsung,pins = "gpd0-0", "gpd0-1"; 571 samsung,pins = "gpd0-0", "gpd0-1";
573 samsung,pin-function = <2>; 572 samsung,pin-function = <2>;
574 samsung,pin-pud = <0>; 573 samsung,pin-pud = <0>;
575 samsung,pin-drv = <0>; 574 samsung,pin-drv = <0>;
576 }; 575 };
577 576
578 uart1_fctl: uart1-fctl { 577 uart1_fctl: uart1-fctl {
579 samsung,pins = "gpd0-2", "gpd0-3"; 578 samsung,pins = "gpd0-2", "gpd0-3";
580 samsung,pin-function = <2>; 579 samsung,pin-function = <2>;
581 samsung,pin-pud = <0>; 580 samsung,pin-pud = <0>;
582 samsung,pin-drv = <0>; 581 samsung,pin-drv = <0>;
583 }; 582 };
584 583
585 dp_hpd: dp_hpd { 584 dp_hpd: dp_hpd {
586 samsung,pins = "gpx0-7"; 585 samsung,pins = "gpx0-7";
587 samsung,pin-function = <3>; 586 samsung,pin-function = <3>;
588 samsung,pin-pud = <0>; 587 samsung,pin-pud = <0>;
589 samsung,pin-drv = <0>; 588 samsung,pin-drv = <0>;
590 }; 589 };
591 }; 590};
592 591
593 pinctrl@13400000 { 592&pinctrl_1 {
594 gpe0: gpe0 { 593 gpe0: gpe0 {
595 gpio-controller; 594 gpio-controller;
596 #gpio-cells = <2>; 595 #gpio-cells = <2>;
597 596
598 interrupt-controller; 597 interrupt-controller;
599 #interrupt-cells = <2>; 598 #interrupt-cells = <2>;
600 }; 599 };
601 600
602 gpe1: gpe1 { 601 gpe1: gpe1 {
603 gpio-controller; 602 gpio-controller;
604 #gpio-cells = <2>; 603 #gpio-cells = <2>;
605 604
606 interrupt-controller; 605 interrupt-controller;
607 #interrupt-cells = <2>; 606 #interrupt-cells = <2>;
608 }; 607 };
609 608
610 gpf0: gpf0 { 609 gpf0: gpf0 {
611 gpio-controller; 610 gpio-controller;
612 #gpio-cells = <2>; 611 #gpio-cells = <2>;
613 612
614 interrupt-controller; 613 interrupt-controller;
615 #interrupt-cells = <2>; 614 #interrupt-cells = <2>;
616 }; 615 };
617 616
618 gpf1: gpf1 { 617 gpf1: gpf1 {
619 gpio-controller; 618 gpio-controller;
620 #gpio-cells = <2>; 619 #gpio-cells = <2>;
621 620
622 interrupt-controller; 621 interrupt-controller;
623 #interrupt-cells = <2>; 622 #interrupt-cells = <2>;
624 }; 623 };
625 624
626 gpg0: gpg0 { 625 gpg0: gpg0 {
627 gpio-controller; 626 gpio-controller;
628 #gpio-cells = <2>; 627 #gpio-cells = <2>;
629 628
630 interrupt-controller; 629 interrupt-controller;
631 #interrupt-cells = <2>; 630 #interrupt-cells = <2>;
632 }; 631 };
633 632
634 gpg1: gpg1 { 633 gpg1: gpg1 {
635 gpio-controller; 634 gpio-controller;
636 #gpio-cells = <2>; 635 #gpio-cells = <2>;
637 636
638 interrupt-controller; 637 interrupt-controller;
639 #interrupt-cells = <2>; 638 #interrupt-cells = <2>;
640 }; 639 };
641 640
642 gpg2: gpg2 { 641 gpg2: gpg2 {
643 gpio-controller; 642 gpio-controller;
644 #gpio-cells = <2>; 643 #gpio-cells = <2>;
645 644
646 interrupt-controller; 645 interrupt-controller;
647 #interrupt-cells = <2>; 646 #interrupt-cells = <2>;
648 }; 647 };
649 648
650 gph0: gph0 { 649 gph0: gph0 {
651 gpio-controller; 650 gpio-controller;
652 #gpio-cells = <2>; 651 #gpio-cells = <2>;
653 652
654 interrupt-controller; 653 interrupt-controller;
655 #interrupt-cells = <2>; 654 #interrupt-cells = <2>;
656 }; 655 };
657 656
658 gph1: gph1 { 657 gph1: gph1 {
659 gpio-controller; 658 gpio-controller;
660 #gpio-cells = <2>; 659 #gpio-cells = <2>;
661 660
662 interrupt-controller; 661 interrupt-controller;
663 #interrupt-cells = <2>; 662 #interrupt-cells = <2>;
664 }; 663 };
665 664
666 cam_gpio_a: cam-gpio-a { 665 cam_gpio_a: cam-gpio-a {
667 samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3", 666 samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
668 "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7", 667 "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
669 "gpe1-0", "gpe1-1"; 668 "gpe1-0", "gpe1-1";
670 samsung,pin-function = <2>; 669 samsung,pin-function = <2>;
671 samsung,pin-pud = <0>; 670 samsung,pin-pud = <0>;
672 samsung,pin-drv = <0>; 671 samsung,pin-drv = <0>;
673 }; 672 };
674 673
675 cam_gpio_b: cam-gpio-b { 674 cam_gpio_b: cam-gpio-b {
676 samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3", 675 samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
677 "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3"; 676 "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
678 samsung,pin-function = <3>; 677 samsung,pin-function = <3>;
679 samsung,pin-pud = <0>; 678 samsung,pin-pud = <0>;
680 samsung,pin-drv = <0>; 679 samsung,pin-drv = <0>;
681 }; 680 };
682 681
683 cam_i2c2_bus: cam-i2c2-bus { 682 cam_i2c2_bus: cam-i2c2-bus {
684 samsung,pins = "gpe0-6", "gpe1-0"; 683 samsung,pins = "gpe0-6", "gpe1-0";
685 samsung,pin-function = <4>; 684 samsung,pin-function = <4>;
686 samsung,pin-pud = <3>; 685 samsung,pin-pud = <3>;
687 samsung,pin-drv = <0>; 686 samsung,pin-drv = <0>;
688 }; 687 };
689 688
690 cam_spi1_bus: cam-spi1-bus { 689 cam_spi1_bus: cam-spi1-bus {
691 samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3"; 690 samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
692 samsung,pin-function = <4>; 691 samsung,pin-function = <4>;
693 samsung,pin-pud = <0>; 692 samsung,pin-pud = <0>;
694 samsung,pin-drv = <0>; 693 samsung,pin-drv = <0>;
695 }; 694 };
696 695
697 cam_i2c1_bus: cam-i2c1-bus { 696 cam_i2c1_bus: cam-i2c1-bus {
698 samsung,pins = "gpf0-2", "gpf0-3"; 697 samsung,pins = "gpf0-2", "gpf0-3";
699 samsung,pin-function = <2>; 698 samsung,pin-function = <2>;
700 samsung,pin-pud = <3>; 699 samsung,pin-pud = <3>;
701 samsung,pin-drv = <0>; 700 samsung,pin-drv = <0>;
702 }; 701 };
703 702
704 cam_i2c0_bus: cam-i2c0-bus { 703 cam_i2c0_bus: cam-i2c0-bus {
705 samsung,pins = "gpf0-0", "gpf0-1"; 704 samsung,pins = "gpf0-0", "gpf0-1";
706 samsung,pin-function = <2>; 705 samsung,pin-function = <2>;
707 samsung,pin-pud = <3>; 706 samsung,pin-pud = <3>;
708 samsung,pin-drv = <0>; 707 samsung,pin-drv = <0>;
709 }; 708 };
710 709
711 cam_spi0_bus: cam-spi0-bus { 710 cam_spi0_bus: cam-spi0-bus {
712 samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3"; 711 samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
713 samsung,pin-function = <2>; 712 samsung,pin-function = <2>;
714 samsung,pin-pud = <0>; 713 samsung,pin-pud = <0>;
715 samsung,pin-drv = <0>; 714 samsung,pin-drv = <0>;
716 }; 715 };
717 716
718 cam_bayrgb_bus: cam-bayrgb-bus { 717 cam_bayrgb_bus: cam-bayrgb-bus {
719 samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3", 718 samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
720 "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7", 719 "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
721 "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3", 720 "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
722 "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7", 721 "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
723 "gpg2-0", "gpg2-1"; 722 "gpg2-0", "gpg2-1";
724 samsung,pin-function = <2>; 723 samsung,pin-function = <2>;
725 samsung,pin-pud = <0>; 724 samsung,pin-pud = <0>;
726 samsung,pin-drv = <0>; 725 samsung,pin-drv = <0>;
727 }; 726 };
728 727
729 cam_port_a: cam-port-a { 728 cam_port_a: cam-port-a {
730 samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3", 729 samsung,pins = "gph0-0", "gph0-1", "gph0-2", "gph0-3",
731 "gph1-0", "gph1-1", "gph1-2", "gph1-3", 730 "gph1-0", "gph1-1", "gph1-2", "gph1-3",
732 "gph1-4", "gph1-5", "gph1-6", "gph1-7"; 731 "gph1-4", "gph1-5", "gph1-6", "gph1-7";
733 samsung,pin-function = <2>; 732 samsung,pin-function = <2>;
734 samsung,pin-pud = <0>; 733 samsung,pin-pud = <0>;
735 samsung,pin-drv = <0>; 734 samsung,pin-drv = <0>;
736 }; 735 };
737 }; 736};
738 737
739 pinctrl@10d10000 { 738&pinctrl_2 {
740 gpv0: gpv0 { 739 gpv0: gpv0 {
741 gpio-controller; 740 gpio-controller;
742 #gpio-cells = <2>; 741 #gpio-cells = <2>;
743 742
744 interrupt-controller; 743 interrupt-controller;
745 #interrupt-cells = <2>; 744 #interrupt-cells = <2>;
746 }; 745 };
747 746
748 gpv1: gpv1 { 747 gpv1: gpv1 {
749 gpio-controller; 748 gpio-controller;
750 #gpio-cells = <2>; 749 #gpio-cells = <2>;
751 750
752 interrupt-controller; 751 interrupt-controller;
753 #interrupt-cells = <2>; 752 #interrupt-cells = <2>;
754 }; 753 };
755 754
756 gpv2: gpv2 { 755 gpv2: gpv2 {
757 gpio-controller; 756 gpio-controller;
758 #gpio-cells = <2>; 757 #gpio-cells = <2>;
759 758
760 interrupt-controller; 759 interrupt-controller;
761 #interrupt-cells = <2>; 760 #interrupt-cells = <2>;
762 }; 761 };
763 762
764 gpv3: gpv3 { 763 gpv3: gpv3 {
765 gpio-controller; 764 gpio-controller;
766 #gpio-cells = <2>; 765 #gpio-cells = <2>;
767 766
768 interrupt-controller; 767 interrupt-controller;
769 #interrupt-cells = <2>; 768 #interrupt-cells = <2>;
770 }; 769 };
771 770
772 gpv4: gpv4 { 771 gpv4: gpv4 {
773 gpio-controller; 772 gpio-controller;
774 #gpio-cells = <2>; 773 #gpio-cells = <2>;
775 774
776 interrupt-controller; 775 interrupt-controller;
777 #interrupt-cells = <2>; 776 #interrupt-cells = <2>;
778 }; 777 };
779 778
780 c2c_rxd: c2c-rxd { 779 c2c_rxd: c2c-rxd {
781 samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3", 780 samsung,pins = "gpv0-0", "gpv0-1", "gpv0-2", "gpv0-3",
782 "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7", 781 "gpv0-4", "gpv0-5", "gpv0-6", "gpv0-7",
783 "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3", 782 "gpv1-0", "gpv1-1", "gpv1-2", "gpv1-3",
784 "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7"; 783 "gpv1-4", "gpv1-5", "gpv1-6", "gpv1-7";
785 samsung,pin-function = <2>; 784 samsung,pin-function = <2>;
786 samsung,pin-pud = <0>; 785 samsung,pin-pud = <0>;
787 samsung,pin-drv = <0>; 786 samsung,pin-drv = <0>;
788 }; 787 };
789 788
790 c2c_txd: c2c-txd { 789 c2c_txd: c2c-txd {
791 samsung,pins = "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3", 790 samsung,pins = "gpv2-0", "gpv2-1", "gpv2-2", "gpv2-3",
792 "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7", 791 "gpv2-4", "gpv2-5", "gpv2-6", "gpv2-7",
793 "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3", 792 "gpv3-0", "gpv3-1", "gpv3-2", "gpv3-3",
794 "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7"; 793 "gpv3-4", "gpv3-5", "gpv3-6", "gpv3-7";
795 samsung,pin-function = <2>; 794 samsung,pin-function = <2>;
796 samsung,pin-pud = <0>; 795 samsung,pin-pud = <0>;
797 samsung,pin-drv = <0>; 796 samsung,pin-drv = <0>;
798 }; 797 };
799 }; 798};
800 799
801 pinctrl@03860000 { 800&pinctrl_3 {
802 gpz: gpz { 801 gpz: gpz {
803 gpio-controller; 802 gpio-controller;
804 #gpio-cells = <2>; 803 #gpio-cells = <2>;
805 804
806 interrupt-controller; 805 interrupt-controller;
807 #interrupt-cells = <2>; 806 #interrupt-cells = <2>;
808 }; 807 };
809 808
810 i2s0_bus: i2s0-bus { 809 i2s0_bus: i2s0-bus {
811 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", 810 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
812 "gpz-4", "gpz-5", "gpz-6"; 811 "gpz-4", "gpz-5", "gpz-6";
813 samsung,pin-function = <2>; 812 samsung,pin-function = <2>;
814 samsung,pin-pud = <0>; 813 samsung,pin-pud = <0>;
815 samsung,pin-drv = <0>; 814 samsung,pin-drv = <0>;
816 };
817 }; 815 };
818}; 816};
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index bf9bee67c416..4a1f88300a28 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -19,7 +19,6 @@
19 19
20#include <dt-bindings/clock/exynos5250.h> 20#include <dt-bindings/clock/exynos5250.h>
21#include "exynos5.dtsi" 21#include "exynos5.dtsi"
22#include "exynos5250-pinctrl.dtsi"
23#include "exynos4-cpu-thermal.dtsi" 22#include "exynos4-cpu-thermal.dtsi"
24#include <dt-bindings/clock/exynos-audss-clk.h> 23#include <dt-bindings/clock/exynos-audss-clk.h>
25 24
@@ -1062,3 +1061,5 @@
1062 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>; 1061 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
1063 clock-names = "uart", "clk_uart_baud0"; 1062 clock-names = "uart", "clk_uart_baud0";
1064}; 1063};
1064
1065#include "exynos5250-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos5410-smdk5410.dts b/arch/arm/boot/dts/exynos5410-smdk5410.dts
index be3e02530b42..cebeaab3abec 100644
--- a/arch/arm/boot/dts/exynos5410-smdk5410.dts
+++ b/arch/arm/boot/dts/exynos5410-smdk5410.dts
@@ -62,13 +62,13 @@
62}; 62};
63 63
64&uart0 { 64&uart0 {
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&uart1 { 68&uart1 {
69 status = "okay"; 69 status = "okay";
70}; 70};
71 71
72&uart2 { 72&uart2 {
73 status = "okay"; 73 status = "okay";
74}; 74};
diff --git a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
index 8b153166ebdb..130563b2ca95 100644
--- a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
@@ -12,711 +12,710 @@
12 * published by the Free Software Foundation. 12 * published by the Free Software Foundation.
13*/ 13*/
14 14
15/ { 15&pinctrl_0 {
16 pinctrl@13400000 { 16 gpy7: gpy7 {
17 gpy7: gpy7 { 17 gpio-controller;
18 gpio-controller; 18 #gpio-cells = <2>;
19 #gpio-cells = <2>; 19
20 20 interrupt-controller;
21 interrupt-controller; 21 #interrupt-cells = <2>;
22 #interrupt-cells = <2>; 22 };
23 }; 23
24 24 gpx0: gpx0 {
25 gpx0: gpx0 { 25 gpio-controller;
26 gpio-controller; 26 #gpio-cells = <2>;
27 #gpio-cells = <2>; 27
28 28 interrupt-controller;
29 interrupt-controller; 29 interrupt-parent = <&combiner>;
30 interrupt-parent = <&combiner>; 30 #interrupt-cells = <2>;
31 #interrupt-cells = <2>; 31 interrupts = <23 0>, <24 0>, <25 0>, <25 1>,
32 interrupts = <23 0>, <24 0>, <25 0>, <25 1>, 32 <26 0>, <26 1>, <27 0>, <27 1>;
33 <26 0>, <26 1>, <27 0>, <27 1>; 33 };
34 }; 34
35 35 gpx1: gpx1 {
36 gpx1: gpx1 { 36 gpio-controller;
37 gpio-controller; 37 #gpio-cells = <2>;
38 #gpio-cells = <2>; 38
39 39 interrupt-controller;
40 interrupt-controller; 40 interrupt-parent = <&combiner>;
41 interrupt-parent = <&combiner>; 41 #interrupt-cells = <2>;
42 #interrupt-cells = <2>; 42 interrupts = <28 0>, <28 1>, <29 0>, <29 1>,
43 interrupts = <28 0>, <28 1>, <29 0>, <29 1>, 43 <30 0>, <30 1>, <31 0>, <31 1>;
44 <30 0>, <30 1>, <31 0>, <31 1>; 44 };
45 }; 45
46 46 gpx2: gpx2 {
47 gpx2: gpx2 { 47 gpio-controller;
48 gpio-controller; 48 #gpio-cells = <2>;
49 #gpio-cells = <2>; 49
50 50 interrupt-controller;
51 interrupt-controller; 51 #interrupt-cells = <2>;
52 #interrupt-cells = <2>; 52 };
53 }; 53
54 54 gpx3: gpx3 {
55 gpx3: gpx3 { 55 gpio-controller;
56 gpio-controller; 56 #gpio-cells = <2>;
57 #gpio-cells = <2>; 57
58 58 interrupt-controller;
59 interrupt-controller; 59 #interrupt-cells = <2>;
60 #interrupt-cells = <2>; 60 };
61 }; 61
62 62 dp_hpd: dp_hpd {
63 dp_hpd: dp_hpd { 63 samsung,pins = "gpx0-7";
64 samsung,pins = "gpx0-7"; 64 samsung,pin-function = <3>;
65 samsung,pin-function = <3>; 65 samsung,pin-pud = <0>;
66 samsung,pin-pud = <0>; 66 samsung,pin-drv = <0>;
67 samsung,pin-drv = <0>; 67 };
68 }; 68};
69 }; 69
70 70&pinctrl_1 {
71 pinctrl@13410000 { 71 gpc0: gpc0 {
72 gpc0: gpc0 { 72 gpio-controller;
73 gpio-controller; 73 #gpio-cells = <2>;
74 #gpio-cells = <2>; 74
75 75 interrupt-controller;
76 interrupt-controller; 76 #interrupt-cells = <2>;
77 #interrupt-cells = <2>; 77 };
78 }; 78
79 79 gpc1: gpc1 {
80 gpc1: gpc1 { 80 gpio-controller;
81 gpio-controller; 81 #gpio-cells = <2>;
82 #gpio-cells = <2>; 82
83 83 interrupt-controller;
84 interrupt-controller; 84 #interrupt-cells = <2>;
85 #interrupt-cells = <2>; 85 };
86 }; 86
87 87 gpc2: gpc2 {
88 gpc2: gpc2 { 88 gpio-controller;
89 gpio-controller; 89 #gpio-cells = <2>;
90 #gpio-cells = <2>; 90
91 91 interrupt-controller;
92 interrupt-controller; 92 #interrupt-cells = <2>;
93 #interrupt-cells = <2>; 93 };
94 }; 94
95 95 gpc3: gpc3 {
96 gpc3: gpc3 { 96 gpio-controller;
97 gpio-controller; 97 #gpio-cells = <2>;
98 #gpio-cells = <2>; 98
99 99 interrupt-controller;
100 interrupt-controller; 100 #interrupt-cells = <2>;
101 #interrupt-cells = <2>; 101 };
102 }; 102
103 103 gpc4: gpc4 {
104 gpc4: gpc4 { 104 gpio-controller;
105 gpio-controller; 105 #gpio-cells = <2>;
106 #gpio-cells = <2>; 106
107 107 interrupt-controller;
108 interrupt-controller; 108 #interrupt-cells = <2>;
109 #interrupt-cells = <2>; 109 };
110 }; 110
111 111 gpd1: gpd1 {
112 gpd1: gpd1 { 112 gpio-controller;
113 gpio-controller; 113 #gpio-cells = <2>;
114 #gpio-cells = <2>; 114
115 115 interrupt-controller;
116 interrupt-controller; 116 #interrupt-cells = <2>;
117 #interrupt-cells = <2>; 117 };
118 }; 118
119 119 gpy0: gpy0 {
120 gpy0: gpy0 { 120 gpio-controller;
121 gpio-controller; 121 #gpio-cells = <2>;
122 #gpio-cells = <2>; 122 };
123 }; 123
124 124 gpy1: gpy1 {
125 gpy1: gpy1 { 125 gpio-controller;
126 gpio-controller; 126 #gpio-cells = <2>;
127 #gpio-cells = <2>; 127 };
128 }; 128
129 129 gpy2: gpy2 {
130 gpy2: gpy2 { 130 gpio-controller;
131 gpio-controller; 131 #gpio-cells = <2>;
132 #gpio-cells = <2>; 132 };
133 }; 133
134 134 gpy3: gpy3 {
135 gpy3: gpy3 { 135 gpio-controller;
136 gpio-controller; 136 #gpio-cells = <2>;
137 #gpio-cells = <2>; 137 };
138 }; 138
139 139 gpy4: gpy4 {
140 gpy4: gpy4 { 140 gpio-controller;
141 gpio-controller; 141 #gpio-cells = <2>;
142 #gpio-cells = <2>; 142 };
143 }; 143
144 144 gpy5: gpy5 {
145 gpy5: gpy5 { 145 gpio-controller;
146 gpio-controller; 146 #gpio-cells = <2>;
147 #gpio-cells = <2>; 147 };
148 }; 148
149 149 gpy6: gpy6 {
150 gpy6: gpy6 { 150 gpio-controller;
151 gpio-controller; 151 #gpio-cells = <2>;
152 #gpio-cells = <2>; 152 };
153 }; 153
154 154 sd0_clk: sd0-clk {
155 sd0_clk: sd0-clk { 155 samsung,pins = "gpc0-0";
156 samsung,pins = "gpc0-0"; 156 samsung,pin-function = <2>;
157 samsung,pin-function = <2>; 157 samsung,pin-pud = <0>;
158 samsung,pin-pud = <0>; 158 samsung,pin-drv = <3>;
159 samsung,pin-drv = <3>; 159 };
160 }; 160
161 161 sd0_cmd: sd0-cmd {
162 sd0_cmd: sd0-cmd { 162 samsung,pins = "gpc0-1";
163 samsung,pins = "gpc0-1"; 163 samsung,pin-function = <2>;
164 samsung,pin-function = <2>; 164 samsung,pin-pud = <0>;
165 samsung,pin-pud = <0>; 165 samsung,pin-drv = <3>;
166 samsung,pin-drv = <3>; 166 };
167 }; 167
168 168 sd0_cd: sd0-cd {
169 sd0_cd: sd0-cd { 169 samsung,pins = "gpc0-2";
170 samsung,pins = "gpc0-2"; 170 samsung,pin-function = <2>;
171 samsung,pin-function = <2>; 171 samsung,pin-pud = <3>;
172 samsung,pin-pud = <3>; 172 samsung,pin-drv = <3>;
173 samsung,pin-drv = <3>; 173 };
174 }; 174
175 175 sd0_bus1: sd0-bus-width1 {
176 sd0_bus1: sd0-bus-width1 { 176 samsung,pins = "gpc0-3";
177 samsung,pins = "gpc0-3"; 177 samsung,pin-function = <2>;
178 samsung,pin-function = <2>; 178 samsung,pin-pud = <3>;
179 samsung,pin-pud = <3>; 179 samsung,pin-drv = <3>;
180 samsung,pin-drv = <3>; 180 };
181 }; 181
182 182 sd0_bus4: sd0-bus-width4 {
183 sd0_bus4: sd0-bus-width4 { 183 samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
184 samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6"; 184 samsung,pin-function = <2>;
185 samsung,pin-function = <2>; 185 samsung,pin-pud = <3>;
186 samsung,pin-pud = <3>; 186 samsung,pin-drv = <3>;
187 samsung,pin-drv = <3>; 187 };
188 }; 188
189 189 sd0_bus8: sd0-bus-width8 {
190 sd0_bus8: sd0-bus-width8 { 190 samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
191 samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3"; 191 samsung,pin-function = <2>;
192 samsung,pin-function = <2>; 192 samsung,pin-pud = <3>;
193 samsung,pin-pud = <3>; 193 samsung,pin-drv = <3>;
194 samsung,pin-drv = <3>; 194 };
195 }; 195
196 196 sd1_clk: sd1-clk {
197 sd1_clk: sd1-clk { 197 samsung,pins = "gpc1-0";
198 samsung,pins = "gpc1-0"; 198 samsung,pin-function = <2>;
199 samsung,pin-function = <2>; 199 samsung,pin-pud = <0>;
200 samsung,pin-pud = <0>; 200 samsung,pin-drv = <3>;
201 samsung,pin-drv = <3>; 201 };
202 }; 202
203 203 sd0_rclk: sd0-rclk {
204 sd0_rclk: sd0-rclk { 204 samsung,pins = "gpc0-7";
205 samsung,pins = "gpc0-7"; 205 samsung,pin-function = <2>;
206 samsung,pin-function = <2>; 206 samsung,pin-pud = <1>;
207 samsung,pin-pud = <1>; 207 samsung,pin-drv = <3>;
208 samsung,pin-drv = <3>; 208 };
209 }; 209
210 210 sd1_cmd: sd1-cmd {
211 sd1_cmd: sd1-cmd { 211 samsung,pins = "gpc1-1";
212 samsung,pins = "gpc1-1"; 212 samsung,pin-function = <2>;
213 samsung,pin-function = <2>; 213 samsung,pin-pud = <0>;
214 samsung,pin-pud = <0>; 214 samsung,pin-drv = <3>;
215 samsung,pin-drv = <3>; 215 };
216 }; 216
217 217 sd1_cd: sd1-cd {
218 sd1_cd: sd1-cd { 218 samsung,pins = "gpc1-2";
219 samsung,pins = "gpc1-2"; 219 samsung,pin-function = <2>;
220 samsung,pin-function = <2>; 220 samsung,pin-pud = <3>;
221 samsung,pin-pud = <3>; 221 samsung,pin-drv = <3>;
222 samsung,pin-drv = <3>; 222 };
223 }; 223
224 224 sd1_int: sd1-int {
225 sd1_int: sd1-int { 225 samsung,pins = "gpd1-1";
226 samsung,pins = "gpd1-1"; 226 samsung,pin-function = <2>;
227 samsung,pin-function = <2>; 227 samsung,pin-pud = <3>;
228 samsung,pin-pud = <3>; 228 samsung,pin-drv = <0>;
229 samsung,pin-drv = <0>; 229 };
230 }; 230
231 231 sd1_bus1: sd1-bus-width1 {
232 sd1_bus1: sd1-bus-width1 { 232 samsung,pins = "gpc1-3";
233 samsung,pins = "gpc1-3"; 233 samsung,pin-function = <2>;
234 samsung,pin-function = <2>; 234 samsung,pin-pud = <3>;
235 samsung,pin-pud = <3>; 235 samsung,pin-drv = <3>;
236 samsung,pin-drv = <3>; 236 };
237 }; 237
238 238 sd1_bus4: sd1-bus-width4 {
239 sd1_bus4: sd1-bus-width4 { 239 samsung,pins = "gpc1-4", "gpc1-5", "gpc1-6";
240 samsung,pins = "gpc1-4", "gpc1-5", "gpc1-6"; 240 samsung,pin-function = <2>;
241 samsung,pin-function = <2>; 241 samsung,pin-pud = <3>;
242 samsung,pin-pud = <3>; 242 samsung,pin-drv = <3>;
243 samsung,pin-drv = <3>; 243 };
244 }; 244
245 245 sd1_bus8: sd1-bus-width8 {
246 sd1_bus8: sd1-bus-width8 { 246 samsung,pins = "gpd1-4", "gpd1-5", "gpd1-6", "gpd1-7";
247 samsung,pins = "gpd1-4", "gpd1-5", "gpd1-6", "gpd1-7"; 247 samsung,pin-function = <2>;
248 samsung,pin-function = <2>; 248 samsung,pin-pud = <3>;
249 samsung,pin-pud = <3>; 249 samsung,pin-drv = <3>;
250 samsung,pin-drv = <3>; 250 };
251 }; 251
252 252 sd2_clk: sd2-clk {
253 sd2_clk: sd2-clk { 253 samsung,pins = "gpc2-0";
254 samsung,pins = "gpc2-0"; 254 samsung,pin-function = <2>;
255 samsung,pin-function = <2>; 255 samsung,pin-pud = <0>;
256 samsung,pin-pud = <0>; 256 samsung,pin-drv = <3>;
257 samsung,pin-drv = <3>; 257 };
258 }; 258
259 259 sd2_cmd: sd2-cmd {
260 sd2_cmd: sd2-cmd { 260 samsung,pins = "gpc2-1";
261 samsung,pins = "gpc2-1"; 261 samsung,pin-function = <2>;
262 samsung,pin-function = <2>; 262 samsung,pin-pud = <0>;
263 samsung,pin-pud = <0>; 263 samsung,pin-drv = <3>;
264 samsung,pin-drv = <3>; 264 };
265 }; 265
266 266 sd2_cd: sd2-cd {
267 sd2_cd: sd2-cd { 267 samsung,pins = "gpc2-2";
268 samsung,pins = "gpc2-2"; 268 samsung,pin-function = <2>;
269 samsung,pin-function = <2>; 269 samsung,pin-pud = <3>;
270 samsung,pin-pud = <3>; 270 samsung,pin-drv = <3>;
271 samsung,pin-drv = <3>; 271 };
272 }; 272
273 273 sd2_bus1: sd2-bus-width1 {
274 sd2_bus1: sd2-bus-width1 { 274 samsung,pins = "gpc2-3";
275 samsung,pins = "gpc2-3"; 275 samsung,pin-function = <2>;
276 samsung,pin-function = <2>; 276 samsung,pin-pud = <3>;
277 samsung,pin-pud = <3>; 277 samsung,pin-drv = <3>;
278 samsung,pin-drv = <3>; 278 };
279 }; 279
280 280 sd2_bus4: sd2-bus-width4 {
281 sd2_bus4: sd2-bus-width4 { 281 samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
282 samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6"; 282 samsung,pin-function = <2>;
283 samsung,pin-function = <2>; 283 samsung,pin-pud = <3>;
284 samsung,pin-pud = <3>; 284 samsung,pin-drv = <3>;
285 samsung,pin-drv = <3>; 285 };
286 }; 286};
287 }; 287
288 288&pinctrl_2 {
289 pinctrl@14000000 { 289 gpe0: gpe0 {
290 gpe0: gpe0 { 290 gpio-controller;
291 gpio-controller; 291 #gpio-cells = <2>;
292 #gpio-cells = <2>; 292
293 293 interrupt-controller;
294 interrupt-controller; 294 #interrupt-cells = <2>;
295 #interrupt-cells = <2>; 295 };
296 }; 296
297 297 gpe1: gpe1 {
298 gpe1: gpe1 { 298 gpio-controller;
299 gpio-controller; 299 #gpio-cells = <2>;
300 #gpio-cells = <2>; 300
301 301 interrupt-controller;
302 interrupt-controller; 302 #interrupt-cells = <2>;
303 #interrupt-cells = <2>; 303 };
304 }; 304
305 305 gpf0: gpf0 {
306 gpf0: gpf0 { 306 gpio-controller;
307 gpio-controller; 307 #gpio-cells = <2>;
308 #gpio-cells = <2>; 308
309 309 interrupt-controller;
310 interrupt-controller; 310 #interrupt-cells = <2>;
311 #interrupt-cells = <2>; 311 };
312 }; 312
313 313 gpf1: gpf1 {
314 gpf1: gpf1 { 314 gpio-controller;
315 gpio-controller; 315 #gpio-cells = <2>;
316 #gpio-cells = <2>; 316
317 317 interrupt-controller;
318 interrupt-controller; 318 #interrupt-cells = <2>;
319 #interrupt-cells = <2>; 319 };
320 }; 320
321 321 gpg0: gpg0 {
322 gpg0: gpg0 { 322 gpio-controller;
323 gpio-controller; 323 #gpio-cells = <2>;
324 #gpio-cells = <2>; 324
325 325 interrupt-controller;
326 interrupt-controller; 326 #interrupt-cells = <2>;
327 #interrupt-cells = <2>; 327 };
328 }; 328
329 329 gpg1: gpg1 {
330 gpg1: gpg1 { 330 gpio-controller;
331 gpio-controller; 331 #gpio-cells = <2>;
332 #gpio-cells = <2>; 332
333 333 interrupt-controller;
334 interrupt-controller; 334 #interrupt-cells = <2>;
335 #interrupt-cells = <2>; 335 };
336 }; 336
337 337 gpg2: gpg2 {
338 gpg2: gpg2 { 338 gpio-controller;
339 gpio-controller; 339 #gpio-cells = <2>;
340 #gpio-cells = <2>; 340
341 341 interrupt-controller;
342 interrupt-controller; 342 #interrupt-cells = <2>;
343 #interrupt-cells = <2>; 343 };
344 }; 344
345 345 gpj4: gpj4 {
346 gpj4: gpj4 { 346 gpio-controller;
347 gpio-controller; 347 #gpio-cells = <2>;
348 #gpio-cells = <2>; 348
349 349 interrupt-controller;
350 interrupt-controller; 350 #interrupt-cells = <2>;
351 #interrupt-cells = <2>; 351 };
352 }; 352
353 353 cam_gpio_a: cam-gpio-a {
354 cam_gpio_a: cam-gpio-a { 354 samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3",
355 samsung,pins = "gpe0-0", "gpe0-1", "gpe0-2", "gpe0-3", 355 "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7",
356 "gpe0-4", "gpe0-5", "gpe0-6", "gpe0-7", 356 "gpe1-0", "gpe1-1";
357 "gpe1-0", "gpe1-1"; 357 samsung,pin-function = <2>;
358 samsung,pin-function = <2>; 358 samsung,pin-pud = <0>;
359 samsung,pin-pud = <0>; 359 samsung,pin-drv = <0>;
360 samsung,pin-drv = <0>; 360 };
361 }; 361
362 362 cam_gpio_b: cam-gpio-b {
363 cam_gpio_b: cam-gpio-b { 363 samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3",
364 samsung,pins = "gpf0-0", "gpf0-1", "gpf0-2", "gpf0-3", 364 "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
365 "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3"; 365 samsung,pin-function = <3>;
366 samsung,pin-function = <3>; 366 samsung,pin-pud = <0>;
367 samsung,pin-pud = <0>; 367 samsung,pin-drv = <0>;
368 samsung,pin-drv = <0>; 368 };
369 }; 369
370 370 cam_i2c2_bus: cam-i2c2-bus {
371 cam_i2c2_bus: cam-i2c2-bus { 371 samsung,pins = "gpf0-4", "gpf0-5";
372 samsung,pins = "gpf0-4", "gpf0-5"; 372 samsung,pin-function = <2>;
373 samsung,pin-function = <2>; 373 samsung,pin-pud = <3>;
374 samsung,pin-pud = <3>; 374 samsung,pin-drv = <0>;
375 samsung,pin-drv = <0>; 375 };
376 }; 376
377 cam_spi1_bus: cam-spi1-bus { 377 cam_spi1_bus: cam-spi1-bus {
378 samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3"; 378 samsung,pins = "gpe0-4", "gpe0-5", "gpf0-2", "gpf0-3";
379 samsung,pin-function = <4>; 379 samsung,pin-function = <4>;
380 samsung,pin-pud = <0>; 380 samsung,pin-pud = <0>;
381 samsung,pin-drv = <0>; 381 samsung,pin-drv = <0>;
382 }; 382 };
383 383
384 cam_i2c1_bus: cam-i2c1-bus { 384 cam_i2c1_bus: cam-i2c1-bus {
385 samsung,pins = "gpf0-2", "gpf0-3"; 385 samsung,pins = "gpf0-2", "gpf0-3";
386 samsung,pin-function = <2>; 386 samsung,pin-function = <2>;
387 samsung,pin-pud = <3>; 387 samsung,pin-pud = <3>;
388 samsung,pin-drv = <0>; 388 samsung,pin-drv = <0>;
389 }; 389 };
390 390
391 cam_i2c0_bus: cam-i2c0-bus { 391 cam_i2c0_bus: cam-i2c0-bus {
392 samsung,pins = "gpf0-0", "gpf0-1"; 392 samsung,pins = "gpf0-0", "gpf0-1";
393 samsung,pin-function = <2>; 393 samsung,pin-function = <2>;
394 samsung,pin-pud = <3>; 394 samsung,pin-pud = <3>;
395 samsung,pin-drv = <0>; 395 samsung,pin-drv = <0>;
396 }; 396 };
397 397
398 cam_spi0_bus: cam-spi0-bus { 398 cam_spi0_bus: cam-spi0-bus {
399 samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3"; 399 samsung,pins = "gpf1-0", "gpf1-1", "gpf1-2", "gpf1-3";
400 samsung,pin-function = <2>; 400 samsung,pin-function = <2>;
401 samsung,pin-pud = <0>; 401 samsung,pin-pud = <0>;
402 samsung,pin-drv = <0>; 402 samsung,pin-drv = <0>;
403 }; 403 };
404 404
405 cam_bayrgb_bus: cam-bayrgb-bus { 405 cam_bayrgb_bus: cam-bayrgb-bus {
406 samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3", 406 samsung,pins = "gpg0-0", "gpg0-1", "gpg0-2", "gpg0-3",
407 "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7", 407 "gpg0-4", "gpg0-5", "gpg0-6", "gpg0-7",
408 "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3", 408 "gpg1-0", "gpg1-1", "gpg1-2", "gpg1-3",
409 "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7", 409 "gpg1-4", "gpg1-5", "gpg1-6", "gpg1-7",
410 "gpg2-0"; 410 "gpg2-0";
411 samsung,pin-function = <2>; 411 samsung,pin-function = <2>;
412 samsung,pin-pud = <0>; 412 samsung,pin-pud = <0>;
413 samsung,pin-drv = <0>; 413 samsung,pin-drv = <0>;
414 }; 414 };
415 }; 415};
416 416
417 pinctrl@14010000 { 417&pinctrl_3 {
418 gpa0: gpa0 { 418 gpa0: gpa0 {
419 gpio-controller; 419 gpio-controller;
420 #gpio-cells = <2>; 420 #gpio-cells = <2>;
421 421
422 interrupt-controller; 422 interrupt-controller;
423 #interrupt-cells = <2>; 423 #interrupt-cells = <2>;
424 }; 424 };
425 425
426 gpa1: gpa1 { 426 gpa1: gpa1 {
427 gpio-controller; 427 gpio-controller;
428 #gpio-cells = <2>; 428 #gpio-cells = <2>;
429 429
430 interrupt-controller; 430 interrupt-controller;
431 #interrupt-cells = <2>; 431 #interrupt-cells = <2>;
432 }; 432 };
433 433
434 gpa2: gpa2 { 434 gpa2: gpa2 {
435 gpio-controller; 435 gpio-controller;
436 #gpio-cells = <2>; 436 #gpio-cells = <2>;
437 437
438 interrupt-controller; 438 interrupt-controller;
439 #interrupt-cells = <2>; 439 #interrupt-cells = <2>;
440 }; 440 };
441 441
442 gpb0: gpb0 { 442 gpb0: gpb0 {
443 gpio-controller; 443 gpio-controller;
444 #gpio-cells = <2>; 444 #gpio-cells = <2>;
445 445
446 interrupt-controller; 446 interrupt-controller;
447 #interrupt-cells = <2>; 447 #interrupt-cells = <2>;
448 }; 448 };
449 449
450 gpb1: gpb1 { 450 gpb1: gpb1 {
451 gpio-controller; 451 gpio-controller;
452 #gpio-cells = <2>; 452 #gpio-cells = <2>;
453 453
454 interrupt-controller; 454 interrupt-controller;
455 #interrupt-cells = <2>; 455 #interrupt-cells = <2>;
456 }; 456 };
457 457
458 gpb2: gpb2 { 458 gpb2: gpb2 {
459 gpio-controller; 459 gpio-controller;
460 #gpio-cells = <2>; 460 #gpio-cells = <2>;
461 461
462 interrupt-controller; 462 interrupt-controller;
463 #interrupt-cells = <2>; 463 #interrupt-cells = <2>;
464 }; 464 };
465 465
466 gpb3: gpb3 { 466 gpb3: gpb3 {
467 gpio-controller; 467 gpio-controller;
468 #gpio-cells = <2>; 468 #gpio-cells = <2>;
469 469
470 interrupt-controller; 470 interrupt-controller;
471 #interrupt-cells = <2>; 471 #interrupt-cells = <2>;
472 }; 472 };
473 473
474 gpb4: gpb4 { 474 gpb4: gpb4 {
475 gpio-controller; 475 gpio-controller;
476 #gpio-cells = <2>; 476 #gpio-cells = <2>;
477 477
478 interrupt-controller; 478 interrupt-controller;
479 #interrupt-cells = <2>; 479 #interrupt-cells = <2>;
480 }; 480 };
481 481
482 gph0: gph0 { 482 gph0: gph0 {
483 gpio-controller; 483 gpio-controller;
484 #gpio-cells = <2>; 484 #gpio-cells = <2>;
485 485
486 interrupt-controller; 486 interrupt-controller;
487 #interrupt-cells = <2>; 487 #interrupt-cells = <2>;
488 }; 488 };
489 489
490 uart0_data: uart0-data { 490 uart0_data: uart0-data {
491 samsung,pins = "gpa0-0", "gpa0-1"; 491 samsung,pins = "gpa0-0", "gpa0-1";
492 samsung,pin-function = <2>; 492 samsung,pin-function = <2>;
493 samsung,pin-pud = <0>; 493 samsung,pin-pud = <0>;
494 samsung,pin-drv = <0>; 494 samsung,pin-drv = <0>;
495 }; 495 };
496 496
497 uart0_fctl: uart0-fctl { 497 uart0_fctl: uart0-fctl {
498 samsung,pins = "gpa0-2", "gpa0-3"; 498 samsung,pins = "gpa0-2", "gpa0-3";
499 samsung,pin-function = <2>; 499 samsung,pin-function = <2>;
500 samsung,pin-pud = <0>; 500 samsung,pin-pud = <0>;
501 samsung,pin-drv = <0>; 501 samsung,pin-drv = <0>;
502 }; 502 };
503 503
504 uart1_data: uart1-data { 504 uart1_data: uart1-data {
505 samsung,pins = "gpa0-4", "gpa0-5"; 505 samsung,pins = "gpa0-4", "gpa0-5";
506 samsung,pin-function = <2>; 506 samsung,pin-function = <2>;
507 samsung,pin-pud = <0>; 507 samsung,pin-pud = <0>;
508 samsung,pin-drv = <0>; 508 samsung,pin-drv = <0>;
509 }; 509 };
510 510
511 uart1_fctl: uart1-fctl { 511 uart1_fctl: uart1-fctl {
512 samsung,pins = "gpa0-6", "gpa0-7"; 512 samsung,pins = "gpa0-6", "gpa0-7";
513 samsung,pin-function = <2>; 513 samsung,pin-function = <2>;
514 samsung,pin-pud = <0>; 514 samsung,pin-pud = <0>;
515 samsung,pin-drv = <0>; 515 samsung,pin-drv = <0>;
516 }; 516 };
517 517
518 i2c2_bus: i2c2-bus { 518 i2c2_bus: i2c2-bus {
519 samsung,pins = "gpa0-6", "gpa0-7"; 519 samsung,pins = "gpa0-6", "gpa0-7";
520 samsung,pin-function = <3>; 520 samsung,pin-function = <3>;
521 samsung,pin-pud = <3>; 521 samsung,pin-pud = <3>;
522 samsung,pin-drv = <0>; 522 samsung,pin-drv = <0>;
523 }; 523 };
524 524
525 uart2_data: uart2-data { 525 uart2_data: uart2-data {
526 samsung,pins = "gpa1-0", "gpa1-1"; 526 samsung,pins = "gpa1-0", "gpa1-1";
527 samsung,pin-function = <2>; 527 samsung,pin-function = <2>;
528 samsung,pin-pud = <0>; 528 samsung,pin-pud = <0>;
529 samsung,pin-drv = <0>; 529 samsung,pin-drv = <0>;
530 }; 530 };
531 531
532 uart2_fctl: uart2-fctl { 532 uart2_fctl: uart2-fctl {
533 samsung,pins = "gpa1-2", "gpa1-3"; 533 samsung,pins = "gpa1-2", "gpa1-3";
534 samsung,pin-function = <2>; 534 samsung,pin-function = <2>;
535 samsung,pin-pud = <0>; 535 samsung,pin-pud = <0>;
536 samsung,pin-drv = <0>; 536 samsung,pin-drv = <0>;
537 }; 537 };
538 538
539 i2c3_bus: i2c3-bus { 539 i2c3_bus: i2c3-bus {
540 samsung,pins = "gpa1-2", "gpa1-3"; 540 samsung,pins = "gpa1-2", "gpa1-3";
541 samsung,pin-function = <3>; 541 samsung,pin-function = <3>;
542 samsung,pin-pud = <3>; 542 samsung,pin-pud = <3>;
543 samsung,pin-drv = <0>; 543 samsung,pin-drv = <0>;
544 }; 544 };
545 545
546 uart3_data: uart3-data { 546 uart3_data: uart3-data {
547 samsung,pins = "gpa1-4", "gpa1-5"; 547 samsung,pins = "gpa1-4", "gpa1-5";
548 samsung,pin-function = <2>; 548 samsung,pin-function = <2>;
549 samsung,pin-pud = <0>; 549 samsung,pin-pud = <0>;
550 samsung,pin-drv = <0>; 550 samsung,pin-drv = <0>;
551 }; 551 };
552 552
553 spi0_bus: spi0-bus { 553 spi0_bus: spi0-bus {
554 samsung,pins = "gpa2-0", "gpa2-1", "gpa2-2", "gpa2-3"; 554 samsung,pins = "gpa2-0", "gpa2-1", "gpa2-2", "gpa2-3";
555 samsung,pin-function = <2>; 555 samsung,pin-function = <2>;
556 samsung,pin-pud = <3>; 556 samsung,pin-pud = <3>;
557 samsung,pin-drv = <0>; 557 samsung,pin-drv = <0>;
558 }; 558 };
559 559
560 spi1_bus: spi1-bus { 560 spi1_bus: spi1-bus {
561 samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7"; 561 samsung,pins = "gpa2-4", "gpa2-6", "gpa2-7";
562 samsung,pin-function = <2>; 562 samsung,pin-function = <2>;
563 samsung,pin-pud = <3>; 563 samsung,pin-pud = <3>;
564 samsung,pin-drv = <0>; 564 samsung,pin-drv = <0>;
565 }; 565 };
566 566
567 i2c4_hs_bus: i2c4-hs-bus { 567 i2c4_hs_bus: i2c4-hs-bus {
568 samsung,pins = "gpa2-0", "gpa2-1"; 568 samsung,pins = "gpa2-0", "gpa2-1";
569 samsung,pin-function = <3>; 569 samsung,pin-function = <3>;
570 samsung,pin-pud = <3>; 570 samsung,pin-pud = <3>;
571 samsung,pin-drv = <0>; 571 samsung,pin-drv = <0>;
572 }; 572 };
573 573
574 i2c5_hs_bus: i2c5-hs-bus { 574 i2c5_hs_bus: i2c5-hs-bus {
575 samsung,pins = "gpa2-2", "gpa2-3"; 575 samsung,pins = "gpa2-2", "gpa2-3";
576 samsung,pin-function = <3>; 576 samsung,pin-function = <3>;
577 samsung,pin-pud = <3>; 577 samsung,pin-pud = <3>;
578 samsung,pin-drv = <0>; 578 samsung,pin-drv = <0>;
579 }; 579 };
580 580
581 i2s1_bus: i2s1-bus { 581 i2s1_bus: i2s1-bus {
582 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", 582 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
583 "gpb0-4"; 583 "gpb0-4";
584 samsung,pin-function = <2>; 584 samsung,pin-function = <2>;
585 samsung,pin-pud = <0>; 585 samsung,pin-pud = <0>;
586 samsung,pin-drv = <0>; 586 samsung,pin-drv = <0>;
587 }; 587 };
588 588
589 pcm1_bus: pcm1-bus { 589 pcm1_bus: pcm1-bus {
590 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3", 590 samsung,pins = "gpb0-0", "gpb0-1", "gpb0-2", "gpb0-3",
591 "gpb0-4"; 591 "gpb0-4";
592 samsung,pin-function = <3>; 592 samsung,pin-function = <3>;
593 samsung,pin-pud = <0>; 593 samsung,pin-pud = <0>;
594 samsung,pin-drv = <0>; 594 samsung,pin-drv = <0>;
595 }; 595 };
596 596
597 i2s2_bus: i2s2-bus { 597 i2s2_bus: i2s2-bus {
598 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3", 598 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
599 "gpb1-4"; 599 "gpb1-4";
600 samsung,pin-function = <2>; 600 samsung,pin-function = <2>;
601 samsung,pin-pud = <0>; 601 samsung,pin-pud = <0>;
602 samsung,pin-drv = <0>; 602 samsung,pin-drv = <0>;
603 }; 603 };
604 604
605 pcm2_bus: pcm2-bus { 605 pcm2_bus: pcm2-bus {
606 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3", 606 samsung,pins = "gpb1-0", "gpb1-1", "gpb1-2", "gpb1-3",
607 "gpb1-4"; 607 "gpb1-4";
608 samsung,pin-function = <3>; 608 samsung,pin-function = <3>;
609 samsung,pin-pud = <0>; 609 samsung,pin-pud = <0>;
610 samsung,pin-drv = <0>; 610 samsung,pin-drv = <0>;
611 }; 611 };
612 612
613 spdif_bus: spdif-bus { 613 spdif_bus: spdif-bus {
614 samsung,pins = "gpb1-0", "gpb1-1"; 614 samsung,pins = "gpb1-0", "gpb1-1";
615 samsung,pin-function = <4>; 615 samsung,pin-function = <4>;
616 samsung,pin-pud = <0>; 616 samsung,pin-pud = <0>;
617 samsung,pin-drv = <0>; 617 samsung,pin-drv = <0>;
618 }; 618 };
619 619
620 spi2_bus: spi2-bus { 620 spi2_bus: spi2-bus {
621 samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4"; 621 samsung,pins = "gpb1-1", "gpb1-3", "gpb1-4";
622 samsung,pin-function = <5>; 622 samsung,pin-function = <5>;
623 samsung,pin-pud = <3>; 623 samsung,pin-pud = <3>;
624 samsung,pin-drv = <0>; 624 samsung,pin-drv = <0>;
625 }; 625 };
626 626
627 i2c6_hs_bus: i2c6-hs-bus { 627 i2c6_hs_bus: i2c6-hs-bus {
628 samsung,pins = "gpb1-3", "gpb1-4"; 628 samsung,pins = "gpb1-3", "gpb1-4";
629 samsung,pin-function = <4>; 629 samsung,pin-function = <4>;
630 samsung,pin-pud = <3>; 630 samsung,pin-pud = <3>;
631 samsung,pin-drv = <0>; 631 samsung,pin-drv = <0>;
632 }; 632 };
633 633
634 pwm0_out: pwm0-out { 634 pwm0_out: pwm0-out {
635 samsung,pins = "gpb2-0"; 635 samsung,pins = "gpb2-0";
636 samsung,pin-function = <2>; 636 samsung,pin-function = <2>;
637 samsung,pin-pud = <0>; 637 samsung,pin-pud = <0>;
638 samsung,pin-drv = <0>; 638 samsung,pin-drv = <0>;
639 }; 639 };
640 640
641 pwm1_out: pwm1-out { 641 pwm1_out: pwm1-out {
642 samsung,pins = "gpb2-1"; 642 samsung,pins = "gpb2-1";
643 samsung,pin-function = <2>; 643 samsung,pin-function = <2>;
644 samsung,pin-pud = <0>; 644 samsung,pin-pud = <0>;
645 samsung,pin-drv = <0>; 645 samsung,pin-drv = <0>;
646 }; 646 };
647 647
648 pwm2_out: pwm2-out { 648 pwm2_out: pwm2-out {
649 samsung,pins = "gpb2-2"; 649 samsung,pins = "gpb2-2";
650 samsung,pin-function = <2>; 650 samsung,pin-function = <2>;
651 samsung,pin-pud = <0>; 651 samsung,pin-pud = <0>;
652 samsung,pin-drv = <0>; 652 samsung,pin-drv = <0>;
653 }; 653 };
654 654
655 pwm3_out: pwm3-out { 655 pwm3_out: pwm3-out {
656 samsung,pins = "gpb2-3"; 656 samsung,pins = "gpb2-3";
657 samsung,pin-function = <2>; 657 samsung,pin-function = <2>;
658 samsung,pin-pud = <0>; 658 samsung,pin-pud = <0>;
659 samsung,pin-drv = <0>; 659 samsung,pin-drv = <0>;
660 }; 660 };
661 661
662 i2c7_hs_bus: i2c7-hs-bus { 662 i2c7_hs_bus: i2c7-hs-bus {
663 samsung,pins = "gpb2-2", "gpb2-3"; 663 samsung,pins = "gpb2-2", "gpb2-3";
664 samsung,pin-function = <3>; 664 samsung,pin-function = <3>;
665 samsung,pin-pud = <3>; 665 samsung,pin-pud = <3>;
666 samsung,pin-drv = <0>; 666 samsung,pin-drv = <0>;
667 }; 667 };
668 668
669 i2c0_bus: i2c0-bus { 669 i2c0_bus: i2c0-bus {
670 samsung,pins = "gpb3-0", "gpb3-1"; 670 samsung,pins = "gpb3-0", "gpb3-1";
671 samsung,pin-function = <2>; 671 samsung,pin-function = <2>;
672 samsung,pin-pud = <3>; 672 samsung,pin-pud = <3>;
673 samsung,pin-drv = <0>; 673 samsung,pin-drv = <0>;
674 }; 674 };
675 675
676 i2c1_bus: i2c1-bus { 676 i2c1_bus: i2c1-bus {
677 samsung,pins = "gpb3-2", "gpb3-3"; 677 samsung,pins = "gpb3-2", "gpb3-3";
678 samsung,pin-function = <2>; 678 samsung,pin-function = <2>;
679 samsung,pin-pud = <3>; 679 samsung,pin-pud = <3>;
680 samsung,pin-drv = <0>; 680 samsung,pin-drv = <0>;
681 }; 681 };
682 682
683 i2c8_hs_bus: i2c8-hs-bus { 683 i2c8_hs_bus: i2c8-hs-bus {
684 samsung,pins = "gpb3-4", "gpb3-5"; 684 samsung,pins = "gpb3-4", "gpb3-5";
685 samsung,pin-function = <2>; 685 samsung,pin-function = <2>;
686 samsung,pin-pud = <3>; 686 samsung,pin-pud = <3>;
687 samsung,pin-drv = <0>; 687 samsung,pin-drv = <0>;
688 }; 688 };
689 689
690 i2c9_hs_bus: i2c9-hs-bus { 690 i2c9_hs_bus: i2c9-hs-bus {
691 samsung,pins = "gpb3-6", "gpb3-7"; 691 samsung,pins = "gpb3-6", "gpb3-7";
692 samsung,pin-function = <2>; 692 samsung,pin-function = <2>;
693 samsung,pin-pud = <3>; 693 samsung,pin-pud = <3>;
694 samsung,pin-drv = <0>; 694 samsung,pin-drv = <0>;
695 }; 695 };
696 696
697 i2c10_hs_bus: i2c10-hs-bus { 697 i2c10_hs_bus: i2c10-hs-bus {
698 samsung,pins = "gpb4-0", "gpb4-1"; 698 samsung,pins = "gpb4-0", "gpb4-1";
699 samsung,pin-function = <2>; 699 samsung,pin-function = <2>;
700 samsung,pin-pud = <3>; 700 samsung,pin-pud = <3>;
701 samsung,pin-drv = <0>; 701 samsung,pin-drv = <0>;
702 }; 702 };
703 }; 703};
704 704
705 pinctrl@03860000 { 705&pinctrl_4 {
706 gpz: gpz { 706 gpz: gpz {
707 gpio-controller; 707 gpio-controller;
708 #gpio-cells = <2>; 708 #gpio-cells = <2>;
709 709
710 interrupt-controller; 710 interrupt-controller;
711 #interrupt-cells = <2>; 711 #interrupt-cells = <2>;
712 }; 712 };
713 713
714 i2s0_bus: i2s0-bus { 714 i2s0_bus: i2s0-bus {
715 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3", 715 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
716 "gpz-4", "gpz-5", "gpz-6"; 716 "gpz-4", "gpz-5", "gpz-6";
717 samsung,pin-function = <2>; 717 samsung,pin-function = <2>;
718 samsung,pin-pud = <0>; 718 samsung,pin-pud = <0>;
719 samsung,pin-drv = <0>; 719 samsung,pin-drv = <0>;
720 };
721 }; 720 };
722}; 721};
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index 534f27ceb10b..df9aee92ecf4 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -15,7 +15,6 @@
15 15
16#include <dt-bindings/clock/exynos5420.h> 16#include <dt-bindings/clock/exynos5420.h>
17#include "exynos5.dtsi" 17#include "exynos5.dtsi"
18#include "exynos5420-pinctrl.dtsi"
19 18
20#include <dt-bindings/clock/exynos-audss-clk.h> 19#include <dt-bindings/clock/exynos-audss-clk.h>
21 20
@@ -1166,3 +1165,5 @@
1166 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>; 1165 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
1167 clock-names = "uart", "clk_uart_baud0"; 1166 clock-names = "uart", "clk_uart_baud0";
1168}; 1167};
1168
1169#include "exynos5420-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi b/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi
new file mode 100644
index 000000000000..2b289d7c0d13
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi
@@ -0,0 +1,59 @@
1/*
2 * Device tree sources for Exynos5422 thermal zone
3 *
4 * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
5 * Anand Moon <linux.amoon@gmail.com>
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.h>
14
15/ {
16 thermal-zones {
17 cpu0_thermal: cpu0-thermal {
18 thermal-sensors = <&tmu_cpu0 0>;
19 polling-delay-passive = <0>;
20 polling-delay = <0>;
21 trips {
22 cpu_alert0: cpu-alert-0 {
23 temperature = <50000>; /* millicelsius */
24 hysteresis = <5000>; /* millicelsius */
25 type = "active";
26 };
27 cpu_alert1: cpu-alert-1 {
28 temperature = <60000>; /* millicelsius */
29 hysteresis = <5000>; /* millicelsius */
30 type = "active";
31 };
32 cpu_alert2: cpu-alert-2 {
33 temperature = <70000>; /* millicelsius */
34 hysteresis = <5000>; /* millicelsius */
35 type = "active";
36 };
37 cpu_crit0: cpu-crit-0 {
38 temperature = <120000>; /* millicelsius */
39 hysteresis = <0>; /* millicelsius */
40 type = "critical";
41 };
42 };
43 cooling-maps {
44 map0 {
45 trip = <&cpu_alert0>;
46 cooling-device = <&fan0 0 1>;
47 };
48 map1 {
49 trip = <&cpu_alert1>;
50 cooling-device = <&fan0 1 2>;
51 };
52 map2 {
53 trip = <&cpu_alert2>;
54 cooling-device = <&fan0 2 3>;
55 };
56 };
57 };
58 };
59};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 8adf455744e9..1565667e6f69 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -15,6 +15,7 @@
15#include <dt-bindings/gpio/gpio.h> 15#include <dt-bindings/gpio/gpio.h>
16#include <dt-bindings/sound/samsung-i2s.h> 16#include <dt-bindings/sound/samsung-i2s.h>
17#include "exynos5800.dtsi" 17#include "exynos5800.dtsi"
18#include "exynos5422-cpu-thermal.dtsi"
18 19
19/ { 20/ {
20 memory { 21 memory {
@@ -107,6 +108,15 @@
107 clocks = <&i2s0 CLK_I2S_CDCLK>; 108 clocks = <&i2s0 CLK_I2S_CDCLK>;
108 }; 109 };
109 }; 110 };
111
112 fan0: pwm-fan {
113 compatible = "pwm-fan";
114 pwms = <&pwm 0 20972 0>;
115 cooling-min-state = <0>;
116 cooling-max-state = <3>;
117 #cooling-cells = <2>;
118 cooling-levels = <0 130 170 230>;
119 };
110}; 120};
111 121
112&clock_audss { 122&clock_audss {
@@ -461,6 +471,32 @@
461 */ 471 */
462 pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>; 472 pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
463 pinctrl-names = "default"; 473 pinctrl-names = "default";
474 samsung,pwm-outputs = <0>;
475 status = "okay";
476};
477
478&tmu_cpu0 {
479 vtmu-supply = <&ldo7_reg>;
480 status = "okay";
481};
482
483&tmu_cpu1 {
484 vtmu-supply = <&ldo7_reg>;
485 status = "okay";
486};
487
488&tmu_cpu2 {
489 vtmu-supply = <&ldo7_reg>;
490 status = "okay";
491};
492
493&tmu_cpu3 {
494 vtmu-supply = <&ldo7_reg>;
495 status = "okay";
496};
497
498&tmu_gpu {
499 vtmu-supply = <&ldo7_reg>;
464 status = "okay"; 500 status = "okay";
465}; 501};
466 502
@@ -477,3 +513,13 @@
477&usbdrd_dwc3_1 { 513&usbdrd_dwc3_1 {
478 dr_mode = "otg"; 514 dr_mode = "otg";
479}; 515};
516
517&usbdrd3_0 {
518 vdd33-supply = <&ldo9_reg>;
519 vdd10-supply = <&ldo11_reg>;
520};
521
522&usbdrd3_1 {
523 vdd33-supply = <&ldo9_reg>;
524 vdd10-supply = <&ldo11_reg>;
525};
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi
index b69be5c499cf..feb9d34b239c 100644
--- a/arch/arm/boot/dts/imx27.dtsi
+++ b/arch/arm/boot/dts/imx27.dtsi
@@ -144,6 +144,15 @@
144 clock-names = "ipg", "per"; 144 clock-names = "ipg", "per";
145 }; 145 };
146 146
147 rtc: rtc@10007000 {
148 compatible = "fsl,imx21-rtc";
149 reg = <0x10007000 0x1000>;
150 interrupts = <22>;
151 clocks = <&clks IMX27_CLK_CKIL>,
152 <&clks IMX27_CLK_RTC_IPG_GATE>;
153 clock-names = "ref", "ipg";
154 };
155
147 kpp: kpp@10008000 { 156 kpp: kpp@10008000 {
148 compatible = "fsl,imx27-kpp", "fsl,imx21-kpp"; 157 compatible = "fsl,imx27-kpp", "fsl,imx21-kpp";
149 reg = <0x10008000 0x1000>; 158 reg = <0x10008000 0x1000>;
diff --git a/arch/arm/boot/dts/imx53-qsb-common.dtsi b/arch/arm/boot/dts/imx53-qsb-common.dtsi
index b0d5542ac829..53fd75c8ffcf 100644
--- a/arch/arm/boot/dts/imx53-qsb-common.dtsi
+++ b/arch/arm/boot/dts/imx53-qsb-common.dtsi
@@ -228,10 +228,11 @@
228 >; 228 >;
229 }; 229 };
230 230
231 /* open drain */
231 pinctrl_i2c1: i2c1grp { 232 pinctrl_i2c1: i2c1grp {
232 fsl,pins = < 233 fsl,pins = <
233 MX53_PAD_CSI0_DAT8__I2C1_SDA 0xc0000000 234 MX53_PAD_CSI0_DAT8__I2C1_SDA 0x400001ec
234 MX53_PAD_CSI0_DAT9__I2C1_SCL 0xc0000000 235 MX53_PAD_CSI0_DAT9__I2C1_SCL 0x400001ec
235 >; 236 >;
236 }; 237 };
237 238
diff --git a/arch/arm/boot/dts/imx53-qsrb.dts b/arch/arm/boot/dts/imx53-qsrb.dts
index 82d623d05915..66e47de5e826 100644
--- a/arch/arm/boot/dts/imx53-qsrb.dts
+++ b/arch/arm/boot/dts/imx53-qsrb.dts
@@ -20,15 +20,7 @@
20}; 20};
21 21
22&iomuxc { 22&iomuxc {
23 i2c1 { 23 imx53-qsrb {
24 /* open drain */
25 pinctrl_i2c1_qsrb: i2c1grp-1 {
26 fsl,pins = <
27 MX53_PAD_CSI0_DAT8__I2C1_SDA 0x400001ec
28 MX53_PAD_CSI0_DAT9__I2C1_SCL 0x400001ec
29 >;
30 };
31
32 pinctrl_pmic: pmicgrp { 24 pinctrl_pmic: pmicgrp {
33 fsl,pins = < 25 fsl,pins = <
34 MX53_PAD_CSI0_DAT5__GPIO5_23 0x1e4 /* IRQ */ 26 MX53_PAD_CSI0_DAT5__GPIO5_23 0x1e4 /* IRQ */
@@ -38,10 +30,6 @@
38}; 30};
39 31
40&i2c1 { 32&i2c1 {
41 pinctrl-names = "default";
42 pinctrl-0 = <&pinctrl_i2c1_qsrb>;
43 status = "okay";
44
45 pmic: mc34708@8 { 33 pmic: mc34708@8 {
46 compatible = "fsl,mc34708"; 34 compatible = "fsl,mc34708";
47 pinctrl-names = "default"; 35 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
index f2867c4b34a8..7b31fdb79ced 100644
--- a/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
@@ -248,7 +248,6 @@
248 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 248 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
249 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 249 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
250 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 250 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
251 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
252 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 251 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
253 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 252 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
254 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 253 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
index 4493f6e99330..1b66328a8498 100644
--- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
@@ -316,10 +316,13 @@
316}; 316};
317 317
318&usdhc3 { 318&usdhc3 {
319 pinctrl-names = "default"; 319 pinctrl-names = "default", "state_100mhz", "state_200mhz";
320 pinctrl-0 = <&pinctrl_usdhc3>; 320 pinctrl-0 = <&pinctrl_usdhc3>;
321 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
322 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
321 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 323 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
322 vmmc-supply = <&reg_3p3v>; 324 vmmc-supply = <&reg_3p3v>;
325 no-1-8-v; /* firmware will remove if board revision supports */
323 status = "okay"; 326 status = "okay";
324}; 327};
325 328
@@ -380,7 +383,6 @@
380 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 383 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
381 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 384 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
382 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 385 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
383 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
384 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 386 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
385 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 387 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
386 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 388 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
@@ -469,7 +471,34 @@
469 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 471 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
470 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 472 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
471 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 473 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
472 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 /* CD */ 474 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */
475 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059
476 >;
477 };
478
479 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
480 fsl,pins = <
481 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
482 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x170b9
483 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
484 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
485 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
486 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
487 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */
488 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9
489 >;
490 };
491
492 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
493 fsl,pins = <
494 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
495 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
496 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
497 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
498 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
499 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
500 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */
501 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9
473 >; 502 >;
474 }; 503 };
475 }; 504 };
diff --git a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
index a857d1294609..7c51839ff934 100644
--- a/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
@@ -322,10 +322,13 @@
322}; 322};
323 323
324&usdhc3 { 324&usdhc3 {
325 pinctrl-names = "default"; 325 pinctrl-names = "default", "state_100mhz", "state_200mhz";
326 pinctrl-0 = <&pinctrl_usdhc3>; 326 pinctrl-0 = <&pinctrl_usdhc3>;
327 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
328 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
327 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 329 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
328 vmmc-supply = <&reg_3p3v>; 330 vmmc-supply = <&reg_3p3v>;
331 no-1-8-v; /* firmware will remove if board revision supports */
329 status = "okay"; 332 status = "okay";
330}; 333};
331 334
@@ -385,7 +388,6 @@
385 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 388 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
386 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 389 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
387 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 390 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
388 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
389 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 391 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
390 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 392 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
391 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 393 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
@@ -476,7 +478,34 @@
476 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 478 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
477 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 479 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
478 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 480 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
479 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x1b0b0 /* CD */ 481 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */
482 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059
483 >;
484 };
485
486 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
487 fsl,pins = <
488 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
489 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
490 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
491 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
492 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
493 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
494 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */
495 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9
496 >;
497 };
498
499 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
500 fsl,pins = <
501 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
502 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
503 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
504 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
505 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
506 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
507 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */
508 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9
480 >; 509 >;
481 }; 510 };
482 }; 511 };
diff --git a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
index 1afe3385e2d2..929e0b37bd9e 100644
--- a/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
@@ -415,10 +415,13 @@
415}; 415};
416 416
417&usdhc3 { 417&usdhc3 {
418 pinctrl-names = "default"; 418 pinctrl-names = "default", "state_100mhz", "state_200mhz";
419 pinctrl-0 = <&pinctrl_usdhc3>; 419 pinctrl-0 = <&pinctrl_usdhc3>;
420 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
421 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
420 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>; 422 cd-gpios = <&gpio7 0 GPIO_ACTIVE_LOW>;
421 vmmc-supply = <&reg_3p3v>; 423 vmmc-supply = <&reg_3p3v>;
424 no-1-8-v; /* firmware will remove if board revision supports */
422 status = "okay"; 425 status = "okay";
423}; 426};
424 427
@@ -478,7 +481,6 @@
478 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 481 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
479 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 482 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
480 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 483 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
481 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
482 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 484 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
483 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 485 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
484 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 486 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
@@ -568,6 +570,34 @@
568 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059 570 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
569 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059 571 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
570 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059 572 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
573 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x17059 /* CD */
574 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x17059
575 >;
576 };
577
578 pinctrl_usdhc3_100mhz: usdhc3grp100mhz {
579 fsl,pins = <
580 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170b9
581 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100b9
582 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170b9
583 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170b9
584 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170b9
585 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170b9
586 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170b9 /* CD */
587 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170b9
588 >;
589 };
590
591 pinctrl_usdhc3_200mhz: usdhc3grp200mhz {
592 fsl,pins = <
593 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170f9
594 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100f9
595 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170f9
596 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170f9
597 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170f9
598 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170f9
599 MX6QDL_PAD_SD3_DAT5__GPIO7_IO00 0x170f9 /* CD */
600 MX6QDL_PAD_NANDF_CS1__SD3_VSELECT 0x170f9
571 >; 601 >;
572 }; 602 };
573 }; 603 };
diff --git a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
index d1866a0a2f13..741f3d529e3e 100644
--- a/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw551x.dtsi
@@ -250,7 +250,6 @@
250 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 250 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
251 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 251 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
252 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 252 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
253 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
254 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 253 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
255 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 254 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
256 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 255 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
diff --git a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
index 5c6587f6c420..d1e5048b00b5 100644
--- a/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-gw552x.dtsi
@@ -202,7 +202,6 @@
202 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 202 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
203 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 203 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
204 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 204 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
205 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
206 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 205 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
207 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 206 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
208 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 207 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
index d7fe6672d00c..340bc8e42650 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
@@ -54,6 +54,17 @@
54 gpio = <&gpio3 22 0>; 54 gpio = <&gpio3 22 0>;
55 enable-active-high; 55 enable-active-high;
56 }; 56 };
57
58 reg_can_xcvr: regulator@3 {
59 compatible = "regulator-fixed";
60 reg = <3>;
61 regulator-name = "CAN XCVR";
62 regulator-min-microvolt = <3300000>;
63 regulator-max-microvolt = <3300000>;
64 pinctrl-names = "default";
65 pinctrl-0 = <&pinctrl_can_xcvr>;
66 gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
67 };
57 }; 68 };
58 69
59 gpio-keys { 70 gpio-keys {
@@ -149,6 +160,20 @@
149 status = "okay"; 160 status = "okay";
150}; 161};
151 162
163&can1 {
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_can1>;
166 xceiver-supply = <&reg_can_xcvr>;
167 status = "okay";
168};
169
170&clks {
171 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
172 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
173 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
174 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
175};
176
152&ecspi1 { 177&ecspi1 {
153 fsl,spi-num-chipselects = <1>; 178 fsl,spi-num-chipselects = <1>;
154 cs-gpios = <&gpio3 19 0>; 179 cs-gpios = <&gpio3 19 0>;
@@ -245,6 +270,20 @@
245 >; 270 >;
246 }; 271 };
247 272
273 pinctrl_can1: can1grp {
274 fsl,pins = <
275 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0
276 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0
277 >;
278 };
279
280 pinctrl_can_xcvr: can-xcvrgrp {
281 fsl,pins = <
282 /* Flexcan XCVR enable */
283 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
284 >;
285 };
286
248 pinctrl_ecspi1: ecspi1grp { 287 pinctrl_ecspi1: ecspi1grp {
249 fsl,pins = < 288 fsl,pins = <
250 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 289 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index e329ca5c3322..c37bb9ff9fac 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -28,6 +28,71 @@
28 }; 28 };
29 }; 29 };
30 30
31 clocks {
32 codec_osc: anaclk2 {
33 compatible = "fixed-clock";
34 #clock-cells = <0>;
35 clock-frequency = <24576000>;
36 };
37 };
38
39 regulators {
40 compatible = "simple-bus";
41 #address-cells = <1>;
42 #size-cells = <0>;
43
44 reg_audio: regulator@0 {
45 compatible = "regulator-fixed";
46 reg = <0>;
47 regulator-name = "cs42888_supply";
48 regulator-min-microvolt = <3300000>;
49 regulator-max-microvolt = <3300000>;
50 regulator-always-on;
51 };
52
53 reg_usb_h1_vbus: regulator@1 {
54 compatible = "regulator-fixed";
55 reg = <1>;
56 regulator-name = "usb_h1_vbus";
57 regulator-min-microvolt = <5000000>;
58 regulator-max-microvolt = <5000000>;
59 gpio = <&max7310_b 7 GPIO_ACTIVE_HIGH>;
60 enable-active-high;
61 };
62
63 reg_usb_otg_vbus: regulator@2 {
64 compatible = "regulator-fixed";
65 reg = <2>;
66 regulator-name = "usb_otg_vbus";
67 regulator-min-microvolt = <5000000>;
68 regulator-max-microvolt = <5000000>;
69 gpio = <&max7310_c 1 GPIO_ACTIVE_HIGH>;
70 enable-active-high;
71 };
72 };
73
74 sound-cs42888 {
75 compatible = "fsl,imx6-sabreauto-cs42888",
76 "fsl,imx-audio-cs42888";
77 model = "imx-cs42888";
78 audio-cpu = <&esai>;
79 audio-asrc = <&asrc>;
80 audio-codec = <&codec>;
81 audio-routing =
82 "Line Out Jack", "AOUT1L",
83 "Line Out Jack", "AOUT1R",
84 "Line Out Jack", "AOUT2L",
85 "Line Out Jack", "AOUT2R",
86 "Line Out Jack", "AOUT3L",
87 "Line Out Jack", "AOUT3R",
88 "Line Out Jack", "AOUT4L",
89 "Line Out Jack", "AOUT4R",
90 "AIN1L", "Line In Jack",
91 "AIN1R", "Line In Jack",
92 "AIN2L", "Line In Jack",
93 "AIN2R", "Line In Jack";
94 };
95
31 sound-spdif { 96 sound-spdif {
32 compatible = "fsl,imx-audio-spdif", 97 compatible = "fsl,imx-audio-spdif",
33 "fsl,imx-sabreauto-spdif"; 98 "fsl,imx-sabreauto-spdif";
@@ -45,6 +110,19 @@
45 }; 110 };
46}; 111};
47 112
113&clks {
114 assigned-clocks = <&clks IMX6QDL_PLL4_BYPASS_SRC>,
115 <&clks IMX6QDL_PLL4_BYPASS>,
116 <&clks IMX6QDL_CLK_PLL4_POST_DIV>,
117 <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
118 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
119 assigned-clock-parents = <&clks IMX6QDL_CLK_LVDS2_IN>,
120 <&clks IMX6QDL_PLL4_BYPASS_SRC>,
121 <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
122 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
123 assigned-clock-rates = <0>, <0>, <24576000>;
124};
125
48&ecspi1 { 126&ecspi1 {
49 fsl,spi-num-chipselects = <1>; 127 fsl,spi-num-chipselects = <1>;
50 cs-gpios = <&gpio3 19 0>; 128 cs-gpios = <&gpio3 19 0>;
@@ -61,6 +139,16 @@
61 }; 139 };
62}; 140};
63 141
142&esai {
143 pinctrl-names = "default";
144 pinctrl-0 = <&pinctrl_esai>;
145 assigned-clocks = <&clks IMX6QDL_CLK_ESAI_SEL>,
146 <&clks IMX6QDL_CLK_ESAI_EXTAL>;
147 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
148 assigned-clock-rates = <0>, <24576000>;
149 status = "okay";
150};
151
64&fec { 152&fec {
65 pinctrl-names = "default"; 153 pinctrl-names = "default";
66 pinctrl-0 = <&pinctrl_enet>; 154 pinctrl-0 = <&pinctrl_enet>;
@@ -76,6 +164,10 @@
76 status = "okay"; 164 status = "okay";
77}; 165};
78 166
167&hdmi {
168 status = "okay";
169};
170
79&i2c2 { 171&i2c2 {
80 clock-frequency = <100000>; 172 clock-frequency = <100000>;
81 pinctrl-names = "default"; 173 pinctrl-names = "default";
@@ -180,6 +272,18 @@
180 }; 272 };
181 }; 273 };
182 }; 274 };
275
276 codec: cs42888@48 {
277 compatible = "cirrus,cs42888";
278 reg = <0x48>;
279 clocks = <&codec_osc>;
280 clock-names = "mclk";
281 VA-supply = <&reg_audio>;
282 VD-supply = <&reg_audio>;
283 VLS-supply = <&reg_audio>;
284 VLC-supply = <&reg_audio>;
285 };
286
183}; 287};
184 288
185&i2c3 { 289&i2c3 {
@@ -257,6 +361,21 @@
257 >; 361 >;
258 }; 362 };
259 363
364 pinctrl_esai: esaigrp {
365 fsl,pins = <
366 MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030
367 MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS 0x1b030
368 MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030
369 MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3 0x1b030
370 MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1 0x1b030
371 MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0 0x1b030
372 MX6QDL_PAD_GPIO_17__ESAI_TX0 0x1b030
373 MX6QDL_PAD_NANDF_CS3__ESAI_TX1 0x1b030
374 MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK 0x1b030
375 MX6QDL_PAD_GPIO_9__ESAI_RX_FS 0x1b030
376 >;
377 };
378
260 pinctrl_gpio_leds: gpioledsgrp { 379 pinctrl_gpio_leds: gpioledsgrp {
261 fsl,pins = < 380 fsl,pins = <
262 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x80000000 381 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x80000000
@@ -318,6 +437,12 @@
318 >; 437 >;
319 }; 438 };
320 439
440 pinctrl_usbotg: usbotggrp {
441 fsl,pins = <
442 MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
443 >;
444 };
445
321 pinctrl_usdhc3: usdhc3grp { 446 pinctrl_usdhc3: usdhc3grp {
322 fsl,pins = < 447 fsl,pins = <
323 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059 448 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
@@ -462,6 +587,18 @@
462 status = "okay"; 587 status = "okay";
463}; 588};
464 589
590&usbh1 {
591 vbus-supply = <&reg_usb_h1_vbus>;
592 status = "okay";
593};
594
595&usbotg {
596 vbus-supply = <&reg_usb_otg_vbus>;
597 pinctrl-names = "default";
598 pinctrl-0 = <&pinctrl_usbotg>;
599 status = "okay";
600};
601
465&usdhc3 { 602&usdhc3 {
466 pinctrl-names = "default", "state_100mhz", "state_200mhz"; 603 pinctrl-names = "default", "state_100mhz", "state_200mhz";
467 pinctrl-0 = <&pinctrl_usdhc3>; 604 pinctrl-0 = <&pinctrl_usdhc3>;
diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
index 782379320517..ce4c7313f509 100644
--- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -53,6 +53,17 @@
53 gpio = <&gpio3 22 0>; 53 gpio = <&gpio3 22 0>;
54 enable-active-high; 54 enable-active-high;
55 }; 55 };
56
57 reg_can_xcvr: regulator@3 {
58 compatible = "regulator-fixed";
59 reg = <3>;
60 regulator-name = "CAN XCVR";
61 regulator-min-microvolt = <3300000>;
62 regulator-max-microvolt = <3300000>;
63 pinctrl-names = "default";
64 pinctrl-0 = <&pinctrl_can_xcvr>;
65 gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
66 };
56 }; 67 };
57 68
58 gpio-keys { 69 gpio-keys {
@@ -148,6 +159,20 @@
148 status = "okay"; 159 status = "okay";
149}; 160};
150 161
162&can1 {
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_can1>;
165 xceiver-supply = <&reg_can_xcvr>;
166 status = "okay";
167};
168
169&clks {
170 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
171 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
172 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
173 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
174};
175
151&ecspi1 { 176&ecspi1 {
152 fsl,spi-num-chipselects = <1>; 177 fsl,spi-num-chipselects = <1>;
153 cs-gpios = <&gpio3 19 0>; 178 cs-gpios = <&gpio3 19 0>;
@@ -239,6 +264,20 @@
239 >; 264 >;
240 }; 265 };
241 266
267 pinctrl_can1: can1grp {
268 fsl,pins = <
269 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x1b0b0
270 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b0b0
271 >;
272 };
273
274 pinctrl_can_xcvr: can-xcvrgrp {
275 fsl,pins = <
276 /* Flexcan XCVR enable */
277 MX6QDL_PAD_GPIO_2__GPIO1_IO02 0x1b0b0
278 >;
279 };
280
242 pinctrl_ecspi1: ecspi1grp { 281 pinctrl_ecspi1: ecspi1grp {
243 fsl,pins = < 282 fsl,pins = <
244 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1 283 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index 944eb81cb2b8..2c07d3a86b61 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -141,6 +141,13 @@
141 status = "okay"; 141 status = "okay";
142}; 142};
143 143
144&clks {
145 assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
146 <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
147 assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
148 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
149};
150
144&ecspi1 { 151&ecspi1 {
145 fsl,spi-num-chipselects = <1>; 152 fsl,spi-num-chipselects = <1>;
146 cs-gpios = <&gpio4 9 0>; 153 cs-gpios = <&gpio4 9 0>;
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 10d0b26c93f1..e716e6f301c6 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -300,8 +300,19 @@
300 }; 300 };
301 301
302 esai: esai@02024000 { 302 esai: esai@02024000 {
303 #sound-dai-cells = <0>;
304 compatible = "fsl,imx35-esai";
303 reg = <0x02024000 0x4000>; 305 reg = <0x02024000 0x4000>;
304 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>; 306 interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
307 clocks = <&clks IMX6QDL_CLK_ESAI_IPG>,
308 <&clks IMX6QDL_CLK_ESAI_MEM>,
309 <&clks IMX6QDL_CLK_ESAI_EXTAL>,
310 <&clks IMX6QDL_CLK_ESAI_IPG>,
311 <&clks IMX6QDL_CLK_SPBA>;
312 clock-names = "core", "mem", "extal", "fsys", "dma";
313 dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
314 dma-names = "rx", "tx";
315 status = "disabled";
305 }; 316 };
306 317
307 ssi1: ssi@02028000 { 318 ssi1: ssi@02028000 {
@@ -353,8 +364,28 @@
353 }; 364 };
354 365
355 asrc: asrc@02034000 { 366 asrc: asrc@02034000 {
367 compatible = "fsl,imx53-asrc";
356 reg = <0x02034000 0x4000>; 368 reg = <0x02034000 0x4000>;
357 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>; 369 interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
370 clocks = <&clks IMX6QDL_CLK_ASRC_IPG>,
371 <&clks IMX6QDL_CLK_ASRC_MEM>, <&clks 0>,
372 <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
373 <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
374 <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>,
375 <&clks IMX6QDL_CLK_ASRC>, <&clks 0>, <&clks 0>,
376 <&clks IMX6QDL_CLK_SPBA>;
377 clock-names = "mem", "ipg", "asrck_0",
378 "asrck_1", "asrck_2", "asrck_3", "asrck_4",
379 "asrck_5", "asrck_6", "asrck_7", "asrck_8",
380 "asrck_9", "asrck_a", "asrck_b", "asrck_c",
381 "asrck_d", "asrck_e", "asrck_f", "dma";
382 dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>,
383 <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>;
384 dma-names = "rxa", "rxb", "rxc",
385 "txa", "txb", "txc";
386 fsl,asrc-rate = <48000>;
387 fsl,asrc-width = <16>;
388 status = "okay";
358 }; 389 };
359 390
360 spba@0203c000 { 391 spba@0203c000 {
@@ -687,22 +718,23 @@
687 fsl,anatop = <&anatop>; 718 fsl,anatop = <&anatop>;
688 }; 719 };
689 720
690 snvs@020cc000 { 721 snvs: snvs@020cc000 {
691 compatible = "fsl,sec-v4.0-mon", "simple-bus"; 722 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
692 #address-cells = <1>; 723 reg = <0x020cc000 0x4000>;
693 #size-cells = <1>;
694 ranges = <0 0x020cc000 0x4000>;
695 724
696 snvs_rtc: snvs-rtc-lp@34 { 725 snvs_rtc: snvs-rtc-lp {
697 compatible = "fsl,sec-v4.0-mon-rtc-lp"; 726 compatible = "fsl,sec-v4.0-mon-rtc-lp";
698 reg = <0x34 0x58>; 727 regmap = <&snvs>;
728 offset = <0x34>;
699 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, 729 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
700 <0 20 IRQ_TYPE_LEVEL_HIGH>; 730 <0 20 IRQ_TYPE_LEVEL_HIGH>;
701 }; 731 };
702 732
703 snvs_poweroff: snvs-poweroff@38 { 733 snvs_poweroff: snvs-poweroff {
704 compatible = "fsl,sec-v4.0-poweroff"; 734 compatible = "syscon-poweroff";
705 reg = <0x38 0x4>; 735 regmap = <&snvs>;
736 offset = <0x38>;
737 mask = <0x60>;
706 status = "disabled"; 738 status = "disabled";
707 }; 739 };
708 }; 740 };
diff --git a/arch/arm/boot/dts/imx6sl-warp.dts b/arch/arm/boot/dts/imx6sl-warp.dts
index 0da906bd8df2..10c69963100f 100644
--- a/arch/arm/boot/dts/imx6sl-warp.dts
+++ b/arch/arm/boot/dts/imx6sl-warp.dts
@@ -61,7 +61,9 @@
61 usdhc3_pwrseq: usdhc3_pwrseq { 61 usdhc3_pwrseq: usdhc3_pwrseq {
62 compatible = "mmc-pwrseq-simple"; 62 compatible = "mmc-pwrseq-simple";
63 reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>, /* WL_REG_ON */ 63 reset-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>, /* WL_REG_ON */
64 <&gpio4 7 GPIO_ACTIVE_LOW>, /* WL_HOSTWAKE */
64 <&gpio3 25 GPIO_ACTIVE_LOW>, /* BT_REG_ON */ 65 <&gpio3 25 GPIO_ACTIVE_LOW>, /* BT_REG_ON */
66 <&gpio3 27 GPIO_ACTIVE_LOW>, /* BT_HOSTWAKE */
65 <&gpio4 4 GPIO_ACTIVE_LOW>, /* BT_WAKE */ 67 <&gpio4 4 GPIO_ACTIVE_LOW>, /* BT_WAKE */
66 <&gpio4 6 GPIO_ACTIVE_LOW>; /* BT_RST_N */ 68 <&gpio4 6 GPIO_ACTIVE_LOW>; /* BT_RST_N */
67 }; 69 };
@@ -73,16 +75,16 @@
73 status = "okay"; 75 status = "okay";
74}; 76};
75 77
76&uart2 { 78&uart3 {
77 pinctrl-names = "default"; 79 pinctrl-names = "default";
78 pinctrl-0 = <&pinctrl_uart2>; 80 pinctrl-0 = <&pinctrl_uart3>;
79 fsl,uart-has-rtscts;
80 status = "okay"; 81 status = "okay";
81}; 82};
82 83
83&uart3 { 84&uart5 {
84 pinctrl-names = "default"; 85 pinctrl-names = "default";
85 pinctrl-0 = <&pinctrl_uart3>; 86 pinctrl-0 = <&pinctrl_uart5>;
87 fsl,uart-has-rtscts;
86 status = "okay"; 88 status = "okay";
87}; 89};
88 90
@@ -130,14 +132,6 @@
130 >; 132 >;
131 }; 133 };
132 134
133 pinctrl_uart2: uart2grp {
134 fsl,pins = <
135 MX6SL_PAD_EPDC_D12__UART2_RX_DATA 0x41b0b1
136 MX6SL_PAD_EPDC_D13__UART2_TX_DATA 0x41b0b1
137 MX6SL_PAD_EPDC_D14__UART2_RTS_B 0x4130B1
138 MX6SL_PAD_EPDC_D15__UART2_CTS_B 0x4130B1
139 >;
140 };
141 135
142 pinctrl_uart3: uart3grp { 136 pinctrl_uart3: uart3grp {
143 fsl,pins = < 137 fsl,pins = <
@@ -146,6 +140,15 @@
146 >; 140 >;
147 }; 141 };
148 142
143 pinctrl_uart5: uart5grp {
144 fsl,pins = <
145 MX6SL_PAD_ECSPI1_SCLK__UART5_RX_DATA 0x41b0b1
146 MX6SL_PAD_ECSPI1_MOSI__UART5_TX_DATA 0x41b0b1
147 MX6SL_PAD_ECSPI1_MISO__UART5_RTS_B 0x4130b1
148 MX6SL_PAD_ECSPI1_SS0__UART5_CTS_B 0x4130b1
149 >;
150 };
151
149 pinctrl_usdhc2: usdhc2grp { 152 pinctrl_usdhc2: usdhc2grp {
150 fsl,pins = < 153 fsl,pins = <
151 MX6SL_PAD_SD2_CMD__SD2_CMD 0x417059 154 MX6SL_PAD_SD2_CMD__SD2_CMD 0x417059
@@ -158,6 +161,7 @@
158 MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x417059 161 MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x417059
159 MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x417059 162 MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x417059
160 MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x417059 163 MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x417059
164 MX6SL_PAD_SD2_RST__SD2_RESET 0x417059
161 >; 165 >;
162 }; 166 };
163 167
@@ -173,6 +177,7 @@
173 MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x4170b9 177 MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x4170b9
174 MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x4170b9 178 MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x4170b9
175 MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x4170b9 179 MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x4170b9
180 MX6SL_PAD_SD2_RST__SD2_RESET 0x4170b9
176 >; 181 >;
177 }; 182 };
178 183
@@ -188,6 +193,7 @@
188 MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x4170f9 193 MX6SL_PAD_SD2_DAT5__SD2_DATA5 0x4170f9
189 MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x4170f9 194 MX6SL_PAD_SD2_DAT6__SD2_DATA6 0x4170f9
190 MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x4170f9 195 MX6SL_PAD_SD2_DAT7__SD2_DATA7 0x4170f9
196 MX6SL_PAD_SD2_RST__SD2_RESET 0x4170f9
191 >; 197 >;
192 }; 198 };
193 199
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index a78e715e3982..320a27f8889e 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -563,22 +563,23 @@
563 fsl,anatop = <&anatop>; 563 fsl,anatop = <&anatop>;
564 }; 564 };
565 565
566 snvs@020cc000 { 566 snvs: snvs@020cc000 {
567 compatible = "fsl,sec-v4.0-mon", "simple-bus"; 567 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
568 #address-cells = <1>; 568 reg = <0x020cc000 0x4000>;
569 #size-cells = <1>;
570 ranges = <0 0x020cc000 0x4000>;
571 569
572 snvs_rtc: snvs-rtc-lp@34 { 570 snvs_rtc: snvs-rtc-lp {
573 compatible = "fsl,sec-v4.0-mon-rtc-lp"; 571 compatible = "fsl,sec-v4.0-mon-rtc-lp";
574 reg = <0x34 0x58>; 572 regmap = <&snvs>;
573 offset = <0x34>;
575 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>, 574 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>,
576 <0 20 IRQ_TYPE_LEVEL_HIGH>; 575 <0 20 IRQ_TYPE_LEVEL_HIGH>;
577 }; 576 };
578 577
579 snvs_poweroff: snvs-poweroff@38 { 578 snvs_poweroff: snvs-poweroff {
580 compatible = "fsl,sec-v4.0-poweroff"; 579 compatible = "syscon-poweroff";
581 reg = <0x38 0x4>; 580 regmap = <&snvs>;
581 offset = <0x38>;
582 mask = <0x60>;
582 status = "disabled"; 583 status = "disabled";
583 }; 584 };
584 }; 585 };
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index e6223d8e79af..c94f2ea2316e 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -8,6 +8,7 @@
8 8
9#include <dt-bindings/clock/imx6sx-clock.h> 9#include <dt-bindings/clock/imx6sx-clock.h>
10#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include "imx6sx-pinfunc.h" 13#include "imx6sx-pinfunc.h"
13#include "skeleton.dtsi" 14#include "skeleton.dtsi"
@@ -662,22 +663,31 @@
662 }; 663 };
663 664
664 snvs: snvs@020cc000 { 665 snvs: snvs@020cc000 {
665 compatible = "fsl,sec-v4.0-mon", "simple-bus"; 666 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
666 #address-cells = <1>; 667 reg = <0x020cc000 0x4000>;
667 #size-cells = <1>;
668 ranges = <0 0x020cc000 0x4000>;
669 668
670 snvs_rtc: snvs-rtc-lp@34 { 669 snvs_rtc: snvs-rtc-lp {
671 compatible = "fsl,sec-v4.0-mon-rtc-lp"; 670 compatible = "fsl,sec-v4.0-mon-rtc-lp";
672 reg = <0x34 0x58>; 671 regmap = <&snvs>;
672 offset = <0x34>;
673 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 673 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
674 }; 674 };
675 675
676 snvs_poweroff: snvs-poweroff@38 { 676 snvs_poweroff: snvs-poweroff {
677 compatible = "fsl,sec-v4.0-poweroff"; 677 compatible = "syscon-poweroff";
678 reg = <0x38 0x4>; 678 regmap = <&snvs>;
679 offset = <0x38>;
680 mask = <0x60>;
679 status = "disabled"; 681 status = "disabled";
680 }; 682 };
683
684 snvs_pwrkey: snvs-powerkey {
685 compatible = "fsl,sec-v4.0-pwrkey";
686 regmap = <&snvs>;
687 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
688 linux,keycode = <KEY_POWER>;
689 wakeup-source;
690 };
681 }; 691 };
682 692
683 epit1: epit@020d0000 { 693 epit1: epit@020d0000 {
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
new file mode 100644
index 000000000000..25746b122ea6
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
@@ -0,0 +1,343 @@
1/*
2 * Copyright (C) 2015 Freescale Semiconductor, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/input/input.h>
12#include "imx6ul.dtsi"
13
14/ {
15 model = "Freescale i.MX6 UltraLite 14x14 EVK Board";
16 compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul";
17
18 chosen {
19 stdout-path = &uart1;
20 };
21
22 memory {
23 reg = <0x80000000 0x20000000>;
24 };
25
26 regulators {
27 compatible = "simple-bus";
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 reg_sd1_vmmc: sd1_regulator {
32 compatible = "regulator-fixed";
33 regulator-name = "VSD_3V3";
34 regulator-min-microvolt = <3300000>;
35 regulator-max-microvolt = <3300000>;
36 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
37 enable-active-high;
38 };
39 };
40};
41
42&cpu0 {
43 arm-supply = <&reg_arm>;
44 soc-supply = <&reg_soc>;
45};
46
47&fec1 {
48 pinctrl-names = "default";
49 pinctrl-0 = <&pinctrl_enet1>;
50 phy-mode = "rmii";
51 phy-handle = <&ethphy0>;
52 status = "okay";
53};
54
55&fec2 {
56 pinctrl-names = "default";
57 pinctrl-0 = <&pinctrl_enet2>;
58 phy-mode = "rmii";
59 phy-handle = <&ethphy1>;
60 status = "okay";
61
62 mdio {
63 #address-cells = <1>;
64 #size-cells = <0>;
65
66 ethphy0: ethernet-phy@2 {
67 reg = <2>;
68 };
69
70 ethphy1: ethernet-phy@1 {
71 reg = <1>;
72 };
73 };
74};
75
76&qspi {
77 pinctrl-names = "default";
78 pinctrl-0 = <&pinctrl_qspi>;
79 status = "okay";
80
81 flash0: n25q256a@0 {
82 #address-cells = <1>;
83 #size-cells = <1>;
84 compatible = "micron,n25q256a";
85 spi-max-frequency = <29000000>;
86 reg = <0>;
87 };
88};
89
90&uart1 {
91 pinctrl-names = "default";
92 pinctrl-0 = <&pinctrl_uart1>;
93 status = "okay";
94};
95
96&uart2 {
97 pinctrl-names = "default";
98 pinctrl-0 = <&pinctrl_uart2>;
99 fsl,uart-has-rtscts;
100 status = "okay";
101};
102
103&usbotg1 {
104 dr_mode = "peripheral";
105 status = "okay";
106};
107
108&usbotg2 {
109 dr_mode = "host";
110 disable-over-current;
111 status = "okay";
112};
113
114&usdhc1 {
115 pinctrl-names = "default", "state_100mhz", "state_200mhz";
116 pinctrl-0 = <&pinctrl_usdhc1>;
117 pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
118 pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
119 cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
120 keep-power-in-suspend;
121 enable-sdio-wakeup;
122 vmmc-supply = <&reg_sd1_vmmc>;
123 status = "okay";
124};
125
126&usdhc2 {
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_usdhc2>;
129 no-1-8-v;
130 keep-power-in-suspend;
131 enable-sdio-wakeup;
132 status = "okay";
133};
134
135&iomuxc {
136 pinctrl-names = "default";
137
138 pinctrl_csi1: csi1grp {
139 fsl,pins = <
140 MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x1b088
141 MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x1b088
142 MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x1b088
143 MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x1b088
144 MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x1b088
145 MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x1b088
146 MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x1b088
147 MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x1b088
148 MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x1b088
149 MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x1b088
150 MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x1b088
151 MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x1b088
152 >;
153 };
154
155 pinctrl_enet1: enet1grp {
156 fsl,pins = <
157 MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
158 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
159 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
160 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
161 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
162 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
163 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
164 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
165 >;
166 };
167
168 pinctrl_enet2: enet2grp {
169 fsl,pins = <
170 MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
171 MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
172 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
173 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
174 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
175 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
176 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
177 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
178 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
179 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x4001b031
180 MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059
181 >;
182 };
183
184 pinctrl_flexcan1: flexcan1grp{
185 fsl,pins = <
186 MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
187 MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
188 >;
189 };
190
191 pinctrl_flexcan2: flexcan2grp{
192 fsl,pins = <
193 MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
194 MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
195 >;
196 };
197
198 pinctrl_i2c1: i2c1grp {
199 fsl,pins = <
200 MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
201 MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
202 >;
203 };
204
205 pinctrl_i2c2: i2c2grp {
206 fsl,pins = <
207 MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
208 MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
209 >;
210 };
211
212 pinctrl_lcdif_dat: lcdifdatgrp {
213 fsl,pins = <
214 MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
215 MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
216 MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
217 MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
218 MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
219 MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
220 MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
221 MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
222 MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
223 MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
224 MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
225 MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
226 MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
227 MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
228 MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
229 MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
230 MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
231 MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
232 MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x79
233 MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x79
234 MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x79
235 MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x79
236 MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x79
237 MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x79
238 >;
239 };
240
241 pinctrl_lcdif_ctrl: lcdifctrlgrp {
242 fsl,pins = <
243 MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x79
244 MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
245 MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
246 MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
247 /* used for lcd reset */
248 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x79
249 >;
250 };
251
252 pinctrl_qspi: qspigrp {
253 fsl,pins = <
254 MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x70a1
255 MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a1
256 MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x70a1
257 MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x70a1
258 MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x70a1
259 MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x70a1
260 >;
261 };
262
263 pinctrl_pwm1: pwm1grp {
264 fsl,pins = <
265 MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x110b0
266 >;
267 };
268
269 pinctrl_sim2: sim2grp {
270 fsl,pins = <
271 MX6UL_PAD_CSI_DATA03__SIM2_PORT1_PD 0xb808
272 MX6UL_PAD_CSI_DATA04__SIM2_PORT1_CLK 0x31
273 MX6UL_PAD_CSI_DATA05__SIM2_PORT1_RST_B 0xb808
274 MX6UL_PAD_CSI_DATA06__SIM2_PORT1_SVEN 0xb808
275 MX6UL_PAD_CSI_DATA07__SIM2_PORT1_TRXD 0xb809
276 MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x3008
277 >;
278 };
279
280 pinctrl_uart1: uart1grp {
281 fsl,pins = <
282 MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
283 MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
284 >;
285 };
286
287 pinctrl_uart2: uart2grp {
288 fsl,pins = <
289 MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
290 MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
291 MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x1b0b1
292 MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x1b0b1
293 >;
294 };
295
296 pinctrl_usdhc1: usdhc1grp {
297 fsl,pins = <
298 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
299 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
300 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
301 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
302 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
303 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
304 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 /* SD1 CD */
305 MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x17059 /* SD1 VSELECT */
306 MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x17059 /* SD1 RESET */
307 >;
308 };
309
310 pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
311 fsl,pins = <
312 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
313 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
314 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
315 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
316 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
317 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
318
319 >;
320 };
321
322 pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
323 fsl,pins = <
324 MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
325 MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
326 MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
327 MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
328 MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
329 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
330 >;
331 };
332
333 pinctrl_usdhc2: usdhc2grp {
334 fsl,pins = <
335 MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x17059
336 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x17059
337 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17059
338 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17059
339 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17059
340 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
341 >;
342 };
343};
diff --git a/arch/arm/boot/dts/imx6ul-pinfunc.h b/arch/arm/boot/dts/imx6ul-pinfunc.h
new file mode 100644
index 000000000000..20c7da1affce
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-pinfunc.h
@@ -0,0 +1,938 @@
1/*
2 * Copyright (C) 2015 Freescale Semiconductor, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 */
9
10#ifndef __DTS_IMX6UL_PINFUNC_H
11#define __DTS_IMX6UL_PINFUNC_H
12
13/*
14 * The pin function ID is a tuple of
15 * <mux_reg conf_reg input_reg mux_mode input_val>
16 */
17#define MX6UL_PAD_BOOT_MODE0__GPIO5_IO10 0x0014 0x02a0 0x0000 5 0
18#define MX6UL_PAD_BOOT_MODE1__GPIO5_IO11 0x0018 0x02a4 0x0000 5 0
19
20#define MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x001c 0x02a8 0x0000 5 0
21#define MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x0020 0x02ac 0x0000 5 0
22#define MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x0024 0x02b0 0x0000 5 0
23#define MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x0028 0x02b4 0x0000 5 0
24#define MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x002c 0x02b8 0x0000 5 0
25#define MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05 0x0030 0x02bc 0x0000 5 0
26#define MX6UL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x0034 0x02c0 0x0000 5 0
27#define MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x0038 0x02c4 0x0000 5 0
28#define MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x003c 0x02c8 0x0000 5 0
29#define MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x0040 0x02cc 0x0000 5 0
30
31#define MX6UL_PAD_JTAG_MOD__SJC_MOD 0x0044 0x02d0 0x0000 0 0
32#define MX6UL_PAD_JTAG_MOD__GPT2_CLK 0x0044 0x02d0 0x05a0 1 0
33#define MX6UL_PAD_JTAG_MOD__SPDIF_OUT 0x0044 0x02d0 0x0000 2 0
34#define MX6UL_PAD_JTAG_MOD__ENET1_REF_CLK_25M 0x0044 0x02d0 0x0000 3 0
35#define MX6UL_PAD_JTAG_MOD__CCM_PMIC_RDY 0x0044 0x02d0 0x04c0 4 0
36#define MX6UL_PAD_JTAG_MOD__GPIO1_IO10 0x0044 0x02d0 0x0000 5 0
37#define MX6UL_PAD_JTAG_MOD__SDMA_EXT_EVENT00 0x0044 0x02d0 0x0000 6 0
38#define MX6UL_PAD_JTAG_TMS__SJC_TMS 0x0048 0x02d4 0x0000 0 0
39#define MX6UL_PAD_JTAG_TMS__GPT2_CAPTURE1 0x0048 0x02d4 0x0598 1 0
40#define MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x0048 0x02d4 0x0000 2 0
41#define MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x0048 0x02d4 0x0000 3 0
42#define MX6UL_PAD_JTAG_TMS__CCM_WAIT 0x0048 0x02d4 0x0000 4 0
43#define MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x0048 0x02d4 0x0000 5 0
44#define MX6UL_PAD_JTAG_TMS__SDMA_EXT_EVENT01 0x0048 0x02d4 0x0000 6 0
45#define MX6UL_PAD_JTAG_TMS__EPIT1_OUT 0x0048 0x02d4 0x0000 8 0
46#define MX6UL_PAD_JTAG_TDO__SJC_TDO 0x004c 0x02d8 0x0000 0 0
47#define MX6UL_PAD_JTAG_TDO__GPT2_CAPTURE2 0x004c 0x02d8 0x059c 1 0
48#define MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x004c 0x02d8 0x05fc 2 0
49#define MX6UL_PAD_JTAG_TDO__CCM_CLKO2 0x004c 0x02d8 0x0000 3 0
50#define MX6UL_PAD_JTAG_TDO__CCM_STOP 0x004c 0x02d8 0x0000 4 0
51#define MX6UL_PAD_JTAG_TDO__GPIO1_IO12 0x004c 0x02d8 0x0000 5 0
52#define MX6UL_PAD_JTAG_TDO__MQS_RIGHT 0x004c 0x02d8 0x0000 6 0
53#define MX6UL_PAD_JTAG_TDO__EPIT2_OUT 0x004c 0x02d8 0x0000 8 0
54#define MX6UL_PAD_JTAG_TDI__SJC_TDI 0x0050 0x02dc 0x0000 0 0
55#define MX6UL_PAD_JTAG_TDI__GPT2_COMPARE1 0x0050 0x02dc 0x0000 1 0
56#define MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x0050 0x02dc 0x05f8 2 0
57#define MX6UL_PAD_JTAG_TDI__PWM6_OUT 0x0050 0x02dc 0x0000 4 0
58#define MX6UL_PAD_JTAG_TDI__GPIO1_IO13 0x0050 0x02dc 0x0000 5 0
59#define MX6UL_PAD_JTAG_TDI__MQS_LEFT 0x0050 0x02dc 0x0000 6 0
60#define MX6UL_PAD_JTAG_TDI__SIM1_POWER_FAIL 0x0050 0x02dc 0x0000 8 0
61#define MX6UL_PAD_JTAG_TCK__SJC_TCK 0x0054 0x02e0 0x0000 0 0
62#define MX6UL_PAD_JTAG_TCK__GPT2_COMPARE2 0x0054 0x02e0 0x0000 1 0
63#define MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x0054 0x02e0 0x0000 2 0
64#define MX6UL_PAD_JTAG_TCK__PWM7_OUT 0x0054 0x02e0 0x0000 4 0
65#define MX6UL_PAD_JTAG_TCK__GPIO1_IO14 0x0054 0x02e0 0x0000 5 0
66#define MX6UL_PAD_JTAG_TCK__SIM2_POWER_FAIL 0x0054 0x02e0 0x0000 8 0
67#define MX6UL_PAD_JTAG_TRST_B__SJC_TRSTB 0x0058 0x02e4 0x0000 0 0
68#define MX6UL_PAD_JTAG_TRST_B__GPT2_COMPARE3 0x0058 0x02e4 0x0000 1 0
69#define MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x0058 0x02e4 0x0000 2 0
70#define MX6UL_PAD_JTAG_TRST_B__PWM8_OUT 0x0058 0x02e4 0x0000 4 0
71#define MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15 0x0058 0x02e4 0x0000 5 0
72#define MX6UL_PAD_JTAG_TRST_B__CAAM_RNG_OSC_OBS 0x0058 0x02e4 0x0000 8 0
73#define MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x005c 0x02e8 0x05ac 0 1
74#define MX6UL_PAD_GPIO1_IO00__GPT1_CAPTURE1 0x005c 0x02e8 0x058c 1 0
75#define MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x005c 0x02e8 0x04b8 2 0
76#define MX6UL_PAD_GPIO1_IO00__ENET1_REF_CLK1 0x005c 0x02e8 0x0574 3 0
77#define MX6UL_PAD_GPIO1_IO00__MQS_RIGHT 0x005c 0x02e8 0x0000 4 0
78#define MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 0x005c 0x02e8 0x0000 5 0
79#define MX6UL_PAD_GPIO1_IO00__ENET1_1588_EVENT0_IN 0x005c 0x02e8 0x0000 6 0
80#define MX6UL_PAD_GPIO1_IO00__SRC_SYSTEM_RESET 0x005c 0x02e8 0x0000 7 0
81#define MX6UL_PAD_GPIO1_IO00__WDOG3_WDOG_B 0x005c 0x02e8 0x0000 8 0
82#define MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x0060 0x02ec 0x05b0 0 1
83#define MX6UL_PAD_GPIO1_IO01__GPT1_COMPARE1 0x0060 0x02ec 0x0000 1 0
84#define MX6UL_PAD_GPIO1_IO01__USB_OTG1_OC 0x0060 0x02ec 0x0664 2 0
85#define MX6UL_PAD_GPIO1_IO01__ENET2_REF_CLK2 0x0060 0x02ec 0x057c 3 0
86#define MX6UL_PAD_GPIO1_IO01__MQS_LEFT 0x0060 0x02ec 0x0000 4 0
87#define MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x0060 0x02ec 0x0000 5 0
88#define MX6UL_PAD_GPIO1_IO01__ENET1_1588_EVENT0_OUT 0x0060 0x02ec 0x0000 6 0
89#define MX6UL_PAD_GPIO1_IO01__SRC_EARLY_RESET 0x0060 0x02ec 0x0000 7 0
90#define MX6UL_PAD_GPIO1_IO01__WDOG1_WDOG_B 0x0060 0x02ec 0x0000 8 0
91#define MX6UL_PAD_GPIO1_IO02__I2C1_SCL 0x0064 0x02f0 0x05a4 0 0
92#define MX6UL_PAD_GPIO1_IO02__GPT1_COMPARE2 0x0064 0x02f0 0x0000 1 0
93#define MX6UL_PAD_GPIO1_IO02__USB_OTG2_PWR 0x0064 0x02f0 0x0000 2 0
94#define MX6UL_PAD_GPIO1_IO02__ENET1_REF_CLK_25M 0x0064 0x02f0 0x0000 3 0
95#define MX6UL_PAD_GPIO1_IO02__USDHC1_WP 0x0064 0x02f0 0x066c 4 0
96#define MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x0064 0x02f0 0x0000 5 0
97#define MX6UL_PAD_GPIO1_IO02__SDMA_EXT_EVENT00 0x0064 0x02f0 0x0000 6 0
98#define MX6UL_PAD_GPIO1_IO02__SRC_ANY_PU_RESET 0x0064 0x02f0 0x0000 7 0
99#define MX6UL_PAD_GPIO1_IO02__UART1_DCE_TX 0x0064 0x02f0 0x0000 8 0
100#define MX6UL_PAD_GPIO1_IO02__UART1_DTE_RX 0x0064 0x02f0 0x0624 8 0
101#define MX6UL_PAD_GPIO1_IO03__I2C1_SDA 0x0068 0x02f4 0x05a8 0 1
102#define MX6UL_PAD_GPIO1_IO03__GPT1_COMPARE3 0x0068 0x02f4 0x0000 1 0
103#define MX6UL_PAD_GPIO1_IO03__USB_OTG2_OC 0x0068 0x02f4 0x0660 2 0
104#define MX6UL_PAD_GPIO1_IO03__USDHC1_CD_B 0x0068 0x02f4 0x0668 4 0
105#define MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x0068 0x02f4 0x0000 5 0
106#define MX6UL_PAD_GPIO1_IO03__CCM_DI0_eXT_CLK 0x0068 0x02f4 0x0000 6 0
107#define MX6UL_PAD_GPIO1_IO03__SRC_TESTER_ACK 0x0068 0x02f4 0x0000 7 0
108#define MX6UL_PAD_GPIO1_IO03__UART1_DTE_TX 0x0068 0x02f4 0x0000 8 0
109#define MX6UL_PAD_GPIO1_IO03__UART1_DCE_RX 0x0068 0x02f4 0x0624 8 1
110#define MX6UL_PAD_GPIO1_IO04__ENET1_REF_CLK1 0x006c 0x02f8 0x0574 0 1
111#define MX6UL_PAD_GPIO1_IO04__PWM3_OUT 0x006c 0x02f8 0x0000 1 0
112#define MX6UL_PAD_GPIO1_IO04__USB_OTG1_PWR 0x006c 0x02f8 0x0000 2 0
113#define MX6UL_PAD_GPIO1_IO04__USDHC1_RESET_B 0x006c 0x02f8 0x0000 4 0
114#define MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x006c 0x02f8 0x0000 5 0
115#define MX6UL_PAD_GPIO1_IO04__ENET2_1588_EVENT0_IN 0x006c 0x02f8 0x0000 6 0
116#define MX6UL_PAD_GPIO1_IO04__UART5_DCE_TX 0x006c 0x02f8 0x0000 8 0
117#define MX6UL_PAD_GPIO1_IO04__UART5_DTE_RX 0x006c 0x02f8 0x0644 8 2
118#define MX6UL_PAD_GPIO1_IO05__ENET2_REF_CLK2 0x0070 0x02fc 0x057c 0 1
119#define MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x0070 0x02fc 0x0000 1 0
120#define MX6UL_PAD_GPIO1_IO05__ANATOP_OTG2_ID 0x0070 0x02fc 0x04bc 2 0
121#define MX6UL_PAD_GPIO1_IO05__CSI_FIELD 0x0070 0x02fc 0x0530 3 0
122#define MX6UL_PAD_GPIO1_IO05__USDHC1_VSELECT 0x0070 0x02fc 0x0000 4 0
123#define MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x0070 0x02fc 0x0000 5 0
124#define MX6UL_PAD_GPIO1_IO05__ENET2_1588_EVENT0_OUT 0x0070 0x02fc 0x0000 6 0
125#define MX6UL_PAD_GPIO1_IO05__UART5_DCE_RX 0x0070 0x02fc 0x0644 8 3
126#define MX6UL_PAD_GPIO1_IO05__UART5_DTE_TX 0x0070 0x02fc 0x0000 8 0
127#define MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x0074 0x0300 0x0578 0 0
128#define MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x0074 0x0300 0x0580 1 0
129#define MX6UL_PAD_GPIO1_IO06__USB_OTG_PWR_WAKE 0x0074 0x0300 0x0000 2 0
130#define MX6UL_PAD_GPIO1_IO06__CSI_MCLK 0x0074 0x0300 0x0000 3 0
131#define MX6UL_PAD_GPIO1_IO06__USDHC2_WP 0x0074 0x0300 0x069c 4 0
132#define MX6UL_PAD_GPIO1_IO06__GPIO1_IO06 0x0074 0x0300 0x0000 5 0
133#define MX6UL_PAD_GPIO1_IO06__CCM_WAIT 0x0074 0x0300 0x0000 6 0
134#define MX6UL_PAD_GPIO1_IO06__CCM_REF_EN_B 0x0074 0x0300 0x0000 7 0
135#define MX6UL_PAD_GPIO1_IO06__UART1_DCE_CTS 0x0074 0x0300 0x0000 8 0
136#define MX6UL_PAD_GPIO1_IO06__UART1_DTE_RTS 0x0074 0x0300 0x0620 8 0
137#define MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x0078 0x0304 0x0000 0 0
138#define MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x0078 0x0304 0x0000 1 0
139#define MX6UL_PAD_GPIO1_IO07__USB_OTG_HOST_MODE 0x0078 0x0304 0x0000 2 0
140#define MX6UL_PAD_GPIO1_IO07__CSI_PIXCLK 0x0078 0x0304 0x0528 3 0
141#define MX6UL_PAD_GPIO1_IO07__USDHC2_CD_B 0x0078 0x0304 0x0674 4 1
142#define MX6UL_PAD_GPIO1_IO07__GPIO1_IO07 0x0078 0x0304 0x0000 5 0
143#define MX6UL_PAD_GPIO1_IO07__CCM_STOP 0x0078 0x0304 0x0000 6 0
144#define MX6UL_PAD_GPIO1_IO07__UART1_DCE_RTS 0x0078 0x0304 0x0620 8 1
145#define MX6UL_PAD_GPIO1_IO07__UART1_DTE_CTS 0x0078 0x0304 0x0000 8 0
146#define MX6UL_PAD_GPIO1_IO08__PWM1_OUT 0x007c 0x0308 0x0000 0 0
147#define MX6UL_PAD_GPIO1_IO08__WDOG1_WDOG_B 0x007c 0x0308 0x0000 1 0
148#define MX6UL_PAD_GPIO1_IO08__SPDIF_OUT 0x007c 0x0308 0x0000 2 0
149#define MX6UL_PAD_GPIO1_IO08__CSI_VSYNC 0x007c 0x0308 0x052c 3 1
150#define MX6UL_PAD_GPIO1_IO08__USDHC2_VSELECT 0x007c 0x0308 0x0000 4 0
151#define MX6UL_PAD_GPIO1_IO08__GPIO1_IO08 0x007c 0x0308 0x0000 5 0
152#define MX6UL_PAD_GPIO1_IO08__CCM_PMIC_RDY 0x007c 0x0308 0x04c0 6 1
153#define MX6UL_PAD_GPIO1_IO08__UART5_DCE_RTS 0x007c 0x0308 0x0640 8 1
154#define MX6UL_PAD_GPIO1_IO08__UART5_DTE_CTS 0x007c 0x0308 0x0000 8 0
155#define MX6UL_PAD_GPIO1_IO09__PWM2_OUT 0x0080 0x030c 0x0000 0 0
156#define MX6UL_PAD_GPIO1_IO09__WDOG1_WDOG_ANY 0x0080 0x030c 0x0000 1 0
157#define MX6UL_PAD_GPIO1_IO09__SPDIF_IN 0x0080 0x030c 0x0618 2 0
158#define MX6UL_PAD_GPIO1_IO09__CSI_HSYNC 0x0080 0x030c 0x0524 3 1
159#define MX6UL_PAD_GPIO1_IO09__USDHC2_RESET_B 0x0080 0x030c 0x0000 4 0
160#define MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 0x0080 0x030c 0x0000 5 0
161#define MX6UL_PAD_GPIO1_IO09__USDHC1_RESET_B 0x0080 0x030c 0x0000 6 0
162#define MX6UL_PAD_GPIO1_IO09__UART5_DCE_CTS 0x0080 0x030c 0x0000 8 0
163#define MX6UL_PAD_GPIO1_IO09__UART5_DTE_RTS 0x0080 0x030c 0x0640 8 2
164#define MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x0084 0x0310 0x0000 0 0
165#define MX6UL_PAD_UART1_TX_DATA__UART1_DTE_RX 0x0084 0x0310 0x0624 0 2
166#define MX6UL_PAD_UART1_TX_DATA__ENET1_RDATA02 0x0084 0x0310 0x0000 1 0
167#define MX6UL_PAD_UART1_TX_DATA__I2C3_SCL 0x0084 0x0310 0x05b4 2 0
168#define MX6UL_PAD_UART1_TX_DATA__CSI_DATA02 0x0084 0x0310 0x0000 3 0
169#define MX6UL_PAD_UART1_TX_DATA__GPT1_COMPARE1 0x0084 0x0310 0x0000 4 0
170#define MX6UL_PAD_UART1_TX_DATA__GPIO1_IO16 0x0084 0x0310 0x0000 5 0
171#define MX6UL_PAD_UART1_TX_DATA__SPDIF_OUT 0x0084 0x0310 0x0000 8 0
172#define MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x0088 0x0314 0x0624 0 3
173#define MX6UL_PAD_UART1_RX_DATA__UART1_DTE_TX 0x0088 0x0314 0x0000 0 0
174#define MX6UL_PAD_UART1_RX_DATA__ENET1_RDATA03 0x0088 0x0314 0x0000 1 0
175#define MX6UL_PAD_UART1_RX_DATA__I2C3_SDA 0x0088 0x0314 0x05b8 2 0
176#define MX6UL_PAD_UART1_RX_DATA__CSI_DATA03 0x0088 0x0314 0x0000 3 0
177#define MX6UL_PAD_UART1_RX_DATA__GPT1_CLK 0x0088 0x0314 0x0594 4 0
178#define MX6UL_PAD_UART1_RX_DATA__GPIO1_IO17 0x0088 0x0314 0x0000 5 0
179#define MX6UL_PAD_UART1_RX_DATA__SPDIF_IN 0x0088 0x0314 0x0000 8 0
180#define MX6UL_PAD_UART1_CTS_B__UART1_DCE_CTS 0x008c 0x0318 0x0000 0 0
181#define MX6UL_PAD_UART1_CTS_B__UART1_DTE_RTS 0x008c 0x0318 0x0620 0 2
182#define MX6UL_PAD_UART1_CTS_B__ENET1_RX_CLK 0x008c 0x0318 0x0000 1 0
183#define MX6UL_PAD_UART1_CTS_B__USDHC1_WP 0x008c 0x0318 0x066c 2 1
184#define MX6UL_PAD_UART1_CTS_B__CSI_DATA04 0x008c 0x0318 0x0000 3 0
185#define MX6UL_PAD_UART1_CTS_B__ENET2_1588_EVENT1_IN 0x008c 0x0318 0x0000 4 0
186#define MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x008c 0x0318 0x0000 5 0
187#define MX6UL_PAD_UART1_CTS_B__USDHC2_WP 0x008c 0x0318 0x0000 8 0
188#define MX6UL_PAD_UART1_RTS_B__UART1_DCE_RTS 0x0090 0x031c 0x0620 0 3
189#define MX6UL_PAD_UART1_RTS_B__UART1_DTE_CTS 0x0090 0x031c 0x0000 0 0
190#define MX6UL_PAD_UART1_RTS_B__ENET1_TX_ER 0x0090 0x031c 0x0000 1 0
191#define MX6UL_PAD_UART1_RTS_B__USDHC1_CD_B 0x0090 0x031c 0x0668 2 1
192#define MX6UL_PAD_UART1_RTS_B__CSI_DATA05 0x0090 0x031c 0x0000 3 0
193#define MX6UL_PAD_UART1_RTS_B__ENET2_1588_EVENT1_OUT 0x0090 0x031c 0x0000 4 0
194#define MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x0090 0x031c 0x0000 5 0
195#define MX6UL_PAD_UART1_RTS_B__USDHC2_CD_B 0x0090 0x031c 0x0000 8 0
196#define MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x0094 0x0320 0x0000 0 0
197#define MX6UL_PAD_UART2_TX_DATA__UART2_DTE_RX 0x0094 0x0320 0x062c 0 0
198#define MX6UL_PAD_UART2_TX_DATA__ENET1_TDATA02 0x0094 0x0320 0x0000 1 0
199#define MX6UL_PAD_UART2_TX_DATA__I2C4_SCL 0x0094 0x0320 0x05bc 2 0
200#define MX6UL_PAD_UART2_TX_DATA__CSI_DATA06 0x0094 0x0320 0x0000 3 0
201#define MX6UL_PAD_UART2_TX_DATA__GPT1_CAPTURE1 0x0094 0x0320 0x058c 4 1
202#define MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x0094 0x0320 0x0000 5 0
203#define MX6UL_PAD_UART2_TX_DATA__ECSPI3_SS0 0x0094 0x0320 0x0000 8 0
204#define MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x0098 0x0324 0x062c 0 1
205#define MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX 0x0098 0x0324 0x0000 0 0
206#define MX6UL_PAD_UART2_RX_DATA__ENET1_TDATA03 0x0098 0x0324 0x0000 1 0
207#define MX6UL_PAD_UART2_RX_DATA__I2C4_SDA 0x0098 0x0324 0x05c0 2 0
208#define MX6UL_PAD_UART2_RX_DATA__CSI_DATA07 0x0098 0x0324 0x0000 3 0
209#define MX6UL_PAD_UART2_RX_DATA__GPT1_CAPTURE2 0x0098 0x0324 0x0590 4 0
210#define MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21 0x0098 0x0324 0x0000 5 0
211#define MX6UL_PAD_UART2_RX_DATA__SJC_DONE 0x0098 0x0324 0x0000 7 0
212#define MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK 0x0098 0x0324 0x0000 8 0
213#define MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x009c 0x0328 0x0000 0 0
214#define MX6UL_PAD_UART2_CTS_B__UART2_DTE_RTS 0x009c 0x0328 0x0628 0 0
215#define MX6UL_PAD_UART2_CTS_B__ENET1_CRS 0x009c 0x0328 0x0000 1 0
216#define MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x009c 0x0328 0x0000 2 0
217#define MX6UL_PAD_UART2_CTS_B__CSI_DATA08 0x009c 0x0328 0x0000 3 0
218#define MX6UL_PAD_UART2_CTS_B__GPT1_COMPARE2 0x009c 0x0328 0x0000 4 0
219#define MX6UL_PAD_UART2_CTS_B__GPIO1_IO22 0x009c 0x0328 0x0000 5 0
220#define MX6UL_PAD_UART2_CTS_B__SJC_DE_B 0x009c 0x0328 0x0000 7 0
221#define MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI 0x009c 0x0328 0x0000 8 0
222#define MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x00a0 0x032c 0x0628 0 1
223#define MX6UL_PAD_UART2_RTS_B__UART2_DTE_CTS 0x00a0 0x032c 0x0000 0 0
224#define MX6UL_PAD_UART2_RTS_B__ENET1_COL 0x00a0 0x032c 0x0000 1 0
225#define MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x00a0 0x032c 0x0588 2 0
226#define MX6UL_PAD_UART2_RTS_B__CSI_DATA09 0x00a0 0x032c 0x0000 3 0
227#define MX6UL_PAD_UART2_RTS_B__GPT1_COMPARE3 0x00a0 0x032c 0x0000 4 0
228#define MX6UL_PAD_UART2_RTS_B__GPIO1_IO23 0x00a0 0x032c 0x0000 5 0
229#define MX6UL_PAD_UART2_RTS_B__SJC_FAIL 0x00a0 0x032c 0x0000 7 0
230#define MX6UL_PAD_UART2_RTS_B__ECSPI3_MISO 0x00a0 0x032c 0x0000 8 0
231#define MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x00a4 0x0330 0x0000 0 0
232#define MX6UL_PAD_UART3_TX_DATA__UART3_DTE_RX 0x00a4 0x0330 0x0634 0 0
233#define MX6UL_PAD_UART3_TX_DATA__ENET2_RDATA02 0x00a4 0x0330 0x0000 1 0
234#define MX6UL_PAD_UART3_TX_DATA__SIM1_PORT0_PD 0x00a4 0x0330 0x0000 2 0
235#define MX6UL_PAD_UART3_TX_DATA__CSI_DATA01 0x00a4 0x0330 0x0000 3 0
236#define MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS 0x00a4 0x0330 0x0000 4 0
237#define MX6UL_PAD_UART3_TX_DATA__UART2_DTE_RTS 0x00a4 0x0330 0x0628 4 2
238#define MX6UL_PAD_UART3_TX_DATA__GPIO1_IO24 0x00a4 0x0330 0x0000 5 0
239#define MX6UL_PAD_UART3_TX_DATA__SJC_JTAG_ACT 0x00a4 0x0330 0x0000 7 0
240#define MX6UL_PAD_UART3_TX_DATA__ANATOP_OTG1_ID 0x00a4 0x0330 0x0000 8 0
241#define MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x00a8 0x0334 0x0634 0 1
242#define MX6UL_PAD_UART3_RX_DATA__UART3_DTE_TX 0x00a8 0x0334 0x0000 0 0
243#define MX6UL_PAD_UART3_RX_DATA__ENET2_RDATA03 0x00a8 0x0334 0x0000 1 0
244#define MX6UL_PAD_UART3_RX_DATA__SIM2_PORT0_PD 0x00a8 0x0334 0x0000 2 0
245#define MX6UL_PAD_UART3_RX_DATA__CSI_DATA00 0x00a8 0x0334 0x0000 3 0
246#define MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS 0x00a8 0x0334 0x0628 4 3
247#define MX6UL_PAD_UART3_RX_DATA__UART2_DTE_CTS 0x00a8 0x0334 0x0000 4 0
248#define MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25 0x00a8 0x0334 0x0000 5 0
249#define MX6UL_PAD_UART3_RX_DATA__EPIT1_OUT 0x00a8 0x0334 0x0000 8 0
250#define MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS 0x00ac 0x0338 0x0000 0 0
251#define MX6UL_PAD_UART3_CTS_B__UART3_DTE_RTS 0x00ac 0x0338 0x0630 0 0
252#define MX6UL_PAD_UART3_CTS_B__ENET2_RX_CLK 0x00ac 0x0338 0x0000 1 0
253#define MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x00ac 0x0338 0x0000 2 0
254#define MX6UL_PAD_UART3_CTS_B__CSI_DATA10 0x00ac 0x0338 0x0000 3 0
255#define MX6UL_PAD_UART3_CTS_B__ENET1_1588_EVENT1_IN 0x00ac 0x0338 0x0000 4 0
256#define MX6UL_PAD_UART3_CTS_B__GPIO1_IO26 0x00ac 0x0338 0x0000 5 0
257#define MX6UL_PAD_UART3_CTS_B__EPIT2_OUT 0x00ac 0x0338 0x0000 8 0
258#define MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS 0x00b0 0x033c 0x0630 0 1
259#define MX6UL_PAD_UART3_RTS_B__UART3_DTE_CTS 0x00b0 0x033c 0x0000 0 0
260#define MX6UL_PAD_UART3_RTS_B__ENET2_TX_ER 0x00b0 0x033c 0x0000 1 0
261#define MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x00b0 0x033c 0x0584 2 0
262#define MX6UL_PAD_UART3_RTS_B__CSI_DATA11 0x00b0 0x033c 0x0000 3 0
263#define MX6UL_PAD_UART3_RTS_B__ENET1_1588_EVENT1_OUT 0x00b0 0x033c 0x0000 4 0
264#define MX6UL_PAD_UART3_RTS_B__GPIO1_IO27 0x00b0 0x033c 0x0000 5 0
265#define MX6UL_PAD_UART3_RTS_B__WDOG1_WDOG_B 0x00b0 0x033c 0x0000 8 0
266#define MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x00b4 0x0340 0x0000 0 0
267#define MX6UL_PAD_UART4_TX_DATA__UART4_DTE_RX 0x00b4 0x0340 0x063c 0 0
268#define MX6UL_PAD_UART4_TX_DATA__ENET2_TDATA02 0x00b4 0x0340 0x0000 1 0
269#define MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x00b4 0x0340 0x05a4 2 1
270#define MX6UL_PAD_UART4_TX_DATA__CSI_DATA12 0x00b4 0x0340 0x0000 3 0
271#define MX6UL_PAD_UART4_TX_DATA__CSU_CSU_ALARM_AUT02 0x00b4 0x0340 0x0000 4 0
272#define MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x00b4 0x0340 0x0000 5 0
273#define MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK 0x00b4 0x0340 0x0000 8 0
274#define MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x00b8 0x0344 0x063c 0 1
275#define MX6UL_PAD_UART4_RX_DATA__UART4_DTE_TX 0x00b8 0x0344 0x0000 0 0
276#define MX6UL_PAD_UART4_RX_DATA__ENET2_TDATA03 0x00b8 0x0344 0x0000 1 0
277#define MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x00b8 0x0344 0x05a8 2 2
278#define MX6UL_PAD_UART4_RX_DATA__CSI_DATA13 0x00b8 0x0344 0x0000 3 0
279#define MX6UL_PAD_UART4_RX_DATA__CSU_CSU_ALARM_AUT01 0x00b8 0x0344 0x0000 4 0
280#define MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x00b8 0x0344 0x0000 5 0
281#define MX6UL_PAD_UART4_RX_DATA__ECSPI2_SS0 0x00b8 0x0344 0x0000 8 0
282#define MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x00bc 0x0348 0x0000 5 0
283#define MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI 0x00bc 0x0348 0x0000 8 0
284#define MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x00bc 0x0348 0x0000 0 0
285#define MX6UL_PAD_UART5_TX_DATA__UART5_DTE_RX 0x00bc 0x0348 0x0644 0 4
286#define MX6UL_PAD_UART5_TX_DATA__ENET2_CRS 0x00bc 0x0348 0x0000 1 0
287#define MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x00bc 0x0348 0x05ac 2 2
288#define MX6UL_PAD_UART5_TX_DATA__CSI_DATA14 0x00bc 0x0348 0x0000 3 0
289#define MX6UL_PAD_UART5_TX_DATA__CSU_CSU_ALARM_AUT00 0x00bc 0x0348 0x0000 4 0
290#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00c0 0x034c 0x0644 0 5
291#define MX6UL_PAD_UART5_RX_DATA__UART5_DTE_TX 0x00c0 0x034c 0x0000 0 0
292#define MX6UL_PAD_UART5_RX_DATA__ENET2_COL 0x00c0 0x034c 0x0000 1 0
293#define MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x00c0 0x034c 0x05b0 2 2
294#define MX6UL_PAD_UART5_RX_DATA__CSI_DATA15 0x00c0 0x034c 0x0000 3 0
295#define MX6UL_PAD_UART5_RX_DATA__CSU_CSU_INT_DEB 0x00c0 0x034c 0x0000 4 0
296#define MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x00c0 0x034c 0x0000 5 0
297#define MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO 0x00c0 0x034c 0x0000 8 0
298#define MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x00c4 0x0350 0x0000 0 0
299#define MX6UL_PAD_ENET1_RX_DATA0__UART4_DCE_RTS 0x00c4 0x0350 0x0638 1 0
300#define MX6UL_PAD_ENET1_RX_DATA0__UART4_DTE_CTS 0x00c4 0x0350 0x0000 1 0
301#define MX6UL_PAD_ENET1_RX_DATA0__PWM1_OUT 0x00c4 0x0350 0x0000 2 0
302#define MX6UL_PAD_ENET1_RX_DATA0__CSI_DATA16 0x00c4 0x0350 0x0000 3 0
303#define MX6UL_PAD_ENET1_RX_DATA0__FLEXCAN1_TX 0x00c4 0x0350 0x0000 4 0
304#define MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00 0x00c4 0x0350 0x0000 5 0
305#define MX6UL_PAD_ENET1_RX_DATA0__KPP_ROW00 0x00c4 0x0350 0x0000 6 0
306#define MX6UL_PAD_ENET1_RX_DATA0__USDHC1_LCTL 0x00c4 0x0350 0x0000 8 0
307#define MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x00c8 0x0354 0x0000 0 0
308#define MX6UL_PAD_ENET1_RX_DATA1__UART4_DCE_CTS 0x00c8 0x0354 0x0000 1 0
309#define MX6UL_PAD_ENET1_RX_DATA1__UART4_DTE_RTS 0x00c8 0x0354 0x0638 1 1
310#define MX6UL_PAD_ENET1_RX_DATA1__PWM2_OUT 0x00c8 0x0354 0x0000 2 0
311#define MX6UL_PAD_ENET1_RX_DATA1__CSI_DATA17 0x00c8 0x0354 0x0000 3 0
312#define MX6UL_PAD_ENET1_RX_DATA1__FLEXCAN1_RX 0x00c8 0x0354 0x0584 4 1
313#define MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01 0x00c8 0x0354 0x0000 5 0
314#define MX6UL_PAD_ENET1_RX_DATA1__KPP_COL00 0x00c8 0x0354 0x0000 6 0
315#define MX6UL_PAD_ENET1_RX_DATA1__USDHC2_LCTL 0x00c8 0x0354 0x0000 8 0
316#define MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x00cc 0x0358 0x0000 0 0
317#define MX6UL_PAD_ENET1_RX_EN__UART5_DCE_RTS 0x00cc 0x0358 0x0640 1 3
318#define MX6UL_PAD_ENET1_RX_EN__UART5_DTE_CTS 0x00cc 0x0358 0x0000 1 0
319#define MX6UL_PAD_ENET1_RX_EN__CSI_DATA18 0x00cc 0x0358 0x0000 3 0
320#define MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX 0x00cc 0x0358 0x0000 4 0
321#define MX6UL_PAD_ENET1_RX_EN__GPIO2_IO02 0x00cc 0x0358 0x0000 5 0
322#define MX6UL_PAD_ENET1_RX_EN__KPP_ROW01 0x00cc 0x0358 0x0000 6 0
323#define MX6UL_PAD_ENET1_RX_EN__USDHC1_VSELECT 0x00cc 0x0358 0x0000 8 0
324#define MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x00d0 0x035c 0x0000 0 0
325#define MX6UL_PAD_ENET1_TX_DATA0__UART5_DCE_CTS 0x00d0 0x035c 0x0000 1 0
326#define MX6UL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS 0x00d0 0x035c 0x0640 1 4
327#define MX6UL_PAD_ENET1_TX_DATA0__CSI_DATA19 0x00d0 0x035c 0x0000 3 0
328#define MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX 0x00d0 0x035c 0x0588 4 1
329#define MX6UL_PAD_ENET1_TX_DATA0__GPIO2_IO03 0x00d0 0x035c 0x0000 5 0
330#define MX6UL_PAD_ENET1_TX_DATA0__KPP_COL01 0x00d0 0x035c 0x0000 6 0
331#define MX6UL_PAD_ENET1_TX_DATA0__USDHC2_VSELECT 0x00d0 0x035c 0x0000 8 0
332#define MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x00d4 0x0360 0x0000 0 0
333#define MX6UL_PAD_ENET1_TX_DATA1__UART6_DCE_CTS 0x00d4 0x0360 0x0000 1 0
334#define MX6UL_PAD_ENET1_TX_DATA1__UART6_DTE_RTS 0x00d4 0x0360 0x0648 1 2
335#define MX6UL_PAD_ENET1_TX_DATA1__PWM5_OUT 0x00d4 0x0360 0x0000 2 0
336#define MX6UL_PAD_ENET1_TX_DATA1__CSI_DATA20 0x00d4 0x0360 0x0000 3 0
337#define MX6UL_PAD_ENET1_TX_DATA1__ENET2_MDIO 0x00d4 0x0360 0x0580 4 1
338#define MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04 0x00d4 0x0360 0x0000 5 0
339#define MX6UL_PAD_ENET1_TX_DATA1__KPP_ROW02 0x00d4 0x0360 0x0000 6 0
340#define MX6UL_PAD_ENET1_TX_DATA1__WDOG1_WDOG_RST_B_DEB 0x00d4 0x0360 0x0000 8 0
341#define MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x00d8 0x0364 0x0000 0 0
342#define MX6UL_PAD_ENET1_TX_EN__UART6_DCE_RTS 0x00d8 0x0364 0x0648 1 3
343#define MX6UL_PAD_ENET1_TX_EN__UART6_DTE_CTS 0x00d8 0x0364 0x0000 1 0
344#define MX6UL_PAD_ENET1_TX_EN__PWM6_OUT 0x00d8 0x0364 0x0000 2 0
345#define MX6UL_PAD_ENET1_TX_EN__CSI_DATA21 0x00d8 0x0364 0x0000 3 0
346#define MX6UL_PAD_ENET1_TX_EN__ENET2_MDC 0x00d8 0x0364 0x0000 4 0
347#define MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05 0x00d8 0x0364 0x0000 5 0
348#define MX6UL_PAD_ENET1_TX_EN__KPP_COL02 0x00d8 0x0364 0x0000 6 0
349#define MX6UL_PAD_ENET1_TX_EN__WDOG2_WDOG_RST_B_DEB 0x00d8 0x0364 0x0000 8 0
350#define MX6UL_PAD_ENET1_TX_CLK__ENET1_TX_CLK 0x00dc 0x0368 0x0000 0 0
351#define MX6UL_PAD_ENET1_TX_CLK__UART7_DCE_CTS 0x00dc 0x0368 0x0000 1 0
352#define MX6UL_PAD_ENET1_TX_CLK__UART7_DTE_RTS 0x00dc 0x0368 0x0650 1 0
353#define MX6UL_PAD_ENET1_TX_CLK__PWM7_OUT 0x00dc 0x0368 0x0000 2 0
354#define MX6UL_PAD_ENET1_TX_CLK__CSI_DATA22 0x00dc 0x0368 0x0000 3 0
355#define MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x00dc 0x0368 0x0574 4 2
356#define MX6UL_PAD_ENET1_TX_CLK__GPIO2_IO06 0x00dc 0x0368 0x0000 5 0
357#define MX6UL_PAD_ENET1_TX_CLK__KPP_ROW03 0x00dc 0x0368 0x0000 6 0
358#define MX6UL_PAD_ENET1_TX_CLK__GPT1_CLK 0x00dc 0x0368 0x0000 8 0
359#define MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x00e0 0x036c 0x0000 0 0
360#define MX6UL_PAD_ENET1_RX_ER__UART7_DCE_RTS 0x00e0 0x036c 0x0650 1 1
361#define MX6UL_PAD_ENET1_RX_ER__UART7_DTE_CTS 0x00e0 0x036c 0x0000 1 0
362#define MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x00e0 0x036c 0x0000 2 0
363#define MX6UL_PAD_ENET1_RX_ER__CSI_DATA23 0x00e0 0x036c 0x0000 3 0
364#define MX6UL_PAD_ENET1_RX_ER__EIM_CRE 0x00e0 0x036c 0x0000 4 0
365#define MX6UL_PAD_ENET1_RX_ER__GPIO2_IO07 0x00e0 0x036c 0x0000 5 0
366#define MX6UL_PAD_ENET1_RX_ER__KPP_COL03 0x00e0 0x036c 0x0000 6 0
367#define MX6UL_PAD_ENET1_RX_ER__GPT1_CAPTURE2 0x00e0 0x036c 0x0000 8 0
368#define MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x00e4 0x0370 0x0000 0 0
369#define MX6UL_PAD_ENET2_RX_DATA0__UART6_DCE_TX 0x00e4 0x0370 0x0000 1 0
370#define MX6UL_PAD_ENET2_RX_DATA0__UART6_DTE_RX 0x00e4 0x0370 0x064c 1 1
371#define MX6UL_PAD_ENET2_RX_DATA0__SIM1_PORT0_TRXD 0x00e4 0x0370 0x0000 2 0
372#define MX6UL_PAD_ENET2_RX_DATA0__I2C3_SCL 0x00e4 0x0370 0x05b4 3 1
373#define MX6UL_PAD_ENET2_RX_DATA0__ENET1_MDIO 0x00e4 0x0370 0x0578 4 1
374#define MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08 0x00e4 0x0370 0x0000 5 0
375#define MX6UL_PAD_ENET2_RX_DATA0__KPP_ROW04 0x00e4 0x0370 0x0000 6 0
376#define MX6UL_PAD_ENET2_RX_DATA0__USB_OTG1_PWR 0x00e4 0x0370 0x0000 8 0
377#define MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x00e8 0x0374 0x0000 0 0
378#define MX6UL_PAD_ENET2_RX_DATA1__UART6_DCE_RX 0x00e8 0x0374 0x064c 1 2
379#define MX6UL_PAD_ENET2_RX_DATA1__UART6_DTE_TX 0x00e8 0x0374 0x0000 1 0
380#define MX6UL_PAD_ENET2_RX_DATA1__SIM1_PORT0_cLK 0x00e8 0x0374 0x0000 2 0
381#define MX6UL_PAD_ENET2_RX_DATA1__I2C3_SDA 0x00e8 0x0374 0x05b8 3 1
382#define MX6UL_PAD_ENET2_RX_DATA1__ENET1_MDC 0x00e8 0x0374 0x0000 4 0
383#define MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09 0x00e8 0x0374 0x0000 5 0
384#define MX6UL_PAD_ENET2_RX_DATA1__KPP_COL04 0x00e8 0x0374 0x0000 6 0
385#define MX6UL_PAD_ENET2_RX_DATA1__USB_OTG1_OC 0x00e8 0x0374 0x0000 8 0
386#define MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x00ec 0x0378 0x0000 0 0
387#define MX6UL_PAD_ENET2_RX_EN__UART7_DCE_TX 0x00ec 0x0378 0x0000 1 0
388#define MX6UL_PAD_ENET2_RX_EN__UART7_DTE_RX 0x00ec 0x0378 0x0654 1 0
389#define MX6UL_PAD_ENET2_RX_EN__SIM1_PORT0_RST_B 0x00ec 0x0378 0x0000 2 0
390#define MX6UL_PAD_ENET2_RX_EN__I2C4_SCL 0x00ec 0x0378 0x05bc 3 1
391#define MX6UL_PAD_ENET2_RX_EN__EIM_ADDR26 0x00ec 0x0378 0x0000 4 0
392#define MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10 0x00ec 0x0378 0x0000 5 0
393#define MX6UL_PAD_ENET2_RX_EN__KPP_ROW05 0x00ec 0x0378 0x0000 6 0
394#define MX6UL_PAD_ENET2_RX_EN__ENET1_REF_CLK_25M 0x00ec 0x0378 0x0000 8 0
395#define MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x00f0 0x037c 0x0000 0 0
396#define MX6UL_PAD_ENET2_TX_DATA0__UART7_DCE_RX 0x00f0 0x037c 0x0654 1 1
397#define MX6UL_PAD_ENET2_TX_DATA0__UART7_DTE_TX 0x00f0 0x037c 0x0000 1 0
398#define MX6UL_PAD_ENET2_TX_DATA0__SIM1_PORT0_SVEN 0x00f0 0x037c 0x0000 2 0
399#define MX6UL_PAD_ENET2_TX_DATA0__I2C4_SDA 0x00f0 0x037c 0x05c0 3 1
400#define MX6UL_PAD_ENET2_TX_DATA0__EIM_EB_B02 0x00f0 0x037c 0x0000 4 0
401#define MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11 0x00f0 0x037c 0x0000 5 0
402#define MX6UL_PAD_ENET2_TX_DATA0__KPP_COL05 0x00f0 0x037c 0x0000 6 0
403#define MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x00f4 0x0380 0x0000 0 0
404#define MX6UL_PAD_ENET2_TX_DATA1__UART8_DCE_TX 0x00f4 0x0380 0x0000 1 0
405#define MX6UL_PAD_ENET2_TX_DATA1__UART8_DTE_RX 0x00f4 0x0380 0x065c 1 0
406#define MX6UL_PAD_ENET2_TX_DATA1__SIM2_PORT0_TRXD 0x00f4 0x0380 0x0000 2 0
407#define MX6UL_PAD_ENET2_TX_DATA1__ECSPI4_SCLK 0x00f4 0x0380 0x0564 3 0
408#define MX6UL_PAD_ENET2_TX_DATA1__EIM_EB_B03 0x00f4 0x0380 0x0000 4 0
409#define MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12 0x00f4 0x0380 0x0000 5 0
410#define MX6UL_PAD_ENET2_TX_DATA1__KPP_ROW06 0x00f4 0x0380 0x0000 6 0
411#define MX6UL_PAD_ENET2_TX_DATA1__USB_OTG2_PWR 0x00f4 0x0380 0x0000 8 0
412#define MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x00f8 0x0384 0x0000 0 0
413#define MX6UL_PAD_ENET2_TX_EN__UART8_DCE_RX 0x00f8 0x0384 0x065c 1 1
414#define MX6UL_PAD_ENET2_TX_EN__UART8_DTE_TX 0x00f8 0x0384 0x0000 1 0
415#define MX6UL_PAD_ENET2_TX_EN__SIM2_PORT0_cLK 0x00f8 0x0384 0x0000 2 0
416#define MX6UL_PAD_ENET2_TX_EN__ECSPI4_MOSI 0x00f8 0x0384 0x056c 3 0
417#define MX6UL_PAD_ENET2_TX_EN__EIM_ACLK_FREERUN 0x00f8 0x0384 0x0000 4 0
418#define MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13 0x00f8 0x0384 0x0000 5 0
419#define MX6UL_PAD_ENET2_TX_EN__KPP_COL06 0x00f8 0x0384 0x0000 6 0
420#define MX6UL_PAD_ENET2_TX_EN__USB_OTG2_OC 0x00f8 0x0384 0x0000 8 0
421#define MX6UL_PAD_ENET2_TX_CLK__ENET2_TX_CLK 0x00fc 0x0388 0x0000 0 0
422#define MX6UL_PAD_ENET2_TX_CLK__UART8_DCE_CTS 0x00fc 0x0388 0x0000 1 0
423#define MX6UL_PAD_ENET2_TX_CLK__UART8_DTE_RTS 0x00fc 0x0388 0x0658 1 0
424#define MX6UL_PAD_ENET2_TX_CLK__SIM2_PORT0_RST_B 0x00fc 0x0388 0x0000 2 0
425#define MX6UL_PAD_ENET2_TX_CLK__ECSPI4_MISO 0x00fc 0x0388 0x0568 3 0
426#define MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x00fc 0x0388 0x057c 4 2
427#define MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14 0x00fc 0x0388 0x0000 5 0
428#define MX6UL_PAD_ENET2_TX_CLK__KPP_ROW07 0x00fc 0x0388 0x0000 6 0
429#define MX6UL_PAD_ENET2_TX_CLK__ANATOP_OTG2_ID 0x00fc 0x0388 0x0000 8 0
430#define MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x0100 0x038c 0x0000 0 0
431#define MX6UL_PAD_ENET2_RX_ER__UART8_DCE_RTS 0x0100 0x038c 0x0658 1 1
432#define MX6UL_PAD_ENET2_RX_ER__UART8_DTE_CTS 0x0100 0x038c 0x0000 1 0
433#define MX6UL_PAD_ENET2_RX_ER__SIM2_PORT0_SVEN 0x0100 0x038c 0x0000 2 0
434#define MX6UL_PAD_ENET2_RX_ER__ECSPI4_SS0 0x0100 0x038c 0x0000 3 0
435#define MX6UL_PAD_ENET2_RX_ER__EIM_ADDR25 0x0100 0x038c 0x0000 4 0
436#define MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15 0x0100 0x038c 0x0000 5 0
437#define MX6UL_PAD_ENET2_RX_ER__KPP_COL07 0x0100 0x038c 0x0000 6 0
438#define MX6UL_PAD_ENET2_RX_ER__WDOG1_WDOG_ANY 0x0100 0x038c 0x0000 8 0
439#define MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x0104 0x0390 0x0000 0 0
440#define MX6UL_PAD_LCD_CLK__LCDIF_WR_RWN 0x0104 0x0390 0x0000 1 0
441#define MX6UL_PAD_LCD_CLK__UART4_DCE_TX 0x0104 0x0390 0x0000 2 0
442#define MX6UL_PAD_LCD_CLK__UART4_DTE_RX 0x0104 0x0390 0x063c 2 2
443#define MX6UL_PAD_LCD_CLK__SAI3_MCLK 0x0104 0x0390 0x0000 3 0
444#define MX6UL_PAD_LCD_CLK__EIM_CS2_B 0x0104 0x0390 0x0000 4 0
445#define MX6UL_PAD_LCD_CLK__GPIO3_IO00 0x0104 0x0390 0x0000 5 0
446#define MX6UL_PAD_LCD_CLK__WDOG1_WDOG_RST_B_DEB 0x0104 0x0390 0x0000 8 0
447#define MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x0108 0x0394 0x0000 0 0
448#define MX6UL_PAD_LCD_ENABLE__LCDIF_RD_E 0x0108 0x0394 0x0000 1 0
449#define MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX 0x0108 0x0394 0x063c 2 3
450#define MX6UL_PAD_LCD_ENABLE__UART4_DTE_TX 0x0108 0x0394 0x0000 2 0
451#define MX6UL_PAD_LCD_ENABLE__SAI3_TX_SYNC 0x0108 0x0394 0x060c 3 0
452#define MX6UL_PAD_LCD_ENABLE__EIM_CS3_B 0x0108 0x0394 0x0000 4 0
453#define MX6UL_PAD_LCD_ENABLE__GPIO3_IO01 0x0108 0x0394 0x0000 5 0
454#define MX6UL_PAD_LCD_ENABLE__ECSPI2_RDY 0x0108 0x0394 0x0000 8 0
455#define MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x010c 0x0398 0x05dc 0 0
456#define MX6UL_PAD_LCD_HSYNC__LCDIF_RS 0x010c 0x0398 0x0000 1 0
457#define MX6UL_PAD_LCD_HSYNC__UART4_DCE_CTS 0x010c 0x0398 0x0000 2 0
458#define MX6UL_PAD_LCD_HSYNC__UART4_DTE_RTS 0x010c 0x0398 0x0638 2 2
459#define MX6UL_PAD_LCD_HSYNC__SAI3_TX_BCLK 0x010c 0x0398 0x0608 3 0
460#define MX6UL_PAD_LCD_HSYNC__WDOG3_WDOG_RST_B_DEB 0x010c 0x0398 0x0000 4 0
461#define MX6UL_PAD_LCD_HSYNC__GPIO3_IO02 0x010c 0x0398 0x0000 5 0
462#define MX6UL_PAD_LCD_HSYNC__ECSPI2_SS1 0x010c 0x0398 0x0000 8 0
463#define MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x0110 0x039c 0x0000 0 0
464#define MX6UL_PAD_LCD_VSYNC__LCDIF_BUSY 0x0110 0x039c 0x05dc 1 1
465#define MX6UL_PAD_LCD_VSYNC__UART4_DCE_RTS 0x0110 0x039c 0x0638 2 3
466#define MX6UL_PAD_LCD_VSYNC__UART4_DTE_CTS 0x0110 0x039c 0x0000 2 0
467#define MX6UL_PAD_LCD_VSYNC__SAI3_RX_DATA 0x0110 0x039c 0x0000 3 0
468#define MX6UL_PAD_LCD_VSYNC__WDOG2_WDOG_B 0x0110 0x039c 0x0000 4 0
469#define MX6UL_PAD_LCD_VSYNC__GPIO3_IO03 0x0110 0x039c 0x0000 5 0
470#define MX6UL_PAD_LCD_VSYNC__ECSPI2_SS2 0x0110 0x039c 0x0000 8 0
471#define MX6UL_PAD_LCD_RESET__LCDIF_RESET 0x0114 0x03a0 0x0000 0 0
472#define MX6UL_PAD_LCD_RESET__LCDIF_CS 0x0114 0x03a0 0x0000 1 0
473#define MX6UL_PAD_LCD_RESET__CA7_MX6UL_EVENTI 0x0114 0x03a0 0x0000 2 0
474#define MX6UL_PAD_LCD_RESET__SAI3_TX_DATA 0x0114 0x03a0 0x0000 3 0
475#define MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x0114 0x03a0 0x0000 4 0
476#define MX6UL_PAD_LCD_RESET__GPIO3_IO04 0x0114 0x03a0 0x0000 5 0
477#define MX6UL_PAD_LCD_RESET__ECSPI2_SS3 0x0114 0x03a0 0x0000 8 0
478#define MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x0118 0x03a4 0x0000 0 0
479#define MX6UL_PAD_LCD_DATA00__PWM1_OUT 0x0118 0x03a4 0x0000 1 0
480#define MX6UL_PAD_LCD_DATA00__ENET1_1588_EVENT2_IN 0x0118 0x03a4 0x0000 3 0
481#define MX6UL_PAD_LCD_DATA00__I2C3_SDA 0x0118 0x03a4 0x05b8 4 2
482#define MX6UL_PAD_LCD_DATA00__GPIO3_IO05 0x0118 0x03a4 0x0000 5 0
483#define MX6UL_PAD_LCD_DATA00__SRC_BT_CFG00 0x0118 0x03a4 0x0000 6 0
484#define MX6UL_PAD_LCD_DATA00__SAI1_MCLK 0x0118 0x03a4 0x0000 8 0
485#define MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x011c 0x03a8 0x0000 0 0
486#define MX6UL_PAD_LCD_DATA01__PWM2_OUT 0x011c 0x03a8 0x0000 1 0
487#define MX6UL_PAD_LCD_DATA01__ENET1_1588_EVENT2_OUT 0x011c 0x03a8 0x0000 3 0
488#define MX6UL_PAD_LCD_DATA01__I2C3_SCL 0x011c 0x03a8 0x05b4 4 2
489#define MX6UL_PAD_LCD_DATA01__GPIO3_IO06 0x011c 0x03a8 0x0000 5 0
490#define MX6UL_PAD_LCD_DATA01__SRC_BT_CFG01 0x011c 0x03a8 0x0000 6 0
491#define MX6UL_PAD_LCD_DATA01__SAI1_TX_SYNC 0x011c 0x03a8 0x0000 8 0
492#define MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x0120 0x03ac 0x0000 0 0
493#define MX6UL_PAD_LCD_DATA02__PWM3_OUT 0x0120 0x03ac 0x0000 1 0
494#define MX6UL_PAD_LCD_DATA02__ENET1_1588_EVENT3_IN 0x0120 0x03ac 0x0000 3 0
495#define MX6UL_PAD_LCD_DATA02__I2C4_SDA 0x0120 0x03ac 0x05c0 4 2
496#define MX6UL_PAD_LCD_DATA02__GPIO3_IO07 0x0120 0x03ac 0x0000 5 0
497#define MX6UL_PAD_LCD_DATA02__SRC_BT_CFG02 0x0120 0x03ac 0x0000 6 0
498#define MX6UL_PAD_LCD_DATA02__SAI1_TX_BCLK 0x0120 0x03ac 0x0000 8 0
499#define MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x0124 0x03b0 0x0000 0 0
500#define MX6UL_PAD_LCD_DATA03__PWM4_OUT 0x0124 0x03b0 0x0000 1 0
501#define MX6UL_PAD_LCD_DATA03__ENET1_1588_EVENT3_OUT 0x0124 0x03b0 0x0000 3 0
502#define MX6UL_PAD_LCD_DATA03__I2C4_SCL 0x0124 0x03b0 0x05bc 4 2
503#define MX6UL_PAD_LCD_DATA03__GPIO3_IO08 0x0124 0x03b0 0x0000 5 0
504#define MX6UL_PAD_LCD_DATA03__SRC_BT_CFG03 0x0124 0x03b0 0x0000 6 0
505#define MX6UL_PAD_LCD_DATA03__SAI1_RX_DATA 0x0124 0x03b0 0x0000 8 0
506#define MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x0128 0x03b4 0x0000 0 0
507#define MX6UL_PAD_LCD_DATA04__UART8_DCE_CTS 0x0128 0x03b4 0x0000 1 0
508#define MX6UL_PAD_LCD_DATA04__UART8_DTE_RTS 0x0128 0x03b4 0x0658 1 2
509#define MX6UL_PAD_LCD_DATA04__ENET2_1588_EVENT2_IN 0x0128 0x03b4 0x0000 3 0
510#define MX6UL_PAD_LCD_DATA04__SPDIF_SR_CLK 0x0128 0x03b4 0x0000 4 0
511#define MX6UL_PAD_LCD_DATA04__GPIO3_IO09 0x0128 0x03b4 0x0000 5 0
512#define MX6UL_PAD_LCD_DATA04__SRC_BT_CFG04 0x0128 0x03b4 0x0000 6 0
513#define MX6UL_PAD_LCD_DATA04__SAI1_TX_DATA 0x0128 0x03b4 0x0000 8 0
514#define MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x012c 0x03b8 0x0000 0 0
515#define MX6UL_PAD_LCD_DATA05__UART8_DCE_RTS 0x012c 0x03b8 0x0658 1 3
516#define MX6UL_PAD_LCD_DATA05__UART8_DTE_CTS 0x012c 0x03b8 0x0000 1 0
517#define MX6UL_PAD_LCD_DATA05__ENET2_1588_EVENT2_OUT 0x012c 0x03b8 0x0000 3 0
518#define MX6UL_PAD_LCD_DATA05__SPDIF_OUT 0x012c 0x03b8 0x0000 4 0
519#define MX6UL_PAD_LCD_DATA05__GPIO3_IO10 0x012c 0x03b8 0x0000 5 0
520#define MX6UL_PAD_LCD_DATA05__SRC_BT_CFG05 0x012c 0x03b8 0x0000 6 0
521#define MX6UL_PAD_LCD_DATA05__ECSPI1_SS1 0x012c 0x03b8 0x0000 8 0
522#define MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x0130 0x03bc 0x0000 0 0
523#define MX6UL_PAD_LCD_DATA06__UART7_DCE_CTS 0x0130 0x03bc 0x0000 1 0
524#define MX6UL_PAD_LCD_DATA06__UART7_DTE_RTS 0x0130 0x03bc 0x0650 1 2
525#define MX6UL_PAD_LCD_DATA06__ENET2_1588_EVENT3_IN 0x0130 0x03bc 0x0000 3 0
526#define MX6UL_PAD_LCD_DATA06__SPDIF_LOCK 0x0130 0x03bc 0x0000 4 0
527#define MX6UL_PAD_LCD_DATA06__GPIO3_IO11 0x0130 0x03bc 0x0000 5 0
528#define MX6UL_PAD_LCD_DATA06__SRC_BT_CFG06 0x0130 0x03bc 0x0000 6 0
529#define MX6UL_PAD_LCD_DATA06__ECSPI1_SS2 0x0130 0x03bc 0x0000 8 0
530#define MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x0134 0x03c0 0x0000 0 0
531#define MX6UL_PAD_LCD_DATA07__UART7_DCE_RTS 0x0134 0x03c0 0x0650 1 3
532#define MX6UL_PAD_LCD_DATA07__UART7_DTE_CTS 0x0134 0x03c0 0x0000 1 0
533#define MX6UL_PAD_LCD_DATA07__ENET2_1588_EVENT3_OUT 0x0134 0x03c0 0x0000 3 0
534#define MX6UL_PAD_LCD_DATA07__SPDIF_EXT_CLK 0x0134 0x03c0 0x061c 4 0
535#define MX6UL_PAD_LCD_DATA07__GPIO3_IO12 0x0134 0x03c0 0x0000 5 0
536#define MX6UL_PAD_LCD_DATA07__SRC_BT_CFG07 0x0134 0x03c0 0x0000 6 0
537#define MX6UL_PAD_LCD_DATA07__ECSPI1_SS3 0x0134 0x03c0 0x0000 8 0
538#define MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x0138 0x03c4 0x0000 0 0
539#define MX6UL_PAD_LCD_DATA08__SPDIF_IN 0x0138 0x03c4 0x0618 1 2
540#define MX6UL_PAD_LCD_DATA08__CSI_DATA16 0x0138 0x03c4 0x0000 3 0
541#define MX6UL_PAD_LCD_DATA08__EIM_DATA00 0x0138 0x03c4 0x0000 4 0
542#define MX6UL_PAD_LCD_DATA08__GPIO3_IO13 0x0138 0x03c4 0x0000 5 0
543#define MX6UL_PAD_LCD_DATA08__SRC_BT_CFG08 0x0138 0x03c4 0x0000 6 0
544#define MX6UL_PAD_LCD_DATA08__FLEXCAN1_TX 0x0138 0x03c4 0x0000 8 0
545#define MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x013c 0x03c8 0x0000 0 0
546#define MX6UL_PAD_LCD_DATA09__SAI3_MCLK 0x013c 0x03c8 0x0000 1 0
547#define MX6UL_PAD_LCD_DATA09__CSI_DATA17 0x013c 0x03c8 0x0000 3 0
548#define MX6UL_PAD_LCD_DATA09__EIM_DATA01 0x013c 0x03c8 0x0000 4 0
549#define MX6UL_PAD_LCD_DATA09__GPIO3_IO14 0x013c 0x03c8 0x0000 5 0
550#define MX6UL_PAD_LCD_DATA09__SRC_BT_CFG09 0x013c 0x03c8 0x0000 6 0
551#define MX6UL_PAD_LCD_DATA09__FLEXCAN1_RX 0x013c 0x03c8 0x0000 8 0
552#define MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x0140 0x03cc 0x0000 0 0
553#define MX6UL_PAD_LCD_DATA10__SAI3_RX_SYNC 0x0140 0x03cc 0x0000 1 0
554#define MX6UL_PAD_LCD_DATA10__CSI_DATA18 0x0140 0x03cc 0x0000 3 0
555#define MX6UL_PAD_LCD_DATA10__EIM_DATA02 0x0140 0x03cc 0x0000 4 0
556#define MX6UL_PAD_LCD_DATA10__GPIO3_IO15 0x0140 0x03cc 0x0000 5 0
557#define MX6UL_PAD_LCD_DATA10__SRC_BT_CFG10 0x0140 0x03cc 0x0000 6 0
558#define MX6UL_PAD_LCD_DATA10__FLEXCAN2_TX 0x0140 0x03cc 0x0000 8 0
559#define MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x0144 0x03d0 0x0000 0 0
560#define MX6UL_PAD_LCD_DATA11__SAI3_RX_BCLK 0x0144 0x03d0 0x0000 1 0
561#define MX6UL_PAD_LCD_DATA11__CSI_DATA19 0x0144 0x03d0 0x0000 3 0
562#define MX6UL_PAD_LCD_DATA11__EIM_DATA03 0x0144 0x03d0 0x0000 4 0
563#define MX6UL_PAD_LCD_DATA11__GPIO3_IO16 0x0144 0x03d0 0x0000 5 0
564#define MX6UL_PAD_LCD_DATA11__SRC_BT_CFG11 0x0144 0x03d0 0x0000 6 0
565#define MX6UL_PAD_LCD_DATA11__FLEXCAN2_RX 0x0144 0x03d0 0x0000 8 0
566#define MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x0148 0x03d4 0x0000 0 0
567#define MX6UL_PAD_LCD_DATA12__SAI3_TX_SYNC 0x0148 0x03d4 0x060c 1 1
568#define MX6UL_PAD_LCD_DATA12__CSI_DATA20 0x0148 0x03d4 0x0000 3 0
569#define MX6UL_PAD_LCD_DATA12__EIM_DATA04 0x0148 0x03d4 0x0000 4 0
570#define MX6UL_PAD_LCD_DATA12__GPIO3_IO17 0x0148 0x03d4 0x0000 5 0
571#define MX6UL_PAD_LCD_DATA12__SRC_BT_CFG12 0x0148 0x03d4 0x0000 6 0
572#define MX6UL_PAD_LCD_DATA12__ECSPI1_RDY 0x0148 0x03d4 0x0000 8 0
573#define MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x014c 0x03d8 0x0000 0 0
574#define MX6UL_PAD_LCD_DATA13__SAI3_TX_BCLK 0x014c 0x03d8 0x0608 1 1
575#define MX6UL_PAD_LCD_DATA13__CSI_DATA21 0x014c 0x03d8 0x0000 3 0
576#define MX6UL_PAD_LCD_DATA13__EIM_DATA05 0x014c 0x03d8 0x0000 4 0
577#define MX6UL_PAD_LCD_DATA13__GPIO3_IO18 0x014c 0x03d8 0x0000 5 0
578#define MX6UL_PAD_LCD_DATA13__SRC_BT_CFG13 0x014c 0x03d8 0x0000 6 0
579#define MX6UL_PAD_LCD_DATA13__USDHC2_RESET_B 0x014c 0x03d8 0x0000 8 0
580#define MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x0150 0x03dc 0x0000 0 0
581#define MX6UL_PAD_LCD_DATA14__SAI3_RX_DATA 0x0150 0x03dc 0x0000 1 0
582#define MX6UL_PAD_LCD_DATA14__CSI_DATA22 0x0150 0x03dc 0x0000 3 0
583#define MX6UL_PAD_LCD_DATA14__EIM_DATA06 0x0150 0x03dc 0x0000 4 0
584#define MX6UL_PAD_LCD_DATA14__GPIO3_IO19 0x0150 0x03dc 0x0000 5 0
585#define MX6UL_PAD_LCD_DATA14__SRC_BT_CFG14 0x0150 0x03dc 0x0000 6 0
586#define MX6UL_PAD_LCD_DATA14__USDHC2_DATA4 0x0150 0x03dc 0x0000 8 0
587#define MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x0154 0x03e0 0x0000 0 0
588#define MX6UL_PAD_LCD_DATA15__SAI3_TX_DATA 0x0154 0x03e0 0x0000 1 0
589#define MX6UL_PAD_LCD_DATA15__CSI_DATA23 0x0154 0x03e0 0x0000 3 0
590#define MX6UL_PAD_LCD_DATA15__EIM_DATA07 0x0154 0x03e0 0x0000 4 0
591#define MX6UL_PAD_LCD_DATA15__GPIO3_IO20 0x0154 0x03e0 0x0000 5 0
592#define MX6UL_PAD_LCD_DATA15__SRC_BT_CFG15 0x0154 0x03e0 0x0000 6 0
593#define MX6UL_PAD_LCD_DATA15__USDHC2_DATA5 0x0154 0x03e0 0x0000 8 0
594#define MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x0158 0x03e4 0x0000 0 0
595#define MX6UL_PAD_LCD_DATA16__UART7_DCE_TX 0x0158 0x03e4 0x0000 1 0
596#define MX6UL_PAD_LCD_DATA16__UART7_DTE_RX 0x0158 0x03e4 0x0654 1 2
597#define MX6UL_PAD_LCD_DATA16__CSI_DATA01 0x0158 0x03e4 0x0000 3 0
598#define MX6UL_PAD_LCD_DATA16__EIM_DATA08 0x0158 0x03e4 0x0000 4 0
599#define MX6UL_PAD_LCD_DATA16__GPIO3_IO21 0x0158 0x03e4 0x0000 5 0
600#define MX6UL_PAD_LCD_DATA16__SRC_BT_CFG24 0x0158 0x03e4 0x0000 6 0
601#define MX6UL_PAD_LCD_DATA16__USDHC2_DATA6 0x0158 0x03e4 0x0000 8 0
602#define MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x015c 0x03e8 0x0000 0 0
603#define MX6UL_PAD_LCD_DATA17__UART7_DCE_RX 0x015c 0x03e8 0x0654 1 3
604#define MX6UL_PAD_LCD_DATA17__UART7_DTE_TX 0x015c 0x03e8 0x0000 1 0
605#define MX6UL_PAD_LCD_DATA17__CSI_DATA00 0x015c 0x03e8 0x0000 3 0
606#define MX6UL_PAD_LCD_DATA17__EIM_DATA09 0x015c 0x03e8 0x0000 4 0
607#define MX6UL_PAD_LCD_DATA17__GPIO3_IO22 0x015c 0x03e8 0x0000 5 0
608#define MX6UL_PAD_LCD_DATA17__SRC_BT_CFG25 0x015c 0x03e8 0x0000 6 0
609#define MX6UL_PAD_LCD_DATA17__USDHC2_DATA7 0x015c 0x03e8 0x0000 8 0
610#define MX6UL_PAD_LCD_DATA18__LCDIF_DATA18 0x0160 0x03ec 0x0000 0 0
611#define MX6UL_PAD_LCD_DATA18__PWM5_OUT 0x0160 0x03ec 0x0000 1 0
612#define MX6UL_PAD_LCD_DATA18__CA7_MX6UL_EVENTO 0x0160 0x03ec 0x0000 2 0
613#define MX6UL_PAD_LCD_DATA18__CSI_DATA10 0x0160 0x03ec 0x0000 3 0
614#define MX6UL_PAD_LCD_DATA18__EIM_DATA10 0x0160 0x03ec 0x0000 4 0
615#define MX6UL_PAD_LCD_DATA18__GPIO3_IO23 0x0160 0x03ec 0x0000 5 0
616#define MX6UL_PAD_LCD_DATA18__SRC_BT_CFG26 0x0160 0x03ec 0x0000 6 0
617#define MX6UL_PAD_LCD_DATA18__USDHC2_CMD 0x0160 0x03ec 0x0000 8 0
618#define MX6UL_PAD_LCD_DATA19__EIM_DATA11 0x0164 0x03f0 0x0000 4 0
619#define MX6UL_PAD_LCD_DATA19__GPIO3_IO24 0x0164 0x03f0 0x0000 5 0
620#define MX6UL_PAD_LCD_DATA19__SRC_BT_CFG27 0x0164 0x03f0 0x0000 6 0
621#define MX6UL_PAD_LCD_DATA19__USDHC2_CLK 0x0164 0x03f0 0x0000 8 0
622#define MX6UL_PAD_LCD_DATA19__LCDIF_DATA19 0x0164 0x03f0 0x0000 0 0
623#define MX6UL_PAD_LCD_DATA19__PWM6_OUT 0x0164 0x03f0 0x0000 1 0
624#define MX6UL_PAD_LCD_DATA19__WDOG1_WDOG_ANY 0x0164 0x03f0 0x0000 2 0
625#define MX6UL_PAD_LCD_DATA19__CSI_DATA11 0x0164 0x03f0 0x0000 3 0
626#define MX6UL_PAD_LCD_DATA20__EIM_DATA12 0x0168 0x03f4 0x0000 4 0
627#define MX6UL_PAD_LCD_DATA20__GPIO3_IO25 0x0168 0x03f4 0x0000 5 0
628#define MX6UL_PAD_LCD_DATA20__SRC_BT_CFG28 0x0168 0x03f4 0x0000 6 0
629#define MX6UL_PAD_LCD_DATA20__USDHC2_DATA0 0x0168 0x03f4 0x0000 8 0
630#define MX6UL_PAD_LCD_DATA20__LCDIF_DATA20 0x0168 0x03f4 0x0000 0 0
631#define MX6UL_PAD_LCD_DATA20__UART8_DCE_TX 0x0168 0x03f4 0x0000 1 0
632#define MX6UL_PAD_LCD_DATA20__UART8_DTE_RX 0x0168 0x03f4 0x065c 1 2
633#define MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK 0x0168 0x03f4 0x0534 2 0
634#define MX6UL_PAD_LCD_DATA20__CSI_DATA12 0x0168 0x03f4 0x0000 3 0
635#define MX6UL_PAD_LCD_DATA21__LCDIF_DATA21 0x016c 0x03f8 0x0000 0 0
636#define MX6UL_PAD_LCD_DATA21__UART8_DCE_RX 0x016c 0x03f8 0x065c 1 3
637#define MX6UL_PAD_LCD_DATA21__UART8_DTE_TX 0x016c 0x03f8 0x0000 1 0
638#define MX6UL_PAD_LCD_DATA21__ECSPI1_SS0 0x016c 0x03f8 0x0000 2 0
639#define MX6UL_PAD_LCD_DATA21__CSI_DATA13 0x016c 0x03f8 0x0000 3 0
640#define MX6UL_PAD_LCD_DATA21__EIM_DATA13 0x016c 0x03f8 0x0000 4 0
641#define MX6UL_PAD_LCD_DATA21__GPIO3_IO26 0x016c 0x03f8 0x0000 5 0
642#define MX6UL_PAD_LCD_DATA21__SRC_BT_CFG29 0x016c 0x03f8 0x0000 6 0
643#define MX6UL_PAD_LCD_DATA21__USDHC2_DATA1 0x016c 0x03f8 0x0000 8 0
644#define MX6UL_PAD_LCD_DATA22__LCDIF_DATA22 0x0170 0x03fc 0x0000 0 0
645#define MX6UL_PAD_LCD_DATA22__MQS_RIGHT 0x0170 0x03fc 0x0000 1 0
646#define MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI 0x0170 0x03fc 0x053c 2 0
647#define MX6UL_PAD_LCD_DATA22__CSI_DATA14 0x0170 0x03fc 0x0000 3 0
648#define MX6UL_PAD_LCD_DATA22__EIM_DATA14 0x0170 0x03fc 0x0000 4 0
649#define MX6UL_PAD_LCD_DATA22__GPIO3_IO27 0x0170 0x03fc 0x0000 5 0
650#define MX6UL_PAD_LCD_DATA22__SRC_BT_CFG30 0x0170 0x03fc 0x0000 6 0
651#define MX6UL_PAD_LCD_DATA22__USDHC2_DATA2 0x0170 0x03fc 0x0000 8 0
652#define MX6UL_PAD_LCD_DATA23__LCDIF_DATA23 0x0174 0x0400 0x0000 0 0
653#define MX6UL_PAD_LCD_DATA23__MQS_LEFT 0x0174 0x0400 0x0000 1 0
654#define MX6UL_PAD_LCD_DATA23__ECSPI1_MISO 0x0174 0x0400 0x0538 2 0
655#define MX6UL_PAD_LCD_DATA23__CSI_DATA15 0x0174 0x0400 0x0000 3 0
656#define MX6UL_PAD_LCD_DATA23__EIM_DATA15 0x0174 0x0400 0x0000 4 0
657#define MX6UL_PAD_LCD_DATA23__GPIO3_IO28 0x0174 0x0400 0x0000 5 0
658#define MX6UL_PAD_LCD_DATA23__SRC_BT_CFG31 0x0174 0x0400 0x0000 6 0
659#define MX6UL_PAD_LCD_DATA23__USDHC2_DATA3 0x0174 0x0400 0x0000 8 0
660#define MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0x0178 0x0404 0x0000 0 0
661#define MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x0178 0x0404 0x0670 1 2
662#define MX6UL_PAD_NAND_RE_B__QSPI_B_SCLK 0x0178 0x0404 0x0000 2 0
663#define MX6UL_PAD_NAND_RE_B__KPP_ROW00 0x0178 0x0404 0x0000 3 0
664#define MX6UL_PAD_NAND_RE_B__EIM_EB_B00 0x0178 0x0404 0x0000 4 0
665#define MX6UL_PAD_NAND_RE_B__GPIO4_IO00 0x0178 0x0404 0x0000 5 0
666#define MX6UL_PAD_NAND_RE_B__ECSPI3_SS2 0x0178 0x0404 0x0000 8 0
667#define MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0x017c 0x0408 0x0000 0 0
668#define MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x017c 0x0408 0x0678 1 2
669#define MX6UL_PAD_NAND_WE_B__QSPI_B_SS0_B 0x017c 0x0408 0x0000 2 0
670#define MX6UL_PAD_NAND_WE_B__KPP_COL00 0x017c 0x0408 0x0000 3 0
671#define MX6UL_PAD_NAND_WE_B__EIM_EB_B01 0x017c 0x0408 0x0000 4 0
672#define MX6UL_PAD_NAND_WE_B__GPIO4_IO01 0x017c 0x0408 0x0000 5 0
673#define MX6UL_PAD_NAND_WE_B__ECSPI3_SS3 0x017c 0x0408 0x0000 8 0
674#define MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0x0180 0x040c 0x0000 0 0
675#define MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x0180 0x040c 0x067c 1 2
676#define MX6UL_PAD_NAND_DATA00__QSPI_B_SS1_B 0x0180 0x040c 0x0000 2 0
677#define MX6UL_PAD_NAND_DATA00__KPP_ROW01 0x0180 0x040c 0x0000 3 0
678#define MX6UL_PAD_NAND_DATA00__EIM_AD08 0x0180 0x040c 0x0000 4 0
679#define MX6UL_PAD_NAND_DATA00__GPIO4_IO02 0x0180 0x040c 0x0000 5 0
680#define MX6UL_PAD_NAND_DATA00__ECSPI4_RDY 0x0180 0x040c 0x0000 8 0
681#define MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0x0184 0x0410 0x0000 0 0
682#define MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x0184 0x0410 0x0680 1 2
683#define MX6UL_PAD_NAND_DATA01__QSPI_B_DQS 0x0184 0x0410 0x0000 2 0
684#define MX6UL_PAD_NAND_DATA01__KPP_COL01 0x0184 0x0410 0x0000 3 0
685#define MX6UL_PAD_NAND_DATA01__EIM_AD09 0x0184 0x0410 0x0000 4 0
686#define MX6UL_PAD_NAND_DATA01__GPIO4_IO03 0x0184 0x0410 0x0000 5 0
687#define MX6UL_PAD_NAND_DATA01__ECSPI4_SS1 0x0184 0x0410 0x0000 8 0
688#define MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0x0188 0x0414 0x0000 0 0
689#define MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x0188 0x0414 0x0684 1 1
690#define MX6UL_PAD_NAND_DATA02__QSPI_B_DATA00 0x0188 0x0414 0x0000 2 0
691#define MX6UL_PAD_NAND_DATA02__KPP_ROW02 0x0188 0x0414 0x0000 3 0
692#define MX6UL_PAD_NAND_DATA02__EIM_AD10 0x0188 0x0414 0x0000 4 0
693#define MX6UL_PAD_NAND_DATA02__GPIO4_IO04 0x0188 0x0414 0x0000 5 0
694#define MX6UL_PAD_NAND_DATA02__ECSPI4_SS2 0x0188 0x0414 0x0000 8 0
695#define MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0x018c 0x0418 0x0000 0 0
696#define MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x018c 0x0418 0x0688 1 2
697#define MX6UL_PAD_NAND_DATA03__QSPI_B_DATA01 0x018c 0x0418 0x0000 2 0
698#define MX6UL_PAD_NAND_DATA03__KPP_COL02 0x018c 0x0418 0x0000 3 0
699#define MX6UL_PAD_NAND_DATA03__EIM_AD11 0x018c 0x0418 0x0000 4 0
700#define MX6UL_PAD_NAND_DATA03__GPIO4_IO05 0x018c 0x0418 0x0000 5 0
701#define MX6UL_PAD_NAND_DATA03__ECSPI4_SS3 0x018c 0x0418 0x0000 8 0
702#define MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0x0190 0x041c 0x0000 0 0
703#define MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x0190 0x041c 0x068c 1 1
704#define MX6UL_PAD_NAND_DATA04__QSPI_B_DATA02 0x0190 0x041c 0x0000 2 0
705#define MX6UL_PAD_NAND_DATA04__ECSPI4_SCLK 0x0190 0x041c 0x0564 3 1
706#define MX6UL_PAD_NAND_DATA04__EIM_AD12 0x0190 0x041c 0x0000 4 0
707#define MX6UL_PAD_NAND_DATA04__GPIO4_IO06 0x0190 0x041c 0x0000 5 0
708#define MX6UL_PAD_NAND_DATA04__UART2_DCE_TX 0x0190 0x041c 0x0000 8 0
709#define MX6UL_PAD_NAND_DATA04__UART2_DTE_RX 0x0190 0x041c 0x062c 8 2
710#define MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0x0194 0x0420 0x0000 0 0
711#define MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x0194 0x0420 0x0690 1 1
712#define MX6UL_PAD_NAND_DATA05__QSPI_B_DATA03 0x0194 0x0420 0x0000 2 0
713#define MX6UL_PAD_NAND_DATA05__ECSPI4_MOSI 0x0194 0x0420 0x056c 3 1
714#define MX6UL_PAD_NAND_DATA05__EIM_AD13 0x0194 0x0420 0x0000 4 0
715#define MX6UL_PAD_NAND_DATA05__GPIO4_IO07 0x0194 0x0420 0x0000 5 0
716#define MX6UL_PAD_NAND_DATA05__UART2_DCE_RX 0x0194 0x0420 0x062c 8 3
717#define MX6UL_PAD_NAND_DATA05__UART2_DTE_TX 0x0194 0x0420 0x0000 8 0
718#define MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0x0198 0x0424 0x0000 0 0
719#define MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x0198 0x0424 0x0694 1 1
720#define MX6UL_PAD_NAND_DATA06__SAI2_RX_BCLK 0x0198 0x0424 0x0000 2 0
721#define MX6UL_PAD_NAND_DATA06__ECSPI4_MISO 0x0198 0x0424 0x0568 3 1
722#define MX6UL_PAD_NAND_DATA06__EIM_AD14 0x0198 0x0424 0x0000 4 0
723#define MX6UL_PAD_NAND_DATA06__GPIO4_IO08 0x0198 0x0424 0x0000 5 0
724#define MX6UL_PAD_NAND_DATA06__UART2_DCE_CTS 0x0198 0x0424 0x0000 8 0
725#define MX6UL_PAD_NAND_DATA06__UART2_DTE_RTS 0x0198 0x0424 0x0628 8 4
726#define MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0x019c 0x0428 0x0000 0 0
727#define MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x019c 0x0428 0x0698 1 1
728#define MX6UL_PAD_NAND_DATA07__QSPI_A_SS1_B 0x019c 0x0428 0x0000 2 0
729#define MX6UL_PAD_NAND_DATA07__ECSPI4_SS0 0x019c 0x0428 0x0000 3 0
730#define MX6UL_PAD_NAND_DATA07__EIM_AD15 0x019c 0x0428 0x0000 4 0
731#define MX6UL_PAD_NAND_DATA07__GPIO4_IO09 0x019c 0x0428 0x0000 5 0
732#define MX6UL_PAD_NAND_DATA07__UART2_DCE_RTS 0x019c 0x0428 0x0628 8 5
733#define MX6UL_PAD_NAND_DATA07__UART2_DTE_CTS 0x019c 0x0428 0x0000 8 0
734#define MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0x01a0 0x042c 0x0000 0 0
735#define MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x01a0 0x042c 0x0000 1 0
736#define MX6UL_PAD_NAND_ALE__QSPI_A_DQS 0x01a0 0x042c 0x0000 2 0
737#define MX6UL_PAD_NAND_ALE__PWM3_OUT 0x01a0 0x042c 0x0000 3 0
738#define MX6UL_PAD_NAND_ALE__EIM_ADDR17 0x01a0 0x042c 0x0000 4 0
739#define MX6UL_PAD_NAND_ALE__GPIO4_IO10 0x01a0 0x042c 0x0000 5 0
740#define MX6UL_PAD_NAND_ALE__ECSPI3_SS1 0x01a0 0x042c 0x0000 8 0
741#define MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0x01a4 0x0430 0x0000 0 0
742#define MX6UL_PAD_NAND_WP_B__USDHC1_RESET_B 0x01a4 0x0430 0x0000 1 0
743#define MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK 0x01a4 0x0430 0x0000 2 0
744#define MX6UL_PAD_NAND_WP_B__PWM4_OUT 0x01a4 0x0430 0x0000 3 0
745#define MX6UL_PAD_NAND_WP_B__EIM_BCLK 0x01a4 0x0430 0x0000 4 0
746#define MX6UL_PAD_NAND_WP_B__GPIO4_IO11 0x01a4 0x0430 0x0000 5 0
747#define MX6UL_PAD_NAND_WP_B__ECSPI3_RDY 0x01a4 0x0430 0x0000 8 0
748#define MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x01a8 0x0434 0x0000 0 0
749#define MX6UL_PAD_NAND_READY_B__USDHC1_DATA4 0x01a8 0x0434 0x0000 1 0
750#define MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x01a8 0x0434 0x0000 2 0
751#define MX6UL_PAD_NAND_READY_B__ECSPI3_SS0 0x01a8 0x0434 0x0000 3 0
752#define MX6UL_PAD_NAND_READY_B__EIM_CS1_B 0x01a8 0x0434 0x0000 4 0
753#define MX6UL_PAD_NAND_READY_B__GPIO4_IO12 0x01a8 0x0434 0x0000 5 0
754#define MX6UL_PAD_NAND_READY_B__UART3_DCE_TX 0x01a8 0x0434 0x0000 8 0
755#define MX6UL_PAD_NAND_READY_B__UART3_DTE_RX 0x01a8 0x0434 0x0634 8 2
756#define MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0x01ac 0x0438 0x0000 0 0
757#define MX6UL_PAD_NAND_CE0_B__USDHC1_DATA5 0x01ac 0x0438 0x0000 1 0
758#define MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01 0x01ac 0x0438 0x0000 2 0
759#define MX6UL_PAD_NAND_CE0_B__ECSPI3_SCLK 0x01ac 0x0438 0x0554 3 1
760#define MX6UL_PAD_NAND_CE0_B__EIM_DTACK_B 0x01ac 0x0438 0x0000 4 0
761#define MX6UL_PAD_NAND_CE0_B__GPIO4_IO13 0x01ac 0x0438 0x0000 5 0
762#define MX6UL_PAD_NAND_CE0_B__UART3_DCE_RX 0x01ac 0x0438 0x0634 8 3
763#define MX6UL_PAD_NAND_CE0_B__UART3_DTE_TX 0x01ac 0x0438 0x0000 8 0
764#define MX6UL_PAD_NAND_CE1_B__RAWNAND_CE1_B 0x01b0 0x043c 0x0000 0 0
765#define MX6UL_PAD_NAND_CE1_B__USDHC1_DATA6 0x01b0 0x043c 0x0000 1 0
766#define MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02 0x01b0 0x043c 0x0000 2 0
767#define MX6UL_PAD_NAND_CE1_B__ECSPI3_MOSI 0x01b0 0x043c 0x055c 3 1
768#define MX6UL_PAD_NAND_CE1_B__EIM_ADDR18 0x01b0 0x043c 0x0000 4 0
769#define MX6UL_PAD_NAND_CE1_B__GPIO4_IO14 0x01b0 0x043c 0x0000 5 0
770#define MX6UL_PAD_NAND_CE1_B__UART3_DCE_CTS 0x01b0 0x043c 0x0000 8 0
771#define MX6UL_PAD_NAND_CE1_B__UART3_DTE_RTS 0x01b0 0x043c 0x0630 8 2
772#define MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0x01b4 0x0440 0x0000 0 0
773#define MX6UL_PAD_NAND_CLE__USDHC1_DATA7 0x01b4 0x0440 0x0000 1 0
774#define MX6UL_PAD_NAND_CLE__QSPI_A_DATA03 0x01b4 0x0440 0x0000 2 0
775#define MX6UL_PAD_NAND_CLE__ECSPI3_MISO 0x01b4 0x0440 0x0558 3 1
776#define MX6UL_PAD_NAND_CLE__EIM_ADDR16 0x01b4 0x0440 0x0000 4 0
777#define MX6UL_PAD_NAND_CLE__GPIO4_IO15 0x01b4 0x0440 0x0000 5 0
778#define MX6UL_PAD_NAND_CLE__UART3_DCE_RTS 0x01b4 0x0440 0x0630 8 3
779#define MX6UL_PAD_NAND_CLE__UART3_DTE_CTS 0x01b4 0x0440 0x0000 8 0
780#define MX6UL_PAD_NAND_DQS__RAWNAND_DQS 0x01b8 0x0444 0x0000 0 0
781#define MX6UL_PAD_NAND_DQS__CSI_FIELD 0x01b8 0x0444 0x0530 1 1
782#define MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B 0x01b8 0x0444 0x0000 2 0
783#define MX6UL_PAD_NAND_DQS__PWM5_OUT 0x01b8 0x0444 0x0000 3 0
784#define MX6UL_PAD_NAND_DQS__EIM_WAIT 0x01b8 0x0444 0x0000 4 0
785#define MX6UL_PAD_NAND_DQS__GPIO4_IO16 0x01b8 0x0444 0x0000 5 0
786#define MX6UL_PAD_NAND_DQS__SDMA_EXT_EVENT01 0x01b8 0x0444 0x0000 6 0
787#define MX6UL_PAD_NAND_DQS__SPDIF_EXT_CLK 0x01b8 0x0444 0x0000 8 0
788#define MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x01bc 0x0448 0x0000 0 0
789#define MX6UL_PAD_SD1_CMD__GPT2_COMPARE1 0x01bc 0x0448 0x0000 1 0
790#define MX6UL_PAD_SD1_CMD__SAI2_RX_SYNC 0x01bc 0x0448 0x0000 2 0
791#define MX6UL_PAD_SD1_CMD__SPDIF_OUT 0x01bc 0x0448 0x0000 3 0
792#define MX6UL_PAD_SD1_CMD__EIM_ADDR19 0x01bc 0x0448 0x0000 4 0
793#define MX6UL_PAD_SD1_CMD__GPIO2_IO16 0x01bc 0x0448 0x0000 5 0
794#define MX6UL_PAD_SD1_CMD__SDMA_EXT_EVENT00 0x01bc 0x0448 0x0000 6 0
795#define MX6UL_PAD_SD1_CMD__USB_OTG1_PWR 0x01bc 0x0448 0x0000 8 0
796#define MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x01c0 0x044c 0x0000 0 0
797#define MX6UL_PAD_SD1_CLK__GPT2_COMPARE2 0x01c0 0x044c 0x0000 1 0
798#define MX6UL_PAD_SD1_CLK__SAI2_MCLK 0x01c0 0x044c 0x0000 2 0
799#define MX6UL_PAD_SD1_CLK__SPDIF_IN 0x01c0 0x044c 0x0618 3 3
800#define MX6UL_PAD_SD1_CLK__EIM_ADDR20 0x01c0 0x044c 0x0000 4 0
801#define MX6UL_PAD_SD1_CLK__GPIO2_IO17 0x01c0 0x044c 0x0000 5 0
802#define MX6UL_PAD_SD1_CLK__USB_OTG1_OC 0x01c0 0x044c 0x0000 8 0
803#define MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x01c4 0x0450 0x0000 0 0
804#define MX6UL_PAD_SD1_DATA0__GPT2_COMPARE3 0x01c4 0x0450 0x0000 1 0
805#define MX6UL_PAD_SD1_DATA0__SAI2_TX_SYNC 0x01c4 0x0450 0x05fc 2 1
806#define MX6UL_PAD_SD1_DATA0__FLEXCAN1_TX 0x01c4 0x0450 0x0000 3 0
807#define MX6UL_PAD_SD1_DATA0__EIM_ADDR21 0x01c4 0x0450 0x0000 4 0
808#define MX6UL_PAD_SD1_DATA0__GPIO2_IO18 0x01c4 0x0450 0x0000 5 0
809#define MX6UL_PAD_SD1_DATA0__ANATOP_OTG1_ID 0x01c4 0x0450 0x0000 8 0
810#define MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x01c8 0x0454 0x0000 0 0
811#define MX6UL_PAD_SD1_DATA1__GPT2_CLK 0x01c8 0x0454 0x05a0 1 1
812#define MX6UL_PAD_SD1_DATA1__SAI2_TX_BCLK 0x01c8 0x0454 0x05f8 2 1
813#define MX6UL_PAD_SD1_DATA1__FLEXCAN1_RX 0x01c8 0x0454 0x0584 3 3
814#define MX6UL_PAD_SD1_DATA1__EIM_ADDR22 0x01c8 0x0454 0x0000 4 0
815#define MX6UL_PAD_SD1_DATA1__GPIO2_IO19 0x01c8 0x0454 0x0000 5 0
816#define MX6UL_PAD_SD1_DATA1__USB_OTG2_PWR 0x01c8 0x0454 0x0000 8 0
817#define MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x01cc 0x0458 0x0000 0 0
818#define MX6UL_PAD_SD1_DATA2__GPT2_CAPTURE1 0x01cc 0x0458 0x0598 1 1
819#define MX6UL_PAD_SD1_DATA2__SAI2_RX_DATA 0x01cc 0x0458 0x05f4 2 1
820#define MX6UL_PAD_SD1_DATA2__FLEXCAN2_TX 0x01cc 0x0458 0x0000 3 0
821#define MX6UL_PAD_SD1_DATA2__EIM_ADDR23 0x01cc 0x0458 0x0000 4 0
822#define MX6UL_PAD_SD1_DATA2__GPIO2_IO20 0x01cc 0x0458 0x0000 5 0
823#define MX6UL_PAD_SD1_DATA2__CCM_CLKO1 0x01cc 0x0458 0x0000 6 0
824#define MX6UL_PAD_SD1_DATA2__USB_OTG2_OC 0x01cc 0x0458 0x0000 8 0
825#define MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x01d0 0x045c 0x0000 0 0
826#define MX6UL_PAD_SD1_DATA3__GPT2_CAPTURE2 0x01d0 0x045c 0x059c 1 1
827#define MX6UL_PAD_SD1_DATA3__SAI2_TX_DATA 0x01d0 0x045c 0x0000 2 0
828#define MX6UL_PAD_SD1_DATA3__FLEXCAN2_RX 0x01d0 0x045c 0x0588 3 3
829#define MX6UL_PAD_SD1_DATA3__EIM_ADDR24 0x01d0 0x045c 0x0000 4 0
830#define MX6UL_PAD_SD1_DATA3__GPIO2_IO21 0x01d0 0x045c 0x0000 5 0
831#define MX6UL_PAD_SD1_DATA3__CCM_CLKO2 0x01d0 0x045c 0x0000 6 0
832#define MX6UL_PAD_SD1_DATA3__ANATOP_OTG2_ID 0x01d0 0x045c 0x0000 8 0
833#define MX6UL_PAD_CSI_MCLK__CSI_MCLK 0x01d4 0x0460 0x0000 0 0
834#define MX6UL_PAD_CSI_MCLK__USDHC2_CD_B 0x01d4 0x0460 0x0674 1 0
835#define MX6UL_PAD_CSI_MCLK__RAWNAND_CE2_B 0x01d4 0x0460 0x0000 2 0
836#define MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x01d4 0x0460 0x05a8 3 0
837#define MX6UL_PAD_CSI_MCLK__EIM_CS0_B 0x01d4 0x0460 0x0000 4 0
838#define MX6UL_PAD_CSI_MCLK__GPIO4_IO17 0x01d4 0x0460 0x0000 5 0
839#define MX6UL_PAD_CSI_MCLK__SNVS_HP_VIO_5_CTL 0x01d4 0x0460 0x0000 6 0
840#define MX6UL_PAD_CSI_MCLK__UART6_DCE_TX 0x01d4 0x0460 0x0000 8 0
841#define MX6UL_PAD_CSI_MCLK__UART6_DTE_RX 0x01d4 0x0460 0x064c 8 0
842#define MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK 0x01d8 0x0464 0x0528 0 1
843#define MX6UL_PAD_CSI_PIXCLK__USDHC2_WP 0x01d8 0x0464 0x069c 1 2
844#define MX6UL_PAD_CSI_PIXCLK__RAWNAND_CE3_B 0x01d8 0x0464 0x0000 2 0
845#define MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x01d8 0x0464 0x05a4 3 2
846#define MX6UL_PAD_CSI_PIXCLK__EIM_OE 0x01d8 0x0464 0x0000 4 0
847#define MX6UL_PAD_CSI_PIXCLK__GPIO4_IO18 0x01d8 0x0464 0x0000 5 0
848#define MX6UL_PAD_CSI_PIXCLK__SNVS_HP_VIO_5 0x01d8 0x0464 0x0000 6 0
849#define MX6UL_PAD_CSI_PIXCLK__UART6_DCE_RX 0x01d8 0x0464 0x064c 8 3
850#define MX6UL_PAD_CSI_PIXCLK__UART6_DTE_TX 0x01d8 0x0464 0x0000 8 0
851#define MX6UL_PAD_CSI_VSYNC__CSI_VSYNC 0x01dc 0x0468 0x052c 0 0
852#define MX6UL_PAD_CSI_VSYNC__USDHC2_CLK 0x01dc 0x0468 0x0670 1 0
853#define MX6UL_PAD_CSI_VSYNC__SIM1_PORT1_CLK 0x01dc 0x0468 0x0000 2 0
854#define MX6UL_PAD_CSI_VSYNC__I2C2_SDA 0x01dc 0x0468 0x05b0 3 0
855#define MX6UL_PAD_CSI_VSYNC__EIM_RW 0x01dc 0x0468 0x0000 4 0
856#define MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x01dc 0x0468 0x0000 5 0
857#define MX6UL_PAD_CSI_VSYNC__PWM7_OUT 0x01dc 0x0468 0x0000 6 0
858#define MX6UL_PAD_CSI_VSYNC__UART6_DCE_RTS 0x01dc 0x0468 0x0648 8 0
859#define MX6UL_PAD_CSI_VSYNC__UART6_DTE_CTS 0x01dc 0x0468 0x0000 8 0
860#define MX6UL_PAD_CSI_HSYNC__CSI_HSYNC 0x01e0 0x046c 0x0524 0 0
861#define MX6UL_PAD_CSI_HSYNC__USDHC2_CMD 0x01e0 0x046c 0x0678 1 0
862#define MX6UL_PAD_CSI_HSYNC__SIM1_PORT1_PD 0x01e0 0x046c 0x0000 2 0
863#define MX6UL_PAD_CSI_HSYNC__I2C2_SCL 0x01e0 0x046c 0x05ac 3 0
864#define MX6UL_PAD_CSI_HSYNC__EIM_LBA_B 0x01e0 0x046c 0x0000 4 0
865#define MX6UL_PAD_CSI_HSYNC__GPIO4_IO20 0x01e0 0x046c 0x0000 5 0
866#define MX6UL_PAD_CSI_HSYNC__PWM8_OUT 0x01e0 0x046c 0x0000 6 0
867#define MX6UL_PAD_CSI_HSYNC__UART6_DCE_CTS 0x01e0 0x046c 0x0000 8 0
868#define MX6UL_PAD_CSI_HSYNC__UART6_DTE_RTS 0x01e0 0x046c 0x0648 8 1
869#define MX6UL_PAD_CSI_DATA00__CSI_DATA02 0x01e4 0x0470 0x04c4 0 0
870#define MX6UL_PAD_CSI_DATA00__USDHC2_DATA0 0x01e4 0x0470 0x067c 1 0
871#define MX6UL_PAD_CSI_DATA00__SIM1_PORT1_RST_B 0x01e4 0x0470 0x0000 2 0
872#define MX6UL_PAD_CSI_DATA00__ECSPI2_SCLK 0x01e4 0x0470 0x0544 3 0
873#define MX6UL_PAD_CSI_DATA00__EIM_AD00 0x01e4 0x0470 0x0000 4 0
874#define MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x01e4 0x0470 0x0000 5 0
875#define MX6UL_PAD_CSI_DATA00__SRC_INT_BOOT 0x01e4 0x0470 0x0000 6 0
876#define MX6UL_PAD_CSI_DATA00__UART5_DCE_TX 0x01e4 0x0470 0x0000 8 0
877#define MX6UL_PAD_CSI_DATA00__UART5_DTE_RX 0x01e4 0x0470 0x0644 8 0
878#define MX6UL_PAD_CSI_DATA01__CSI_DATA03 0x01e8 0x0474 0x04c8 0 0
879#define MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 0x01e8 0x0474 0x0680 1 0
880#define MX6UL_PAD_CSI_DATA01__SIM1_PORT1_SVEN 0x01e8 0x0474 0x0000 2 0
881#define MX6UL_PAD_CSI_DATA01__ECSPI2_SS0 0x01e8 0x0474 0x0000 3 0
882#define MX6UL_PAD_CSI_DATA01__EIM_AD01 0x01e8 0x0474 0x0000 4 0
883#define MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x01e8 0x0474 0x0000 5 0
884#define MX6UL_PAD_CSI_DATA01__SAI1_MCLK 0x01e8 0x0474 0x0000 6 0
885#define MX6UL_PAD_CSI_DATA01__UART5_DCE_RX 0x01e8 0x0474 0x0644 8 1
886#define MX6UL_PAD_CSI_DATA01__UART5_DTE_TX 0x01e8 0x0474 0x0000 8 0
887#define MX6UL_PAD_CSI_DATA02__CSI_DATA04 0x01ec 0x0478 0x04d8 0 1
888#define MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 0x01ec 0x0478 0x0684 1 2
889#define MX6UL_PAD_CSI_DATA02__SIM1_PORT1_TRXD 0x01ec 0x0478 0x0000 2 0
890#define MX6UL_PAD_CSI_DATA02__ECSPI2_MOSI 0x01ec 0x0478 0x054c 3 1
891#define MX6UL_PAD_CSI_DATA02__EIM_AD02 0x01ec 0x0478 0x0000 4 0
892#define MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x01ec 0x0478 0x0000 5 0
893#define MX6UL_PAD_CSI_DATA02__SAI1_RX_SYNC 0x01ec 0x0478 0x0000 6 0
894#define MX6UL_PAD_CSI_DATA02__UART5_DCE_RTS 0x01ec 0x0478 0x0640 8 5
895#define MX6UL_PAD_CSI_DATA02__UART5_DTE_CTS 0x01ec 0x0478 0x0000 8 0
896#define MX6UL_PAD_CSI_DATA03__CSI_DATA05 0x01f0 0x047c 0x04cc 0 0
897#define MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 0x01f0 0x047c 0x0688 1 0
898#define MX6UL_PAD_CSI_DATA03__SIM2_PORT1_PD 0x01f0 0x047c 0x0000 2 0
899#define MX6UL_PAD_CSI_DATA03__ECSPI2_MISO 0x01f0 0x047c 0x0548 3 0
900#define MX6UL_PAD_CSI_DATA03__EIM_AD03 0x01f0 0x047c 0x0000 4 0
901#define MX6UL_PAD_CSI_DATA03__GPIO4_IO24 0x01f0 0x047c 0x0000 5 0
902#define MX6UL_PAD_CSI_DATA03__SAI1_RX_BCLK 0x01f0 0x047c 0x0000 6 0
903#define MX6UL_PAD_CSI_DATA03__UART5_DCE_CTS 0x01f0 0x047c 0x0000 8 0
904#define MX6UL_PAD_CSI_DATA03__UART5_DTE_RTS 0x01f0 0x047c 0x0640 8 0
905#define MX6UL_PAD_CSI_DATA04__CSI_DATA06 0x01f4 0x0480 0x04dc 0 1
906#define MX6UL_PAD_CSI_DATA04__USDHC2_DATA4 0x01f4 0x0480 0x068c 1 2
907#define MX6UL_PAD_CSI_DATA04__SIM2_PORT1_CLK 0x01f4 0x0480 0x0000 2 0
908#define MX6UL_PAD_CSI_DATA04__ECSPI1_SCLK 0x01f4 0x0480 0x0534 3 1
909#define MX6UL_PAD_CSI_DATA04__EIM_AD04 0x01f4 0x0480 0x0000 4 0
910#define MX6UL_PAD_CSI_DATA04__GPIO4_IO25 0x01f4 0x0480 0x0000 5 0
911#define MX6UL_PAD_CSI_DATA04__SAI1_TX_SYNC 0x01f4 0x0480 0x05ec 6 1
912#define MX6UL_PAD_CSI_DATA04__USDHC1_WP 0x01f4 0x0480 0x0000 8 0
913#define MX6UL_PAD_CSI_DATA05__CSI_DATA07 0x01f8 0x0484 0x04e0 0 1
914#define MX6UL_PAD_CSI_DATA05__USDHC2_DATA5 0x01f8 0x0484 0x0690 1 2
915#define MX6UL_PAD_CSI_DATA05__SIM2_PORT1_RST_B 0x01f8 0x0484 0x0000 2 0
916#define MX6UL_PAD_CSI_DATA05__ECSPI1_SS0 0x01f8 0x0484 0x0000 3 0
917#define MX6UL_PAD_CSI_DATA05__EIM_AD05 0x01f8 0x0484 0x0000 4 0
918#define MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x01f8 0x0484 0x0000 5 0
919#define MX6UL_PAD_CSI_DATA05__SAI1_TX_BCLK 0x01f8 0x0484 0x05e8 6 1
920#define MX6UL_PAD_CSI_DATA05__USDHC1_CD_B 0x01f8 0x0484 0x0000 8 0
921#define MX6UL_PAD_CSI_DATA06__CSI_DATA08 0x01fc 0x0488 0x04e4 0 1
922#define MX6UL_PAD_CSI_DATA06__USDHC2_DATA6 0x01fc 0x0488 0x0694 1 2
923#define MX6UL_PAD_CSI_DATA06__SIM2_PORT1_SVEN 0x01fc 0x0488 0x0000 2 0
924#define MX6UL_PAD_CSI_DATA06__ECSPI1_MOSI 0x01fc 0x0488 0x053c 3 1
925#define MX6UL_PAD_CSI_DATA06__EIM_AD06 0x01fc 0x0488 0x0000 4 0
926#define MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x01fc 0x0488 0x0000 5 0
927#define MX6UL_PAD_CSI_DATA06__SAI1_RX_DATA 0x01fc 0x0488 0x0000 6 0
928#define MX6UL_PAD_CSI_DATA06__USDHC1_RESET_B 0x01fc 0x0488 0x0000 8 0
929#define MX6UL_PAD_CSI_DATA07__CSI_DATA09 0x0200 0x048c 0x04e8 0 1
930#define MX6UL_PAD_CSI_DATA07__USDHC2_DATA7 0x0200 0x048c 0x0698 1 2
931#define MX6UL_PAD_CSI_DATA07__SIM2_PORT1_TRXD 0x0200 0x048c 0x0000 2 0
932#define MX6UL_PAD_CSI_DATA07__ECSPI1_MISO 0x0200 0x048c 0x0538 3 1
933#define MX6UL_PAD_CSI_DATA07__EIM_AD07 0x0200 0x048c 0x0000 4 0
934#define MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x0200 0x048c 0x0000 5 0
935#define MX6UL_PAD_CSI_DATA07__SAI1_TX_DATA 0x0200 0x048c 0x0000 6 0
936#define MX6UL_PAD_CSI_DATA07__USDHC1_VSELECT 0x0200 0x048c 0x0000 8 0
937
938#endif /* __DTS_IMX6UL_PINFUNC_H */
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
new file mode 100644
index 000000000000..09edbedfd908
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -0,0 +1,707 @@
1/*
2 * Copyright 2015 Freescale Semiconductor, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include <dt-bindings/clock/imx6ul-clock.h>
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include "imx6ul-pinfunc.h"
13#include "skeleton.dtsi"
14
15/ {
16 aliases {
17 ethernet0 = &fec1;
18 ethernet1 = &fec2;
19 gpio0 = &gpio1;
20 gpio1 = &gpio2;
21 gpio2 = &gpio3;
22 gpio3 = &gpio4;
23 gpio4 = &gpio5;
24 i2c0 = &i2c1;
25 i2c1 = &i2c2;
26 i2c2 = &i2c3;
27 i2c3 = &i2c4;
28 mmc0 = &usdhc1;
29 mmc1 = &usdhc2;
30 serial0 = &uart1;
31 serial1 = &uart2;
32 serial2 = &uart3;
33 serial3 = &uart4;
34 serial4 = &uart5;
35 serial5 = &uart6;
36 serial6 = &uart7;
37 serial7 = &uart8;
38 spi0 = &ecspi1;
39 spi1 = &ecspi2;
40 spi2 = &ecspi3;
41 spi3 = &ecspi4;
42 usbphy0 = &usbphy1;
43 usbphy1 = &usbphy2;
44 };
45
46 cpus {
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 cpu0: cpu@0 {
51 compatible = "arm,cortex-a7";
52 device_type = "cpu";
53 reg = <0>;
54 clock-latency = <61036>; /* two CLK32 periods */
55 operating-points = <
56 /* kHz uV */
57 528000 1250000
58 396000 1150000
59 198000 1150000
60 >;
61 fsl,soc-operating-points = <
62 /* KHz uV */
63 528000 1250000
64 396000 1150000
65 198000 1150000
66 >;
67 clocks = <&clks IMX6UL_CLK_ARM>,
68 <&clks IMX6UL_CLK_PLL2_BUS>,
69 <&clks IMX6UL_CLK_PLL2_PFD2>,
70 <&clks IMX6UL_CA7_SECONDARY_SEL>,
71 <&clks IMX6UL_CLK_STEP>,
72 <&clks IMX6UL_CLK_PLL1_SW>,
73 <&clks IMX6UL_CLK_PLL1_SYS>,
74 <&clks IMX6UL_PLL1_BYPASS>,
75 <&clks IMX6UL_CLK_PLL1>,
76 <&clks IMX6UL_PLL1_BYPASS_SRC>,
77 <&clks IMX6UL_CLK_OSC>;
78 clock-names = "arm", "pll2_bus", "pll2_pfd2_396m",
79 "secondary_sel", "step", "pll1_sw",
80 "pll1_sys", "pll1_bypass", "pll1",
81 "pll1_bypass_src", "osc";
82 arm-supply = <&reg_arm>;
83 soc-supply = <&reg_soc>;
84 };
85 };
86
87 intc: interrupt-controller@00a01000 {
88 compatible = "arm,cortex-a7-gic";
89 #interrupt-cells = <3>;
90 interrupt-controller;
91 reg = <0x00a01000 0x1000>,
92 <0x00a02000 0x1000>,
93 <0x00a04000 0x2000>,
94 <0x00a06000 0x2000>;
95 };
96
97 ckil: clock-cli {
98 compatible = "fixed-clock";
99 #clock-cells = <0>;
100 clock-frequency = <32768>;
101 clock-output-names = "ckil";
102 };
103
104 osc: clock-osc {
105 compatible = "fixed-clock";
106 #clock-cells = <0>;
107 clock-frequency = <24000000>;
108 clock-output-names = "osc";
109 };
110
111 ipp_di0: clock-di0 {
112 compatible = "fixed-clock";
113 #clock-cells = <0>;
114 clock-frequency = <0>;
115 clock-output-names = "ipp_di0";
116 };
117
118 ipp_di1: clock-di1 {
119 compatible = "fixed-clock";
120 #clock-cells = <0>;
121 clock-frequency = <0>;
122 clock-output-names = "ipp_di1";
123 };
124
125 soc {
126 #address-cells = <1>;
127 #size-cells = <1>;
128 compatible = "simple-bus";
129 interrupt-parent = <&gpc>;
130 ranges;
131
132 pmu {
133 compatible = "arm,cortex-a7-pmu";
134 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
135 status = "disabled";
136 };
137
138 aips1: aips-bus@02000000 {
139 compatible = "fsl,aips-bus", "simple-bus";
140 #address-cells = <1>;
141 #size-cells = <1>;
142 reg = <0x02000000 0x100000>;
143 ranges;
144
145 spba-bus@02000000 {
146 compatible = "fsl,spba-bus", "simple-bus";
147 #address-cells = <1>;
148 #size-cells = <1>;
149 reg = <0x02000000 0x40000>;
150 ranges;
151
152 ecspi1: ecspi@02008000 {
153 #address-cells = <1>;
154 #size-cells = <0>;
155 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
156 reg = <0x02008000 0x4000>;
157 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
158 clocks = <&clks IMX6UL_CLK_ECSPI1>,
159 <&clks IMX6UL_CLK_ECSPI1>;
160 clock-names = "ipg", "per";
161 status = "disabled";
162 };
163
164 ecspi2: ecspi@0200c000 {
165 #address-cells = <1>;
166 #size-cells = <0>;
167 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
168 reg = <0x0200c000 0x4000>;
169 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
170 clocks = <&clks IMX6UL_CLK_ECSPI2>,
171 <&clks IMX6UL_CLK_ECSPI2>;
172 clock-names = "ipg", "per";
173 status = "disabled";
174 };
175
176 ecspi3: ecspi@02010000 {
177 #address-cells = <1>;
178 #size-cells = <0>;
179 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
180 reg = <0x02010000 0x4000>;
181 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
182 clocks = <&clks IMX6UL_CLK_ECSPI3>,
183 <&clks IMX6UL_CLK_ECSPI3>;
184 clock-names = "ipg", "per";
185 status = "disabled";
186 };
187
188 ecspi4: ecspi@02014000 {
189 #address-cells = <1>;
190 #size-cells = <0>;
191 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
192 reg = <0x02014000 0x4000>;
193 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&clks IMX6UL_CLK_ECSPI4>,
195 <&clks IMX6UL_CLK_ECSPI4>;
196 clock-names = "ipg", "per";
197 status = "disabled";
198 };
199
200 uart7: serial@02018000 {
201 compatible = "fsl,imx6ul-uart",
202 "fsl,imx6q-uart";
203 reg = <0x02018000 0x4000>;
204 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
205 clocks = <&clks IMX6UL_CLK_UART7_IPG>,
206 <&clks IMX6UL_CLK_UART7_SERIAL>;
207 clock-names = "ipg", "per";
208 status = "disabled";
209 };
210
211 uart1: serial@02020000 {
212 compatible = "fsl,imx6ul-uart",
213 "fsl,imx6q-uart";
214 reg = <0x02020000 0x4000>;
215 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
216 clocks = <&clks IMX6UL_CLK_UART1_IPG>,
217 <&clks IMX6UL_CLK_UART1_SERIAL>;
218 clock-names = "ipg", "per";
219 status = "disabled";
220 };
221
222 uart8: serial@02024000 {
223 compatible = "fsl,imx6ul-uart",
224 "fsl,imx6q-uart";
225 reg = <0x02024000 0x4000>;
226 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&clks IMX6UL_CLK_UART8_IPG>,
228 <&clks IMX6UL_CLK_UART8_SERIAL>;
229 clock-names = "ipg", "per";
230 status = "disabled";
231 };
232 };
233
234 gpt1: gpt@02098000 {
235 compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
236 reg = <0x02098000 0x4000>;
237 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
238 clocks = <&clks IMX6UL_CLK_GPT1_BUS>,
239 <&clks IMX6UL_CLK_GPT1_SERIAL>;
240 clock-names = "ipg", "per";
241 };
242
243 gpio1: gpio@0209c000 {
244 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
245 reg = <0x0209c000 0x4000>;
246 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
247 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
248 gpio-controller;
249 #gpio-cells = <2>;
250 interrupt-controller;
251 #interrupt-cells = <2>;
252 };
253
254 gpio2: gpio@020a0000 {
255 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
256 reg = <0x020a0000 0x4000>;
257 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
258 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
259 gpio-controller;
260 #gpio-cells = <2>;
261 interrupt-controller;
262 #interrupt-cells = <2>;
263 };
264
265 gpio3: gpio@020a4000 {
266 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
267 reg = <0x020a4000 0x4000>;
268 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
269 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
270 gpio-controller;
271 #gpio-cells = <2>;
272 interrupt-controller;
273 #interrupt-cells = <2>;
274 };
275
276 gpio4: gpio@020a8000 {
277 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
278 reg = <0x020a8000 0x4000>;
279 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
280 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
281 gpio-controller;
282 #gpio-cells = <2>;
283 interrupt-controller;
284 #interrupt-cells = <2>;
285 };
286
287 gpio5: gpio@020ac000 {
288 compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
289 reg = <0x020ac000 0x4000>;
290 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
291 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
292 gpio-controller;
293 #gpio-cells = <2>;
294 interrupt-controller;
295 #interrupt-cells = <2>;
296 };
297
298 fec2: ethernet@020b4000 {
299 compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
300 reg = <0x020b4000 0x4000>;
301 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
302 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
303 clocks = <&clks IMX6UL_CLK_ENET>,
304 <&clks IMX6UL_CLK_ENET_AHB>,
305 <&clks IMX6UL_CLK_ENET_PTP>,
306 <&clks IMX6UL_CLK_ENET2_REF_125M>,
307 <&clks IMX6UL_CLK_ENET2_REF_125M>;
308 clock-names = "ipg", "ahb", "ptp",
309 "enet_clk_ref", "enet_out";
310 fsl,num-tx-queues=<1>;
311 fsl,num-rx-queues=<1>;
312 status = "disabled";
313 };
314
315 wdog1: wdog@020bc000 {
316 compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
317 reg = <0x020bc000 0x4000>;
318 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
319 clocks = <&clks IMX6UL_CLK_WDOG1>;
320 };
321
322 wdog2: wdog@020c0000 {
323 compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
324 reg = <0x020c0000 0x4000>;
325 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
326 clocks = <&clks IMX6UL_CLK_WDOG2>;
327 status = "disabled";
328 };
329
330 clks: ccm@020c4000 {
331 compatible = "fsl,imx6ul-ccm";
332 reg = <0x020c4000 0x4000>;
333 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
334 <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
335 #clock-cells = <1>;
336 clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>;
337 clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
338 };
339
340 anatop: anatop@020c8000 {
341 compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
342 "syscon", "simple-bus";
343 reg = <0x020c8000 0x1000>;
344 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
345 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
346 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
347
348 reg_3p0: regulator-3p0@120 {
349 compatible = "fsl,anatop-regulator";
350 regulator-name = "vdd3p0";
351 regulator-min-microvolt = <2625000>;
352 regulator-max-microvolt = <3400000>;
353 anatop-reg-offset = <0x120>;
354 anatop-vol-bit-shift = <8>;
355 anatop-vol-bit-width = <5>;
356 anatop-min-bit-val = <0>;
357 anatop-min-voltage = <2625000>;
358 anatop-max-voltage = <3400000>;
359 anatop-enable-bit = <0>;
360 };
361
362 reg_arm: regulator-vddcore@140 {
363 compatible = "fsl,anatop-regulator";
364 regulator-name = "cpu";
365 regulator-min-microvolt = <725000>;
366 regulator-max-microvolt = <1450000>;
367 regulator-always-on;
368 anatop-reg-offset = <0x140>;
369 anatop-vol-bit-shift = <0>;
370 anatop-vol-bit-width = <5>;
371 anatop-delay-reg-offset = <0x170>;
372 anatop-delay-bit-shift = <24>;
373 anatop-delay-bit-width = <2>;
374 anatop-min-bit-val = <1>;
375 anatop-min-voltage = <725000>;
376 anatop-max-voltage = <1450000>;
377 };
378
379 reg_soc: regulator-vddsoc@140 {
380 compatible = "fsl,anatop-regulator";
381 regulator-name = "vddsoc";
382 regulator-min-microvolt = <725000>;
383 regulator-max-microvolt = <1450000>;
384 regulator-always-on;
385 anatop-reg-offset = <0x140>;
386 anatop-vol-bit-shift = <18>;
387 anatop-vol-bit-width = <5>;
388 anatop-delay-reg-offset = <0x170>;
389 anatop-delay-bit-shift = <28>;
390 anatop-delay-bit-width = <2>;
391 anatop-min-bit-val = <1>;
392 anatop-min-voltage = <725000>;
393 anatop-max-voltage = <1450000>;
394 };
395 };
396
397 usbphy1: usbphy@020c9000 {
398 compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
399 reg = <0x020c9000 0x1000>;
400 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
401 clocks = <&clks IMX6UL_CLK_USBPHY1>;
402 phy-3p0-supply = <&reg_3p0>;
403 fsl,anatop = <&anatop>;
404 };
405
406 usbphy2: usbphy@020ca000 {
407 compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
408 reg = <0x020ca000 0x1000>;
409 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
410 clocks = <&clks IMX6UL_CLK_USBPHY2>;
411 phy-3p0-supply = <&reg_3p0>;
412 fsl,anatop = <&anatop>;
413 };
414
415 snvs: snvs@020cc000 {
416 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
417 reg = <0x020cc000 0x4000>;
418
419 snvs_rtc: snvs-rtc-lp {
420 compatible = "fsl,sec-v4.0-mon-rtc-lp";
421 regmap = <&snvs>;
422 offset = <0x34>;
423 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
424 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
425 };
426
427 snvs_pwrkey: snvs-powerkey {
428 compatible = "fsl,sec-v4.0-pwrkey";
429 regmap = <&snvs>;
430 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
431 linux,keycode = <KEY_POWER>;
432 wakeup-source;
433 };
434 };
435
436 epit1: epit@020d0000 {
437 reg = <0x020d0000 0x4000>;
438 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
439 };
440
441 epit2: epit@020d4000 {
442 reg = <0x020d4000 0x4000>;
443 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
444 };
445
446 src: src@020d8000 {
447 compatible = "fsl,imx6ul-src", "fsl,imx51-src";
448 reg = <0x020d8000 0x4000>;
449 interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
450 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
451 #reset-cells = <1>;
452 };
453
454 gpc: gpc@020dc000 {
455 compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
456 reg = <0x020dc000 0x4000>;
457 interrupt-controller;
458 #interrupt-cells = <3>;
459 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
460 interrupt-parent = <&intc>;
461 };
462
463 iomuxc: iomuxc@020e0000 {
464 compatible = "fsl,imx6ul-iomuxc";
465 reg = <0x020e0000 0x4000>;
466 };
467
468 gpr: iomuxc-gpr@020e4000 {
469 compatible = "fsl,imx6ul-iomuxc-gpr", "syscon";
470 reg = <0x020e4000 0x4000>;
471 };
472
473 gpt2: gpt@020e8000 {
474 compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
475 reg = <0x020e8000 0x4000>;
476 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
477 clocks = <&clks IMX6UL_CLK_DUMMY>,
478 <&clks IMX6UL_CLK_DUMMY>;
479 clock-names = "ipg", "per";
480 };
481
482 pwm5: pwm@020f0000 {
483 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
484 reg = <0x020f0000 0x4000>;
485 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
486 clocks = <&clks IMX6UL_CLK_DUMMY>,
487 <&clks IMX6UL_CLK_DUMMY>;
488 clock-names = "ipg", "per";
489 #pwm-cells = <2>;
490 };
491
492 pwm6: pwm@020f4000 {
493 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
494 reg = <0x020f4000 0x4000>;
495 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
496 clocks = <&clks IMX6UL_CLK_DUMMY>,
497 <&clks IMX6UL_CLK_DUMMY>;
498 clock-names = "ipg", "per";
499 #pwm-cells = <2>;
500 };
501
502 pwm7: pwm@020f8000 {
503 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
504 reg = <0x020f8000 0x4000>;
505 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
506 clocks = <&clks IMX6UL_CLK_DUMMY>,
507 <&clks IMX6UL_CLK_DUMMY>;
508 clock-names = "ipg", "per";
509 #pwm-cells = <2>;
510 };
511
512 pwm8: pwm@020fc000 {
513 compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
514 reg = <0x020fc000 0x4000>;
515 interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
516 clocks = <&clks IMX6UL_CLK_DUMMY>,
517 <&clks IMX6UL_CLK_DUMMY>;
518 clock-names = "ipg", "per";
519 #pwm-cells = <2>;
520 };
521 };
522
523 aips2: aips-bus@02100000 {
524 compatible = "fsl,aips-bus", "simple-bus";
525 #address-cells = <1>;
526 #size-cells = <1>;
527 reg = <0x02100000 0x100000>;
528 ranges;
529
530 usbotg1: usb@02184000 {
531 compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
532 reg = <0x02184000 0x200>;
533 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
534 clocks = <&clks IMX6UL_CLK_USBOH3>;
535 fsl,usbphy = <&usbphy1>;
536 fsl,usbmisc = <&usbmisc 0>;
537 fsl,anatop = <&anatop>;
538 status = "disabled";
539 };
540
541 usbotg2: usb@02184200 {
542 compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
543 reg = <0x02184200 0x200>;
544 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
545 clocks = <&clks IMX6UL_CLK_USBOH3>;
546 fsl,usbphy = <&usbphy2>;
547 fsl,usbmisc = <&usbmisc 1>;
548 status = "disabled";
549 };
550
551 usbmisc: usbmisc@02184800 {
552 #index-cells = <1>;
553 compatible = "fsl,imx6ul-usbmisc", "fsl,imx6q-usbmisc";
554 reg = <0x02184800 0x200>;
555 };
556
557 fec1: ethernet@02188000 {
558 compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
559 reg = <0x02188000 0x4000>;
560 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
561 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
562 clocks = <&clks IMX6UL_CLK_ENET>,
563 <&clks IMX6UL_CLK_ENET_AHB>,
564 <&clks IMX6UL_CLK_ENET_PTP>,
565 <&clks IMX6UL_CLK_ENET_REF>,
566 <&clks IMX6UL_CLK_ENET_REF>;
567 clock-names = "ipg", "ahb", "ptp",
568 "enet_clk_ref", "enet_out";
569 fsl,num-tx-queues=<1>;
570 fsl,num-rx-queues=<1>;
571 status = "disabled";
572 };
573
574 usdhc1: usdhc@02190000 {
575 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
576 reg = <0x02190000 0x4000>;
577 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
578 clocks = <&clks IMX6UL_CLK_USDHC1>,
579 <&clks IMX6UL_CLK_USDHC1>,
580 <&clks IMX6UL_CLK_USDHC1>;
581 clock-names = "ipg", "ahb", "per";
582 bus-width = <4>;
583 status = "disabled";
584 };
585
586 usdhc2: usdhc@02194000 {
587 compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
588 reg = <0x02194000 0x4000>;
589 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&clks IMX6UL_CLK_USDHC2>,
591 <&clks IMX6UL_CLK_USDHC2>,
592 <&clks IMX6UL_CLK_USDHC2>;
593 clock-names = "ipg", "ahb", "per";
594 bus-width = <4>;
595 status = "disabled";
596 };
597
598 i2c1: i2c@021a0000 {
599 #address-cells = <1>;
600 #size-cells = <0>;
601 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
602 reg = <0x021a0000 0x4000>;
603 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
604 clocks = <&clks IMX6UL_CLK_I2C1>;
605 status = "disabled";
606 };
607
608 i2c2: i2c@021a4000 {
609 #address-cells = <1>;
610 #size-cells = <0>;
611 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
612 reg = <0x021a4000 0x4000>;
613 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
614 clocks = <&clks IMX6UL_CLK_I2C2>;
615 status = "disabled";
616 };
617
618 i2c3: i2c@021a8000 {
619 #address-cells = <1>;
620 #size-cells = <0>;
621 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
622 reg = <0x021a8000 0x4000>;
623 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
624 clocks = <&clks IMX6UL_CLK_I2C3>;
625 status = "disabled";
626 };
627
628 qspi: qspi@021e0000 {
629 #address-cells = <1>;
630 #size-cells = <0>;
631 compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
632 reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
633 reg-names = "QuadSPI", "QuadSPI-memory";
634 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
635 clocks = <&clks IMX6UL_CLK_QSPI>,
636 <&clks IMX6UL_CLK_QSPI>;
637 clock-names = "qspi_en", "qspi";
638 status = "disabled";
639 };
640
641 uart2: serial@021e8000 {
642 compatible = "fsl,imx6ul-uart",
643 "fsl,imx6q-uart";
644 reg = <0x021e8000 0x4000>;
645 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
646 clocks = <&clks IMX6UL_CLK_UART2_IPG>,
647 <&clks IMX6UL_CLK_UART2_SERIAL>;
648 clock-names = "ipg", "per";
649 status = "disabled";
650 };
651
652 uart3: serial@021ec000 {
653 compatible = "fsl,imx6ul-uart",
654 "fsl,imx6q-uart";
655 reg = <0x021ec000 0x4000>;
656 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
657 clocks = <&clks IMX6UL_CLK_UART3_IPG>,
658 <&clks IMX6UL_CLK_UART3_SERIAL>;
659 clock-names = "ipg", "per";
660 status = "disabled";
661 };
662
663 uart4: serial@021f0000 {
664 compatible = "fsl,imx6ul-uart",
665 "fsl,imx6q-uart";
666 reg = <0x021f0000 0x4000>;
667 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
668 clocks = <&clks IMX6UL_CLK_UART4_IPG>,
669 <&clks IMX6UL_CLK_UART4_SERIAL>;
670 clock-names = "ipg", "per";
671 status = "disabled";
672 };
673
674 uart5: serial@021f4000 {
675 compatible = "fsl,imx6ul-uart",
676 "fsl,imx6q-uart";
677 reg = <0x021f4000 0x4000>;
678 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
679 clocks = <&clks IMX6UL_CLK_UART5_IPG>,
680 <&clks IMX6UL_CLK_UART5_SERIAL>;
681 clock-names = "ipg", "per";
682 status = "disabled";
683 };
684
685 i2c4: i2c@021f8000 {
686 #address-cells = <1>;
687 #size-cells = <0>;
688 compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
689 reg = <0x021f8000 0x4000>;
690 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
691 clocks = <&clks IMX6UL_CLK_I2C4>;
692 status = "disabled";
693 };
694
695 uart6: serial@021fc000 {
696 compatible = "fsl,imx6ul-uart",
697 "fsl,imx6q-uart";
698 reg = <0x021fc000 0x4000>;
699 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
700 clocks = <&clks IMX6UL_CLK_UART6_IPG>,
701 <&clks IMX6UL_CLK_UART6_SERIAL>;
702 clock-names = "ipg", "per";
703 status = "disabled";
704 };
705 };
706 };
707};
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index c42cf8db0451..b738ce0f9d9b 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -121,6 +121,209 @@
121 clock-output-names = "osc"; 121 clock-output-names = "osc";
122 }; 122 };
123 123
124 etr@30086000 {
125 compatible = "arm,coresight-tmc", "arm,primecell";
126 reg = <0x30086000 0x1000>;
127 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
128 clock-names = "apb_pclk";
129
130 port {
131 etr_in_port: endpoint {
132 slave-mode;
133 remote-endpoint = <&replicator_out_port1>;
134 };
135 };
136 };
137
138 tpiu@30087000 {
139 compatible = "arm,coresight-tpiu", "arm,primecell";
140 reg = <0x30087000 0x1000>;
141 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
142 clock-names = "apb_pclk";
143
144 port {
145 tpiu_in_port: endpoint {
146 slave-mode;
147 remote-endpoint = <&replicator_out_port1>;
148 };
149 };
150 };
151
152 replicator {
153 /*
154 * non-configurable replicators don't show up on the
155 * AMBA bus. As such no need to add "arm,primecell"
156 */
157 compatible = "arm,coresight-replicator";
158
159 ports {
160 #address-cells = <1>;
161 #size-cells = <0>;
162
163 /* replicator output ports */
164 port@0 {
165 reg = <0>;
166 replicator_out_port0: endpoint {
167 remote-endpoint = <&tpiu_in_port>;
168 };
169 };
170
171 port@1 {
172 reg = <1>;
173 replicator_out_port1: endpoint {
174 remote-endpoint = <&etr_in_port>;
175 };
176 };
177
178 /* replicator input port */
179 port@2 {
180 reg = <0>;
181 replicator_in_port0: endpoint {
182 slave-mode;
183 remote-endpoint = <&etf_out_port>;
184 };
185 };
186 };
187 };
188
189 etf@30084000 {
190 compatible = "arm,coresight-tmc", "arm,primecell";
191 reg = <0x30084000 0x1000>;
192 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
193 clock-names = "apb_pclk";
194
195 ports {
196 #address-cells = <1>;
197 #size-cells = <0>;
198
199 port@0 {
200 reg = <0>;
201 etf_in_port: endpoint {
202 slave-mode;
203 remote-endpoint = <&hugo_funnel_out_port0>;
204 };
205 };
206
207 port@1 {
208 reg = <0>;
209 etf_out_port: endpoint {
210 remote-endpoint = <&replicator_in_port0>;
211 };
212 };
213 };
214 };
215
216 funnel@30083000 {
217 compatible = "arm,coresight-funnel", "arm,primecell";
218 reg = <0x30083000 0x1000>;
219 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
220 clock-names = "apb_pclk";
221
222 ports {
223 #address-cells = <1>;
224 #size-cells = <0>;
225
226 /* funnel input ports */
227 port@0 {
228 reg = <0>;
229 hugo_funnel_in_port0: endpoint {
230 slave-mode;
231 remote-endpoint = <&ca_funnel_out_port0>;
232 };
233 };
234
235 port@1 {
236 reg = <1>;
237 hugo_funnel_in_port1: endpoint {
238 slave-mode; /* M4 input */
239 };
240 };
241
242 port@2 {
243 reg = <0>;
244 hugo_funnel_out_port0: endpoint {
245 remote-endpoint = <&etf_in_port>;
246 };
247 };
248
249 /* the other input ports are not connect to anything */
250 };
251 };
252
253 funnel@30041000 {
254 compatible = "arm,coresight-funnel", "arm,primecell";
255 reg = <0x30041000 0x1000>;
256 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
257 clock-names = "apb_pclk";
258
259 ports {
260 #address-cells = <1>;
261 #size-cells = <0>;
262
263 /* funnel input ports */
264 port@0 {
265 reg = <0>;
266 ca_funnel_in_port0: endpoint {
267 slave-mode;
268 remote-endpoint = <&etm0_out_port>;
269 };
270 };
271
272 port@1 {
273 reg = <1>;
274 ca_funnel_in_port1: endpoint {
275 slave-mode;
276 remote-endpoint = <&etm1_out_port>;
277 };
278 };
279
280 /* funnel output port */
281 port@2 {
282 reg = <0>;
283 ca_funnel_out_port0: endpoint {
284 remote-endpoint = <&hugo_funnel_in_port0>;
285 };
286 };
287
288 /* the other input ports are not connect to anything */
289 };
290 };
291
292 etm@3007c000 {
293 compatible = "arm,coresight-etm3x", "arm,primecell";
294 reg = <0x3007c000 0x1000>;
295 cpu = <&cpu0>;
296 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
297 clock-names = "apb_pclk";
298
299 port {
300 etm0_out_port: endpoint {
301 remote-endpoint = <&ca_funnel_in_port0>;
302 };
303 };
304 };
305
306 etm@3007d000 {
307 compatible = "arm,coresight-etm3x", "arm,primecell";
308 reg = <0x3007d000 0x1000>;
309
310 /*
311 * System will hang if added nosmp in kernel command line
312 * without arm,primecell-periphid because amba bus try to
313 * read id and core1 power off at this time.
314 */
315 arm,primecell-periphid = <0xbb956>;
316 cpu = <&cpu1>;
317 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
318 clock-names = "apb_pclk";
319
320 port {
321 etm1_out_port: endpoint {
322 remote-endpoint = <&ca_funnel_in_port1>;
323 };
324 };
325 };
326
124 soc { 327 soc {
125 #address-cells = <1>; 328 #address-cells = <1>;
126 #size-cells = <1>; 329 #size-cells = <1>;
@@ -212,6 +415,37 @@
212 #interrupt-cells = <2>; 415 #interrupt-cells = <2>;
213 }; 416 };
214 417
418 wdog1: wdog@30280000 {
419 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
420 reg = <0x30280000 0x10000>;
421 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
422 clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
423 };
424
425 wdog2: wdog@30290000 {
426 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
427 reg = <0x30290000 0x10000>;
428 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
429 clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
430 status = "disabled";
431 };
432
433 wdog3: wdog@302a0000 {
434 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
435 reg = <0x302a0000 0x10000>;
436 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
437 clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
438 status = "disabled";
439 };
440
441 wdog4: wdog@302b0000 {
442 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
443 reg = <0x302b0000 0x10000>;
444 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
445 clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
446 status = "disabled";
447 };
448
215 gpt1: gpt@302d0000 { 449 gpt1: gpt@302d0000 {
216 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt"; 450 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
217 reg = <0x302d0000 0x10000>; 451 reg = <0x302d0000 0x10000>;
@@ -291,17 +525,31 @@
291 }; 525 };
292 526
293 snvs: snvs@30370000 { 527 snvs: snvs@30370000 {
294 compatible = "fsl,sec-v4.0-mon", "simple-bus"; 528 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
295 #address-cells = <1>; 529 reg = <0x30370000 0x10000>;
296 #size-cells = <1>;
297 ranges = <0 0x30370000 0x10000>;
298 530
299 snvs-rtc-lp@34 { 531 snvs_rtc: snvs-rtc-lp {
300 compatible = "fsl,sec-v4.0-mon-rtc-lp"; 532 compatible = "fsl,sec-v4.0-mon-rtc-lp";
301 reg = <0x34 0x58>; 533 regmap = <&snvs>;
534 offset = <0x34>;
302 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>, 535 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
303 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 536 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
304 }; 537 };
538
539 snvs_poweroff: snvs-poweroff {
540 compatible = "syscon-poweroff";
541 regmap = <&snvs>;
542 offset = <0x38>;
543 mask = <0x60>;
544 };
545
546 snvs_pwrkey: snvs-powerkey {
547 compatible = "fsl,sec-v4.0-pwrkey";
548 regmap = <&snvs>;
549 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
550 linux,keycode = <KEY_POWER>;
551 wakeup-source;
552 };
305 }; 553 };
306 554
307 clks: ccm@30380000 { 555 clks: ccm@30380000 {
diff --git a/arch/arm/boot/dts/kirkwood-lswvl.dts b/arch/arm/boot/dts/kirkwood-lswvl.dts
new file mode 100644
index 000000000000..09eed3cea0af
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-lswvl.dts
@@ -0,0 +1,301 @@
1/*
2 * Device Tree file for Buffalo Linkstation LS-WVL/VL
3 *
4 * Copyright (C) 2015, rogershimizu@gmail.com
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12/dts-v1/;
13
14#include "kirkwood.dtsi"
15#include "kirkwood-6282.dtsi"
16
17/ {
18 model = "Buffalo Linkstation LS-WVL/VL";
19 compatible = "buffalo,lswvl", "buffalo,lsvl", "marvell,kirkwood-88f6282", "marvell,kirkwood";
20
21 memory { /* 256 MB */
22 device_type = "memory";
23 reg = <0x00000000 0x10000000>;
24 };
25
26 chosen {
27 bootargs = "console=ttyS0,115200n8 earlyprintk";
28 stdout-path = &uart0;
29 };
30
31 mbus {
32 pcie-controller {
33 status = "okay";
34 pcie@1,0 {
35 status = "okay";
36 };
37 };
38 };
39
40 ocp@f1000000 {
41 pinctrl: pin-controller@10000 {
42 pmx_power_hdd0: pmx-power-hdd0 {
43 marvell,pins = "mpp8";
44 marvell,function = "gpio";
45 };
46 pmx_power_hdd1: pmx-power-hdd1 {
47 marvell,pins = "mpp9";
48 marvell,function = "gpio";
49 };
50 pmx_usb_vbus: pmx-usb-vbus {
51 marvell,pins = "mpp12";
52 marvell,function = "gpio";
53 };
54 pmx_fan_high: pmx-fan-high {
55 marvell,pins = "mpp16";
56 marvell,function = "gpio";
57 };
58 pmx_fan_low: pmx-fan-low {
59 marvell,pins = "mpp17";
60 marvell,function = "gpio";
61 };
62 pmx_led_hdderr0: pmx-led-hdderr0 {
63 marvell,pins = "mpp34";
64 marvell,function = "gpio";
65 };
66 pmx_led_hdderr1: pmx-led-hdderr1 {
67 marvell,pins = "mpp35";
68 marvell,function = "gpio";
69 };
70 pmx_led_alarm: pmx-led-alarm {
71 marvell,pins = "mpp36";
72 marvell,function = "gpio";
73 };
74 pmx_led_function_red: pmx-led-function-red {
75 marvell,pins = "mpp37";
76 marvell,function = "gpio";
77 };
78 pmx_led_info: pmx-led-info {
79 marvell,pins = "mpp38";
80 marvell,function = "gpio";
81 };
82 pmx_led_function_blue: pmx-led-function-blue {
83 marvell,pins = "mpp39";
84 marvell,function = "gpio";
85 };
86 pmx_led_power: pmx-led-power {
87 marvell,pins = "mpp40";
88 marvell,function = "gpio";
89 };
90 pmx_fan_lock: pmx-fan-lock {
91 marvell,pins = "mpp43";
92 marvell,function = "gpio";
93 };
94 pmx_button_function: pmx-button-function {
95 marvell,pins = "mpp45";
96 marvell,function = "gpio";
97 };
98 pmx_power_switch: pmx-power-switch {
99 marvell,pins = "mpp46";
100 marvell,function = "gpio";
101 };
102 pmx_power_auto_switch: pmx-power-auto-switch {
103 marvell,pins = "mpp47";
104 marvell,function = "gpio";
105 };
106 };
107
108 serial@12000 {
109 status = "okay";
110 };
111
112 sata@80000 {
113 status = "okay";
114 nr-ports = <2>;
115 };
116
117 spi@10600 {
118 status = "okay";
119
120 m25p40@0 {
121 #address-cells = <1>;
122 #size-cells = <1>;
123 compatible = "st,m25p40", "jedec,spi-nor";
124 reg = <0>;
125 spi-max-frequency = <25000000>;
126 mode = <0>;
127
128 partition@0 {
129 reg = <0x0 0x60000>;
130 label = "uboot";
131 read-only;
132 };
133
134 partition@60000 {
135 reg = <0x60000 0x10000>;
136 label = "dtb";
137 read-only;
138 };
139
140 partition@70000 {
141 reg = <0x70000 0x10000>;
142 label = "uboot_env";
143 };
144 };
145 };
146 };
147
148 gpio_keys {
149 compatible = "gpio-keys";
150 #address-cells = <1>;
151 #size-cells = <0>;
152 pinctrl-0 = <&pmx_button_function &pmx_power_switch
153 &pmx_power_auto_switch>;
154 pinctrl-names = "default";
155
156 button@1 {
157 label = "Function Button";
158 linux,code = <KEY_OPTION>;
159 gpios = <&gpio0 45 GPIO_ACTIVE_LOW>;
160 };
161
162 button@2 {
163 label = "Power-on Switch";
164 linux,code = <KEY_RESERVED>;
165 linux,input-type = <5>;
166 gpios = <&gpio0 46 GPIO_ACTIVE_LOW>;
167 };
168
169 button@3 {
170 label = "Power-auto Switch";
171 linux,code = <KEY_ESC>;
172 linux,input-type = <5>;
173 gpios = <&gpio0 47 GPIO_ACTIVE_LOW>;
174 };
175 };
176
177 gpio_leds {
178 compatible = "gpio-leds";
179 pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
180 &pmx_led_info &pmx_led_power
181 &pmx_led_function_blue
182 &pmx_led_hdderr0
183 &pmx_led_hdderr1>;
184 pinctrl-names = "default";
185
186 led@1 {
187 label = "lswvl:red:alarm";
188 gpios = <&gpio0 36 GPIO_ACTIVE_LOW>;
189 };
190
191 led@2 {
192 label = "lswvl:red:func";
193 gpios = <&gpio0 37 GPIO_ACTIVE_LOW>;
194 };
195
196 led@3 {
197 label = "lswvl:amber:info";
198 gpios = <&gpio0 38 GPIO_ACTIVE_LOW>;
199 };
200
201 led@4 {
202 label = "lswvl:blue:func";
203 gpios = <&gpio0 39 GPIO_ACTIVE_LOW>;
204 };
205
206 led@5 {
207 label = "lswvl:blue:power";
208 gpios = <&gpio0 40 GPIO_ACTIVE_LOW>;
209 default-state = "keep";
210 };
211
212 led@6 {
213 label = "lswvl:red:hdderr0";
214 gpios = <&gpio0 34 GPIO_ACTIVE_LOW>;
215 };
216
217 led@7 {
218 label = "lswvl:red:hdderr1";
219 gpios = <&gpio0 35 GPIO_ACTIVE_LOW>;
220 };
221 };
222
223 gpio_fan {
224 compatible = "gpio-fan";
225 pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
226 pinctrl-names = "default";
227
228 gpios = <&gpio0 17 GPIO_ACTIVE_LOW
229 &gpio0 16 GPIO_ACTIVE_LOW>;
230
231 gpio-fan,speed-map = <0 3
232 1500 2
233 3250 1
234 5000 0>;
235
236 alarm-gpios = <&gpio0 43 GPIO_ACTIVE_HIGH>;
237 };
238
239 restart_poweroff {
240 compatible = "restart-poweroff";
241 };
242
243 regulators {
244 compatible = "simple-bus";
245 #address-cells = <1>;
246 #size-cells = <0>;
247 pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
248 pinctrl-names = "default";
249
250 usb_power: regulator@1 {
251 compatible = "regulator-fixed";
252 reg = <1>;
253 regulator-name = "USB Power";
254 regulator-min-microvolt = <5000000>;
255 regulator-max-microvolt = <5000000>;
256 enable-active-high;
257 regulator-always-on;
258 regulator-boot-on;
259 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
260 };
261 hdd_power0: regulator@2 {
262 compatible = "regulator-fixed";
263 reg = <2>;
264 regulator-name = "HDD0 Power";
265 regulator-min-microvolt = <5000000>;
266 regulator-max-microvolt = <5000000>;
267 enable-active-high;
268 regulator-always-on;
269 regulator-boot-on;
270 gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
271 };
272 hdd_power1: regulator@3 {
273 compatible = "regulator-fixed";
274 reg = <3>;
275 regulator-name = "HDD1 Power";
276 regulator-min-microvolt = <5000000>;
277 regulator-max-microvolt = <5000000>;
278 enable-active-high;
279 regulator-always-on;
280 regulator-boot-on;
281 gpio = <&gpio0 9 GPIO_ACTIVE_HIGH>;
282 };
283 };
284};
285
286&mdio {
287 status = "okay";
288
289 ethphy0: ethernet-phy@0 {
290 device_type = "ethernet-phy";
291 reg = <0>;
292 };
293};
294
295&eth0 {
296 status = "okay";
297
298 ethernet0-port@0 {
299 phy-handle = <&ethphy0>;
300 };
301};
diff --git a/arch/arm/boot/dts/kirkwood-lswxl.dts b/arch/arm/boot/dts/kirkwood-lswxl.dts
new file mode 100644
index 000000000000..f5db16a08597
--- /dev/null
+++ b/arch/arm/boot/dts/kirkwood-lswxl.dts
@@ -0,0 +1,301 @@
1/*
2 * Device Tree file for Buffalo Linkstation LS-WXL/WSXL
3 *
4 * Copyright (C) 2015, rogershimizu@gmail.com
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version
9 * 2 of the License, or (at your option) any later version.
10 */
11
12/dts-v1/;
13
14#include "kirkwood.dtsi"
15#include "kirkwood-6281.dtsi"
16
17/ {
18 model = "Buffalo Linkstation LS-WXL/WSXL";
19 compatible = "buffalo,lswxl", "marvell,kirkwood-88f6281", "marvell,kirkwood";
20
21 memory { /* 128 MB */
22 device_type = "memory";
23 reg = <0x00000000 0x8000000>;
24 };
25
26 chosen {
27 bootargs = "console=ttyS0,115200n8 earlyprintk";
28 stdout-path = &uart0;
29 };
30
31 mbus {
32 pcie-controller {
33 status = "okay";
34 pcie@1,0 {
35 status = "okay";
36 };
37 };
38 };
39
40 ocp@f1000000 {
41 pinctrl: pin-controller@10000 {
42 pmx_power_hdd0: pmx-power-hdd0 {
43 marvell,pins = "mpp28";
44 marvell,function = "gpio";
45 };
46 pmx_power_hdd1: pmx-power-hdd1 {
47 marvell,pins = "mpp29";
48 marvell,function = "gpio";
49 };
50 pmx_usb_vbus: pmx-usb-vbus {
51 marvell,pins = "mpp37";
52 marvell,function = "gpio";
53 };
54 pmx_fan_high: pmx-fan-high {
55 marvell,pins = "mpp47";
56 marvell,function = "gpio";
57 };
58 pmx_fan_low: pmx-fan-low {
59 marvell,pins = "mpp48";
60 marvell,function = "gpio";
61 };
62 pmx_led_hdderr0: pmx-led-hdderr0 {
63 marvell,pins = "mpp8";
64 marvell,function = "gpio";
65 };
66 pmx_led_hdderr1: pmx-led-hdderr1 {
67 marvell,pins = "mpp46";
68 marvell,function = "gpio";
69 };
70 pmx_led_alarm: pmx-led-alarm {
71 marvell,pins = "mpp49";
72 marvell,function = "gpio";
73 };
74 pmx_led_function_red: pmx-led-function-red {
75 marvell,pins = "mpp34";
76 marvell,function = "gpio";
77 };
78 pmx_led_function_blue: pmx-led-function-blue {
79 marvell,pins = "mpp36";
80 marvell,function = "gpio";
81 };
82 pmx_led_info: pmx-led-info {
83 marvell,pins = "mpp38";
84 marvell,function = "gpio";
85 };
86 pmx_led_power: pmx-led-power {
87 marvell,pins = "mpp39";
88 marvell,function = "gpio";
89 };
90 pmx_fan_lock: pmx-fan-lock {
91 marvell,pins = "mpp40";
92 marvell,function = "gpio";
93 };
94 pmx_button_function: pmx-button-function {
95 marvell,pins = "mpp41";
96 marvell,function = "gpio";
97 };
98 pmx_power_switch: pmx-power-switch {
99 marvell,pins = "mpp42";
100 marvell,function = "gpio";
101 };
102 pmx_power_auto_switch: pmx-power-auto-switch {
103 marvell,pins = "mpp43";
104 marvell,function = "gpio";
105 };
106 };
107
108 serial@12000 {
109 status = "okay";
110 };
111
112 sata@80000 {
113 status = "okay";
114 nr-ports = <2>;
115 };
116
117 spi@10600 {
118 status = "okay";
119
120 m25p40@0 {
121 #address-cells = <1>;
122 #size-cells = <1>;
123 compatible = "st,m25p40", "jedec,spi-nor";
124 reg = <0>;
125 spi-max-frequency = <25000000>;
126 mode = <0>;
127
128 partition@0 {
129 reg = <0x0 0x60000>;
130 label = "uboot";
131 read-only;
132 };
133
134 partition@60000 {
135 reg = <0x60000 0x10000>;
136 label = "dtb";
137 read-only;
138 };
139
140 partition@70000 {
141 reg = <0x70000 0x10000>;
142 label = "uboot_env";
143 };
144 };
145 };
146 };
147
148 gpio_keys {
149 compatible = "gpio-keys";
150 #address-cells = <1>;
151 #size-cells = <0>;
152 pinctrl-0 = <&pmx_button_function &pmx_power_switch
153 &pmx_power_auto_switch>;
154 pinctrl-names = "default";
155
156 button@1 {
157 label = "Function Button";
158 linux,code = <KEY_OPTION>;
159 gpios = <&gpio1 41 GPIO_ACTIVE_LOW>;
160 };
161
162 button@2 {
163 label = "Power-on Switch";
164 linux,code = <KEY_RESERVED>;
165 linux,input-type = <5>;
166 gpios = <&gpio1 42 GPIO_ACTIVE_LOW>;
167 };
168
169 button@3 {
170 label = "Power-auto Switch";
171 linux,code = <KEY_ESC>;
172 linux,input-type = <5>;
173 gpios = <&gpio1 43 GPIO_ACTIVE_LOW>;
174 };
175 };
176
177 gpio_leds {
178 compatible = "gpio-leds";
179 pinctrl-0 = <&pmx_led_function_red &pmx_led_alarm
180 &pmx_led_info &pmx_led_power
181 &pmx_led_function_blue
182 &pmx_led_hdderr0
183 &pmx_led_hdderr1>;
184 pinctrl-names = "default";
185
186 led@1 {
187 label = "lswxl:blue:func";
188 gpios = <&gpio1 36 GPIO_ACTIVE_LOW>;
189 };
190
191 led@2 {
192 label = "lswxl:red:alarm";
193 gpios = <&gpio1 49 GPIO_ACTIVE_LOW>;
194 };
195
196 led@3 {
197 label = "lswxl:amber:info";
198 gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
199 };
200
201 led@4 {
202 label = "lswxl:blue:power";
203 gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
204 };
205
206 led@5 {
207 label = "lswxl:red:func";
208 gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
209 default-state = "keep";
210 };
211
212 led@6 {
213 label = "lswxl:red:hdderr0";
214 gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
215 };
216
217 led@7 {
218 label = "lswxl:red:hdderr1";
219 gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
220 };
221 };
222
223 gpio_fan {
224 compatible = "gpio-fan";
225 pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
226 pinctrl-names = "default";
227
228 gpios = <&gpio0 47 GPIO_ACTIVE_LOW
229 &gpio0 48 GPIO_ACTIVE_LOW>;
230
231 gpio-fan,speed-map = <0 3
232 1500 2
233 3250 1
234 5000 0>;
235
236 alarm-gpios = <&gpio1 49 GPIO_ACTIVE_HIGH>;
237 };
238
239 restart_poweroff {
240 compatible = "restart-poweroff";
241 };
242
243 regulators {
244 compatible = "simple-bus";
245 #address-cells = <1>;
246 #size-cells = <0>;
247 pinctrl-0 = <&pmx_power_hdd0 &pmx_power_hdd1 &pmx_usb_vbus>;
248 pinctrl-names = "default";
249
250 usb_power: regulator@1 {
251 compatible = "regulator-fixed";
252 reg = <1>;
253 regulator-name = "USB Power";
254 regulator-min-microvolt = <5000000>;
255 regulator-max-microvolt = <5000000>;
256 enable-active-high;
257 regulator-always-on;
258 regulator-boot-on;
259 gpio = <&gpio0 37 GPIO_ACTIVE_HIGH>;
260 };
261 hdd_power0: regulator@2 {
262 compatible = "regulator-fixed";
263 reg = <2>;
264 regulator-name = "HDD0 Power";
265 regulator-min-microvolt = <5000000>;
266 regulator-max-microvolt = <5000000>;
267 enable-active-high;
268 regulator-always-on;
269 regulator-boot-on;
270 gpio = <&gpio0 28 GPIO_ACTIVE_HIGH>;
271 };
272 hdd_power1: regulator@3 {
273 compatible = "regulator-fixed";
274 reg = <3>;
275 regulator-name = "HDD1 Power";
276 regulator-min-microvolt = <5000000>;
277 regulator-max-microvolt = <5000000>;
278 enable-active-high;
279 regulator-always-on;
280 regulator-boot-on;
281 gpio = <&gpio0 29 GPIO_ACTIVE_HIGH>;
282 };
283 };
284};
285
286&mdio {
287 status = "okay";
288
289 ethphy1: ethernet-phy@8 {
290 device_type = "ethernet-phy";
291 reg = <8>;
292 };
293};
294
295&eth1 {
296 status = "okay";
297
298 ethernet1-port@0 {
299 phy-handle = <&ethphy1>;
300 };
301};
diff --git a/arch/arm/boot/dts/lpc18xx.dtsi b/arch/arm/boot/dts/lpc18xx.dtsi
index 204da5b52ef9..2c569a6ddc9a 100644
--- a/arch/arm/boot/dts/lpc18xx.dtsi
+++ b/arch/arm/boot/dts/lpc18xx.dtsi
@@ -13,6 +13,12 @@
13 13
14#include "armv7-m.dtsi" 14#include "armv7-m.dtsi"
15 15
16#include "dt-bindings/clock/lpc18xx-cgu.h"
17#include "dt-bindings/clock/lpc18xx-ccu.h"
18
19#define LPC_PIN(port, pin) (0x##port * 32 + pin)
20#define LPC_GPIO(port, pin) (port * 32 + pin)
21
16/ { 22/ {
17 cpus { 23 cpus {
18 #address-cells = <1>; 24 #address-cells = <1>;
@@ -22,6 +28,7 @@
22 compatible = "arm,cortex-m3"; 28 compatible = "arm,cortex-m3";
23 device_type = "cpu"; 29 device_type = "cpu";
24 reg = <0x0>; 30 reg = <0x0>;
31 clocks = <&ccu1 CLK_CPU_CORE>;
25 }; 32 };
26 }; 33 };
27 34
@@ -32,32 +39,173 @@
32 clock-frequency = <12000000>; 39 clock-frequency = <12000000>;
33 }; 40 };
34 41
35 /* Temporary hardcode PLL1 until clk drivers are merged */ 42 xtal32: xtal32 {
36 pll1: pll1 { 43 compatible = "fixed-clock";
37 compatible = "fixed-factor-clock"; 44 #clock-cells = <0>;
38 clocks = <&xtal>; 45 clock-frequency = <32768>;
46 };
47
48 enet_rx_clk: enet_rx_clk {
49 compatible = "fixed-clock";
50 #clock-cells = <0>;
51 clock-frequency = <0>;
52 clock-output-names = "enet_rx_clk";
53 };
54
55 enet_tx_clk: enet_tx_clk {
56 compatible = "fixed-clock";
57 #clock-cells = <0>;
58 clock-frequency = <0>;
59 clock-output-names = "enet_tx_clk";
60 };
61
62 gp_clkin: gp_clkin {
63 compatible = "fixed-clock";
39 #clock-cells = <0>; 64 #clock-cells = <0>;
40 clock-div = <1>; 65 clock-frequency = <0>;
41 clock-mult = <12>; 66 clock-output-names = "gp_clkin";
42 }; 67 };
43 }; 68 };
44 69
45 soc { 70 soc {
71 mmcsd: mmcsd@40004000 {
72 compatible = "snps,dw-mshc";
73 reg = <0x40004000 0x1000>;
74 interrupts = <6>;
75 num-slots = <1>;
76 clocks = <&ccu2 CLK_SDIO>, <&ccu1 CLK_CPU_SDIO>;
77 clock-names = "ciu", "biu";
78 status = "disabled";
79 };
80
81 usb0: ehci@40006100 {
82 compatible = "nxp,lpc1850-ehci", "generic-ehci";
83 reg = <0x40006100 0x100>;
84 interrupts = <8>;
85 clocks = <&ccu1 CLK_CPU_USB0>;
86 phys = <&usb0_otg_phy>;
87 phy-names = "usb";
88 has-transaction-translator;
89 status = "disabled";
90 };
91
92 usb1: ehci@40007100 {
93 compatible = "nxp,lpc1850-ehci", "generic-ehci";
94 reg = <0x40007100 0x100>;
95 interrupts = <9>;
96 clocks = <&ccu1 CLK_CPU_USB1>;
97 status = "disabled";
98 };
99
100 emc: memory-controller@40005000 {
101 compatible = "arm,pl172", "arm,primecell";
102 reg = <0x40005000 0x1000>;
103 clocks = <&ccu1 CLK_CPU_EMCDIV>, <&ccu1 CLK_CPU_EMC>;
104 clock-names = "mpmcclk", "apb_pclk";
105 #address-cells = <2>;
106 #size-cells = <1>;
107 ranges = <0 0 0x1c000000 0x1000000
108 1 0 0x1d000000 0x1000000
109 2 0 0x1e000000 0x1000000
110 3 0 0x1f000000 0x1000000>;
111 status = "disabled";
112 };
113
114 lcdc: lcd-controller@40008000 {
115 compatible = "arm,pl111", "arm,primecell";
116 reg = <0x40008000 0x1000>;
117 interrupts = <7>;
118 interrupt-names = "combined";
119 clocks = <&cgu BASE_LCD_CLK>, <&ccu1 CLK_CPU_LCD>;
120 clock-names = "clcdclk", "apb_pclk";
121 status = "disabled";
122 };
123
124 mac: ethernet@40010000 {
125 compatible = "nxp,lpc1850-dwmac", "snps,dwmac-3.611", "snps,dwmac";
126 reg = <0x40010000 0x2000>;
127 interrupts = <5>;
128 interrupt-names = "macirq";
129 clocks = <&ccu1 CLK_CPU_ETHERNET>;
130 clock-names = "stmmaceth";
131 status = "disabled";
132 };
133
134 creg: syscon@40043000 {
135 compatible = "nxp,lpc1850-creg", "syscon", "simple-mfd";
136 reg = <0x40043000 0x1000>;
137 clocks = <&ccu1 CLK_CPU_CREG>;
138
139 usb0_otg_phy: phy@004 {
140 compatible = "nxp,lpc1850-usb-otg-phy";
141 clocks = <&ccu1 CLK_USB0>;
142 #phy-cells = <0>;
143 };
144 };
145
146 cgu: clock-controller@40050000 {
147 compatible = "nxp,lpc1850-cgu";
148 reg = <0x40050000 0x1000>;
149 #clock-cells = <1>;
150 clocks = <&xtal>, <&xtal32>, <&enet_rx_clk>, <&enet_tx_clk>, <&gp_clkin>;
151 };
152
153 ccu1: clock-controller@40051000 {
154 compatible = "nxp,lpc1850-ccu";
155 reg = <0x40051000 0x1000>;
156 #clock-cells = <1>;
157 clocks = <&cgu BASE_APB3_CLK>, <&cgu BASE_APB1_CLK>,
158 <&cgu BASE_SPIFI_CLK>, <&cgu BASE_CPU_CLK>,
159 <&cgu BASE_PERIPH_CLK>, <&cgu BASE_USB0_CLK>,
160 <&cgu BASE_USB1_CLK>, <&cgu BASE_SPI_CLK>;
161 clock-names = "base_apb3_clk", "base_apb1_clk",
162 "base_spifi_clk", "base_cpu_clk",
163 "base_periph_clk", "base_usb0_clk",
164 "base_usb1_clk", "base_spi_clk";
165 };
166
167 ccu2: clock-controller@40052000 {
168 compatible = "nxp,lpc1850-ccu";
169 reg = <0x40052000 0x1000>;
170 #clock-cells = <1>;
171 clocks = <&cgu BASE_AUDIO_CLK>, <&cgu BASE_UART3_CLK>,
172 <&cgu BASE_UART2_CLK>, <&cgu BASE_UART1_CLK>,
173 <&cgu BASE_UART0_CLK>, <&cgu BASE_SSP1_CLK>,
174 <&cgu BASE_SSP0_CLK>, <&cgu BASE_SDIO_CLK>;
175 clock-names = "base_audio_clk", "base_uart3_clk",
176 "base_uart2_clk", "base_uart1_clk",
177 "base_uart0_clk", "base_ssp1_clk",
178 "base_ssp0_clk", "base_sdio_clk";
179 };
180
46 uart0: serial@40081000 { 181 uart0: serial@40081000 {
47 compatible = "ns16550a"; 182 compatible = "nxp,lpc1850-uart", "ns16550a";
48 reg = <0x40081000 0x1000>; 183 reg = <0x40081000 0x1000>;
49 reg-shift = <2>; 184 reg-shift = <2>;
50 interrupts = <24>; 185 interrupts = <24>;
51 clocks = <&pll1>; 186 clocks = <&ccu2 CLK_APB0_UART0>, <&ccu1 CLK_CPU_UART0>;
187 clock-names = "uartclk", "reg";
52 status = "disabled"; 188 status = "disabled";
53 }; 189 };
54 190
55 uart1: serial@40082000 { 191 uart1: serial@40082000 {
56 compatible = "ns16550a"; 192 compatible = "nxp,lpc1850-uart", "ns16550a";
57 reg = <0x40082000 0x1000>; 193 reg = <0x40082000 0x1000>;
58 reg-shift = <2>; 194 reg-shift = <2>;
59 interrupts = <25>; 195 interrupts = <25>;
60 clocks = <&pll1>; 196 clocks = <&ccu2 CLK_APB0_UART1>, <&ccu1 CLK_CPU_UART1>;
197 clock-names = "uartclk", "reg";
198 status = "disabled";
199 };
200
201 ssp0: spi@40083000 {
202 compatible = "arm,pl022", "arm,primecell";
203 reg = <0x40083000 0x1000>;
204 interrupts = <22>;
205 clocks = <&ccu2 CLK_APB0_SSP0>, <&ccu1 CLK_CPU_SSP0>;
206 clock-names = "sspclk", "apb_pclk";
207 #address-cells = <1>;
208 #size-cells = <0>;
61 status = "disabled"; 209 status = "disabled";
62 }; 210 };
63 211
@@ -65,7 +213,7 @@
65 compatible = "nxp,lpc3220-timer"; 213 compatible = "nxp,lpc3220-timer";
66 reg = <0x40084000 0x1000>; 214 reg = <0x40084000 0x1000>;
67 interrupts = <12>; 215 interrupts = <12>;
68 clocks = <&pll1>; 216 clocks = <&ccu1 CLK_CPU_TIMER0>;
69 clock-names = "timerclk"; 217 clock-names = "timerclk";
70 }; 218 };
71 219
@@ -73,25 +221,41 @@
73 compatible = "nxp,lpc3220-timer"; 221 compatible = "nxp,lpc3220-timer";
74 reg = <0x40085000 0x1000>; 222 reg = <0x40085000 0x1000>;
75 interrupts = <13>; 223 interrupts = <13>;
76 clocks = <&pll1>; 224 clocks = <&ccu1 CLK_CPU_TIMER1>;
77 clock-names = "timerclk"; 225 clock-names = "timerclk";
78 }; 226 };
79 227
228 pinctrl: pinctrl@40086000 {
229 compatible = "nxp,lpc1850-scu";
230 reg = <0x40086000 0x1000>;
231 clocks = <&ccu1 CLK_CPU_SCU>;
232 };
233
234 can1: can@400a4000 {
235 compatible = "bosch,c_can";
236 reg = <0x400a4000 0x1000>;
237 interrupts = <43>;
238 clocks = <&ccu1 CLK_APB1_CAN1>;
239 status = "disabled";
240 };
241
80 uart2: serial@400c1000 { 242 uart2: serial@400c1000 {
81 compatible = "ns16550a"; 243 compatible = "nxp,lpc1850-uart", "ns16550a";
82 reg = <0x400c1000 0x1000>; 244 reg = <0x400c1000 0x1000>;
83 reg-shift = <2>; 245 reg-shift = <2>;
84 interrupts = <26>; 246 interrupts = <26>;
85 clocks = <&pll1>; 247 clocks = <&ccu2 CLK_APB2_UART2>, <&ccu1 CLK_CPU_UART2>;
248 clock-names = "uartclk", "reg";
86 status = "disabled"; 249 status = "disabled";
87 }; 250 };
88 251
89 uart3: serial@400c2000 { 252 uart3: serial@400c2000 {
90 compatible = "ns16550a"; 253 compatible = "nxp,lpc1850-uart", "ns16550a";
91 reg = <0x400c2000 0x1000>; 254 reg = <0x400c2000 0x1000>;
92 reg-shift = <2>; 255 reg-shift = <2>;
93 interrupts = <27>; 256 interrupts = <27>;
94 clocks = <&pll1>; 257 clocks = <&ccu2 CLK_APB2_UART3>, <&ccu1 CLK_CPU_UART3>;
258 clock-names = "uartclk", "reg";
95 status = "disabled"; 259 status = "disabled";
96 }; 260 };
97 261
@@ -99,7 +263,7 @@
99 compatible = "nxp,lpc3220-timer"; 263 compatible = "nxp,lpc3220-timer";
100 reg = <0x400c3000 0x1000>; 264 reg = <0x400c3000 0x1000>;
101 interrupts = <14>; 265 interrupts = <14>;
102 clocks = <&pll1>; 266 clocks = <&ccu1 CLK_CPU_TIMER2>;
103 clock-names = "timerclk"; 267 clock-names = "timerclk";
104 }; 268 };
105 269
@@ -107,8 +271,75 @@
107 compatible = "nxp,lpc3220-timer"; 271 compatible = "nxp,lpc3220-timer";
108 reg = <0x400c4000 0x1000>; 272 reg = <0x400c4000 0x1000>;
109 interrupts = <15>; 273 interrupts = <15>;
110 clocks = <&pll1>; 274 clocks = <&ccu1 CLK_CPU_TIMER3>;
111 clock-names = "timerclk"; 275 clock-names = "timerclk";
112 }; 276 };
277
278 ssp1: spi@400c5000 {
279 compatible = "arm,pl022", "arm,primecell";
280 reg = <0x400c5000 0x1000>;
281 interrupts = <23>;
282 clocks = <&ccu2 CLK_APB2_SSP1>, <&ccu1 CLK_CPU_SSP1>;
283 clock-names = "sspclk", "apb_pclk";
284 #address-cells = <1>;
285 #size-cells = <0>;
286 status = "disabled";
287 };
288
289 can0: can@400e2000 {
290 compatible = "bosch,c_can";
291 reg = <0x400e2000 0x1000>;
292 interrupts = <51>;
293 clocks = <&ccu1 CLK_APB3_CAN0>;
294 status = "disabled";
295 };
296
297 gpio: gpio@400f4000 {
298 compatible = "nxp,lpc1850-gpio";
299 reg = <0x400f4000 0x4000>;
300 clocks = <&ccu1 CLK_CPU_GPIO>;
301 gpio-controller;
302 #gpio-cells = <2>;
303 gpio-ranges = <&pinctrl LPC_GPIO(0,0) LPC_PIN(0,0) 2>,
304 <&pinctrl LPC_GPIO(0,4) LPC_PIN(1,0) 1>,
305 <&pinctrl LPC_GPIO(0,8) LPC_PIN(1,1) 4>,
306 <&pinctrl LPC_GPIO(1,8) LPC_PIN(1,5) 2>,
307 <&pinctrl LPC_GPIO(1,0) LPC_PIN(1,7) 8>,
308 <&pinctrl LPC_GPIO(0,2) LPC_PIN(1,15) 2>,
309 <&pinctrl LPC_GPIO(0,12) LPC_PIN(1,17) 2>,
310 <&pinctrl LPC_GPIO(0,15) LPC_PIN(1,20) 1>,
311 <&pinctrl LPC_GPIO(5,0) LPC_PIN(2,0) 7>,
312 <&pinctrl LPC_GPIO(0,7) LPC_PIN(2,7) 1>,
313 <&pinctrl LPC_GPIO(5,7) LPC_PIN(2,8) 1>,
314 <&pinctrl LPC_GPIO(1,10) LPC_PIN(2,9) 1>,
315 <&pinctrl LPC_GPIO(0,14) LPC_PIN(2,10) 1>,
316 <&pinctrl LPC_GPIO(1,11) LPC_PIN(2,11) 3>,
317 <&pinctrl LPC_GPIO(5,8) LPC_PIN(3,1) 2>,
318 <&pinctrl LPC_GPIO(1,14) LPC_PIN(3,4) 2>,
319 <&pinctrl LPC_GPIO(0,6) LPC_PIN(3,6) 1>,
320 <&pinctrl LPC_GPIO(5,10) LPC_PIN(3,7) 2>,
321 <&pinctrl LPC_GPIO(2,0) LPC_PIN(4,0) 7>,
322 <&pinctrl LPC_GPIO(5,12) LPC_PIN(4,8) 3>,
323 <&pinctrl LPC_GPIO(2,9) LPC_PIN(5,0) 7>,
324 <&pinctrl LPC_GPIO(2,7) LPC_PIN(5,7) 1>,
325 <&pinctrl LPC_GPIO(3,0) LPC_PIN(6,1) 5>,
326 <&pinctrl LPC_GPIO(0,5) LPC_PIN(6,6) 1>,
327 <&pinctrl LPC_GPIO(5,15) LPC_PIN(6,7) 2>,
328 <&pinctrl LPC_GPIO(3,5) LPC_PIN(6,9) 3>,
329 <&pinctrl LPC_GPIO(2,8) LPC_PIN(6,12) 1>,
330 <&pinctrl LPC_GPIO(3,8) LPC_PIN(7,0) 8>,
331 <&pinctrl LPC_GPIO(4,0) LPC_PIN(8,0) 8>,
332 <&pinctrl LPC_GPIO(4,12) LPC_PIN(9,0) 4>,
333 <&pinctrl LPC_GPIO(5,17) LPC_PIN(9,4) 2>,
334 <&pinctrl LPC_GPIO(4,11) LPC_PIN(9,6) 1>,
335 <&pinctrl LPC_GPIO(4,8) LPC_PIN(a,1) 3>,
336 <&pinctrl LPC_GPIO(5,19) LPC_PIN(a,4) 1>,
337 <&pinctrl LPC_GPIO(5,20) LPC_PIN(b,0) 7>,
338 <&pinctrl LPC_GPIO(6,0) LPC_PIN(c,1) 14>,
339 <&pinctrl LPC_GPIO(6,14) LPC_PIN(d,0) 17>,
340 <&pinctrl LPC_GPIO(7,0) LPC_PIN(e,0) 16>,
341 <&pinctrl LPC_GPIO(7,16) LPC_PIN(f,1) 3>,
342 <&pinctrl LPC_GPIO(7,19) LPC_PIN(f,5) 7>;
343 };
113 }; 344 };
114}; 345};
diff --git a/arch/arm/boot/dts/lpc4337-ciaa.dts b/arch/arm/boot/dts/lpc4337-ciaa.dts
new file mode 100644
index 000000000000..5f500c1ad89c
--- /dev/null
+++ b/arch/arm/boot/dts/lpc4337-ciaa.dts
@@ -0,0 +1,187 @@
1/*
2 * CIAA NXP LPC4337 (http://www.proyecto-ciaa.com.ar)
3 *
4 * Copyright (C) 2015 VanguardiaSur - www.vanguardiasur.com.ar
5 *
6 * This code is released using a dual license strategy: BSD/GPL
7 * You can choose the licence that better fits your requirements.
8 *
9 * Released under the terms of 3-clause BSD License
10 * Released under the terms of GNU General Public License Version 2.0
11 */
12/dts-v1/;
13
14#include "lpc18xx.dtsi"
15#include "lpc4357.dtsi"
16
17#include "dt-bindings/gpio/gpio.h"
18
19/ {
20 model = "CIAA NXP LPC4337";
21 compatible = "ciaa,lpc4337", "nxp,lpc4337", "nxp,lpc4350";
22
23 aliases {
24 serial0 = &uart2;
25 serial1 = &uart3;
26 };
27
28 chosen {
29 bootargs = "console=ttyS0,115200 earlyprintk";
30 stdout-path = &uart2;
31 };
32
33 memory {
34 device_type = "memory";
35 reg = <0x28000000 0x0800000>; /* 8 MB */
36 };
37};
38
39&pinctrl {
40 enet_rmii_pins: enet-rmii-pins {
41 enet_rmii_rxd_cfg {
42 pins = "p1_15", "p0_0";
43 function = "enet";
44 slew-rate = <1>;
45 bias-disable;
46 input-enable;
47 input-schmitt-disable;
48 };
49
50 enet_rmii_txd_cfg {
51 pins = "p1_18", "p1_20";
52 function = "enet";
53 slew-rate = <1>;
54 bias-disable;
55 input-enable;
56 input-schmitt-disable;
57 };
58
59 enet_rmii_rx_dv_cfg {
60 pins = "p1_16";
61 function = "enet";
62 bias-disable;
63 input-enable;
64 input-schmitt-disable;
65 };
66
67 enet_rmii_tx_en_cfg {
68 pins = "p0_1";
69 function = "enet";
70 bias-disable;
71 input-enable;
72 input-schmitt-disable;
73 };
74
75 enet_ref_clk_cfg {
76 pins = "p1_19";
77 function = "enet";
78 slew-rate = <1>;
79 bias-disable;
80 input-enable;
81 input-schmitt-disable;
82 };
83
84 enet_mdio_cfg {
85 pins = "p1_17";
86 function = "enet";
87 bias-disable;
88 input-enable;
89 input-schmitt-disable;
90 };
91
92 enet_mdc_cfg {
93 pins = "p7_7";
94 function = "enet";
95 slew-rate = <1>;
96 bias-disable;
97 input-enable;
98 input-schmitt-disable;
99 };
100 };
101
102 ssp_pins: ssp-pins {
103 ssp1_cs {
104 pins = "p6_7";
105 function = "gpio";
106 bias-pull-up;
107 bias-disable;
108 };
109
110 ssp1_miso_mosi {
111 pins = "p1_3", "p1_4";
112 function = "ssp1";
113 slew-rate = <1>;
114 bias-pull-down;
115 input-enable;
116 input-schmitt-disable;
117 };
118
119 ssp1_sck {
120 pins = "pf_4";
121 function = "ssp1";
122 slew-rate = <1>;
123 bias-disable;
124 };
125 };
126
127 uart2_pins: uart2-pins {
128 uart2_rx_cfg {
129 pins = "p7_2";
130 function = "uart2";
131 bias-disable;
132 input-enable;
133 };
134
135 uart2_tx_cfg {
136 pins = "p7_1";
137 function = "uart2";
138 bias-disable;
139 };
140 };
141
142 uart3_pins: uart3-pins {
143 uart3_rx_cfg {
144 pins = "p2_4";
145 function = "uart3";
146 bias-disable;
147 input-enable;
148 };
149
150 uart3_tx_cfg {
151 pins = "p2_3";
152 function = "uart3";
153 bias-disable;
154 };
155 };
156};
157
158&enet_tx_clk {
159 clock-frequency = <50000000>;
160};
161
162&mac {
163 status = "okay";
164 phy-mode = "rmii";
165 pinctrl-names = "default";
166 pinctrl-0 = <&enet_rmii_pins>;
167};
168
169&ssp1 {
170 status = "okay";
171 pinctrl-names = "default";
172 pinctrl-0 = <&ssp_pins>;
173 cs-gpios = <&gpio LPC_GPIO(5,15) GPIO_ACTIVE_HIGH>;
174 num-cs = <1>;
175};
176
177&uart2 {
178 status = "okay";
179 pinctrl-names = "default";
180 pinctrl-0 = <&uart2_pins>;
181};
182
183&uart3 {
184 status = "okay";
185 pinctrl-names = "default";
186 pinctrl-0 = <&uart3_pins>;
187};
diff --git a/arch/arm/boot/dts/lpc4350-hitex-eval.dts b/arch/arm/boot/dts/lpc4350-hitex-eval.dts
index d04072f40817..32bc7ff4eb2a 100644
--- a/arch/arm/boot/dts/lpc4350-hitex-eval.dts
+++ b/arch/arm/boot/dts/lpc4350-hitex-eval.dts
@@ -36,10 +36,250 @@
36 }; 36 };
37}; 37};
38 38
39&pll1 { 39&pinctrl {
40 clock-mult = <15>; 40 emc_pins: emc-pins {
41 emc_addr0_23_cfg {
42 pins = "p2_9", "p2_10", "p2_11", "p2_12",
43 "p2_13", "p1_0", "p1_1", "p1_2",
44 "p2_8", "p2_7", "p2_6", "p2_2",
45 "p2_1", "p2_0", "p6_8", "p6_7",
46 "pd_16", "pd_15", "pe_0", "pe_1",
47 "pe_2", "pe_3", "pe_4", "pa_4";
48 function = "emc";
49 slew-rate = <1>;
50 bias-disable;
51 input-enable;
52 input-schmitt-disable;
53 };
54
55 emc_data0_15_cfg {
56 pins = "p1_7", "p1_8", "p1_9", "p1_10",
57 "p1_11", "p1_12", "p1_13", "p1_14",
58 "p5_4", "p5_5", "p5_6", "p5_7",
59 "p5_0", "p5_1", "p5_2", "p5_3";
60 function = "emc";
61 slew-rate = <1>;
62 bias-disable;
63 input-enable;
64 input-schmitt-disable;
65 };
66
67 emc_we_oe_cfg {
68 pins = "p1_6", "p1_3";
69 function = "emc";
70 slew-rate = <1>;
71 bias-disable;
72 input-enable;
73 input-schmitt-disable;
74 };
75
76 emc_bls0_3_cfg {
77 pins = "p1_4", "p6_6", "pd_13", "pd_10";
78 function = "emc";
79 slew-rate = <1>;
80 bias-disable;
81 input-enable;
82 input-schmitt-disable;
83 };
84
85 emc_cs0_cs2_cfg {
86 pins = "p1_5", "pd_12";
87 function = "emc";
88 slew-rate = <1>;
89 bias-disable;
90 input-enable;
91 input-schmitt-disable;
92 };
93
94 emc_sdram_dqm0_3_cfg {
95 pins = "p6_12", "p6_10", "pd_0", "pe_13";
96 function = "emc";
97 slew-rate = <1>;
98 bias-disable;
99 input-enable;
100 input-schmitt-disable;
101 };
102
103 emc_sdram_ras_cas_cfg {
104 pins = "p6_5", "p6_4";
105 function = "emc";
106 slew-rate = <1>;
107 bias-disable;
108 input-enable;
109 input-schmitt-disable;
110 };
111
112 emc_sdram_dycs0_cfg {
113 pins = "p6_9";
114 function = "emc";
115 slew-rate = <1>;
116 bias-disable;
117 input-enable;
118 input-schmitt-disable;
119 };
120
121 emc_sdram_cke_cfg {
122 pins = "p6_11";
123 function = "emc";
124 slew-rate = <1>;
125 bias-disable;
126 input-enable;
127 input-schmitt-disable;
128 };
129
130 emc_sdram_clock_cfg {
131 pins = "clk0", "clk1", "clk2", "clk3";
132 function = "emc";
133 slew-rate = <1>;
134 bias-disable;
135 input-enable;
136 input-schmitt-disable;
137 };
138 };
139
140 enet_mii_pins: enet-mii-pins {
141 enet_mii_rxd0_3_cfg {
142 pins = "p1_15", "p0_0", "p9_3", "p9_2";
143 function = "enet";
144 bias-disable;
145 input-enable;
146 };
147
148 enet_mii_txd0_3_cfg {
149 pins = "p1_18", "p1_20", "p9_4", "p9_5";
150 function = "enet";
151 bias-disable;
152 };
153
154 enet_mii_crs_col_cfg {
155 pins = "p9_0", "p9_6";
156 function = "enet";
157 bias-disable;
158 input-enable;
159 };
160
161 enet_mii_rx_clk_dv_er_cfg {
162 pins = "pc_0", "p1_16", "p9_1";
163 function = "enet";
164 bias-disable;
165 input-enable;
166 };
167
168 enet_mii_tx_clk_en_cfg {
169 pins = "p1_19", "p0_1";
170 function = "enet";
171 bias-disable;
172 input-enable;
173 };
174
175 enet_mdio_cfg {
176 pins = "p1_17";
177 function = "enet";
178 bias-disable;
179 input-enable;
180 };
181
182 enet_mdc_cfg {
183 pins = "pc_1";
184 function = "enet";
185 bias-disable;
186 };
187 };
188
189 uart0_pins: uart0-pins {
190 uart0_rx_cfg {
191 pins = "pf_11";
192 function = "uart0";
193 input-schmitt-disable;
194 bias-disable;
195 input-enable;
196 };
197
198 uart0_tx_cfg {
199 pins = "pf_10";
200 function = "uart0";
201 bias-pull-down;
202 };
203 };
204};
205
206&emc {
207 status = "okay";
208 pinctrl-names = "default";
209 pinctrl-0 = <&emc_pins>;
210
211 cs0 {
212 #address-cells = <2>;
213 #size-cells = <1>;
214 ranges;
215
216 mpmc,cs = <0>;
217 mpmc,memory-width = <16>;
218 mpmc,byte-lane-low;
219 mpmc,write-enable-delay = <0>;
220 mpmc,output-enable-delay = <0>;
221 mpmc,read-access-delay = <70>;
222 mpmc,page-mode-read-delay = <70>;
223
224 flash@0,0 {
225 compatible = "sst,sst39vf320", "cfi-flash";
226 reg = <0 0 0x400000>;
227 bank-width = <2>;
228 #address-cells = <1>;
229 #size-cells = <1>;
230
231 partition@0 {
232 label = "bootloader";
233 reg = <0x000000 0x040000>; /* 256 KiB */
234 };
235
236 partition@1 {
237 label = "kernel";
238 reg = <0x040000 0x2C0000>; /* 2.75 MiB */
239 };
240
241 partition@2 {
242 label = "rootfs";
243 reg = <0x300000 0x100000>; /* 1 MiB */
244 };
245 };
246 };
247
248 cs2 {
249 #address-cells = <2>;
250 #size-cells = <1>;
251 ranges;
252
253 mpmc,cs = <2>;
254 mpmc,memory-width = <16>;
255 mpmc,byte-lane-low;
256 mpmc,write-enable-delay = <0>;
257 mpmc,output-enable-delay = <30>;
258 mpmc,read-access-delay = <90>;
259 mpmc,page-mode-read-delay = <55>;
260 mpmc,write-access-delay = <55>;
261 mpmc,turn-round-delay = <55>;
262
263 ext_sram: sram@2,0 {
264 compatible = "mmio-sram";
265 reg = <2 0 0x80000>; /* 512 KiB SRAM on IS62WV25616 */
266 };
267 };
268};
269
270&enet_tx_clk {
271 clock-frequency = <25000000>;
272};
273
274&mac {
275 status = "okay";
276 phy-mode = "mii";
277 pinctrl-names = "default";
278 pinctrl-0 = <&enet_mii_pins>;
41}; 279};
42 280
43&uart0 { 281&uart0 {
44 status = "okay"; 282 status = "okay";
283 pinctrl-names = "default";
284 pinctrl-0 = <&uart0_pins>;
45}; 285};
diff --git a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
index 08a6f757f924..5f7bdad80963 100644
--- a/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
+++ b/arch/arm/boot/dts/lpc4357-ea4357-devkit.dts
@@ -15,6 +15,9 @@
15#include "lpc18xx.dtsi" 15#include "lpc18xx.dtsi"
16#include "lpc4357.dtsi" 16#include "lpc4357.dtsi"
17 17
18#include "dt-bindings/input/input.h"
19#include "dt-bindings/gpio/gpio.h"
20
18/ { 21/ {
19 model = "Embedded Artists' LPC4357 Developer's Kit"; 22 model = "Embedded Artists' LPC4357 Developer's Kit";
20 compatible = "ea,lpc4357-developers-kit", "nxp,lpc4357", "nxp,lpc4350"; 23 compatible = "ea,lpc4357-developers-kit", "nxp,lpc4357", "nxp,lpc4350";
@@ -34,8 +37,472 @@
34 device_type = "memory"; 37 device_type = "memory";
35 reg = <0x28000000 0x2000000>; /* 32 MB */ 38 reg = <0x28000000 0x2000000>; /* 32 MB */
36 }; 39 };
40
41 /* vmmc is controlled by sdmmc host internally */
42 vmmc: vmmc_fixed {
43 compatible = "regulator-fixed";
44 regulator-name = "vmmc-supply";
45 regulator-min-microvolt = <3300000>;
46 regulator-max-microvolt = <3300000>;
47 };
48
49 gpio_joystick {
50 compatible = "gpio-keys-polled";
51 pinctrl-names = "default";
52 pinctrl-0 = <&gpio_joystick_pins>;
53 #address-cells = <1>;
54 #size-cells = <0>;
55 poll-interval = <100>;
56 autorepeat;
57
58 button@0 {
59 label = "joy_enter";
60 linux,code = <KEY_ENTER>;
61 gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>;
62 };
63
64 button@1 {
65 label = "joy_left";
66 linux,code = <KEY_LEFT>;
67 gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>;
68 };
69
70 button@2 {
71 label = "joy_up";
72 linux,code = <KEY_UP>;
73 gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>;
74 };
75
76 button@3 {
77 label = "joy_right";
78 linux,code = <KEY_RIGHT>;
79 gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>;
80 };
81
82 button@4 {
83 label = "joy_down";
84 linux,code = <KEY_DOWN>;
85 gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>;
86 };
87 };
88
89 leds_mmio {
90 compatible = "gpio-leds";
91
92 led1 {
93 gpios = <&mmio_leds 15 GPIO_ACTIVE_HIGH>;
94 linux,default-trigger = "heartbeat";
95 };
96
97 led2 {
98 gpios = <&mmio_leds 14 GPIO_ACTIVE_HIGH>;
99 };
100
101 led3 {
102 gpios = <&mmio_leds 13 GPIO_ACTIVE_HIGH>;
103 };
104
105 led4 {
106 gpios = <&mmio_leds 12 GPIO_ACTIVE_HIGH>;
107 };
108
109 led5 {
110 gpios = <&mmio_leds 11 GPIO_ACTIVE_HIGH>;
111 };
112
113 led6 {
114 gpios = <&mmio_leds 10 GPIO_ACTIVE_HIGH>;
115 };
116
117 led7 {
118 gpios = <&mmio_leds 9 GPIO_ACTIVE_HIGH>;
119 };
120
121 led8 {
122 gpios = <&mmio_leds 8 GPIO_ACTIVE_HIGH>;
123 };
124
125 led9 {
126 gpios = <&mmio_leds 7 GPIO_ACTIVE_HIGH>;
127 };
128
129 led10 {
130 gpios = <&mmio_leds 6 GPIO_ACTIVE_HIGH>;
131 };
132
133 led11 {
134 gpios = <&mmio_leds 5 GPIO_ACTIVE_HIGH>;
135 };
136
137 led12 {
138 gpios = <&mmio_leds 4 GPIO_ACTIVE_HIGH>;
139 };
140
141 led13 {
142 gpios = <&mmio_leds 3 GPIO_ACTIVE_HIGH>;
143 };
144
145 led14 {
146 gpios = <&mmio_leds 2 GPIO_ACTIVE_HIGH>;
147 };
148
149 led15 {
150 gpios = <&mmio_leds 1 GPIO_ACTIVE_HIGH>;
151 };
152
153 led16 {
154 gpios = <&mmio_leds 0 GPIO_ACTIVE_HIGH>;
155 };
156 };
157};
158
159&pinctrl {
160 emc_pins: emc-pins {
161 emc_addr0_23_cfg {
162 pins = "p2_9", "p2_10", "p2_11", "p2_12",
163 "p2_13", "p1_0", "p1_1", "p1_2",
164 "p2_8", "p2_7", "p2_6", "p2_2",
165 "p2_1", "p2_0", "p6_8", "p6_7",
166 "pd_16", "pd_15", "pe_0", "pe_1",
167 "pe_2", "pe_3", "pe_4", "pa_4";
168 function = "emc";
169 slew-rate = <1>;
170 bias-disable;
171 input-enable;
172 input-schmitt-disable;
173 };
174
175 emc_data0_31_cfg {
176 pins = "p1_7", "p1_8", "p1_9", "p1_10",
177 "p1_11", "p1_12", "p1_13", "p1_14",
178 "p5_4", "p5_5", "p5_6", "p5_7",
179 "p5_0", "p5_1", "p5_2", "p5_3",
180 "pd_2", "pd_3", "pd_4", "pd_5",
181 "pd_6", "pd_7", "pd_8", "pd_9",
182 "pe_5", "pe_6", "pe_7", "pe_8",
183 "pe_9", "pe_10", "pe_11", "pe_12";
184 function = "emc";
185 slew-rate = <1>;
186 bias-disable;
187 input-enable;
188 input-schmitt-disable;
189 };
190
191 emc_we_oe_cfg {
192 pins = "p1_6", "p1_3";
193 function = "emc";
194 slew-rate = <1>;
195 bias-disable;
196 input-enable;
197 input-schmitt-disable;
198 };
199
200 emc_bls0_3_cfg {
201 pins = "p1_4", "p6_6", "pd_13", "pd_10";
202 function = "emc";
203 slew-rate = <1>;
204 bias-disable;
205 input-enable;
206 input-schmitt-disable;
207 };
208
209 emc_cs0_3_cfg {
210 pins = "p1_5", "p6_3", "pd_12", "pd_11";
211 function = "emc";
212 slew-rate = <1>;
213 bias-disable;
214 input-enable;
215 input-schmitt-disable;
216 };
217
218 emc_sdram_dqm0_3_cfg {
219 pins = "p6_12", "p6_10", "pd_0", "pe_13";
220 function = "emc";
221 slew-rate = <1>;
222 bias-disable;
223 input-enable;
224 input-schmitt-disable;
225 };
226
227 emc_sdram_ras_cas_cfg {
228 pins = "p6_5", "p6_4";
229 function = "emc";
230 slew-rate = <1>;
231 bias-disable;
232 input-enable;
233 input-schmitt-disable;
234 };
235
236 emc_sdram_dycs0_cfg {
237 pins = "p6_9";
238 function = "emc";
239 slew-rate = <1>;
240 bias-disable;
241 input-enable;
242 input-schmitt-disable;
243 };
244
245 emc_sdram_cke_cfg {
246 pins = "p6_11";
247 function = "emc";
248 slew-rate = <1>;
249 bias-disable;
250 input-enable;
251 input-schmitt-disable;
252 };
253
254 emc_sdram_clock_cfg {
255 pins = "clk0", "clk1", "clk2", "clk3";
256 function = "emc";
257 slew-rate = <1>;
258 bias-disable;
259 input-enable;
260 input-schmitt-disable;
261 };
262 };
263
264 enet_rmii_pins: enet-rmii-pins {
265 enet_rmii_rxd_cfg {
266 pins = "p1_15", "p0_0";
267 function = "enet";
268 slew-rate = <1>;
269 bias-disable;
270 input-enable;
271 input-schmitt-disable;
272 };
273
274 enet_rmii_txd_cfg {
275 pins = "p1_18", "p1_20";
276 function = "enet";
277 slew-rate = <1>;
278 bias-disable;
279 input-enable;
280 input-schmitt-disable;
281 };
282
283 enet_rmii_rx_dv_cfg {
284 pins = "p1_16";
285 function = "enet";
286 bias-disable;
287 input-enable;
288 input-schmitt-disable;
289 };
290
291 enet_rmii_tx_en_cfg {
292 pins = "p0_1";
293 function = "enet";
294 bias-disable;
295 input-enable;
296 input-schmitt-disable;
297 };
298
299 enet_ref_clk_cfg {
300 pins = "p1_19";
301 function = "enet";
302 slew-rate = <1>;
303 bias-disable;
304 input-enable;
305 input-schmitt-disable;
306 };
307
308 enet_mdio_cfg {
309 pins = "p1_17";
310 function = "enet";
311 bias-disable;
312 input-enable;
313 input-schmitt-disable;
314 };
315
316 enet_mdc_cfg {
317 pins = "pc_1";
318 function = "enet";
319 slew-rate = <1>;
320 bias-disable;
321 input-enable;
322 input-schmitt-disable;
323 };
324 };
325
326 gpio_joystick_pins: gpio-joystick-pins {
327 gpio_joystick_cfg {
328 pins = "p9_0", "p9_1", "pa_1", "pa_2", "pa_3";
329 function = "gpio";
330 input-enable;
331 bias-disable;
332 };
333 };
334
335 sdmmc_pins: sdmmc-pins {
336 sdmmc_clk_cfg {
337 pins = "pc_0";
338 function = "sdmmc";
339 slew-rate = <1>;
340 bias-pull-down;
341 };
342
343 sdmmc_cmd_dat0_3_cfg {
344 pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10";
345 function = "sdmmc";
346 slew-rate = <1>;
347 bias-disable;
348 input-enable;
349 input-schmitt-disable;
350 };
351
352 sdmmc_cd_cfg {
353 pins = "pc_8";
354 function = "sdmmc";
355 bias-pull-down;
356 input-enable;
357 };
358
359 sdmmc_pow_cfg {
360 pins = "pc_9";
361 function = "sdmmc";
362 bias-pull-down;
363 };
364 };
365
366 uart0_pins: uart0-pins {
367 uart0_rx_cfg {
368 pins = "pf_11";
369 function = "uart0";
370 input-schmitt-disable;
371 bias-disable;
372 input-enable;
373 };
374
375 uart0_tx_cfg {
376 pins = "pf_10";
377 function = "uart0";
378 bias-pull-down;
379 };
380 };
381
382 uart3_pins: uart3-pins {
383 uart3_rx_cfg {
384 pins = "p2_4";
385 function = "uart3";
386 input-schmitt-disable;
387 bias-disable;
388 input-enable;
389 };
390
391 uart3_tx_cfg {
392 pins = "p9_3";
393 function = "uart3";
394 bias-pull-down;
395 };
396 };
397
398 usb0_pins: usb0-pins {
399 usb0_pwr_enable {
400 pins = "p2_3";
401 function = "usb0";
402 };
403
404 usb0_pwr_fault {
405 pins = "p8_0";
406 function = "usb0";
407 bias-disable;
408 input-enable;
409 };
410 };
411};
412
413&emc {
414 status = "okay";
415 pinctrl-names = "default";
416 pinctrl-0 = <&emc_pins>;
417
418 cs0 {
419 #address-cells = <2>;
420 #size-cells = <1>;
421 ranges;
422
423 mpmc,cs = <0>;
424 mpmc,memory-width = <16>;
425 mpmc,byte-lane-low;
426 mpmc,write-enable-delay = <0>;
427 mpmc,output-enable-delay = <0>;
428 mpmc,read-access-delay = <70>;
429 mpmc,page-mode-read-delay = <70>;
430
431 flash@0,0 {
432 compatible = "sst,sst39vf320", "cfi-flash";
433 reg = <0 0 0x400000>;
434 bank-width = <2>;
435 #address-cells = <1>;
436 #size-cells = <1>;
437
438 partition@0 {
439 label = "bootloader";
440 reg = <0x000000 0x040000>; /* 256 KiB */
441 };
442
443 partition@1 {
444 label = "kernel";
445 reg = <0x040000 0x2c0000>; /* 2.75 MiB */
446 };
447
448 partition@2 {
449 label = "rootfs";
450 reg = <0x300000 0x100000>; /* 1 MiB */
451 };
452 };
453 };
454
455 cs2 {
456 #address-cells = <2>;
457 #size-cells = <1>;
458 ranges;
459
460 mpmc,cs = <2>;
461 mpmc,memory-width = <16>;
462
463 mmio_leds: gpio@2,0 {
464 compatible = "ti,7416374";
465 reg = <2 0 0x2>;
466 gpio-controller;
467 #gpio-cells = <2>;
468 };
469
470 };
471};
472
473&enet_tx_clk {
474 clock-frequency = <50000000>;
475};
476
477&mac {
478 status = "okay";
479 phy-mode = "rmii";
480 pinctrl-names = "default";
481 pinctrl-0 = <&enet_rmii_pins>;
482};
483
484&mmcsd {
485 status = "okay";
486 bus-width = <4>;
487 vmmc-supply = <&vmmc>;
488 pinctrl-names = "default";
489 pinctrl-0 = <&sdmmc_pins>;
37}; 490};
38 491
39&uart0 { 492&uart0 {
40 status = "okay"; 493 status = "okay";
494 pinctrl-names = "default";
495 pinctrl-0 = <&uart0_pins>;
496};
497
498&uart3 {
499 status = "okay";
500 pinctrl-names = "default";
501 pinctrl-0 = <&uart3_pins>;
502};
503
504&usb0 {
505 status = "okay";
506 pinctrl-names = "default";
507 pinctrl-0 = <&usb0_pins>;
41}; 508};
diff --git a/arch/arm/boot/dts/ls1021a-qds.dts b/arch/arm/boot/dts/ls1021a-qds.dts
index 9c5e16ba8c95..0521e6864cb7 100644
--- a/arch/arm/boot/dts/ls1021a-qds.dts
+++ b/arch/arm/boot/dts/ls1021a-qds.dts
@@ -58,6 +58,55 @@
58 enet0_sgmii_phy = &sgmii_phy1c; 58 enet0_sgmii_phy = &sgmii_phy1c;
59 enet1_sgmii_phy = &sgmii_phy1d; 59 enet1_sgmii_phy = &sgmii_phy1d;
60 }; 60 };
61
62 sys_mclk: clock-mclk {
63 compatible = "fixed-clock";
64 #clock-cells = <0>;
65 clock-frequency = <24576000>;
66 };
67
68 regulators {
69 compatible = "simple-bus";
70 #address-cells = <1>;
71 #size-cells = <0>;
72
73 reg_3p3v: regulator@0 {
74 compatible = "regulator-fixed";
75 reg = <0>;
76 regulator-name = "3P3V";
77 regulator-min-microvolt = <3300000>;
78 regulator-max-microvolt = <3300000>;
79 regulator-always-on;
80 };
81 };
82
83 sound {
84 compatible = "simple-audio-card";
85 simple-audio-card,format = "i2s";
86 simple-audio-card,widgets =
87 "Microphone", "Microphone Jack",
88 "Headphone", "Headphone Jack",
89 "Speaker", "Speaker Ext",
90 "Line", "Line In Jack";
91 simple-audio-card,routing =
92 "MIC_IN", "Microphone Jack",
93 "Microphone Jack", "Mic Bias",
94 "LINE_IN", "Line In Jack",
95 "Headphone Jack", "HP_OUT",
96 "Speaker Ext", "LINE_OUT";
97
98 simple-audio-card,cpu {
99 sound-dai = <&sai2>;
100 frame-master;
101 bitclock-master;
102 };
103
104 simple-audio-card,codec {
105 sound-dai = <&codec>;
106 frame-master;
107 bitclock-master;
108 };
109 };
61}; 110};
62 111
63&dspi0 { 112&dspi0 {
@@ -75,10 +124,31 @@
75 }; 124 };
76}; 125};
77 126
127&enet0 {
128 tbi-handle = <&tbi0>;
129 phy-handle = <&sgmii_phy1c>;
130 phy-connection-type = "sgmii";
131 status = "okay";
132};
133
134&enet1 {
135 tbi-handle = <&tbi0>;
136 phy-handle = <&sgmii_phy1d>;
137 phy-connection-type = "sgmii";
138 status = "okay";
139};
140
141&enet2 {
142 phy-handle = <&rgmii_phy3>;
143 phy-connection-type = "rgmii-id";
144 status = "okay";
145};
146
78&i2c0 { 147&i2c0 {
79 status = "okay"; 148 status = "okay";
80 149
81 pca9547: mux@77 { 150 pca9547: mux@77 {
151 compatible = "nxp,pca9547";
82 reg = <0x77>; 152 reg = <0x77>;
83 #address-cells = <1>; 153 #address-cells = <1>;
84 #size-cells = <0>; 154 #size-cells = <0>;
@@ -133,6 +203,21 @@
133 reg = <0x4c>; 203 reg = <0x4c>;
134 }; 204 };
135 }; 205 };
206
207 i2c@4 {
208 #address-cells = <1>;
209 #size-cells = <0>;
210 reg = <0x4>;
211
212 codec: sgtl5000@2a {
213 #sound-dai-cells = <0>;
214 compatible = "fsl,sgtl5000";
215 reg = <0x2a>;
216 VDDA-supply = <&reg_3p3v>;
217 VDDIO-supply = <&reg_3p3v>;
218 clocks = <&sys_mclk 1>;
219 };
220 };
136 }; 221 };
137}; 222};
138 223
@@ -231,6 +316,10 @@
231 }; 316 };
232}; 317};
233 318
319&sai2 {
320 status = "okay";
321};
322
234&uart0 { 323&uart0 {
235 status = "okay"; 324 status = "okay";
236}; 325};
diff --git a/arch/arm/boot/dts/ls1021a-twr.dts b/arch/arm/boot/dts/ls1021a-twr.dts
index a2c591e2d918..e008f9367510 100644
--- a/arch/arm/boot/dts/ls1021a-twr.dts
+++ b/arch/arm/boot/dts/ls1021a-twr.dts
@@ -56,6 +56,55 @@
56 enet0_sgmii_phy = &sgmii_phy2; 56 enet0_sgmii_phy = &sgmii_phy2;
57 enet1_sgmii_phy = &sgmii_phy0; 57 enet1_sgmii_phy = &sgmii_phy0;
58 }; 58 };
59
60 sys_mclk: clock-mclk {
61 compatible = "fixed-clock";
62 #clock-cells = <0>;
63 clock-frequency = <24576000>;
64 };
65
66 regulators {
67 compatible = "simple-bus";
68 #address-cells = <1>;
69 #size-cells = <0>;
70
71 reg_3p3v: regulator@0 {
72 compatible = "regulator-fixed";
73 reg = <0>;
74 regulator-name = "3P3V";
75 regulator-min-microvolt = <3300000>;
76 regulator-max-microvolt = <3300000>;
77 regulator-always-on;
78 };
79 };
80
81 sound {
82 compatible = "simple-audio-card";
83 simple-audio-card,format = "i2s";
84 simple-audio-card,widgets =
85 "Microphone", "Microphone Jack",
86 "Headphone", "Headphone Jack",
87 "Speaker", "Speaker Ext",
88 "Line", "Line In Jack";
89 simple-audio-card,routing =
90 "MIC_IN", "Microphone Jack",
91 "Microphone Jack", "Mic Bias",
92 "LINE_IN", "Line In Jack",
93 "Headphone Jack", "HP_OUT",
94 "Speaker Ext", "LINE_OUT";
95
96 simple-audio-card,cpu {
97 sound-dai = <&sai1>;
98 frame-master;
99 bitclock-master;
100 };
101
102 simple-audio-card,codec {
103 sound-dai = <&codec>;
104 frame-master;
105 bitclock-master;
106 };
107 };
59}; 108};
60 109
61&dspi1 { 110&dspi1 {
@@ -73,12 +122,40 @@
73 }; 122 };
74}; 123};
75 124
125&enet0 {
126 tbi-handle = <&tbi1>;
127 phy-handle = <&sgmii_phy2>;
128 phy-connection-type = "sgmii";
129 status = "okay";
130};
131
132&enet1 {
133 tbi-handle = <&tbi1>;
134 phy-handle = <&sgmii_phy0>;
135 phy-connection-type = "sgmii";
136 status = "okay";
137};
138
139&enet2 {
140 phy-handle = <&rgmii_phy1>;
141 phy-connection-type = "rgmii-id";
142 status = "okay";
143};
144
76&i2c0 { 145&i2c0 {
77 status = "okay"; 146 status = "okay";
78}; 147};
79 148
80&i2c1 { 149&i2c1 {
81 status = "okay"; 150 status = "okay";
151 codec: sgtl5000@a {
152 #sound-dai-cells = <0>;
153 compatible = "fsl,sgtl5000";
154 reg = <0x0a>;
155 VDDA-supply = <&reg_3p3v>;
156 VDDIO-supply = <&reg_3p3v>;
157 clocks = <&sys_mclk 1>;
158 };
82}; 159};
83 160
84&ifc { 161&ifc {
@@ -118,6 +195,10 @@
118 }; 195 };
119}; 196};
120 197
198&sai1 {
199 status = "okay";
200};
201
121&uart0 { 202&uart0 {
122 status = "okay"; 203 status = "okay";
123}; 204};
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index c70bb27ac65a..973a496207fc 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -53,6 +53,9 @@
53 interrupt-parent = <&gic>; 53 interrupt-parent = <&gic>;
54 54
55 aliases { 55 aliases {
56 ethernet0 = &enet0;
57 ethernet1 = &enet1;
58 ethernet2 = &enet2;
56 serial0 = &lpuart0; 59 serial0 = &lpuart0;
57 serial1 = &lpuart1; 60 serial1 = &lpuart1;
58 serial2 = &lpuart2; 61 serial2 = &lpuart2;
@@ -184,7 +187,7 @@
184 }; 187 };
185 188
186 dspi0: dspi@2100000 { 189 dspi0: dspi@2100000 {
187 compatible = "fsl,vf610-dspi"; 190 compatible = "fsl,ls1021a-v1.0-dspi";
188 #address-cells = <1>; 191 #address-cells = <1>;
189 #size-cells = <0>; 192 #size-cells = <0>;
190 reg = <0x0 0x2100000 0x0 0x10000>; 193 reg = <0x0 0x2100000 0x0 0x10000>;
@@ -197,7 +200,7 @@
197 }; 200 };
198 201
199 dspi1: dspi@2110000 { 202 dspi1: dspi@2110000 {
200 compatible = "fsl,vf610-dspi"; 203 compatible = "fsl,ls1021a-v1.0-dspi";
201 #address-cells = <1>; 204 #address-cells = <1>;
202 #size-cells = <0>; 205 #size-cells = <0>;
203 reg = <0x0 0x2110000 0x0 0x10000>; 206 reg = <0x0 0x2110000 0x0 0x10000>;
@@ -342,28 +345,30 @@
342 }; 345 };
343 346
344 sai1: sai@2b50000 { 347 sai1: sai@2b50000 {
348 #sound-dai-cells = <0>;
345 compatible = "fsl,vf610-sai"; 349 compatible = "fsl,vf610-sai";
346 reg = <0x0 0x2b50000 0x0 0x10000>; 350 reg = <0x0 0x2b50000 0x0 0x10000>;
347 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>; 351 interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&platform_clk 1>; 352 clocks = <&platform_clk 1>, <&platform_clk 1>,
349 clock-names = "sai"; 353 <&platform_clk 1>, <&platform_clk 1>;
354 clock-names = "bus", "mclk1", "mclk2", "mclk3";
350 dma-names = "tx", "rx"; 355 dma-names = "tx", "rx";
351 dmas = <&edma0 1 47>, 356 dmas = <&edma0 1 47>,
352 <&edma0 1 46>; 357 <&edma0 1 46>;
353 big-endian;
354 status = "disabled"; 358 status = "disabled";
355 }; 359 };
356 360
357 sai2: sai@2b60000 { 361 sai2: sai@2b60000 {
362 #sound-dai-cells = <0>;
358 compatible = "fsl,vf610-sai"; 363 compatible = "fsl,vf610-sai";
359 reg = <0x0 0x2b60000 0x0 0x10000>; 364 reg = <0x0 0x2b60000 0x0 0x10000>;
360 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; 365 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
361 clocks = <&platform_clk 1>; 366 clocks = <&platform_clk 1>, <&platform_clk 1>,
362 clock-names = "sai"; 367 <&platform_clk 1>, <&platform_clk 1>;
368 clock-names = "bus", "mclk1", "mclk2", "mclk3";
363 dma-names = "tx", "rx"; 369 dma-names = "tx", "rx";
364 dmas = <&edma0 1 45>, 370 dmas = <&edma0 1 45>,
365 <&edma0 1 44>; 371 <&edma0 1 44>;
366 big-endian;
367 status = "disabled"; 372 status = "disabled";
368 }; 373 };
369 374
@@ -391,6 +396,91 @@
391 reg = <0x0 0x2d24000 0x0 0x4000>; 396 reg = <0x0 0x2d24000 0x0 0x4000>;
392 }; 397 };
393 398
399 enet0: ethernet@2d10000 {
400 compatible = "fsl,etsec2";
401 device_type = "network";
402 #address-cells = <2>;
403 #size-cells = <2>;
404 interrupt-parent = <&gic>;
405 model = "eTSEC";
406 fsl,magic-packet;
407 ranges;
408
409 queue-group@2d10000 {
410 #address-cells = <2>;
411 #size-cells = <2>;
412 reg = <0x0 0x2d10000 0x0 0x1000>;
413 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
414 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
415 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
416 };
417
418 queue-group@2d14000 {
419 #address-cells = <2>;
420 #size-cells = <2>;
421 reg = <0x0 0x2d14000 0x0 0x1000>;
422 interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
423 <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
424 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
425 };
426 };
427
428 enet1: ethernet@2d50000 {
429 compatible = "fsl,etsec2";
430 device_type = "network";
431 #address-cells = <2>;
432 #size-cells = <2>;
433 interrupt-parent = <&gic>;
434 model = "eTSEC";
435 ranges;
436
437 queue-group@2d50000 {
438 #address-cells = <2>;
439 #size-cells = <2>;
440 reg = <0x0 0x2d50000 0x0 0x1000>;
441 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
442 <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
443 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
444 };
445
446 queue-group@2d54000 {
447 #address-cells = <2>;
448 #size-cells = <2>;
449 reg = <0x0 0x2d54000 0x0 0x1000>;
450 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
451 <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
452 <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
453 };
454 };
455
456 enet2: ethernet@2d90000 {
457 compatible = "fsl,etsec2";
458 device_type = "network";
459 #address-cells = <2>;
460 #size-cells = <2>;
461 interrupt-parent = <&gic>;
462 model = "eTSEC";
463 ranges;
464
465 queue-group@2d90000 {
466 #address-cells = <2>;
467 #size-cells = <2>;
468 reg = <0x0 0x2d90000 0x0 0x1000>;
469 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>,
470 <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>,
471 <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
472 };
473
474 queue-group@2d94000 {
475 #address-cells = <2>;
476 #size-cells = <2>;
477 reg = <0x0 0x2d94000 0x0 0x1000>;
478 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
479 <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
481 };
482 };
483
394 usb@8600000 { 484 usb@8600000 {
395 compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr"; 485 compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
396 reg = <0x0 0x8600000 0x0 0x1000>; 486 reg = <0x0 0x8600000 0x0 0x1000>;
diff --git a/arch/arm/boot/dts/mt6580-evbp1.dts b/arch/arm/boot/dts/mt6580-evbp1.dts
new file mode 100644
index 000000000000..17daeae6bbe8
--- /dev/null
+++ b/arch/arm/boot/dts/mt6580-evbp1.dts
@@ -0,0 +1,38 @@
1/*
2 * Copyright (c) 2015 MediaTek Inc.
3 * Author: Mars.C <mars.cheng@mediatek.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15/dts-v1/;
16#include "mt6580.dtsi"
17
18/ {
19 model = "MediaTek MT6580 evaluation board";
20 compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
21
22 aliases {
23 serial0 = &uart0;
24 serial1 = &uart1;
25 };
26
27 chosen {
28 stdout-path = "serial0:921600n8";
29 };
30
31 memory {
32 reg = <0x80000000 0x20000000>;
33 };
34};
35
36&uart0 {
37 status = "okay";
38};
diff --git a/arch/arm/boot/dts/mt6580.dtsi b/arch/arm/boot/dts/mt6580.dtsi
new file mode 100644
index 000000000000..06fdf6c2d5fd
--- /dev/null
+++ b/arch/arm/boot/dts/mt6580.dtsi
@@ -0,0 +1,116 @@
1/*
2 * Copyright (c) 2015 MediaTek Inc.
3 * Author: Mars.C <mars.cheng@mediatek.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include "skeleton.dtsi"
18
19/ {
20 compatible = "mediatek,mt6580";
21 #address-cells = <1>;
22 #size-cells = <1>;
23 interrupt-parent = <&sysirq>;
24
25 cpus {
26 #address-cells = <1>;
27 #size-cells = <0>;
28
29 cpu@0 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a7";
32 reg = <0x0>;
33 };
34 cpu@1 {
35 device_type = "cpu";
36 compatible = "arm,cortex-a7";
37 reg = <0x1>;
38 };
39 cpu@2 {
40 device_type = "cpu";
41 compatible = "arm,cortex-a7";
42 reg = <0x2>;
43 };
44 cpu@3 {
45 device_type = "cpu";
46 compatible = "arm,cortex-a7";
47 reg = <0x3>;
48 };
49
50 };
51
52 system_clk: dummy13m {
53 compatible = "fixed-clock";
54 clock-frequency = <13000000>;
55 #clock-cells = <0>;
56 };
57
58 rtc_clk: dummy32k {
59 compatible = "fixed-clock";
60 clock-frequency = <32000>;
61 #clock-cells = <0>;
62 };
63
64 uart_clk: dummy26m {
65 compatible = "fixed-clock";
66 clock-frequency = <26000000>;
67 #clock-cells = <0>;
68 };
69
70 timer: timer@10008000 {
71 compatible = "mediatek,mt6580-timer",
72 "mediatek,mt6577-timer";
73 reg = <0x10008000 0x80>;
74 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
75 clocks = <&system_clk>, <&rtc_clk>;
76 clock-names = "system-clk", "rtc-clk";
77 };
78
79 sysirq: interrupt-controller@10200100 {
80 compatible = "mediatek,mt6580-sysirq",
81 "mediatek,mt6577-sysirq";
82 interrupt-controller;
83 #interrupt-cells = <3>;
84 interrupt-parent = <&gic>;
85 reg = <0x10200100 0x1c>;
86 };
87
88 gic: interrupt-controller@10211000 {
89 compatible = "arm,cortex-a7-gic";
90 interrupt-controller;
91 #interrupt-cells = <3>;
92 interrupt-parent = <&gic>;
93 reg = <0x10211000 0x1000>,
94 <0x10212000 0x1000>,
95 <0x10214000 0x2000>,
96 <0x10216000 0x2000>;
97 };
98
99 uart0: serial@11005000 {
100 compatible = "mediatek,mt6580-uart",
101 "mediatek,mt6577-uart";
102 reg = <0x11005000 0x400>;
103 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
104 clocks = <&uart_clk>;
105 status = "disabled";
106 };
107
108 uart1: serial@11006000 {
109 compatible = "mediatek,mt6580-uart",
110 "mediatek,mt6577-uart";
111 reg = <0x11006000 0x400>;
112 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
113 clocks = <&uart_clk>;
114 status = "disabled";
115 };
116};
diff --git a/arch/arm/boot/dts/mt8135-evbp1.dts b/arch/arm/boot/dts/mt8135-evbp1.dts
index 36677382bdd8..357a91fc2d1d 100644
--- a/arch/arm/boot/dts/mt8135-evbp1.dts
+++ b/arch/arm/boot/dts/mt8135-evbp1.dts
@@ -24,6 +24,199 @@
24 }; 24 };
25}; 25};
26 26
27&pwrap {
28 pmic: mt6397 {
29 compatible = "mediatek,mt6397";
30
31 mt6397regulator: mt6397regulator {
32 compatible = "mediatek,mt6397-regulator";
33
34 mt6397_vpca15_reg: buck_vpca15 {
35 regulator-compatible = "buck_vpca15";
36 regulator-name = "vpca15";
37 regulator-min-microvolt = < 850000>;
38 regulator-max-microvolt = <1350000>;
39 regulator-ramp-delay = <12500>;
40 regulator-always-on;
41 };
42
43 mt6397_vpca7_reg: buck_vpca7 {
44 regulator-compatible = "buck_vpca7";
45 regulator-name = "vpca7";
46 regulator-min-microvolt = < 850000>;
47 regulator-max-microvolt = <1350000>;
48 regulator-ramp-delay = <12500>;
49 regulator-always-on;
50 };
51
52 mt6397_vsramca15_reg: buck_vsramca15 {
53 regulator-compatible = "buck_vsramca15";
54 regulator-name = "vsramca15";
55 regulator-min-microvolt = < 850000>;
56 regulator-max-microvolt = <1350000>;
57 regulator-ramp-delay = <12500>;
58 regulator-always-on;
59 };
60
61 mt6397_vsramca7_reg: buck_vsramca7 {
62 regulator-compatible = "buck_vsramca7";
63 regulator-name = "vsramca7";
64 regulator-min-microvolt = < 850000>;
65 regulator-max-microvolt = <1350000>;
66 regulator-ramp-delay = <12500>;
67 regulator-always-on;
68 };
69
70 mt6397_vcore_reg: buck_vcore {
71 regulator-compatible = "buck_vcore";
72 regulator-name = "vcore";
73 regulator-min-microvolt = < 850000>;
74 regulator-max-microvolt = <1350000>;
75 regulator-ramp-delay = <12500>;
76 regulator-always-on;
77 };
78
79 mt6397_vgpu_reg: buck_vgpu {
80 regulator-compatible = "buck_vgpu";
81 regulator-name = "vgpu";
82 regulator-min-microvolt = < 700000>;
83 regulator-max-microvolt = <1350000>;
84 regulator-ramp-delay = <12500>;
85 regulator-enable-ramp-delay = <115>;
86 };
87
88 mt6397_vdrm_reg: buck_vdrm {
89 regulator-compatible = "buck_vdrm";
90 regulator-name = "vdrm";
91 regulator-min-microvolt = <1200000>;
92 regulator-max-microvolt = <1400000>;
93 regulator-ramp-delay = <12500>;
94 regulator-always-on;
95 };
96
97 mt6397_vio18_reg: buck_vio18 {
98 regulator-compatible = "buck_vio18";
99 regulator-name = "vio18";
100 regulator-min-microvolt = <1620000>;
101 regulator-max-microvolt = <1980000>;
102 regulator-ramp-delay = <12500>;
103 regulator-always-on;
104 };
105
106 mt6397_vtcxo_reg: ldo_vtcxo {
107 regulator-compatible = "ldo_vtcxo";
108 regulator-name = "vtcxo";
109 regulator-always-on;
110 };
111
112 mt6397_va28_reg: ldo_va28 {
113 regulator-compatible = "ldo_va28";
114 regulator-name = "va28";
115 regulator-always-on;
116 };
117
118 mt6397_vcama_reg: ldo_vcama {
119 regulator-compatible = "ldo_vcama";
120 regulator-name = "vcama";
121 regulator-min-microvolt = <1500000>;
122 regulator-max-microvolt = <2800000>;
123 regulator-enable-ramp-delay = <218>;
124 };
125
126 mt6397_vio28_reg: ldo_vio28 {
127 regulator-compatible = "ldo_vio28";
128 regulator-name = "vio28";
129 regulator-always-on;
130 };
131
132 mt6397_vusb_reg: ldo_vusb {
133 regulator-compatible = "ldo_vusb";
134 regulator-name = "vusb";
135 };
136
137 mt6397_vmc_reg: ldo_vmc {
138 regulator-compatible = "ldo_vmc";
139 regulator-name = "vmc";
140 regulator-min-microvolt = <1800000>;
141 regulator-max-microvolt = <3300000>;
142 regulator-enable-ramp-delay = <218>;
143 };
144
145 mt6397_vmch_reg: ldo_vmch {
146 regulator-compatible = "ldo_vmch";
147 regulator-name = "vmch";
148 regulator-min-microvolt = <3000000>;
149 regulator-max-microvolt = <3300000>;
150 regulator-enable-ramp-delay = <218>;
151 };
152
153 mt6397_vemc_3v3_reg: ldo_vemc3v3 {
154 regulator-compatible = "ldo_vemc3v3";
155 regulator-name = "vemc_3v3";
156 regulator-min-microvolt = <3000000>;
157 regulator-max-microvolt = <3300000>;
158 regulator-enable-ramp-delay = <218>;
159 };
160
161 mt6397_vgp1_reg: ldo_vgp1 {
162 regulator-compatible = "ldo_vgp1";
163 regulator-name = "vcamd";
164 regulator-min-microvolt = <1220000>;
165 regulator-max-microvolt = <3300000>;
166 regulator-enable-ramp-delay = <240>;
167 };
168
169 mt6397_vgp2_reg: ldo_vgp2 {
170 regulator-compatible = "ldo_vgp2";
171 regulator-name = "vcamio";
172 regulator-min-microvolt = <1000000>;
173 regulator-max-microvolt = <3300000>;
174 regulator-enable-ramp-delay = <218>;
175 };
176
177 mt6397_vgp3_reg: ldo_vgp3 {
178 regulator-compatible = "ldo_vgp3";
179 regulator-name = "vcamaf";
180 regulator-min-microvolt = <1200000>;
181 regulator-max-microvolt = <3300000>;
182 regulator-enable-ramp-delay = <218>;
183 };
184
185 mt6397_vgp4_reg: ldo_vgp4 {
186 regulator-compatible = "ldo_vgp4";
187 regulator-name = "vgp4";
188 regulator-min-microvolt = <1200000>;
189 regulator-max-microvolt = <3300000>;
190 regulator-enable-ramp-delay = <218>;
191 };
192
193 mt6397_vgp5_reg: ldo_vgp5 {
194 regulator-compatible = "ldo_vgp5";
195 regulator-name = "vgp5";
196 regulator-min-microvolt = <1200000>;
197 regulator-max-microvolt = <3000000>;
198 regulator-enable-ramp-delay = <218>;
199 };
200
201 mt6397_vgp6_reg: ldo_vgp6 {
202 regulator-compatible = "ldo_vgp6";
203 regulator-name = "vgp6";
204 regulator-min-microvolt = <1200000>;
205 regulator-max-microvolt = <3300000>;
206 regulator-enable-ramp-delay = <218>;
207 };
208
209 mt6397_vibr_reg: ldo_vibr {
210 regulator-compatible = "ldo_vibr";
211 regulator-name = "vibr";
212 regulator-min-microvolt = <1300000>;
213 regulator-max-microvolt = <3300000>;
214 regulator-enable-ramp-delay = <218>;
215 };
216 };
217 };
218};
219
27&uart3 { 220&uart3 {
28 status = "okay"; 221 status = "okay";
29}; 222};
diff --git a/arch/arm/boot/dts/mt8135.dtsi b/arch/arm/boot/dts/mt8135.dtsi
index 0aba9eb28e2b..08371dbae543 100644
--- a/arch/arm/boot/dts/mt8135.dtsi
+++ b/arch/arm/boot/dts/mt8135.dtsi
@@ -12,8 +12,10 @@
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 */ 13 */
14 14
15#include <dt-bindings/clock/mt8135-clk.h>
15#include <dt-bindings/interrupt-controller/irq.h> 16#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/interrupt-controller/arm-gic.h> 17#include <dt-bindings/interrupt-controller/arm-gic.h>
18#include <dt-bindings/reset-controller/mt8135-resets.h>
17#include "skeleton64.dtsi" 19#include "skeleton64.dtsi"
18#include "mt8135-pinfunc.h" 20#include "mt8135-pinfunc.h"
19 21
@@ -88,12 +90,11 @@
88 #clock-cells = <0>; 90 #clock-cells = <0>;
89 }; 91 };
90 92
91 uart_clk: dummy26m { 93 clk26m: clk26m {
92 compatible = "fixed-clock"; 94 compatible = "fixed-clock";
93 clock-frequency = <26000000>;
94 #clock-cells = <0>; 95 #clock-cells = <0>;
96 clock-frequency = <26000000>;
95 }; 97 };
96
97 }; 98 };
98 99
99 soc { 100 soc {
@@ -102,6 +103,26 @@
102 compatible = "simple-bus"; 103 compatible = "simple-bus";
103 ranges; 104 ranges;
104 105
106 topckgen: topckgen@10000000 {
107 compatible = "mediatek,mt8135-topckgen";
108 reg = <0 0x10000000 0 0x1000>;
109 #clock-cells = <1>;
110 };
111
112 infracfg: infracfg@10001000 {
113 #reset-cells = <1>;
114 #clock-cells = <1>;
115 compatible = "mediatek,mt8135-infracfg", "syscon";
116 reg = <0 0x10001000 0 0x1000>;
117 };
118
119 pericfg: pericfg@10003000 {
120 #reset-cells = <1>;
121 #clock-cells = <1>;
122 compatible = "mediatek,mt8135-pericfg", "syscon";
123 reg = <0 0x10003000 0 0x1000>;
124 };
125
105 /* 126 /*
106 * Pinctrl access register at 0x10005000 and 0x1020c000 through 127 * Pinctrl access register at 0x10005000 and 0x1020c000 through
107 * regmap. Register 0x1000b000 is used by EINT. 128 * regmap. Register 0x1000b000 is used by EINT.
@@ -134,6 +155,19 @@
134 clock-names = "system-clk", "rtc-clk"; 155 clock-names = "system-clk", "rtc-clk";
135 }; 156 };
136 157
158 pwrap: pwrap@1000f000 {
159 compatible = "mediatek,mt8135-pwrap";
160 reg = <0 0x1000f000 0 0x1000>,
161 <0 0x11017000 0 0x1000>;
162 reg-names = "pwrap", "pwrap-bridge";
163 interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
164 resets = <&infracfg MT8135_INFRA_PMIC_WRAP_RST>,
165 <&pericfg MT8135_PERI_PWRAP_BRIDGE_SW_RST>;
166 reset-names = "pwrap", "pwrap-bridge";
167 clocks = <&clk26m>, <&clk26m>;
168 clock-names = "spi", "wrap";
169 };
170
137 sysirq: interrupt-controller@10200030 { 171 sysirq: interrupt-controller@10200030 {
138 compatible = "mediatek,mt8135-sysirq", 172 compatible = "mediatek,mt8135-sysirq",
139 "mediatek,mt6577-sysirq"; 173 "mediatek,mt6577-sysirq";
@@ -143,6 +177,12 @@
143 reg = <0 0x10200030 0 0x1c>; 177 reg = <0 0x10200030 0 0x1c>;
144 }; 178 };
145 179
180 apmixedsys: apmixedsys@10209000 {
181 compatible = "mediatek,mt8135-apmixedsys";
182 reg = <0 0x10209000 0 0x1000>;
183 #clock-cells = <1>;
184 };
185
146 syscfg_pctl_b: syscfg_pctl_b@1020c000 { 186 syscfg_pctl_b: syscfg_pctl_b@1020c000 {
147 compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon"; 187 compatible = "mediatek,mt8135-pctl-b-syscfg", "syscon";
148 reg = <0 0x1020c000 0 0x1000>; 188 reg = <0 0x1020c000 0 0x1000>;
@@ -163,7 +203,8 @@
163 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; 203 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
164 reg = <0 0x11006000 0 0x400>; 204 reg = <0 0x11006000 0 0x400>;
165 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>; 205 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
166 clocks = <&uart_clk>; 206 clocks = <&pericfg CLK_PERI_UART0_SEL>, <&pericfg CLK_PERI_UART0>;
207 clock-names = "baud", "bus";
167 status = "disabled"; 208 status = "disabled";
168 }; 209 };
169 210
@@ -171,7 +212,8 @@
171 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; 212 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
172 reg = <0 0x11007000 0 0x400>; 213 reg = <0 0x11007000 0 0x400>;
173 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>; 214 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
174 clocks = <&uart_clk>; 215 clocks = <&pericfg CLK_PERI_UART1_SEL>, <&pericfg CLK_PERI_UART1>;
216 clock-names = "baud", "bus";
175 status = "disabled"; 217 status = "disabled";
176 }; 218 };
177 219
@@ -179,7 +221,8 @@
179 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; 221 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
180 reg = <0 0x11008000 0 0x400>; 222 reg = <0 0x11008000 0 0x400>;
181 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>; 223 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
182 clocks = <&uart_clk>; 224 clocks = <&pericfg CLK_PERI_UART2_SEL>, <&pericfg CLK_PERI_UART2>;
225 clock-names = "baud", "bus";
183 status = "disabled"; 226 status = "disabled";
184 }; 227 };
185 228
@@ -187,7 +230,8 @@
187 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart"; 230 compatible = "mediatek,mt8135-uart","mediatek,mt6577-uart";
188 reg = <0 0x11009000 0 0x400>; 231 reg = <0 0x11009000 0 0x400>;
189 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>; 232 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
190 clocks = <&uart_clk>; 233 clocks = <&pericfg CLK_PERI_UART3_SEL>, <&pericfg CLK_PERI_UART3>;
234 clock-names = "baud", "bus";
191 status = "disabled"; 235 status = "disabled";
192 }; 236 };
193 237
diff --git a/arch/arm/boot/dts/omap3-devkit8000-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
new file mode 100644
index 000000000000..9ca2865a83d6
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
@@ -0,0 +1,369 @@
1/*
2 * Author: Anil Kumar <anilk4.v@gmail.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include <dt-bindings/input/input.h>
10
11#include "omap34xx.dtsi"
12/ {
13 memory {
14 device_type = "memory";
15 reg = <0x80000000 0x10000000>; /* 256 MB */
16 };
17
18 leds {
19 compatible = "gpio-leds";
20
21 heartbeat {
22 label = "devkit8000::led1";
23 gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>; /* 186 -> LED1 */
24 default-state = "on";
25 linux,default-trigger = "heartbeat";
26 };
27
28 mmc {
29 label = "devkit8000::led2";
30 gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 -> LED2 */
31 default-state = "on";
32 linux,default-trigger = "none";
33 };
34
35 usr {
36 label = "devkit8000::led3";
37 gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* 164 -> LED3 */
38 default-state = "on";
39 linux,default-trigger = "usr";
40 };
41
42 pmu_stat {
43 label = "devkit8000::pmu_stat";
44 gpios = <&twl_gpio 19 GPIO_ACTIVE_HIGH>; /* LEDB */
45 };
46 };
47
48 sound {
49 compatible = "ti,omap-twl4030";
50 ti,model = "devkit8000";
51
52 ti,mcbsp = <&mcbsp2>;
53 ti,audio-routing =
54 "Ext Spk", "PREDRIVEL",
55 "Ext Spk", "PREDRIVER",
56 "MAINMIC", "Main Mic",
57 "Main Mic", "Mic Bias 1";
58 };
59
60 gpio_keys {
61 compatible = "gpio-keys";
62
63 user {
64 label = "user";
65 gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
66 linux,code = <BTN_EXTRA>;
67 gpio-key,wakeup;
68 };
69 };
70
71 tfp410: encoder@0 {
72 compatible = "ti,tfp410";
73 powerdown-gpios = <&twl_gpio 7 GPIO_ACTIVE_LOW>;
74
75 ports {
76 #address-cells = <1>;
77 #size-cells = <0>;
78
79 port@0 {
80 reg = <0>;
81
82 tfp410_in: endpoint@0 {
83 remote-endpoint = <&dpi_dvi_out>;
84 };
85 };
86
87 port@1 {
88 reg = <1>;
89
90 tfp410_out: endpoint@0 {
91 remote-endpoint = <&dvi_connector_in>;
92 };
93 };
94 };
95 };
96
97 dvi0: connector@0 {
98 compatible = "dvi-connector";
99 label = "dvi";
100
101 digital;
102
103 ddc-i2c-bus = <&i2c2>;
104
105 port {
106 dvi_connector_in: endpoint {
107 remote-endpoint = <&tfp410_out>;
108 };
109 };
110 };
111
112 tv0: connector@1 {
113 compatible = "svideo-connector";
114 label = "tv";
115
116 port {
117 tv_connector_in: endpoint {
118 remote-endpoint = <&venc_out>;
119 };
120 };
121 };
122};
123
124&i2c1 {
125 clock-frequency = <2600000>;
126
127 twl: twl@48 {
128 reg = <0x48>;
129 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
130
131 twl_audio: audio {
132 compatible = "ti,twl4030-audio";
133 codec {
134 };
135 };
136 };
137};
138
139&i2c2 {
140 clock-frequency = <400000>;
141};
142
143&i2c3 {
144 status = "disabled";
145};
146
147#include "twl4030.dtsi"
148#include "twl4030_omap3.dtsi"
149
150&mmc1 {
151 vmmc-supply = <&vmmc1>;
152 vmmc_aux-supply = <&vsim>;
153 bus-width = <8>;
154};
155
156&mmc2 {
157 status = "disabled";
158};
159
160&mmc3 {
161 status = "disabled";
162};
163
164&twl_gpio {
165 ti,use-leds;
166 /*
167 * pulldowns:
168 * BIT(1), BIT(2), BIT(6), BIT(7), BIT(8), BIT(13)
169 * BIT(15), BIT(16), BIT(17)
170 */
171 ti,pulldowns = <0x03a1c6>;
172};
173
174&twl_keypad {
175 linux,keymap = <MATRIX_KEY(0, 0, KEY_1)
176 MATRIX_KEY(1, 0, KEY_2)
177 MATRIX_KEY(2, 0, KEY_3)
178 MATRIX_KEY(0, 1, KEY_4)
179 MATRIX_KEY(1, 1, KEY_5)
180 MATRIX_KEY(2, 1, KEY_6)
181 MATRIX_KEY(3, 1, KEY_F5)
182 MATRIX_KEY(0, 2, KEY_7)
183 MATRIX_KEY(1, 2, KEY_8)
184 MATRIX_KEY(2, 2, KEY_9)
185 MATRIX_KEY(3, 2, KEY_F6)
186 MATRIX_KEY(0, 3, KEY_F7)
187 MATRIX_KEY(1, 3, KEY_0)
188 MATRIX_KEY(2, 3, KEY_F8)
189 MATRIX_KEY(4, 5, KEY_RESERVED)
190 MATRIX_KEY(4, 4, KEY_VOLUMEUP)
191 MATRIX_KEY(5, 5, KEY_VOLUMEDOWN)
192 >;
193};
194
195&wdt2 {
196 status = "disabled";
197};
198
199&mcbsp2 {
200 status = "okay";
201};
202
203&gpmc {
204 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
205
206 nand@0,0 {
207 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
208 nand-bus-width = <16>;
209 gpmc,device-width = <2>;
210 ti,nand-ecc-opt = "sw";
211
212 gpmc,sync-clk-ps = <0>;
213 gpmc,cs-on-ns = <0>;
214 gpmc,cs-rd-off-ns = <44>;
215 gpmc,cs-wr-off-ns = <44>;
216 gpmc,adv-on-ns = <6>;
217 gpmc,adv-rd-off-ns = <34>;
218 gpmc,adv-wr-off-ns = <44>;
219 gpmc,we-off-ns = <40>;
220 gpmc,oe-off-ns = <54>;
221 gpmc,access-ns = <64>;
222 gpmc,rd-cycle-ns = <82>;
223 gpmc,wr-cycle-ns = <82>;
224 gpmc,wr-access-ns = <40>;
225 gpmc,wr-data-mux-bus-ns = <0>;
226
227 #address-cells = <1>;
228 #size-cells = <1>;
229
230 x-loader@0 {
231 label = "X-Loader";
232 reg = <0 0x80000>;
233 };
234
235 bootloaders@80000 {
236 label = "U-Boot";
237 reg = <0x80000 0x1e0000>;
238 };
239
240 bootloaders_env@260000 {
241 label = "U-Boot Env";
242 reg = <0x260000 0x20000>;
243 };
244
245 kernel@280000 {
246 label = "Kernel";
247 reg = <0x280000 0x400000>;
248 };
249
250 filesystem@680000 {
251 label = "File System";
252 reg = <0x680000 0xf980000>;
253 };
254 };
255};
256
257&gpmc {
258 ranges = <6 0 0x2c000000 0x1000000>; /* CS6: 16MB for DM9000 */
259
260 ethernet@0,0 {
261 compatible = "davicom,dm9000";
262 reg = <6 0x000 2
263 6 0x400 2>; /* CS6, offset 0 and 0x400, IO size 2 */
264 bank-width = <2>;
265 interrupt-parent = <&gpio1>;
266 interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
267 davicom,no-eeprom;
268
269 gpmc,mux-add-data = <0>;
270 gpmc,device-width = <1>;
271 gpmc,wait-pin = <0>;
272 gpmc,cycle2cycle-samecsen = <1>;
273 gpmc,cycle2cycle-diffcsen = <1>;
274
275 gpmc,cs-on-ns = <6>;
276 gpmc,cs-rd-off-ns = <180>;
277 gpmc,cs-wr-off-ns = <180>;
278 gpmc,adv-on-ns = <0>;
279 gpmc,adv-rd-off-ns = <18>;
280 gpmc,adv-wr-off-ns = <48>;
281 gpmc,oe-on-ns = <54>;
282 gpmc,oe-off-ns = <168>;
283 gpmc,we-on-ns = <54>;
284 gpmc,we-off-ns = <168>;
285 gpmc,rd-cycle-ns = <186>;
286 gpmc,wr-cycle-ns = <186>;
287 gpmc,access-ns = <144>;
288 gpmc,page-burst-access-ns = <24>;
289 gpmc,bus-turnaround-ns = <90>;
290 gpmc,cycle2cycle-delay-ns = <90>;
291 gpmc,wait-monitoring-ns = <0>;
292 gpmc,clk-activation-ns = <0>;
293 gpmc,wr-data-mux-bus-ns = <0>;
294 gpmc,wr-access-ns = <0>;
295 };
296};
297
298&omap3_pmx_core {
299 dss_dpi_pins: pinmux_dss_dpi_pins {
300 pinctrl-single,pins = <
301 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
302 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
303 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
304 OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0) /* dss_acbias.dss_acbias */
305 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0) /* dss_data0.dss_data0 */
306 OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0) /* dss_data1.dss_data1 */
307 OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0) /* dss_data2.dss_data2 */
308 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0) /* dss_data3.dss_data3 */
309 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0) /* dss_data4.dss_data4 */
310 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0) /* dss_data5.dss_data5 */
311 OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0) /* dss_data6.dss_data6 */
312 OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0) /* dss_data7.dss_data7 */
313 OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0) /* dss_data8.dss_data8 */
314 OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0) /* dss_data9.dss_data9 */
315 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0) /* dss_data10.dss_data10 */
316 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0) /* dss_data11.dss_data11 */
317 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0) /* dss_data12.dss_data12 */
318 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0) /* dss_data13.dss_data13 */
319 OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0) /* dss_data14.dss_data14 */
320 OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
321 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0) /* dss_data16.dss_data16 */
322 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0) /* dss_data17.dss_data17 */
323 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0) /* dss_data18.dss_data18 */
324 OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0) /* dss_data19.dss_data19 */
325 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0) /* dss_data20.dss_data20 */
326 OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0) /* dss_data21.dss_data21 */
327 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0) /* dss_data22.dss_data22 */
328 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0) /* dss_data23.dss_data23 */
329 >;
330 };
331};
332
333&vpll1 {
334 /* Needed for DSS */
335 regulator-name = "vdds_dsi";
336
337 regulator-min-microvolt = <1800000>;
338 regulator-max-microvolt = <1800000>;
339};
340
341&dss {
342 status = "ok";
343
344 pinctrl-names = "default";
345 pinctrl-0 = <&dss_dpi_pins>;
346
347 vdds_dsi-supply = <&vpll1>;
348 vdda_dac-supply = <&vdac>;
349
350 port {
351 dpi_dvi_out: endpoint@0 {
352 remote-endpoint = <&tfp410_in>;
353 data-lines = <24>;
354 };
355 };
356};
357
358&venc {
359 status = "ok";
360
361 vdda-supply = <&vdac>;
362
363 port {
364 venc_out: endpoint {
365 remote-endpoint = <&tv_connector_in>;
366 ti,channels = <2>;
367 };
368 };
369};
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
new file mode 100644
index 000000000000..e84184de2a4a
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
@@ -0,0 +1,73 @@
1/*
2 * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include "omap3-devkit8000-common.dtsi"
10/ {
11 aliases {
12 display0 = &lcd0;
13 display1 = &dvi0;
14 display2 = &tv0;
15 };
16
17 lcd0: display@0 {
18 compatible = "panel-dpi";
19 label = "lcd";
20
21 enable-gpios = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;
22
23 port {
24 lcd_in: endpoint {
25 remote-endpoint = <&dpi_lcd_out>;
26 };
27 };
28 };
29};
30
31&dss {
32 port {
33 dpi_lcd_out: endpoint@1 {
34 remote-endpoint = <&lcd_in>;
35 data-lines = <24>;
36 };
37 };
38};
39
40&vio {
41 regulator-min-microvolt = <1800000>;
42 regulator-max-microvolt = <1800000>;
43};
44
45&mcspi2 {
46
47 /* touch controller */
48 ads7846@0 {
49 compatible = "ti,ads7846";
50 vcc-supply = <&vio>;
51
52 reg = <0>; /* CS0 */
53 spi-max-frequency = <1500000>;
54
55 interrupt-parent = <&gpio1>;
56 interrupts = <27 0>; /* gpio_27 */
57 pendown-gpio = <&gpio1 27 0>;
58
59 ti,x-min = /bits/ 16 <0x0>;
60 ti,x-max = /bits/ 16 <0x0fff>;
61 ti,y-min = /bits/ 16 <0x0>;
62 ti,y-max = /bits/ 16 <0x0fff>;
63 ti,x-plate-ohms = /bits/ 16 <180>;
64 ti,pressure-max = /bits/ 16 <255>;
65 ti,debounce-max = /bits/ 16 <10>;
66 ti,debounce-tol = /bits/ 16 <5>;
67 ti,debounce-rep = /bits/ 16 <1>;
68 ti,keep-vref-on = <1>;
69 ti,settle-delay-usec = /bits/ 16 <150>;
70
71 linux,wakeup;
72 };
73};
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts b/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts
new file mode 100644
index 000000000000..d5705356d52c
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts
@@ -0,0 +1,37 @@
1/*
2 * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10/*
11 * 4.3'' LCD panel sold with devkit8000 board
12 */
13
14#include "omap3-devkit8000-lcd-common.dtsi"
15/ {
16 model = "TimLL OMAP3 Devkit8000 with 4.3'' LCD panel";
17 compatible = "timll,omap3-devkit8000", "ti,omap3";
18
19 lcd0: display@0 {
20 panel-timing {
21 clock-frequency = <10164705>;
22 hactive = <480>;
23 vactive = <272>;
24 hfront-porch = <2>;
25 hback-porch = <2>;
26 hsync-len = <41>;
27 vback-porch = <2>;
28 vfront-porch = <2>;
29 vsync-len = <10>;
30
31 hsync-active = <0>;
32 vsync-active = <0>;
33 de-active = <1>;
34 pixelclk-active = <1>;
35 };
36 };
37};
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts b/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts
new file mode 100644
index 000000000000..4afad4b233ec
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts
@@ -0,0 +1,37 @@
1/*
2 * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10/*
11 * 7.0'' LCD panel sold with some devkit8000 board
12 */
13
14#include "omap3-devkit8000-lcd-common.dtsi"
15/ {
16 model = "TimLL OMAP3 Devkit8000 with 7.0'' LCD panel";
17 compatible = "timll,omap3-devkit8000", "ti,omap3";
18
19 lcd0: display@0 {
20 panel-timing {
21 clock-frequency = <40000000>;
22 hactive = <800>;
23 vactive = <480>;
24 hfront-porch = <1>;
25 hback-porch = <1>;
26 hsync-len = <48>;
27 vback-porch = <25>;
28 vfront-porch = <12>;
29 vsync-len = <3>;
30
31 hsync-active = <0>;
32 vsync-active = <0>;
33 de-active = <1>;
34 pixelclk-active = <1>;
35 };
36 };
37};
diff --git a/arch/arm/boot/dts/omap3-devkit8000.dts b/arch/arm/boot/dts/omap3-devkit8000.dts
index be2297116a14..40ac89482f5d 100644
--- a/arch/arm/boot/dts/omap3-devkit8000.dts
+++ b/arch/arm/boot/dts/omap3-devkit8000.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Author: Anil Kumar <anilk4.v@gmail.com> 2 * Author: Anthoine Bourgeois <anthoine.bourgeois@gmail.com>
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 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 5 * it under the terms of the GNU General Public License version 2 as
@@ -7,194 +7,13 @@
7 */ 7 */
8/dts-v1/; 8/dts-v1/;
9 9
10#include "omap34xx.dtsi" 10#include "omap3-devkit8000-common.dtsi"
11/ { 11/ {
12 model = "TimLL OMAP3 Devkit8000"; 12 model = "TimLL OMAP3 Devkit8000";
13 compatible = "timll,omap3-devkit8000", "ti,omap3"; 13 compatible = "timll,omap3-devkit8000", "ti,omap3";
14 14
15 memory { 15 aliases {
16 device_type = "memory"; 16 display1 = &dvi0;
17 reg = <0x80000000 0x10000000>; /* 256 MB */ 17 display2 = &tv0;
18 };
19
20 leds {
21 compatible = "gpio-leds";
22
23 heartbeat {
24 label = "devkit8000::led1";
25 gpios = <&gpio6 26 GPIO_ACTIVE_HIGH>; /* 186 -> LED1 */
26 default-state = "on";
27 linux,default-trigger = "heartbeat";
28 };
29
30 mmc {
31 label = "devkit8000::led2";
32 gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 -> LED2 */
33 default-state = "on";
34 linux,default-trigger = "none";
35 };
36
37 usr {
38 label = "devkit8000::led3";
39 gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* 164 -> LED3 */
40 default-state = "on";
41 linux,default-trigger = "usr";
42 };
43
44 };
45
46 sound {
47 compatible = "ti,omap-twl4030";
48 ti,model = "devkit8000";
49
50 ti,mcbsp = <&mcbsp2>;
51 ti,audio-routing =
52 "Ext Spk", "PREDRIVEL",
53 "Ext Spk", "PREDRIVER",
54 "MAINMIC", "Main Mic",
55 "Main Mic", "Mic Bias 1";
56 };
57};
58
59&i2c1 {
60 clock-frequency = <2600000>;
61
62 twl: twl@48 {
63 reg = <0x48>;
64 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
65
66 twl_audio: audio {
67 compatible = "ti,twl4030-audio";
68 codec {
69 };
70 };
71 };
72};
73
74&i2c2 {
75 status = "disabled";
76};
77
78&i2c3 {
79 status = "disabled";
80};
81
82#include "twl4030.dtsi"
83#include "twl4030_omap3.dtsi"
84
85&mmc1 {
86 vmmc-supply = <&vmmc1>;
87 vmmc_aux-supply = <&vsim>;
88 bus-width = <8>;
89};
90
91&mmc2 {
92 status = "disabled";
93};
94
95&mmc3 {
96 status = "disabled";
97};
98
99&wdt2 {
100 status = "disabled";
101};
102
103&mcbsp2 {
104 status = "okay";
105};
106
107&gpmc {
108 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
109
110 nand@0,0 {
111 reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
112 nand-bus-width = <16>;
113 gpmc,device-width = <2>;
114 ti,nand-ecc-opt = "sw";
115
116 gpmc,sync-clk-ps = <0>;
117 gpmc,cs-on-ns = <0>;
118 gpmc,cs-rd-off-ns = <44>;
119 gpmc,cs-wr-off-ns = <44>;
120 gpmc,adv-on-ns = <6>;
121 gpmc,adv-rd-off-ns = <34>;
122 gpmc,adv-wr-off-ns = <44>;
123 gpmc,we-off-ns = <40>;
124 gpmc,oe-off-ns = <54>;
125 gpmc,access-ns = <64>;
126 gpmc,rd-cycle-ns = <82>;
127 gpmc,wr-cycle-ns = <82>;
128 gpmc,wr-access-ns = <40>;
129 gpmc,wr-data-mux-bus-ns = <0>;
130
131 #address-cells = <1>;
132 #size-cells = <1>;
133
134 x-loader@0 {
135 label = "X-Loader";
136 reg = <0 0x80000>;
137 };
138
139 bootloaders@80000 {
140 label = "U-Boot";
141 reg = <0x80000 0x1e0000>;
142 };
143
144 bootloaders_env@260000 {
145 label = "U-Boot Env";
146 reg = <0x260000 0x20000>;
147 };
148
149 kernel@280000 {
150 label = "Kernel";
151 reg = <0x280000 0x400000>;
152 };
153
154 filesystem@680000 {
155 label = "File System";
156 reg = <0x680000 0xf980000>;
157 };
158 };
159};
160
161&gpmc {
162 ranges = <6 0 0x2c000000 0x1000000>; /* CS6: 16MB for DM9000 */
163
164 ethernet@0,0 {
165 compatible = "davicom,dm9000";
166 reg = <6 0x000 2
167 6 0x400 2>; /* CS6, offset 0 and 0x400, IO size 2 */
168 bank-width = <2>;
169 interrupt-parent = <&gpio1>;
170 interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
171 davicom,no-eeprom;
172
173 gpmc,mux-add-data = <0>;
174 gpmc,device-width = <1>;
175 gpmc,wait-pin = <0>;
176 gpmc,cycle2cycle-samecsen = <1>;
177 gpmc,cycle2cycle-diffcsen = <1>;
178
179 gpmc,cs-on-ns = <6>;
180 gpmc,cs-rd-off-ns = <180>;
181 gpmc,cs-wr-off-ns = <180>;
182 gpmc,adv-on-ns = <0>;
183 gpmc,adv-rd-off-ns = <18>;
184 gpmc,adv-wr-off-ns = <48>;
185 gpmc,oe-on-ns = <54>;
186 gpmc,oe-off-ns = <168>;
187 gpmc,we-on-ns = <54>;
188 gpmc,we-off-ns = <168>;
189 gpmc,rd-cycle-ns = <186>;
190 gpmc,wr-cycle-ns = <186>;
191 gpmc,access-ns = <144>;
192 gpmc,page-burst-access-ns = <24>;
193 gpmc,bus-turnaround-ns = <90>;
194 gpmc,cycle2cycle-delay-ns = <90>;
195 gpmc,wait-monitoring-ns = <0>;
196 gpmc,clk-activation-ns = <0>;
197 gpmc,wr-data-mux-bus-ns = <0>;
198 gpmc,wr-access-ns = <0>;
199 }; 18 };
200}; 19};
diff --git a/arch/arm/boot/dts/omap3-lilly-a83x.dtsi b/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
index e63133304a34..d0dd0365bfda 100644
--- a/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
+++ b/arch/arm/boot/dts/omap3-lilly-a83x.dtsi
@@ -319,12 +319,12 @@
319 pinctrl-names = "default"; 319 pinctrl-names = "default";
320 pinctrl-0 = <&tsc2048_pins>; 320 pinctrl-0 = <&tsc2048_pins>;
321 321
322 ti,x-min = <300>; 322 ti,x-min = /bits/ 16 <300>;
323 ti,x-max = <3000>; 323 ti,x-max = /bits/ 16 <3000>;
324 ti,y-min = <600>; 324 ti,y-min = /bits/ 16 <600>;
325 ti,y-max = <3600>; 325 ti,y-max = /bits/ 16 <3600>;
326 ti,x-plate-ohms = <80>; 326 ti,x-plate-ohms = /bits/ 16 <80>;
327 ti,pressure-max = <255>; 327 ti,pressure-max = /bits/ 16 <255>;
328 ti,swap-xy; 328 ti,swap-xy;
329 329
330 linux,wakeup; 330 linux,wakeup;
diff --git a/arch/arm/boot/dts/omap3-overo-base.dtsi b/arch/arm/boot/dts/omap3-overo-base.dtsi
index 18e1649681c1..28430f1596f2 100644
--- a/arch/arm/boot/dts/omap3-overo-base.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-base.dtsi
@@ -218,3 +218,58 @@
218 pinctrl-0 = <&uart2_pins>; 218 pinctrl-0 = <&uart2_pins>;
219}; 219};
220 220
221&mcbsp2 {
222 status = "okay";
223};
224
225&gpmc {
226 ranges = <0 0 0x00000000 0x20000000>;
227
228 nand@0,0 {
229 linux,mtd-name= "micron,mt29c4g96maz";
230 reg = <0 0 0>;
231 nand-bus-width = <16>;
232 gpmc,device-width = <2>;
233 ti,nand-ecc-opt = "bch8";
234
235 gpmc,sync-clk-ps = <0>;
236 gpmc,cs-on-ns = <0>;
237 gpmc,cs-rd-off-ns = <44>;
238 gpmc,cs-wr-off-ns = <44>;
239 gpmc,adv-on-ns = <6>;
240 gpmc,adv-rd-off-ns = <34>;
241 gpmc,adv-wr-off-ns = <44>;
242 gpmc,we-off-ns = <40>;
243 gpmc,oe-off-ns = <54>;
244 gpmc,access-ns = <64>;
245 gpmc,rd-cycle-ns = <82>;
246 gpmc,wr-cycle-ns = <82>;
247 gpmc,wr-access-ns = <40>;
248 gpmc,wr-data-mux-bus-ns = <0>;
249
250 #address-cells = <1>;
251 #size-cells = <1>;
252
253 partition@0 {
254 label = "SPL";
255 reg = <0 0x80000>; /* 512KiB */
256 };
257 partition@80000 {
258 label = "U-Boot";
259 reg = <0x80000 0x1C0000>; /* 1792KiB */
260 };
261 partition@1c0000 {
262 label = "Environment";
263 reg = <0x240000 0x40000>; /* 256KiB */
264 };
265 partition@280000 {
266 label = "Kernel";
267 reg = <0x280000 0x800000>; /* 8192KiB */
268 };
269 partition@780000 {
270 label = "Filesystem";
271 reg = <0xA80000 0>;
272 /* HACK: MTDPART_SIZ_FULL=0 so fill to end */
273 };
274 };
275};
diff --git a/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi b/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
index df8908adb0cb..80d236ac64a5 100644
--- a/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
@@ -62,6 +62,7 @@
62 OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0) /* mcspi1_simo.mcspi1_simo */ 62 OMAP3_CORE1_IOPAD(0x21ca, PIN_INPUT | MUX_MODE0) /* mcspi1_simo.mcspi1_simo */
63 OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0) /* mcspi1_somi.mcspi1_somi */ 63 OMAP3_CORE1_IOPAD(0x21cc, PIN_INPUT | MUX_MODE0) /* mcspi1_somi.mcspi1_somi */
64 OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT | MUX_MODE0) /* mcspi1_cs0.mcspi1_cs0 */ 64 OMAP3_CORE1_IOPAD(0x21ce, PIN_INPUT | MUX_MODE0) /* mcspi1_cs0.mcspi1_cs0 */
65 OMAP3_CORE1_IOPAD(0x21d0, PIN_INPUT | MUX_MODE0) /* mcspi1_cs1.mcspi1_cs1 */
65 >; 66 >;
66 }; 67 };
67 68
@@ -123,7 +124,7 @@
123 label = "lcd35"; 124 label = "lcd35";
124 125
125 reg = <1>; /* CS1 */ 126 reg = <1>; /* CS1 */
126 spi-max-frequency = <10000000>; 127 spi-max-frequency = <500000>;
127 spi-cpol; 128 spi-cpol;
128 spi-cpha; 129 spi-cpha;
129 130
diff --git a/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi b/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
new file mode 100644
index 000000000000..680d7262399c
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-overo-palo35-common.dtsi
@@ -0,0 +1,53 @@
1/*
2 * Copyright (C) 2015 Ash Charles, Gumstix Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * Palo35 expansion board is manufactured by Gumstix Inc.
11 */
12
13#include "omap3-overo-common-peripherals.dtsi"
14#include "omap3-overo-common-lcd35.dtsi"
15
16#include <dt-bindings/input/input.h>
17
18/ {
19 leds {
20 compatible = "gpio-leds";
21 pinctrl-names = "default";
22 pinctrl-0 = <&led_pins>;
23 heartbeat {
24 label = "overo:red:gpio21";
25 gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; /* gpio_21 */
26 linux,default-trigger = "heartbeat";
27 };
28 gpio22 {
29 label = "overo:blue:gpio22";
30 gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; /* gpio_22 */
31 };
32 };
33
34 gpio_keys {
35 compatible = "gpio-keys";
36 pinctrl-names = "default";
37 pinctrl-0 = <&button_pins>;
38 #address-cells = <1>;
39 #size-cells = <0>;
40 button0@23 {
41 label = "button0";
42 linux,code = <BTN_0>;
43 gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; /* gpio_23 */
44 gpio-key,wakeup;
45 };
46 button1@14 {
47 label = "button1";
48 linux,code = <BTN_1>;
49 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; /* gpio_14 */
50 gpio-key,wakeup;
51 };
52 };
53};
diff --git a/arch/arm/boot/dts/omap3-overo-palo35.dts b/arch/arm/boot/dts/omap3-overo-palo35.dts
new file mode 100644
index 000000000000..e3e2bce6edbb
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-overo-palo35.dts
@@ -0,0 +1,37 @@
1/*
2 * Copyright (C) 2015 Ash Charles, Gumstix Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * Palo35 expansion board is manufactured by Gumstix Inc.
11 */
12
13/dts-v1/;
14
15#include "omap3-overo.dtsi"
16#include "omap3-overo-palo35-common.dtsi"
17
18/ {
19 model = "OMAP35xx Gumstix Overo on Palo35";
20 compatible = "gumstix,omap3-overo-palo35", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3";
21};
22
23&omap3_pmx_core2 {
24 led_pins: pinmux_led_pins {
25 pinctrl-single,pins = <
26 OMAP3430_CORE2_IOPAD(0x25ea, PIN_OUTPUT | MUX_MODE4) /* etk_d7.gpio_21 */
27 OMAP3430_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4) /* etk_d8.gpio_22 */
28 >;
29 };
30
31 button_pins: pinmux_button_pins {
32 pinctrl-single,pins = <
33 OMAP3430_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE4) /* etk_d9.gpio_23 */
34 OMAP3430_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE4) /* etk_d0.gpio_14 */
35 >;
36 };
37};
diff --git a/arch/arm/boot/dts/omap3-overo-storm-palo35.dts b/arch/arm/boot/dts/omap3-overo-storm-palo35.dts
new file mode 100644
index 000000000000..4e725d2d0038
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-overo-storm-palo35.dts
@@ -0,0 +1,37 @@
1/*
2 * Copyright (C) 2015 Ash Charles, Gumstix, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * Palo35 expansion board is manufactured by Gumstix Inc.
11 */
12
13/dts-v1/;
14
15#include "omap3-overo-storm.dtsi"
16#include "omap3-overo-palo35-common.dtsi"
17
18/ {
19 model = "OMAP36xx/AM37xx/DM37xx Gumstix Overo on Palo35";
20 compatible = "gumstix,omap3-overo-palo35", "gumstix,omap3-overo", "ti,omap36xx", "ti,omap3";
21};
22
23&omap3_pmx_core2 {
24 led_pins: pinmux_led_pins {
25 pinctrl-single,pins = <
26 OMAP3630_CORE2_IOPAD(0x25ea, PIN_OUTPUT | MUX_MODE4) /* etk_d7.gpio_21 */
27 OMAP3630_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4) /* etk_d8.gpio_22 */
28 >;
29 };
30
31 button_pins: pinmux_button_pins {
32 pinctrl-single,pins = <
33 OMAP3630_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE4) /* etk_d9.gpio_23 */
34 OMAP3630_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE4) /* etk_d0.gpio_14 */
35 >;
36 };
37};
diff --git a/arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts b/arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts
new file mode 100644
index 000000000000..da6afafcc6c1
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-overo-storm-tobiduo.dts
@@ -0,0 +1,21 @@
1/*
2 * Copyright (C) 2015 Ash Charles, Gumstix, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * TobiDuo expansion board is manufactured by Gumstix Inc.
11 */
12
13/dts-v1/;
14
15#include "omap3-overo-storm.dtsi"
16#include "omap3-overo-tobiduo-common.dtsi"
17
18/ {
19 model = "OMAP36xx/AM37xx/DM37xx Gumstix Overo on TobiDuo";
20 compatible = "gumstix,omap3-overo-tobiduo", "gumstix,omap3-overo", "ti,omap36xx", "ti,omap3";
21};
diff --git a/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi b/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi
new file mode 100644
index 000000000000..334109e14613
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-overo-tobiduo-common.dtsi
@@ -0,0 +1,65 @@
1/*
2 * Copyright (C) 2015 Ash Charles, Gumstix, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * TobiDuo expansion board is manufactured by Gumstix Inc.
11 */
12
13#include "omap3-overo-common-peripherals.dtsi"
14
15#include "omap-gpmc-smsc9221.dtsi"
16
17&gpmc {
18 ranges = <4 0 0x2b000000 0x1000000>, /* CS4 */
19 <5 0 0x2c000000 0x1000000>; /* CS5 */
20
21 smsc1: ethernet@gpmc {
22 reg = <5 0 0xff>;
23 interrupt-parent = <&gpio6>;
24 interrupts = <16 IRQ_TYPE_LEVEL_LOW>; /* GPIO 176 */
25 };
26
27 smsc2: ethernet@4,0 {
28 compatible = "smsc,lan9221","smsc,lan9115";
29 bank-width = <2>;
30
31 gpmc,mux-add-data;
32 gpmc,cs-on-ns = <0>;
33 gpmc,cs-rd-off-ns = <42>;
34 gpmc,cs-wr-off-ns = <36>;
35 gpmc,adv-on-ns = <6>;
36 gpmc,adv-rd-off-ns = <12>;
37 gpmc,adv-wr-off-ns = <12>;
38 gpmc,oe-on-ns = <0>;
39 gpmc,oe-off-ns = <42>;
40 gpmc,we-on-ns = <0>;
41 gpmc,we-off-ns = <36>;
42 gpmc,rd-cycle-ns = <60>;
43 gpmc,wr-cycle-ns = <54>;
44 gpmc,access-ns = <36>;
45 gpmc,page-burst-access-ns = <0>;
46 gpmc,bus-turnaround-ns = <0>;
47 gpmc,cycle2cycle-delay-ns = <0>;
48 gpmc,wr-data-mux-bus-ns = <18>;
49 gpmc,wr-access-ns = <42>;
50 gpmc,cycle2cycle-samecsen;
51 gpmc,cycle2cycle-diffcsen;
52 vddvario-supply = <&vddvario>;
53 vdd33a-supply = <&vdd33a>;
54 reg-io-width = <4>;
55 smsc,save-mac-address;
56
57 reg = <4 0 0xff>;
58 interrupt-parent = <&gpio3>;
59 interrupts = <1 IRQ_TYPE_LEVEL_LOW>; /* GPIO 65 */
60 };
61};
62
63&lis33de {
64 status = "disabled";
65};
diff --git a/arch/arm/boot/dts/omap3-overo-tobiduo.dts b/arch/arm/boot/dts/omap3-overo-tobiduo.dts
new file mode 100644
index 000000000000..b9ce310f6e82
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-overo-tobiduo.dts
@@ -0,0 +1,21 @@
1/*
2 * Copyright (C) 2015 Ash Charles, Gumstix, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9/*
10 * TobiDuo expansion board is manufactured by Gumstix Inc.
11 */
12
13/dts-v1/;
14
15#include "omap3-overo.dtsi"
16#include "omap3-overo-tobiduo-common.dtsi"
17
18/ {
19 model = "OMAP35xx Gumstix Overo on TobiDuo";
20 compatible = "gumstix,omap3-overo-tobiduo", "gumstix,omap3-overo", "ti,omap3430", "ti,omap3";
21};
diff --git a/arch/arm/boot/dts/omap3-overo.dtsi b/arch/arm/boot/dts/omap3-overo.dtsi
index 69ca7c45bca2..932a02ff552a 100644
--- a/arch/arm/boot/dts/omap3-overo.dtsi
+++ b/arch/arm/boot/dts/omap3-overo.dtsi
@@ -32,7 +32,3 @@
32 >; 32 >;
33 }; 33 };
34}; 34};
35
36&mcbsp2 {
37 status = "okay";
38};
diff --git a/arch/arm/boot/dts/omap3-pandora-1ghz.dts b/arch/arm/boot/dts/omap3-pandora-1ghz.dts
index 9619a28dfd7d..25498f756a29 100644
--- a/arch/arm/boot/dts/omap3-pandora-1ghz.dts
+++ b/arch/arm/boot/dts/omap3-pandora-1ghz.dts
@@ -19,7 +19,7 @@
19/ { 19/ {
20 model = "Pandora Handheld Console 1GHz"; 20 model = "Pandora Handheld Console 1GHz";
21 21
22 compatible = "ti,omap36xx", "ti,omap3"; 22 compatible = "openpandora,omap3-pandora-1ghz", "ti,omap36xx", "ti,omap3";
23}; 23};
24 24
25&omap3_pmx_core2 { 25&omap3_pmx_core2 {
diff --git a/arch/arm/boot/dts/omap3-pandora-600mhz.dts b/arch/arm/boot/dts/omap3-pandora-600mhz.dts
index fb803a70a2bb..8775897a4ce7 100644
--- a/arch/arm/boot/dts/omap3-pandora-600mhz.dts
+++ b/arch/arm/boot/dts/omap3-pandora-600mhz.dts
@@ -19,7 +19,7 @@
19/ { 19/ {
20 model = "Pandora Handheld Console"; 20 model = "Pandora Handheld Console";
21 21
22 compatible = "ti,omap3"; 22 compatible = "openpandora,omap3-pandora-600mhz", "ti,omap3430", "ti,omap3";
23}; 23};
24 24
25&omap3_pmx_core2 { 25&omap3_pmx_core2 {
diff --git a/arch/arm/boot/dts/omap3-pandora-common.dtsi b/arch/arm/boot/dts/omap3-pandora-common.dtsi
index 782ab1ff1d08..f2084e6d01e7 100644
--- a/arch/arm/boot/dts/omap3-pandora-common.dtsi
+++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi
@@ -199,6 +199,38 @@
199 gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; /* GPIO_108 */ 199 gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>; /* GPIO_108 */
200 }; 200 };
201 }; 201 };
202
203 /* HS USB Host PHY on PORT 2 */
204 hsusb2_phy: hsusb2_phy {
205 compatible = "usb-nop-xceiv";
206 reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
207 vcc-supply = <&vaux2>;
208 };
209
210 /* HS USB Host VBUS supply
211 * disabling this regulator causes current leakage, and LCD flicker
212 * on earlier (CC) board revisions, so keep it always on */
213 usb_host_5v: fixed-regulator-usb_host_5v {
214 compatible = "regulator-fixed";
215 regulator-name = "usb_host_5v";
216 regulator-min-microvolt = <5000000>;
217 regulator-max-microvolt = <5000000>;
218 regulator-always-on;
219 regulator-boot-on;
220 enable-active-high;
221 gpio = <&gpio6 4 0>; /* GPIO_164 */
222 };
223
224 /* wg7210 (wifi+bt module) 32k clock buffer */
225 wg7210_32k: fixed-regulator-wg7210_32k {
226 compatible = "regulator-fixed";
227 regulator-name = "wg7210_32k";
228 regulator-min-microvolt = <1800000>;
229 regulator-max-microvolt = <1800000>;
230 regulator-always-on;
231 enable-active-high;
232 gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
233 };
202}; 234};
203 235
204&omap3_pmx_core { 236&omap3_pmx_core {
@@ -459,13 +491,18 @@
459 power = <50>; 491 power = <50>;
460}; 492};
461 493
494/*
495 * Many pandora boards have been produced with defective write-protect switches
496 * on either slot, so it was decided not to use this feature. If you know
497 * your board has good switches, feel free to uncomment wp-gpios below.
498 */
462&mmc1 { 499&mmc1 {
463 pinctrl-names = "default"; 500 pinctrl-names = "default";
464 pinctrl-0 = <&mmc1_pins>; 501 pinctrl-0 = <&mmc1_pins>;
465 vmmc-supply = <&vmmc1>; 502 vmmc-supply = <&vmmc1>;
466 bus-width = <4>; 503 bus-width = <4>;
467 cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>; 504 cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
468 wp-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; /* GPIO_126 */ 505 /*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/ /* GPIO_126 */
469}; 506};
470 507
471&mmc2 { 508&mmc2 {
@@ -473,8 +510,13 @@
473 pinctrl-0 = <&mmc2_pins>; 510 pinctrl-0 = <&mmc2_pins>;
474 vmmc-supply = <&vmmc2>; 511 vmmc-supply = <&vmmc2>;
475 bus-width = <4>; 512 bus-width = <4>;
476 cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_HIGH>; 513 cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
477 wp-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>; /* GPIO_127 */ 514 /*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/ /* GPIO_127 */
515};
516
517/* mmc3 is probed using pdata-quirks to pass wl1251 card data */
518&mmc3 {
519 status = "disabled";
478}; 520};
479 521
480/* bluetooth*/ 522/* bluetooth*/
@@ -496,6 +538,10 @@
496 port2-mode = "ehci-phy"; 538 port2-mode = "ehci-phy";
497}; 539};
498 540
541&usbhsehci {
542 phys = <0 &hsusb2_phy>;
543};
544
499&gpmc { 545&gpmc {
500 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */ 546 ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
501 547
@@ -545,7 +591,7 @@
545 reg = <0x280000 0xa00000>; 591 reg = <0x280000 0xa00000>;
546 }; 592 };
547 593
548 filesystem@680000 { 594 filesystem@c80000 {
549 label = "rootfs"; 595 label = "rootfs";
550 reg = <0xc80000 0>; /* 0 = MTDPART_SIZ_FULL */ 596 reg = <0xc80000 0>; /* 0 = MTDPART_SIZ_FULL */
551 }; 597 };
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 275618f19a43..3cc8f357d5b8 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -510,6 +510,13 @@
510 }; 510 };
511 }; 511 };
512 }; 512 };
513
514 palmas_power_button: palmas_power_button {
515 compatible = "ti,palmas-pwrbutton";
516 interrupt-parent = <&palmas>;
517 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
518 wakeup-source;
519 };
513 }; 520 };
514 521
515 twl6040: twl@4b { 522 twl6040: twl@4b {
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index b1a1263e6001..4205a8ac9ddb 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -873,7 +873,12 @@
873 dwc3@4a030000 { 873 dwc3@4a030000 {
874 compatible = "snps,dwc3"; 874 compatible = "snps,dwc3";
875 reg = <0x4a030000 0x10000>; 875 reg = <0x4a030000 0x10000>;
876 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 876 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
877 <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
878 <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
879 interrupt-names = "peripheral",
880 "host",
881 "otg";
877 phys = <&usb2_phy>, <&usb3_phy>; 882 phys = <&usb2_phy>, <&usb3_phy>;
878 phy-names = "usb2-phy", "usb3-phy"; 883 phy-names = "usb2-phy", "usb3-phy";
879 dr_mode = "peripheral"; 884 dr_mode = "peripheral";
diff --git a/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
new file mode 100644
index 000000000000..3daec912b4bf
--- /dev/null
+++ b/arch/arm/boot/dts/orion5x-linkstation-lswtgl.dts
@@ -0,0 +1,273 @@
1/*
2 * Device Tree file for Buffalo Linkstation LS-WTGL
3 *
4 * Copyright (C) 2015, Roger Shimizu <rogershimizu@gmail.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED , 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/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include "orion5x-mv88f5182.dtsi"
50
51/ {
52 model = "Buffalo Linkstation LS-WTGL";
53 compatible = "buffalo,lswtgl", "marvell,orion5x-88f5182", "marvell,orion5x";
54
55 memory { /* 64 MB */
56 device_type = "memory";
57 reg = <0x00000000 0x4000000>;
58 };
59
60 chosen {
61 bootargs = "console=ttyS0,115200n8 earlyprintk";
62 linux,stdout-path = &uart0;
63 };
64
65 soc {
66 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
67 <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
68 <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
69
70 internal-regs {
71 pinctrl: pinctrl@10000 {
72 pinctrl-0 = <&pmx_usb_power &pmx_power_hdd
73 &pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
74 pinctrl-names = "default";
75
76 pmx_led_power: pmx-leds {
77 marvell,pins = "mpp0";
78 marvell,function = "gpio";
79 };
80
81 pmx_led_alarm: pmx-leds {
82 marvell,pins = "mpp2";
83 marvell,function = "gpio";
84 };
85
86 pmx_led_info: pmx-leds {
87 marvell,pins = "mpp3";
88 marvell,function = "gpio";
89 };
90
91 pmx_power_hdd: pmx-power-hdd {
92 marvell,pins = "mpp1";
93 marvell,function = "gpio";
94 };
95
96 pmx_usb_power: pmx-usb-power {
97 marvell,pins = "mpp9";
98 marvell,function = "gpio";
99 };
100
101 pmx_sata0: pmx-sata0 {
102 marvell,pins = "mpp12";
103 marvell,function = "sata0";
104 };
105
106 pmx_sata1: pmx-sata1 {
107 marvell,pins = "mpp13";
108 marvell,function = "sata1";
109 };
110
111 pmx_fan_high: pmx-fan-high {
112 marvell,pins = "mpp14";
113 marvell,function = "gpio";
114 };
115
116 pmx_fan_low: pmx-fan-low {
117 marvell,pins = "mpp17";
118 marvell,function = "gpio";
119 };
120
121 pmx_fan_lock: pmx-fan-lock {
122 marvell,pins = "mpp6";
123 marvell,function = "gpio";
124 };
125
126 pmx_power_switch: pmx-power-switch {
127 marvell,pins = "mpp8", "mpp10";
128 marvell,function = "gpio";
129 };
130 };
131 };
132 };
133
134 gpio_keys {
135 compatible = "gpio-keys";
136 #address-cells = <1>;
137 #size-cells = <0>;
138 pinctrl-0 = <&pmx_power_switch>;
139 pinctrl-names = "default";
140
141 button@1 {
142 label = "Power-on Switch";
143 linux,code = <KEY_RESERVED>;
144 linux,input-type = <5>;
145 gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
146 };
147
148 button@2 {
149 label = "Power-auto Switch";
150 linux,code = <KEY_ESC>;
151 linux,input-type = <5>;
152 gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
153 };
154 };
155
156 gpio_leds {
157 compatible = "gpio-leds";
158 pinctrl-0 = <&pmx_led_power &pmx_led_alarm
159 &pmx_led_info>;
160 pinctrl-names = "default";
161
162 led@1 {
163 label = "lswtgl:blue:power";
164 gpios = <&gpio0 0 GPIO_ACTIVE_LOW>;
165 };
166
167 led@2 {
168 label = "lswtgl:red:alarm";
169 gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
170 };
171
172 led@3 {
173 label = "lswtgl:amber:info";
174 gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
175 };
176 };
177
178 gpio_fan {
179 compatible = "gpio-fan";
180 pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
181 pinctrl-names = "default";
182
183 gpios = <&gpio0 14 GPIO_ACTIVE_LOW
184 &gpio0 17 GPIO_ACTIVE_LOW>;
185
186 gpio-fan,speed-map = <0 3
187 1500 2
188 3250 1
189 5000 0>;
190
191 alarm-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
192 };
193
194 restart_poweroff {
195 compatible = "restart-poweroff";
196 };
197
198 regulators {
199 compatible = "simple-bus";
200 #address-cells = <1>;
201 #size-cells = <0>;
202 pinctrl-0 = <&pmx_power_hdd &pmx_usb_power>;
203 pinctrl-names = "default";
204
205 usb_power: regulator@1 {
206 compatible = "regulator-fixed";
207 reg = <1>;
208 regulator-name = "USB Power";
209 regulator-min-microvolt = <5000000>;
210 regulator-max-microvolt = <5000000>;
211 enable-active-high;
212 regulator-always-on;
213 regulator-boot-on;
214 gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
215 };
216
217 hdd_power: regulator@2 {
218 compatible = "regulator-fixed";
219 reg = <2>;
220 regulator-name = "HDD Power";
221 regulator-min-microvolt = <5000000>;
222 regulator-max-microvolt = <5000000>;
223 enable-active-high;
224 regulator-always-on;
225 regulator-boot-on;
226 gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
227 };
228 };
229};
230
231&mdio {
232 status = "okay";
233
234 ethphy: ethernet-phy {
235 reg = <8>;
236 };
237};
238
239&eth {
240 status = "okay";
241
242 ethernet-port@0 {
243 phy-handle = <&ethphy>;
244 };
245};
246
247&ehci0 {
248 status = "okay";
249};
250
251&i2c {
252 status = "okay";
253
254 rtc {
255 compatible = "ricoh,rs5c372a";
256 reg = <0x32>;
257 };
258};
259
260&wdt {
261 status = "disabled";
262};
263
264&sata {
265 pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
266 pinctrl-names = "default";
267 status = "okay";
268 nr-ports = <2>;
269};
270
271&uart0 {
272 status = "okay";
273};
diff --git a/arch/arm/boot/dts/orion5x-lswsgl.dts b/arch/arm/boot/dts/orion5x-lswsgl.dts
new file mode 100644
index 000000000000..6b47a52ceb9c
--- /dev/null
+++ b/arch/arm/boot/dts/orion5x-lswsgl.dts
@@ -0,0 +1,276 @@
1/*
2 * Copyright (C) 2015 Benjamin Cama <benoar@dolka.fr>
3 * Copyright (C) 2014 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
4 * Based on the board file arch/arm/mach-orion5x/lsmini-setup.c,
5 * Copyright (C) 2008 Alexey Kopytko <alexey@kopytko.ru>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46/dts-v1/;
47
48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/input/input.h>
50#include <dt-bindings/interrupt-controller/irq.h>
51#include "orion5x-mv88f5182.dtsi"
52
53/ {
54 model = "Buffalo Linkstation Mini (LS-WSGL)";
55 compatible = "buffalo,lswsgl", "marvell,orion5x-88f5182", "marvell,orion5x";
56
57 memory {
58 reg = <0x00000000 0x8000000>; /* 128 MB */
59 };
60
61 chosen {
62 bootargs = "console=ttyS0,115200 earlyprintk";
63 linux,stdout-path = &uart0;
64 };
65
66 soc {
67 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
68 <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
69 <MBUS_ID(0x01, 0x0f) 0 0xf4000000 0x40000>;
70 };
71
72 gpio-keys {
73 compatible = "gpio-keys";
74 pinctrl-0 = <&pmx_buttons>;
75 pinctrl-names = "default";
76 #address-cells = <1>;
77 #size-cells = <0>;
78 func {
79 label = "Function Button";
80 linux,code = <KEY_OPTION>;
81 gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
82 };
83
84 power {
85 label = "Power-on Switch";
86 linux,input-type = <5>; /* EV_SW */
87 linux,code = <KEY_RESERVED>; /* LSMINI_SW_POWER */
88 gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
89 };
90
91 autopower {
92 label = "Power-auto Switch";
93 linux,input-type = <5>; /* EV_SW */
94 linux,code = <KEY_ESC>; /* LSMINI_SW_AUTOPOWER */
95 gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
96 };
97 };
98
99 gpio-leds {
100 compatible = "gpio-leds";
101 pinctrl-0 = <&pmx_led_alarm &pmx_led_info &pmx_led_func
102 &pmx_led_power>;
103 pinctrl-names = "default";
104
105 alarm {
106 label = "lswsgl:alarm:red";
107 gpio = <&gpio0 2 GPIO_ACTIVE_LOW>;
108 };
109
110 info {
111 label = "lswsgl:info:amber";
112 gpio = <&gpio0 3 GPIO_ACTIVE_LOW>;
113 };
114
115 func {
116 label = "lswsgl:func:blue:top";
117 gpio = <&gpio0 9 GPIO_ACTIVE_LOW>;
118 };
119
120 power {
121 label = "lswsgl:power:blue:bottom";
122 gpio = <&gpio0 14 GPIO_ACTIVE_LOW>;
123 default-state = "on";
124 };
125 };
126
127 restart_poweroff {
128 compatible = "restart-poweroff";
129 };
130
131 regulators {
132 compatible = "simple-bus";
133 #address-cells = <1>;
134 #size-cells = <0>;
135 pinctrl-0 = <&pmx_sata0_power &pmx_sata1_power &pmx_usb_power>;
136 pinctrl-names = "default";
137
138 sata0_power: regulator@0 {
139 compatible = "regulator-fixed";
140 reg = <0>;
141 regulator-name = "SATA0 Power";
142 regulator-min-microvolt = <5000000>;
143 regulator-max-microvolt = <5000000>;
144 enable-active-high;
145 regulator-always-on;
146 regulator-boot-on;
147 gpio = <&gpio0 1 GPIO_ACTIVE_HIGH>;
148 };
149
150 sata1_power: regulator@1 {
151 compatible = "regulator-fixed";
152 reg = <1>;
153 regulator-name = "SATA1 Power";
154 regulator-min-microvolt = <5000000>;
155 regulator-max-microvolt = <5000000>;
156 enable-active-high;
157 regulator-always-on;
158 regulator-boot-on;
159 gpio = <&gpio0 19 GPIO_ACTIVE_HIGH>;
160 };
161
162 usb_power: regulator@2 {
163 compatible = "regulator-fixed";
164 reg = <2>;
165 regulator-name = "USB Power";
166 regulator-min-microvolt = <5000000>;
167 regulator-max-microvolt = <5000000>;
168 enable-active-high;
169 regulator-always-on;
170 regulator-boot-on;
171 gpio = <&gpio0 16 GPIO_ACTIVE_HIGH>;
172 };
173 };
174};
175
176&devbus_bootcs {
177 status = "okay";
178
179 devbus,keep-config;
180
181 flash@0 {
182 compatible = "cfi-flash";
183 reg = <0 0x40000>;
184 bank-width = <1>;
185 #address-cells = <1>;
186 #size-cells = <1>;
187
188 partition@0 {
189 label = "Full256Kb";
190 reg = <0 0x40000>;
191 read-only;
192 };
193 };
194};
195
196&mdio {
197 status = "okay";
198
199 ethphy: ethernet-phy {
200 reg = <8>;
201 };
202};
203
204&ehci0 {
205 status = "okay";
206};
207
208&eth {
209 status = "okay";
210
211 ethernet-port@0 {
212 phy-handle = <&ethphy>;
213 };
214};
215
216&i2c {
217 status = "okay";
218 clock-frequency = <100000>;
219 #address-cells = <1>;
220
221 rtc@32 {
222 compatible = "ricoh,rs5c372a";
223 reg = <0x32>;
224 };
225};
226
227&pinctrl {
228 pmx_buttons: pmx-buttons {
229 marvell,pins = "mpp15", "mpp17", "mpp18";
230 marvell,function = "gpio";
231 };
232
233 pmx_led_alarm: pmx-leds {
234 marvell,pins = "mpp2";
235 marvell,function = "gpio";
236 };
237
238 pmx_led_info: pmx-leds {
239 marvell,pins = "mpp3";
240 marvell,function = "gpio";
241 };
242
243 pmx_led_func: pmx-leds {
244 marvell,pins = "mpp9";
245 marvell,function = "gpio";
246 };
247
248 pmx_led_power: pmx-leds {
249 marvell,pins = "mpp14";
250 marvell,function = "gpio";
251 };
252
253 pmx_sata0_power: pmx-sata0-power {
254 marvell,pins = "mpp1";
255 marvell,function = "gpio";
256 };
257
258 pmx_sata1_power: pmx-sata1-power {
259 marvell,pins = "mpp19";
260 marvell,function = "gpio";
261 };
262
263 pmx_usb_power: pmx-usb-power {
264 marvell,pins = "mpp16";
265 marvell,function = "gpio";
266 };
267};
268
269&sata {
270 status = "okay";
271 nr-ports = <2>;
272};
273
274&uart0 {
275 status = "okay";
276};
diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi
index 90b99714ad80..7f68a1ee7073 100644
--- a/arch/arm/boot/dts/pxa27x.dtsi
+++ b/arch/arm/boot/dts/pxa27x.dtsi
@@ -7,6 +7,15 @@
7 compatible = "marvell,pxa27x"; 7 compatible = "marvell,pxa27x";
8 8
9 pxabus { 9 pxabus {
10 pdma: dma-controller@40000000 {
11 compatible = "marvell,pdma-1.0";
12 reg = <0x40000000 0x10000>;
13 interrupts = <25>;
14 #dma-channels = <32>;
15 #dma-cells = <2>;
16 status = "okay";
17 };
18
10 pxairq: interrupt-controller@40d00000 { 19 pxairq: interrupt-controller@40d00000 {
11 marvell,intc-priority; 20 marvell,intc-priority;
12 marvell,intc-nr-irqs = <34>; 21 marvell,intc-nr-irqs = <34>;
@@ -17,6 +26,14 @@
17 clocks = <&clks CLK_NONE>; 26 clocks = <&clks CLK_NONE>;
18 }; 27 };
19 28
29 pxa27x_ohci: usb@4c000000 {
30 compatible = "marvell,pxa-ohci";
31 reg = <0x4c000000 0x10000>;
32 interrupts = <3>;
33 clocks = <&clks CLK_USBHOST>;
34 status = "disabled";
35 };
36
20 pwm0: pwm@40b00000 { 37 pwm0: pwm@40b00000 {
21 compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm"; 38 compatible = "marvell,pxa270-pwm", "marvell,pxa250-pwm";
22 reg = <0x40b00000 0x10>; 39 reg = <0x40b00000 0x10>;
@@ -50,6 +67,8 @@
50 reg = <0x40f00180 0x24>; 67 reg = <0x40f00180 0x24>;
51 interrupts = <6>; 68 interrupts = <6>;
52 clocks = <&clks CLK_PWRI2C>; 69 clocks = <&clks CLK_PWRI2C>;
70 #address-cells = <0x1>;
71 #size-cells = <0>;
53 status = "disabled"; 72 status = "disabled";
54 }; 73 };
55 74
@@ -68,6 +87,23 @@
68 clocks = <&clks CLK_KEYPAD>; 87 clocks = <&clks CLK_KEYPAD>;
69 status = "disabled"; 88 status = "disabled";
70 }; 89 };
90
91 pxa_camera: imaging@50000000 {
92 compatible = "marvell,pxa270-qci";
93 reg = <0x50000000 0x1000>;
94 interrupts = <33>;
95 dmas = <&pdma 68 0 /* Y channel */
96 &pdma 69 0 /* U channel */
97 &pdma 70 0>; /* V channel */
98 dma-names = "CI_Y", "CI_U", "CI_V";
99
100 clocks = <&clks CLK_CAMERA>;
101 clock-names = "ciclk";
102 clock-frequency = <5000000>;
103 clock-output-names = "qci_mclk";
104
105 status = "disabled";
106 };
71 }; 107 };
72 108
73 clocks { 109 clocks {
diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi
index 71a0cd7388d1..5e5af078b9b5 100644
--- a/arch/arm/boot/dts/pxa2xx.dtsi
+++ b/arch/arm/boot/dts/pxa2xx.dtsi
@@ -128,6 +128,10 @@
128 compatible = "marvell,pxa-mmc"; 128 compatible = "marvell,pxa-mmc";
129 reg = <0x41100000 0x1000>; 129 reg = <0x41100000 0x1000>;
130 interrupts = <23>; 130 interrupts = <23>;
131 clocks = <&clks CLK_MMC>;
132 dmas = <&pdma 21 3
133 &pdma 22 3>;
134 dma-names = "rx", "tx";
131 status = "disabled"; 135 status = "disabled";
132 }; 136 };
133 137
diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi
index 7ad0b1771098..cf6998a0804d 100644
--- a/arch/arm/boot/dts/pxa3xx.dtsi
+++ b/arch/arm/boot/dts/pxa3xx.dtsi
@@ -6,6 +6,15 @@
6 compatible = "marvell,pxa3xx"; 6 compatible = "marvell,pxa3xx";
7 7
8 pxabus { 8 pxabus {
9 pdma: dma-controller@40000000 {
10 compatible = "marvell,pdma-1.0";
11 reg = <0x40000000 0x10000>;
12 interrupts = <25>;
13 #dma-channels = <32>;
14 #dma-cells = <2>;
15 status = "okay";
16 };
17
9 pwri2c: i2c@40f500c0 { 18 pwri2c: i2c@40f500c0 {
10 compatible = "mrvl,pwri2c"; 19 compatible = "mrvl,pwri2c";
11 reg = <0x40f500c0 0x30>; 20 reg = <0x40f500c0 0x30>;
@@ -21,6 +30,8 @@
21 reg = <0x43100000 90>; 30 reg = <0x43100000 90>;
22 interrupts = <45>; 31 interrupts = <45>;
23 clocks = <&clks CLK_NAND>; 32 clocks = <&clks CLK_NAND>;
33 dmas = <&pdma 97>;
34 dma-names = "data";
24 #address-cells = <1>; 35 #address-cells = <1>;
25 #size-cells = <1>; 36 #size-cells = <1>;
26 status = "disabled"; 37 status = "disabled";
@@ -42,6 +53,47 @@
42 interrupt-controller; 53 interrupt-controller;
43 #interrupt-cells = <0x2>; 54 #interrupt-cells = <0x2>;
44 }; 55 };
56
57 mmc0: mmc@41100000 {
58 compatible = "marvell,pxa-mmc";
59 reg = <0x41100000 0x1000>;
60 interrupts = <23>;
61 clocks = <&clks CLK_MMC>;
62 dmas = <&pdma 21 3
63 &pdma 22 3>;
64 dma-names = "rx", "tx";
65 status = "disabled";
66 };
67
68 mmc1: mmc@42000000 {
69 compatible = "marvell,pxa-mmc";
70 reg = <0x42000000 0x1000>;
71 interrupts = <41>;
72 clocks = <&clks CLK_MMC1>;
73 dmas = <&pdma 93 3
74 &pdma 94 3>;
75 dma-names = "rx", "tx";
76 status = "disabled";
77 };
78
79 mmc2: mmc@42500000 {
80 compatible = "marvell,pxa-mmc";
81 reg = <0x42500000 0x1000>;
82 interrupts = <55>;
83 clocks = <&clks CLK_MMC2>;
84 dmas = <&pdma 46 3
85 &pdma 47 3>;
86 dma-names = "rx", "tx";
87 status = "disabled";
88 };
89
90 pxa3xx_ohci: usb@4c000000 {
91 compatible = "marvell,pxa-ohci";
92 reg = <0x4c000000 0x10000>;
93 interrupts = <3>;
94 clocks = <&clks CLK_USBHOST>;
95 status = "disabled";
96 };
45 }; 97 };
46 98
47 clocks { 99 clocks {
diff --git a/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts b/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
index 71512b3ca444..34ccb260f12a 100644
--- a/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-cm-qs600.dts
@@ -67,6 +67,12 @@
67 bias-pull-down; 67 bias-pull-down;
68 }; 68 };
69 69
70 pm8921_l5: l5 {
71 regulator-min-microvolt = <2750000>;
72 regulator-max-microvolt = <3000000>;
73 bias-pull-down;
74 };
75
70 pm8921_l23: l23 { 76 pm8921_l23: l23 {
71 regulator-min-microvolt = <1700000>; 77 regulator-min-microvolt = <1700000>;
72 regulator-max-microvolt = <1900000>; 78 regulator-max-microvolt = <1900000>;
@@ -140,19 +146,33 @@
140 status = "okay"; 146 status = "okay";
141 }; 147 };
142 148
149 /* on board fixed 3.3v supply */
150 v3p3_fixed: v3p3 {
151 compatible = "regulator-fixed";
152 regulator-name = "PCIE V3P3";
153 regulator-min-microvolt = <3300000>;
154 regulator-max-microvolt = <3300000>;
155 regulator-always-on;
156 };
157
143 amba { 158 amba {
144 /* eMMC */ 159 /* eMMC */
145 sdcc1: sdcc@12400000 { 160 sdcc1: sdcc@12400000 {
146 status = "okay"; 161 status = "okay";
162 vmmc-supply = <&pm8921_l5>;
163 vqmmc-supply = <&pm8921_s4>;
147 }; 164 };
148 165
149 /* External micro SD card */ 166 /* External micro SD card */
150 sdcc3: sdcc@12180000 { 167 sdcc3: sdcc@12180000 {
151 status = "okay"; 168 status = "okay";
169 vmmc-supply = <&v3p3_fixed>;
152 }; 170 };
153 /* WLAN */ 171 /* WLAN */
154 sdcc4: sdcc@121c0000 { 172 sdcc4: sdcc@121c0000 {
155 status = "okay"; 173 status = "okay";
174 vmmc-supply = <&v3p3_fixed>;
175 vqmmc-supply = <&v3p3_fixed>;
156 }; 176 };
157 }; 177 };
158 }; 178 };
diff --git a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
index a7c939ba8873..88d6655ddaf6 100644
--- a/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-ifc6410.dts
@@ -7,6 +7,7 @@
7 7
8 aliases { 8 aliases {
9 serial0 = &gsbi7_serial; 9 serial0 = &gsbi7_serial;
10 serial1 = &gsbi6_serial;
10 }; 11 };
11 12
12 soc { 13 soc {
@@ -73,6 +74,12 @@
73 bias-pull-down; 74 bias-pull-down;
74 }; 75 };
75 76
77 pm8921_l5: l5 {
78 regulator-min-microvolt = <2750000>;
79 regulator-max-microvolt = <3000000>;
80 bias-pull-down;
81 };
82
76 pm8921_l6: l6 { 83 pm8921_l6: l6 {
77 regulator-min-microvolt = <2950000>; 84 regulator-min-microvolt = <2950000>;
78 regulator-max-microvolt = <2950000>; 85 regulator-max-microvolt = <2950000>;
@@ -84,9 +91,25 @@
84 regulator-max-microvolt = <1900000>; 91 regulator-max-microvolt = <1900000>;
85 bias-pull-down; 92 bias-pull-down;
86 }; 93 };
94
95 pm8921_lvs1: lvs1 {
96 bias-pull-down;
97 };
87 }; 98 };
88 }; 99 };
89 100
101 ext_3p3v: regulator-fixed@1 {
102 compatible = "regulator-fixed";
103 regulator-min-microvolt = <3300000>;
104 regulator-max-microvolt = <3300000>;
105 regulator-name = "ext_3p3v";
106 regulator-type = "voltage";
107 startup-delay-us = <0>;
108 gpio = <&tlmm_pinmux 77 GPIO_ACTIVE_HIGH>;
109 enable-active-high;
110 regulator-boot-on;
111 };
112
90 gsbi3: gsbi@16200000 { 113 gsbi3: gsbi@16200000 {
91 status = "okay"; 114 status = "okay";
92 qcom,mode = <GSBI_PROT_I2C>; 115 qcom,mode = <GSBI_PROT_I2C>;
@@ -115,6 +138,18 @@
115 }; 138 };
116 }; 139 };
117 140
141 gsbi@16500000 {
142 status = "ok";
143 qcom,mode = <GSBI_PROT_I2C_UART>;
144
145 serial@16540000 {
146 status = "ok";
147
148 pinctrl-names = "default";
149 pinctrl-0 = <&uart_pins>;
150 };
151 };
152
118 gsbi@16600000 { 153 gsbi@16600000 {
119 status = "ok"; 154 status = "ok";
120 qcom,mode = <GSBI_PROT_I2C_UART>; 155 qcom,mode = <GSBI_PROT_I2C_UART>;
@@ -175,11 +210,14 @@
175 /* eMMC */ 210 /* eMMC */
176 sdcc1: sdcc@12400000 { 211 sdcc1: sdcc@12400000 {
177 status = "okay"; 212 status = "okay";
213 vmmc-supply = <&pm8921_l5>;
214 vqmmc-supply = <&pm8921_s4>;
178 }; 215 };
179 216
180 /* External micro SD card */ 217 /* External micro SD card */
181 sdcc3: sdcc@12180000 { 218 sdcc3: sdcc@12180000 {
182 status = "okay"; 219 status = "okay";
220 vmmc-supply = <&pm8921_l6>;
183 pinctrl-names = "default"; 221 pinctrl-names = "default";
184 pinctrl-0 = <&card_detect>; 222 pinctrl-0 = <&card_detect>;
185 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>; 223 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
@@ -187,6 +225,8 @@
187 /* WLAN */ 225 /* WLAN */
188 sdcc4: sdcc@121c0000 { 226 sdcc4: sdcc@121c0000 {
189 status = "okay"; 227 status = "okay";
228 vmmc-supply = <&ext_3p3v>;
229 vqmmc-supply = <&pm8921_lvs1>;
190 }; 230 };
191 }; 231 };
192 }; 232 };
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index df2061ec630d..d2e94d647c27 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -6,7 +6,6 @@
6#include <dt-bindings/clock/qcom,mmcc-msm8960.h> 6#include <dt-bindings/clock/qcom,mmcc-msm8960.h>
7#include <dt-bindings/soc/qcom,gsbi.h> 7#include <dt-bindings/soc/qcom,gsbi.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/interrupt-controller/arm-gic.h>
9
10/ { 9/ {
11 model = "Qualcomm APQ8064"; 10 model = "Qualcomm APQ8064";
12 compatible = "qcom,apq8064"; 11 compatible = "qcom,apq8064";
@@ -127,6 +126,13 @@
127 function = "gsbi3"; 126 function = "gsbi3";
128 }; 127 };
129 }; 128 };
129
130 uart_pins: uart_pins {
131 mux {
132 pins = "gpio14", "gpio15", "gpio16", "gpio17";
133 function = "gsbi6";
134 };
135 };
130 }; 136 };
131 137
132 intc: interrupt-controller@2000000 { 138 intc: interrupt-controller@2000000 {
@@ -243,13 +249,13 @@
243 gsbi3: gsbi@16200000 { 249 gsbi3: gsbi@16200000 {
244 status = "disabled"; 250 status = "disabled";
245 compatible = "qcom,gsbi-v1.0.0"; 251 compatible = "qcom,gsbi-v1.0.0";
252 cell-index = <3>;
246 reg = <0x16200000 0x100>; 253 reg = <0x16200000 0x100>;
247 clocks = <&gcc GSBI3_H_CLK>; 254 clocks = <&gcc GSBI3_H_CLK>;
248 clock-names = "iface"; 255 clock-names = "iface";
249 #address-cells = <1>; 256 #address-cells = <1>;
250 #size-cells = <1>; 257 #size-cells = <1>;
251 ranges; 258 ranges;
252
253 i2c3: i2c@16280000 { 259 i2c3: i2c@16280000 {
254 compatible = "qcom,i2c-qup-v1.1.1"; 260 compatible = "qcom,i2c-qup-v1.1.1";
255 reg = <0x16280000 0x1000>; 261 reg = <0x16280000 0x1000>;
@@ -260,6 +266,28 @@
260 }; 266 };
261 }; 267 };
262 268
269 gsbi6: gsbi@16500000 {
270 status = "disabled";
271 compatible = "qcom,gsbi-v1.0.0";
272 cell-index = <6>;
273 reg = <0x16500000 0x03>;
274 clocks = <&gcc GSBI6_H_CLK>;
275 clock-names = "iface";
276 #address-cells = <1>;
277 #size-cells = <1>;
278 ranges;
279
280 gsbi6_serial: serial@16540000 {
281 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
282 reg = <0x16540000 0x100>,
283 <0x16500000 0x03>;
284 interrupts = <0 156 0x0>;
285 clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
286 clock-names = "core", "iface";
287 status = "disabled";
288 };
289 };
290
263 gsbi7: gsbi@16600000 { 291 gsbi7: gsbi@16600000 {
264 status = "disabled"; 292 status = "disabled";
265 compatible = "qcom,gsbi-v1.0.0"; 293 compatible = "qcom,gsbi-v1.0.0";
@@ -287,6 +315,53 @@
287 compatible = "qcom,ssbi"; 315 compatible = "qcom,ssbi";
288 reg = <0x00500000 0x1000>; 316 reg = <0x00500000 0x1000>;
289 qcom,controller-type = "pmic-arbiter"; 317 qcom,controller-type = "pmic-arbiter";
318
319 pmicintc: pmic@0 {
320 compatible = "qcom,pm8921";
321 interrupt-parent = <&tlmm_pinmux>;
322 interrupts = <74 8>;
323 #interrupt-cells = <2>;
324 interrupt-controller;
325 #address-cells = <1>;
326 #size-cells = <0>;
327
328 pm8921_gpio: gpio@150 {
329
330 compatible = "qcom,pm8921-gpio";
331 reg = <0x150>;
332 interrupts = <192 1>, <193 1>, <194 1>,
333 <195 1>, <196 1>, <197 1>,
334 <198 1>, <199 1>, <200 1>,
335 <201 1>, <202 1>, <203 1>,
336 <204 1>, <205 1>, <206 1>,
337 <207 1>, <208 1>, <209 1>,
338 <210 1>, <211 1>, <212 1>,
339 <213 1>, <214 1>, <215 1>,
340 <216 1>, <217 1>, <218 1>,
341 <219 1>, <220 1>, <221 1>,
342 <222 1>, <223 1>, <224 1>,
343 <225 1>, <226 1>, <227 1>,
344 <228 1>, <229 1>, <230 1>,
345 <231 1>, <232 1>, <233 1>,
346 <234 1>, <235 1>;
347
348 gpio-controller;
349 #gpio-cells = <2>;
350
351 };
352
353 pm8921_mpps: mpps@50 {
354 compatible = "qcom,pm8921-mpp";
355 reg = <0x50>;
356 gpio-controller;
357 #gpio-cells = <2>;
358 interrupts =
359 <128 1>, <129 1>, <130 1>, <131 1>,
360 <132 1>, <133 1>, <134 1>, <135 1>,
361 <136 1>, <137 1>, <138 1>, <139 1>;
362 };
363
364 };
290 }; 365 };
291 366
292 gcc: clock-controller@900000 { 367 gcc: clock-controller@900000 {
@@ -448,14 +523,6 @@
448 }; 523 };
449 524
450 /* Temporary fixed regulator */ 525 /* Temporary fixed regulator */
451 vsdcc_fixed: vsdcc-regulator {
452 compatible = "regulator-fixed";
453 regulator-name = "SDCC Power";
454 regulator-min-microvolt = <2700000>;
455 regulator-max-microvolt = <2700000>;
456 regulator-always-on;
457 };
458
459 sdcc1bam:dma@12402000{ 526 sdcc1bam:dma@12402000{
460 compatible = "qcom,bam-v1.3.0"; 527 compatible = "qcom,bam-v1.3.0";
461 reg = <0x12402000 0x8000>; 528 reg = <0x12402000 0x8000>;
@@ -505,7 +572,6 @@
505 non-removable; 572 non-removable;
506 cap-sd-highspeed; 573 cap-sd-highspeed;
507 cap-mmc-highspeed; 574 cap-mmc-highspeed;
508 vmmc-supply = <&vsdcc_fixed>;
509 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>; 575 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
510 dma-names = "tx", "rx"; 576 dma-names = "tx", "rx";
511 }; 577 };
@@ -524,7 +590,6 @@
524 cap-mmc-highspeed; 590 cap-mmc-highspeed;
525 max-frequency = <192000000>; 591 max-frequency = <192000000>;
526 no-1-8-v; 592 no-1-8-v;
527 vmmc-supply = <&vsdcc_fixed>;
528 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>; 593 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
529 dma-names = "tx", "rx"; 594 dma-names = "tx", "rx";
530 }; 595 };
@@ -542,8 +607,6 @@
542 cap-sd-highspeed; 607 cap-sd-highspeed;
543 cap-mmc-highspeed; 608 cap-mmc-highspeed;
544 max-frequency = <48000000>; 609 max-frequency = <48000000>;
545 vmmc-supply = <&vsdcc_fixed>;
546 vqmmc-supply = <&vsdcc_fixed>;
547 dmas = <&sdcc4bam 2>, <&sdcc4bam 1>; 610 dmas = <&sdcc4bam 2>, <&sdcc4bam 1>;
548 dma-names = "tx", "rx"; 611 dma-names = "tx", "rx";
549 pinctrl-names = "default"; 612 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index e0b2ce2910e0..ef2fe72b54c9 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -67,15 +67,16 @@
67 cpu-offset = <0x40000>; 67 cpu-offset = <0x40000>;
68 }; 68 };
69 69
70 msmgpio: gpio@800000 { 70 tlmm: pinctrl@800000 {
71 compatible = "qcom,msm-gpio"; 71 compatible = "qcom,msm8660-pinctrl";
72 reg = <0x00800000 0x4000>; 72 reg = <0x800000 0x4000>;
73
73 gpio-controller; 74 gpio-controller;
74 #gpio-cells = <2>; 75 #gpio-cells = <2>;
75 ngpio = <173>;
76 interrupts = <0 16 0x4>; 76 interrupts = <0 16 0x4>;
77 interrupt-controller; 77 interrupt-controller;
78 #interrupt-cells = <2>; 78 #interrupt-cells = <2>;
79
79 }; 80 };
80 81
81 gcc: clock-controller@900000 { 82 gcc: clock-controller@900000 {
@@ -115,7 +116,7 @@
115 116
116 pmicintc: pmic@0 { 117 pmicintc: pmic@0 {
117 compatible = "qcom,pm8058"; 118 compatible = "qcom,pm8058";
118 interrupt-parent = <&msmgpio>; 119 interrupt-parent = <&tlmm>;
119 interrupts = <88 8>; 120 interrupts = <88 8>;
120 #interrupt-cells = <2>; 121 #interrupt-cells = <2>;
121 interrupt-controller; 122 interrupt-controller;
diff --git a/arch/arm/boot/dts/qcom-msm8960-cdp.dts b/arch/arm/boot/dts/qcom-msm8960-cdp.dts
index 7f70fae90959..fad71d5527b0 100644
--- a/arch/arm/boot/dts/qcom-msm8960-cdp.dts
+++ b/arch/arm/boot/dts/qcom-msm8960-cdp.dts
@@ -26,6 +26,308 @@
26 status = "okay"; 26 status = "okay";
27 }; 27 };
28 }; 28 };
29
30 rpm@108000 {
31 regulators {
32 compatible = "qcom,rpm-pm8921-regulators";
33 vin_lvs1_3_6-supply = <&pm8921_s4>;
34 vin_lvs2-supply = <&pm8921_s4>;
35 vin_lvs4_5_7-supply = <&pm8921_s4>;
36 vdd_ncp-supply = <&pm8921_l6>;
37 vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
38 vdd_l21_l23_l29-supply = <&pm8921_s8>;
39 vdd_l24-supply = <&pm8921_s1>;
40 vdd_l25-supply = <&pm8921_s1>;
41 vdd_l27-supply = <&pm8921_s7>;
42 vdd_l28-supply = <&pm8921_s7>;
43
44 /* Buck SMPS */
45 pm8921_s1: s1 {
46 regulator-always-on;
47 regulator-min-microvolt = <1225000>;
48 regulator-max-microvolt = <1225000>;
49 qcom,switch-mode-frequency = <3200000>;
50 bias-pull-down;
51 };
52
53 pm8921_s2: s2 {
54 regulator-min-microvolt = <1300000>;
55 regulator-max-microvolt = <1300000>;
56 qcom,switch-mode-frequency = <1600000>;
57 bias-pull-down;
58 };
59
60 pm8921_s3: s3 {
61 regulator-min-microvolt = <500000>;
62 regulator-max-microvolt = <1150000>;
63 qcom,switch-mode-frequency = <4800000>;
64 bias-pull-down;
65 };
66
67 pm8921_s4: s4 {
68 regulator-always-on;
69 regulator-min-microvolt = <1800000>;
70 regulator-max-microvolt = <1800000>;
71 qcom,switch-mode-frequency = <1600000>;
72 bias-pull-down;
73 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
74 };
75
76 pm8921_s7: s7 {
77 regulator-min-microvolt = <1150000>;
78 regulator-max-microvolt = <1150000>;
79 qcom,switch-mode-frequency = <3200000>;
80 bias-pull-down;
81 };
82
83 pm8921_s8: s8 {
84 regulator-always-on;
85 regulator-min-microvolt = <2050000>;
86 regulator-max-microvolt = <2050000>;
87 qcom,switch-mode-frequency = <1600000>;
88 bias-pull-down;
89 };
90
91 /* PMOS LDO */
92 pm8921_l1: l1 {
93 regulator-always-on;
94 regulator-min-microvolt = <1050000>;
95 regulator-max-microvolt = <1050000>;
96 bias-pull-down;
97 };
98
99 pm8921_l2: l2 {
100 regulator-min-microvolt = <1200000>;
101 regulator-max-microvolt = <1200000>;
102 bias-pull-down;
103 };
104
105 pm8921_l3: l3 {
106 regulator-min-microvolt = <3075000>;
107 regulator-max-microvolt = <3075000>;
108 bias-pull-down;
109 };
110
111 pm8921_l4: l4 {
112 regulator-always-on;
113 regulator-min-microvolt = <1800000>;
114 regulator-max-microvolt = <1800000>;
115 bias-pull-down;
116 };
117
118 pm8921_l5: l5 {
119 regulator-min-microvolt = <2950000>;
120 regulator-max-microvolt = <2950000>;
121 bias-pull-down;
122 };
123
124 pm8921_l6: l6 {
125 regulator-min-microvolt = <2950000>;
126 regulator-max-microvolt = <2950000>;
127 bias-pull-down;
128 };
129
130 pm8921_l7: l7 {
131 regulator-always-on;
132 regulator-min-microvolt = <1850000>;
133 regulator-max-microvolt = <2950000>;
134 bias-pull-down;
135 };
136
137 pm8921_l8: l8 {
138 regulator-min-microvolt = <2800000>;
139 regulator-max-microvolt = <3000000>;
140 bias-pull-down;
141 };
142
143 pm8921_l9: l9 {
144 regulator-min-microvolt = <3000000>;
145 regulator-max-microvolt = <3000000>;
146 bias-pull-down;
147 };
148
149 pm8921_l10: l10 {
150 regulator-min-microvolt = <3000000>;
151 regulator-max-microvolt = <3000000>;
152 bias-pull-down;
153 };
154
155 pm8921_l11: l11 {
156 regulator-min-microvolt = <2850000>;
157 regulator-max-microvolt = <2850000>;
158 bias-pull-down;
159 };
160
161 pm8921_l12: l12 {
162 regulator-min-microvolt = <1200000>;
163 regulator-max-microvolt = <1200000>;
164 bias-pull-down;
165 };
166
167 pm8921_l14: l14 {
168 regulator-min-microvolt = <1800000>;
169 regulator-max-microvolt = <1800000>;
170 bias-pull-down;
171 };
172
173 pm8921_l15: l15 {
174 regulator-min-microvolt = <1800000>;
175 regulator-max-microvolt = <2950000>;
176 bias-pull-down;
177 };
178
179 pm8921_l16: l16 {
180 regulator-min-microvolt = <2800000>;
181 regulator-max-microvolt = <2800000>;
182 bias-pull-down;
183 };
184
185 pm8921_l17: l17 {
186 regulator-min-microvolt = <1800000>;
187 regulator-max-microvolt = <2950000>;
188 bias-pull-down;
189 };
190
191 pm8921_l18: l18 {
192 regulator-min-microvolt = <1300000>;
193 regulator-max-microvolt = <1300000>;
194 bias-pull-down;
195 };
196
197 pm8921_l21: l21 {
198 regulator-min-microvolt = <1900000>;
199 regulator-max-microvolt = <1900000>;
200 bias-pull-down;
201 };
202
203 pm8921_l22: l22 {
204 regulator-min-microvolt = <2750000>;
205 regulator-max-microvolt = <2750000>;
206 bias-pull-down;
207 };
208
209 pm8921_l23: l23 {
210 regulator-always-on;
211 regulator-min-microvolt = <1800000>;
212 regulator-max-microvolt = <1800000>;
213 bias-pull-down;
214 };
215
216 pm8921_l24: l24 {
217 regulator-min-microvolt = <750000>;
218 regulator-max-microvolt = <1150000>;
219 bias-pull-down;
220 };
221
222 pm8921_l25: l25 {
223 regulator-always-on;
224 regulator-min-microvolt = <1250000>;
225 regulator-max-microvolt = <1250000>;
226 bias-pull-down;
227 };
228
229 /* Low Voltage Switch */
230 pm8921_lvs1: lvs1 {
231 bias-pull-down;
232 };
233
234 pm8921_lvs2: lvs2 {
235 bias-pull-down;
236 };
237
238 pm8921_lvs3: lvs3 {
239 bias-pull-down;
240 };
241
242 pm8921_lvs4: lvs4 {
243 bias-pull-down;
244 };
245
246 pm8921_lvs5: lvs5 {
247 bias-pull-down;
248 };
249
250 pm8921_lvs6: lvs6 {
251 bias-pull-down;
252 };
253
254 pm8921_lvs7: lvs7 {
255 bias-pull-down;
256 };
257
258 pm8921_ncp: ncp {
259 regulator-min-microvolt = <1800000>;
260 regulator-max-microvolt = <1800000>;
261 qcom,switch-mode-frequency = <1600000>;
262 };
263 };
264 };
265
266 gsbi@16000000 {
267 status = "ok";
268 qcom,mode = <GSBI_PROT_SPI>;
269 pinctrl-names = "default";
270 pinctrl-0 = <&spi1_default>;
271 spi@16080000 {
272 status = "ok";
273 eth@0 {
274 compatible = "micrel,ks8851";
275 reg = <0>;
276 interrupt-parent = <&msmgpio>;
277 interrupts = <90 8>;
278 spi-max-frequency = <5400000>;
279 vdd-supply = <&ext_l2>;
280 vdd-io-supply = <&pm8921_lvs6>;
281 reset-gpios = <&msmgpio 89 0>;
282 };
283 };
284 };
285
286 pinctrl@800000 {
287 spi1_default: spi1_default {
288 mux {
289 pins = "gpio6", "gpio7", "gpio9";
290 function = "gsbi1";
291 };
292
293 mosi {
294 pins = "gpio6";
295 drive-strength = <12>;
296 bias-disable;
297 };
298
299 miso {
300 pins = "gpio7";
301 drive-strength = <12>;
302 bias-disable;
303 };
304
305 cs {
306 pins = "gpio8";
307 drive-strength = <12>;
308 bias-disable;
309 output-low;
310 };
311
312 clk {
313 pins = "gpio9";
314 drive-strength = <12>;
315 bias-disable;
316 };
317 };
318 };
319 };
320
321 regulators {
322 compatible = "simple-bus";
323
324 ext_l2: gpio-regulator@91 {
325 compatible = "regulator-fixed";
326 regulator-name = "ext_l2";
327 gpio = <&msmgpio 91 0>;
328 startup-delay-us = <10000>;
329 enable-active-high;
330 };
29 }; 331 };
30}; 332};
31 333
diff --git a/arch/arm/boot/dts/qcom-msm8960.dtsi b/arch/arm/boot/dts/qcom-msm8960.dtsi
index a02b984cc68d..2096a94c9b52 100644
--- a/arch/arm/boot/dts/qcom-msm8960.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8960.dtsi
@@ -4,6 +4,7 @@
4 4
5#include <dt-bindings/interrupt-controller/arm-gic.h> 5#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/clock/qcom,gcc-msm8960.h> 6#include <dt-bindings/clock/qcom,gcc-msm8960.h>
7#include <dt-bindings/mfd/qcom-rpm.h>
7#include <dt-bindings/soc/qcom,gsbi.h> 8#include <dt-bindings/soc/qcom,gsbi.h>
8 9
9/ { 10/ {
@@ -73,11 +74,10 @@
73 cpu-offset = <0x80000>; 74 cpu-offset = <0x80000>;
74 }; 75 };
75 76
76 msmgpio: gpio@800000 { 77 msmgpio: pinctrl@800000 {
77 compatible = "qcom,msm-gpio"; 78 compatible = "qcom,msm8960-pinctrl";
78 gpio-controller; 79 gpio-controller;
79 #gpio-cells = <2>; 80 #gpio-cells = <2>;
80 ngpio = <150>;
81 interrupts = <0 16 0x4>; 81 interrupts = <0 16 0x4>;
82 interrupt-controller; 82 interrupt-controller;
83 #interrupt-cells = <2>; 83 #interrupt-cells = <2>;
@@ -105,6 +105,24 @@
105 #reset-cells = <1>; 105 #reset-cells = <1>;
106 }; 106 };
107 107
108 l2cc: clock-controller@2011000 {
109 compatible = "syscon";
110 reg = <0x2011000 0x1000>;
111 };
112
113 rpm@108000 {
114 compatible = "qcom,rpm-msm8960";
115 reg = <0x108000 0x1000>;
116 qcom,ipc = <&l2cc 0x8 2>;
117
118 interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
119 interrupt-names = "ack", "err", "wakeup";
120
121 regulators {
122 compatible = "qcom,rpm-pm8921-regulators";
123 };
124 };
125
108 acc0: clock-controller@2088000 { 126 acc0: clock-controller@2088000 {
109 compatible = "qcom,kpss-acc-v1"; 127 compatible = "qcom,kpss-acc-v1";
110 reg = <0x02088000 0x1000>, <0x02008000 0x1000>; 128 reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
@@ -253,5 +271,30 @@
253 compatible = "qcom,tcsr-msm8960", "syscon"; 271 compatible = "qcom,tcsr-msm8960", "syscon";
254 reg = <0x1a400000 0x100>; 272 reg = <0x1a400000 0x100>;
255 }; 273 };
274
275 gsbi@16000000 {
276 compatible = "qcom,gsbi-v1.0.0";
277 cell-index = <1>;
278 reg = <0x16000000 0x100>;
279 clocks = <&gcc GSBI1_H_CLK>;
280 clock-names = "iface";
281 #address-cells = <1>;
282 #size-cells = <1>;
283 ranges;
284
285 spi@16080000 {
286 compatible = "qcom,spi-qup-v1.1.1";
287 #address-cells = <1>;
288 #size-cells = <0>;
289 reg = <0x16080000 0x1000>;
290 interrupts = <0 147 0>;
291 spi-max-frequency = <24000000>;
292 cs-gpios = <&msmgpio 8 0>;
293
294 clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
295 clock-names = "core", "iface";
296 status = "disabled";
297 };
298 };
256 }; 299 };
257}; 300};
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 37b47b5538b8..d7c99b894a49 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -9,6 +9,17 @@
9 compatible = "qcom,msm8974"; 9 compatible = "qcom,msm8974";
10 interrupt-parent = <&intc>; 10 interrupt-parent = <&intc>;
11 11
12 reserved-memory {
13 #address-cells = <1>;
14 #size-cells = <1>;
15 ranges;
16
17 smem_region: smem@fa00000 {
18 reg = <0xfa00000 0x200000>;
19 no-map;
20 };
21 };
22
12 cpus { 23 cpus {
13 #address-cells = <1>; 24 #address-cells = <1>;
14 #size-cells = <0>; 25 #size-cells = <0>;
@@ -220,6 +231,11 @@
220 reg = <0xfc400000 0x4000>; 231 reg = <0xfc400000 0x4000>;
221 }; 232 };
222 233
234 tcsr_mutex_block: syscon@fd484000 {
235 compatible = "syscon";
236 reg = <0xfd484000 0x2000>;
237 };
238
223 mmcc: clock-controller@fd8c0000 { 239 mmcc: clock-controller@fd8c0000 {
224 compatible = "qcom,mmcc-msm8974"; 240 compatible = "qcom,mmcc-msm8974";
225 #clock-cells = <1>; 241 #clock-cells = <1>;
@@ -227,6 +243,22 @@
227 reg = <0xfd8c0000 0x6000>; 243 reg = <0xfd8c0000 0x6000>;
228 }; 244 };
229 245
246 tcsr_mutex: tcsr-mutex {
247 compatible = "qcom,tcsr-mutex";
248 syscon = <&tcsr_mutex_block 0 0x80>;
249
250 #hwlock-cells = <1>;
251 };
252
253 smem@fa00000 {
254 compatible = "qcom,smem";
255
256 memory-region = <&smem_region>;
257 reg = <0xfc428000 0x4000>;
258
259 hwlocks = <&tcsr_mutex 3>;
260 };
261
230 serial@f991e000 { 262 serial@f991e000 {
231 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 263 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
232 reg = <0xf991e000 0x1000>; 264 reg = <0xf991e000 0x1000>;
diff --git a/arch/arm/boot/dts/r7s72100.dtsi b/arch/arm/boot/dts/r7s72100.dtsi
index 277e73c110e5..060c32cbd669 100644
--- a/arch/arm/boot/dts/r7s72100.dtsi
+++ b/arch/arm/boot/dts/r7s72100.dtsi
@@ -86,6 +86,7 @@
86 reg = <0xfcfe0000 0x18>; 86 reg = <0xfcfe0000 0x18>;
87 clocks = <&extal_clk>, <&usb_x1_clk>; 87 clocks = <&extal_clk>, <&usb_x1_clk>;
88 clock-output-names = "pll", "i", "g"; 88 clock-output-names = "pll", "i", "g";
89 #power-domain-cells = <0>;
89 }; 90 };
90 91
91 /* MSTP clocks */ 92 /* MSTP clocks */
@@ -157,6 +158,7 @@
157 <0 189 IRQ_TYPE_LEVEL_HIGH>; 158 <0 189 IRQ_TYPE_LEVEL_HIGH>;
158 clocks = <&mstp4_clks R7S72100_CLK_SCIF0>; 159 clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
159 clock-names = "sci_ick"; 160 clock-names = "sci_ick";
161 power-domains = <&cpg_clocks>;
160 status = "disabled"; 162 status = "disabled";
161 }; 163 };
162 164
@@ -169,6 +171,7 @@
169 <0 193 IRQ_TYPE_LEVEL_HIGH>; 171 <0 193 IRQ_TYPE_LEVEL_HIGH>;
170 clocks = <&mstp4_clks R7S72100_CLK_SCIF1>; 172 clocks = <&mstp4_clks R7S72100_CLK_SCIF1>;
171 clock-names = "sci_ick"; 173 clock-names = "sci_ick";
174 power-domains = <&cpg_clocks>;
172 status = "disabled"; 175 status = "disabled";
173 }; 176 };
174 177
@@ -181,6 +184,7 @@
181 <0 197 IRQ_TYPE_LEVEL_HIGH>; 184 <0 197 IRQ_TYPE_LEVEL_HIGH>;
182 clocks = <&mstp4_clks R7S72100_CLK_SCIF2>; 185 clocks = <&mstp4_clks R7S72100_CLK_SCIF2>;
183 clock-names = "sci_ick"; 186 clock-names = "sci_ick";
187 power-domains = <&cpg_clocks>;
184 status = "disabled"; 188 status = "disabled";
185 }; 189 };
186 190
@@ -193,6 +197,7 @@
193 <0 201 IRQ_TYPE_LEVEL_HIGH>; 197 <0 201 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&mstp4_clks R7S72100_CLK_SCIF3>; 198 clocks = <&mstp4_clks R7S72100_CLK_SCIF3>;
195 clock-names = "sci_ick"; 199 clock-names = "sci_ick";
200 power-domains = <&cpg_clocks>;
196 status = "disabled"; 201 status = "disabled";
197 }; 202 };
198 203
@@ -205,6 +210,7 @@
205 <0 205 IRQ_TYPE_LEVEL_HIGH>; 210 <0 205 IRQ_TYPE_LEVEL_HIGH>;
206 clocks = <&mstp4_clks R7S72100_CLK_SCIF4>; 211 clocks = <&mstp4_clks R7S72100_CLK_SCIF4>;
207 clock-names = "sci_ick"; 212 clock-names = "sci_ick";
213 power-domains = <&cpg_clocks>;
208 status = "disabled"; 214 status = "disabled";
209 }; 215 };
210 216
@@ -217,6 +223,7 @@
217 <0 209 IRQ_TYPE_LEVEL_HIGH>; 223 <0 209 IRQ_TYPE_LEVEL_HIGH>;
218 clocks = <&mstp4_clks R7S72100_CLK_SCIF5>; 224 clocks = <&mstp4_clks R7S72100_CLK_SCIF5>;
219 clock-names = "sci_ick"; 225 clock-names = "sci_ick";
226 power-domains = <&cpg_clocks>;
220 status = "disabled"; 227 status = "disabled";
221 }; 228 };
222 229
@@ -229,6 +236,7 @@
229 <0 213 IRQ_TYPE_LEVEL_HIGH>; 236 <0 213 IRQ_TYPE_LEVEL_HIGH>;
230 clocks = <&mstp4_clks R7S72100_CLK_SCIF6>; 237 clocks = <&mstp4_clks R7S72100_CLK_SCIF6>;
231 clock-names = "sci_ick"; 238 clock-names = "sci_ick";
239 power-domains = <&cpg_clocks>;
232 status = "disabled"; 240 status = "disabled";
233 }; 241 };
234 242
@@ -241,6 +249,7 @@
241 <0 217 IRQ_TYPE_LEVEL_HIGH>; 249 <0 217 IRQ_TYPE_LEVEL_HIGH>;
242 clocks = <&mstp4_clks R7S72100_CLK_SCIF7>; 250 clocks = <&mstp4_clks R7S72100_CLK_SCIF7>;
243 clock-names = "sci_ick"; 251 clock-names = "sci_ick";
252 power-domains = <&cpg_clocks>;
244 status = "disabled"; 253 status = "disabled";
245 }; 254 };
246 255
@@ -252,6 +261,7 @@
252 <0 240 IRQ_TYPE_LEVEL_HIGH>; 261 <0 240 IRQ_TYPE_LEVEL_HIGH>;
253 interrupt-names = "error", "rx", "tx"; 262 interrupt-names = "error", "rx", "tx";
254 clocks = <&mstp10_clks R7S72100_CLK_SPI0>; 263 clocks = <&mstp10_clks R7S72100_CLK_SPI0>;
264 power-domains = <&cpg_clocks>;
255 num-cs = <1>; 265 num-cs = <1>;
256 #address-cells = <1>; 266 #address-cells = <1>;
257 #size-cells = <0>; 267 #size-cells = <0>;
@@ -266,6 +276,7 @@
266 <0 243 IRQ_TYPE_LEVEL_HIGH>; 276 <0 243 IRQ_TYPE_LEVEL_HIGH>;
267 interrupt-names = "error", "rx", "tx"; 277 interrupt-names = "error", "rx", "tx";
268 clocks = <&mstp10_clks R7S72100_CLK_SPI1>; 278 clocks = <&mstp10_clks R7S72100_CLK_SPI1>;
279 power-domains = <&cpg_clocks>;
269 num-cs = <1>; 280 num-cs = <1>;
270 #address-cells = <1>; 281 #address-cells = <1>;
271 #size-cells = <0>; 282 #size-cells = <0>;
@@ -280,6 +291,7 @@
280 <0 246 IRQ_TYPE_LEVEL_HIGH>; 291 <0 246 IRQ_TYPE_LEVEL_HIGH>;
281 interrupt-names = "error", "rx", "tx"; 292 interrupt-names = "error", "rx", "tx";
282 clocks = <&mstp10_clks R7S72100_CLK_SPI2>; 293 clocks = <&mstp10_clks R7S72100_CLK_SPI2>;
294 power-domains = <&cpg_clocks>;
283 num-cs = <1>; 295 num-cs = <1>;
284 #address-cells = <1>; 296 #address-cells = <1>;
285 #size-cells = <0>; 297 #size-cells = <0>;
@@ -294,6 +306,7 @@
294 <0 249 IRQ_TYPE_LEVEL_HIGH>; 306 <0 249 IRQ_TYPE_LEVEL_HIGH>;
295 interrupt-names = "error", "rx", "tx"; 307 interrupt-names = "error", "rx", "tx";
296 clocks = <&mstp10_clks R7S72100_CLK_SPI3>; 308 clocks = <&mstp10_clks R7S72100_CLK_SPI3>;
309 power-domains = <&cpg_clocks>;
297 num-cs = <1>; 310 num-cs = <1>;
298 #address-cells = <1>; 311 #address-cells = <1>;
299 #size-cells = <0>; 312 #size-cells = <0>;
@@ -308,6 +321,7 @@
308 <0 252 IRQ_TYPE_LEVEL_HIGH>; 321 <0 252 IRQ_TYPE_LEVEL_HIGH>;
309 interrupt-names = "error", "rx", "tx"; 322 interrupt-names = "error", "rx", "tx";
310 clocks = <&mstp10_clks R7S72100_CLK_SPI4>; 323 clocks = <&mstp10_clks R7S72100_CLK_SPI4>;
324 power-domains = <&cpg_clocks>;
311 num-cs = <1>; 325 num-cs = <1>;
312 #address-cells = <1>; 326 #address-cells = <1>;
313 #size-cells = <0>; 327 #size-cells = <0>;
@@ -338,6 +352,7 @@
338 <0 164 IRQ_TYPE_LEVEL_HIGH>; 352 <0 164 IRQ_TYPE_LEVEL_HIGH>;
339 clocks = <&mstp9_clks R7S72100_CLK_I2C0>; 353 clocks = <&mstp9_clks R7S72100_CLK_I2C0>;
340 clock-frequency = <100000>; 354 clock-frequency = <100000>;
355 power-domains = <&cpg_clocks>;
341 status = "disabled"; 356 status = "disabled";
342 }; 357 };
343 358
@@ -356,6 +371,7 @@
356 <0 172 IRQ_TYPE_LEVEL_HIGH>; 371 <0 172 IRQ_TYPE_LEVEL_HIGH>;
357 clocks = <&mstp9_clks R7S72100_CLK_I2C1>; 372 clocks = <&mstp9_clks R7S72100_CLK_I2C1>;
358 clock-frequency = <100000>; 373 clock-frequency = <100000>;
374 power-domains = <&cpg_clocks>;
359 status = "disabled"; 375 status = "disabled";
360 }; 376 };
361 377
@@ -374,6 +390,7 @@
374 <0 180 IRQ_TYPE_LEVEL_HIGH>; 390 <0 180 IRQ_TYPE_LEVEL_HIGH>;
375 clocks = <&mstp9_clks R7S72100_CLK_I2C2>; 391 clocks = <&mstp9_clks R7S72100_CLK_I2C2>;
376 clock-frequency = <100000>; 392 clock-frequency = <100000>;
393 power-domains = <&cpg_clocks>;
377 status = "disabled"; 394 status = "disabled";
378 }; 395 };
379 396
@@ -392,6 +409,7 @@
392 <0 188 IRQ_TYPE_LEVEL_HIGH>; 409 <0 188 IRQ_TYPE_LEVEL_HIGH>;
393 clocks = <&mstp9_clks R7S72100_CLK_I2C3>; 410 clocks = <&mstp9_clks R7S72100_CLK_I2C3>;
394 clock-frequency = <100000>; 411 clock-frequency = <100000>;
412 power-domains = <&cpg_clocks>;
395 status = "disabled"; 413 status = "disabled";
396 }; 414 };
397 415
@@ -402,6 +420,7 @@
402 interrupt-names = "tgi0a"; 420 interrupt-names = "tgi0a";
403 clocks = <&mstp3_clks R7S72100_CLK_MTU2>; 421 clocks = <&mstp3_clks R7S72100_CLK_MTU2>;
404 clock-names = "fck"; 422 clock-names = "fck";
423 power-domains = <&cpg_clocks>;
405 status = "disabled"; 424 status = "disabled";
406 }; 425 };
407}; 426};
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 7ee22a41c6c9..cb4f7b2798fe 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -207,6 +207,13 @@
207 reg = <0 0xe6050000 0 0x9000>; 207 reg = <0 0xe6050000 0 0x9000>;
208 gpio-controller; 208 gpio-controller;
209 #gpio-cells = <2>; 209 #gpio-cells = <2>;
210 gpio-ranges =
211 <&pfc 0 0 31>, <&pfc 32 32 9>,
212 <&pfc 64 64 22>, <&pfc 96 96 31>,
213 <&pfc 128 128 7>, <&pfc 160 160 19>,
214 <&pfc 192 192 31>, <&pfc 224 224 27>,
215 <&pfc 256 256 28>, <&pfc 288 288 21>,
216 <&pfc 320 320 10>;
210 interrupts-extended = 217 interrupts-extended =
211 <&irqc0 0 0>, <&irqc0 1 0>, <&irqc0 2 0>, <&irqc0 3 0>, 218 <&irqc0 0 0>, <&irqc0 1 0>, <&irqc0 2 0>, <&irqc0 3 0>,
212 <&irqc0 4 0>, <&irqc0 5 0>, <&irqc0 6 0>, <&irqc0 7 0>, 219 <&irqc0 4 0>, <&irqc0 5 0>, <&irqc0 6 0>, <&irqc0 7 0>,
@@ -434,7 +441,7 @@
434 }; 441 };
435 442
436 gic: interrupt-controller@f1001000 { 443 gic: interrupt-controller@f1001000 {
437 compatible = "arm,cortex-a15-gic"; 444 compatible = "arm,gic-400";
438 #interrupt-cells = <3>; 445 #interrupt-cells = <3>;
439 #address-cells = <0>; 446 #address-cells = <0>;
440 interrupt-controller; 447 interrupt-controller;
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
index 2e31d8c01cbf..105d9c95de4a 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
@@ -224,6 +224,9 @@
224}; 224};
225 225
226&pfc { 226&pfc {
227 pinctrl-0 = <&lcd0_pins>;
228 pinctrl-names = "default";
229
227 ether_pins: ether { 230 ether_pins: ether {
228 renesas,groups = "gether_mii", "gether_int"; 231 renesas,groups = "gether_mii", "gether_int";
229 renesas,function = "gether"; 232 renesas,function = "gether";
@@ -259,6 +262,16 @@
259 "fsia_data_in_1", "fsia_data_out_0"; 262 "fsia_data_in_1", "fsia_data_out_0";
260 renesas,function = "fsia"; 263 renesas,function = "fsia";
261 }; 264 };
265
266 lcd0_pins: lcd0 {
267 renesas,groups = "lcd0_data24_0", "lcd0_lclk_1", "lcd0_sync";
268 renesas,function = "lcd0";
269
270 /* DBGMD/LCDC0/FSIA MUX */
271 gpio-hog;
272 gpios = <176 0>;
273 output-high;
274 };
262}; 275};
263 276
264&tpu { 277&tpu {
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index d84714468cce..e14cb1438216 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -291,6 +291,7 @@
291 <0xe605800c 0x20>; 291 <0xe605800c 0x20>;
292 gpio-controller; 292 gpio-controller;
293 #gpio-cells = <2>; 293 #gpio-cells = <2>;
294 gpio-ranges = <&pfc 0 0 212>;
294 interrupts-extended = 295 interrupts-extended =
295 <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, 296 <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>,
296 <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, 297 <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>,
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index 7ce9f5fd5865..4b1fa9f42ad5 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -53,6 +53,7 @@
53 reg = <0xfde00000 0x400>; 53 reg = <0xfde00000 0x400>;
54 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; 54 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
55 clocks = <&mstp1_clks R8A7778_CLK_ETHER>; 55 clocks = <&mstp1_clks R8A7778_CLK_ETHER>;
56 power-domains = <&cpg_clocks>;
56 phy-mode = "rmii"; 57 phy-mode = "rmii";
57 #address-cells = <1>; 58 #address-cells = <1>;
58 #size-cells = <0>; 59 #size-cells = <0>;
@@ -152,6 +153,7 @@
152 reg = <0xffc70000 0x1000>; 153 reg = <0xffc70000 0x1000>;
153 interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>; 154 interrupts = <0 67 IRQ_TYPE_LEVEL_HIGH>;
154 clocks = <&mstp0_clks R8A7778_CLK_I2C0>; 155 clocks = <&mstp0_clks R8A7778_CLK_I2C0>;
156 power-domains = <&cpg_clocks>;
155 status = "disabled"; 157 status = "disabled";
156 }; 158 };
157 159
@@ -162,6 +164,7 @@
162 reg = <0xffc71000 0x1000>; 164 reg = <0xffc71000 0x1000>;
163 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>; 165 interrupts = <0 78 IRQ_TYPE_LEVEL_HIGH>;
164 clocks = <&mstp0_clks R8A7778_CLK_I2C1>; 166 clocks = <&mstp0_clks R8A7778_CLK_I2C1>;
167 power-domains = <&cpg_clocks>;
165 status = "disabled"; 168 status = "disabled";
166 }; 169 };
167 170
@@ -172,6 +175,7 @@
172 reg = <0xffc72000 0x1000>; 175 reg = <0xffc72000 0x1000>;
173 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>; 176 interrupts = <0 76 IRQ_TYPE_LEVEL_HIGH>;
174 clocks = <&mstp0_clks R8A7778_CLK_I2C2>; 177 clocks = <&mstp0_clks R8A7778_CLK_I2C2>;
178 power-domains = <&cpg_clocks>;
175 status = "disabled"; 179 status = "disabled";
176 }; 180 };
177 181
@@ -182,6 +186,7 @@
182 reg = <0xffc73000 0x1000>; 186 reg = <0xffc73000 0x1000>;
183 interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>; 187 interrupts = <0 77 IRQ_TYPE_LEVEL_HIGH>;
184 clocks = <&mstp0_clks R8A7778_CLK_I2C3>; 188 clocks = <&mstp0_clks R8A7778_CLK_I2C3>;
189 power-domains = <&cpg_clocks>;
185 status = "disabled"; 190 status = "disabled";
186 }; 191 };
187 192
@@ -193,6 +198,7 @@
193 <0 34 IRQ_TYPE_LEVEL_HIGH>; 198 <0 34 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&mstp0_clks R8A7778_CLK_TMU0>; 199 clocks = <&mstp0_clks R8A7778_CLK_TMU0>;
195 clock-names = "fck"; 200 clock-names = "fck";
201 power-domains = <&cpg_clocks>;
196 202
197 #renesas,channels = <3>; 203 #renesas,channels = <3>;
198 204
@@ -207,6 +213,7 @@
207 <0 38 IRQ_TYPE_LEVEL_HIGH>; 213 <0 38 IRQ_TYPE_LEVEL_HIGH>;
208 clocks = <&mstp0_clks R8A7778_CLK_TMU1>; 214 clocks = <&mstp0_clks R8A7778_CLK_TMU1>;
209 clock-names = "fck"; 215 clock-names = "fck";
216 power-domains = <&cpg_clocks>;
210 217
211 #renesas,channels = <3>; 218 #renesas,channels = <3>;
212 219
@@ -221,6 +228,7 @@
221 <0 42 IRQ_TYPE_LEVEL_HIGH>; 228 <0 42 IRQ_TYPE_LEVEL_HIGH>;
222 clocks = <&mstp0_clks R8A7778_CLK_TMU2>; 229 clocks = <&mstp0_clks R8A7778_CLK_TMU2>;
223 clock-names = "fck"; 230 clock-names = "fck";
231 power-domains = <&cpg_clocks>;
224 232
225 #renesas,channels = <3>; 233 #renesas,channels = <3>;
226 234
@@ -288,6 +296,7 @@
288 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>; 296 interrupts = <0 70 IRQ_TYPE_LEVEL_HIGH>;
289 clocks = <&mstp0_clks R8A7778_CLK_SCIF0>; 297 clocks = <&mstp0_clks R8A7778_CLK_SCIF0>;
290 clock-names = "sci_ick"; 298 clock-names = "sci_ick";
299 power-domains = <&cpg_clocks>;
291 status = "disabled"; 300 status = "disabled";
292 }; 301 };
293 302
@@ -297,6 +306,7 @@
297 interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>; 306 interrupts = <0 71 IRQ_TYPE_LEVEL_HIGH>;
298 clocks = <&mstp0_clks R8A7778_CLK_SCIF1>; 307 clocks = <&mstp0_clks R8A7778_CLK_SCIF1>;
299 clock-names = "sci_ick"; 308 clock-names = "sci_ick";
309 power-domains = <&cpg_clocks>;
300 status = "disabled"; 310 status = "disabled";
301 }; 311 };
302 312
@@ -306,6 +316,7 @@
306 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>; 316 interrupts = <0 72 IRQ_TYPE_LEVEL_HIGH>;
307 clocks = <&mstp0_clks R8A7778_CLK_SCIF2>; 317 clocks = <&mstp0_clks R8A7778_CLK_SCIF2>;
308 clock-names = "sci_ick"; 318 clock-names = "sci_ick";
319 power-domains = <&cpg_clocks>;
309 status = "disabled"; 320 status = "disabled";
310 }; 321 };
311 322
@@ -315,6 +326,7 @@
315 interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>; 326 interrupts = <0 73 IRQ_TYPE_LEVEL_HIGH>;
316 clocks = <&mstp0_clks R8A7778_CLK_SCIF3>; 327 clocks = <&mstp0_clks R8A7778_CLK_SCIF3>;
317 clock-names = "sci_ick"; 328 clock-names = "sci_ick";
329 power-domains = <&cpg_clocks>;
318 status = "disabled"; 330 status = "disabled";
319 }; 331 };
320 332
@@ -324,6 +336,7 @@
324 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>; 336 interrupts = <0 74 IRQ_TYPE_LEVEL_HIGH>;
325 clocks = <&mstp0_clks R8A7778_CLK_SCIF4>; 337 clocks = <&mstp0_clks R8A7778_CLK_SCIF4>;
326 clock-names = "sci_ick"; 338 clock-names = "sci_ick";
339 power-domains = <&cpg_clocks>;
327 status = "disabled"; 340 status = "disabled";
328 }; 341 };
329 342
@@ -333,6 +346,7 @@
333 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>; 346 interrupts = <0 75 IRQ_TYPE_LEVEL_HIGH>;
334 clocks = <&mstp0_clks R8A7778_CLK_SCIF5>; 347 clocks = <&mstp0_clks R8A7778_CLK_SCIF5>;
335 clock-names = "sci_ick"; 348 clock-names = "sci_ick";
349 power-domains = <&cpg_clocks>;
336 status = "disabled"; 350 status = "disabled";
337 }; 351 };
338 352
@@ -341,6 +355,7 @@
341 reg = <0xffe4e000 0x100>; 355 reg = <0xffe4e000 0x100>;
342 interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>; 356 interrupts = <0 61 IRQ_TYPE_LEVEL_HIGH>;
343 clocks = <&mstp3_clks R8A7778_CLK_MMC>; 357 clocks = <&mstp3_clks R8A7778_CLK_MMC>;
358 power-domains = <&cpg_clocks>;
344 status = "disabled"; 359 status = "disabled";
345 }; 360 };
346 361
@@ -349,6 +364,7 @@
349 reg = <0xffe4c000 0x100>; 364 reg = <0xffe4c000 0x100>;
350 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>; 365 interrupts = <0 87 IRQ_TYPE_LEVEL_HIGH>;
351 clocks = <&mstp3_clks R8A7778_CLK_SDHI0>; 366 clocks = <&mstp3_clks R8A7778_CLK_SDHI0>;
367 power-domains = <&cpg_clocks>;
352 status = "disabled"; 368 status = "disabled";
353 }; 369 };
354 370
@@ -357,6 +373,7 @@
357 reg = <0xffe4d000 0x100>; 373 reg = <0xffe4d000 0x100>;
358 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>; 374 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>;
359 clocks = <&mstp3_clks R8A7778_CLK_SDHI1>; 375 clocks = <&mstp3_clks R8A7778_CLK_SDHI1>;
376 power-domains = <&cpg_clocks>;
360 status = "disabled"; 377 status = "disabled";
361 }; 378 };
362 379
@@ -365,6 +382,7 @@
365 reg = <0xffe4f000 0x100>; 382 reg = <0xffe4f000 0x100>;
366 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>; 383 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
367 clocks = <&mstp3_clks R8A7778_CLK_SDHI2>; 384 clocks = <&mstp3_clks R8A7778_CLK_SDHI2>;
385 power-domains = <&cpg_clocks>;
368 status = "disabled"; 386 status = "disabled";
369 }; 387 };
370 388
@@ -373,6 +391,7 @@
373 reg = <0xfffc7000 0x18>; 391 reg = <0xfffc7000 0x18>;
374 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>; 392 interrupts = <0 63 IRQ_TYPE_LEVEL_HIGH>;
375 clocks = <&mstp0_clks R8A7778_CLK_HSPI>; 393 clocks = <&mstp0_clks R8A7778_CLK_HSPI>;
394 power-domains = <&cpg_clocks>;
376 #address-cells = <1>; 395 #address-cells = <1>;
377 #size-cells = <0>; 396 #size-cells = <0>;
378 status = "disabled"; 397 status = "disabled";
@@ -383,6 +402,7 @@
383 reg = <0xfffc8000 0x18>; 402 reg = <0xfffc8000 0x18>;
384 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>; 403 interrupts = <0 84 IRQ_TYPE_LEVEL_HIGH>;
385 clocks = <&mstp0_clks R8A7778_CLK_HSPI>; 404 clocks = <&mstp0_clks R8A7778_CLK_HSPI>;
405 power-domains = <&cpg_clocks>;
386 #address-cells = <1>; 406 #address-cells = <1>;
387 #size-cells = <0>; 407 #size-cells = <0>;
388 status = "disabled"; 408 status = "disabled";
@@ -393,6 +413,7 @@
393 reg = <0xfffc6000 0x18>; 413 reg = <0xfffc6000 0x18>;
394 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>; 414 interrupts = <0 85 IRQ_TYPE_LEVEL_HIGH>;
395 clocks = <&mstp0_clks R8A7778_CLK_HSPI>; 415 clocks = <&mstp0_clks R8A7778_CLK_HSPI>;
416 power-domains = <&cpg_clocks>;
396 #address-cells = <1>; 417 #address-cells = <1>;
397 #size-cells = <0>; 418 #size-cells = <0>;
398 status = "disabled"; 419 status = "disabled";
@@ -419,6 +440,7 @@
419 clocks = <&extal_clk>; 440 clocks = <&extal_clk>;
420 clock-output-names = "plla", "pllb", "b", 441 clock-output-names = "plla", "pllb", "b",
421 "out", "p", "s", "s1"; 442 "out", "p", "s", "s1";
443 #power-domain-cells = <0>;
422 }; 444 };
423 445
424 /* Audio clocks; frequencies are set by boards if applicable. */ 446 /* Audio clocks; frequencies are set by boards if applicable. */
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 5c8071e87ae9..6afa909865b5 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -148,7 +148,7 @@
148 interrupt-controller; 148 interrupt-controller;
149 }; 149 };
150 150
151 irqpin0: interrupt-controller@fe780010 { 151 irqpin0: interrupt-controller@fe78001c {
152 compatible = "renesas,intc-irqpin-r8a7779", "renesas,intc-irqpin"; 152 compatible = "renesas,intc-irqpin-r8a7779", "renesas,intc-irqpin";
153 #interrupt-cells = <2>; 153 #interrupt-cells = <2>;
154 status = "disabled"; 154 status = "disabled";
@@ -157,7 +157,8 @@
157 <0xfe780010 4>, 157 <0xfe780010 4>,
158 <0xfe780024 4>, 158 <0xfe780024 4>,
159 <0xfe780044 4>, 159 <0xfe780044 4>,
160 <0xfe780064 4>; 160 <0xfe780064 4>,
161 <0xfe780000 4>;
161 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH 162 interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH
162 0 28 IRQ_TYPE_LEVEL_HIGH 163 0 28 IRQ_TYPE_LEVEL_HIGH
163 0 29 IRQ_TYPE_LEVEL_HIGH 164 0 29 IRQ_TYPE_LEVEL_HIGH
@@ -172,6 +173,7 @@
172 reg = <0xffc70000 0x1000>; 173 reg = <0xffc70000 0x1000>;
173 interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>; 174 interrupts = <0 79 IRQ_TYPE_LEVEL_HIGH>;
174 clocks = <&mstp0_clks R8A7779_CLK_I2C0>; 175 clocks = <&mstp0_clks R8A7779_CLK_I2C0>;
176 power-domains = <&cpg_clocks>;
175 status = "disabled"; 177 status = "disabled";
176 }; 178 };
177 179
@@ -182,6 +184,7 @@
182 reg = <0xffc71000 0x1000>; 184 reg = <0xffc71000 0x1000>;
183 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>; 185 interrupts = <0 82 IRQ_TYPE_LEVEL_HIGH>;
184 clocks = <&mstp0_clks R8A7779_CLK_I2C1>; 186 clocks = <&mstp0_clks R8A7779_CLK_I2C1>;
187 power-domains = <&cpg_clocks>;
185 status = "disabled"; 188 status = "disabled";
186 }; 189 };
187 190
@@ -192,6 +195,7 @@
192 reg = <0xffc72000 0x1000>; 195 reg = <0xffc72000 0x1000>;
193 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>; 196 interrupts = <0 80 IRQ_TYPE_LEVEL_HIGH>;
194 clocks = <&mstp0_clks R8A7779_CLK_I2C2>; 197 clocks = <&mstp0_clks R8A7779_CLK_I2C2>;
198 power-domains = <&cpg_clocks>;
195 status = "disabled"; 199 status = "disabled";
196 }; 200 };
197 201
@@ -202,6 +206,7 @@
202 reg = <0xffc73000 0x1000>; 206 reg = <0xffc73000 0x1000>;
203 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>; 207 interrupts = <0 81 IRQ_TYPE_LEVEL_HIGH>;
204 clocks = <&mstp0_clks R8A7779_CLK_I2C3>; 208 clocks = <&mstp0_clks R8A7779_CLK_I2C3>;
209 power-domains = <&cpg_clocks>;
205 status = "disabled"; 210 status = "disabled";
206 }; 211 };
207 212
@@ -211,6 +216,7 @@
211 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>; 216 interrupts = <0 88 IRQ_TYPE_LEVEL_HIGH>;
212 clocks = <&mstp0_clks R8A7779_CLK_SCIF0>; 217 clocks = <&mstp0_clks R8A7779_CLK_SCIF0>;
213 clock-names = "sci_ick"; 218 clock-names = "sci_ick";
219 power-domains = <&cpg_clocks>;
214 status = "disabled"; 220 status = "disabled";
215 }; 221 };
216 222
@@ -220,6 +226,7 @@
220 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>; 226 interrupts = <0 89 IRQ_TYPE_LEVEL_HIGH>;
221 clocks = <&mstp0_clks R8A7779_CLK_SCIF1>; 227 clocks = <&mstp0_clks R8A7779_CLK_SCIF1>;
222 clock-names = "sci_ick"; 228 clock-names = "sci_ick";
229 power-domains = <&cpg_clocks>;
223 status = "disabled"; 230 status = "disabled";
224 }; 231 };
225 232
@@ -229,6 +236,7 @@
229 interrupts = <0 90 IRQ_TYPE_LEVEL_HIGH>; 236 interrupts = <0 90 IRQ_TYPE_LEVEL_HIGH>;
230 clocks = <&mstp0_clks R8A7779_CLK_SCIF2>; 237 clocks = <&mstp0_clks R8A7779_CLK_SCIF2>;
231 clock-names = "sci_ick"; 238 clock-names = "sci_ick";
239 power-domains = <&cpg_clocks>;
232 status = "disabled"; 240 status = "disabled";
233 }; 241 };
234 242
@@ -238,6 +246,7 @@
238 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>; 246 interrupts = <0 91 IRQ_TYPE_LEVEL_HIGH>;
239 clocks = <&mstp0_clks R8A7779_CLK_SCIF3>; 247 clocks = <&mstp0_clks R8A7779_CLK_SCIF3>;
240 clock-names = "sci_ick"; 248 clock-names = "sci_ick";
249 power-domains = <&cpg_clocks>;
241 status = "disabled"; 250 status = "disabled";
242 }; 251 };
243 252
@@ -247,6 +256,7 @@
247 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>; 256 interrupts = <0 92 IRQ_TYPE_LEVEL_HIGH>;
248 clocks = <&mstp0_clks R8A7779_CLK_SCIF4>; 257 clocks = <&mstp0_clks R8A7779_CLK_SCIF4>;
249 clock-names = "sci_ick"; 258 clock-names = "sci_ick";
259 power-domains = <&cpg_clocks>;
250 status = "disabled"; 260 status = "disabled";
251 }; 261 };
252 262
@@ -256,6 +266,7 @@
256 interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>; 266 interrupts = <0 93 IRQ_TYPE_LEVEL_HIGH>;
257 clocks = <&mstp0_clks R8A7779_CLK_SCIF5>; 267 clocks = <&mstp0_clks R8A7779_CLK_SCIF5>;
258 clock-names = "sci_ick"; 268 clock-names = "sci_ick";
269 power-domains = <&cpg_clocks>;
259 status = "disabled"; 270 status = "disabled";
260 }; 271 };
261 272
@@ -277,6 +288,7 @@
277 <0 34 IRQ_TYPE_LEVEL_HIGH>; 288 <0 34 IRQ_TYPE_LEVEL_HIGH>;
278 clocks = <&mstp0_clks R8A7779_CLK_TMU0>; 289 clocks = <&mstp0_clks R8A7779_CLK_TMU0>;
279 clock-names = "fck"; 290 clock-names = "fck";
291 power-domains = <&cpg_clocks>;
280 292
281 #renesas,channels = <3>; 293 #renesas,channels = <3>;
282 294
@@ -291,6 +303,7 @@
291 <0 38 IRQ_TYPE_LEVEL_HIGH>; 303 <0 38 IRQ_TYPE_LEVEL_HIGH>;
292 clocks = <&mstp0_clks R8A7779_CLK_TMU1>; 304 clocks = <&mstp0_clks R8A7779_CLK_TMU1>;
293 clock-names = "fck"; 305 clock-names = "fck";
306 power-domains = <&cpg_clocks>;
294 307
295 #renesas,channels = <3>; 308 #renesas,channels = <3>;
296 309
@@ -305,6 +318,7 @@
305 <0 42 IRQ_TYPE_LEVEL_HIGH>; 318 <0 42 IRQ_TYPE_LEVEL_HIGH>;
306 clocks = <&mstp0_clks R8A7779_CLK_TMU2>; 319 clocks = <&mstp0_clks R8A7779_CLK_TMU2>;
307 clock-names = "fck"; 320 clock-names = "fck";
321 power-domains = <&cpg_clocks>;
308 322
309 #renesas,channels = <3>; 323 #renesas,channels = <3>;
310 324
@@ -316,6 +330,7 @@
316 reg = <0xfc600000 0x2000>; 330 reg = <0xfc600000 0x2000>;
317 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>; 331 interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
318 clocks = <&mstp1_clks R8A7779_CLK_SATA>; 332 clocks = <&mstp1_clks R8A7779_CLK_SATA>;
333 power-domains = <&cpg_clocks>;
319 }; 334 };
320 335
321 sdhi0: sd@ffe4c000 { 336 sdhi0: sd@ffe4c000 {
@@ -323,6 +338,7 @@
323 reg = <0xffe4c000 0x100>; 338 reg = <0xffe4c000 0x100>;
324 interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>; 339 interrupts = <0 104 IRQ_TYPE_LEVEL_HIGH>;
325 clocks = <&mstp3_clks R8A7779_CLK_SDHI0>; 340 clocks = <&mstp3_clks R8A7779_CLK_SDHI0>;
341 power-domains = <&cpg_clocks>;
326 status = "disabled"; 342 status = "disabled";
327 }; 343 };
328 344
@@ -331,6 +347,7 @@
331 reg = <0xffe4d000 0x100>; 347 reg = <0xffe4d000 0x100>;
332 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; 348 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
333 clocks = <&mstp3_clks R8A7779_CLK_SDHI1>; 349 clocks = <&mstp3_clks R8A7779_CLK_SDHI1>;
350 power-domains = <&cpg_clocks>;
334 status = "disabled"; 351 status = "disabled";
335 }; 352 };
336 353
@@ -339,6 +356,7 @@
339 reg = <0xffe4e000 0x100>; 356 reg = <0xffe4e000 0x100>;
340 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; 357 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
341 clocks = <&mstp3_clks R8A7779_CLK_SDHI2>; 358 clocks = <&mstp3_clks R8A7779_CLK_SDHI2>;
359 power-domains = <&cpg_clocks>;
342 status = "disabled"; 360 status = "disabled";
343 }; 361 };
344 362
@@ -347,6 +365,7 @@
347 reg = <0xffe4f000 0x100>; 365 reg = <0xffe4f000 0x100>;
348 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; 366 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
349 clocks = <&mstp3_clks R8A7779_CLK_SDHI3>; 367 clocks = <&mstp3_clks R8A7779_CLK_SDHI3>;
368 power-domains = <&cpg_clocks>;
350 status = "disabled"; 369 status = "disabled";
351 }; 370 };
352 371
@@ -357,6 +376,7 @@
357 #address-cells = <1>; 376 #address-cells = <1>;
358 #size-cells = <0>; 377 #size-cells = <0>;
359 clocks = <&mstp0_clks R8A7779_CLK_HSPI>; 378 clocks = <&mstp0_clks R8A7779_CLK_HSPI>;
379 power-domains = <&cpg_clocks>;
360 status = "disabled"; 380 status = "disabled";
361 }; 381 };
362 382
@@ -367,6 +387,7 @@
367 #address-cells = <1>; 387 #address-cells = <1>;
368 #size-cells = <0>; 388 #size-cells = <0>;
369 clocks = <&mstp0_clks R8A7779_CLK_HSPI>; 389 clocks = <&mstp0_clks R8A7779_CLK_HSPI>;
390 power-domains = <&cpg_clocks>;
370 status = "disabled"; 391 status = "disabled";
371 }; 392 };
372 393
@@ -377,6 +398,7 @@
377 #address-cells = <1>; 398 #address-cells = <1>;
378 #size-cells = <0>; 399 #size-cells = <0>;
379 clocks = <&mstp0_clks R8A7779_CLK_HSPI>; 400 clocks = <&mstp0_clks R8A7779_CLK_HSPI>;
401 power-domains = <&cpg_clocks>;
380 status = "disabled"; 402 status = "disabled";
381 }; 403 };
382 404
@@ -385,6 +407,7 @@
385 reg = <0 0xfff80000 0 0x40000>; 407 reg = <0 0xfff80000 0 0x40000>;
386 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>; 408 interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
387 clocks = <&mstp1_clks R8A7779_CLK_DU>; 409 clocks = <&mstp1_clks R8A7779_CLK_DU>;
410 power-domains = <&cpg_clocks>;
388 status = "disabled"; 411 status = "disabled";
389 412
390 ports { 413 ports {
@@ -426,6 +449,7 @@
426 #clock-cells = <1>; 449 #clock-cells = <1>;
427 clock-output-names = "plla", "z", "zs", "s", 450 clock-output-names = "plla", "z", "zs", "s",
428 "s1", "p", "b", "out"; 451 "s1", "p", "b", "out";
452 #power-domain-cells = <0>;
429 }; 453 };
430 454
431 /* Fixed factor clocks */ 455 /* Fixed factor clocks */
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 2eb8a995ae9f..37dec5269491 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -174,7 +174,7 @@
174 1800000 0>; 174 1800000 0>;
175 }; 175 };
176 176
177 sound { 177 rsnd_ak4643: sound {
178 compatible = "simple-audio-card"; 178 compatible = "simple-audio-card";
179 179
180 simple-audio-card,format = "left_j"; 180 simple-audio-card,format = "left_j";
@@ -548,7 +548,7 @@
548 compatible = "adi,adv7511w"; 548 compatible = "adi,adv7511w";
549 reg = <0x39>; 549 reg = <0x39>;
550 interrupt-parent = <&gpio1>; 550 interrupt-parent = <&gpio1>;
551 interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 551 interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
552 552
553 adi,input-depth = <8>; 553 adi,input-depth = <8>;
554 adi,input-colorspace = "rgb"; 554 adi,input-colorspace = "rgb";
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 51ab8865ea37..a0b2a79cbfbd 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -113,7 +113,7 @@
113 }; 113 };
114 114
115 gic: interrupt-controller@f1001000 { 115 gic: interrupt-controller@f1001000 {
116 compatible = "arm,cortex-a15-gic"; 116 compatible = "arm,gic-400";
117 #interrupt-cells = <3>; 117 #interrupt-cells = <3>;
118 #address-cells = <0>; 118 #address-cells = <0>;
119 interrupt-controller; 119 interrupt-controller;
@@ -134,6 +134,7 @@
134 #interrupt-cells = <2>; 134 #interrupt-cells = <2>;
135 interrupt-controller; 135 interrupt-controller;
136 clocks = <&mstp9_clks R8A7790_CLK_GPIO0>; 136 clocks = <&mstp9_clks R8A7790_CLK_GPIO0>;
137 power-domains = <&cpg_clocks>;
137 }; 138 };
138 139
139 gpio1: gpio@e6051000 { 140 gpio1: gpio@e6051000 {
@@ -146,6 +147,7 @@
146 #interrupt-cells = <2>; 147 #interrupt-cells = <2>;
147 interrupt-controller; 148 interrupt-controller;
148 clocks = <&mstp9_clks R8A7790_CLK_GPIO1>; 149 clocks = <&mstp9_clks R8A7790_CLK_GPIO1>;
150 power-domains = <&cpg_clocks>;
149 }; 151 };
150 152
151 gpio2: gpio@e6052000 { 153 gpio2: gpio@e6052000 {
@@ -158,6 +160,7 @@
158 #interrupt-cells = <2>; 160 #interrupt-cells = <2>;
159 interrupt-controller; 161 interrupt-controller;
160 clocks = <&mstp9_clks R8A7790_CLK_GPIO2>; 162 clocks = <&mstp9_clks R8A7790_CLK_GPIO2>;
163 power-domains = <&cpg_clocks>;
161 }; 164 };
162 165
163 gpio3: gpio@e6053000 { 166 gpio3: gpio@e6053000 {
@@ -170,6 +173,7 @@
170 #interrupt-cells = <2>; 173 #interrupt-cells = <2>;
171 interrupt-controller; 174 interrupt-controller;
172 clocks = <&mstp9_clks R8A7790_CLK_GPIO3>; 175 clocks = <&mstp9_clks R8A7790_CLK_GPIO3>;
176 power-domains = <&cpg_clocks>;
173 }; 177 };
174 178
175 gpio4: gpio@e6054000 { 179 gpio4: gpio@e6054000 {
@@ -182,6 +186,7 @@
182 #interrupt-cells = <2>; 186 #interrupt-cells = <2>;
183 interrupt-controller; 187 interrupt-controller;
184 clocks = <&mstp9_clks R8A7790_CLK_GPIO4>; 188 clocks = <&mstp9_clks R8A7790_CLK_GPIO4>;
189 power-domains = <&cpg_clocks>;
185 }; 190 };
186 191
187 gpio5: gpio@e6055000 { 192 gpio5: gpio@e6055000 {
@@ -194,6 +199,7 @@
194 #interrupt-cells = <2>; 199 #interrupt-cells = <2>;
195 interrupt-controller; 200 interrupt-controller;
196 clocks = <&mstp9_clks R8A7790_CLK_GPIO5>; 201 clocks = <&mstp9_clks R8A7790_CLK_GPIO5>;
202 power-domains = <&cpg_clocks>;
197 }; 203 };
198 204
199 thermal@e61f0000 { 205 thermal@e61f0000 {
@@ -201,6 +207,7 @@
201 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; 207 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
202 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; 208 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
203 clocks = <&mstp5_clks R8A7790_CLK_THERMAL>; 209 clocks = <&mstp5_clks R8A7790_CLK_THERMAL>;
210 power-domains = <&cpg_clocks>;
204 }; 211 };
205 212
206 timer { 213 timer {
@@ -218,6 +225,7 @@
218 <0 143 IRQ_TYPE_LEVEL_HIGH>; 225 <0 143 IRQ_TYPE_LEVEL_HIGH>;
219 clocks = <&mstp1_clks R8A7790_CLK_CMT0>; 226 clocks = <&mstp1_clks R8A7790_CLK_CMT0>;
220 clock-names = "fck"; 227 clock-names = "fck";
228 power-domains = <&cpg_clocks>;
221 229
222 renesas,channels-mask = <0x60>; 230 renesas,channels-mask = <0x60>;
223 231
@@ -237,6 +245,7 @@
237 <0 127 IRQ_TYPE_LEVEL_HIGH>; 245 <0 127 IRQ_TYPE_LEVEL_HIGH>;
238 clocks = <&mstp3_clks R8A7790_CLK_CMT1>; 246 clocks = <&mstp3_clks R8A7790_CLK_CMT1>;
239 clock-names = "fck"; 247 clock-names = "fck";
248 power-domains = <&cpg_clocks>;
240 249
241 renesas,channels-mask = <0xff>; 250 renesas,channels-mask = <0xff>;
242 251
@@ -253,6 +262,7 @@
253 <0 2 IRQ_TYPE_LEVEL_HIGH>, 262 <0 2 IRQ_TYPE_LEVEL_HIGH>,
254 <0 3 IRQ_TYPE_LEVEL_HIGH>; 263 <0 3 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&mstp4_clks R8A7790_CLK_IRQC>; 264 clocks = <&mstp4_clks R8A7790_CLK_IRQC>;
265 power-domains = <&cpg_clocks>;
256 }; 266 };
257 267
258 dmac0: dma-controller@e6700000 { 268 dmac0: dma-controller@e6700000 {
@@ -281,6 +291,7 @@
281 "ch12", "ch13", "ch14"; 291 "ch12", "ch13", "ch14";
282 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>; 292 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC0>;
283 clock-names = "fck"; 293 clock-names = "fck";
294 power-domains = <&cpg_clocks>;
284 #dma-cells = <1>; 295 #dma-cells = <1>;
285 dma-channels = <15>; 296 dma-channels = <15>;
286 }; 297 };
@@ -311,6 +322,7 @@
311 "ch12", "ch13", "ch14"; 322 "ch12", "ch13", "ch14";
312 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>; 323 clocks = <&mstp2_clks R8A7790_CLK_SYS_DMAC1>;
313 clock-names = "fck"; 324 clock-names = "fck";
325 power-domains = <&cpg_clocks>;
314 #dma-cells = <1>; 326 #dma-cells = <1>;
315 dma-channels = <15>; 327 dma-channels = <15>;
316 }; 328 };
@@ -339,6 +351,7 @@
339 "ch12"; 351 "ch12";
340 clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC0>; 352 clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC0>;
341 clock-names = "fck"; 353 clock-names = "fck";
354 power-domains = <&cpg_clocks>;
342 #dma-cells = <1>; 355 #dma-cells = <1>;
343 dma-channels = <13>; 356 dma-channels = <13>;
344 }; 357 };
@@ -367,6 +380,7 @@
367 "ch12"; 380 "ch12";
368 clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC1>; 381 clocks = <&mstp5_clks R8A7790_CLK_AUDIO_DMAC1>;
369 clock-names = "fck"; 382 clock-names = "fck";
383 power-domains = <&cpg_clocks>;
370 #dma-cells = <1>; 384 #dma-cells = <1>;
371 dma-channels = <13>; 385 dma-channels = <13>;
372 }; 386 };
@@ -378,6 +392,7 @@
378 0 109 IRQ_TYPE_LEVEL_HIGH>; 392 0 109 IRQ_TYPE_LEVEL_HIGH>;
379 interrupt-names = "ch0", "ch1"; 393 interrupt-names = "ch0", "ch1";
380 clocks = <&mstp3_clks R8A7790_CLK_USBDMAC0>; 394 clocks = <&mstp3_clks R8A7790_CLK_USBDMAC0>;
395 power-domains = <&cpg_clocks>;
381 #dma-cells = <1>; 396 #dma-cells = <1>;
382 dma-channels = <2>; 397 dma-channels = <2>;
383 }; 398 };
@@ -389,6 +404,7 @@
389 0 110 IRQ_TYPE_LEVEL_HIGH>; 404 0 110 IRQ_TYPE_LEVEL_HIGH>;
390 interrupt-names = "ch0", "ch1"; 405 interrupt-names = "ch0", "ch1";
391 clocks = <&mstp3_clks R8A7790_CLK_USBDMAC1>; 406 clocks = <&mstp3_clks R8A7790_CLK_USBDMAC1>;
407 power-domains = <&cpg_clocks>;
392 #dma-cells = <1>; 408 #dma-cells = <1>;
393 dma-channels = <2>; 409 dma-channels = <2>;
394 }; 410 };
@@ -400,6 +416,7 @@
400 reg = <0 0xe6508000 0 0x40>; 416 reg = <0 0xe6508000 0 0x40>;
401 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; 417 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>;
402 clocks = <&mstp9_clks R8A7790_CLK_I2C0>; 418 clocks = <&mstp9_clks R8A7790_CLK_I2C0>;
419 power-domains = <&cpg_clocks>;
403 status = "disabled"; 420 status = "disabled";
404 }; 421 };
405 422
@@ -410,6 +427,7 @@
410 reg = <0 0xe6518000 0 0x40>; 427 reg = <0 0xe6518000 0 0x40>;
411 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; 428 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>;
412 clocks = <&mstp9_clks R8A7790_CLK_I2C1>; 429 clocks = <&mstp9_clks R8A7790_CLK_I2C1>;
430 power-domains = <&cpg_clocks>;
413 status = "disabled"; 431 status = "disabled";
414 }; 432 };
415 433
@@ -420,6 +438,7 @@
420 reg = <0 0xe6530000 0 0x40>; 438 reg = <0 0xe6530000 0 0x40>;
421 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; 439 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>;
422 clocks = <&mstp9_clks R8A7790_CLK_I2C2>; 440 clocks = <&mstp9_clks R8A7790_CLK_I2C2>;
441 power-domains = <&cpg_clocks>;
423 status = "disabled"; 442 status = "disabled";
424 }; 443 };
425 444
@@ -430,6 +449,7 @@
430 reg = <0 0xe6540000 0 0x40>; 449 reg = <0 0xe6540000 0 0x40>;
431 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; 450 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>;
432 clocks = <&mstp9_clks R8A7790_CLK_I2C3>; 451 clocks = <&mstp9_clks R8A7790_CLK_I2C3>;
452 power-domains = <&cpg_clocks>;
433 status = "disabled"; 453 status = "disabled";
434 }; 454 };
435 455
@@ -442,6 +462,7 @@
442 clocks = <&mstp3_clks R8A7790_CLK_IIC0>; 462 clocks = <&mstp3_clks R8A7790_CLK_IIC0>;
443 dmas = <&dmac0 0x61>, <&dmac0 0x62>; 463 dmas = <&dmac0 0x61>, <&dmac0 0x62>;
444 dma-names = "tx", "rx"; 464 dma-names = "tx", "rx";
465 power-domains = <&cpg_clocks>;
445 status = "disabled"; 466 status = "disabled";
446 }; 467 };
447 468
@@ -454,6 +475,7 @@
454 clocks = <&mstp3_clks R8A7790_CLK_IIC1>; 475 clocks = <&mstp3_clks R8A7790_CLK_IIC1>;
455 dmas = <&dmac0 0x65>, <&dmac0 0x66>; 476 dmas = <&dmac0 0x65>, <&dmac0 0x66>;
456 dma-names = "tx", "rx"; 477 dma-names = "tx", "rx";
478 power-domains = <&cpg_clocks>;
457 status = "disabled"; 479 status = "disabled";
458 }; 480 };
459 481
@@ -466,6 +488,7 @@
466 clocks = <&mstp3_clks R8A7790_CLK_IIC2>; 488 clocks = <&mstp3_clks R8A7790_CLK_IIC2>;
467 dmas = <&dmac0 0x69>, <&dmac0 0x6a>; 489 dmas = <&dmac0 0x69>, <&dmac0 0x6a>;
468 dma-names = "tx", "rx"; 490 dma-names = "tx", "rx";
491 power-domains = <&cpg_clocks>;
469 status = "disabled"; 492 status = "disabled";
470 }; 493 };
471 494
@@ -478,6 +501,7 @@
478 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>; 501 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>;
479 dmas = <&dmac0 0x77>, <&dmac0 0x78>; 502 dmas = <&dmac0 0x77>, <&dmac0 0x78>;
480 dma-names = "tx", "rx"; 503 dma-names = "tx", "rx";
504 power-domains = <&cpg_clocks>;
481 status = "disabled"; 505 status = "disabled";
482 }; 506 };
483 507
@@ -488,6 +512,7 @@
488 clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>; 512 clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>;
489 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>; 513 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
490 dma-names = "tx", "rx"; 514 dma-names = "tx", "rx";
515 power-domains = <&cpg_clocks>;
491 reg-io-width = <4>; 516 reg-io-width = <4>;
492 status = "disabled"; 517 status = "disabled";
493 max-frequency = <97500000>; 518 max-frequency = <97500000>;
@@ -500,6 +525,7 @@
500 clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>; 525 clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>;
501 dmas = <&dmac0 0xe1>, <&dmac0 0xe2>; 526 dmas = <&dmac0 0xe1>, <&dmac0 0xe2>;
502 dma-names = "tx", "rx"; 527 dma-names = "tx", "rx";
528 power-domains = <&cpg_clocks>;
503 reg-io-width = <4>; 529 reg-io-width = <4>;
504 status = "disabled"; 530 status = "disabled";
505 max-frequency = <97500000>; 531 max-frequency = <97500000>;
@@ -517,6 +543,7 @@
517 clocks = <&mstp3_clks R8A7790_CLK_SDHI0>; 543 clocks = <&mstp3_clks R8A7790_CLK_SDHI0>;
518 dmas = <&dmac1 0xcd>, <&dmac1 0xce>; 544 dmas = <&dmac1 0xcd>, <&dmac1 0xce>;
519 dma-names = "tx", "rx"; 545 dma-names = "tx", "rx";
546 power-domains = <&cpg_clocks>;
520 status = "disabled"; 547 status = "disabled";
521 }; 548 };
522 549
@@ -527,6 +554,7 @@
527 clocks = <&mstp3_clks R8A7790_CLK_SDHI1>; 554 clocks = <&mstp3_clks R8A7790_CLK_SDHI1>;
528 dmas = <&dmac1 0xc9>, <&dmac1 0xca>; 555 dmas = <&dmac1 0xc9>, <&dmac1 0xca>;
529 dma-names = "tx", "rx"; 556 dma-names = "tx", "rx";
557 power-domains = <&cpg_clocks>;
530 status = "disabled"; 558 status = "disabled";
531 }; 559 };
532 560
@@ -537,6 +565,7 @@
537 clocks = <&mstp3_clks R8A7790_CLK_SDHI2>; 565 clocks = <&mstp3_clks R8A7790_CLK_SDHI2>;
538 dmas = <&dmac1 0xc1>, <&dmac1 0xc2>; 566 dmas = <&dmac1 0xc1>, <&dmac1 0xc2>;
539 dma-names = "tx", "rx"; 567 dma-names = "tx", "rx";
568 power-domains = <&cpg_clocks>;
540 status = "disabled"; 569 status = "disabled";
541 }; 570 };
542 571
@@ -547,6 +576,7 @@
547 clocks = <&mstp3_clks R8A7790_CLK_SDHI3>; 576 clocks = <&mstp3_clks R8A7790_CLK_SDHI3>;
548 dmas = <&dmac1 0xd3>, <&dmac1 0xd4>; 577 dmas = <&dmac1 0xd3>, <&dmac1 0xd4>;
549 dma-names = "tx", "rx"; 578 dma-names = "tx", "rx";
579 power-domains = <&cpg_clocks>;
550 status = "disabled"; 580 status = "disabled";
551 }; 581 };
552 582
@@ -558,6 +588,7 @@
558 clock-names = "sci_ick"; 588 clock-names = "sci_ick";
559 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 589 dmas = <&dmac0 0x21>, <&dmac0 0x22>;
560 dma-names = "tx", "rx"; 590 dma-names = "tx", "rx";
591 power-domains = <&cpg_clocks>;
561 status = "disabled"; 592 status = "disabled";
562 }; 593 };
563 594
@@ -569,6 +600,7 @@
569 clock-names = "sci_ick"; 600 clock-names = "sci_ick";
570 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 601 dmas = <&dmac0 0x25>, <&dmac0 0x26>;
571 dma-names = "tx", "rx"; 602 dma-names = "tx", "rx";
603 power-domains = <&cpg_clocks>;
572 status = "disabled"; 604 status = "disabled";
573 }; 605 };
574 606
@@ -580,6 +612,7 @@
580 clock-names = "sci_ick"; 612 clock-names = "sci_ick";
581 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 613 dmas = <&dmac0 0x27>, <&dmac0 0x28>;
582 dma-names = "tx", "rx"; 614 dma-names = "tx", "rx";
615 power-domains = <&cpg_clocks>;
583 status = "disabled"; 616 status = "disabled";
584 }; 617 };
585 618
@@ -591,6 +624,7 @@
591 clock-names = "sci_ick"; 624 clock-names = "sci_ick";
592 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 625 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>;
593 dma-names = "tx", "rx"; 626 dma-names = "tx", "rx";
627 power-domains = <&cpg_clocks>;
594 status = "disabled"; 628 status = "disabled";
595 }; 629 };
596 630
@@ -602,6 +636,7 @@
602 clock-names = "sci_ick"; 636 clock-names = "sci_ick";
603 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 637 dmas = <&dmac0 0x19>, <&dmac0 0x1a>;
604 dma-names = "tx", "rx"; 638 dma-names = "tx", "rx";
639 power-domains = <&cpg_clocks>;
605 status = "disabled"; 640 status = "disabled";
606 }; 641 };
607 642
@@ -613,6 +648,7 @@
613 clock-names = "sci_ick"; 648 clock-names = "sci_ick";
614 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 649 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>;
615 dma-names = "tx", "rx"; 650 dma-names = "tx", "rx";
651 power-domains = <&cpg_clocks>;
616 status = "disabled"; 652 status = "disabled";
617 }; 653 };
618 654
@@ -624,6 +660,7 @@
624 clock-names = "sci_ick"; 660 clock-names = "sci_ick";
625 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 661 dmas = <&dmac0 0x29>, <&dmac0 0x2a>;
626 dma-names = "tx", "rx"; 662 dma-names = "tx", "rx";
663 power-domains = <&cpg_clocks>;
627 status = "disabled"; 664 status = "disabled";
628 }; 665 };
629 666
@@ -635,6 +672,7 @@
635 clock-names = "sci_ick"; 672 clock-names = "sci_ick";
636 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 673 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>;
637 dma-names = "tx", "rx"; 674 dma-names = "tx", "rx";
675 power-domains = <&cpg_clocks>;
638 status = "disabled"; 676 status = "disabled";
639 }; 677 };
640 678
@@ -646,6 +684,7 @@
646 clock-names = "sci_ick"; 684 clock-names = "sci_ick";
647 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 685 dmas = <&dmac0 0x39>, <&dmac0 0x3a>;
648 dma-names = "tx", "rx"; 686 dma-names = "tx", "rx";
687 power-domains = <&cpg_clocks>;
649 status = "disabled"; 688 status = "disabled";
650 }; 689 };
651 690
@@ -657,6 +696,7 @@
657 clock-names = "sci_ick"; 696 clock-names = "sci_ick";
658 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 697 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>;
659 dma-names = "tx", "rx"; 698 dma-names = "tx", "rx";
699 power-domains = <&cpg_clocks>;
660 status = "disabled"; 700 status = "disabled";
661 }; 701 };
662 702
@@ -665,17 +705,30 @@
665 reg = <0 0xee700000 0 0x400>; 705 reg = <0 0xee700000 0 0x400>;
666 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>; 706 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>;
667 clocks = <&mstp8_clks R8A7790_CLK_ETHER>; 707 clocks = <&mstp8_clks R8A7790_CLK_ETHER>;
708 power-domains = <&cpg_clocks>;
668 phy-mode = "rmii"; 709 phy-mode = "rmii";
669 #address-cells = <1>; 710 #address-cells = <1>;
670 #size-cells = <0>; 711 #size-cells = <0>;
671 status = "disabled"; 712 status = "disabled";
672 }; 713 };
673 714
715 avb: ethernet@e6800000 {
716 compatible = "renesas,etheravb-r8a7790";
717 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
718 interrupts = <0 163 IRQ_TYPE_LEVEL_HIGH>;
719 clocks = <&mstp8_clks R8A7790_CLK_ETHERAVB>;
720 power-domains = <&cpg_clocks>;
721 #address-cells = <1>;
722 #size-cells = <0>;
723 status = "disabled";
724 };
725
674 sata0: sata@ee300000 { 726 sata0: sata@ee300000 {
675 compatible = "renesas,sata-r8a7790"; 727 compatible = "renesas,sata-r8a7790";
676 reg = <0 0xee300000 0 0x2000>; 728 reg = <0 0xee300000 0 0x2000>;
677 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; 729 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
678 clocks = <&mstp8_clks R8A7790_CLK_SATA0>; 730 clocks = <&mstp8_clks R8A7790_CLK_SATA0>;
731 power-domains = <&cpg_clocks>;
679 status = "disabled"; 732 status = "disabled";
680 }; 733 };
681 734
@@ -684,6 +737,7 @@
684 reg = <0 0xee500000 0 0x2000>; 737 reg = <0 0xee500000 0 0x2000>;
685 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; 738 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
686 clocks = <&mstp8_clks R8A7790_CLK_SATA1>; 739 clocks = <&mstp8_clks R8A7790_CLK_SATA1>;
740 power-domains = <&cpg_clocks>;
687 status = "disabled"; 741 status = "disabled";
688 }; 742 };
689 743
@@ -692,12 +746,13 @@
692 reg = <0 0xe6590000 0 0x100>; 746 reg = <0 0xe6590000 0 0x100>;
693 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; 747 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
694 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; 748 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
695 renesas,buswait = <4>;
696 phys = <&usb0 1>;
697 phy-names = "usb";
698 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 749 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
699 <&usb_dmac1 0>, <&usb_dmac1 1>; 750 <&usb_dmac1 0>, <&usb_dmac1 1>;
700 dma-names = "ch0", "ch1", "ch2", "ch3"; 751 dma-names = "ch0", "ch1", "ch2", "ch3";
752 power-domains = <&cpg_clocks>;
753 renesas,buswait = <4>;
754 phys = <&usb0 1>;
755 phy-names = "usb";
701 status = "disabled"; 756 status = "disabled";
702 }; 757 };
703 758
@@ -708,6 +763,7 @@
708 #size-cells = <0>; 763 #size-cells = <0>;
709 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>; 764 clocks = <&mstp7_clks R8A7790_CLK_HSUSB>;
710 clock-names = "usbhs"; 765 clock-names = "usbhs";
766 power-domains = <&cpg_clocks>;
711 status = "disabled"; 767 status = "disabled";
712 768
713 usb0: usb-channel@0 { 769 usb0: usb-channel@0 {
@@ -722,33 +778,37 @@
722 778
723 vin0: video@e6ef0000 { 779 vin0: video@e6ef0000 {
724 compatible = "renesas,vin-r8a7790"; 780 compatible = "renesas,vin-r8a7790";
725 clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
726 reg = <0 0xe6ef0000 0 0x1000>; 781 reg = <0 0xe6ef0000 0 0x1000>;
727 interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>; 782 interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
783 clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
784 power-domains = <&cpg_clocks>;
728 status = "disabled"; 785 status = "disabled";
729 }; 786 };
730 787
731 vin1: video@e6ef1000 { 788 vin1: video@e6ef1000 {
732 compatible = "renesas,vin-r8a7790"; 789 compatible = "renesas,vin-r8a7790";
733 clocks = <&mstp8_clks R8A7790_CLK_VIN1>;
734 reg = <0 0xe6ef1000 0 0x1000>; 790 reg = <0 0xe6ef1000 0 0x1000>;
735 interrupts = <0 189 IRQ_TYPE_LEVEL_HIGH>; 791 interrupts = <0 189 IRQ_TYPE_LEVEL_HIGH>;
792 clocks = <&mstp8_clks R8A7790_CLK_VIN1>;
793 power-domains = <&cpg_clocks>;
736 status = "disabled"; 794 status = "disabled";
737 }; 795 };
738 796
739 vin2: video@e6ef2000 { 797 vin2: video@e6ef2000 {
740 compatible = "renesas,vin-r8a7790"; 798 compatible = "renesas,vin-r8a7790";
741 clocks = <&mstp8_clks R8A7790_CLK_VIN2>;
742 reg = <0 0xe6ef2000 0 0x1000>; 799 reg = <0 0xe6ef2000 0 0x1000>;
743 interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>; 800 interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>;
801 clocks = <&mstp8_clks R8A7790_CLK_VIN2>;
802 power-domains = <&cpg_clocks>;
744 status = "disabled"; 803 status = "disabled";
745 }; 804 };
746 805
747 vin3: video@e6ef3000 { 806 vin3: video@e6ef3000 {
748 compatible = "renesas,vin-r8a7790"; 807 compatible = "renesas,vin-r8a7790";
749 clocks = <&mstp8_clks R8A7790_CLK_VIN3>;
750 reg = <0 0xe6ef3000 0 0x1000>; 808 reg = <0 0xe6ef3000 0 0x1000>;
751 interrupts = <0 191 IRQ_TYPE_LEVEL_HIGH>; 809 interrupts = <0 191 IRQ_TYPE_LEVEL_HIGH>;
810 clocks = <&mstp8_clks R8A7790_CLK_VIN3>;
811 power-domains = <&cpg_clocks>;
752 status = "disabled"; 812 status = "disabled";
753 }; 813 };
754 814
@@ -757,6 +817,7 @@
757 reg = <0 0xfe920000 0 0x8000>; 817 reg = <0 0xfe920000 0 0x8000>;
758 interrupts = <0 266 IRQ_TYPE_LEVEL_HIGH>; 818 interrupts = <0 266 IRQ_TYPE_LEVEL_HIGH>;
759 clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>; 819 clocks = <&mstp1_clks R8A7790_CLK_VSP1_R>;
820 power-domains = <&cpg_clocks>;
760 821
761 renesas,has-sru; 822 renesas,has-sru;
762 renesas,#rpf = <5>; 823 renesas,#rpf = <5>;
@@ -769,6 +830,7 @@
769 reg = <0 0xfe928000 0 0x8000>; 830 reg = <0 0xfe928000 0 0x8000>;
770 interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>; 831 interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>;
771 clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>; 832 clocks = <&mstp1_clks R8A7790_CLK_VSP1_S>;
833 power-domains = <&cpg_clocks>;
772 834
773 renesas,has-lut; 835 renesas,has-lut;
774 renesas,has-sru; 836 renesas,has-sru;
@@ -782,6 +844,7 @@
782 reg = <0 0xfe930000 0 0x8000>; 844 reg = <0 0xfe930000 0 0x8000>;
783 interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>; 845 interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>;
784 clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>; 846 clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU0>;
847 power-domains = <&cpg_clocks>;
785 848
786 renesas,has-lif; 849 renesas,has-lif;
787 renesas,has-lut; 850 renesas,has-lut;
@@ -795,6 +858,7 @@
795 reg = <0 0xfe938000 0 0x8000>; 858 reg = <0 0xfe938000 0 0x8000>;
796 interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>; 859 interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>;
797 clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>; 860 clocks = <&mstp1_clks R8A7790_CLK_VSP1_DU1>;
861 power-domains = <&cpg_clocks>;
798 862
799 renesas,has-lif; 863 renesas,has-lif;
800 renesas,has-lut; 864 renesas,has-lut;
@@ -849,6 +913,7 @@
849 clocks = <&mstp9_clks R8A7790_CLK_RCAN0>, 913 clocks = <&mstp9_clks R8A7790_CLK_RCAN0>,
850 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>; 914 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>;
851 clock-names = "clkp1", "clkp2", "can_clk"; 915 clock-names = "clkp1", "clkp2", "can_clk";
916 power-domains = <&cpg_clocks>;
852 status = "disabled"; 917 status = "disabled";
853 }; 918 };
854 919
@@ -859,9 +924,18 @@
859 clocks = <&mstp9_clks R8A7790_CLK_RCAN1>, 924 clocks = <&mstp9_clks R8A7790_CLK_RCAN1>,
860 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>; 925 <&cpg_clocks R8A7790_CLK_RCAN>, <&can_clk>;
861 clock-names = "clkp1", "clkp2", "can_clk"; 926 clock-names = "clkp1", "clkp2", "can_clk";
927 power-domains = <&cpg_clocks>;
862 status = "disabled"; 928 status = "disabled";
863 }; 929 };
864 930
931 jpu: jpeg-codec@fe980000 {
932 compatible = "renesas,jpu-r8a7790";
933 reg = <0 0xfe980000 0 0x10300>;
934 interrupts = <0 272 IRQ_TYPE_LEVEL_HIGH>;
935 clocks = <&mstp1_clks R8A7790_CLK_JPU>;
936 power-domains = <&cpg_clocks>;
937 };
938
865 clocks { 939 clocks {
866 #address-cells = <2>; 940 #address-cells = <2>;
867 #size-cells = <2>; 941 #size-cells = <2>;
@@ -936,6 +1010,7 @@
936 clock-output-names = "main", "pll0", "pll1", "pll3", 1010 clock-output-names = "main", "pll0", "pll1", "pll3",
937 "lb", "qspi", "sdh", "sd0", "sd1", 1011 "lb", "qspi", "sdh", "sd0", "sd1",
938 "z", "rcan", "adsp"; 1012 "z", "rcan", "adsp";
1013 #power-domain-cells = <0>;
939 }; 1014 };
940 1015
941 /* Variable factor clocks */ 1016 /* Variable factor clocks */
@@ -1249,16 +1324,18 @@
1249 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; 1324 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
1250 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>; 1325 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
1251 clocks = <&hp_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>, 1326 clocks = <&hp_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
1252 <&zg_clk>, <&p_clk>, <&zs_clk>, <&zs_clk>; 1327 <&zg_clk>, <&hp_clk>, <&p_clk>, <&zs_clk>,
1328 <&zs_clk>;
1253 #clock-cells = <1>; 1329 #clock-cells = <1>;
1254 clock-indices = < 1330 clock-indices = <
1255 R8A7790_CLK_MLB R8A7790_CLK_VIN3 R8A7790_CLK_VIN2 1331 R8A7790_CLK_MLB R8A7790_CLK_VIN3 R8A7790_CLK_VIN2
1256 R8A7790_CLK_VIN1 R8A7790_CLK_VIN0 R8A7790_CLK_ETHER 1332 R8A7790_CLK_VIN1 R8A7790_CLK_VIN0
1333 R8A7790_CLK_ETHERAVB R8A7790_CLK_ETHER
1257 R8A7790_CLK_SATA1 R8A7790_CLK_SATA0 1334 R8A7790_CLK_SATA1 R8A7790_CLK_SATA0
1258 >; 1335 >;
1259 clock-output-names = 1336 clock-output-names =
1260 "mlb", "vin3", "vin2", "vin1", "vin0", "ether", 1337 "mlb", "vin3", "vin2", "vin1", "vin0",
1261 "sata1", "sata0"; 1338 "etheravb", "ether", "sata1", "sata0";
1262 }; 1339 };
1263 mstp9_clks: mstp9_clks@e6150994 { 1340 mstp9_clks: mstp9_clks@e6150994 {
1264 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks"; 1341 compatible = "renesas,r8a7790-mstp-clocks", "renesas,cpg-mstp-clocks";
@@ -1291,6 +1368,7 @@
1291 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, 1368 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1292 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, 1369 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1293 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>, 1370 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1371 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>,
1294 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>; 1372 <&mstp10_clks R8A7790_CLK_SCU_ALL>, <&mstp10_clks R8A7790_CLK_SCU_ALL>;
1295 1373
1296 #clock-cells = <1>; 1374 #clock-cells = <1>;
@@ -1300,6 +1378,7 @@
1300 R8A7790_CLK_SSI4 R8A7790_CLK_SSI3 R8A7790_CLK_SSI2 R8A7790_CLK_SSI1 R8A7790_CLK_SSI0 1378 R8A7790_CLK_SSI4 R8A7790_CLK_SSI3 R8A7790_CLK_SSI2 R8A7790_CLK_SSI1 R8A7790_CLK_SSI0
1301 R8A7790_CLK_SCU_ALL 1379 R8A7790_CLK_SCU_ALL
1302 R8A7790_CLK_SCU_DVC1 R8A7790_CLK_SCU_DVC0 1380 R8A7790_CLK_SCU_DVC1 R8A7790_CLK_SCU_DVC0
1381 R8A7790_CLK_SCU_CTU1_MIX1 R8A7790_CLK_SCU_CTU0_MIX0
1303 R8A7790_CLK_SCU_SRC9 R8A7790_CLK_SCU_SRC8 R8A7790_CLK_SCU_SRC7 R8A7790_CLK_SCU_SRC6 R8A7790_CLK_SCU_SRC5 1382 R8A7790_CLK_SCU_SRC9 R8A7790_CLK_SCU_SRC8 R8A7790_CLK_SCU_SRC7 R8A7790_CLK_SCU_SRC6 R8A7790_CLK_SCU_SRC5
1304 R8A7790_CLK_SCU_SRC4 R8A7790_CLK_SCU_SRC3 R8A7790_CLK_SCU_SRC2 R8A7790_CLK_SCU_SRC1 R8A7790_CLK_SCU_SRC0 1383 R8A7790_CLK_SCU_SRC4 R8A7790_CLK_SCU_SRC3 R8A7790_CLK_SCU_SRC2 R8A7790_CLK_SCU_SRC1 R8A7790_CLK_SCU_SRC0
1305 >; 1384 >;
@@ -1309,6 +1388,7 @@
1309 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0", 1388 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
1310 "scu-all", 1389 "scu-all",
1311 "scu-dvc1", "scu-dvc0", 1390 "scu-dvc1", "scu-dvc0",
1391 "scu-ctu1-mix1", "scu-ctu0-mix0",
1312 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5", 1392 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
1313 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0"; 1393 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
1314 }; 1394 };
@@ -1321,6 +1401,7 @@
1321 clocks = <&mstp9_clks R8A7790_CLK_QSPI_MOD>; 1401 clocks = <&mstp9_clks R8A7790_CLK_QSPI_MOD>;
1322 dmas = <&dmac0 0x17>, <&dmac0 0x18>; 1402 dmas = <&dmac0 0x17>, <&dmac0 0x18>;
1323 dma-names = "tx", "rx"; 1403 dma-names = "tx", "rx";
1404 power-domains = <&cpg_clocks>;
1324 num-cs = <1>; 1405 num-cs = <1>;
1325 #address-cells = <1>; 1406 #address-cells = <1>;
1326 #size-cells = <0>; 1407 #size-cells = <0>;
@@ -1334,6 +1415,7 @@
1334 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>; 1415 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>;
1335 dmas = <&dmac0 0x51>, <&dmac0 0x52>; 1416 dmas = <&dmac0 0x51>, <&dmac0 0x52>;
1336 dma-names = "tx", "rx"; 1417 dma-names = "tx", "rx";
1418 power-domains = <&cpg_clocks>;
1337 #address-cells = <1>; 1419 #address-cells = <1>;
1338 #size-cells = <0>; 1420 #size-cells = <0>;
1339 status = "disabled"; 1421 status = "disabled";
@@ -1346,6 +1428,7 @@
1346 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>; 1428 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>;
1347 dmas = <&dmac0 0x55>, <&dmac0 0x56>; 1429 dmas = <&dmac0 0x55>, <&dmac0 0x56>;
1348 dma-names = "tx", "rx"; 1430 dma-names = "tx", "rx";
1431 power-domains = <&cpg_clocks>;
1349 #address-cells = <1>; 1432 #address-cells = <1>;
1350 #size-cells = <0>; 1433 #size-cells = <0>;
1351 status = "disabled"; 1434 status = "disabled";
@@ -1358,6 +1441,7 @@
1358 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>; 1441 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>;
1359 dmas = <&dmac0 0x41>, <&dmac0 0x42>; 1442 dmas = <&dmac0 0x41>, <&dmac0 0x42>;
1360 dma-names = "tx", "rx"; 1443 dma-names = "tx", "rx";
1444 power-domains = <&cpg_clocks>;
1361 #address-cells = <1>; 1445 #address-cells = <1>;
1362 #size-cells = <0>; 1446 #size-cells = <0>;
1363 status = "disabled"; 1447 status = "disabled";
@@ -1370,6 +1454,7 @@
1370 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>; 1454 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>;
1371 dmas = <&dmac0 0x45>, <&dmac0 0x46>; 1455 dmas = <&dmac0 0x45>, <&dmac0 0x46>;
1372 dma-names = "tx", "rx"; 1456 dma-names = "tx", "rx";
1457 power-domains = <&cpg_clocks>;
1373 #address-cells = <1>; 1458 #address-cells = <1>;
1374 #size-cells = <0>; 1459 #size-cells = <0>;
1375 status = "disabled"; 1460 status = "disabled";
@@ -1380,6 +1465,7 @@
1380 reg = <0 0xee000000 0 0xc00>; 1465 reg = <0 0xee000000 0 0xc00>;
1381 interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>; 1466 interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
1382 clocks = <&mstp3_clks R8A7790_CLK_SSUSB>; 1467 clocks = <&mstp3_clks R8A7790_CLK_SSUSB>;
1468 power-domains = <&cpg_clocks>;
1383 phys = <&usb2 1>; 1469 phys = <&usb2 1>;
1384 phy-names = "usb"; 1470 phy-names = "usb";
1385 status = "disabled"; 1471 status = "disabled";
@@ -1388,10 +1474,11 @@
1388 pci0: pci@ee090000 { 1474 pci0: pci@ee090000 {
1389 compatible = "renesas,pci-r8a7790"; 1475 compatible = "renesas,pci-r8a7790";
1390 device_type = "pci"; 1476 device_type = "pci";
1391 clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
1392 reg = <0 0xee090000 0 0xc00>, 1477 reg = <0 0xee090000 0 0xc00>,
1393 <0 0xee080000 0 0x1100>; 1478 <0 0xee080000 0 0x1100>;
1394 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; 1479 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
1480 clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
1481 power-domains = <&cpg_clocks>;
1395 status = "disabled"; 1482 status = "disabled";
1396 1483
1397 bus-range = <0 0>; 1484 bus-range = <0 0>;
@@ -1422,10 +1509,11 @@
1422 pci1: pci@ee0b0000 { 1509 pci1: pci@ee0b0000 {
1423 compatible = "renesas,pci-r8a7790"; 1510 compatible = "renesas,pci-r8a7790";
1424 device_type = "pci"; 1511 device_type = "pci";
1425 clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
1426 reg = <0 0xee0b0000 0 0xc00>, 1512 reg = <0 0xee0b0000 0 0xc00>,
1427 <0 0xee0a0000 0 0x1100>; 1513 <0 0xee0a0000 0 0x1100>;
1428 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>; 1514 interrupts = <0 112 IRQ_TYPE_LEVEL_HIGH>;
1515 clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
1516 power-domains = <&cpg_clocks>;
1429 status = "disabled"; 1517 status = "disabled";
1430 1518
1431 bus-range = <1 1>; 1519 bus-range = <1 1>;
@@ -1443,6 +1531,7 @@
1443 compatible = "renesas,pci-r8a7790"; 1531 compatible = "renesas,pci-r8a7790";
1444 device_type = "pci"; 1532 device_type = "pci";
1445 clocks = <&mstp7_clks R8A7790_CLK_EHCI>; 1533 clocks = <&mstp7_clks R8A7790_CLK_EHCI>;
1534 power-domains = <&cpg_clocks>;
1446 reg = <0 0xee0d0000 0 0xc00>, 1535 reg = <0 0xee0d0000 0 0xc00>,
1447 <0 0xee0c0000 0 0x1100>; 1536 <0 0xee0c0000 0 0x1100>;
1448 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>; 1537 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
@@ -1495,6 +1584,7 @@
1495 interrupt-map = <0 0 0 0 &gic 0 116 IRQ_TYPE_LEVEL_HIGH>; 1584 interrupt-map = <0 0 0 0 &gic 0 116 IRQ_TYPE_LEVEL_HIGH>;
1496 clocks = <&mstp3_clks R8A7790_CLK_PCIEC>, <&pcie_bus_clk>; 1585 clocks = <&mstp3_clks R8A7790_CLK_PCIEC>, <&pcie_bus_clk>;
1497 clock-names = "pcie", "pcie_bus"; 1586 clock-names = "pcie", "pcie_bus";
1587 power-domains = <&cpg_clocks>;
1498 status = "disabled"; 1588 status = "disabled";
1499 }; 1589 };
1500 1590
@@ -1524,6 +1614,8 @@
1524 <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>, 1614 <&mstp10_clks R8A7790_CLK_SCU_SRC5>, <&mstp10_clks R8A7790_CLK_SCU_SRC4>,
1525 <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>, 1615 <&mstp10_clks R8A7790_CLK_SCU_SRC3>, <&mstp10_clks R8A7790_CLK_SCU_SRC2>,
1526 <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>, 1616 <&mstp10_clks R8A7790_CLK_SCU_SRC1>, <&mstp10_clks R8A7790_CLK_SCU_SRC0>,
1617 <&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>,
1618 <&mstp10_clks R8A7790_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7790_CLK_SCU_CTU1_MIX1>,
1527 <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>, 1619 <&mstp10_clks R8A7790_CLK_SCU_DVC0>, <&mstp10_clks R8A7790_CLK_SCU_DVC1>,
1528 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 1620 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
1529 clock-names = "ssi-all", 1621 clock-names = "ssi-all",
@@ -1531,6 +1623,8 @@
1531 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 1623 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
1532 "src.9", "src.8", "src.7", "src.6", "src.5", 1624 "src.9", "src.8", "src.7", "src.6", "src.5",
1533 "src.4", "src.3", "src.2", "src.1", "src.0", 1625 "src.4", "src.3", "src.2", "src.1", "src.0",
1626 "ctu.0", "ctu.1",
1627 "mix.0", "mix.1",
1534 "dvc.0", "dvc.1", 1628 "dvc.0", "dvc.1",
1535 "clk_a", "clk_b", "clk_c", "clk_i"; 1629 "clk_a", "clk_b", "clk_c", "clk_i";
1536 1630
@@ -1547,6 +1641,22 @@
1547 }; 1641 };
1548 }; 1642 };
1549 1643
1644 rcar_sound,mix {
1645 mix0: mix@0 { };
1646 mix1: mix@1 { };
1647 };
1648
1649 rcar_sound,ctu {
1650 ctu00: ctu@0 { };
1651 ctu01: ctu@1 { };
1652 ctu02: ctu@2 { };
1653 ctu03: ctu@3 { };
1654 ctu10: ctu@4 { };
1655 ctu11: ctu@5 { };
1656 ctu12: ctu@6 { };
1657 ctu13: ctu@7 { };
1658 };
1659
1550 rcar_sound,src { 1660 rcar_sound,src {
1551 src0: src@0 { 1661 src0: src@0 {
1552 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 1662 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index cffe33ff4d16..dc158845afdc 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -242,7 +242,7 @@
242 1800000 0>; 242 1800000 0>;
243 }; 243 };
244 244
245 sound { 245 rsnd_ak4643: sound {
246 compatible = "simple-audio-card"; 246 compatible = "simple-audio-card";
247 247
248 simple-audio-card,format = "left_j"; 248 simple-audio-card,format = "left_j";
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index dc1cd3f16606..831525dd39a6 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -70,7 +70,7 @@
70 }; 70 };
71 71
72 gic: interrupt-controller@f1001000 { 72 gic: interrupt-controller@f1001000 {
73 compatible = "arm,cortex-a15-gic"; 73 compatible = "arm,gic-400";
74 #interrupt-cells = <3>; 74 #interrupt-cells = <3>;
75 #address-cells = <0>; 75 #address-cells = <0>;
76 interrupt-controller; 76 interrupt-controller;
@@ -91,6 +91,7 @@
91 #interrupt-cells = <2>; 91 #interrupt-cells = <2>;
92 interrupt-controller; 92 interrupt-controller;
93 clocks = <&mstp9_clks R8A7791_CLK_GPIO0>; 93 clocks = <&mstp9_clks R8A7791_CLK_GPIO0>;
94 power-domains = <&cpg_clocks>;
94 }; 95 };
95 96
96 gpio1: gpio@e6051000 { 97 gpio1: gpio@e6051000 {
@@ -103,6 +104,7 @@
103 #interrupt-cells = <2>; 104 #interrupt-cells = <2>;
104 interrupt-controller; 105 interrupt-controller;
105 clocks = <&mstp9_clks R8A7791_CLK_GPIO1>; 106 clocks = <&mstp9_clks R8A7791_CLK_GPIO1>;
107 power-domains = <&cpg_clocks>;
106 }; 108 };
107 109
108 gpio2: gpio@e6052000 { 110 gpio2: gpio@e6052000 {
@@ -115,6 +117,7 @@
115 #interrupt-cells = <2>; 117 #interrupt-cells = <2>;
116 interrupt-controller; 118 interrupt-controller;
117 clocks = <&mstp9_clks R8A7791_CLK_GPIO2>; 119 clocks = <&mstp9_clks R8A7791_CLK_GPIO2>;
120 power-domains = <&cpg_clocks>;
118 }; 121 };
119 122
120 gpio3: gpio@e6053000 { 123 gpio3: gpio@e6053000 {
@@ -127,6 +130,7 @@
127 #interrupt-cells = <2>; 130 #interrupt-cells = <2>;
128 interrupt-controller; 131 interrupt-controller;
129 clocks = <&mstp9_clks R8A7791_CLK_GPIO3>; 132 clocks = <&mstp9_clks R8A7791_CLK_GPIO3>;
133 power-domains = <&cpg_clocks>;
130 }; 134 };
131 135
132 gpio4: gpio@e6054000 { 136 gpio4: gpio@e6054000 {
@@ -139,6 +143,7 @@
139 #interrupt-cells = <2>; 143 #interrupt-cells = <2>;
140 interrupt-controller; 144 interrupt-controller;
141 clocks = <&mstp9_clks R8A7791_CLK_GPIO4>; 145 clocks = <&mstp9_clks R8A7791_CLK_GPIO4>;
146 power-domains = <&cpg_clocks>;
142 }; 147 };
143 148
144 gpio5: gpio@e6055000 { 149 gpio5: gpio@e6055000 {
@@ -151,6 +156,7 @@
151 #interrupt-cells = <2>; 156 #interrupt-cells = <2>;
152 interrupt-controller; 157 interrupt-controller;
153 clocks = <&mstp9_clks R8A7791_CLK_GPIO5>; 158 clocks = <&mstp9_clks R8A7791_CLK_GPIO5>;
159 power-domains = <&cpg_clocks>;
154 }; 160 };
155 161
156 gpio6: gpio@e6055400 { 162 gpio6: gpio@e6055400 {
@@ -163,6 +169,7 @@
163 #interrupt-cells = <2>; 169 #interrupt-cells = <2>;
164 interrupt-controller; 170 interrupt-controller;
165 clocks = <&mstp9_clks R8A7791_CLK_GPIO6>; 171 clocks = <&mstp9_clks R8A7791_CLK_GPIO6>;
172 power-domains = <&cpg_clocks>;
166 }; 173 };
167 174
168 gpio7: gpio@e6055800 { 175 gpio7: gpio@e6055800 {
@@ -175,6 +182,7 @@
175 #interrupt-cells = <2>; 182 #interrupt-cells = <2>;
176 interrupt-controller; 183 interrupt-controller;
177 clocks = <&mstp9_clks R8A7791_CLK_GPIO7>; 184 clocks = <&mstp9_clks R8A7791_CLK_GPIO7>;
185 power-domains = <&cpg_clocks>;
178 }; 186 };
179 187
180 thermal@e61f0000 { 188 thermal@e61f0000 {
@@ -182,6 +190,7 @@
182 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>; 190 reg = <0 0xe61f0000 0 0x14>, <0 0xe61f0100 0 0x38>;
183 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>; 191 interrupts = <0 69 IRQ_TYPE_LEVEL_HIGH>;
184 clocks = <&mstp5_clks R8A7791_CLK_THERMAL>; 192 clocks = <&mstp5_clks R8A7791_CLK_THERMAL>;
193 power-domains = <&cpg_clocks>;
185 }; 194 };
186 195
187 timer { 196 timer {
@@ -199,6 +208,7 @@
199 <0 143 IRQ_TYPE_LEVEL_HIGH>; 208 <0 143 IRQ_TYPE_LEVEL_HIGH>;
200 clocks = <&mstp1_clks R8A7791_CLK_CMT0>; 209 clocks = <&mstp1_clks R8A7791_CLK_CMT0>;
201 clock-names = "fck"; 210 clock-names = "fck";
211 power-domains = <&cpg_clocks>;
202 212
203 renesas,channels-mask = <0x60>; 213 renesas,channels-mask = <0x60>;
204 214
@@ -218,6 +228,7 @@
218 <0 127 IRQ_TYPE_LEVEL_HIGH>; 228 <0 127 IRQ_TYPE_LEVEL_HIGH>;
219 clocks = <&mstp3_clks R8A7791_CLK_CMT1>; 229 clocks = <&mstp3_clks R8A7791_CLK_CMT1>;
220 clock-names = "fck"; 230 clock-names = "fck";
231 power-domains = <&cpg_clocks>;
221 232
222 renesas,channels-mask = <0xff>; 233 renesas,channels-mask = <0xff>;
223 234
@@ -240,6 +251,7 @@
240 <0 16 IRQ_TYPE_LEVEL_HIGH>, 251 <0 16 IRQ_TYPE_LEVEL_HIGH>,
241 <0 17 IRQ_TYPE_LEVEL_HIGH>; 252 <0 17 IRQ_TYPE_LEVEL_HIGH>;
242 clocks = <&mstp4_clks R8A7791_CLK_IRQC>; 253 clocks = <&mstp4_clks R8A7791_CLK_IRQC>;
254 power-domains = <&cpg_clocks>;
243 }; 255 };
244 256
245 dmac0: dma-controller@e6700000 { 257 dmac0: dma-controller@e6700000 {
@@ -268,6 +280,7 @@
268 "ch12", "ch13", "ch14"; 280 "ch12", "ch13", "ch14";
269 clocks = <&mstp2_clks R8A7791_CLK_SYS_DMAC0>; 281 clocks = <&mstp2_clks R8A7791_CLK_SYS_DMAC0>;
270 clock-names = "fck"; 282 clock-names = "fck";
283 power-domains = <&cpg_clocks>;
271 #dma-cells = <1>; 284 #dma-cells = <1>;
272 dma-channels = <15>; 285 dma-channels = <15>;
273 }; 286 };
@@ -298,6 +311,7 @@
298 "ch12", "ch13", "ch14"; 311 "ch12", "ch13", "ch14";
299 clocks = <&mstp2_clks R8A7791_CLK_SYS_DMAC1>; 312 clocks = <&mstp2_clks R8A7791_CLK_SYS_DMAC1>;
300 clock-names = "fck"; 313 clock-names = "fck";
314 power-domains = <&cpg_clocks>;
301 #dma-cells = <1>; 315 #dma-cells = <1>;
302 dma-channels = <15>; 316 dma-channels = <15>;
303 }; 317 };
@@ -326,6 +340,7 @@
326 "ch12"; 340 "ch12";
327 clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC0>; 341 clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC0>;
328 clock-names = "fck"; 342 clock-names = "fck";
343 power-domains = <&cpg_clocks>;
329 #dma-cells = <1>; 344 #dma-cells = <1>;
330 dma-channels = <13>; 345 dma-channels = <13>;
331 }; 346 };
@@ -354,6 +369,7 @@
354 "ch12"; 369 "ch12";
355 clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC1>; 370 clocks = <&mstp5_clks R8A7791_CLK_AUDIO_DMAC1>;
356 clock-names = "fck"; 371 clock-names = "fck";
372 power-domains = <&cpg_clocks>;
357 #dma-cells = <1>; 373 #dma-cells = <1>;
358 dma-channels = <13>; 374 dma-channels = <13>;
359 }; 375 };
@@ -365,6 +381,7 @@
365 0 109 IRQ_TYPE_LEVEL_HIGH>; 381 0 109 IRQ_TYPE_LEVEL_HIGH>;
366 interrupt-names = "ch0", "ch1"; 382 interrupt-names = "ch0", "ch1";
367 clocks = <&mstp3_clks R8A7791_CLK_USBDMAC0>; 383 clocks = <&mstp3_clks R8A7791_CLK_USBDMAC0>;
384 power-domains = <&cpg_clocks>;
368 #dma-cells = <1>; 385 #dma-cells = <1>;
369 dma-channels = <2>; 386 dma-channels = <2>;
370 }; 387 };
@@ -376,6 +393,7 @@
376 0 110 IRQ_TYPE_LEVEL_HIGH>; 393 0 110 IRQ_TYPE_LEVEL_HIGH>;
377 interrupt-names = "ch0", "ch1"; 394 interrupt-names = "ch0", "ch1";
378 clocks = <&mstp3_clks R8A7791_CLK_USBDMAC1>; 395 clocks = <&mstp3_clks R8A7791_CLK_USBDMAC1>;
396 power-domains = <&cpg_clocks>;
379 #dma-cells = <1>; 397 #dma-cells = <1>;
380 dma-channels = <2>; 398 dma-channels = <2>;
381 }; 399 };
@@ -388,6 +406,7 @@
388 reg = <0 0xe6508000 0 0x40>; 406 reg = <0 0xe6508000 0 0x40>;
389 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>; 407 interrupts = <0 287 IRQ_TYPE_LEVEL_HIGH>;
390 clocks = <&mstp9_clks R8A7791_CLK_I2C0>; 408 clocks = <&mstp9_clks R8A7791_CLK_I2C0>;
409 power-domains = <&cpg_clocks>;
391 status = "disabled"; 410 status = "disabled";
392 }; 411 };
393 412
@@ -398,6 +417,7 @@
398 reg = <0 0xe6518000 0 0x40>; 417 reg = <0 0xe6518000 0 0x40>;
399 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>; 418 interrupts = <0 288 IRQ_TYPE_LEVEL_HIGH>;
400 clocks = <&mstp9_clks R8A7791_CLK_I2C1>; 419 clocks = <&mstp9_clks R8A7791_CLK_I2C1>;
420 power-domains = <&cpg_clocks>;
401 status = "disabled"; 421 status = "disabled";
402 }; 422 };
403 423
@@ -408,6 +428,7 @@
408 reg = <0 0xe6530000 0 0x40>; 428 reg = <0 0xe6530000 0 0x40>;
409 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>; 429 interrupts = <0 286 IRQ_TYPE_LEVEL_HIGH>;
410 clocks = <&mstp9_clks R8A7791_CLK_I2C2>; 430 clocks = <&mstp9_clks R8A7791_CLK_I2C2>;
431 power-domains = <&cpg_clocks>;
411 status = "disabled"; 432 status = "disabled";
412 }; 433 };
413 434
@@ -418,6 +439,7 @@
418 reg = <0 0xe6540000 0 0x40>; 439 reg = <0 0xe6540000 0 0x40>;
419 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>; 440 interrupts = <0 290 IRQ_TYPE_LEVEL_HIGH>;
420 clocks = <&mstp9_clks R8A7791_CLK_I2C3>; 441 clocks = <&mstp9_clks R8A7791_CLK_I2C3>;
442 power-domains = <&cpg_clocks>;
421 status = "disabled"; 443 status = "disabled";
422 }; 444 };
423 445
@@ -428,6 +450,7 @@
428 reg = <0 0xe6520000 0 0x40>; 450 reg = <0 0xe6520000 0 0x40>;
429 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>; 451 interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
430 clocks = <&mstp9_clks R8A7791_CLK_I2C4>; 452 clocks = <&mstp9_clks R8A7791_CLK_I2C4>;
453 power-domains = <&cpg_clocks>;
431 status = "disabled"; 454 status = "disabled";
432 }; 455 };
433 456
@@ -439,6 +462,7 @@
439 reg = <0 0xe6528000 0 0x40>; 462 reg = <0 0xe6528000 0 0x40>;
440 interrupts = <0 20 IRQ_TYPE_LEVEL_HIGH>; 463 interrupts = <0 20 IRQ_TYPE_LEVEL_HIGH>;
441 clocks = <&mstp9_clks R8A7791_CLK_I2C5>; 464 clocks = <&mstp9_clks R8A7791_CLK_I2C5>;
465 power-domains = <&cpg_clocks>;
442 status = "disabled"; 466 status = "disabled";
443 }; 467 };
444 468
@@ -452,6 +476,7 @@
452 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>; 476 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>;
453 dmas = <&dmac0 0x77>, <&dmac0 0x78>; 477 dmas = <&dmac0 0x77>, <&dmac0 0x78>;
454 dma-names = "tx", "rx"; 478 dma-names = "tx", "rx";
479 power-domains = <&cpg_clocks>;
455 status = "disabled"; 480 status = "disabled";
456 }; 481 };
457 482
@@ -464,6 +489,7 @@
464 clocks = <&mstp3_clks R8A7791_CLK_IIC0>; 489 clocks = <&mstp3_clks R8A7791_CLK_IIC0>;
465 dmas = <&dmac0 0x61>, <&dmac0 0x62>; 490 dmas = <&dmac0 0x61>, <&dmac0 0x62>;
466 dma-names = "tx", "rx"; 491 dma-names = "tx", "rx";
492 power-domains = <&cpg_clocks>;
467 status = "disabled"; 493 status = "disabled";
468 }; 494 };
469 495
@@ -476,6 +502,7 @@
476 clocks = <&mstp3_clks R8A7791_CLK_IIC1>; 502 clocks = <&mstp3_clks R8A7791_CLK_IIC1>;
477 dmas = <&dmac0 0x65>, <&dmac0 0x66>; 503 dmas = <&dmac0 0x65>, <&dmac0 0x66>;
478 dma-names = "tx", "rx"; 504 dma-names = "tx", "rx";
505 power-domains = <&cpg_clocks>;
479 status = "disabled"; 506 status = "disabled";
480 }; 507 };
481 508
@@ -492,6 +519,7 @@
492 clocks = <&mstp3_clks R8A7791_CLK_MMCIF0>; 519 clocks = <&mstp3_clks R8A7791_CLK_MMCIF0>;
493 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>; 520 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
494 dma-names = "tx", "rx"; 521 dma-names = "tx", "rx";
522 power-domains = <&cpg_clocks>;
495 reg-io-width = <4>; 523 reg-io-width = <4>;
496 status = "disabled"; 524 status = "disabled";
497 max-frequency = <97500000>; 525 max-frequency = <97500000>;
@@ -504,6 +532,7 @@
504 clocks = <&mstp3_clks R8A7791_CLK_SDHI0>; 532 clocks = <&mstp3_clks R8A7791_CLK_SDHI0>;
505 dmas = <&dmac1 0xcd>, <&dmac1 0xce>; 533 dmas = <&dmac1 0xcd>, <&dmac1 0xce>;
506 dma-names = "tx", "rx"; 534 dma-names = "tx", "rx";
535 power-domains = <&cpg_clocks>;
507 status = "disabled"; 536 status = "disabled";
508 }; 537 };
509 538
@@ -514,6 +543,7 @@
514 clocks = <&mstp3_clks R8A7791_CLK_SDHI1>; 543 clocks = <&mstp3_clks R8A7791_CLK_SDHI1>;
515 dmas = <&dmac1 0xc1>, <&dmac1 0xc2>; 544 dmas = <&dmac1 0xc1>, <&dmac1 0xc2>;
516 dma-names = "tx", "rx"; 545 dma-names = "tx", "rx";
546 power-domains = <&cpg_clocks>;
517 status = "disabled"; 547 status = "disabled";
518 }; 548 };
519 549
@@ -524,6 +554,7 @@
524 clocks = <&mstp3_clks R8A7791_CLK_SDHI2>; 554 clocks = <&mstp3_clks R8A7791_CLK_SDHI2>;
525 dmas = <&dmac1 0xd3>, <&dmac1 0xd4>; 555 dmas = <&dmac1 0xd3>, <&dmac1 0xd4>;
526 dma-names = "tx", "rx"; 556 dma-names = "tx", "rx";
557 power-domains = <&cpg_clocks>;
527 status = "disabled"; 558 status = "disabled";
528 }; 559 };
529 560
@@ -535,6 +566,7 @@
535 clock-names = "sci_ick"; 566 clock-names = "sci_ick";
536 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 567 dmas = <&dmac0 0x21>, <&dmac0 0x22>;
537 dma-names = "tx", "rx"; 568 dma-names = "tx", "rx";
569 power-domains = <&cpg_clocks>;
538 status = "disabled"; 570 status = "disabled";
539 }; 571 };
540 572
@@ -546,6 +578,7 @@
546 clock-names = "sci_ick"; 578 clock-names = "sci_ick";
547 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 579 dmas = <&dmac0 0x25>, <&dmac0 0x26>;
548 dma-names = "tx", "rx"; 580 dma-names = "tx", "rx";
581 power-domains = <&cpg_clocks>;
549 status = "disabled"; 582 status = "disabled";
550 }; 583 };
551 584
@@ -557,6 +590,7 @@
557 clock-names = "sci_ick"; 590 clock-names = "sci_ick";
558 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 591 dmas = <&dmac0 0x27>, <&dmac0 0x28>;
559 dma-names = "tx", "rx"; 592 dma-names = "tx", "rx";
593 power-domains = <&cpg_clocks>;
560 status = "disabled"; 594 status = "disabled";
561 }; 595 };
562 596
@@ -568,6 +602,7 @@
568 clock-names = "sci_ick"; 602 clock-names = "sci_ick";
569 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>; 603 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>;
570 dma-names = "tx", "rx"; 604 dma-names = "tx", "rx";
605 power-domains = <&cpg_clocks>;
571 status = "disabled"; 606 status = "disabled";
572 }; 607 };
573 608
@@ -579,6 +614,7 @@
579 clock-names = "sci_ick"; 614 clock-names = "sci_ick";
580 dmas = <&dmac0 0x1f>, <&dmac0 0x20>; 615 dmas = <&dmac0 0x1f>, <&dmac0 0x20>;
581 dma-names = "tx", "rx"; 616 dma-names = "tx", "rx";
617 power-domains = <&cpg_clocks>;
582 status = "disabled"; 618 status = "disabled";
583 }; 619 };
584 620
@@ -590,6 +626,7 @@
590 clock-names = "sci_ick"; 626 clock-names = "sci_ick";
591 dmas = <&dmac0 0x23>, <&dmac0 0x24>; 627 dmas = <&dmac0 0x23>, <&dmac0 0x24>;
592 dma-names = "tx", "rx"; 628 dma-names = "tx", "rx";
629 power-domains = <&cpg_clocks>;
593 status = "disabled"; 630 status = "disabled";
594 }; 631 };
595 632
@@ -601,6 +638,7 @@
601 clock-names = "sci_ick"; 638 clock-names = "sci_ick";
602 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 639 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>;
603 dma-names = "tx", "rx"; 640 dma-names = "tx", "rx";
641 power-domains = <&cpg_clocks>;
604 status = "disabled"; 642 status = "disabled";
605 }; 643 };
606 644
@@ -612,6 +650,7 @@
612 clock-names = "sci_ick"; 650 clock-names = "sci_ick";
613 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 651 dmas = <&dmac0 0x19>, <&dmac0 0x1a>;
614 dma-names = "tx", "rx"; 652 dma-names = "tx", "rx";
653 power-domains = <&cpg_clocks>;
615 status = "disabled"; 654 status = "disabled";
616 }; 655 };
617 656
@@ -623,6 +662,7 @@
623 clock-names = "sci_ick"; 662 clock-names = "sci_ick";
624 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 663 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>;
625 dma-names = "tx", "rx"; 664 dma-names = "tx", "rx";
665 power-domains = <&cpg_clocks>;
626 status = "disabled"; 666 status = "disabled";
627 }; 667 };
628 668
@@ -634,6 +674,7 @@
634 clock-names = "sci_ick"; 674 clock-names = "sci_ick";
635 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 675 dmas = <&dmac0 0x29>, <&dmac0 0x2a>;
636 dma-names = "tx", "rx"; 676 dma-names = "tx", "rx";
677 power-domains = <&cpg_clocks>;
637 status = "disabled"; 678 status = "disabled";
638 }; 679 };
639 680
@@ -645,6 +686,7 @@
645 clock-names = "sci_ick"; 686 clock-names = "sci_ick";
646 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 687 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>;
647 dma-names = "tx", "rx"; 688 dma-names = "tx", "rx";
689 power-domains = <&cpg_clocks>;
648 status = "disabled"; 690 status = "disabled";
649 }; 691 };
650 692
@@ -656,6 +698,7 @@
656 clock-names = "sci_ick"; 698 clock-names = "sci_ick";
657 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>; 699 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>;
658 dma-names = "tx", "rx"; 700 dma-names = "tx", "rx";
701 power-domains = <&cpg_clocks>;
659 status = "disabled"; 702 status = "disabled";
660 }; 703 };
661 704
@@ -667,6 +710,7 @@
667 clock-names = "sci_ick"; 710 clock-names = "sci_ick";
668 dmas = <&dmac0 0x2f>, <&dmac0 0x30>; 711 dmas = <&dmac0 0x2f>, <&dmac0 0x30>;
669 dma-names = "tx", "rx"; 712 dma-names = "tx", "rx";
713 power-domains = <&cpg_clocks>;
670 status = "disabled"; 714 status = "disabled";
671 }; 715 };
672 716
@@ -678,6 +722,7 @@
678 clock-names = "sci_ick"; 722 clock-names = "sci_ick";
679 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>; 723 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>;
680 dma-names = "tx", "rx"; 724 dma-names = "tx", "rx";
725 power-domains = <&cpg_clocks>;
681 status = "disabled"; 726 status = "disabled";
682 }; 727 };
683 728
@@ -689,6 +734,7 @@
689 clock-names = "sci_ick"; 734 clock-names = "sci_ick";
690 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>; 735 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>;
691 dma-names = "tx", "rx"; 736 dma-names = "tx", "rx";
737 power-domains = <&cpg_clocks>;
692 status = "disabled"; 738 status = "disabled";
693 }; 739 };
694 740
@@ -700,6 +746,7 @@
700 clock-names = "sci_ick"; 746 clock-names = "sci_ick";
701 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 747 dmas = <&dmac0 0x39>, <&dmac0 0x3a>;
702 dma-names = "tx", "rx"; 748 dma-names = "tx", "rx";
749 power-domains = <&cpg_clocks>;
703 status = "disabled"; 750 status = "disabled";
704 }; 751 };
705 752
@@ -711,6 +758,7 @@
711 clock-names = "sci_ick"; 758 clock-names = "sci_ick";
712 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 759 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>;
713 dma-names = "tx", "rx"; 760 dma-names = "tx", "rx";
761 power-domains = <&cpg_clocks>;
714 status = "disabled"; 762 status = "disabled";
715 }; 763 };
716 764
@@ -722,6 +770,7 @@
722 clock-names = "sci_ick"; 770 clock-names = "sci_ick";
723 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>; 771 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>;
724 dma-names = "tx", "rx"; 772 dma-names = "tx", "rx";
773 power-domains = <&cpg_clocks>;
725 status = "disabled"; 774 status = "disabled";
726 }; 775 };
727 776
@@ -730,6 +779,7 @@
730 reg = <0 0xee700000 0 0x400>; 779 reg = <0 0xee700000 0 0x400>;
731 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>; 780 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>;
732 clocks = <&mstp8_clks R8A7791_CLK_ETHER>; 781 clocks = <&mstp8_clks R8A7791_CLK_ETHER>;
782 power-domains = <&cpg_clocks>;
733 phy-mode = "rmii"; 783 phy-mode = "rmii";
734 #address-cells = <1>; 784 #address-cells = <1>;
735 #size-cells = <0>; 785 #size-cells = <0>;
@@ -741,6 +791,7 @@
741 reg = <0 0xee300000 0 0x2000>; 791 reg = <0 0xee300000 0 0x2000>;
742 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; 792 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
743 clocks = <&mstp8_clks R8A7791_CLK_SATA0>; 793 clocks = <&mstp8_clks R8A7791_CLK_SATA0>;
794 power-domains = <&cpg_clocks>;
744 status = "disabled"; 795 status = "disabled";
745 }; 796 };
746 797
@@ -749,6 +800,7 @@
749 reg = <0 0xee500000 0 0x2000>; 800 reg = <0 0xee500000 0 0x2000>;
750 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>; 801 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
751 clocks = <&mstp8_clks R8A7791_CLK_SATA1>; 802 clocks = <&mstp8_clks R8A7791_CLK_SATA1>;
803 power-domains = <&cpg_clocks>;
752 status = "disabled"; 804 status = "disabled";
753 }; 805 };
754 806
@@ -757,12 +809,13 @@
757 reg = <0 0xe6590000 0 0x100>; 809 reg = <0 0xe6590000 0 0x100>;
758 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>; 810 interrupts = <0 107 IRQ_TYPE_LEVEL_HIGH>;
759 clocks = <&mstp7_clks R8A7791_CLK_HSUSB>; 811 clocks = <&mstp7_clks R8A7791_CLK_HSUSB>;
760 renesas,buswait = <4>;
761 phys = <&usb0 1>;
762 phy-names = "usb";
763 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 812 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
764 <&usb_dmac1 0>, <&usb_dmac1 1>; 813 <&usb_dmac1 0>, <&usb_dmac1 1>;
765 dma-names = "ch0", "ch1", "ch2", "ch3"; 814 dma-names = "ch0", "ch1", "ch2", "ch3";
815 power-domains = <&cpg_clocks>;
816 renesas,buswait = <4>;
817 phys = <&usb0 1>;
818 phy-names = "usb";
766 status = "disabled"; 819 status = "disabled";
767 }; 820 };
768 821
@@ -773,6 +826,7 @@
773 #size-cells = <0>; 826 #size-cells = <0>;
774 clocks = <&mstp7_clks R8A7791_CLK_HSUSB>; 827 clocks = <&mstp7_clks R8A7791_CLK_HSUSB>;
775 clock-names = "usbhs"; 828 clock-names = "usbhs";
829 power-domains = <&cpg_clocks>;
776 status = "disabled"; 830 status = "disabled";
777 831
778 usb0: usb-channel@0 { 832 usb0: usb-channel@0 {
@@ -787,25 +841,28 @@
787 841
788 vin0: video@e6ef0000 { 842 vin0: video@e6ef0000 {
789 compatible = "renesas,vin-r8a7791"; 843 compatible = "renesas,vin-r8a7791";
790 clocks = <&mstp8_clks R8A7791_CLK_VIN0>;
791 reg = <0 0xe6ef0000 0 0x1000>; 844 reg = <0 0xe6ef0000 0 0x1000>;
792 interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>; 845 interrupts = <0 188 IRQ_TYPE_LEVEL_HIGH>;
846 clocks = <&mstp8_clks R8A7791_CLK_VIN0>;
847 power-domains = <&cpg_clocks>;
793 status = "disabled"; 848 status = "disabled";
794 }; 849 };
795 850
796 vin1: video@e6ef1000 { 851 vin1: video@e6ef1000 {
797 compatible = "renesas,vin-r8a7791"; 852 compatible = "renesas,vin-r8a7791";
798 clocks = <&mstp8_clks R8A7791_CLK_VIN1>;
799 reg = <0 0xe6ef1000 0 0x1000>; 853 reg = <0 0xe6ef1000 0 0x1000>;
800 interrupts = <0 189 IRQ_TYPE_LEVEL_HIGH>; 854 interrupts = <0 189 IRQ_TYPE_LEVEL_HIGH>;
855 clocks = <&mstp8_clks R8A7791_CLK_VIN1>;
856 power-domains = <&cpg_clocks>;
801 status = "disabled"; 857 status = "disabled";
802 }; 858 };
803 859
804 vin2: video@e6ef2000 { 860 vin2: video@e6ef2000 {
805 compatible = "renesas,vin-r8a7791"; 861 compatible = "renesas,vin-r8a7791";
806 clocks = <&mstp8_clks R8A7791_CLK_VIN2>;
807 reg = <0 0xe6ef2000 0 0x1000>; 862 reg = <0 0xe6ef2000 0 0x1000>;
808 interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>; 863 interrupts = <0 190 IRQ_TYPE_LEVEL_HIGH>;
864 clocks = <&mstp8_clks R8A7791_CLK_VIN2>;
865 power-domains = <&cpg_clocks>;
809 status = "disabled"; 866 status = "disabled";
810 }; 867 };
811 868
@@ -814,6 +871,7 @@
814 reg = <0 0xfe928000 0 0x8000>; 871 reg = <0 0xfe928000 0 0x8000>;
815 interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>; 872 interrupts = <0 267 IRQ_TYPE_LEVEL_HIGH>;
816 clocks = <&mstp1_clks R8A7791_CLK_VSP1_S>; 873 clocks = <&mstp1_clks R8A7791_CLK_VSP1_S>;
874 power-domains = <&cpg_clocks>;
817 875
818 renesas,has-lut; 876 renesas,has-lut;
819 renesas,has-sru; 877 renesas,has-sru;
@@ -827,6 +885,7 @@
827 reg = <0 0xfe930000 0 0x8000>; 885 reg = <0 0xfe930000 0 0x8000>;
828 interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>; 886 interrupts = <0 246 IRQ_TYPE_LEVEL_HIGH>;
829 clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU0>; 887 clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU0>;
888 power-domains = <&cpg_clocks>;
830 889
831 renesas,has-lif; 890 renesas,has-lif;
832 renesas,has-lut; 891 renesas,has-lut;
@@ -840,6 +899,7 @@
840 reg = <0 0xfe938000 0 0x8000>; 899 reg = <0 0xfe938000 0 0x8000>;
841 interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>; 900 interrupts = <0 247 IRQ_TYPE_LEVEL_HIGH>;
842 clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU1>; 901 clocks = <&mstp1_clks R8A7791_CLK_VSP1_DU1>;
902 power-domains = <&cpg_clocks>;
843 903
844 renesas,has-lif; 904 renesas,has-lif;
845 renesas,has-lut; 905 renesas,has-lut;
@@ -885,6 +945,7 @@
885 clocks = <&mstp9_clks R8A7791_CLK_RCAN0>, 945 clocks = <&mstp9_clks R8A7791_CLK_RCAN0>,
886 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>; 946 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>;
887 clock-names = "clkp1", "clkp2", "can_clk"; 947 clock-names = "clkp1", "clkp2", "can_clk";
948 power-domains = <&cpg_clocks>;
888 status = "disabled"; 949 status = "disabled";
889 }; 950 };
890 951
@@ -895,9 +956,18 @@
895 clocks = <&mstp9_clks R8A7791_CLK_RCAN1>, 956 clocks = <&mstp9_clks R8A7791_CLK_RCAN1>,
896 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>; 957 <&cpg_clocks R8A7791_CLK_RCAN>, <&can_clk>;
897 clock-names = "clkp1", "clkp2", "can_clk"; 958 clock-names = "clkp1", "clkp2", "can_clk";
959 power-domains = <&cpg_clocks>;
898 status = "disabled"; 960 status = "disabled";
899 }; 961 };
900 962
963 jpu: jpeg-codec@fe980000 {
964 compatible = "renesas,jpu-r8a7791";
965 reg = <0 0xfe980000 0 0x10300>;
966 interrupts = <0 272 IRQ_TYPE_LEVEL_HIGH>;
967 clocks = <&mstp1_clks R8A7791_CLK_JPU>;
968 power-domains = <&cpg_clocks>;
969 };
970
901 clocks { 971 clocks {
902 #address-cells = <2>; 972 #address-cells = <2>;
903 #size-cells = <2>; 973 #size-cells = <2>;
@@ -972,6 +1042,7 @@
972 clock-output-names = "main", "pll0", "pll1", "pll3", 1042 clock-output-names = "main", "pll0", "pll1", "pll3",
973 "lb", "qspi", "sdh", "sd0", "z", 1043 "lb", "qspi", "sdh", "sd0", "z",
974 "rcan", "adsp"; 1044 "rcan", "adsp";
1045 #power-domain-cells = <0>;
975 }; 1046 };
976 1047
977 /* Variable factor clocks */ 1048 /* Variable factor clocks */
@@ -1311,6 +1382,7 @@
1311 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, 1382 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1312 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, 1383 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1313 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>, 1384 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1385 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>,
1314 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>; 1386 <&mstp10_clks R8A7791_CLK_SCU_ALL>, <&mstp10_clks R8A7791_CLK_SCU_ALL>;
1315 1387
1316 #clock-cells = <1>; 1388 #clock-cells = <1>;
@@ -1320,6 +1392,7 @@
1320 R8A7791_CLK_SSI4 R8A7791_CLK_SSI3 R8A7791_CLK_SSI2 R8A7791_CLK_SSI1 R8A7791_CLK_SSI0 1392 R8A7791_CLK_SSI4 R8A7791_CLK_SSI3 R8A7791_CLK_SSI2 R8A7791_CLK_SSI1 R8A7791_CLK_SSI0
1321 R8A7791_CLK_SCU_ALL 1393 R8A7791_CLK_SCU_ALL
1322 R8A7791_CLK_SCU_DVC1 R8A7791_CLK_SCU_DVC0 1394 R8A7791_CLK_SCU_DVC1 R8A7791_CLK_SCU_DVC0
1395 R8A7791_CLK_SCU_CTU1_MIX1 R8A7791_CLK_SCU_CTU0_MIX0
1323 R8A7791_CLK_SCU_SRC9 R8A7791_CLK_SCU_SRC8 R8A7791_CLK_SCU_SRC7 R8A7791_CLK_SCU_SRC6 R8A7791_CLK_SCU_SRC5 1396 R8A7791_CLK_SCU_SRC9 R8A7791_CLK_SCU_SRC8 R8A7791_CLK_SCU_SRC7 R8A7791_CLK_SCU_SRC6 R8A7791_CLK_SCU_SRC5
1324 R8A7791_CLK_SCU_SRC4 R8A7791_CLK_SCU_SRC3 R8A7791_CLK_SCU_SRC2 R8A7791_CLK_SCU_SRC1 R8A7791_CLK_SCU_SRC0 1397 R8A7791_CLK_SCU_SRC4 R8A7791_CLK_SCU_SRC3 R8A7791_CLK_SCU_SRC2 R8A7791_CLK_SCU_SRC1 R8A7791_CLK_SCU_SRC0
1325 >; 1398 >;
@@ -1329,6 +1402,7 @@
1329 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0", 1402 "ssi4", "ssi3", "ssi2", "ssi1", "ssi0",
1330 "scu-all", 1403 "scu-all",
1331 "scu-dvc1", "scu-dvc0", 1404 "scu-dvc1", "scu-dvc0",
1405 "scu-ctu1-mix1", "scu-ctu0-mix0",
1332 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5", 1406 "scu-src9", "scu-src8", "scu-src7", "scu-src6", "scu-src5",
1333 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0"; 1407 "scu-src4", "scu-src3", "scu-src2", "scu-src1", "scu-src0";
1334 }; 1408 };
@@ -1351,6 +1425,7 @@
1351 clocks = <&mstp9_clks R8A7791_CLK_QSPI_MOD>; 1425 clocks = <&mstp9_clks R8A7791_CLK_QSPI_MOD>;
1352 dmas = <&dmac0 0x17>, <&dmac0 0x18>; 1426 dmas = <&dmac0 0x17>, <&dmac0 0x18>;
1353 dma-names = "tx", "rx"; 1427 dma-names = "tx", "rx";
1428 power-domains = <&cpg_clocks>;
1354 num-cs = <1>; 1429 num-cs = <1>;
1355 #address-cells = <1>; 1430 #address-cells = <1>;
1356 #size-cells = <0>; 1431 #size-cells = <0>;
@@ -1364,6 +1439,7 @@
1364 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 1439 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;
1365 dmas = <&dmac0 0x51>, <&dmac0 0x52>; 1440 dmas = <&dmac0 0x51>, <&dmac0 0x52>;
1366 dma-names = "tx", "rx"; 1441 dma-names = "tx", "rx";
1442 power-domains = <&cpg_clocks>;
1367 #address-cells = <1>; 1443 #address-cells = <1>;
1368 #size-cells = <0>; 1444 #size-cells = <0>;
1369 status = "disabled"; 1445 status = "disabled";
@@ -1376,6 +1452,7 @@
1376 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>; 1452 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>;
1377 dmas = <&dmac0 0x55>, <&dmac0 0x56>; 1453 dmas = <&dmac0 0x55>, <&dmac0 0x56>;
1378 dma-names = "tx", "rx"; 1454 dma-names = "tx", "rx";
1455 power-domains = <&cpg_clocks>;
1379 #address-cells = <1>; 1456 #address-cells = <1>;
1380 #size-cells = <0>; 1457 #size-cells = <0>;
1381 status = "disabled"; 1458 status = "disabled";
@@ -1388,6 +1465,7 @@
1388 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>; 1465 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>;
1389 dmas = <&dmac0 0x41>, <&dmac0 0x42>; 1466 dmas = <&dmac0 0x41>, <&dmac0 0x42>;
1390 dma-names = "tx", "rx"; 1467 dma-names = "tx", "rx";
1468 power-domains = <&cpg_clocks>;
1391 #address-cells = <1>; 1469 #address-cells = <1>;
1392 #size-cells = <0>; 1470 #size-cells = <0>;
1393 status = "disabled"; 1471 status = "disabled";
@@ -1398,6 +1476,7 @@
1398 reg = <0 0xee000000 0 0xc00>; 1476 reg = <0 0xee000000 0 0xc00>;
1399 interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>; 1477 interrupts = <0 101 IRQ_TYPE_LEVEL_HIGH>;
1400 clocks = <&mstp3_clks R8A7791_CLK_SSUSB>; 1478 clocks = <&mstp3_clks R8A7791_CLK_SSUSB>;
1479 power-domains = <&cpg_clocks>;
1401 phys = <&usb2 1>; 1480 phys = <&usb2 1>;
1402 phy-names = "usb"; 1481 phy-names = "usb";
1403 status = "disabled"; 1482 status = "disabled";
@@ -1406,10 +1485,11 @@
1406 pci0: pci@ee090000 { 1485 pci0: pci@ee090000 {
1407 compatible = "renesas,pci-r8a7791"; 1486 compatible = "renesas,pci-r8a7791";
1408 device_type = "pci"; 1487 device_type = "pci";
1409 clocks = <&mstp7_clks R8A7791_CLK_EHCI>;
1410 reg = <0 0xee090000 0 0xc00>, 1488 reg = <0 0xee090000 0 0xc00>,
1411 <0 0xee080000 0 0x1100>; 1489 <0 0xee080000 0 0x1100>;
1412 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>; 1490 interrupts = <0 108 IRQ_TYPE_LEVEL_HIGH>;
1491 clocks = <&mstp7_clks R8A7791_CLK_EHCI>;
1492 power-domains = <&cpg_clocks>;
1413 status = "disabled"; 1493 status = "disabled";
1414 1494
1415 bus-range = <0 0>; 1495 bus-range = <0 0>;
@@ -1440,10 +1520,11 @@
1440 pci1: pci@ee0d0000 { 1520 pci1: pci@ee0d0000 {
1441 compatible = "renesas,pci-r8a7791"; 1521 compatible = "renesas,pci-r8a7791";
1442 device_type = "pci"; 1522 device_type = "pci";
1443 clocks = <&mstp7_clks R8A7791_CLK_EHCI>;
1444 reg = <0 0xee0d0000 0 0xc00>, 1523 reg = <0 0xee0d0000 0 0xc00>,
1445 <0 0xee0c0000 0 0x1100>; 1524 <0 0xee0c0000 0 0x1100>;
1446 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>; 1525 interrupts = <0 113 IRQ_TYPE_LEVEL_HIGH>;
1526 clocks = <&mstp7_clks R8A7791_CLK_EHCI>;
1527 power-domains = <&cpg_clocks>;
1447 status = "disabled"; 1528 status = "disabled";
1448 1529
1449 bus-range = <1 1>; 1530 bus-range = <1 1>;
@@ -1493,6 +1574,7 @@
1493 interrupt-map = <0 0 0 0 &gic 0 116 IRQ_TYPE_LEVEL_HIGH>; 1574 interrupt-map = <0 0 0 0 &gic 0 116 IRQ_TYPE_LEVEL_HIGH>;
1494 clocks = <&mstp3_clks R8A7791_CLK_PCIEC>, <&pcie_bus_clk>; 1575 clocks = <&mstp3_clks R8A7791_CLK_PCIEC>, <&pcie_bus_clk>;
1495 clock-names = "pcie", "pcie_bus"; 1576 clock-names = "pcie", "pcie_bus";
1577 power-domains = <&cpg_clocks>;
1496 status = "disabled"; 1578 status = "disabled";
1497 }; 1579 };
1498 1580
@@ -1582,6 +1664,8 @@
1582 <&mstp10_clks R8A7791_CLK_SCU_SRC5>, <&mstp10_clks R8A7791_CLK_SCU_SRC4>, 1664 <&mstp10_clks R8A7791_CLK_SCU_SRC5>, <&mstp10_clks R8A7791_CLK_SCU_SRC4>,
1583 <&mstp10_clks R8A7791_CLK_SCU_SRC3>, <&mstp10_clks R8A7791_CLK_SCU_SRC2>, 1665 <&mstp10_clks R8A7791_CLK_SCU_SRC3>, <&mstp10_clks R8A7791_CLK_SCU_SRC2>,
1584 <&mstp10_clks R8A7791_CLK_SCU_SRC1>, <&mstp10_clks R8A7791_CLK_SCU_SRC0>, 1666 <&mstp10_clks R8A7791_CLK_SCU_SRC1>, <&mstp10_clks R8A7791_CLK_SCU_SRC0>,
1667 <&mstp10_clks R8A7791_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7791_CLK_SCU_CTU1_MIX1>,
1668 <&mstp10_clks R8A7791_CLK_SCU_CTU0_MIX0>, <&mstp10_clks R8A7791_CLK_SCU_CTU1_MIX1>,
1585 <&mstp10_clks R8A7791_CLK_SCU_DVC0>, <&mstp10_clks R8A7791_CLK_SCU_DVC1>, 1669 <&mstp10_clks R8A7791_CLK_SCU_DVC0>, <&mstp10_clks R8A7791_CLK_SCU_DVC1>,
1586 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>; 1670 <&audio_clk_a>, <&audio_clk_b>, <&audio_clk_c>, <&m2_clk>;
1587 clock-names = "ssi-all", 1671 clock-names = "ssi-all",
@@ -1589,6 +1673,8 @@
1589 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0", 1673 "ssi.4", "ssi.3", "ssi.2", "ssi.1", "ssi.0",
1590 "src.9", "src.8", "src.7", "src.6", "src.5", 1674 "src.9", "src.8", "src.7", "src.6", "src.5",
1591 "src.4", "src.3", "src.2", "src.1", "src.0", 1675 "src.4", "src.3", "src.2", "src.1", "src.0",
1676 "ctu.0", "ctu.1",
1677 "mix.0", "mix.1",
1592 "dvc.0", "dvc.1", 1678 "dvc.0", "dvc.1",
1593 "clk_a", "clk_b", "clk_c", "clk_i"; 1679 "clk_a", "clk_b", "clk_c", "clk_i";
1594 1680
@@ -1605,6 +1691,22 @@
1605 }; 1691 };
1606 }; 1692 };
1607 1693
1694 rcar_sound,mix {
1695 mix0: mix@0 { };
1696 mix1: mix@1 { };
1697 };
1698
1699 rcar_sound,ctu {
1700 ctu00: ctu@0 { };
1701 ctu01: ctu@1 { };
1702 ctu02: ctu@2 { };
1703 ctu03: ctu@3 { };
1704 ctu10: ctu@4 { };
1705 ctu11: ctu@5 { };
1706 ctu12: ctu@6 { };
1707 ctu13: ctu@7 { };
1708 };
1709
1608 rcar_sound,src { 1710 rcar_sound,src {
1609 src0: src@0 { 1711 src0: src@0 {
1610 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>; 1712 interrupts = <0 352 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
new file mode 100644
index 000000000000..96443ec5f6ab
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -0,0 +1,63 @@
1/*
2 * Device Tree Source for the Gose board
3 *
4 * Copyright (C) 2014-2015 Renesas Electronics Corporation
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11/dts-v1/;
12#include "r8a7793.dtsi"
13#include <dt-bindings/gpio/gpio.h>
14#include <dt-bindings/input/input.h>
15
16/ {
17 model = "Gose";
18 compatible = "renesas,gose", "renesas,r8a7793";
19
20 aliases {
21 serial0 = &scif0;
22 serial1 = &scif1;
23 };
24
25 chosen {
26 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
27 stdout-path = &scif0;
28 };
29
30 memory@40000000 {
31 device_type = "memory";
32 reg = <0 0x40000000 0 0x40000000>;
33 };
34};
35
36&extal_clk {
37 clock-frequency = <20000000>;
38};
39
40&ether {
41 phy-handle = <&phy1>;
42 renesas,ether-link-active-low;
43 status = "okay";
44
45 phy1: ethernet-phy@1 {
46 reg = <1>;
47 interrupt-parent = <&irqc0>;
48 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
49 micrel,led-mode = <1>;
50 };
51};
52
53&cmt0 {
54 status = "okay";
55};
56
57&scif0 {
58 status = "okay";
59};
60
61&scif1 {
62 status = "okay";
63};
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
new file mode 100644
index 000000000000..c4654047e684
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -0,0 +1,374 @@
1/*
2 * Device Tree Source for the r8a7793 SoC
3 *
4 * Copyright (C) 2014-2015 Renesas Electronics Corporation
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/clock/r8a7793-clock.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/interrupt-controller/irq.h>
14
15/ {
16 compatible = "renesas,r8a7793";
17 interrupt-parent = <&gic>;
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24
25 cpu0: cpu@0 {
26 device_type = "cpu";
27 compatible = "arm,cortex-a15";
28 reg = <0>;
29 clock-frequency = <1500000000>;
30 voltage-tolerance = <1>; /* 1% */
31 clocks = <&cpg_clocks R8A7793_CLK_Z>;
32 clock-latency = <300000>; /* 300 us */
33
34 /* kHz - uV - OPPs unknown yet */
35 operating-points = <1500000 1000000>,
36 <1312500 1000000>,
37 <1125000 1000000>,
38 < 937500 1000000>,
39 < 750000 1000000>,
40 < 375000 1000000>;
41 };
42 };
43
44 gic: interrupt-controller@f1001000 {
45 compatible = "arm,gic-400";
46 #interrupt-cells = <3>;
47 #address-cells = <0>;
48 interrupt-controller;
49 reg = <0 0xf1001000 0 0x1000>,
50 <0 0xf1002000 0 0x1000>,
51 <0 0xf1004000 0 0x2000>,
52 <0 0xf1006000 0 0x2000>;
53 interrupts = <1 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
54 };
55
56 timer {
57 compatible = "arm,armv7-timer";
58 interrupts = <1 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
59 <1 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
60 <1 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
61 <1 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
62 };
63
64 cmt0: timer@ffca0000 {
65 compatible = "renesas,cmt-48-r8a7793", "renesas,cmt-48-gen2";
66 reg = <0 0xffca0000 0 0x1004>;
67 interrupts = <0 142 IRQ_TYPE_LEVEL_HIGH>,
68 <0 143 IRQ_TYPE_LEVEL_HIGH>;
69 clocks = <&mstp1_clks R8A7793_CLK_CMT0>;
70 clock-names = "fck";
71 power-domains = <&cpg_clocks>;
72
73 renesas,channels-mask = <0x60>;
74
75 status = "disabled";
76 };
77
78 cmt1: timer@e6130000 {
79 compatible = "renesas,cmt-48-r8a7793", "renesas,cmt-48-gen2";
80 reg = <0 0xe6130000 0 0x1004>;
81 interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>,
82 <0 121 IRQ_TYPE_LEVEL_HIGH>,
83 <0 122 IRQ_TYPE_LEVEL_HIGH>,
84 <0 123 IRQ_TYPE_LEVEL_HIGH>,
85 <0 124 IRQ_TYPE_LEVEL_HIGH>,
86 <0 125 IRQ_TYPE_LEVEL_HIGH>,
87 <0 126 IRQ_TYPE_LEVEL_HIGH>,
88 <0 127 IRQ_TYPE_LEVEL_HIGH>;
89 clocks = <&mstp3_clks R8A7793_CLK_CMT1>;
90 clock-names = "fck";
91 power-domains = <&cpg_clocks>;
92
93 renesas,channels-mask = <0xff>;
94
95 status = "disabled";
96 };
97
98 irqc0: interrupt-controller@e61c0000 {
99 compatible = "renesas,irqc-r8a7793", "renesas,irqc";
100 #interrupt-cells = <2>;
101 interrupt-controller;
102 reg = <0 0xe61c0000 0 0x200>;
103 interrupts = <0 0 IRQ_TYPE_LEVEL_HIGH>,
104 <0 1 IRQ_TYPE_LEVEL_HIGH>,
105 <0 2 IRQ_TYPE_LEVEL_HIGH>,
106 <0 3 IRQ_TYPE_LEVEL_HIGH>,
107 <0 12 IRQ_TYPE_LEVEL_HIGH>,
108 <0 13 IRQ_TYPE_LEVEL_HIGH>,
109 <0 14 IRQ_TYPE_LEVEL_HIGH>,
110 <0 15 IRQ_TYPE_LEVEL_HIGH>,
111 <0 16 IRQ_TYPE_LEVEL_HIGH>,
112 <0 17 IRQ_TYPE_LEVEL_HIGH>;
113 clocks = <&mstp4_clks R8A7793_CLK_IRQC>;
114 power-domains = <&cpg_clocks>;
115 };
116
117 scif0: serial@e6e60000 {
118 compatible = "renesas,scif-r8a7793", "renesas,scif";
119 reg = <0 0xe6e60000 0 64>;
120 interrupts = <0 152 IRQ_TYPE_LEVEL_HIGH>;
121 clocks = <&mstp7_clks R8A7793_CLK_SCIF0>;
122 clock-names = "sci_ick";
123 power-domains = <&cpg_clocks>;
124 status = "disabled";
125 };
126
127 scif1: serial@e6e68000 {
128 compatible = "renesas,scif-r8a7793", "renesas,scif";
129 reg = <0 0xe6e68000 0 64>;
130 interrupts = <0 153 IRQ_TYPE_LEVEL_HIGH>;
131 clocks = <&mstp7_clks R8A7793_CLK_SCIF1>;
132 clock-names = "sci_ick";
133 power-domains = <&cpg_clocks>;
134 status = "disabled";
135 };
136
137 ether: ethernet@ee700000 {
138 compatible = "renesas,ether-r8a7793";
139 reg = <0 0xee700000 0 0x400>;
140 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>;
141 clocks = <&mstp8_clks R8A7793_CLK_ETHER>;
142 power-domains = <&cpg_clocks>;
143 phy-mode = "rmii";
144 #address-cells = <1>;
145 #size-cells = <0>;
146 status = "disabled";
147 };
148
149 clocks {
150 #address-cells = <2>;
151 #size-cells = <2>;
152 ranges;
153
154 /* External root clock */
155 extal_clk: extal_clk {
156 compatible = "fixed-clock";
157 #clock-cells = <0>;
158 /* This value must be overridden by the board. */
159 clock-frequency = <0>;
160 clock-output-names = "extal";
161 };
162
163 /* Special CPG clocks */
164 cpg_clocks: cpg_clocks@e6150000 {
165 compatible = "renesas,r8a7793-cpg-clocks",
166 "renesas,rcar-gen2-cpg-clocks";
167 reg = <0 0xe6150000 0 0x1000>;
168 clocks = <&extal_clk>;
169 #clock-cells = <1>;
170 clock-output-names = "main", "pll0", "pll1", "pll3",
171 "lb", "qspi", "sdh", "sd0", "z",
172 "rcan", "adsp";
173 #power-domain-cells = <0>;
174 };
175
176 /* Variable factor clocks */
177 sd2_clk: sd2_clk@e6150078 {
178 compatible = "renesas,r8a7793-div6-clock",
179 "renesas,cpg-div6-clock";
180 reg = <0 0xe6150078 0 4>;
181 clocks = <&pll1_div2_clk>;
182 #clock-cells = <0>;
183 clock-output-names = "sd2";
184 };
185 sd3_clk: sd3_clk@e615026c {
186 compatible = "renesas,r8a7793-div6-clock",
187 "renesas,cpg-div6-clock";
188 reg = <0 0xe615026c 0 4>;
189 clocks = <&pll1_div2_clk>;
190 #clock-cells = <0>;
191 clock-output-names = "sd3";
192 };
193 mmc0_clk: mmc0_clk@e6150240 {
194 compatible = "renesas,r8a7793-div6-clock",
195 "renesas,cpg-div6-clock";
196 reg = <0 0xe6150240 0 4>;
197 clocks = <&pll1_div2_clk>;
198 #clock-cells = <0>;
199 clock-output-names = "mmc0";
200 };
201
202 /* Fixed factor clocks */
203 pll1_div2_clk: pll1_div2_clk {
204 compatible = "fixed-factor-clock";
205 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
206 #clock-cells = <0>;
207 clock-div = <2>;
208 clock-mult = <1>;
209 clock-output-names = "pll1_div2";
210 };
211 zg_clk: zg_clk {
212 compatible = "fixed-factor-clock";
213 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
214 #clock-cells = <0>;
215 clock-div = <5>;
216 clock-mult = <1>;
217 clock-output-names = "zg";
218 };
219 zx_clk: zx_clk {
220 compatible = "fixed-factor-clock";
221 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
222 #clock-cells = <0>;
223 clock-div = <3>;
224 clock-mult = <1>;
225 clock-output-names = "zx";
226 };
227 zs_clk: zs_clk {
228 compatible = "fixed-factor-clock";
229 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
230 #clock-cells = <0>;
231 clock-div = <6>;
232 clock-mult = <1>;
233 clock-output-names = "zs";
234 };
235 hp_clk: hp_clk {
236 compatible = "fixed-factor-clock";
237 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
238 #clock-cells = <0>;
239 clock-div = <12>;
240 clock-mult = <1>;
241 clock-output-names = "hp";
242 };
243 p_clk: p_clk {
244 compatible = "fixed-factor-clock";
245 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
246 #clock-cells = <0>;
247 clock-div = <24>;
248 clock-mult = <1>;
249 clock-output-names = "p";
250 };
251 rclk_clk: rclk_clk {
252 compatible = "fixed-factor-clock";
253 clocks = <&cpg_clocks R8A7793_CLK_PLL1>;
254 #clock-cells = <0>;
255 clock-div = <(48 * 1024)>;
256 clock-mult = <1>;
257 clock-output-names = "rclk";
258 };
259 mp_clk: mp_clk {
260 compatible = "fixed-factor-clock";
261 clocks = <&pll1_div2_clk>;
262 #clock-cells = <0>;
263 clock-div = <15>;
264 clock-mult = <1>;
265 clock-output-names = "mp";
266 };
267 cp_clk: cp_clk {
268 compatible = "fixed-factor-clock";
269 clocks = <&extal_clk>;
270 #clock-cells = <0>;
271 clock-div = <2>;
272 clock-mult = <1>;
273 clock-output-names = "cp";
274 };
275
276 /* Gate clocks */
277 mstp1_clks: mstp1_clks@e6150134 {
278 compatible = "renesas,r8a7793-mstp-clocks",
279 "renesas,cpg-mstp-clocks";
280 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
281 clocks = <&zs_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
282 <&zg_clk>, <&zs_clk>, <&zs_clk>, <&zs_clk>,
283 <&p_clk>, <&p_clk>, <&rclk_clk>, <&cp_clk>,
284 <&zs_clk>, <&zs_clk>, <&zs_clk>;
285 #clock-cells = <1>;
286 clock-indices = <
287 R8A7793_CLK_VCP0 R8A7793_CLK_VPC0
288 R8A7793_CLK_SSP1 R8A7793_CLK_TMU1
289 R8A7793_CLK_3DG R8A7793_CLK_2DDMAC
290 R8A7793_CLK_FDP1_1 R8A7793_CLK_FDP1_0
291 R8A7793_CLK_TMU3 R8A7793_CLK_TMU2
292 R8A7793_CLK_CMT0 R8A7793_CLK_TMU0
293 R8A7793_CLK_VSP1_DU1 R8A7793_CLK_VSP1_DU0
294 R8A7793_CLK_VSP1_S
295 >;
296 clock-output-names =
297 "vcp0", "vpc0", "ssp_dev", "tmu1",
298 "pvrsrvkm", "tddmac", "fdp1", "fdp0",
299 "tmu3", "tmu2", "cmt0", "tmu0", "vsp1-du1",
300 "vsp1-du0", "vsps";
301 };
302 mstp3_clks: mstp3_clks@e615013c {
303 compatible = "renesas,r8a7793-mstp-clocks",
304 "renesas,cpg-mstp-clocks";
305 reg = <0 0xe615013c 0 4>, <0 0xe6150048 0 4>;
306 clocks = <&cp_clk>, <&sd3_clk>, <&sd2_clk>,
307 <&cpg_clocks R8A7793_CLK_SD0>, <&mmc0_clk>,
308 <&hp_clk>, <&mp_clk>, <&hp_clk>, <&mp_clk>,
309 <&rclk_clk>, <&hp_clk>, <&hp_clk>;
310 #clock-cells = <1>;
311 clock-indices = <
312 R8A7793_CLK_TPU0 R8A7793_CLK_SDHI2
313 R8A7793_CLK_SDHI1 R8A7793_CLK_SDHI0
314 R8A7793_CLK_MMCIF0 R8A7793_CLK_IIC0
315 R8A7793_CLK_PCIEC R8A7793_CLK_IIC1
316 R8A7793_CLK_SSUSB R8A7793_CLK_CMT1
317 R8A7793_CLK_USBDMAC0 R8A7793_CLK_USBDMAC1
318 >;
319 clock-output-names =
320 "tpu0", "sdhi2", "sdhi1", "sdhi0", "mmcif0",
321 "i2c7", "pciec", "i2c8", "ssusb", "cmt1",
322 "usbdmac0", "usbdmac1";
323 };
324 mstp4_clks: mstp4_clks@e6150140 {
325 compatible = "renesas,r8a7793-mstp-clocks", "renesas,cpg-mstp-clocks";
326 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
327 clocks = <&cp_clk>;
328 #clock-cells = <1>;
329 clock-indices = <R8A7793_CLK_IRQC>;
330 clock-output-names = "irqc";
331 };
332 mstp7_clks: mstp7_clks@e615014c {
333 compatible = "renesas,r8a7793-mstp-clocks",
334 "renesas,cpg-mstp-clocks";
335 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
336 clocks = <&mp_clk>, <&hp_clk>, <&zs_clk>, <&p_clk>,
337 <&p_clk>, <&zs_clk>, <&zs_clk>, <&p_clk>,
338 <&p_clk>, <&p_clk>, <&p_clk>, <&zx_clk>,
339 <&zx_clk>, <&zx_clk>;
340 #clock-cells = <1>;
341 clock-indices = <
342 R8A7793_CLK_EHCI R8A7793_CLK_HSUSB
343 R8A7793_CLK_HSCIF2 R8A7793_CLK_SCIF5
344 R8A7793_CLK_SCIF4 R8A7793_CLK_HSCIF1
345 R8A7793_CLK_HSCIF0 R8A7793_CLK_SCIF3
346 R8A7793_CLK_SCIF2 R8A7793_CLK_SCIF1
347 R8A7793_CLK_SCIF0 R8A7793_CLK_DU1
348 R8A7793_CLK_DU0 R8A7793_CLK_LVDS0
349 >;
350 clock-output-names =
351 "ehci", "hsusb", "hscif2", "scif5", "scif4",
352 "hscif1", "hscif0", "scif3", "scif2",
353 "scif1", "scif0", "du1", "du0", "lvds0";
354 };
355 mstp8_clks: mstp8_clks@e6150990 {
356 compatible = "renesas,r8a7793-mstp-clocks",
357 "renesas,cpg-mstp-clocks";
358 reg = <0 0xe6150990 0 4>, <0 0xe61509a0 0 4>;
359 clocks = <&zx_clk>, <&zg_clk>, <&zg_clk>, <&zg_clk>,
360 <&p_clk>, <&zs_clk>, <&zs_clk>;
361 #clock-cells = <1>;
362 clock-indices = <
363 R8A7793_CLK_IPMMU_SGX R8A7793_CLK_VIN2
364 R8A7793_CLK_VIN1 R8A7793_CLK_VIN0
365 R8A7793_CLK_ETHER R8A7793_CLK_SATA1
366 R8A7793_CLK_SATA0
367 >;
368 clock-output-names =
369 "ipmmu_sgx", "vin2", "vin1", "vin0", "ether",
370 "sata1", "sata0";
371 };
372 };
373
374};
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
new file mode 100644
index 000000000000..d4dd5a30ccdf
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7794-silk.dts
@@ -0,0 +1,102 @@
1/*
2 * Device Tree Source for the SILK board
3 *
4 * Copyright (C) 2014 Renesas Electronics Corporation
5 * Copyright (C) 2014-2015 Renesas Solutions Corp.
6 * Copyright (C) 2014-2015 Cogent Embedded, Inc.
7 *
8 * This file is licensed under the terms of the GNU General Public License
9 * version 2. This program is licensed "as is" without any warranty of any
10 * kind, whether express or implied.
11 */
12
13/dts-v1/;
14#include "r8a7794.dtsi"
15
16/ {
17 model = "SILK";
18 compatible = "renesas,silk", "renesas,r8a7794";
19
20 aliases {
21 serial0 = &scif2;
22 };
23
24 chosen {
25 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
26 stdout-path = &scif2;
27 };
28
29 memory@40000000 {
30 device_type = "memory";
31 reg = <0 0x40000000 0 0x40000000>;
32 };
33
34 d3_3v: regulator@0 {
35 compatible = "regulator-fixed";
36 regulator-name = "D3.3V";
37 regulator-min-microvolt = <3300000>;
38 regulator-max-microvolt = <3300000>;
39 regulator-boot-on;
40 regulator-always-on;
41 };
42};
43
44&extal_clk {
45 clock-frequency = <20000000>;
46};
47
48&pfc {
49 scif2_pins: serial2 {
50 renesas,groups = "scif2_data";
51 renesas,function = "scif2";
52 };
53
54 ether_pins: ether {
55 renesas,groups = "eth_link", "eth_mdio", "eth_rmii";
56 renesas,function = "eth";
57 };
58
59 phy1_pins: phy1 {
60 renesas,groups = "intc_irq8";
61 renesas,function = "intc";
62 };
63
64 mmcif0_pins: mmcif0 {
65 renesas,groups = "mmc_data8", "mmc_ctrl";
66 renesas,function = "mmc";
67 };
68};
69
70&scif2 {
71 pinctrl-0 = <&scif2_pins>;
72 pinctrl-names = "default";
73
74 status = "okay";
75};
76
77&ether {
78 pinctrl-0 = <&ether_pins &phy1_pins>;
79 pinctrl-names = "default";
80
81 phy-handle = <&phy1>;
82 renesas,ether-link-active-low;
83 status = "okay";
84
85 phy1: ethernet-phy@1 {
86 reg = <1>;
87 interrupt-parent = <&irqc0>;
88 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
89 micrel,led-mode = <1>;
90 };
91};
92
93&mmcif0 {
94 pinctrl-0 = <&mmcif0_pins>;
95 pinctrl-names = "default";
96
97 vmmc-supply = <&d3_3v>;
98 vqmmc-supply = <&d3_3v>;
99 bus-width = <8>;
100 non-removable;
101 status = "okay";
102};
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index b73819423311..97c8e9ace5eb 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -39,7 +39,7 @@
39 }; 39 };
40 40
41 gic: interrupt-controller@f1001000 { 41 gic: interrupt-controller@f1001000 {
42 compatible = "arm,cortex-a7-gic"; 42 compatible = "arm,gic-400";
43 #interrupt-cells = <3>; 43 #interrupt-cells = <3>;
44 #address-cells = <0>; 44 #address-cells = <0>;
45 interrupt-controller; 45 interrupt-controller;
@@ -57,6 +57,7 @@
57 <0 143 IRQ_TYPE_LEVEL_HIGH>; 57 <0 143 IRQ_TYPE_LEVEL_HIGH>;
58 clocks = <&mstp1_clks R8A7794_CLK_CMT0>; 58 clocks = <&mstp1_clks R8A7794_CLK_CMT0>;
59 clock-names = "fck"; 59 clock-names = "fck";
60 power-domains = <&cpg_clocks>;
60 61
61 renesas,channels-mask = <0x60>; 62 renesas,channels-mask = <0x60>;
62 63
@@ -76,6 +77,7 @@
76 <0 127 IRQ_TYPE_LEVEL_HIGH>; 77 <0 127 IRQ_TYPE_LEVEL_HIGH>;
77 clocks = <&mstp3_clks R8A7794_CLK_CMT1>; 78 clocks = <&mstp3_clks R8A7794_CLK_CMT1>;
78 clock-names = "fck"; 79 clock-names = "fck";
80 power-domains = <&cpg_clocks>;
79 81
80 renesas,channels-mask = <0xff>; 82 renesas,channels-mask = <0xff>;
81 83
@@ -106,6 +108,13 @@
106 <0 16 IRQ_TYPE_LEVEL_HIGH>, 108 <0 16 IRQ_TYPE_LEVEL_HIGH>,
107 <0 17 IRQ_TYPE_LEVEL_HIGH>; 109 <0 17 IRQ_TYPE_LEVEL_HIGH>;
108 clocks = <&mstp4_clks R8A7794_CLK_IRQC>; 110 clocks = <&mstp4_clks R8A7794_CLK_IRQC>;
111 power-domains = <&cpg_clocks>;
112 };
113
114 pfc: pin-controller@e6060000 {
115 compatible = "renesas,pfc-r8a7794";
116 reg = <0 0xe6060000 0 0x11c>;
117 #gpio-range-cells = <3>;
109 }; 118 };
110 119
111 dmac0: dma-controller@e6700000 { 120 dmac0: dma-controller@e6700000 {
@@ -134,6 +143,7 @@
134 "ch12", "ch13", "ch14"; 143 "ch12", "ch13", "ch14";
135 clocks = <&mstp2_clks R8A7794_CLK_SYS_DMAC0>; 144 clocks = <&mstp2_clks R8A7794_CLK_SYS_DMAC0>;
136 clock-names = "fck"; 145 clock-names = "fck";
146 power-domains = <&cpg_clocks>;
137 #dma-cells = <1>; 147 #dma-cells = <1>;
138 dma-channels = <15>; 148 dma-channels = <15>;
139 }; 149 };
@@ -164,6 +174,7 @@
164 "ch12", "ch13", "ch14"; 174 "ch12", "ch13", "ch14";
165 clocks = <&mstp2_clks R8A7794_CLK_SYS_DMAC1>; 175 clocks = <&mstp2_clks R8A7794_CLK_SYS_DMAC1>;
166 clock-names = "fck"; 176 clock-names = "fck";
177 power-domains = <&cpg_clocks>;
167 #dma-cells = <1>; 178 #dma-cells = <1>;
168 dma-channels = <15>; 179 dma-channels = <15>;
169 }; 180 };
@@ -176,6 +187,7 @@
176 clock-names = "sci_ick"; 187 clock-names = "sci_ick";
177 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 188 dmas = <&dmac0 0x21>, <&dmac0 0x22>;
178 dma-names = "tx", "rx"; 189 dma-names = "tx", "rx";
190 power-domains = <&cpg_clocks>;
179 status = "disabled"; 191 status = "disabled";
180 }; 192 };
181 193
@@ -187,6 +199,7 @@
187 clock-names = "sci_ick"; 199 clock-names = "sci_ick";
188 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 200 dmas = <&dmac0 0x25>, <&dmac0 0x26>;
189 dma-names = "tx", "rx"; 201 dma-names = "tx", "rx";
202 power-domains = <&cpg_clocks>;
190 status = "disabled"; 203 status = "disabled";
191 }; 204 };
192 205
@@ -198,6 +211,7 @@
198 clock-names = "sci_ick"; 211 clock-names = "sci_ick";
199 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 212 dmas = <&dmac0 0x27>, <&dmac0 0x28>;
200 dma-names = "tx", "rx"; 213 dma-names = "tx", "rx";
214 power-domains = <&cpg_clocks>;
201 status = "disabled"; 215 status = "disabled";
202 }; 216 };
203 217
@@ -209,6 +223,7 @@
209 clock-names = "sci_ick"; 223 clock-names = "sci_ick";
210 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>; 224 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>;
211 dma-names = "tx", "rx"; 225 dma-names = "tx", "rx";
226 power-domains = <&cpg_clocks>;
212 status = "disabled"; 227 status = "disabled";
213 }; 228 };
214 229
@@ -220,6 +235,7 @@
220 clock-names = "sci_ick"; 235 clock-names = "sci_ick";
221 dmas = <&dmac0 0x1f>, <&dmac0 0x20>; 236 dmas = <&dmac0 0x1f>, <&dmac0 0x20>;
222 dma-names = "tx", "rx"; 237 dma-names = "tx", "rx";
238 power-domains = <&cpg_clocks>;
223 status = "disabled"; 239 status = "disabled";
224 }; 240 };
225 241
@@ -231,6 +247,7 @@
231 clock-names = "sci_ick"; 247 clock-names = "sci_ick";
232 dmas = <&dmac0 0x23>, <&dmac0 0x24>; 248 dmas = <&dmac0 0x23>, <&dmac0 0x24>;
233 dma-names = "tx", "rx"; 249 dma-names = "tx", "rx";
250 power-domains = <&cpg_clocks>;
234 status = "disabled"; 251 status = "disabled";
235 }; 252 };
236 253
@@ -242,6 +259,7 @@
242 clock-names = "sci_ick"; 259 clock-names = "sci_ick";
243 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 260 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>;
244 dma-names = "tx", "rx"; 261 dma-names = "tx", "rx";
262 power-domains = <&cpg_clocks>;
245 status = "disabled"; 263 status = "disabled";
246 }; 264 };
247 265
@@ -253,6 +271,7 @@
253 clock-names = "sci_ick"; 271 clock-names = "sci_ick";
254 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 272 dmas = <&dmac0 0x19>, <&dmac0 0x1a>;
255 dma-names = "tx", "rx"; 273 dma-names = "tx", "rx";
274 power-domains = <&cpg_clocks>;
256 status = "disabled"; 275 status = "disabled";
257 }; 276 };
258 277
@@ -264,6 +283,7 @@
264 clock-names = "sci_ick"; 283 clock-names = "sci_ick";
265 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 284 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>;
266 dma-names = "tx", "rx"; 285 dma-names = "tx", "rx";
286 power-domains = <&cpg_clocks>;
267 status = "disabled"; 287 status = "disabled";
268 }; 288 };
269 289
@@ -275,6 +295,7 @@
275 clock-names = "sci_ick"; 295 clock-names = "sci_ick";
276 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 296 dmas = <&dmac0 0x29>, <&dmac0 0x2a>;
277 dma-names = "tx", "rx"; 297 dma-names = "tx", "rx";
298 power-domains = <&cpg_clocks>;
278 status = "disabled"; 299 status = "disabled";
279 }; 300 };
280 301
@@ -286,6 +307,7 @@
286 clock-names = "sci_ick"; 307 clock-names = "sci_ick";
287 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 308 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>;
288 dma-names = "tx", "rx"; 309 dma-names = "tx", "rx";
310 power-domains = <&cpg_clocks>;
289 status = "disabled"; 311 status = "disabled";
290 }; 312 };
291 313
@@ -297,6 +319,7 @@
297 clock-names = "sci_ick"; 319 clock-names = "sci_ick";
298 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>; 320 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>;
299 dma-names = "tx", "rx"; 321 dma-names = "tx", "rx";
322 power-domains = <&cpg_clocks>;
300 status = "disabled"; 323 status = "disabled";
301 }; 324 };
302 325
@@ -308,6 +331,7 @@
308 clock-names = "sci_ick"; 331 clock-names = "sci_ick";
309 dmas = <&dmac0 0x2f>, <&dmac0 0x30>; 332 dmas = <&dmac0 0x2f>, <&dmac0 0x30>;
310 dma-names = "tx", "rx"; 333 dma-names = "tx", "rx";
334 power-domains = <&cpg_clocks>;
311 status = "disabled"; 335 status = "disabled";
312 }; 336 };
313 337
@@ -319,6 +343,7 @@
319 clock-names = "sci_ick"; 343 clock-names = "sci_ick";
320 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>; 344 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>;
321 dma-names = "tx", "rx"; 345 dma-names = "tx", "rx";
346 power-domains = <&cpg_clocks>;
322 status = "disabled"; 347 status = "disabled";
323 }; 348 };
324 349
@@ -330,6 +355,7 @@
330 clock-names = "sci_ick"; 355 clock-names = "sci_ick";
331 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>; 356 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>;
332 dma-names = "tx", "rx"; 357 dma-names = "tx", "rx";
358 power-domains = <&cpg_clocks>;
333 status = "disabled"; 359 status = "disabled";
334 }; 360 };
335 361
@@ -341,6 +367,7 @@
341 clock-names = "sci_ick"; 367 clock-names = "sci_ick";
342 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 368 dmas = <&dmac0 0x39>, <&dmac0 0x3a>;
343 dma-names = "tx", "rx"; 369 dma-names = "tx", "rx";
370 power-domains = <&cpg_clocks>;
344 status = "disabled"; 371 status = "disabled";
345 }; 372 };
346 373
@@ -352,6 +379,7 @@
352 clock-names = "sci_ick"; 379 clock-names = "sci_ick";
353 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 380 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>;
354 dma-names = "tx", "rx"; 381 dma-names = "tx", "rx";
382 power-domains = <&cpg_clocks>;
355 status = "disabled"; 383 status = "disabled";
356 }; 384 };
357 385
@@ -363,6 +391,7 @@
363 clock-names = "sci_ick"; 391 clock-names = "sci_ick";
364 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>; 392 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>;
365 dma-names = "tx", "rx"; 393 dma-names = "tx", "rx";
394 power-domains = <&cpg_clocks>;
366 status = "disabled"; 395 status = "disabled";
367 }; 396 };
368 397
@@ -371,17 +400,31 @@
371 reg = <0 0xee700000 0 0x400>; 400 reg = <0 0xee700000 0 0x400>;
372 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>; 401 interrupts = <0 162 IRQ_TYPE_LEVEL_HIGH>;
373 clocks = <&mstp8_clks R8A7794_CLK_ETHER>; 402 clocks = <&mstp8_clks R8A7794_CLK_ETHER>;
403 power-domains = <&cpg_clocks>;
374 phy-mode = "rmii"; 404 phy-mode = "rmii";
375 #address-cells = <1>; 405 #address-cells = <1>;
376 #size-cells = <0>; 406 #size-cells = <0>;
377 status = "disabled"; 407 status = "disabled";
378 }; 408 };
379 409
410 mmcif0: mmc@ee200000 {
411 compatible = "renesas,mmcif-r8a7794", "renesas,sh-mmcif";
412 reg = <0 0xee200000 0 0x80>;
413 interrupts = <0 169 IRQ_TYPE_LEVEL_HIGH>;
414 clocks = <&mstp3_clks R8A7794_CLK_MMCIF0>;
415 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>;
416 dma-names = "tx", "rx";
417 power-domains = <&cpg_clocks>;
418 reg-io-width = <4>;
419 status = "disabled";
420 };
421
380 sdhi0: sd@ee100000 { 422 sdhi0: sd@ee100000 {
381 compatible = "renesas,sdhi-r8a7794"; 423 compatible = "renesas,sdhi-r8a7794";
382 reg = <0 0xee100000 0 0x200>; 424 reg = <0 0xee100000 0 0x200>;
383 interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>; 425 interrupts = <0 165 IRQ_TYPE_LEVEL_HIGH>;
384 clocks = <&mstp3_clks R8A7794_CLK_SDHI0>; 426 clocks = <&mstp3_clks R8A7794_CLK_SDHI0>;
427 power-domains = <&cpg_clocks>;
385 status = "disabled"; 428 status = "disabled";
386 }; 429 };
387 430
@@ -390,6 +433,7 @@
390 reg = <0 0xee140000 0 0x100>; 433 reg = <0 0xee140000 0 0x100>;
391 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>; 434 interrupts = <0 167 IRQ_TYPE_LEVEL_HIGH>;
392 clocks = <&mstp3_clks R8A7794_CLK_SDHI1>; 435 clocks = <&mstp3_clks R8A7794_CLK_SDHI1>;
436 power-domains = <&cpg_clocks>;
393 status = "disabled"; 437 status = "disabled";
394 }; 438 };
395 439
@@ -398,6 +442,7 @@
398 reg = <0 0xee160000 0 0x100>; 442 reg = <0 0xee160000 0 0x100>;
399 interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>; 443 interrupts = <0 168 IRQ_TYPE_LEVEL_HIGH>;
400 clocks = <&mstp3_clks R8A7794_CLK_SDHI2>; 444 clocks = <&mstp3_clks R8A7794_CLK_SDHI2>;
445 power-domains = <&cpg_clocks>;
401 status = "disabled"; 446 status = "disabled";
402 }; 447 };
403 448
@@ -424,6 +469,7 @@
424 #clock-cells = <1>; 469 #clock-cells = <1>;
425 clock-output-names = "main", "pll0", "pll1", "pll3", 470 clock-output-names = "main", "pll0", "pll1", "pll3",
426 "lb", "qspi", "sdh", "sd0", "z"; 471 "lb", "qspi", "sdh", "sd0", "z";
472 #power-domain-cells = <0>;
427 }; 473 };
428 /* Variable factor clocks */ 474 /* Variable factor clocks */
429 sd2_clk: sd2_clk@e6150078 { 475 sd2_clk: sd2_clk@e6150078 {
diff --git a/arch/arm/boot/dts/rk3066a-bqcurie2.dts b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
index b299b26926d4..c0273755431a 100644
--- a/arch/arm/boot/dts/rk3066a-bqcurie2.dts
+++ b/arch/arm/boot/dts/rk3066a-bqcurie2.dts
@@ -49,6 +49,7 @@
49 compatible = "mundoreader,bq-curie2", "rockchip,rk3066a"; 49 compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
50 50
51 memory { 51 memory {
52 device_type = "memory";
52 reg = <0x60000000 0x40000000>; 53 reg = <0x60000000 0x40000000>;
53 }; 54 };
54 55
diff --git a/arch/arm/boot/dts/rk3066a-marsboard.dts b/arch/arm/boot/dts/rk3066a-marsboard.dts
index 0a7304beb417..bae965c123c1 100644
--- a/arch/arm/boot/dts/rk3066a-marsboard.dts
+++ b/arch/arm/boot/dts/rk3066a-marsboard.dts
@@ -48,6 +48,7 @@
48 compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a"; 48 compatible = "haoyu,marsboard-rk3066", "rockchip,rk3066a";
49 49
50 memory { 50 memory {
51 device_type = "memory";
51 reg = <0x60000000 0x40000000>; 52 reg = <0x60000000 0x40000000>;
52 }; 53 };
53 54
@@ -201,6 +202,18 @@
201 status = "okay"; 202 status = "okay";
202}; 203};
203 204
205&usbphy {
206 status = "okay";
207};
208
209&usb_host {
210 status = "okay";
211};
212
213&usb_otg {
214 status = "okay";
215};
216
204&wdt { 217&wdt {
205 status = "okay"; 218 status = "okay";
206}; 219};
diff --git a/arch/arm/boot/dts/rk3066a-rayeager.dts b/arch/arm/boot/dts/rk3066a-rayeager.dts
index 3ac151102c2f..e36383c701dc 100644
--- a/arch/arm/boot/dts/rk3066a-rayeager.dts
+++ b/arch/arm/boot/dts/rk3066a-rayeager.dts
@@ -48,6 +48,7 @@
48 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a"; 48 compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
49 49
50 memory { 50 memory {
51 device_type = "memory";
51 reg = <0x60000000 0x40000000>; 52 reg = <0x60000000 0x40000000>;
52 }; 53 };
53 54
@@ -459,6 +460,10 @@
459 status = "okay"; 460 status = "okay";
460}; 461};
461 462
463&usbphy {
464 status = "okay";
465};
466
462&usb_otg { 467&usb_otg {
463 status = "okay"; 468 status = "okay";
464}; 469};
diff --git a/arch/arm/boot/dts/rk3066a.dtsi b/arch/arm/boot/dts/rk3066a.dtsi
index d32229b8a996..946f18705e96 100644
--- a/arch/arm/boot/dts/rk3066a.dtsi
+++ b/arch/arm/boot/dts/rk3066a.dtsi
@@ -169,6 +169,28 @@
169 clock-names = "timer", "pclk"; 169 clock-names = "timer", "pclk";
170 }; 170 };
171 171
172 usbphy: phy {
173 compatible = "rockchip,rk3066a-usb-phy", "rockchip,rk3288-usb-phy";
174 rockchip,grf = <&grf>;
175 #address-cells = <1>;
176 #size-cells = <0>;
177 status = "disabled";
178
179 usbphy0: usb-phy0 {
180 #phy-cells = <0>;
181 reg = <0x17c>;
182 clocks = <&cru SCLK_OTGPHY0>;
183 clock-names = "phyclk";
184 };
185
186 usbphy1: usb-phy1 {
187 #phy-cells = <0>;
188 reg = <0x188>;
189 clocks = <&cru SCLK_OTGPHY1>;
190 clock-names = "phyclk";
191 };
192 };
193
172 pinctrl: pinctrl { 194 pinctrl: pinctrl {
173 compatible = "rockchip,rk3066a-pinctrl"; 195 compatible = "rockchip,rk3066a-pinctrl";
174 rockchip,grf = <&grf>; 196 rockchip,grf = <&grf>;
diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts
index 42faa19edb7e..d2180e5d2b05 100644
--- a/arch/arm/boot/dts/rk3188-radxarock.dts
+++ b/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -48,6 +48,7 @@
48 compatible = "radxa,rock", "rockchip,rk3188"; 48 compatible = "radxa,rock", "rockchip,rk3188";
49 49
50 memory { 50 memory {
51 device_type = "memory";
51 reg = <0x60000000 0x80000000>; 52 reg = <0x60000000 0x80000000>;
52 }; 53 };
53 54
@@ -358,6 +359,10 @@
358 status = "okay"; 359 status = "okay";
359}; 360};
360 361
362&usbphy {
363 status = "okay";
364};
365
361&usb_host { 366&usb_host {
362 status = "okay"; 367 status = "okay";
363}; 368};
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index 0f23aedf9349..316304272118 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -130,6 +130,28 @@
130 #reset-cells = <1>; 130 #reset-cells = <1>;
131 }; 131 };
132 132
133 usbphy: phy {
134 compatible = "rockchip,rk3188-usb-phy", "rockchip,rk3288-usb-phy";
135 rockchip,grf = <&grf>;
136 #address-cells = <1>;
137 #size-cells = <0>;
138 status = "disabled";
139
140 usbphy0: usb-phy0 {
141 #phy-cells = <0>;
142 reg = <0x10c>;
143 clocks = <&cru SCLK_OTGPHY0>;
144 clock-names = "phyclk";
145 };
146
147 usbphy1: usb-phy1 {
148 #phy-cells = <0>;
149 reg = <0x11c>;
150 clocks = <&cru SCLK_OTGPHY1>;
151 clock-names = "phyclk";
152 };
153 };
154
133 pinctrl: pinctrl { 155 pinctrl: pinctrl {
134 compatible = "rockchip,rk3188-pinctrl"; 156 compatible = "rockchip,rk3188-pinctrl";
135 rockchip,grf = <&grf>; 157 rockchip,grf = <&grf>;
diff --git a/arch/arm/boot/dts/rk3288-evb.dtsi b/arch/arm/boot/dts/rk3288-evb.dtsi
index 844a6fb64658..f6d2e7894b05 100644
--- a/arch/arm/boot/dts/rk3288-evb.dtsi
+++ b/arch/arm/boot/dts/rk3288-evb.dtsi
@@ -43,6 +43,7 @@
43 43
44/ { 44/ {
45 memory { 45 memory {
46 device_type = "memory";
46 reg = <0x0 0x80000000>; 47 reg = <0x0 0x80000000>;
47 }; 48 };
48 49
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
index 0b42372e4379..20fa0ef0b96b 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -44,6 +44,7 @@
44 44
45/ { 45/ {
46 memory { 46 memory {
47 device_type = "memory";
47 reg = <0 0x80000000>; 48 reg = <0 0x80000000>;
48 }; 49 };
49 50
@@ -213,6 +214,8 @@
213 regulator-max-microvolt = <1350000>; 214 regulator-max-microvolt = <1350000>;
214 regulator-always-on; 215 regulator-always-on;
215 regulator-boot-on; 216 regulator-boot-on;
217 regulator-enable-ramp-delay = <300>;
218 regulator-ramp-delay = <8000>;
216 vin-supply = <&vcc_sys>; 219 vin-supply = <&vcc_sys>;
217 }; 220 };
218 221
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index d582811fbd7b..f82b956ebf17 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -49,6 +49,7 @@
49 compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288"; 49 compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
50 50
51 memory{ 51 memory{
52 device_type = "memory";
52 reg = <0 0x80000000>; 53 reg = <0 0x80000000>;
53 }; 54 };
54 55
diff --git a/arch/arm/boot/dts/rk3288-r89.dts b/arch/arm/boot/dts/rk3288-r89.dts
new file mode 100644
index 000000000000..14b9fc73c8a4
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-r89.dts
@@ -0,0 +1,413 @@
1/*
2 * Copyright (c) 2015 Heiko Stuebner <heiko@sntech.de>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include <dt-bindings/pwm/pwm.h>
45#include "rk3288.dtsi"
46
47/ {
48 compatible = "netxeon,r89", "rockchip,rk3288";
49
50 memory {
51 device_type = "memory";
52 reg = <0x0 0x80000000>;
53 };
54
55 ext_gmac: external-gmac-clock {
56 compatible = "fixed-clock";
57 clock-frequency = <125000000>;
58 clock-output-names = "ext_gmac";
59 #clock-cells = <0>;
60 };
61
62 gpio-keys {
63 compatible = "gpio-keys";
64 #address-cells = <1>;
65 #size-cells = <0>;
66 autorepeat;
67
68 pinctrl-names = "default";
69 pinctrl-0 = <&pwrbtn>;
70
71 button@0 {
72 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
73 linux,code = <116>;
74 label = "GPIO Key Power";
75 linux,input-type = <1>;
76 gpio-key,wakeup = <1>;
77 debounce-interval = <100>;
78 };
79 };
80
81 vcc_host: vcc-host-regulator {
82 compatible = "regulator-fixed";
83 enable-active-high;
84 gpio = <&gpio0 14 GPIO_ACTIVE_HIGH>;
85 pinctrl-names = "default";
86 pinctrl-0 = <&host_vbus_drv>;
87 regulator-name = "vcc_host";
88 regulator-always-on;
89 regulator-boot-on;
90 };
91
92 vcc_otg: vcc-otg-regulator {
93 compatible = "regulator-fixed";
94 enable-active-high;
95 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&otg_vbus_drv>;
98 regulator-name = "vcc_otg";
99 regulator-always-on;
100 regulator-boot-on;
101 };
102
103 vcc_sdmmc: sdmmc-regulator {
104 compatible = "regulator-fixed";
105 regulator-name = "sdmmc-supply";
106 regulator-min-microvolt = <3300000>;
107 regulator-max-microvolt = <3300000>;
108 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
109 startup-delay-us = <100000>;
110 vin-supply = <&vcc_io>;
111 };
112
113 vcc_sys: sys-regulator {
114 compatible = "regulator-fixed";
115 regulator-name = "sys-supply";
116 regulator-min-microvolt = <5000000>;
117 regulator-max-microvolt = <5000000>;
118 regulator-always-on;
119 regulator-boot-on;
120 };
121};
122
123&cpu0 {
124 cpu0-supply = <&vdd_cpu>;
125};
126
127&gmac {
128 phy-supply = <&vcc_lan>;
129 phy-mode = "rgmii";
130 clock_in_out = "input";
131 snps,reset-gpio = <&gpio4 7 0>;
132 snps,reset-active-low;
133 snps,reset-delays-us = <0 10000 1000000>;
134 assigned-clocks = <&cru SCLK_MAC>;
135 assigned-clock-parents = <&ext_gmac>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&rgmii_pins>;
138 tx_delay = <0x30>;
139 rx_delay = <0x10>;
140 status = "ok";
141};
142
143&hdmi {
144 status = "okay";
145};
146
147&i2c0 {
148 status = "okay";
149
150 vdd_cpu: pmic@40 {
151 compatible = "silergy,syr827";
152 reg = <0x40>;
153 fcs,suspend-voltage-selector = <1>;
154 regulator-name = "VDD_CPU";
155 regulator-enable-ramp-delay = <300>;
156 regulator-min-microvolt = <850000>;
157 regulator-max-microvolt = <1350000>;
158 regulator-ramp-delay = <8000>;
159 regulator-always-on;
160 regulator-boot-on;
161 vin-supply = <&vcc_sys>;
162 };
163
164 vdd_gpu: pmic@41 {
165 compatible = "silergy,syr828";
166 reg = <0x41>;
167 fcs,suspend-voltage-selector = <1>;
168 regulator-name = "VDD_GPU";
169 regulator-enable-ramp-delay = <300>;
170 regulator-min-microvolt = <850000>;
171 regulator-max-microvolt = <1350000>;
172 regulator-ramp-delay = <8000>;
173 regulator-always-on;
174 regulator-boot-on;
175 vin-supply = <&vcc_sys>;
176 };
177
178 rtc@51 {
179 compatible = "haoyu,hym8563";
180 reg = <0x51>;
181 #clock-cells = <0>;
182 clock-output-names = "xin32k";
183 interrupt-parent = <&gpio0>;
184 interrupts = <4 IRQ_TYPE_EDGE_FALLING>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&pmic_int>;
187 };
188
189 act8846: pmic@5a {
190 compatible = "active-semi,act8846";
191 reg = <0x5a>;
192 pinctrl-names = "default";
193 pinctrl-0 = <&pmic_vsel>, <&pwr_hold>;
194 system-power-controller;
195
196 regulators {
197 vcc_ddr: REG1 {
198 regulator-name = "VCC_DDR";
199 regulator-min-microvolt = <1200000>;
200 regulator-max-microvolt = <1200000>;
201 regulator-always-on;
202 };
203
204 vcc_io: REG2 {
205 regulator-name = "VCC_IO";
206 regulator-min-microvolt = <3300000>;
207 regulator-max-microvolt = <3300000>;
208 regulator-always-on;
209 };
210
211 vdd_log: REG3 {
212 regulator-name = "VDD_LOG";
213 regulator-min-microvolt = <1000000>;
214 regulator-max-microvolt = <1000000>;
215 regulator-always-on;
216 };
217
218 vcc_20: REG4 {
219 regulator-name = "VCC_20";
220 regulator-min-microvolt = <2000000>;
221 regulator-max-microvolt = <2000000>;
222 regulator-always-on;
223 };
224
225 vccio_sd: REG5 {
226 regulator-name = "VCCIO_SD";
227 regulator-min-microvolt = <3300000>;
228 regulator-max-microvolt = <3300000>;
229 regulator-always-on;
230 };
231
232 vdd10_lcd: REG6 {
233 regulator-name = "VDD10_LCD";
234 regulator-min-microvolt = <1000000>;
235 regulator-max-microvolt = <1000000>;
236 regulator-always-on;
237 };
238
239 vcc_wl: REG7 {
240 regulator-name = "VCC_WL";
241 regulator-min-microvolt = <3300000>;
242 regulator-max-microvolt = <3300000>;
243 regulator-always-on;
244 };
245
246 vcca_33: REG8 {
247 regulator-name = "VCCA_33";
248 regulator-min-microvolt = <3300000>;
249 regulator-max-microvolt = <3300000>;
250 regulator-always-on;
251 };
252
253 vcc_lan: REG9 {
254 regulator-name = "VCC_LAN";
255 regulator-min-microvolt = <3300000>;
256 regulator-max-microvolt = <3300000>;
257 regulator-always-on;
258 };
259
260 vdd_10: REG10 {
261 regulator-name = "VDD_10";
262 regulator-min-microvolt = <1000000>;
263 regulator-max-microvolt = <1000000>;
264 regulator-always-on;
265 };
266
267 vcc_18: REG11 {
268 regulator-name = "VCC_18";
269 regulator-min-microvolt = <1800000>;
270 regulator-max-microvolt = <1800000>;
271 regulator-always-on;
272 };
273
274 vcc18_lcd: REG12 {
275 regulator-name = "VCC18_LCD";
276 regulator-min-microvolt = <1800000>;
277 regulator-max-microvolt = <1800000>;
278 regulator-always-on;
279 };
280 };
281 };
282};
283
284&i2c5 {
285 status = "okay";
286};
287
288&pinctrl {
289 pcfg_output_high: pcfg-output-high {
290 output-high;
291 };
292
293 pcfg_output_low: pcfg-output-low {
294 output-low;
295 };
296
297 act8846 {
298 pmic_vsel: pmic-vsel {
299 rockchip,pins = <7 1 RK_FUNC_GPIO &pcfg_output_low>;
300 };
301
302 pwr_hold: pwr-hold {
303 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_output_high>;
304 };
305 };
306
307 buttons {
308 pwrbtn: pwrbtn {
309 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
310 };
311 };
312
313 pmic {
314 pmic_int: pmic-int {
315 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
316 };
317 };
318
319 usb {
320 host_vbus_drv: host-vbus-drv {
321 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
322 };
323
324 otg_vbus_drv: otg-vbus-drv {
325 rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
326 };
327 };
328};
329
330&pwm0 {
331 status = "okay";
332};
333
334&saradc {
335 vref-supply = <&vcc_18>;
336 status = "okay";
337};
338
339&sdmmc {
340 bus-width = <4>;
341 cap-mmc-highspeed;
342 cap-sd-highspeed;
343 card-detect-delay = <200>;
344 disable-wp;
345 num-slots = <1>;
346 pinctrl-names = "default";
347 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
348 vmmc-supply = <&vcc_sdmmc>;
349 vqmmc-supply = <&vccio_sd>;
350 status = "okay";
351};
352
353&tsadc {
354 rockchip,hw-tshut-mode = <0>;
355 rockchip,hw-tshut-polarity = <0>;
356 status = "okay";
357};
358
359&uart0 {
360 status = "okay";
361};
362
363&uart1 {
364 status = "okay";
365};
366
367&uart2 {
368 status = "okay";
369};
370
371&uart3 {
372 status = "okay";
373};
374
375&uart4 {
376 status = "okay";
377};
378
379&usb_host0_ehci {
380 status = "okay";
381};
382
383&usb_host1 {
384 status = "okay";
385};
386
387&usb_otg {
388 status = "okay";
389};
390
391&usbphy {
392 status = "okay";
393};
394
395&vopb {
396 status = "okay";
397};
398
399&vopb_mmu {
400 status = "okay";
401};
402
403&vopl {
404 status = "okay";
405};
406
407&vopl_mmu {
408 status = "okay";
409};
410
411&wdt {
412 status = "okay";
413};
diff --git a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
new file mode 100644
index 000000000000..136d650dd05f
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
@@ -0,0 +1,232 @@
1/*
2 * Google Veyron (and derivatives) board device tree source
3 * Chromebook specific parts
4 *
5 * Copyright 2015 Google, Inc
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46#include <dt-bindings/clock/rockchip,rk808.h>
47#include <dt-bindings/input/input.h>
48#include "rk3288-veyron.dtsi"
49#include "rk3288-veyron-sdmmc.dtsi"
50
51/ {
52 aliases {
53 /* Assign 20 so we don't get confused w/ builtin ones */
54 i2c20 = &i2c_tunnel;
55 };
56
57 gpio-charger {
58 compatible = "gpio-charger";
59 charger-type = "mains";
60 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
61 pinctrl-names = "default";
62 pinctrl-0 = <&ac_present_ap>;
63 };
64
65 /* A non-regulated voltage from power supply or battery */
66 vccsys: vccsys {
67 compatible = "regulator-fixed";
68 regulator-name = "vccsys";
69 regulator-boot-on;
70 regulator-always-on;
71 };
72
73 vcc33_sys: vcc33-sys {
74 vin-supply = <&vccsys>;
75 };
76
77 vcc_5v: vcc-5v {
78 vin-supply = <&vccsys>;
79 };
80
81 /* This turns on vbus for host1 (dwc2) */
82 vcc5_host1: vcc5-host1-regulator {
83 compatible = "regulator-fixed";
84 enable-active-high;
85 gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
86 pinctrl-names = "default";
87 pinctrl-0 = <&host1_pwr_en>;
88 regulator-name = "vcc5_host1";
89 regulator-always-on;
90 regulator-boot-on;
91 };
92
93 /* This turns on vbus for otg for host mode (dwc2) */
94 vcc5v_otg: vcc5v-otg-regulator {
95 compatible = "regulator-fixed";
96 enable-active-high;
97 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
98 pinctrl-names = "default";
99 pinctrl-0 = <&usbotg_pwren_h>;
100 regulator-name = "vcc5_host2";
101 regulator-always-on;
102 regulator-boot-on;
103 };
104};
105
106&gpio_keys {
107 pinctrl-0 = <&pwr_key_l &ap_lid_int_l>;
108 lid {
109 label = "Lid";
110 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
111 gpio-key,wakeup;
112 linux,code = <0>; /* SW_LID */
113 linux,input-type = <5>; /* EV_SW */
114 debounce-interval = <1>;
115 };
116};
117
118&rk808 {
119 vcc11-supply = <&vcc_5v>;
120
121 regulators {
122 vcc33_ccd: LDO_REG8 {
123 regulator-name = "vcc33_ccd";
124 regulator-always-on;
125 regulator-boot-on;
126 regulator-min-microvolt = <3300000>;
127 regulator-max-microvolt = <3300000>;
128 regulator-state-mem {
129 regulator-on-in-suspend;
130 regulator-suspend-microvolt = <3300000>;
131 };
132 };
133 };
134};
135
136&spi0 {
137 status = "okay";
138
139 cros_ec: ec@0 {
140 compatible = "google,cros-ec-spi";
141 reg = <0>;
142 google,cros-ec-spi-pre-delay = <30>;
143 interrupt-parent = <&gpio7>;
144 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
145 pinctrl-names = "default";
146 pinctrl-0 = <&ec_int>;
147 spi-max-frequency = <3000000>;
148
149 i2c_tunnel: i2c-tunnel {
150 compatible = "google,cros-ec-i2c-tunnel";
151 google,remote-bus = <0>;
152 #address-cells = <1>;
153 #size-cells = <0>;
154 };
155 };
156};
157
158&i2c4 {
159 trackpad@15 {
160 compatible = "elan,ekth3000";
161 reg = <0x15>;
162 interrupt-parent = <&gpio7>;
163 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&trackpad_int>;
166 vcc-supply = <&vcc33_io>;
167 wakeup-source;
168 };
169};
170
171&pinctrl {
172 pinctrl-0 = <
173 /* Common for sleep and wake, but no owners */
174 &global_pwroff
175
176 /* Wake only */
177 &suspend_l_wake
178 >;
179 pinctrl-1 = <
180 /* Common for sleep and wake, but no owners */
181 &global_pwroff
182
183 /* Sleep only */
184 &suspend_l_sleep
185 >;
186
187 buttons {
188 ap_lid_int_l: ap-lid-int-l {
189 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
190 };
191 };
192
193 charger {
194 ac_present_ap: ac-present-ap {
195 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
196 };
197 };
198
199 cros-ec {
200 ec_int: ec-int {
201 rockchip,pins = <7 7 RK_FUNC_GPIO &pcfg_pull_none>;
202 };
203 };
204
205 suspend {
206 suspend_l_wake: suspend-l-wake {
207 rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_low>;
208 };
209
210 suspend_l_sleep: suspend-l-sleep {
211 rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_output_high>;
212 };
213 };
214
215 trackpad {
216 trackpad_int: trackpad-int {
217 rockchip,pins = <7 3 RK_FUNC_GPIO &pcfg_pull_up>;
218 };
219 };
220
221 usb-host {
222 host1_pwr_en: host1-pwr-en {
223 rockchip,pins = <0 11 RK_FUNC_GPIO &pcfg_pull_none>;
224 };
225
226 usbotg_pwren_h: usbotg-pwren-h {
227 rockchip,pins = <0 12 RK_FUNC_GPIO &pcfg_pull_none>;
228 };
229 };
230};
231
232#include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/boot/dts/rk3288-veyron-jerry.dts b/arch/arm/boot/dts/rk3288-veyron-jerry.dts
new file mode 100644
index 000000000000..60bd6e91e308
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-jerry.dts
@@ -0,0 +1,197 @@
1/*
2 * Google Veyron Jerry Rev 3+ board device tree source
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "rk3288-veyron-chromebook.dtsi"
47#include "cros-ec-sbs.dtsi"
48
49/ {
50 model = "Google Jerry";
51 compatible = "google,veyron-jerry-rev7", "google,veyron-jerry-rev6",
52 "google,veyron-jerry-rev5", "google,veyron-jerry-rev4",
53 "google,veyron-jerry-rev3", "google,veyron-jerry",
54 "google,veyron", "rockchip,rk3288";
55
56 panel_regulator: panel-regulator {
57 compatible = "regulator-fixed";
58 enable-active-high;
59 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
60 pinctrl-names = "default";
61 pinctrl-0 = <&lcd_enable_h>;
62 regulator-name = "panel_regulator";
63 vin-supply = <&vcc33_sys>;
64 };
65
66 vcc18_lcd: vcc18-lcd {
67 compatible = "regulator-fixed";
68 enable-active-high;
69 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
70 pinctrl-names = "default";
71 pinctrl-0 = <&avdd_1v8_disp_en>;
72 regulator-name = "vcc18_lcd";
73 regulator-always-on;
74 regulator-boot-on;
75 vin-supply = <&vcc18_wl>;
76 };
77
78 backlight_regulator: backlight-regulator {
79 compatible = "regulator-fixed";
80 enable-active-high;
81 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
82 pinctrl-names = "default";
83 pinctrl-0 = <&bl_pwr_en>;
84 regulator-name = "backlight_regulator";
85 vin-supply = <&vcc33_sys>;
86 startup-delay-us = <15000>;
87 };
88};
89
90&rk808 {
91 pinctrl-names = "default";
92 pinctrl-0 = <&pmic_int_l>;
93
94 regulators {
95 mic_vcc: LDO_REG2 {
96 regulator-name = "mic_vcc";
97 regulator-always-on;
98 regulator-boot-on;
99 regulator-min-microvolt = <1800000>;
100 regulator-max-microvolt = <1800000>;
101 regulator-state-mem {
102 regulator-off-in-suspend;
103 };
104 };
105 };
106};
107
108&sdmmc {
109 disable-wp;
110 pinctrl-names = "default";
111 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
112 &sdmmc_bus4>;
113};
114
115&vcc_5v {
116 enable-active-high;
117 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>;
118 pinctrl-names = "default";
119 pinctrl-0 = <&drv_5v>;
120};
121
122&vcc50_hdmi {
123 enable-active-high;
124 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
125 pinctrl-names = "default";
126 pinctrl-0 = <&vcc50_hdmi_en>;
127};
128
129&pinctrl {
130 backlight {
131 bl_pwr_en: bl_pwr_en {
132 rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
133 };
134 };
135
136 buck-5v {
137 drv_5v: drv-5v {
138 rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
139 };
140 };
141
142 hdmi {
143 vcc50_hdmi_en: vcc50-hdmi-en {
144 rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
145 };
146 };
147
148 lcd {
149 lcd_enable_h: lcd-en {
150 rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
151 };
152
153 avdd_1v8_disp_en: avdd-1v8-disp-en {
154 rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
155 };
156 };
157
158 pmic {
159 dvs_1: dvs-1 {
160 rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
161 };
162
163 dvs_2: dvs-2 {
164 rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
165 };
166 };
167};
168
169&i2c4 {
170 status = "okay";
171
172 /*
173 * Trackpad pin control is shared between Elan and Synaptics devices
174 * so we have to pull it up to the bus level.
175 */
176 pinctrl-names = "default";
177 pinctrl-0 = <&i2c4_xfer &trackpad_int>;
178
179 trackpad@15 {
180 /*
181 * Remove the inherited pinctrl settings to avoid clashing
182 * with bus-wide ones.
183 */
184 /delete-property/pinctrl-names;
185 /delete-property/pinctrl-0;
186 };
187
188 trackpad@2c {
189 compatible = "hid-over-i2c";
190 interrupt-parent = <&gpio7>;
191 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
192 reg = <0x2c>;
193 hid-descr-addr = <0x0020>;
194 vcc-supply = <&vcc33_io>;
195 wakeup-source;
196 };
197};
diff --git a/arch/arm/boot/dts/rk3288-veyron-minnie.dts b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
new file mode 100644
index 000000000000..8fd8ef2c72da
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-minnie.dts
@@ -0,0 +1,230 @@
1/*
2 * Google Veyron Minnie Rev 0+ board device tree source
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "rk3288-veyron-chromebook.dtsi"
47
48/ {
49 model = "Google Minnie";
50 compatible = "google,veyron-minnie-rev4", "google,veyron-minnie-rev3",
51 "google,veyron-minnie-rev2", "google,veyron-minnie-rev1",
52 "google,veyron-minnie-rev0", "google,veyron-minnie",
53 "google,veyron", "rockchip,rk3288";
54
55 backlight_regulator: backlight-regulator {
56 compatible = "regulator-fixed";
57 enable-active-high;
58 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
59 pinctrl-names = "default";
60 pinctrl-0 = <&bl_pwr_en>;
61 regulator-name = "backlight_regulator";
62 vin-supply = <&vcc33_sys>;
63 startup-delay-us = <15000>;
64 };
65
66 panel_regulator: panel-regulator {
67 compatible = "regulator-fixed";
68 enable-active-high;
69 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
70 pinctrl-names = "default";
71 pinctrl-0 = <&lcd_enable_h>;
72 regulator-name = "panel_regulator";
73 vin-supply = <&vcc33_sys>;
74 };
75
76 vcc18_lcd: vcc18-lcd {
77 compatible = "regulator-fixed";
78 enable-active-high;
79 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
80 pinctrl-names = "default";
81 pinctrl-0 = <&avdd_1v8_disp_en>;
82 regulator-name = "vcc18_lcd";
83 regulator-always-on;
84 regulator-boot-on;
85 vin-supply = <&vcc18_wl>;
86 };
87};
88
89&gpio_keys {
90 pinctrl-0 = <&pwr_key_l &ap_lid_int_l &volum_down_l &volum_up_l>;
91
92 volum_down {
93 label = "Volum_down";
94 gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
95 linux,code = <KEY_VOLUMEDOWN>;
96 debounce-interval = <100>;
97 };
98
99 volum_up {
100 label = "Volum_up";
101 gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
102 linux,code = <KEY_VOLUMEUP>;
103 debounce-interval = <100>;
104 };
105};
106
107&i2c_tunnel {
108 battery: bq27500@55 {
109 compatible = "ti,bq27500";
110 reg = <0x55>;
111 };
112};
113
114&i2c3 {
115 status = "okay";
116
117 clock-frequency = <400000>;
118 i2c-scl-falling-time-ns = <50>;
119 i2c-scl-rising-time-ns = <300>;
120};
121
122&rk808 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
125
126 regulators {
127 vcc33_touch: LDO_REG2 {
128 regulator-min-microvolt = <3300000>;
129 regulator-max-microvolt = <3300000>;
130 regulator-name = "vcc33_touch";
131 regulator-state-mem {
132 regulator-off-in-suspend;
133 };
134 };
135
136 vcc5v_touch: SWITCH_REG2 {
137 regulator-name = "vcc5v_touch";
138 regulator-state-mem {
139 regulator-off-in-suspend;
140 };
141 };
142 };
143};
144
145&sdmmc {
146 disable-wp;
147 pinctrl-names = "default";
148 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
149 &sdmmc_bus4>;
150};
151
152&vcc_5v {
153 enable-active-high;
154 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>;
155 pinctrl-names = "default";
156 pinctrl-0 = <&drv_5v>;
157};
158
159&vcc50_hdmi {
160 enable-active-high;
161 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&vcc50_hdmi_en>;
164};
165
166&pinctrl {
167 backlight {
168 bl_pwr_en: bl_pwr_en {
169 rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
170 };
171 };
172
173 buck-5v {
174 drv_5v: drv-5v {
175 rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
176 };
177 };
178
179 buttons {
180 volum_down_l: volum-down-l {
181 rockchip,pins = <5 11 RK_FUNC_GPIO &pcfg_pull_up>;
182 };
183
184 volum_up_l: volum-up-l {
185 rockchip,pins = <5 10 RK_FUNC_GPIO &pcfg_pull_up>;
186 };
187 };
188
189 hdmi {
190 vcc50_hdmi_en: vcc50-hdmi-en {
191 rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
192 };
193 };
194
195 lcd {
196 lcd_enable_h: lcd-en {
197 rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
198 };
199
200 avdd_1v8_disp_en: avdd-1v8-disp-en {
201 rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
202 };
203 };
204
205 pmic {
206 dvs_1: dvs-1 {
207 rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
208 };
209
210 dvs_2: dvs-2 {
211 rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
212 };
213 };
214
215 prochot {
216 gpio_prochot: gpio-prochot {
217 rockchip,pins = <2 8 RK_FUNC_GPIO &pcfg_pull_none>;
218 };
219 };
220
221 touchscreen {
222 touch_int: touch-int {
223 rockchip,pins = <2 14 RK_FUNC_GPIO &pcfg_pull_none>;
224 };
225
226 touch_rst: touch-rst {
227 rockchip,pins = <2 15 RK_FUNC_GPIO &pcfg_pull_none>;
228 };
229 };
230};
diff --git a/arch/arm/boot/dts/rk3288-veyron-pinky.dts b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
new file mode 100644
index 000000000000..94b56e33d947
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-pinky.dts
@@ -0,0 +1,128 @@
1/*
2 * Google Veyron Pinky Rev 2 board device tree source
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "rk3288-veyron-chromebook.dtsi"
47#include "cros-ec-sbs.dtsi"
48
49/ {
50 model = "Google Pinky";
51 compatible = "google,veyron-pinky-rev2", "google,veyron-pinky",
52 "google,veyron", "rockchip,rk3288";
53
54 /delete-node/emmc-pwrseq;
55};
56
57&emmc {
58 /*
59 * Use a pullup instead of a drive since the output is 3.3V and
60 * really should be 1.8V (oops). The external pulldown will help
61 * bring the voltage down if we only drive with a pullup here.
62 * Therefore disable the powerseq (and actual reset) for pinky.
63 */
64 /delete-property/mmc-pwrseq;
65 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_reset>;
66};
67
68&gpio_keys {
69 pinctrl-0 = <&pwr_key_h &ap_lid_int_l>;
70
71 power {
72 gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
73 };
74};
75
76/* Touchpad connector */
77&i2c3 {
78 status = "okay";
79
80 clock-frequency = <400000>;
81 i2c-scl-falling-time-ns = <50>;
82 i2c-scl-rising-time-ns = <300>;
83};
84
85&pinctrl {
86 buttons {
87 pwr_key_h: pwr-key-h {
88 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_none>;
89 };
90 };
91
92 emmc {
93 emmc_reset: emmc-reset {
94 rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_up>;
95 };
96 };
97
98 sdmmc {
99 sdmmc_wp_gpio: sdmmc-wp-gpio {
100 rockchip,pins = <7 10 RK_FUNC_GPIO &pcfg_pull_up>;
101 };
102 };
103};
104
105&rk808 {
106 regulators {
107 vcc18_lcd: SWITCH_REG2 {
108 regulator-always-on;
109 regulator-boot-on;
110 regulator-name = "vcc18_lcd";
111 regulator-state-mem {
112 regulator-off-in-suspend;
113 };
114 };
115 };
116};
117
118&sdmmc {
119 pinctrl-names = "default";
120 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
121 &sdmmc_wp_gpio &sdmmc_bus4>;
122 wp-gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>;
123};
124
125&tsadc {
126 /* Some connection is flaky making the tsadc hang the system */
127 status = "disabled";
128};
diff --git a/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi b/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
new file mode 100644
index 000000000000..b5334ecff13c
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
@@ -0,0 +1,122 @@
1/*
2 * Google Veyron (and derivatives) fragment for sdmmc cards
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45&io_domains {
46 sdcard-supply = <&vccio_sd>;
47};
48
49&pinctrl {
50 sdmmc {
51 /*
52 * We run sdmmc at max speed; bump up drive strength.
53 * We also have external pulls, so disable the internal ones.
54 */
55 sdmmc_bus4: sdmmc-bus4 {
56 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
57 <6 17 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
58 <6 18 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
59 <6 19 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
60 };
61
62 sdmmc_clk: sdmmc-clk {
63 rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
64 };
65
66 sdmmc_cmd: sdmmc-cmd {
67 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
68 };
69
70 /*
71 * Builtin CD line is hooked to ground to prevent JTAG at boot
72 * (and also to get the voltage rail correct).
73 * Configure gpio6_C6 as GPIO so dw_mmc builtin CD doesn't
74 * think there's a card inserted
75 */
76 sdmmc_cd_disabled: sdmmc-cd-disabled {
77 rockchip,pins = <6 22 RK_FUNC_GPIO &pcfg_pull_none>;
78 };
79
80 /* This is where we actually hook up CD */
81 sdmmc_cd_gpio: sdmmc-cd-gpio {
82 rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_none>;
83 };
84 };
85};
86
87&rk808 {
88 vcc9-supply = <&vcc_5v>;
89
90 regulators {
91 vccio_sd: LDO_REG4 {
92 regulator-name = "vccio_sd";
93 regulator-min-microvolt = <3300000>;
94 regulator-max-microvolt = <3300000>;
95 regulator-state-mem {
96 regulator-off-in-suspend;
97 };
98 };
99
100 vcc33_sd: LDO_REG5 {
101 regulator-name = "vcc33_sd";
102 regulator-min-microvolt = <3300000>;
103 regulator-max-microvolt = <3300000>;
104 regulator-state-mem {
105 regulator-off-in-suspend;
106 };
107 };
108 };
109};
110
111&sdmmc {
112 status = "okay";
113
114 bus-width = <4>;
115 cap-mmc-highspeed;
116 cap-sd-highspeed;
117 card-detect-delay = <200>;
118 cd-gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
119 num-slots = <1>;
120 vmmc-supply = <&vcc33_sd>;
121 vqmmc-supply = <&vccio_sd>;
122};
diff --git a/arch/arm/boot/dts/rk3288-veyron-speedy.dts b/arch/arm/boot/dts/rk3288-veyron-speedy.dts
new file mode 100644
index 000000000000..a7ea7d06cf7f
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-speedy.dts
@@ -0,0 +1,155 @@
1/*
2 * Google Veyron Speedy Rev 1+ board device tree source
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "rk3288-veyron-chromebook.dtsi"
47#include "cros-ec-sbs.dtsi"
48
49/ {
50 model = "Google Speedy";
51 compatible = "google,veyron-speedy-rev9", "google,veyron-speedy-rev8",
52 "google,veyron-speedy-rev7", "google,veyron-speedy-rev6",
53 "google,veyron-speedy-rev5", "google,veyron-speedy-rev4",
54 "google,veyron-speedy-rev3", "google,veyron-speedy-rev2",
55 "google,veyron-speedy", "google,veyron", "rockchip,rk3288";
56
57 panel_regulator: panel-regulator {
58 compatible = "regulator-fixed";
59 enable-active-high;
60 gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>;
61 pinctrl-names = "default";
62 pinctrl-0 = <&lcd_enable_h>;
63 regulator-name = "panel_regulator";
64 vin-supply = <&vcc33_sys>;
65 };
66
67 vcc18_lcd: vcc18-lcd {
68 compatible = "regulator-fixed";
69 enable-active-high;
70 gpio = <&gpio2 13 GPIO_ACTIVE_HIGH>;
71 pinctrl-names = "default";
72 pinctrl-0 = <&avdd_1v8_disp_en>;
73 regulator-name = "vcc18_lcd";
74 regulator-always-on;
75 regulator-boot-on;
76 vin-supply = <&vcc18_wl>;
77 };
78
79 backlight_regulator: backlight-regulator {
80 compatible = "regulator-fixed";
81 enable-active-high;
82 gpio = <&gpio2 12 GPIO_ACTIVE_HIGH>;
83 pinctrl-names = "default";
84 pinctrl-0 = <&bl_pwr_en>;
85 regulator-name = "backlight_regulator";
86 vin-supply = <&vcc33_sys>;
87 startup-delay-us = <15000>;
88 };
89};
90
91&rk808 {
92 pinctrl-names = "default";
93 pinctrl-0 = <&pmic_int_l>;
94};
95
96&sdmmc {
97 disable-wp;
98 pinctrl-names = "default";
99 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd_disabled &sdmmc_cd_gpio
100 &sdmmc_bus4>;
101};
102
103&vcc_5v {
104 enable-active-high;
105 gpio = <&gpio7 21 GPIO_ACTIVE_HIGH>;
106 pinctrl-names = "default";
107 pinctrl-0 = <&drv_5v>;
108};
109
110&vcc50_hdmi {
111 enable-active-high;
112 gpio = <&gpio5 19 GPIO_ACTIVE_HIGH>;
113 pinctrl-names = "default";
114 pinctrl-0 = <&vcc50_hdmi_en>;
115};
116
117&pinctrl {
118 backlight {
119 bl_pwr_en: bl_pwr_en {
120 rockchip,pins = <2 12 RK_FUNC_GPIO &pcfg_pull_none>;
121 };
122 };
123
124 buck-5v {
125 drv_5v: drv-5v {
126 rockchip,pins = <7 21 RK_FUNC_GPIO &pcfg_pull_none>;
127 };
128 };
129
130 hdmi {
131 vcc50_hdmi_en: vcc50-hdmi-en {
132 rockchip,pins = <5 19 RK_FUNC_GPIO &pcfg_pull_none>;
133 };
134 };
135
136 lcd {
137 lcd_enable_h: lcd-en {
138 rockchip,pins = <7 14 RK_FUNC_GPIO &pcfg_pull_none>;
139 };
140
141 avdd_1v8_disp_en: avdd-1v8-disp-en {
142 rockchip,pins = <2 13 RK_FUNC_GPIO &pcfg_pull_none>;
143 };
144 };
145
146 pmic {
147 dvs_1: dvs-1 {
148 rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
149 };
150
151 dvs_2: dvs-2 {
152 rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
153 };
154 };
155};
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
new file mode 100644
index 000000000000..2fa7a0dc83f7
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -0,0 +1,563 @@
1/*
2 * Google Veyron (and derivatives) board device tree source
3 *
4 * Copyright 2015 Google, Inc
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45#include <dt-bindings/clock/rockchip,rk808.h>
46#include <dt-bindings/input/input.h>
47#include "rk3288.dtsi"
48
49/ {
50 memory {
51 device_type = "memory";
52 reg = <0x0 0x80000000>;
53 };
54
55 gpio_keys: gpio-keys {
56 compatible = "gpio-keys";
57 #address-cells = <1>;
58 #size-cells = <0>;
59
60 pinctrl-names = "default";
61 pinctrl-0 = <&pwr_key_l>;
62 power {
63 label = "Power";
64 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
65 linux,code = <KEY_POWER>;
66 debounce-interval = <100>;
67 gpio-key,wakeup;
68 };
69 };
70
71 gpio-restart {
72 compatible = "gpio-restart";
73 gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
74 pinctrl-names = "default";
75 pinctrl-0 = <&ap_warm_reset_h>;
76 priority = <200>;
77 };
78
79 emmc_pwrseq: emmc-pwrseq {
80 compatible = "mmc-pwrseq-emmc";
81 pinctrl-0 = <&emmc_reset>;
82 pinctrl-names = "default";
83 reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
84 };
85
86 io_domains: io-domains {
87 compatible = "rockchip,rk3288-io-voltage-domain";
88 rockchip,grf = <&grf>;
89
90 bb-supply = <&vcc33_io>;
91 dvp-supply = <&vcc_18>;
92 flash0-supply = <&vcc18_flashio>;
93 gpio1830-supply = <&vcc33_io>;
94 gpio30-supply = <&vcc33_io>;
95 lcdc-supply = <&vcc33_lcd>;
96 wifi-supply = <&vcc18_wl>;
97 };
98
99 sdio_pwrseq: sdio-pwrseq {
100 compatible = "mmc-pwrseq-simple";
101 clocks = <&rk808 RK808_CLKOUT1>;
102 clock-names = "ext_clock";
103 pinctrl-names = "default";
104 pinctrl-0 = <&bt_enable_l>, <&wifi_enable_h>;
105
106 /*
107 * On the module itself this is one of these (depending
108 * on the actual card populated):
109 * - SDIO_RESET_L_WL_REG_ON
110 * - PDN (power down when low)
111 */
112 reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
113 };
114
115 vcc_5v: vcc-5v {
116 compatible = "regulator-fixed";
117 regulator-name = "vcc_5v";
118 regulator-always-on;
119 regulator-boot-on;
120 regulator-min-microvolt = <5000000>;
121 regulator-max-microvolt = <5000000>;
122 };
123
124 vcc33_sys: vcc33-sys {
125 compatible = "regulator-fixed";
126 regulator-name = "vcc33_sys";
127 regulator-always-on;
128 regulator-boot-on;
129 regulator-min-microvolt = <3300000>;
130 regulator-max-microvolt = <3300000>;
131 };
132
133 vcc50_hdmi: vcc50-hdmi {
134 compatible = "regulator-fixed";
135 regulator-name = "vcc50_hdmi";
136 regulator-always-on;
137 regulator-boot-on;
138 vin-supply = <&vcc_5v>;
139 };
140};
141
142&cpu0 {
143 cpu0-supply = <&vdd_cpu>;
144};
145
146&emmc {
147 status = "okay";
148
149 broken-cd;
150 bus-width = <8>;
151 cap-mmc-highspeed;
152 disable-wp;
153 mmc-pwrseq = <&emmc_pwrseq>;
154 non-removable;
155 num-slots = <1>;
156 pinctrl-names = "default";
157 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
158};
159
160&hdmi {
161 status = "okay";
162};
163
164&i2c0 {
165 status = "okay";
166
167 clock-frequency = <400000>;
168 i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */
169 i2c-scl-rising-time-ns = <100>; /* 45ns measured */
170
171 rk808: pmic@1b {
172 compatible = "rockchip,rk808";
173 reg = <0x1b>;
174 clock-output-names = "xin32k", "wifibt_32kin";
175 interrupt-parent = <&gpio0>;
176 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
177 pinctrl-names = "default";
178 pinctrl-0 = <&pmic_int_l>;
179 rockchip,system-power-controller;
180 wakeup-source;
181 #clock-cells = <1>;
182
183 vcc1-supply = <&vcc33_sys>;
184 vcc2-supply = <&vcc33_sys>;
185 vcc3-supply = <&vcc33_sys>;
186 vcc4-supply = <&vcc33_sys>;
187 vcc6-supply = <&vcc_5v>;
188 vcc7-supply = <&vcc33_sys>;
189 vcc8-supply = <&vcc33_sys>;
190 vcc12-supply = <&vcc_18>;
191 vddio-supply = <&vcc33_io>;
192
193 regulators {
194 vdd_cpu: DCDC_REG1 {
195 regulator-name = "vdd_arm";
196 regulator-always-on;
197 regulator-boot-on;
198 regulator-min-microvolt = <750000>;
199 regulator-max-microvolt = <1450000>;
200 regulator-ramp-delay = <6001>;
201 regulator-state-mem {
202 regulator-off-in-suspend;
203 };
204 };
205
206 vdd_gpu: DCDC_REG2 {
207 regulator-name = "vdd_gpu";
208 regulator-always-on;
209 regulator-boot-on;
210 regulator-min-microvolt = <800000>;
211 regulator-max-microvolt = <1250000>;
212 regulator-ramp-delay = <6001>;
213 regulator-state-mem {
214 regulator-on-in-suspend;
215 regulator-suspend-microvolt = <1000000>;
216 };
217 };
218
219 vcc135_ddr: DCDC_REG3 {
220 regulator-name = "vcc135_ddr";
221 regulator-always-on;
222 regulator-boot-on;
223 regulator-state-mem {
224 regulator-on-in-suspend;
225 };
226 };
227
228 /*
229 * vcc_18 has several aliases. (vcc18_flashio and
230 * vcc18_wl). We'll add those aliases here just to
231 * make it easier to follow the schematic. The signals
232 * are actually hooked together and only separated for
233 * power measurement purposes).
234 */
235 vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 {
236 regulator-name = "vcc_18";
237 regulator-always-on;
238 regulator-boot-on;
239 regulator-min-microvolt = <1800000>;
240 regulator-max-microvolt = <1800000>;
241 regulator-state-mem {
242 regulator-on-in-suspend;
243 regulator-suspend-microvolt = <1800000>;
244 };
245 };
246
247 /*
248 * Note that both vcc33_io and vcc33_pmuio are always
249 * powered together. To simplify the logic in the dts
250 * we just refer to vcc33_io every time something is
251 * powered from vcc33_pmuio. In fact, on later boards
252 * (such as danger) they're the same net.
253 */
254 vcc33_io: LDO_REG1 {
255 regulator-name = "vcc33_io";
256 regulator-always-on;
257 regulator-boot-on;
258 regulator-min-microvolt = <3300000>;
259 regulator-max-microvolt = <3300000>;
260 regulator-state-mem {
261 regulator-on-in-suspend;
262 regulator-suspend-microvolt = <3300000>;
263 };
264 };
265
266 vdd_10: LDO_REG3 {
267 regulator-name = "vdd_10";
268 regulator-always-on;
269 regulator-boot-on;
270 regulator-min-microvolt = <1000000>;
271 regulator-max-microvolt = <1000000>;
272 regulator-state-mem {
273 regulator-on-in-suspend;
274 regulator-suspend-microvolt = <1000000>;
275 };
276 };
277
278 vdd10_lcd_pwren_h: LDO_REG7 {
279 regulator-name = "vdd10_lcd_pwren_h";
280 regulator-always-on;
281 regulator-boot-on;
282 regulator-min-microvolt = <2500000>;
283 regulator-max-microvolt = <2500000>;
284 regulator-state-mem {
285 regulator-off-in-suspend;
286 };
287 };
288
289 vcc33_lcd: SWITCH_REG1 {
290 regulator-name = "vcc33_lcd";
291 regulator-always-on;
292 regulator-boot-on;
293 regulator-state-mem {
294 regulator-off-in-suspend;
295 };
296 };
297 };
298 };
299};
300
301&i2c1 {
302 status = "okay";
303
304 clock-frequency = <400000>;
305 i2c-scl-falling-time-ns = <50>; /* 2.5ns measured */
306 i2c-scl-rising-time-ns = <100>; /* 40ns measured */
307
308 tpm: tpm@20 {
309 compatible = "infineon,slb9645tt";
310 reg = <0x20>;
311 powered-while-suspended;
312 };
313};
314
315&i2c2 {
316 status = "okay";
317
318 /* 100kHz since 4.7k resistors don't rise fast enough */
319 clock-frequency = <100000>;
320 i2c-scl-falling-time-ns = <50>; /* 10ns measured */
321 i2c-scl-rising-time-ns = <800>; /* 600ns measured */
322};
323
324&i2c4 {
325 status = "okay";
326
327 clock-frequency = <400000>;
328 i2c-scl-falling-time-ns = <50>; /* 11ns measured */
329 i2c-scl-rising-time-ns = <300>; /* 225ns measured */
330};
331
332&i2c5 {
333 status = "okay";
334
335 clock-frequency = <100000>;
336 i2c-scl-falling-time-ns = <300>;
337 i2c-scl-rising-time-ns = <1000>;
338};
339
340&pwm1 {
341 status = "okay";
342};
343
344&sdio0 {
345 status = "okay";
346
347 broken-cd;
348 bus-width = <4>;
349 cap-sd-highspeed;
350 cap-sdio-irq;
351 keep-power-in-suspend;
352 mmc-pwrseq = <&sdio_pwrseq>;
353 non-removable;
354 num-slots = <1>;
355 pinctrl-names = "default";
356 pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
357 vmmc-supply = <&vcc33_sys>;
358 vqmmc-supply = <&vcc18_wl>;
359};
360
361&spi2 {
362 status = "okay";
363
364 rx-sample-delay-ns = <12>;
365};
366
367&tsadc {
368 status = "okay";
369
370 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
371 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
372};
373
374&uart0 {
375 status = "okay";
376
377 /* We need to go faster than 24MHz, so adjust clock parents / rates */
378 assigned-clocks = <&cru SCLK_UART0>;
379 assigned-clock-rates = <48000000>;
380
381 /* Pins don't include flow control by default; add that in */
382 pinctrl-names = "default";
383 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
384};
385
386&uart1 {
387 status = "okay";
388};
389
390&uart2 {
391 status = "okay";
392};
393
394&usbphy {
395 status = "okay";
396};
397
398&usb_host0_ehci {
399 status = "okay";
400
401 needs-reset-on-resume;
402};
403
404&usb_host1 {
405 status = "okay";
406};
407
408&usb_otg {
409 status = "okay";
410
411 assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
412 assigned-clock-parents = <&cru SCLK_OTGPHY0>;
413 dr_mode = "host";
414};
415
416&vopb {
417 status = "okay";
418};
419
420&vopb_mmu {
421 status = "okay";
422};
423
424&wdt {
425 status = "okay";
426};
427
428&pinctrl {
429 pinctrl-names = "default", "sleep";
430 pinctrl-0 = <
431 /* Common for sleep and wake, but no owners */
432 &global_pwroff
433 >;
434 pinctrl-1 = <
435 /* Common for sleep and wake, but no owners */
436 &global_pwroff
437 >;
438
439 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
440 bias-disable;
441 drive-strength = <8>;
442 };
443
444 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
445 bias-pull-up;
446 drive-strength = <8>;
447 };
448
449 pcfg_output_high: pcfg-output-high {
450 output-high;
451 };
452
453 pcfg_output_low: pcfg-output-low {
454 output-low;
455 };
456
457 buttons {
458 pwr_key_l: pwr-key-l {
459 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
460 };
461 };
462
463 emmc {
464 emmc_reset: emmc-reset {
465 rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
466 };
467
468 /*
469 * We run eMMC at max speed; bump up drive strength.
470 * We also have external pulls, so disable the internal ones.
471 */
472 emmc_clk: emmc-clk {
473 rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
474 };
475
476 emmc_cmd: emmc-cmd {
477 rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
478 };
479
480 emmc_bus8: emmc-bus8 {
481 rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
482 <3 1 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
483 <3 2 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
484 <3 3 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
485 <3 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
486 <3 5 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
487 <3 6 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
488 <3 7 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
489 };
490 };
491
492 pmic {
493 pmic_int_l: pmic-int-l {
494 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
495 };
496 };
497
498 reboot {
499 ap_warm_reset_h: ap-warm-reset-h {
500 rockchip,pins = <RK_GPIO0 13 RK_FUNC_GPIO &pcfg_pull_none>;
501 };
502 };
503
504 recovery-switch {
505 rec_mode_l: rec-mode-l {
506 rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
507 };
508 };
509
510 sdio0 {
511 wifi_enable_h: wifienable-h {
512 rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
513 };
514
515 /* NOTE: mislabelled on schematic; should be bt_enable_h */
516 bt_enable_l: bt-enable-l {
517 rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_none>;
518 };
519
520 /*
521 * We run sdio0 at max speed; bump up drive strength.
522 * We also have external pulls, so disable the internal ones.
523 */
524 sdio0_bus4: sdio0-bus4 {
525 rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
526 <4 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
527 <4 22 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
528 <4 23 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
529 };
530
531 sdio0_cmd: sdio0-cmd {
532 rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
533 };
534
535 sdio0_clk: sdio0-clk {
536 rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
537 };
538 };
539
540 tpm {
541 tpm_int_h: tpm-int-h {
542 rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
543 };
544 };
545
546 /*
547 * On Marvell-based hardware this is a no-connect. Make sure we enable
548 * the pullup so that the line doesn't float. The pullup shouldn't
549 * hurt on Broadcom-based hardware since the other side is actively
550 * driving this signal. As proof: we've already got a pullup on RX.
551 */
552 uart0 {
553 uart0_cts: uart0-cts {
554 rockchip,pins = <4 18 RK_FUNC_1 &pcfg_pull_up>;
555 };
556 };
557
558 write-protect {
559 fw_wp_ap: fw-wp-ap {
560 rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;
561 };
562 };
563};
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 22316d00493e..906e938fb6bf 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -78,6 +78,7 @@
78 <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>, 78 <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>,
79 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>, 79 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
80 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 80 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
81 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
81 }; 82 };
82 83
83 cpus { 84 cpus {
@@ -110,19 +111,19 @@
110 clock-latency = <40000>; 111 clock-latency = <40000>;
111 clocks = <&cru ARMCLK>; 112 clocks = <&cru ARMCLK>;
112 }; 113 };
113 cpu@501 { 114 cpu1: cpu@501 {
114 device_type = "cpu"; 115 device_type = "cpu";
115 compatible = "arm,cortex-a12"; 116 compatible = "arm,cortex-a12";
116 reg = <0x501>; 117 reg = <0x501>;
117 resets = <&cru SRST_CORE1>; 118 resets = <&cru SRST_CORE1>;
118 }; 119 };
119 cpu@502 { 120 cpu2: cpu@502 {
120 device_type = "cpu"; 121 device_type = "cpu";
121 compatible = "arm,cortex-a12"; 122 compatible = "arm,cortex-a12";
122 reg = <0x502>; 123 reg = <0x502>;
123 resets = <&cru SRST_CORE2>; 124 resets = <&cru SRST_CORE2>;
124 }; 125 };
125 cpu@503 { 126 cpu3: cpu@503 {
126 device_type = "cpu"; 127 device_type = "cpu";
127 compatible = "arm,cortex-a12"; 128 compatible = "arm,cortex-a12";
128 reg = <0x503>; 129 reg = <0x503>;
@@ -168,6 +169,26 @@
168 }; 169 };
169 }; 170 };
170 171
172 reserved-memory {
173 #address-cells = <1>;
174 #size-cells = <1>;
175 ranges;
176
177 /*
178 * The rk3288 cannot use the memory area above 0xfe000000
179 * for dma operations for some reason. While there is
180 * probably a better solution available somewhere, we
181 * haven't found it yet and while devices with 2GB of ram
182 * are not affected, this issue prevents 4GB from booting.
183 * So to make these devices at least bootable, block
184 * this area for the time being until the real solution
185 * is found.
186 */
187 dma-unusable@fe000000 {
188 reg = <0xfe000000 0x1000000>;
189 };
190 };
191
171 xin24m: oscillator { 192 xin24m: oscillator {
172 compatible = "fixed-clock"; 193 compatible = "fixed-clock";
173 clock-frequency = <24000000>; 194 clock-frequency = <24000000>;
@@ -447,6 +468,8 @@
447 "mac_clk_rx", "mac_clk_tx", 468 "mac_clk_rx", "mac_clk_tx",
448 "clk_mac_ref", "clk_mac_refout", 469 "clk_mac_ref", "clk_mac_refout",
449 "aclk_mac", "pclk_mac"; 470 "aclk_mac", "pclk_mac";
471 resets = <&cru SRST_MAC>;
472 reset-names = "stmmaceth";
450 status = "disabled"; 473 status = "disabled";
451 }; 474 };
452 475
@@ -626,7 +649,7 @@
626 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt"; 649 compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
627 reg = <0xff800000 0x100>; 650 reg = <0xff800000 0x100>;
628 clocks = <&cru PCLK_WDT>; 651 clocks = <&cru PCLK_WDT>;
629 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; 652 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
630 status = "disabled"; 653 status = "disabled";
631 }; 654 };
632 655
diff --git a/arch/arm/boot/dts/rk3xxx.dtsi b/arch/arm/boot/dts/rk3xxx.dtsi
index a2ae9f32464d..4497d288a7cb 100644
--- a/arch/arm/boot/dts/rk3xxx.dtsi
+++ b/arch/arm/boot/dts/rk3xxx.dtsi
@@ -172,6 +172,13 @@
172 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 172 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
173 clocks = <&cru HCLK_OTG0>; 173 clocks = <&cru HCLK_OTG0>;
174 clock-names = "otg"; 174 clock-names = "otg";
175 dr_mode = "otg";
176 g-np-tx-fifo-size = <16>;
177 g-rx-fifo-size = <275>;
178 g-tx-fifo-size = <256 128 128 64 64 32>;
179 g-use-dma;
180 phys = <&usbphy0>;
181 phy-names = "usb2-phy";
175 status = "disabled"; 182 status = "disabled";
176 }; 183 };
177 184
@@ -181,6 +188,9 @@
181 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 188 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
182 clocks = <&cru HCLK_OTG1>; 189 clocks = <&cru HCLK_OTG1>;
183 clock-names = "otg"; 190 clock-names = "otg";
191 dr_mode = "host";
192 phys = <&usbphy1>;
193 phy-names = "usb2-phy";
184 status = "disabled"; 194 status = "disabled";
185 }; 195 };
186 196
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
new file mode 100644
index 000000000000..034cd48ae28b
--- /dev/null
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -0,0 +1,926 @@
1/*
2 * sama5d2.dtsi - Device Tree Include file for SAMA5D2 family SoC
3 *
4 * Copyright (C) 2015 Atmel,
5 * 2015 Ludovic Desroches <ludovic.desroches@atmel.com>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46#include "skeleton.dtsi"
47#include <dt-bindings/dma/at91.h>
48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/clock/at91.h>
50
51/ {
52 model = "Atmel SAMA5D2 family SoC";
53 compatible = "atmel,sama5d2";
54 interrupt-parent = <&aic>;
55
56 aliases {
57 serial0 = &uart1;
58 serial1 = &uart3;
59 tcb0 = &tcb0;
60 tcb1 = &tcb1;
61 };
62
63 cpus {
64 #address-cells = <1>;
65 #size-cells = <0>;
66
67 cpu@0 {
68 device_type = "cpu";
69 compatible = "arm,cortex-a5";
70 reg = <0>;
71 next-level-cache = <&L2>;
72 };
73 };
74
75 memory {
76 reg = <0x20000000 0x20000000>;
77 };
78
79 clocks {
80 slow_xtal: slow_xtal {
81 compatible = "fixed-clock";
82 #clock-cells = <0>;
83 clock-frequency = <0>;
84 };
85
86 main_xtal: main_xtal {
87 compatible = "fixed-clock";
88 #clock-cells = <0>;
89 clock-frequency = <0>;
90 };
91
92 adc_op_clk: adc_op_clk{
93 compatible = "fixed-clock";
94 #clock-cells = <0>;
95 clock-frequency = <1000000>;
96 };
97 };
98
99 ns_sram: sram@00200000 {
100 compatible = "mmio-sram";
101 reg = <0x00200000 0x20000>;
102 };
103
104 ahb {
105 compatible = "simple-bus";
106 #address-cells = <1>;
107 #size-cells = <1>;
108 ranges;
109
110 usb0: gadget@00300000 {
111 #address-cells = <1>;
112 #size-cells = <0>;
113 compatible = "atmel,sama5d3-udc";
114 reg = <0x00300000 0x100000
115 0xfc02c000 0x400>;
116 interrupts = <42 IRQ_TYPE_LEVEL_HIGH 2>;
117 clocks = <&udphs_clk>, <&utmi>;
118 clock-names = "pclk", "hclk";
119 status = "disabled";
120
121 ep0 {
122 reg = <0>;
123 atmel,fifo-size = <64>;
124 atmel,nb-banks = <1>;
125 };
126
127 ep1 {
128 reg = <1>;
129 atmel,fifo-size = <1024>;
130 atmel,nb-banks = <3>;
131 atmel,can-dma;
132 atmel,can-isoc;
133 };
134
135 ep2 {
136 reg = <2>;
137 atmel,fifo-size = <1024>;
138 atmel,nb-banks = <3>;
139 atmel,can-dma;
140 atmel,can-isoc;
141 };
142
143 ep3 {
144 reg = <3>;
145 atmel,fifo-size = <1024>;
146 atmel,nb-banks = <2>;
147 atmel,can-dma;
148 atmel,can-isoc;
149 };
150
151 ep4 {
152 reg = <4>;
153 atmel,fifo-size = <1024>;
154 atmel,nb-banks = <2>;
155 atmel,can-dma;
156 atmel,can-isoc;
157 };
158
159 ep5 {
160 reg = <5>;
161 atmel,fifo-size = <1024>;
162 atmel,nb-banks = <2>;
163 atmel,can-dma;
164 atmel,can-isoc;
165 };
166
167 ep6 {
168 reg = <6>;
169 atmel,fifo-size = <1024>;
170 atmel,nb-banks = <2>;
171 atmel,can-dma;
172 atmel,can-isoc;
173 };
174
175 ep7 {
176 reg = <7>;
177 atmel,fifo-size = <1024>;
178 atmel,nb-banks = <2>;
179 atmel,can-dma;
180 atmel,can-isoc;
181 };
182
183 ep8 {
184 reg = <8>;
185 atmel,fifo-size = <1024>;
186 atmel,nb-banks = <2>;
187 atmel,can-isoc;
188 };
189
190 ep9 {
191 reg = <9>;
192 atmel,fifo-size = <1024>;
193 atmel,nb-banks = <2>;
194 atmel,can-isoc;
195 };
196
197 ep10 {
198 reg = <10>;
199 atmel,fifo-size = <1024>;
200 atmel,nb-banks = <2>;
201 atmel,can-isoc;
202 };
203
204 ep11 {
205 reg = <11>;
206 atmel,fifo-size = <1024>;
207 atmel,nb-banks = <2>;
208 atmel,can-isoc;
209 };
210
211 ep12 {
212 reg = <12>;
213 atmel,fifo-size = <1024>;
214 atmel,nb-banks = <2>;
215 atmel,can-isoc;
216 };
217
218 ep13 {
219 reg = <13>;
220 atmel,fifo-size = <1024>;
221 atmel,nb-banks = <2>;
222 atmel,can-isoc;
223 };
224
225 ep14 {
226 reg = <14>;
227 atmel,fifo-size = <1024>;
228 atmel,nb-banks = <2>;
229 atmel,can-isoc;
230 };
231
232 ep15 {
233 reg = <15>;
234 atmel,fifo-size = <1024>;
235 atmel,nb-banks = <2>;
236 atmel,can-isoc;
237 };
238 };
239
240 usb1: ohci@00400000 {
241 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
242 reg = <0x00400000 0x100000>;
243 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
244 clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
245 clock-names = "ohci_clk", "hclk", "uhpck";
246 status = "disabled";
247 };
248
249 usb2: ehci@00500000 {
250 compatible = "atmel,at91sam9g45-ehci", "usb-ehci";
251 reg = <0x00500000 0x100000>;
252 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
253 clocks = <&utmi>, <&uhphs_clk>;
254 clock-names = "usb_clk", "ehci_clk";
255 status = "disabled";
256 };
257
258 L2: cache-controller@00a00000 {
259 compatible = "arm,pl310-cache";
260 reg = <0x00a00000 0x1000>;
261 interrupts = <63 IRQ_TYPE_LEVEL_HIGH 4>;
262 cache-unified;
263 cache-level = <2>;
264 };
265
266 apb {
267 compatible = "simple-bus";
268 #address-cells = <1>;
269 #size-cells = <1>;
270 ranges;
271
272 ramc0: ramc@f000c000 {
273 compatible = "atmel,sama5d3-ddramc";
274 reg = <0xf000c000 0x200>;
275 clocks = <&ddrck>, <&mpddr_clk>;
276 clock-names = "ddrck", "mpddr";
277 };
278
279 dma0: dma-controller@f0010000 {
280 compatible = "atmel,sama5d4-dma";
281 reg = <0xf0010000 0x1000>;
282 interrupts = <6 IRQ_TYPE_LEVEL_HIGH 0>;
283 #dma-cells = <1>;
284 clocks = <&dma0_clk>;
285 clock-names = "dma_clk";
286 };
287
288 pmc: pmc@f0014000 {
289 compatible = "atmel,sama5d2-pmc";
290 reg = <0xf0014000 0x160>;
291 interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
292 interrupt-controller;
293 #address-cells = <1>;
294 #size-cells = <0>;
295 #interrupt-cells = <1>;
296
297 main_rc_osc: main_rc_osc {
298 compatible = "atmel,at91sam9x5-clk-main-rc-osc";
299 #clock-cells = <0>;
300 interrupt-parent = <&pmc>;
301 interrupts = <AT91_PMC_MOSCRCS>;
302 clock-frequency = <12000000>;
303 clock-accuracy = <100000000>;
304 };
305
306 main_osc: main_osc {
307 compatible = "atmel,at91rm9200-clk-main-osc";
308 #clock-cells = <0>;
309 interrupt-parent = <&pmc>;
310 interrupts = <AT91_PMC_MOSCS>;
311 clocks = <&main_xtal>;
312 };
313
314 main: mainck {
315 compatible = "atmel,at91sam9x5-clk-main";
316 #clock-cells = <0>;
317 interrupt-parent = <&pmc>;
318 interrupts = <AT91_PMC_MOSCSELS>;
319 clocks = <&main_rc_osc &main_osc>;
320 };
321
322 plla: pllack {
323 compatible = "atmel,sama5d3-clk-pll";
324 #clock-cells = <0>;
325 interrupt-parent = <&pmc>;
326 interrupts = <AT91_PMC_LOCKA>;
327 clocks = <&main>;
328 reg = <0>;
329 atmel,clk-input-range = <12000000 12000000>;
330 #atmel,pll-clk-output-range-cells = <4>;
331 atmel,pll-clk-output-ranges = <600000000 1200000000 0 0>;
332 };
333
334 plladiv: plladivck {
335 compatible = "atmel,at91sam9x5-clk-plldiv";
336 #clock-cells = <0>;
337 clocks = <&plla>;
338 };
339
340 utmi: utmick {
341 compatible = "atmel,at91sam9x5-clk-utmi";
342 #clock-cells = <0>;
343 interrupt-parent = <&pmc>;
344 interrupts = <AT91_PMC_LOCKU>;
345 clocks = <&main>;
346 };
347
348 mck: masterck {
349 compatible = "atmel,at91sam9x5-clk-master";
350 #clock-cells = <0>;
351 interrupt-parent = <&pmc>;
352 interrupts = <AT91_PMC_MCKRDY>;
353 clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>;
354 atmel,clk-output-range = <124000000 166000000>;
355 atmel,clk-divisors = <1 2 4 3>;
356 };
357
358 h32ck: h32mxck {
359 #clock-cells = <0>;
360 compatible = "atmel,sama5d4-clk-h32mx";
361 clocks = <&mck>;
362 };
363
364 usb: usbck {
365 compatible = "atmel,at91sam9x5-clk-usb";
366 #clock-cells = <0>;
367 clocks = <&plladiv>, <&utmi>;
368 };
369
370 prog: progck {
371 compatible = "atmel,at91sam9x5-clk-programmable";
372 #address-cells = <1>;
373 #size-cells = <0>;
374 interrupt-parent = <&pmc>;
375 clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
376
377 prog0: prog0 {
378 #clock-cells = <0>;
379 reg = <0>;
380 interrupts = <AT91_PMC_PCKRDY(0)>;
381 };
382
383 prog1: prog1 {
384 #clock-cells = <0>;
385 reg = <1>;
386 interrupts = <AT91_PMC_PCKRDY(1)>;
387 };
388
389 prog2: prog2 {
390 #clock-cells = <0>;
391 reg = <2>;
392 interrupts = <AT91_PMC_PCKRDY(2)>;
393 };
394 };
395
396 systemck {
397 compatible = "atmel,at91rm9200-clk-system";
398 #address-cells = <1>;
399 #size-cells = <0>;
400
401 ddrck: ddrck {
402 #clock-cells = <0>;
403 reg = <2>;
404 clocks = <&mck>;
405 };
406
407 lcdck: lcdck {
408 #clock-cells = <0>;
409 reg = <3>;
410 clocks = <&mck>;
411 };
412
413 uhpck: uhpck {
414 #clock-cells = <0>;
415 reg = <6>;
416 clocks = <&usb>;
417 };
418
419 udpck: udpck {
420 #clock-cells = <0>;
421 reg = <7>;
422 clocks = <&usb>;
423 };
424
425 pck0: pck0 {
426 #clock-cells = <0>;
427 reg = <8>;
428 clocks = <&prog0>;
429 };
430
431 pck1: pck1 {
432 #clock-cells = <0>;
433 reg = <9>;
434 clocks = <&prog1>;
435 };
436
437 pck2: pck2 {
438 #clock-cells = <0>;
439 reg = <10>;
440 clocks = <&prog2>;
441 };
442
443 iscck: iscck {
444 #clock-cells = <0>;
445 reg = <18>;
446 clocks = <&mck>;
447 };
448 };
449
450 periph32ck {
451 compatible = "atmel,at91sam9x5-clk-peripheral";
452 #address-cells = <1>;
453 #size-cells = <0>;
454 clocks = <&h32ck>;
455
456 macb0_clk: macb0_clk {
457 #clock-cells = <0>;
458 reg = <5>;
459 atmel,clk-output-range = <0 83000000>;
460 };
461
462 tdes_clk: tdes_clk {
463 #clock-cells = <0>;
464 reg = <11>;
465 atmel,clk-output-range = <0 83000000>;
466 };
467
468 matrix1_clk: matrix1_clk {
469 #clock-cells = <0>;
470 reg = <14>;
471 };
472
473 hsmc_clk: hsmc_clk {
474 #clock-cells = <0>;
475 reg = <17>;
476 };
477
478 pioA_clk: pioA_clk {
479 #clock-cells = <0>;
480 reg = <18>;
481 atmel,clk-output-range = <0 83000000>;
482 };
483
484 flx0_clk: flx0_clk {
485 #clock-cells = <0>;
486 reg = <19>;
487 atmel,clk-output-range = <0 83000000>;
488 };
489
490 flx1_clk: flx1_clk {
491 #clock-cells = <0>;
492 reg = <20>;
493 atmel,clk-output-range = <0 83000000>;
494 };
495
496 flx2_clk: flx2_clk {
497 #clock-cells = <0>;
498 reg = <21>;
499 atmel,clk-output-range = <0 83000000>;
500 };
501
502 flx3_clk: flx3_clk {
503 #clock-cells = <0>;
504 reg = <22>;
505 atmel,clk-output-range = <0 83000000>;
506 };
507
508 flx4_clk: flx4_clk {
509 #clock-cells = <0>;
510 reg = <23>;
511 atmel,clk-output-range = <0 83000000>;
512 };
513
514 uart0_clk: uart0_clk {
515 #clock-cells = <0>;
516 reg = <24>;
517 atmel,clk-output-range = <0 83000000>;
518 };
519
520 uart1_clk: uart1_clk {
521 #clock-cells = <0>;
522 reg = <25>;
523 atmel,clk-output-range = <0 83000000>;
524 };
525
526 uart2_clk: uart2_clk {
527 #clock-cells = <0>;
528 reg = <26>;
529 atmel,clk-output-range = <0 83000000>;
530 };
531
532 uart3_clk: uart3_clk {
533 #clock-cells = <0>;
534 reg = <27>;
535 atmel,clk-output-range = <0 83000000>;
536 };
537
538 uart4_clk: uart4_clk {
539 #clock-cells = <0>;
540 reg = <28>;
541 atmel,clk-output-range = <0 83000000>;
542 };
543
544 twi0_clk: twi0_clk {
545 reg = <29>;
546 #clock-cells = <0>;
547 atmel,clk-output-range = <0 83000000>;
548 };
549
550 twi1_clk: twi1_clk {
551 #clock-cells = <0>;
552 reg = <30>;
553 atmel,clk-output-range = <0 83000000>;
554 };
555
556 spi0_clk: spi0_clk {
557 #clock-cells = <0>;
558 reg = <33>;
559 atmel,clk-output-range = <0 83000000>;
560 };
561
562 spi1_clk: spi1_clk {
563 #clock-cells = <0>;
564 reg = <34>;
565 atmel,clk-output-range = <0 83000000>;
566 };
567
568 tcb0_clk: tcb0_clk {
569 #clock-cells = <0>;
570 reg = <35>;
571 atmel,clk-output-range = <0 83000000>;
572 };
573
574 tcb1_clk: tcb1_clk {
575 #clock-cells = <0>;
576 reg = <36>;
577 atmel,clk-output-range = <0 83000000>;
578 };
579
580 pwm_clk: pwm_clk {
581 #clock-cells = <0>;
582 reg = <38>;
583 atmel,clk-output-range = <0 83000000>;
584 };
585
586 adc_clk: adc_clk {
587 #clock-cells = <0>;
588 reg = <40>;
589 atmel,clk-output-range = <0 83000000>;
590 };
591
592 uhphs_clk: uhphs_clk {
593 #clock-cells = <0>;
594 reg = <41>;
595 atmel,clk-output-range = <0 83000000>;
596 };
597
598 udphs_clk: udphs_clk {
599 #clock-cells = <0>;
600 reg = <42>;
601 atmel,clk-output-range = <0 83000000>;
602 };
603
604 ssc0_clk: ssc0_clk {
605 #clock-cells = <0>;
606 reg = <43>;
607 atmel,clk-output-range = <0 83000000>;
608 };
609
610 ssc1_clk: ssc1_clk {
611 #clock-cells = <0>;
612 reg = <44>;
613 atmel,clk-output-range = <0 83000000>;
614 };
615
616 trng_clk: trng_clk {
617 #clock-cells = <0>;
618 reg = <47>;
619 atmel,clk-output-range = <0 83000000>;
620 };
621
622 classd_clk: classd_clk {
623 #clock-cells = <0>;
624 reg = <59>;
625 atmel,clk-output-range = <0 83000000>;
626 };
627 };
628
629 periph64ck {
630 compatible = "atmel,at91sam9x5-clk-peripheral";
631 #address-cells = <1>;
632 #size-cells = <0>;
633 clocks = <&mck>;
634
635 dma0_clk: dma0_clk {
636 #clock-cells = <0>;
637 reg = <6>;
638 };
639
640 dma1_clk: dma1_clk {
641 #clock-cells = <0>;
642 reg = <7>;
643 };
644
645 aes_clk: aes_clk {
646 #clock-cells = <0>;
647 reg = <9>;
648 };
649
650 aesb_clk: aesb_clk {
651 #clock-cells = <0>;
652 reg = <10>;
653 };
654
655 sha_clk: sha_clk {
656 #clock-cells = <0>;
657 reg = <12>;
658 };
659
660 mpddr_clk: mpddr_clk {
661 #clock-cells = <0>;
662 reg = <13>;
663 };
664
665 matrix0_clk: matrix0_clk {
666 #clock-cells = <0>;
667 reg = <15>;
668 };
669
670 sdmmc0_hclk: sdmmc0_hclk {
671 #clock-cells = <0>;
672 reg = <31>;
673 };
674
675 sdmmc1_hclk: sdmmc1_hclk {
676 #clock-cells = <0>;
677 reg = <32>;
678 };
679
680 lcdc_clk: lcdc_clk {
681 #clock-cells = <0>;
682 reg = <45>;
683 };
684
685 isc_clk: isc_clk {
686 #clock-cells = <0>;
687 reg = <46>;
688 };
689
690 qspi0_clk: qspi0_clk {
691 #clock-cells = <0>;
692 reg = <52>;
693 };
694
695 qspi1_clk: qspi1_clk {
696 #clock-cells = <0>;
697 reg = <53>;
698 };
699 };
700 };
701
702 sha@f0028000 {
703 compatible = "atmel,at91sam9g46-sha";
704 reg = <0xf0028000 0x100>;
705 interrupts = <12 IRQ_TYPE_LEVEL_HIGH 0>;
706 dmas = <&dma0
707 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
708 AT91_XDMAC_DT_PERID(30))>;
709 dma-names = "tx";
710 clocks = <&sha_clk>;
711 clock-names = "sha_clk";
712 status = "disabled";
713 };
714
715 aes@f002c000 {
716 compatible = "atmel,at91sam9g46-aes";
717 reg = <0xf002c000 0x100>;
718 interrupts = <9 IRQ_TYPE_LEVEL_HIGH 0>;
719 dmas = <&dma0
720 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
721 AT91_XDMAC_DT_PERID(26))>,
722 <&dma0
723 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
724 AT91_XDMAC_DT_PERID(27))>;
725 dma-names = "tx", "rx";
726 clocks = <&aes_clk>;
727 clock-names = "aes_clk";
728 status = "disabled";
729 };
730
731 spi0: spi@f8000000 {
732 compatible = "atmel,at91rm9200-spi";
733 reg = <0xf8000000 0x100>;
734 interrupts = <33 IRQ_TYPE_LEVEL_HIGH 7>;
735 dmas = <&dma0
736 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
737 AT91_XDMAC_DT_PERID(6))>,
738 <&dma0
739 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
740 AT91_XDMAC_DT_PERID(7))>;
741 dma-names = "tx", "rx";
742 clocks = <&spi0_clk>;
743 clock-names = "spi_clk";
744 atmel,fifo-size = <16>;
745 #address-cells = <1>;
746 #size-cells = <0>;
747 status = "disabled";
748 };
749
750 macb0: ethernet@f8008000 {
751 compatible = "atmel,sama5d2-gem";
752 reg = <0xf8008000 0x1000>;
753 interrupts = <5 IRQ_TYPE_LEVEL_HIGH 3 /* Queue 0 */
754 66 IRQ_TYPE_LEVEL_HIGH 3 /* Queue 1 */
755 67 IRQ_TYPE_LEVEL_HIGH 3>; /* Queue 2 */
756 #address-cells = <1>;
757 #size-cells = <0>;
758 clocks = <&macb0_clk>, <&macb0_clk>;
759 clock-names = "hclk", "pclk";
760 status = "disabled";
761 };
762
763 tcb0: timer@f800c000 {
764 compatible = "atmel,at91sam9x5-tcb";
765 reg = <0xf800c000 0x100>;
766 interrupts = <35 IRQ_TYPE_LEVEL_HIGH 0>;
767 clocks = <&tcb0_clk>, <&clk32k>;
768 clock-names = "t0_clk", "slow_clk";
769 };
770
771 tcb1: timer@f8010000 {
772 compatible = "atmel,at91sam9x5-tcb";
773 reg = <0xf8010000 0x100>;
774 interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
775 clocks = <&tcb1_clk>, <&clk32k>;
776 clock-names = "t0_clk", "slow_clk";
777 };
778
779 uart0: serial@f801c000 {
780 compatible = "atmel,at91sam9260-usart";
781 reg = <0xf801c000 0x100>;
782 interrupts = <24 IRQ_TYPE_LEVEL_HIGH 7>;
783 clocks = <&uart0_clk>;
784 clock-names = "usart";
785 status = "disabled";
786 };
787
788 uart1: serial@f8020000 {
789 compatible = "atmel,at91sam9260-usart";
790 reg = <0xf8020000 0x100>;
791 interrupts = <25 IRQ_TYPE_LEVEL_HIGH 7>;
792 clocks = <&uart1_clk>;
793 clock-names = "usart";
794 status = "disabled";
795 };
796
797 uart2: serial@f8024000 {
798 compatible = "atmel,at91sam9260-usart";
799 reg = <0xf8024000 0x100>;
800 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 7>;
801 clocks = <&uart2_clk>;
802 clock-names = "usart";
803 status = "disabled";
804 };
805
806 i2c0: i2c@f8028000 {
807 compatible = "atmel,sama5d2-i2c";
808 reg = <0xf8028000 0x100>;
809 interrupts = <29 IRQ_TYPE_LEVEL_HIGH 7>;
810 dmas = <&dma0
811 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
812 AT91_XDMAC_DT_PERID(0))>,
813 <&dma0
814 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
815 AT91_XDMAC_DT_PERID(1))>;
816 dma-names = "tx", "rx";
817 #address-cells = <1>;
818 #size-cells = <0>;
819 clocks = <&twi0_clk>;
820 status = "disabled";
821 };
822
823 pit: timer@f8048030 {
824 compatible = "atmel,at91sam9260-pit";
825 reg = <0xf8048030 0x10>;
826 interrupts = <3 IRQ_TYPE_LEVEL_HIGH 5>;
827 clocks = <&h32ck>;
828 };
829
830 sckc@f8048050 {
831 compatible = "atmel,at91sam9x5-sckc";
832 reg = <0xf8048050 0x4>;
833
834 slow_rc_osc: slow_rc_osc {
835 compatible = "atmel,at91sam9x5-clk-slow-rc-osc";
836 #clock-cells = <0>;
837 clock-frequency = <32768>;
838 clock-accuracy = <250000000>;
839 atmel,startup-time-usec = <75>;
840 };
841
842 slow_osc: slow_osc {
843 compatible = "atmel,at91sam9x5-clk-slow-osc";
844 #clock-cells = <0>;
845 clocks = <&slow_xtal>;
846 atmel,startup-time-usec = <1200000>;
847 };
848
849 clk32k: slowck {
850 compatible = "atmel,at91sam9x5-clk-slow";
851 #clock-cells = <0>;
852 clocks = <&slow_rc_osc &slow_osc>;
853 };
854 };
855
856 rtc@f80480b0 {
857 compatible = "atmel,at91rm9200-rtc";
858 reg = <0xf80480b0 0x30>;
859 interrupts = <74 IRQ_TYPE_LEVEL_HIGH 7>;
860 clocks = <&clk32k>;
861 };
862
863 spi1: spi@fc000000 {
864 compatible = "atmel,at91rm9200-spi";
865 reg = <0xfc000000 0x100>;
866 interrupts = <34 IRQ_TYPE_LEVEL_HIGH 7>;
867 dmas = <&dma0
868 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
869 AT91_XDMAC_DT_PERID(8))>,
870 <&dma0
871 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
872 AT91_XDMAC_DT_PERID(9))>;
873 dma-names = "tx", "rx";
874 clocks = <&spi1_clk>;
875 clock-names = "spi_clk";
876 atmel,fifo-size = <16>;
877 #address-cells = <1>;
878 #size-cells = <0>;
879 status = "disabled";
880 };
881
882 uart3: serial@fc008000 {
883 compatible = "atmel,at91sam9260-usart";
884 reg = <0xfc008000 0x100>;
885 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 7>;
886 clocks = <&uart3_clk>;
887 clock-names = "usart";
888 status = "disabled";
889 };
890
891 uart4: serial@fc00c000 {
892 compatible = "atmel,at91sam9260-usart";
893 reg = <0xfc00c000 0x100>;
894 interrupts = <28 IRQ_TYPE_LEVEL_HIGH 7>;
895 clocks = <&uart4_clk>;
896 clock-names = "usart";
897 status = "disabled";
898 };
899
900 aic: interrupt-controller@fc020000 {
901 #interrupt-cells = <3>;
902 compatible = "atmel,sama5d2-aic";
903 interrupt-controller;
904 reg = <0xfc020000 0x200>;
905 atmel,external-irqs = <49>;
906 };
907
908 i2c1: i2c@fc028000 {
909 compatible = "atmel,sama5d2-i2c";
910 reg = <0xfc028000 0x100>;
911 interrupts = <30 IRQ_TYPE_LEVEL_HIGH 7>;
912 dmas = <&dma0
913 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
914 AT91_XDMAC_DT_PERID(2))>,
915 <&dma0
916 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
917 AT91_XDMAC_DT_PERID(3))>;
918 dma-names = "tx", "rx";
919 #address-cells = <1>;
920 #size-cells = <0>;
921 clocks = <&twi1_clk>;
922 status = "disabled";
923 };
924 };
925 };
926};
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 9e2444b07bce..7fa276515f11 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -145,8 +145,8 @@
145 compatible = "atmel,at91sam9x5-tcb"; 145 compatible = "atmel,at91sam9x5-tcb";
146 reg = <0xf0010000 0x100>; 146 reg = <0xf0010000 0x100>;
147 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>; 147 interrupts = <26 IRQ_TYPE_LEVEL_HIGH 0>;
148 clocks = <&tcb0_clk>; 148 clocks = <&tcb0_clk>, <&clk32k>;
149 clock-names = "t0_clk"; 149 clock-names = "t0_clk", "slow_clk";
150 }; 150 };
151 151
152 i2c0: i2c@f0014000 { 152 i2c0: i2c@f0014000 {
@@ -1259,13 +1259,15 @@
1259 }; 1259 };
1260 1260
1261 rstc@fffffe00 { 1261 rstc@fffffe00 {
1262 compatible = "atmel,at91sam9g45-rstc"; 1262 compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
1263 reg = <0xfffffe00 0x10>; 1263 reg = <0xfffffe00 0x10>;
1264 clocks = <&clk32k>;
1264 }; 1265 };
1265 1266
1266 shutdown-controller@fffffe10 { 1267 shutdown-controller@fffffe10 {
1267 compatible = "atmel,at91sam9x5-shdwc"; 1268 compatible = "atmel,at91sam9x5-shdwc";
1268 reg = <0xfffffe10 0x10>; 1269 reg = <0xfffffe10 0x10>;
1270 clocks = <&clk32k>;
1269 }; 1271 };
1270 1272
1271 pit: timer@fffffe30 { 1273 pit: timer@fffffe30 {
@@ -1279,6 +1281,7 @@
1279 compatible = "atmel,at91sam9260-wdt"; 1281 compatible = "atmel,at91sam9260-wdt";
1280 reg = <0xfffffe40 0x10>; 1282 reg = <0xfffffe40 0x10>;
1281 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>; 1283 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>;
1284 clocks = <&clk32k>;
1282 atmel,watchdog-type = "hardware"; 1285 atmel,watchdog-type = "hardware";
1283 atmel,reset-type = "all"; 1286 atmel,reset-type = "all";
1284 atmel,dbg-halt; 1287 atmel,dbg-halt;
@@ -1315,6 +1318,7 @@
1315 compatible = "atmel,at91rm9200-rtc"; 1318 compatible = "atmel,at91rm9200-rtc";
1316 reg = <0xfffffeb0 0x30>; 1319 reg = <0xfffffeb0 0x30>;
1317 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1320 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1321 clocks = <&clk32k>;
1318 }; 1322 };
1319 }; 1323 };
1320 1324
diff --git a/arch/arm/boot/dts/sama5d3_tcb1.dtsi b/arch/arm/boot/dts/sama5d3_tcb1.dtsi
index f7fa58fe09f1..801f9745e82f 100644
--- a/arch/arm/boot/dts/sama5d3_tcb1.dtsi
+++ b/arch/arm/boot/dts/sama5d3_tcb1.dtsi
@@ -31,8 +31,8 @@
31 compatible = "atmel,at91sam9x5-tcb"; 31 compatible = "atmel,at91sam9x5-tcb";
32 reg = <0xf8014000 0x100>; 32 reg = <0xf8014000 0x100>;
33 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>; 33 interrupts = <27 IRQ_TYPE_LEVEL_HIGH 0>;
34 clocks = <&tcb1_clk>; 34 clocks = <&tcb1_clk>, <&clk32k>;
35 clock-names = "t0_clk"; 35 clock-names = "t0_clk", "slow_clk";
36 }; 36 };
37 }; 37 };
38 }; 38 };
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 3ee22ee13c5a..8d1de29e8da1 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -957,8 +957,8 @@
957 compatible = "atmel,at91sam9x5-tcb"; 957 compatible = "atmel,at91sam9x5-tcb";
958 reg = <0xf801c000 0x100>; 958 reg = <0xf801c000 0x100>;
959 interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>; 959 interrupts = <40 IRQ_TYPE_LEVEL_HIGH 0>;
960 clocks = <&tcb0_clk>; 960 clocks = <&tcb0_clk>, <&clk32k>;
961 clock-names = "t0_clk"; 961 clock-names = "t0_clk", "slow_clk";
962 }; 962 };
963 963
964 macb0: ethernet@f8020000 { 964 macb0: ethernet@f8020000 {
@@ -1185,29 +1185,20 @@
1185 compatible = "atmel,at91sam9x5-tcb"; 1185 compatible = "atmel,at91sam9x5-tcb";
1186 reg = <0xfc020000 0x100>; 1186 reg = <0xfc020000 0x100>;
1187 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>; 1187 interrupts = <41 IRQ_TYPE_LEVEL_HIGH 0>;
1188 clocks = <&tcb1_clk>; 1188 clocks = <&tcb1_clk>, <&clk32k>;
1189 clock-names = "t0_clk"; 1189 clock-names = "t0_clk", "slow_clk";
1190 }; 1190 };
1191 1191
1192 adc0: adc@fc034000 { 1192 adc0: adc@fc034000 {
1193 compatible = "atmel,at91sam9x5-adc"; 1193 compatible = "atmel,at91sam9x5-adc";
1194 reg = <0xfc034000 0x100>; 1194 reg = <0xfc034000 0x100>;
1195 interrupts = <44 IRQ_TYPE_LEVEL_HIGH 5>; 1195 interrupts = <44 IRQ_TYPE_LEVEL_HIGH 5>;
1196 pinctrl-names = "default";
1197 pinctrl-0 = <
1198 /* external trigger is conflict with USBA_VBUS */
1199 &pinctrl_adc0_ad0
1200 &pinctrl_adc0_ad1
1201 &pinctrl_adc0_ad2
1202 &pinctrl_adc0_ad3
1203 &pinctrl_adc0_ad4
1204 >;
1205 clocks = <&adc_clk>, 1196 clocks = <&adc_clk>,
1206 <&adc_op_clk>; 1197 <&adc_op_clk>;
1207 clock-names = "adc_clk", "adc_op_clk"; 1198 clock-names = "adc_clk", "adc_op_clk";
1208 atmel,adc-channels-used = <0x01f>; 1199 atmel,adc-channels-used = <0x01f>;
1209 atmel,adc-startup-time = <40>; 1200 atmel,adc-startup-time = <40>;
1210 atmel,adc-use-external; 1201 atmel,adc-use-external-triggers;
1211 atmel,adc-vref = <3000>; 1202 atmel,adc-vref = <3000>;
1212 atmel,adc-res = <8 10>; 1203 atmel,adc-res = <8 10>;
1213 atmel,adc-sample-hold-time = <11>; 1204 atmel,adc-sample-hold-time = <11>;
@@ -1277,13 +1268,15 @@
1277 }; 1268 };
1278 1269
1279 rstc@fc068600 { 1270 rstc@fc068600 {
1280 compatible = "atmel,at91sam9g45-rstc"; 1271 compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
1281 reg = <0xfc068600 0x10>; 1272 reg = <0xfc068600 0x10>;
1273 clocks = <&clk32k>;
1282 }; 1274 };
1283 1275
1284 shdwc@fc068610 { 1276 shdwc@fc068610 {
1285 compatible = "atmel,at91sam9x5-shdwc"; 1277 compatible = "atmel,at91sam9x5-shdwc";
1286 reg = <0xfc068610 0x10>; 1278 reg = <0xfc068610 0x10>;
1279 clocks = <&clk32k>;
1287 }; 1280 };
1288 1281
1289 pit: timer@fc068630 { 1282 pit: timer@fc068630 {
@@ -1296,6 +1289,7 @@
1296 watchdog@fc068640 { 1289 watchdog@fc068640 {
1297 compatible = "atmel,at91sam9260-wdt"; 1290 compatible = "atmel,at91sam9260-wdt";
1298 reg = <0xfc068640 0x10>; 1291 reg = <0xfc068640 0x10>;
1292 clocks = <&clk32k>;
1299 status = "disabled"; 1293 status = "disabled";
1300 }; 1294 };
1301 1295
@@ -1329,6 +1323,7 @@
1329 compatible = "atmel,at91rm9200-rtc"; 1323 compatible = "atmel,at91rm9200-rtc";
1330 reg = <0xfc0686b0 0x30>; 1324 reg = <0xfc0686b0 0x30>;
1331 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 1325 interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>;
1326 clocks = <&clk32k>;
1332 }; 1327 };
1333 1328
1334 dbgu: serial@fc069000 { 1329 dbgu: serial@fc069000 {
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index 11e17c5f26e2..ff7c8f298f30 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -392,6 +392,9 @@
392 <0xe605801c 0x1c>; 392 <0xe605801c 0x1c>;
393 gpio-controller; 393 gpio-controller;
394 #gpio-cells = <2>; 394 #gpio-cells = <2>;
395 gpio-ranges =
396 <&pfc 0 0 119>, <&pfc 128 128 37>, <&pfc 192 192 91>,
397 <&pfc 288 288 22>;
395 interrupts-extended = 398 interrupts-extended =
396 <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>, 399 <&irqpin0 0 0>, <&irqpin0 1 0>, <&irqpin0 2 0>, <&irqpin0 3 0>,
397 <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>, 400 <&irqpin0 4 0>, <&irqpin0 5 0>, <&irqpin0 6 0>, <&irqpin0 7 0>,
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index 80f924deed37..314e589cfa00 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -164,7 +164,7 @@
164 dbg_base_clk: dbg_base_clk { 164 dbg_base_clk: dbg_base_clk {
165 #clock-cells = <0>; 165 #clock-cells = <0>;
166 compatible = "altr,socfpga-perip-clk"; 166 compatible = "altr,socfpga-perip-clk";
167 clocks = <&main_pll>; 167 clocks = <&main_pll>, <&osc1>;
168 div-reg = <0xe8 0 9>; 168 div-reg = <0xe8 0 9>;
169 reg = <0x50>; 169 reg = <0x50>;
170 }; 170 };
@@ -318,7 +318,7 @@
318 l3_sp_clk: l3_sp_clk { 318 l3_sp_clk: l3_sp_clk {
319 #clock-cells = <0>; 319 #clock-cells = <0>;
320 compatible = "altr,socfpga-gate-clk"; 320 compatible = "altr,socfpga-gate-clk";
321 clocks = <&mainclk>; 321 clocks = <&l3_mp_clk>;
322 div-reg = <0x64 2 2>; 322 div-reg = <0x64 2 2>;
323 }; 323 };
324 324
@@ -349,7 +349,7 @@
349 dbg_clk: dbg_clk { 349 dbg_clk: dbg_clk {
350 #clock-cells = <0>; 350 #clock-cells = <0>;
351 compatible = "altr,socfpga-gate-clk"; 351 compatible = "altr,socfpga-gate-clk";
352 clocks = <&dbg_base_clk>; 352 clocks = <&dbg_at_clk>;
353 div-reg = <0x68 2 2>; 353 div-reg = <0x68 2 2>;
354 clk-gate = <0x60 5>; 354 clk-gate = <0x60 5>;
355 }; 355 };
@@ -481,8 +481,37 @@
481 clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>; 481 clocks = <&f2s_periph_ref_clk>, <&main_qspi_clk>, <&per_qspi_clk>;
482 clk-gate = <0xa0 11>; 482 clk-gate = <0xa0 11>;
483 }; 483 };
484
485 ddr_dqs_clk_gate: ddr_dqs_clk_gate {
486 #clock-cells = <0>;
487 compatible = "altr,socfpga-gate-clk";
488 clocks = <&ddr_dqs_clk>;
489 clk-gate = <0xd8 0>;
490 };
491
492 ddr_2x_dqs_clk_gate: ddr_2x_dqs_clk_gate {
493 #clock-cells = <0>;
494 compatible = "altr,socfpga-gate-clk";
495 clocks = <&ddr_2x_dqs_clk>;
496 clk-gate = <0xd8 1>;
497 };
498
499 ddr_dq_clk_gate: ddr_dq_clk_gate {
500 #clock-cells = <0>;
501 compatible = "altr,socfpga-gate-clk";
502 clocks = <&ddr_dq_clk>;
503 clk-gate = <0xd8 2>;
504 };
505
506 h2f_user2_clk: h2f_user2_clk {
507 #clock-cells = <0>;
508 compatible = "altr,socfpga-gate-clk";
509 clocks = <&h2f_usr2_clk>;
510 clk-gate = <0xd8 3>;
511 };
512
484 }; 513 };
485 }; 514 };
486 515
487 gmac0: ethernet@ff700000 { 516 gmac0: ethernet@ff700000 {
488 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac"; 517 compatible = "altr,socfpga-stmmac", "snps,dwmac-3.70a", "snps,dwmac";
@@ -565,7 +594,7 @@
565 #size-cells = <0>; 594 #size-cells = <0>;
566 compatible = "snps,dw-apb-gpio"; 595 compatible = "snps,dw-apb-gpio";
567 reg = <0xff708000 0x1000>; 596 reg = <0xff708000 0x1000>;
568 clocks = <&per_base_clk>; 597 clocks = <&l4_mp_clk>;
569 status = "disabled"; 598 status = "disabled";
570 599
571 porta: gpio-controller@0 { 600 porta: gpio-controller@0 {
@@ -585,7 +614,7 @@
585 #size-cells = <0>; 614 #size-cells = <0>;
586 compatible = "snps,dw-apb-gpio"; 615 compatible = "snps,dw-apb-gpio";
587 reg = <0xff709000 0x1000>; 616 reg = <0xff709000 0x1000>;
588 clocks = <&per_base_clk>; 617 clocks = <&l4_mp_clk>;
589 status = "disabled"; 618 status = "disabled";
590 619
591 portb: gpio-controller@0 { 620 portb: gpio-controller@0 {
@@ -605,7 +634,7 @@
605 #size-cells = <0>; 634 #size-cells = <0>;
606 compatible = "snps,dw-apb-gpio"; 635 compatible = "snps,dw-apb-gpio";
607 reg = <0xff70a000 0x1000>; 636 reg = <0xff70a000 0x1000>;
608 clocks = <&per_base_clk>; 637 clocks = <&l4_mp_clk>;
609 status = "disabled"; 638 status = "disabled";
610 639
611 portc: gpio-controller@0 { 640 portc: gpio-controller@0 {
@@ -639,6 +668,8 @@
639 cache-level = <2>; 668 cache-level = <2>;
640 arm,tag-latency = <1 1 1>; 669 arm,tag-latency = <1 1 1>;
641 arm,data-latency = <2 1 1>; 670 arm,data-latency = <2 1 1>;
671 prefetch-data = <1>;
672 prefetch-instr = <1>;
642 }; 673 };
643 674
644 mmc: dwmmc0@ff704000 { 675 mmc: dwmmc0@ff704000 {
@@ -752,6 +783,7 @@
752 #reset-cells = <1>; 783 #reset-cells = <1>;
753 compatible = "altr,rst-mgr"; 784 compatible = "altr,rst-mgr";
754 reg = <0xffd05000 0x1000>; 785 reg = <0xffd05000 0x1000>;
786 altr,modrst-offset = <0x10>;
755 }; 787 };
756 788
757 usbphy0: usbphy@0 { 789 usbphy0: usbphy@0 {
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
index 4779b07310df..2340fcb2b535 100644
--- a/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -16,11 +16,17 @@
16 16
17#include "skeleton.dtsi" 17#include "skeleton.dtsi"
18#include <dt-bindings/interrupt-controller/arm-gic.h> 18#include <dt-bindings/interrupt-controller/arm-gic.h>
19#include <dt-bindings/reset/altr,rst-mgr-a10.h>
19 20
20/ { 21/ {
21 #address-cells = <1>; 22 #address-cells = <1>;
22 #size-cells = <1>; 23 #size-cells = <1>;
23 24
25 aliases {
26 serial0 = &uart0;
27 serial1 = &uart1;
28 };
29
24 cpus { 30 cpus {
25 #address-cells = <1>; 31 #address-cells = <1>;
26 #size-cells = <0>; 32 #size-cells = <0>;
@@ -409,6 +415,8 @@
409 rx-fifo-depth = <16384>; 415 rx-fifo-depth = <16384>;
410 clocks = <&l4_mp_clk>; 416 clocks = <&l4_mp_clk>;
411 clock-names = "stmmaceth"; 417 clock-names = "stmmaceth";
418 resets = <&rst EMAC0_RESET>;
419 reset-names = "stmmaceth";
412 status = "disabled"; 420 status = "disabled";
413 }; 421 };
414 422
@@ -426,6 +434,8 @@
426 rx-fifo-depth = <16384>; 434 rx-fifo-depth = <16384>;
427 clocks = <&l4_mp_clk>; 435 clocks = <&l4_mp_clk>;
428 clock-names = "stmmaceth"; 436 clock-names = "stmmaceth";
437 resets = <&rst EMAC1_RESET>;
438 reset-names = "stmmaceth";
429 status = "disabled"; 439 status = "disabled";
430 }; 440 };
431 441
@@ -588,6 +598,7 @@
588 #reset-cells = <1>; 598 #reset-cells = <1>;
589 compatible = "altr,rst-mgr"; 599 compatible = "altr,rst-mgr";
590 reg = <0xffd05000 0x100>; 600 reg = <0xffd05000 0x100>;
601 altr,modrst-offset = <0x20>;
591 }; 602 };
592 603
593 scu: snoop-control-unit@ffffc000 { 604 scu: snoop-control-unit@ffffc000 {
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
index 94a0709b2fe6..99aa9a1c8af0 100644
--- a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
@@ -21,7 +21,8 @@
21 compatible = "altr,socfpga-arria10", "altr,socfpga"; 21 compatible = "altr,socfpga-arria10", "altr,socfpga";
22 22
23 chosen { 23 chosen {
24 bootargs = "console=ttyS0,115200 rootwait"; 24 bootargs = "earlyprintk";
25 stdout-path = "serial1:115200n8";
25 }; 26 };
26 27
27 memory { 28 memory {
diff --git a/arch/arm/boot/dts/socfpga_arria5_socdk.dts b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
index ccaf41742fc3..a75a666032b2 100644
--- a/arch/arm/boot/dts/socfpga_arria5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_arria5_socdk.dts
@@ -22,7 +22,8 @@
22 compatible = "altr,socfpga-arria5", "altr,socfpga"; 22 compatible = "altr,socfpga-arria5", "altr,socfpga";
23 23
24 chosen { 24 chosen {
25 bootargs = "console=ttyS0,115200"; 25 bootargs = "earlyprintk";
26 stdout-path = "serial0:115200n8";
26 }; 27 };
27 28
28 memory { 29 memory {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
new file mode 100644
index 000000000000..555e9caf21e1
--- /dev/null
+++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
@@ -0,0 +1,111 @@
1/*
2 * Copyright Altera Corporation (C) 2015. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License along with
14 * this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "socfpga_cyclone5.dtsi"
18
19/ {
20 model = "Terasic DE-0(Atlas)";
21 compatible = "altr,socfpga-cyclone5", "altr,socfpga";
22
23 chosen {
24 bootargs = "earlyprintk";
25 stdout-path = "serial0:115200n8";
26 };
27
28 memory {
29 name = "memory";
30 device_type = "memory";
31 reg = <0x0 0x40000000>; /* 1GB */
32 };
33
34 aliases {
35 ethernet0 = &gmac1;
36 };
37
38 regulator_3_3v: 3-3-v-regulator {
39 compatible = "regulator-fixed";
40 regulator-name = "3.3V";
41 regulator-min-microvolt = <3300000>;
42 regulator-max-microvolt = <3300000>;
43 };
44
45 leds {
46 compatible = "gpio-leds";
47 hps0 {
48 label = "hps_led0";
49 gpios = <&portb 24 0>;
50 linux,default-trigger = "heartbeat";
51 };
52 };
53};
54
55&gmac1 {
56 status = "okay";
57 phy-mode = "rgmii";
58
59 txd0-skew-ps = <0>; /* -420ps */
60 txd1-skew-ps = <0>; /* -420ps */
61 txd2-skew-ps = <0>; /* -420ps */
62 txd3-skew-ps = <0>; /* -420ps */
63 rxd0-skew-ps = <420>; /* 0ps */
64 rxd1-skew-ps = <420>; /* 0ps */
65 rxd2-skew-ps = <420>; /* 0ps */
66 rxd3-skew-ps = <420>; /* 0ps */
67 txen-skew-ps = <0>; /* -420ps */
68 txc-skew-ps = <1860>; /* 960ps */
69 rxdv-skew-ps = <420>; /* 0ps */
70 rxc-skew-ps = <1680>; /* 780ps */
71
72 max-frame-size = <3800>;
73};
74
75&gpio0 {
76 status = "okay";
77};
78
79&gpio1 {
80 status = "okay";
81};
82
83&gpio2 {
84 status = "okay";
85};
86
87&i2c0 {
88 status = "okay";
89 speed-mode = <0>;
90
91 adxl345: adxl345@0 {
92 compatible = "adi,adxl345";
93 reg = <0x53>;
94
95 interrupt-parent = <&portc>;
96 interrupts = <3 2>;
97 };
98};
99
100&mmc0 {
101 vmmc-supply = <&regulator_3_3v>;
102 vqmmc-supply = <&regulator_3_3v>;
103};
104
105&uart0 {
106 status = "okay";
107};
108
109&usb1 {
110 status = "okay";
111};
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
index 258865da8f6a..d4d0a28fb331 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socdk.dts
@@ -22,7 +22,8 @@
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 chosen { 24 chosen {
25 bootargs = "console=ttyS0,115200"; 25 bootargs = "earlyprintk";
26 stdout-path = "serial0:115200n8";
26 }; 27 };
27 28
28 memory { 29 memory {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
index 5e17fd147728..48bf651bd762 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_sockit.dts
@@ -22,7 +22,8 @@
22 compatible = "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 chosen { 24 chosen {
25 bootargs = "console=ttyS0,115200"; 25 bootargs = "earlyprintk";
26 stdout-path = "serial0:115200n8";
26 }; 27 };
27 28
28 memory { 29 memory {
diff --git a/arch/arm/boot/dts/stih407-clock.dtsi b/arch/arm/boot/dts/stih407-clock.dtsi
index e65744fc12ab..ad45f5e8fac7 100644
--- a/arch/arm/boot/dts/stih407-clock.dtsi
+++ b/arch/arm/boot/dts/stih407-clock.dtsi
@@ -134,7 +134,7 @@
134 134
135 clk_s_c0_pll0: clk-s-c0-pll0 { 135 clk_s_c0_pll0: clk-s-c0-pll0 {
136 #clock-cells = <1>; 136 #clock-cells = <1>;
137 compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32"; 137 compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
138 138
139 clocks = <&clk_sysin>; 139 clocks = <&clk_sysin>;
140 140
@@ -143,7 +143,7 @@
143 143
144 clk_s_c0_pll1: clk-s-c0-pll1 { 144 clk_s_c0_pll1: clk-s-c0-pll1 {
145 #clock-cells = <1>; 145 #clock-cells = <1>;
146 compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32"; 146 compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
147 147
148 clocks = <&clk_sysin>; 148 clocks = <&clk_sysin>;
149 149
diff --git a/arch/arm/boot/dts/stih407-family.dtsi b/arch/arm/boot/dts/stih407-family.dtsi
index eab3477e0a0e..ae0527754000 100644
--- a/arch/arm/boot/dts/stih407-family.dtsi
+++ b/arch/arm/boot/dts/stih407-family.dtsi
@@ -22,11 +22,15 @@
22 device_type = "cpu"; 22 device_type = "cpu";
23 compatible = "arm,cortex-a9"; 23 compatible = "arm,cortex-a9";
24 reg = <0>; 24 reg = <0>;
25 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
26 cpu-release-addr = <0x94100A4>;
25 }; 27 };
26 cpu@1 { 28 cpu@1 {
27 device_type = "cpu"; 29 device_type = "cpu";
28 compatible = "arm,cortex-a9"; 30 compatible = "arm,cortex-a9";
29 reg = <1>; 31 reg = <1>;
32 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
33 cpu-release-addr = <0x94100A4>;
30 }; 34 };
31 }; 35 };
32 36
@@ -65,6 +69,17 @@
65 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 69 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
66 }; 70 };
67 71
72 pwm_regulator: pwm-regulator {
73 compatible = "pwm-regulator";
74 pwms = <&pwm1 3 8448>;
75 regulator-name = "CPU_1V0_AVS";
76 regulator-min-microvolt = <784000>;
77 regulator-max-microvolt = <1299000>;
78 regulator-always-on;
79 max-duty-cycle = <255>;
80 status = "okay";
81 };
82
68 soc { 83 soc {
69 #address-cells = <1>; 84 #address-cells = <1>;
70 #size-cells = <1>; 85 #size-cells = <1>;
@@ -539,6 +554,7 @@
539 status = "disabled"; 554 status = "disabled";
540 }; 555 };
541 556
557
542 st_dwc3: dwc3@8f94000 { 558 st_dwc3: dwc3@8f94000 {
543 compatible = "st,stih407-dwc3"; 559 compatible = "st,stih407-dwc3";
544 reg = <0x08f94000 0x1000>, <0x110 0x4>; 560 reg = <0x08f94000 0x1000>, <0x110 0x4>;
@@ -565,5 +581,34 @@
565 <&phy_port2 PHY_TYPE_USB3>; 581 <&phy_port2 PHY_TYPE_USB3>;
566 }; 582 };
567 }; 583 };
584
585 /* COMMS PWM Module */
586 pwm0: pwm@9810000 {
587 compatible = "st,sti-pwm";
588 status = "okay";
589 #pwm-cells = <2>;
590 reg = <0x9810000 0x68>;
591 pinctrl-names = "default";
592 pinctrl-0 = <&pinctrl_pwm0_chan0_default>;
593 clock-names = "pwm";
594 clocks = <&clk_sysin>;
595 st,pwm-num-chan = <1>;
596 };
597
598 /* SBC PWM Module */
599 pwm1: pwm@9510000 {
600 compatible = "st,sti-pwm";
601 status = "okay";
602 #pwm-cells = <2>;
603 reg = <0x9510000 0x68>;
604 pinctrl-names = "default";
605 pinctrl-0 = <&pinctrl_pwm1_chan0_default
606 &pinctrl_pwm1_chan1_default
607 &pinctrl_pwm1_chan2_default
608 &pinctrl_pwm1_chan3_default>;
609 clock-names = "pwm";
610 clocks = <&clk_sysin>;
611 st,pwm-num-chan = <4>;
612 };
568 }; 613 };
569}; 614};
diff --git a/arch/arm/boot/dts/stih407-pinctrl.dtsi b/arch/arm/boot/dts/stih407-pinctrl.dtsi
index 0a754f275212..1683debd0854 100644
--- a/arch/arm/boot/dts/stih407-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stih407-pinctrl.dtsi
@@ -439,6 +439,194 @@
439 }; 439 };
440 }; 440 };
441 }; 441 };
442
443 tsin0 {
444 pinctrl_tsin0_parallel: tsin0_parallel {
445 st,pins {
446 DATA7 = <&pio10 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
447 DATA6 = <&pio10 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
448 DATA5 = <&pio10 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
449 DATA4 = <&pio10 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
450 DATA3 = <&pio11 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
451 DATA2 = <&pio11 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
452 DATA1 = <&pio11 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
453 DATA0 = <&pio11 3 ALT1 IN SE_NICLK_IO 0 CLK_A>;
454 CLKIN = <&pio10 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
455 VALID = <&pio10 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
456 ERROR = <&pio10 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
457 PKCLK = <&pio10 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
458 };
459 };
460 pinctrl_tsin0_serial: tsin0_serial {
461 st,pins {
462 DATA7 = <&pio10 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
463 CLKIN = <&pio10 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
464 VALID = <&pio10 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
465 ERROR = <&pio10 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
466 PKCLK = <&pio10 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
467 };
468 };
469 };
470
471 tsin1 {
472 pinctrl_tsin1_parallel: tsin1_parallel {
473 st,pins {
474 DATA7 = <&pio12 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
475 DATA6 = <&pio12 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
476 DATA5 = <&pio12 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
477 DATA4 = <&pio12 3 ALT1 IN SE_NICLK_IO 0 CLK_A>;
478 DATA3 = <&pio12 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
479 DATA2 = <&pio12 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
480 DATA1 = <&pio12 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
481 DATA0 = <&pio12 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
482 CLKIN = <&pio11 7 ALT1 IN CLKNOTDATA 0 CLK_A>;
483 VALID = <&pio11 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
484 ERROR = <&pio11 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
485 PKCLK = <&pio11 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
486 };
487 };
488 pinctrl_tsin1_serial: tsin1_serial {
489 st,pins {
490 DATA7 = <&pio12 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
491 CLKIN = <&pio11 7 ALT1 IN CLKNOTDATA 0 CLK_A>;
492 VALID = <&pio11 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
493 ERROR = <&pio11 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
494 PKCLK = <&pio11 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
495 };
496 };
497 };
498
499 tsin2 {
500 pinctrl_tsin2_parallel: tsin2_parallel {
501 st,pins {
502 DATA7 = <&pio13 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
503 DATA6 = <&pio13 5 ALT2 IN SE_NICLK_IO 0 CLK_B>;
504 DATA5 = <&pio13 6 ALT2 IN SE_NICLK_IO 0 CLK_B>;
505 DATA4 = <&pio13 7 ALT2 IN SE_NICLK_IO 0 CLK_B>;
506 DATA3 = <&pio14 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
507 DATA2 = <&pio14 1 ALT2 IN SE_NICLK_IO 0 CLK_B>;
508 DATA1 = <&pio14 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
509 DATA0 = <&pio14 3 ALT2 IN SE_NICLK_IO 0 CLK_A>;
510 CLKIN = <&pio13 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
511 VALID = <&pio13 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
512 ERROR = <&pio13 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
513 PKCLK = <&pio13 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
514 };
515 };
516 pinctrl_tsin2_serial: tsin2_serial {
517 st,pins {
518 DATA7 = <&pio13 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
519 CLKIN = <&pio13 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
520 VALID = <&pio13 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
521 ERROR = <&pio13 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
522 PKCLK = <&pio13 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
523 };
524 };
525 };
526
527 tsin3 {
528 pinctrl_tsin3_serial: tsin3_serial {
529 st,pins {
530 DATA7 = <&pio14 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
531 CLKIN = <&pio14 0 ALT1 IN CLKNOTDATA 0 CLK_A>;
532 VALID = <&pio13 6 ALT1 IN SE_NICLK_IO 0 CLK_A>;
533 ERROR = <&pio13 5 ALT1 IN SE_NICLK_IO 0 CLK_A>;
534 PKCLK = <&pio13 7 ALT1 IN SE_NICLK_IO 0 CLK_A>;
535 };
536 };
537 };
538
539 tsin4 {
540 pinctrl_tsin4_serial_alt3: tsin4_serial_alt3 {
541 st,pins {
542 DATA7 = <&pio14 6 ALT3 IN SE_NICLK_IO 0 CLK_A>;
543 CLKIN = <&pio14 5 ALT3 IN CLKNOTDATA 0 CLK_A>;
544 VALID = <&pio14 3 ALT3 IN SE_NICLK_IO 0 CLK_B>;
545 ERROR = <&pio14 2 ALT3 IN SE_NICLK_IO 0 CLK_B>;
546 PKCLK = <&pio14 4 ALT3 IN SE_NICLK_IO 0 CLK_A>;
547 };
548 };
549 };
550
551 tsin5 {
552 pinctrl_tsin5_serial_alt1: tsin5_serial_alt1 {
553 st,pins {
554 DATA7 = <&pio18 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
555 CLKIN = <&pio18 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
556 VALID = <&pio18 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
557 ERROR = <&pio18 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
558 PKCLK = <&pio18 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
559 };
560 };
561 pinctrl_tsin5_serial_alt2: tsin5_serial_alt2 {
562 st,pins {
563 DATA7 = <&pio19 4 ALT2 IN SE_NICLK_IO 0 CLK_A>;
564 CLKIN = <&pio19 3 ALT2 IN CLKNOTDATA 0 CLK_A>;
565 VALID = <&pio19 1 ALT2 IN SE_NICLK_IO 0 CLK_A>;
566 ERROR = <&pio19 0 ALT2 IN SE_NICLK_IO 0 CLK_A>;
567 PKCLK = <&pio19 2 ALT2 IN SE_NICLK_IO 0 CLK_A>;
568 };
569 };
570 };
571
572 tsout0 {
573 pinctrl_tsout0_parallel: tsout0_parallel {
574 st,pins {
575 DATA7 = <&pio12 0 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
576 DATA6 = <&pio12 1 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
577 DATA5 = <&pio12 2 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
578 DATA4 = <&pio12 3 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
579 DATA3 = <&pio12 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
580 DATA2 = <&pio12 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
581 DATA1 = <&pio12 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
582 DATA0 = <&pio12 7 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
583 CLKIN = <&pio11 7 ALT3 OUT NICLK 0 CLK_A>;
584 VALID = <&pio11 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
585 ERROR = <&pio11 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
586 PKCLK = <&pio11 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
587 };
588 };
589 pinctrl_tsout0_serial: tsout0_serial {
590 st,pins {
591 DATA7 = <&pio12 0 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
592 CLKIN = <&pio11 7 ALT3 OUT NICLK 0 CLK_A>;
593 VALID = <&pio11 5 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
594 ERROR = <&pio11 4 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
595 PKCLK = <&pio11 6 ALT3 OUT SE_NICLK_IO 0 CLK_A>;
596 };
597 };
598 };
599
600 tsout1 {
601 pinctrl_tsout1_serial: tsout1_serial {
602 st,pins {
603 DATA7 = <&pio19 4 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
604 CLKIN = <&pio19 3 ALT1 OUT NICLK 0 CLK_A>;
605 VALID = <&pio19 1 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
606 ERROR = <&pio19 0 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
607 PKCLK = <&pio19 2 ALT1 OUT SE_NICLK_IO 0 CLK_A>;
608 };
609 };
610 };
611
612 mtsin0 {
613 pinctrl_mtsin0_parallel: mtsin0_parallel {
614 st,pins {
615 DATA7 = <&pio10 4 ALT3 IN SE_NICLK_IO 0 CLK_A>;
616 DATA6 = <&pio10 5 ALT3 IN SE_NICLK_IO 0 CLK_A>;
617 DATA5 = <&pio10 6 ALT3 IN SE_NICLK_IO 0 CLK_A>;
618 DATA4 = <&pio10 7 ALT3 IN SE_NICLK_IO 0 CLK_A>;
619 DATA3 = <&pio11 0 ALT3 IN SE_NICLK_IO 0 CLK_A>;
620 DATA2 = <&pio11 1 ALT3 IN SE_NICLK_IO 0 CLK_A>;
621 DATA1 = <&pio11 2 ALT3 IN SE_NICLK_IO 0 CLK_A>;
622 DATA0 = <&pio11 3 ALT3 IN SE_NICLK_IO 0 CLK_A>;
623 CLKIN = <&pio10 3 ALT3 IN CLKNOTDATA 0 CLK_A>;
624 VALID = <&pio10 1 ALT3 IN SE_NICLK_IO 0 CLK_A>;
625 ERROR = <&pio10 0 ALT3 IN SE_NICLK_IO 0 CLK_A>;
626 PKCLK = <&pio10 2 ALT3 IN SE_NICLK_IO 0 CLK_A>;
627 };
628 };
629 };
442 }; 630 };
443 631
444 pin-controller-front1 { 632 pin-controller-front1 {
@@ -452,6 +640,18 @@
452 interrupts-names = "irqmux"; 640 interrupts-names = "irqmux";
453 ranges = <0 0x09210000 0x10000>; 641 ranges = <0 0x09210000 0x10000>;
454 642
643 tsin4 {
644 pinctrl_tsin4_serial_alt1: tsin4_serial_alt1 {
645 st,pins {
646 DATA7 = <&pio20 4 ALT1 IN SE_NICLK_IO 0 CLK_A>;
647 CLKIN = <&pio20 3 ALT1 IN CLKNOTDATA 0 CLK_A>;
648 VALID = <&pio20 1 ALT1 IN SE_NICLK_IO 0 CLK_A>;
649 ERROR = <&pio20 0 ALT1 IN SE_NICLK_IO 0 CLK_A>;
650 PKCLK = <&pio20 2 ALT1 IN SE_NICLK_IO 0 CLK_A>;
651 };
652 };
653 };
654
455 pio20: pio@09210000 { 655 pio20: pio@09210000 {
456 gpio-controller; 656 gpio-controller;
457 #gpio-cells = <1>; 657 #gpio-cells = <1>;
diff --git a/arch/arm/boot/dts/stih407.dtsi b/arch/arm/boot/dts/stih407.dtsi
index 2c560fc30503..3efa3b2ebe90 100644
--- a/arch/arm/boot/dts/stih407.dtsi
+++ b/arch/arm/boot/dts/stih407.dtsi
@@ -147,33 +147,5 @@
147 }; 147 };
148 }; 148 };
149 }; 149 };
150
151 /* COMMS PWM Module */
152 pwm0: pwm@9810000 {
153 compatible = "st,sti-pwm";
154 status = "disabled";
155 #pwm-cells = <2>;
156 reg = <0x9810000 0x68>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_pwm0_chan0_default>;
159 clock-names = "pwm";
160 clocks = <&clk_sysin>;
161 };
162
163 /* SBC PWM Module */
164 pwm1: pwm@9510000 {
165 compatible = "st,sti-pwm";
166 status = "disabled";
167 #pwm-cells = <2>;
168 reg = <0x9510000 0x68>;
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_pwm1_chan0_default
171 &pinctrl_pwm1_chan1_default
172 &pinctrl_pwm1_chan2_default
173 &pinctrl_pwm1_chan3_default>;
174 clock-names = "pwm";
175 clocks = <&clk_sysin>;
176 st,pwm-num-chan = <4>;
177 };
178 }; 150 };
179}; 151};
diff --git a/arch/arm/boot/dts/stih410-clock.dtsi b/arch/arm/boot/dts/stih410-clock.dtsi
index 6b5803a30096..d1f2acafc9b6 100644
--- a/arch/arm/boot/dts/stih410-clock.dtsi
+++ b/arch/arm/boot/dts/stih410-clock.dtsi
@@ -137,7 +137,7 @@
137 137
138 clk_s_c0_pll0: clk-s-c0-pll0 { 138 clk_s_c0_pll0: clk-s-c0-pll0 {
139 #clock-cells = <1>; 139 #clock-cells = <1>;
140 compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32"; 140 compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
141 141
142 clocks = <&clk_sysin>; 142 clocks = <&clk_sysin>;
143 143
@@ -146,7 +146,7 @@
146 146
147 clk_s_c0_pll1: clk-s-c0-pll1 { 147 clk_s_c0_pll1: clk-s-c0-pll1 {
148 #clock-cells = <1>; 148 #clock-cells = <1>;
149 compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32"; 149 compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
150 150
151 clocks = <&clk_sysin>; 151 clocks = <&clk_sysin>;
152 152
diff --git a/arch/arm/boot/dts/stih410.dtsi b/arch/arm/boot/dts/stih410.dtsi
index 208b5e89036a..6f40bc99c22f 100644
--- a/arch/arm/boot/dts/stih410.dtsi
+++ b/arch/arm/boot/dts/stih410.dtsi
@@ -10,6 +10,10 @@
10#include "stih407-family.dtsi" 10#include "stih407-family.dtsi"
11#include "stih410-pinctrl.dtsi" 11#include "stih410-pinctrl.dtsi"
12/ { 12/ {
13 aliases {
14 bdisp0 = &bdisp0;
15 };
16
13 soc { 17 soc {
14 usb2_picophy1: phy2 { 18 usb2_picophy1: phy2 {
15 compatible = "st,stih407-usb2-phy"; 19 compatible = "st,stih407-usb2-phy";
@@ -218,5 +222,13 @@
218 }; 222 };
219 }; 223 };
220 }; 224 };
225
226 bdisp0:bdisp@9f10000 {
227 compatible = "st,stih407-bdisp";
228 reg = <0x9f10000 0x1000>;
229 interrupts = <GIC_SPI 38 IRQ_TYPE_NONE>;
230 clock-names = "bdisp";
231 clocks = <&clk_s_c0_flexgen CLK_IC_BDISP_0>;
232 };
221 }; 233 };
222}; 234};
diff --git a/arch/arm/boot/dts/stih418-clock.dtsi b/arch/arm/boot/dts/stih418-clock.dtsi
index 0ab23daa2829..148e1772465f 100644
--- a/arch/arm/boot/dts/stih418-clock.dtsi
+++ b/arch/arm/boot/dts/stih418-clock.dtsi
@@ -137,7 +137,7 @@
137 137
138 clk_s_c0_pll0: clk-s-c0-pll0 { 138 clk_s_c0_pll0: clk-s-c0-pll0 {
139 #clock-cells = <1>; 139 #clock-cells = <1>;
140 compatible = "st,stih407-plls-c32-c0_0", "st,clkgen-plls-c32"; 140 compatible = "st,plls-c32-cx_0", "st,clkgen-plls-c32";
141 141
142 clocks = <&clk_sysin>; 142 clocks = <&clk_sysin>;
143 143
@@ -146,7 +146,7 @@
146 146
147 clk_s_c0_pll1: clk-s-c0-pll1 { 147 clk_s_c0_pll1: clk-s-c0-pll1 {
148 #clock-cells = <1>; 148 #clock-cells = <1>;
149 compatible = "st,stih407-plls-c32-c0_1", "st,clkgen-plls-c32"; 149 compatible = "st,plls-c32-cx_1", "st,clkgen-plls-c32";
150 150
151 clocks = <&clk_sysin>; 151 clocks = <&clk_sysin>;
152 152
diff --git a/arch/arm/boot/dts/stih418.dtsi b/arch/arm/boot/dts/stih418.dtsi
index 354d90f521b6..8160a75539a4 100644
--- a/arch/arm/boot/dts/stih418.dtsi
+++ b/arch/arm/boot/dts/stih418.dtsi
@@ -17,11 +17,15 @@
17 device_type = "cpu"; 17 device_type = "cpu";
18 compatible = "arm,cortex-a9"; 18 compatible = "arm,cortex-a9";
19 reg = <2>; 19 reg = <2>;
20 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
21 cpu-release-addr = <0x94100A4>;
20 }; 22 };
21 cpu@3 { 23 cpu@3 {
22 device_type = "cpu"; 24 device_type = "cpu";
23 compatible = "arm,cortex-a9"; 25 compatible = "arm,cortex-a9";
24 reg = <3>; 26 reg = <3>;
27 /* u-boot puts hpen in SBC dmem at 0xa4 offset */
28 cpu-release-addr = <0x94100A4>;
25 }; 29 };
26 }; 30 };
27 31
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
new file mode 100644
index 000000000000..6964fc9e97cf
--- /dev/null
+++ b/arch/arm/boot/dts/stm32429i-eval.dts
@@ -0,0 +1,75 @@
1/*
2 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * 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 "stm32f429.dtsi"
50
51/ {
52 model = "STMicroelectronics STM32429i-EVAL board";
53 compatible = "st,stm32429i-eval", "st,stm32f429";
54
55 chosen {
56 bootargs = "root=/dev/ram rdinit=/linuxrc";
57 stdout-path = "serial0:115200n8";
58 };
59
60 memory {
61 reg = <0xc0000000 0x2000000>;
62 };
63
64 aliases {
65 serial0 = &usart1;
66 };
67};
68
69&clk_hse {
70 clock-frequency = <25000000>;
71};
72
73&usart1 {
74 status = "okay";
75};
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts b/arch/arm/boot/dts/stm32f429-disco.dts
index 6b9aa59d978a..f0b731db6f53 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -53,8 +53,8 @@
53 compatible = "st,stm32f429i-disco", "st,stm32f429"; 53 compatible = "st,stm32f429i-disco", "st,stm32f429";
54 54
55 chosen { 55 chosen {
56 bootargs = "console=ttyS0,115200 root=/dev/ram rdinit=/linuxrc"; 56 bootargs = "root=/dev/ram rdinit=/linuxrc";
57 linux,stdout-path = &usart1; 57 stdout-path = "serial0:115200n8";
58 }; 58 };
59 59
60 memory { 60 memory {
@@ -66,6 +66,10 @@
66 }; 66 };
67}; 67};
68 68
69&clk_hse {
70 clock-frequency = <8000000>;
71};
72
69&usart1 { 73&usart1 {
70 status = "okay"; 74 status = "okay";
71}; 75};
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index aa73b4f4172c..d78a4815da8f 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -49,48 +49,10 @@
49 49
50/ { 50/ {
51 clocks { 51 clocks {
52 clk_sysclk: clk-sysclk { 52 clk_hse: clk-hse {
53 #clock-cells = <0>; 53 #clock-cells = <0>;
54 compatible = "fixed-clock"; 54 compatible = "fixed-clock";
55 clock-frequency = <180000000>; 55 clock-frequency = <0>;
56 };
57
58 clk_hclk: clk-hclk {
59 #clock-cells = <0>;
60 compatible = "fixed-clock";
61 clock-frequency = <180000000>;
62 };
63
64 clk_pclk1: clk-pclk1 {
65 #clock-cells = <0>;
66 compatible = "fixed-clock";
67 clock-frequency = <45000000>;
68 };
69
70 clk_pclk2: clk-pclk2 {
71 #clock-cells = <0>;
72 compatible = "fixed-clock";
73 clock-frequency = <90000000>;
74 };
75
76 clk_pmtr1: clk-pmtr1 {
77 #clock-cells = <0>;
78 compatible = "fixed-clock";
79 clock-frequency = <90000000>;
80 };
81
82 clk_pmtr2: clk-pmtr2 {
83 #clock-cells = <0>;
84 compatible = "fixed-clock";
85 clock-frequency = <180000000>;
86 };
87
88 clk_systick: clk-systick {
89 compatible = "fixed-factor-clock";
90 clocks = <&clk_hclk>;
91 #clock-cells = <0>;
92 clock-div = <8>;
93 clock-mult = <1>;
94 }; 56 };
95 }; 57 };
96 58
@@ -99,7 +61,7 @@
99 compatible = "st,stm32-timer"; 61 compatible = "st,stm32-timer";
100 reg = <0x40000000 0x400>; 62 reg = <0x40000000 0x400>;
101 interrupts = <28>; 63 interrupts = <28>;
102 clocks = <&clk_pmtr1>; 64 clocks = <&rcc 0 128>;
103 status = "disabled"; 65 status = "disabled";
104 }; 66 };
105 67
@@ -107,7 +69,7 @@
107 compatible = "st,stm32-timer"; 69 compatible = "st,stm32-timer";
108 reg = <0x40000400 0x400>; 70 reg = <0x40000400 0x400>;
109 interrupts = <29>; 71 interrupts = <29>;
110 clocks = <&clk_pmtr1>; 72 clocks = <&rcc 0 129>;
111 status = "disabled"; 73 status = "disabled";
112 }; 74 };
113 75
@@ -115,7 +77,7 @@
115 compatible = "st,stm32-timer"; 77 compatible = "st,stm32-timer";
116 reg = <0x40000800 0x400>; 78 reg = <0x40000800 0x400>;
117 interrupts = <30>; 79 interrupts = <30>;
118 clocks = <&clk_pmtr1>; 80 clocks = <&rcc 0 130>;
119 status = "disabled"; 81 status = "disabled";
120 }; 82 };
121 83
@@ -123,14 +85,14 @@
123 compatible = "st,stm32-timer"; 85 compatible = "st,stm32-timer";
124 reg = <0x40000c00 0x400>; 86 reg = <0x40000c00 0x400>;
125 interrupts = <50>; 87 interrupts = <50>;
126 clocks = <&clk_pmtr1>; 88 clocks = <&rcc 0 131>;
127 }; 89 };
128 90
129 timer6: timer@40001000 { 91 timer6: timer@40001000 {
130 compatible = "st,stm32-timer"; 92 compatible = "st,stm32-timer";
131 reg = <0x40001000 0x400>; 93 reg = <0x40001000 0x400>;
132 interrupts = <54>; 94 interrupts = <54>;
133 clocks = <&clk_pmtr1>; 95 clocks = <&rcc 0 132>;
134 status = "disabled"; 96 status = "disabled";
135 }; 97 };
136 98
@@ -138,7 +100,7 @@
138 compatible = "st,stm32-timer"; 100 compatible = "st,stm32-timer";
139 reg = <0x40001400 0x400>; 101 reg = <0x40001400 0x400>;
140 interrupts = <55>; 102 interrupts = <55>;
141 clocks = <&clk_pmtr1>; 103 clocks = <&rcc 0 133>;
142 status = "disabled"; 104 status = "disabled";
143 }; 105 };
144 106
@@ -146,7 +108,7 @@
146 compatible = "st,stm32-usart", "st,stm32-uart"; 108 compatible = "st,stm32-usart", "st,stm32-uart";
147 reg = <0x40004400 0x400>; 109 reg = <0x40004400 0x400>;
148 interrupts = <38>; 110 interrupts = <38>;
149 clocks = <&clk_pclk1>; 111 clocks = <&rcc 0 145>;
150 status = "disabled"; 112 status = "disabled";
151 }; 113 };
152 114
@@ -154,7 +116,7 @@
154 compatible = "st,stm32-usart", "st,stm32-uart"; 116 compatible = "st,stm32-usart", "st,stm32-uart";
155 reg = <0x40004800 0x400>; 117 reg = <0x40004800 0x400>;
156 interrupts = <39>; 118 interrupts = <39>;
157 clocks = <&clk_pclk1>; 119 clocks = <&rcc 0 146>;
158 status = "disabled"; 120 status = "disabled";
159 }; 121 };
160 122
@@ -162,7 +124,7 @@
162 compatible = "st,stm32-uart"; 124 compatible = "st,stm32-uart";
163 reg = <0x40004c00 0x400>; 125 reg = <0x40004c00 0x400>;
164 interrupts = <52>; 126 interrupts = <52>;
165 clocks = <&clk_pclk1>; 127 clocks = <&rcc 0 147>;
166 status = "disabled"; 128 status = "disabled";
167 }; 129 };
168 130
@@ -170,7 +132,7 @@
170 compatible = "st,stm32-uart"; 132 compatible = "st,stm32-uart";
171 reg = <0x40005000 0x400>; 133 reg = <0x40005000 0x400>;
172 interrupts = <53>; 134 interrupts = <53>;
173 clocks = <&clk_pclk1>; 135 clocks = <&rcc 0 148>;
174 status = "disabled"; 136 status = "disabled";
175 }; 137 };
176 138
@@ -178,7 +140,7 @@
178 compatible = "st,stm32-usart", "st,stm32-uart"; 140 compatible = "st,stm32-usart", "st,stm32-uart";
179 reg = <0x40007800 0x400>; 141 reg = <0x40007800 0x400>;
180 interrupts = <82>; 142 interrupts = <82>;
181 clocks = <&clk_pclk1>; 143 clocks = <&rcc 0 158>;
182 status = "disabled"; 144 status = "disabled";
183 }; 145 };
184 146
@@ -186,7 +148,7 @@
186 compatible = "st,stm32-usart", "st,stm32-uart"; 148 compatible = "st,stm32-usart", "st,stm32-uart";
187 reg = <0x40007c00 0x400>; 149 reg = <0x40007c00 0x400>;
188 interrupts = <83>; 150 interrupts = <83>;
189 clocks = <&clk_pclk1>; 151 clocks = <&rcc 0 159>;
190 status = "disabled"; 152 status = "disabled";
191 }; 153 };
192 154
@@ -194,7 +156,7 @@
194 compatible = "st,stm32-usart", "st,stm32-uart"; 156 compatible = "st,stm32-usart", "st,stm32-uart";
195 reg = <0x40011000 0x400>; 157 reg = <0x40011000 0x400>;
196 interrupts = <37>; 158 interrupts = <37>;
197 clocks = <&clk_pclk2>; 159 clocks = <&rcc 0 164>;
198 status = "disabled"; 160 status = "disabled";
199 }; 161 };
200 162
@@ -202,13 +164,20 @@
202 compatible = "st,stm32-usart", "st,stm32-uart"; 164 compatible = "st,stm32-usart", "st,stm32-uart";
203 reg = <0x40011400 0x400>; 165 reg = <0x40011400 0x400>;
204 interrupts = <71>; 166 interrupts = <71>;
205 clocks = <&clk_pclk2>; 167 clocks = <&rcc 0 165>;
206 status = "disabled"; 168 status = "disabled";
207 }; 169 };
170
171 rcc: rcc@40023810 {
172 #clock-cells = <2>;
173 compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
174 reg = <0x40023800 0x400>;
175 clocks = <&clk_hse>;
176 };
208 }; 177 };
209}; 178};
210 179
211&systick { 180&systick {
212 clocks = <&clk_systick>; 181 clocks = <&rcc 1 0>;
213 status = "okay"; 182 status = "okay";
214}; 183};
diff --git a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
index 93d435670ef1..f3cb297fd1db 100644
--- a/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
+++ b/arch/arm/boot/dts/sun4i-a10-ba10-tvbox.dts
@@ -125,12 +125,21 @@
125 status = "okay"; 125 status = "okay";
126}; 126};
127 127
128&otg_sram {
129 status = "okay";
130};
131
128&pio { 132&pio {
129 usb2_vbus_pin_a: usb2_vbus_pin@0 { 133 usb2_vbus_pin_a: usb2_vbus_pin@0 {
130 allwinner,pins = "PH12"; 134 allwinner,pins = "PH12";
131 }; 135 };
132}; 136};
133 137
138&reg_usb0_vbus {
139 regulator-boot-on;
140 status = "okay";
141};
142
134&reg_usb1_vbus { 143&reg_usb1_vbus {
135 status = "okay"; 144 status = "okay";
136}; 145};
@@ -146,7 +155,13 @@
146 status = "okay"; 155 status = "okay";
147}; 156};
148 157
158&usb_otg {
159 dr_mode = "host";
160 status = "okay";
161};
162
149&usbphy { 163&usbphy {
164 usb0_vbus-supply = <&reg_usb0_vbus>;
150 usb1_vbus-supply = <&reg_usb1_vbus>; 165 usb1_vbus-supply = <&reg_usb1_vbus>;
151 usb2_vbus-supply = <&reg_usb2_vbus>; 166 usb2_vbus-supply = <&reg_usb2_vbus>;
152 status = "okay"; 167 status = "okay";
diff --git a/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts b/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
index 5878a0b11f7b..143056872650 100644
--- a/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
+++ b/arch/arm/boot/dts/sun4i-a10-chuwi-v7-cw0825.dts
@@ -114,6 +114,30 @@
114 status = "okay"; 114 status = "okay";
115}; 115};
116 116
117&otg_sram {
118 status = "okay";
119};
120
121&pio {
122 usb0_id_detect_pin: usb0_id_detect_pin@0 {
123 allwinner,pins = "PH4";
124 allwinner,function = "gpio_in";
125 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
126 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
127 };
128
129 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
130 allwinner,pins = "PH5";
131 allwinner,function = "gpio_in";
132 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
133 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
134 };
135};
136
137&reg_usb0_vbus {
138 status = "okay";
139};
140
117&reg_usb2_vbus { 141&reg_usb2_vbus {
118 status = "okay"; 142 status = "okay";
119}; 143};
@@ -124,7 +148,17 @@
124 status = "okay"; 148 status = "okay";
125}; 149};
126 150
151&usb_otg {
152 dr_mode = "otg";
153 status = "okay";
154};
155
127&usbphy { 156&usbphy {
157 pinctrl-names = "default";
158 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
159 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
160 usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
161 usb0_vbus-supply = <&reg_usb0_vbus>;
128 usb2_vbus-supply = <&reg_usb2_vbus>; 162 usb2_vbus-supply = <&reg_usb2_vbus>;
129 status = "okay"; 163 status = "okay";
130}; 164};
diff --git a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
index 9afb4e018593..046a84d9719d 100644
--- a/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
+++ b/arch/arm/boot/dts/sun4i-a10-cubieboard.dts
@@ -155,6 +155,10 @@
155 status = "okay"; 155 status = "okay";
156}; 156};
157 157
158&otg_sram {
159 status = "okay";
160};
161
158&pio { 162&pio {
159 led_pins_cubieboard: led_pins@0 { 163 led_pins_cubieboard: led_pins@0 {
160 allwinner,pins = "PH20", "PH21"; 164 allwinner,pins = "PH20", "PH21";
@@ -162,6 +166,13 @@
162 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 166 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
163 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 167 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
164 }; 168 };
169
170 usb0_id_detect_pin: usb0_id_detect_pin@0 {
171 allwinner,pins = "PH4";
172 allwinner,function = "gpio_in";
173 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
174 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
175 };
165}; 176};
166 177
167&reg_ahci_5v { 178&reg_ahci_5v {
@@ -216,7 +227,15 @@
216 status = "okay"; 227 status = "okay";
217}; 228};
218 229
230&usb_otg {
231 dr_mode = "otg";
232 status = "okay";
233};
234
219&usbphy { 235&usbphy {
236 pinctrl-names = "default";
237 pinctrl-0 = <&usb0_id_detect_pin>;
238 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
220 usb1_vbus-supply = <&reg_usb1_vbus>; 239 usb1_vbus-supply = <&reg_usb1_vbus>;
221 usb2_vbus-supply = <&reg_usb2_vbus>; 240 usb2_vbus-supply = <&reg_usb2_vbus>;
222 status = "okay"; 241 status = "okay";
diff --git a/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts b/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts
new file mode 100644
index 000000000000..985e15503378
--- /dev/null
+++ b/arch/arm/boot/dts/sun4i-a10-itead-iteaduino-plus.dts
@@ -0,0 +1,202 @@
1/*
2 * Copyright 2015 Josef Gajdusek <atx@atx.name>
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 "sun4i-a10.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h>
49
50/ {
51 model = "Iteaduino Plus A10";
52 compatible = "itead,iteaduino-plus-a10", "allwinner,sun4i-a10";
53
54 aliases {
55 serial0 = &uart0;
56 };
57
58 chosen {
59 stdout-path = "serial0:115200n8";
60 };
61};
62
63&ahci {
64 target-supply = <&reg_ahci_5v>;
65 status = "okay";
66};
67
68&cpu0 {
69 cpu-supply = <&reg_dcdc2>;
70};
71
72&ehci0 {
73 status = "okay";
74};
75
76&ehci1 {
77 status = "okay";
78};
79
80&emac {
81 pinctrl-names = "default";
82 pinctrl-0 = <&emac_pins_a>;
83 phy = <&phy1>;
84 status = "okay";
85};
86
87&emac_sram {
88 status = "okay";
89};
90
91&i2c0 {
92 pinctrl-names = "default";
93 pinctrl-0 = <&i2c0_pins_a>;
94 status = "okay";
95
96 axp209: pmic@34 {
97 reg = <0x34>;
98 interrupts = <0>;
99 };
100};
101
102&i2c1 {
103 pinctrl-names = "default";
104 pinctrl-0 = <&i2c1_pins_a>;
105 status = "okay";
106};
107
108&i2c2 {
109 pinctrl-names = "default";
110 pinctrl-0 = <&i2c2_pins_a>;
111 status = "okay";
112};
113
114&ir0 {
115 pinctrl-names = "default";
116 pinctrl-0 = <&ir0_rx_pins_a>;
117 status = "okay";
118};
119
120&mdio {
121 status = "okay";
122
123 phy1: ethernet-phy@1 {
124 reg = <1>;
125 };
126};
127
128&mmc0 {
129 pinctrl-names = "default";
130 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
131 vmmc-supply = <&reg_vcc3v3>;
132 bus-width = <4>;
133 cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
134 cd-inverted;
135 status = "okay";
136};
137
138&ohci0 {
139 status = "okay";
140};
141
142&ohci1 {
143 status = "okay";
144};
145
146&reg_ahci_5v {
147 status = "okay";
148};
149
150#include "axp209.dtsi"
151
152&reg_dcdc2 {
153 regulator-always-on;
154 regulator-min-microvolt = <1000000>;
155 regulator-max-microvolt = <1450000>;
156 regulator-name = "vdd-cpu";
157};
158
159&reg_dcdc3 {
160 regulator-always-on;
161 regulator-min-microvolt = <1000000>;
162 regulator-max-microvolt = <1400000>;
163 regulator-name = "vdd-int-dll";
164};
165
166&reg_ldo1 {
167 regulator-name = "vdd-rtc";
168};
169
170&reg_ldo2 {
171 regulator-always-on;
172 regulator-min-microvolt = <3000000>;
173 regulator-max-microvolt = <3000000>;
174 regulator-name = "avcc";
175};
176
177&reg_usb1_vbus {
178 status = "okay";
179};
180
181&reg_usb2_vbus {
182 status = "okay";
183};
184
185&spi0 {
186 pinctrl-names = "default";
187 pinctrl-0 = <&spi0_pins_a>,
188 <&spi0_cs0_pins_a>;
189 status = "okay";
190};
191
192&uart0 {
193 pinctrl-names = "default";
194 pinctrl-0 = <&uart0_pins_a>;
195 status = "okay";
196};
197
198&usbphy {
199 usb1_vbus-supply = <&reg_usb1_vbus>;
200 usb2_vbus-supply = <&reg_usb2_vbus>;
201 status = "okay";
202};
diff --git a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
index ebe2a04ef649..a7dd86d30fa2 100644
--- a/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
+++ b/arch/arm/boot/dts/sun4i-a10-mini-xplus.dts
@@ -114,6 +114,15 @@
114 status = "okay"; 114 status = "okay";
115}; 115};
116 116
117&otg_sram {
118 status = "okay";
119};
120
121&reg_usb0_vbus {
122 regulator-boot-on;
123 status = "okay";
124};
125
117&reg_usb1_vbus { 126&reg_usb1_vbus {
118 status = "okay"; 127 status = "okay";
119}; 128};
@@ -128,7 +137,13 @@
128 status = "okay"; 137 status = "okay";
129}; 138};
130 139
140&usb_otg {
141 dr_mode = "host";
142 status = "okay";
143};
144
131&usbphy { 145&usbphy {
146 usb0_vbus-supply = <&reg_usb0_vbus>;
132 usb1_vbus-supply = <&reg_usb1_vbus>; 147 usb1_vbus-supply = <&reg_usb1_vbus>;
133 usb2_vbus-supply = <&reg_usb2_vbus>; 148 usb2_vbus-supply = <&reg_usb2_vbus>;
134 status = "okay"; 149 status = "okay";
diff --git a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
index b64aa4eb071e..28e32ad705cd 100644
--- a/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts
@@ -150,6 +150,10 @@
150 status = "okay"; 150 status = "okay";
151}; 151};
152 152
153&otg_sram {
154 status = "okay";
155};
156
153&pio { 157&pio {
154 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { 158 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
155 allwinner,pins = "PC3"; 159 allwinner,pins = "PC3";
@@ -164,6 +168,20 @@
164 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 168 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 169 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
166 }; 170 };
171
172 usb0_id_detect_pin: usb0_id_detect_pin@0 {
173 allwinner,pins = "PH4";
174 allwinner,function = "gpio_in";
175 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
176 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
177 };
178
179 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
180 allwinner,pins = "PH5";
181 allwinner,function = "gpio_in";
182 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
183 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
184 };
167}; 185};
168 186
169&reg_ahci_5v { 187&reg_ahci_5v {
@@ -172,6 +190,10 @@
172 status = "okay"; 190 status = "okay";
173}; 191};
174 192
193&reg_usb0_vbus {
194 status = "okay";
195};
196
175&reg_usb1_vbus { 197&reg_usb1_vbus {
176 status = "okay"; 198 status = "okay";
177}; 199};
@@ -186,7 +208,17 @@
186 status = "okay"; 208 status = "okay";
187}; 209};
188 210
211&usb_otg {
212 dr_mode = "otg";
213 status = "okay";
214};
215
189&usbphy { 216&usbphy {
217 pinctrl-names = "default";
218 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
219 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
220 usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
221 usb0_vbus-supply = <&reg_usb0_vbus>;
190 usb1_vbus-supply = <&reg_usb1_vbus>; 222 usb1_vbus-supply = <&reg_usb1_vbus>;
191 usb2_vbus-supply = <&reg_usb2_vbus>; 223 usb2_vbus-supply = <&reg_usb2_vbus>;
192 status = "okay"; 224 status = "okay";
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index adaa57b7a943..1f3c51a08113 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -646,6 +646,19 @@
646 #size-cells = <0>; 646 #size-cells = <0>;
647 }; 647 };
648 648
649 usb_otg: usb@01c13000 {
650 compatible = "allwinner,sun4i-a10-musb";
651 reg = <0x01c13000 0x0400>;
652 clocks = <&ahb_gates 0>;
653 interrupts = <38>;
654 interrupt-names = "mc";
655 phys = <&usbphy 0>;
656 phy-names = "usb";
657 extcon = <&usbphy 0>;
658 allwinner,sram = <&otg_sram 1>;
659 status = "disabled";
660 };
661
649 usbphy: phy@01c13400 { 662 usbphy: phy@01c13400 {
650 #phy-cells = <1>; 663 #phy-cells = <1>;
651 compatible = "allwinner,sun4i-a10-usb-phy"; 664 compatible = "allwinner,sun4i-a10-usb-phy";
@@ -756,8 +769,7 @@
756 clocks = <&apb0_gates 5>; 769 clocks = <&apb0_gates 5>;
757 gpio-controller; 770 gpio-controller;
758 interrupt-controller; 771 interrupt-controller;
759 #interrupt-cells = <2>; 772 #interrupt-cells = <3>;
760 #size-cells = <0>;
761 #gpio-cells = <3>; 773 #gpio-cells = <3>;
762 774
763 pwm0_pins_a: pwm0@0 { 775 pwm0_pins_a: pwm0@0 {
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index a7e19e4847f7..5a422c1ff725 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -96,8 +96,15 @@
96 pinctrl-names = "default"; 96 pinctrl-names = "default";
97 pinctrl-0 = <&i2c0_pins_a>; 97 pinctrl-0 = <&i2c0_pins_a>;
98 status = "okay"; 98 status = "okay";
99
100 axp152: pmic@30 {
101 reg = <0x30>;
102 interrupts = <0>;
103 };
99}; 104};
100 105
106#include "axp152.dtsi"
107
101&i2c1 { 108&i2c1 {
102 pinctrl-names = "default"; 109 pinctrl-names = "default";
103 pinctrl-0 = <&i2c1_pins_a>; 110 pinctrl-0 = <&i2c1_pins_a>;
@@ -189,6 +196,10 @@
189 status = "okay"; 196 status = "okay";
190}; 197};
191 198
199&otg_sram {
200 status = "okay";
201};
202
192&pio { 203&pio {
193 mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 { 204 mmc0_cd_pin_olinuxino_micro: mmc0_cd_pin@0 {
194 allwinner,pins = "PG1"; 205 allwinner,pins = "PG1";
@@ -217,6 +228,18 @@
217 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 228 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
218 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 229 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
219 }; 230 };
231
232 usb0_id_detect_pin: usb0_id_detect_pin@0 {
233 allwinner,pins = "PG12";
234 allwinner,function = "gpio_in";
235 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
236 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
237 };
238};
239
240&reg_usb0_vbus {
241 gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
242 status = "okay";
220}; 243};
221 244
222&reg_usb1_vbus { 245&reg_usb1_vbus {
@@ -243,8 +266,20 @@
243 status = "okay"; 266 status = "okay";
244}; 267};
245 268
269&usb_otg {
270 dr_mode = "otg";
271 status = "okay";
272};
273
274&usb0_vbus_pin_a {
275 allwinner,pins = "PG11";
276};
277
246&usbphy { 278&usbphy {
279 pinctrl-names = "default";
280 pinctrl-0 = <&usb0_id_detect_pin>;
281 usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
282 usb0_vbus-supply = <&reg_usb0_vbus>;
247 usb1_vbus-supply = <&reg_usb1_vbus>; 283 usb1_vbus-supply = <&reg_usb1_vbus>;
248 status = "okay"; 284 status = "okay";
249}; 285};
250
diff --git a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
index 990f9d61ae4d..3724b988064e 100644
--- a/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
+++ b/arch/arm/boot/dts/sun5i-a13-hsg-h702.dts
@@ -45,6 +45,7 @@
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/input/input.h>
48#include <dt-bindings/pinctrl/sun4i-a10.h> 49#include <dt-bindings/pinctrl/sun4i-a10.h>
49 50
50/ { 51/ {
@@ -96,6 +97,25 @@
96 status = "okay"; 97 status = "okay";
97}; 98};
98 99
100&lradc {
101 vref-supply = <&reg_ldo2>;
102 status = "okay";
103
104 button@200 {
105 label = "Volume Up";
106 linux,code = <KEY_VOLUMEUP>;
107 channel = <0>;
108 voltage = <200000>;
109 };
110
111 button@400 {
112 label = "Volume Down";
113 linux,code = <KEY_VOLUMEDOWN>;
114 channel = <0>;
115 voltage = <400000>;
116 };
117};
118
99&mmc0 { 119&mmc0 {
100 pinctrl-names = "default"; 120 pinctrl-names = "default";
101 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>; 121 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_h702>;
@@ -110,6 +130,10 @@
110 status = "okay"; 130 status = "okay";
111}; 131};
112 132
133&otg_sram {
134 status = "okay";
135};
136
113&pio { 137&pio {
114 mmc0_cd_pin_h702: mmc0_cd_pin@0 { 138 mmc0_cd_pin_h702: mmc0_cd_pin@0 {
115 allwinner,pins = "PG0"; 139 allwinner,pins = "PG0";
@@ -117,6 +141,20 @@
117 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 141 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
118 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 142 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
119 }; 143 };
144
145 usb0_id_detect_pin: usb0_id_detect_pin@0 {
146 allwinner,pins = "PG2";
147 allwinner,function = "gpio_in";
148 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
149 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
150 };
151
152 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
153 allwinner,pins = "PG1";
154 allwinner,function = "gpio_in";
155 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
156 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
157 };
120}; 158};
121 159
122#include "axp209.dtsi" 160#include "axp209.dtsi"
@@ -152,13 +190,33 @@
152 regulator-name = "vcc-wifi"; 190 regulator-name = "vcc-wifi";
153}; 191};
154 192
193&reg_usb0_vbus {
194 pinctrl-0 = <&usb0_vbus_pin_a>;
195 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
196 status = "okay";
197};
198
155&uart1 { 199&uart1 {
156 pinctrl-names = "default"; 200 pinctrl-names = "default";
157 pinctrl-0 = <&uart1_pins_b>; 201 pinctrl-0 = <&uart1_pins_b>;
158 status = "okay"; 202 status = "okay";
159}; 203};
160 204
205&usb_otg {
206 dr_mode = "otg";
207 status = "okay";
208};
209
210&usb0_vbus_pin_a {
211 allwinner,pins = "PG12";
212};
213
161&usbphy { 214&usbphy {
215 pinctrl-names = "default";
216 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
217 usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
218 usb0_vbus_det-gpios = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
219 usb0_vbus-supply = <&reg_usb0_vbus>;
162 usb1_vbus-supply = <&reg_ldo3>; 220 usb1_vbus-supply = <&reg_ldo3>;
163 status = "okay"; 221 status = "okay";
164}; 222};
diff --git a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
index 42324005eb7c..b3c234c65ea1 100644
--- a/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
+++ b/arch/arm/boot/dts/sun5i-a13-olinuxino.dts
@@ -159,6 +159,10 @@
159 status = "okay"; 159 status = "okay";
160}; 160};
161 161
162&otg_sram {
163 status = "okay";
164};
165
162&pio { 166&pio {
163 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 { 167 mmc0_cd_pin_olinuxino: mmc0_cd_pin@0 {
164 allwinner,pins = "PG0"; 168 allwinner,pins = "PG0";
@@ -174,6 +178,20 @@
174 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 178 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
175 }; 179 };
176 180
181 usb0_id_detect_pin: usb0_id_detect_pin@0 {
182 allwinner,pins = "PG2";
183 allwinner,function = "gpio_in";
184 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
185 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
186 };
187
188 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
189 allwinner,pins = "PG1";
190 allwinner,function = "gpio_in";
191 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
192 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
193 };
194
177 usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 { 195 usb1_vbus_pin_olinuxino: usb1_vbus_pin@0 {
178 allwinner,pins = "PG11"; 196 allwinner,pins = "PG11";
179 allwinner,function = "gpio_out"; 197 allwinner,function = "gpio_out";
@@ -182,6 +200,11 @@
182 }; 200 };
183}; 201};
184 202
203&reg_usb0_vbus {
204 status = "okay";
205 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
206};
207
185&reg_usb1_vbus { 208&reg_usb1_vbus {
186 pinctrl-0 = <&usb1_vbus_pin_olinuxino>; 209 pinctrl-0 = <&usb1_vbus_pin_olinuxino>;
187 gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; 210 gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>;
@@ -194,7 +217,21 @@
194 status = "okay"; 217 status = "okay";
195}; 218};
196 219
220&usb_otg {
221 dr_mode = "otg";
222 status = "okay";
223};
224
225&usb0_vbus_pin_a {
226 allwinner,pins = "PG12";
227};
228
197&usbphy { 229&usbphy {
230 pinctrl-names = "default";
231 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
232 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
233 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
234 usb0_vbus-supply = <&reg_usb0_vbus>;
198 usb1_vbus-supply = <&reg_usb1_vbus>; 235 usb1_vbus-supply = <&reg_usb1_vbus>;
199 status = "okay"; 236 status = "okay";
200}; 237};
diff --git a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
index 514f159a14d4..eb793d5a2bd6 100644
--- a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
+++ b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
@@ -93,7 +93,7 @@
93 compatible = "chipone,icn8318"; 93 compatible = "chipone,icn8318";
94 reg = <0x40>; 94 reg = <0x40>;
95 interrupt-parent = <&pio>; 95 interrupt-parent = <&pio>;
96 interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */ 96 interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
97 pinctrl-names = "default"; 97 pinctrl-names = "default";
98 pinctrl-0 = <&ts_wake_pin_p66>; 98 pinctrl-0 = <&ts_wake_pin_p66>;
99 wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */ 99 wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
@@ -153,6 +153,10 @@
153 }; 153 };
154}; 154};
155 155
156&otg_sram {
157 status = "okay";
158};
159
156&pio { 160&pio {
157 mmc0_cd_pin_p66: mmc0_cd_pin@0 { 161 mmc0_cd_pin_p66: mmc0_cd_pin@0 {
158 allwinner,pins = "PG0"; 162 allwinner,pins = "PG0";
@@ -161,6 +165,20 @@
161 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 165 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
162 }; 166 };
163 167
168 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
169 allwinner,pins = "PG1";
170 allwinner,function = "gpio_in";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
172 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
173 };
174
175 usb0_id_detect_pin: usb0_id_detect_pin@0 {
176 allwinner,pins = "PG2";
177 allwinner,function = "gpio_in";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
179 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
180 };
181
164 i2c_lcd_pins: i2c_lcd_pin@0 { 182 i2c_lcd_pins: i2c_lcd_pin@0 {
165 allwinner,pins = "PG10", "PG12"; 183 allwinner,pins = "PG10", "PG12";
166 allwinner,function = "gpio_out"; 184 allwinner,function = "gpio_out";
@@ -219,7 +237,16 @@
219 status = "okay"; 237 status = "okay";
220}; 238};
221 239
240&usb_otg {
241 dr_mode = "otg";
242 status = "okay";
243};
244
222&usbphy { 245&usbphy {
246 pinctrl-names = "default";
247 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
248 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
249 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
223 usb0_vbus-supply = <&reg_usb0_vbus>; 250 usb0_vbus-supply = <&reg_usb0_vbus>;
224 usb1_vbus-supply = <&reg_ldo3>; 251 usb1_vbus-supply = <&reg_ldo3>;
225 status = "okay"; 252 status = "okay";
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index 427c0e7289fa..78b993abbaa3 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -417,6 +417,19 @@
417 #size-cells = <0>; 417 #size-cells = <0>;
418 }; 418 };
419 419
420 usb_otg: usb@01c13000 {
421 compatible = "allwinner,sun4i-a10-musb";
422 reg = <0x01c13000 0x0400>;
423 clocks = <&ahb_gates 0>;
424 interrupts = <38>;
425 interrupt-names = "mc";
426 phys = <&usbphy 0>;
427 phy-names = "usb";
428 extcon = <&usbphy 0>;
429 allwinner,sram = <&otg_sram 1>;
430 status = "disabled";
431 };
432
420 usbphy: phy@01c13400 { 433 usbphy: phy@01c13400 {
421 #phy-cells = <1>; 434 #phy-cells = <1>;
422 compatible = "allwinner,sun5i-a13-usb-phy"; 435 compatible = "allwinner,sun5i-a13-usb-phy";
@@ -476,8 +489,7 @@
476 clocks = <&apb0_gates 5>; 489 clocks = <&apb0_gates 5>;
477 gpio-controller; 490 gpio-controller;
478 interrupt-controller; 491 interrupt-controller;
479 #interrupt-cells = <2>; 492 #interrupt-cells = <3>;
480 #size-cells = <0>;
481 #gpio-cells = <3>; 493 #gpio-cells = <3>;
482 494
483 i2c0_pins_a: i2c0@0 { 495 i2c0_pins_a: i2c0@0 {
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 4404f37d132e..4dd70cce2127 100644
--- a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
+++ b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
@@ -143,6 +143,11 @@
143 status = "okay"; 143 status = "okay";
144}; 144};
145 145
146&usb_otg {
147 dr_mode = "host";
148 status = "okay";
149};
150
146&usbphy { 151&usbphy {
147 usb1_vbus-supply = <&reg_usb1_vbus>; 152 usb1_vbus-supply = <&reg_usb1_vbus>;
148 status = "okay"; 153 status = "okay";
diff --git a/arch/arm/boot/dts/sun6i-a31.dtsi b/arch/arm/boot/dts/sun6i-a31.dtsi
index e4d3484d97bd..54bb83b58f42 100644
--- a/arch/arm/boot/dts/sun6i-a31.dtsi
+++ b/arch/arm/boot/dts/sun6i-a31.dtsi
@@ -544,6 +544,19 @@
544 #size-cells = <0>; 544 #size-cells = <0>;
545 }; 545 };
546 546
547 usb_otg: usb@01c19000 {
548 compatible = "allwinner,sun6i-a31-musb";
549 reg = <0x01c19000 0x0400>;
550 clocks = <&ahb1_gates 24>;
551 resets = <&ahb1_rst 24>;
552 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
553 interrupt-names = "mc";
554 phys = <&usbphy 0>;
555 phy-names = "usb";
556 extcon = <&usbphy 0>;
557 status = "disabled";
558 };
559
547 usbphy: phy@01c19400 { 560 usbphy: phy@01c19400 {
548 compatible = "allwinner,sun6i-a31-usb-phy"; 561 compatible = "allwinner,sun6i-a31-usb-phy";
549 reg = <0x01c19400 0x10>, 562 reg = <0x01c19400 0x10>,
@@ -631,8 +644,7 @@
631 clocks = <&apb1_gates 5>; 644 clocks = <&apb1_gates 5>;
632 gpio-controller; 645 gpio-controller;
633 interrupt-controller; 646 interrupt-controller;
634 #interrupt-cells = <2>; 647 #interrupt-cells = <3>;
635 #size-cells = <0>;
636 #gpio-cells = <3>; 648 #gpio-cells = <3>;
637 649
638 uart0_pins_a: uart0@0 { 650 uart0_pins_a: uart0@0 {
diff --git a/arch/arm/boot/dts/sun6i-a31s-cs908.dts b/arch/arm/boot/dts/sun6i-a31s-cs908.dts
index 1e2411a2bcea..5e8f8c4f2b30 100644
--- a/arch/arm/boot/dts/sun6i-a31s-cs908.dts
+++ b/arch/arm/boot/dts/sun6i-a31s-cs908.dts
@@ -93,6 +93,11 @@
93 status = "okay"; 93 status = "okay";
94}; 94};
95 95
96&usb_otg {
97 dr_mode = "host";
98 status = "okay";
99};
100
96&usbphy { 101&usbphy {
97 status = "okay"; 102 status = "okay";
98}; 103};
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
index 4611e2f5a99e..e6b019232a9e 100644
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
@@ -88,15 +88,11 @@
88 }; 88 };
89 }; 89 };
90 90
91 reg_vmmc3: vmmc3 { 91 mmc3_pwrseq: mmc3_pwrseq {
92 compatible = "regulator-fixed"; 92 compatible = "mmc-pwrseq-simple";
93 pinctrl-names = "default"; 93 pinctrl-names = "default";
94 pinctrl-0 = <&vmmc3_pin_cubietruck>; 94 pinctrl-0 = <&mmc3_pwrseq_pin_cubietruck>;
95 regulator-name = "vmmc3"; 95 reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
96 regulator-min-microvolt = <3300000>;
97 regulator-max-microvolt = <3300000>;
98 enable-active-high;
99 gpio = <&pio 7 9 GPIO_ACTIVE_HIGH>;
100 }; 96 };
101}; 97};
102 98
@@ -172,7 +168,8 @@
172&mmc3 { 168&mmc3 {
173 pinctrl-names = "default"; 169 pinctrl-names = "default";
174 pinctrl-0 = <&mmc3_pins_a>; 170 pinctrl-0 = <&mmc3_pins_a>;
175 vmmc-supply = <&reg_vmmc3>; 171 vmmc-supply = <&reg_vcc3v3>;
172 mmc-pwrseq = <&mmc3_pwrseq>;
176 bus-width = <4>; 173 bus-width = <4>;
177 non-removable; 174 non-removable;
178 status = "okay"; 175 status = "okay";
@@ -181,7 +178,7 @@
181 reg = <1>; 178 reg = <1>;
182 compatible = "brcm,bcm4329-fmac"; 179 compatible = "brcm,bcm4329-fmac";
183 interrupt-parent = <&pio>; 180 interrupt-parent = <&pio>;
184 interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */ 181 interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
185 interrupt-names = "host-wake"; 182 interrupt-names = "host-wake";
186 }; 183 };
187}; 184};
@@ -199,23 +196,27 @@
199 status = "okay"; 196 status = "okay";
200}; 197};
201 198
199&otg_sram {
200 status = "okay";
201};
202
202&pio { 203&pio {
203 vmmc3_pin_cubietruck: vmmc3_pin@0 { 204 ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 {
204 allwinner,pins = "PH9"; 205 allwinner,pins = "PH12";
205 allwinner,function = "gpio_out"; 206 allwinner,function = "gpio_out";
206 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 207 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
207 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 208 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
208 }; 209 };
209 210
210 ahci_pwr_pin_cubietruck: ahci_pwr_pin@1 { 211 led_pins_cubietruck: led_pins@0 {
211 allwinner,pins = "PH12"; 212 allwinner,pins = "PH7", "PH11", "PH20", "PH21";
212 allwinner,function = "gpio_out"; 213 allwinner,function = "gpio_out";
213 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 214 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
214 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 215 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
215 }; 216 };
216 217
217 led_pins_cubietruck: led_pins@0 { 218 mmc3_pwrseq_pin_cubietruck: mmc3_pwrseq_pin@0 {
218 allwinner,pins = "PH7", "PH11", "PH20", "PH21"; 219 allwinner,pins = "PH9";
219 allwinner,function = "gpio_out"; 220 allwinner,function = "gpio_out";
220 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 221 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
221 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 222 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
@@ -227,6 +228,20 @@
227 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 228 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
228 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 229 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
229 }; 230 };
231
232 usb0_id_detect_pin: usb0_id_detect_pin@0 {
233 allwinner,pins = "PH19";
234 allwinner,function = "gpio_in";
235 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
236 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
237 };
238
239 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
240 allwinner,pins = "PH22";
241 allwinner,function = "gpio_in";
242 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
244 };
230}; 245};
231 246
232&pwm { 247&pwm {
@@ -288,7 +303,16 @@
288 status = "okay"; 303 status = "okay";
289}; 304};
290 305
306&usb_otg {
307 dr_mode = "otg";
308 status = "okay";
309};
310
291&usbphy { 311&usbphy {
312 pinctrl-names = "default";
313 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
314 usb0_id_det-gpios = <&pio 7 19 GPIO_ACTIVE_HIGH>; /* PH19 */
315 usb0_vbus_det-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
292 usb0_vbus-supply = <&reg_usb0_vbus>; 316 usb0_vbus-supply = <&reg_usb0_vbus>;
293 usb1_vbus-supply = <&reg_usb1_vbus>; 317 usb1_vbus-supply = <&reg_usb1_vbus>;
294 usb2_vbus-supply = <&reg_usb2_vbus>; 318 usb2_vbus-supply = <&reg_usb2_vbus>;
diff --git a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
index f32f6f20d923..1e6bd360dac0 100644
--- a/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
+++ b/arch/arm/boot/dts/sun7i-a20-i12-tvbox.dts
@@ -178,7 +178,7 @@
178 reg = <1>; 178 reg = <1>;
179 compatible = "brcm,bcm4329-fmac"; 179 compatible = "brcm,bcm4329-fmac";
180 interrupt-parent = <&pio>; 180 interrupt-parent = <&pio>;
181 interrupts = <10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */ 181 interrupts = <7 10 IRQ_TYPE_LEVEL_LOW>; /* PH10 / EINT10 */
182 interrupt-names = "host-wake"; 182 interrupt-names = "host-wake";
183 }; 183 };
184}; 184};
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
index 769726dfb046..04237085dc39 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime.dts
@@ -135,6 +135,10 @@
135 status = "okay"; 135 status = "okay";
136}; 136};
137 137
138&otg_sram {
139 status = "okay";
140};
141
138&pio { 142&pio {
139 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 { 143 ahci_pwr_pin_olinuxinolime: ahci_pwr_pin@1 {
140 allwinner,pins = "PC3"; 144 allwinner,pins = "PC3";
@@ -149,6 +153,20 @@
149 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 153 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
150 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 154 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
151 }; 155 };
156
157 usb0_id_detect_pin: usb0_id_detect_pin@0 {
158 allwinner,pins = "PH4";
159 allwinner,function = "gpio_in";
160 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
161 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
162 };
163
164 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
165 allwinner,pins = "PH5";
166 allwinner,function = "gpio_in";
167 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
168 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
169 };
152}; 170};
153 171
154&reg_ahci_5v { 172&reg_ahci_5v {
@@ -157,6 +175,10 @@
157 status = "okay"; 175 status = "okay";
158}; 176};
159 177
178&reg_usb0_vbus {
179 status = "okay";
180};
181
160&reg_usb1_vbus { 182&reg_usb1_vbus {
161 status = "okay"; 183 status = "okay";
162}; 184};
@@ -171,7 +193,17 @@
171 status = "okay"; 193 status = "okay";
172}; 194};
173 195
196&usb_otg {
197 dr_mode = "otg";
198 status = "okay";
199};
200
174&usbphy { 201&usbphy {
202 pinctrl-names = "default";
203 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
204 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
205 usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
206 usb0_vbus-supply = <&reg_usb0_vbus>;
175 usb1_vbus-supply = <&reg_usb1_vbus>; 207 usb1_vbus-supply = <&reg_usb1_vbus>;
176 usb2_vbus-supply = <&reg_usb2_vbus>; 208 usb2_vbus-supply = <&reg_usb2_vbus>;
177 status = "okay"; 209 status = "okay";
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
index 00f8f25eccae..c5d70caade82 100644
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
@@ -215,6 +215,10 @@
215 status = "okay"; 215 status = "okay";
216}; 216};
217 217
218&otg_sram {
219 status = "okay";
220};
221
218&pio { 222&pio {
219 mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 { 223 mmc3_cd_pin_olinuxinom: mmc3_cd_pin@0 {
220 allwinner,pins = "PH11"; 224 allwinner,pins = "PH11";
@@ -229,12 +233,30 @@
229 allwinner,drive = <SUN4I_PINCTRL_20_MA>; 233 allwinner,drive = <SUN4I_PINCTRL_20_MA>;
230 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 234 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
231 }; 235 };
236
237 usb0_id_detect_pin: usb0_id_detect_pin@0 {
238 allwinner,pins = "PH4";
239 allwinner,function = "gpio_in";
240 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
241 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
242 };
243
244 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
245 allwinner,pins = "PH5";
246 allwinner,function = "gpio_in";
247 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
248 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
249 };
232}; 250};
233 251
234&reg_ahci_5v { 252&reg_ahci_5v {
235 status = "okay"; 253 status = "okay";
236}; 254};
237 255
256&reg_usb0_vbus {
257 status = "okay";
258};
259
238&reg_usb1_vbus { 260&reg_usb1_vbus {
239 status = "okay"; 261 status = "okay";
240}; 262};
@@ -275,7 +297,17 @@
275 status = "okay"; 297 status = "okay";
276}; 298};
277 299
300&usb_otg {
301 dr_mode = "otg";
302 status = "okay";
303};
304
278&usbphy { 305&usbphy {
306 pinctrl-names = "default";
307 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
308 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
309 usb0_vbus_det-gpio = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
310 usb0_vbus-supply = <&reg_usb0_vbus>;
279 usb1_vbus-supply = <&reg_usb1_vbus>; 311 usb1_vbus-supply = <&reg_usb1_vbus>;
280 usb2_vbus-supply = <&reg_usb2_vbus>; 312 usb2_vbus-supply = <&reg_usb2_vbus>;
281 status = "okay"; 313 status = "okay";
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index d3b2f26417aa..2bebaa286f9a 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -722,6 +722,19 @@
722 #size-cells = <0>; 722 #size-cells = <0>;
723 }; 723 };
724 724
725 usb_otg: usb@01c13000 {
726 compatible = "allwinner,sun4i-a10-musb";
727 reg = <0x01c13000 0x0400>;
728 clocks = <&ahb_gates 0>;
729 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
730 interrupt-names = "mc";
731 phys = <&usbphy 0>;
732 phy-names = "usb";
733 extcon = <&usbphy 0>;
734 allwinner,sram = <&otg_sram 1>;
735 status = "disabled";
736 };
737
725 usbphy: phy@01c13400 { 738 usbphy: phy@01c13400 {
726 #phy-cells = <1>; 739 #phy-cells = <1>;
727 compatible = "allwinner,sun7i-a20-usb-phy"; 740 compatible = "allwinner,sun7i-a20-usb-phy";
@@ -825,8 +838,7 @@
825 clocks = <&apb0_gates 5>; 838 clocks = <&apb0_gates 5>;
826 gpio-controller; 839 gpio-controller;
827 interrupt-controller; 840 interrupt-controller;
828 #interrupt-cells = <2>; 841 #interrupt-cells = <3>;
829 #size-cells = <0>;
830 #gpio-cells = <3>; 842 #gpio-cells = <3>;
831 843
832 pwm0_pins_a: pwm0@0 { 844 pwm0_pins_a: pwm0@0 {
diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index c318c770b6c1..27a925ec17d2 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -347,6 +347,28 @@
347 #size-cells = <0>; 347 #size-cells = <0>;
348 }; 348 };
349 349
350 ehci0: usb@01c1a000 {
351 compatible = "allwinner,sun8i-a23-ehci", "generic-ehci";
352 reg = <0x01c1a000 0x100>;
353 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
354 clocks = <&ahb1_gates 26>;
355 resets = <&ahb1_rst 26>;
356 phys = <&usbphy 1>;
357 phy-names = "usb";
358 status = "disabled";
359 };
360
361 ohci0: usb@01c1a400 {
362 compatible = "allwinner,sun8i-a23-ohci", "generic-ohci";
363 reg = <0x01c1a400 0x100>;
364 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
365 clocks = <&ahb1_gates 29>, <&usb_clk 16>;
366 resets = <&ahb1_rst 29>;
367 phys = <&usbphy 1>;
368 phy-names = "usb";
369 status = "disabled";
370 };
371
350 pio: pinctrl@01c20800 { 372 pio: pinctrl@01c20800 {
351 /* compatible gets set in SoC specific dtsi file */ 373 /* compatible gets set in SoC specific dtsi file */
352 reg = <0x01c20800 0x400>; 374 reg = <0x01c20800 0x400>;
@@ -354,8 +376,7 @@
354 clocks = <&apb1_gates 5>; 376 clocks = <&apb1_gates 5>;
355 gpio-controller; 377 gpio-controller;
356 interrupt-controller; 378 interrupt-controller;
357 #address-cells = <1>; 379 #interrupt-cells = <3>;
358 #size-cells = <0>;
359 #gpio-cells = <3>; 380 #gpio-cells = <3>;
360 381
361 uart0_pins_a: uart0@0 { 382 uart0_pins_a: uart0@0 {
diff --git a/arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts b/arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts
index 95134c69cfc1..8d9da6886a4c 100644
--- a/arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts
+++ b/arch/arm/boot/dts/sun8i-a23-ippo-q8h-v5.dts
@@ -125,3 +125,12 @@
125 pinctrl-0 = <&r_uart_pins_a>; 125 pinctrl-0 = <&r_uart_pins_a>;
126 status = "okay"; 126 status = "okay";
127}; 127};
128
129&usb_otg {
130 dr_mode = "host";
131 status = "okay";
132};
133
134&usbphy {
135 status = "okay";
136};
diff --git a/arch/arm/boot/dts/sun8i-a23.dtsi b/arch/arm/boot/dts/sun8i-a23.dtsi
index 8698f7aa31c7..2cc27c7a59dc 100644
--- a/arch/arm/boot/dts/sun8i-a23.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23.dtsi
@@ -58,6 +58,39 @@
58 clock-output-names = "mbus"; 58 clock-output-names = "mbus";
59 }; 59 };
60 }; 60 };
61
62 soc@01c00000 {
63 usb_otg: usb@01c19000 {
64 compatible = "allwinner,sun6i-a31-musb";
65 reg = <0x01c19000 0x0400>;
66 clocks = <&ahb1_gates 24>;
67 resets = <&ahb1_rst 24>;
68 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
69 interrupt-names = "mc";
70 phys = <&usbphy 0>;
71 phy-names = "usb";
72 extcon = <&usbphy 0>;
73 status = "disabled";
74 };
75
76 usbphy: phy@01c19400 {
77 compatible = "allwinner,sun8i-a23-usb-phy";
78 reg = <0x01c19400 0x10>,
79 <0x01c1a800 0x4>;
80 reg-names = "phy_ctrl",
81 "pmu1";
82 clocks = <&usb_clk 8>,
83 <&usb_clk 9>;
84 clock-names = "usb0_phy",
85 "usb1_phy";
86 resets = <&usb_clk 0>,
87 <&usb_clk 1>;
88 reset-names = "usb0_reset",
89 "usb1_reset";
90 status = "disabled";
91 #phy-cells = <1>;
92 };
93 };
61}; 94};
62 95
63&pio { 96&pio {
diff --git a/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts b/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
index 866703355b9c..1aefc6793e25 100644
--- a/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
+++ b/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
@@ -61,6 +61,10 @@
61 }; 61 };
62}; 62};
63 63
64&ehci0 {
65 status = "okay";
66};
67
64&i2c0 { 68&i2c0 {
65 pinctrl-names = "default"; 69 pinctrl-names = "default";
66 pinctrl-0 = <&i2c0_pins_a>; 70 pinctrl-0 = <&i2c0_pins_a>;
@@ -109,6 +113,10 @@
109 status = "okay"; 113 status = "okay";
110}; 114};
111 115
116&ohci0 {
117 status = "okay";
118};
119
112&pio { 120&pio {
113 mmc0_cd_pin_q8h: mmc0_cd_pin@0 { 121 mmc0_cd_pin_q8h: mmc0_cd_pin@0 {
114 allwinner,pins = "PB4"; 122 allwinner,pins = "PB4";
@@ -123,3 +131,12 @@
123 pinctrl-0 = <&r_uart_pins_a>; 131 pinctrl-0 = <&r_uart_pins_a>;
124 status = "okay"; 132 status = "okay";
125}; 133};
134
135&usb_otg {
136 dr_mode = "host";
137 status = "okay";
138};
139
140&usbphy {
141 status = "okay";
142};
diff --git a/arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts b/arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts
new file mode 100644
index 000000000000..a43897515fb6
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-a33-ippo-q8h-v1.2.dts
@@ -0,0 +1,133 @@
1/*
2 * Copyright 2015 Hans de Goede <hdegoede@redhat.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-a33.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50
51/ {
52 model = "Ippo Q8H Quad Core Tablet (v1.2)";
53 compatible = "ippo,a33-q8h-v1.2", "allwinner,sun8i-a33";
54
55 aliases {
56 serial0 = &r_uart;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62};
63
64&i2c0 {
65 pinctrl-names = "default";
66 pinctrl-0 = <&i2c0_pins_a>;
67 status = "okay";
68};
69
70&i2c1 {
71 pinctrl-names = "default";
72 pinctrl-0 = <&i2c1_pins_a>;
73 status = "okay";
74};
75
76&lradc {
77 vref-supply = <&reg_vcc3v0>;
78 status = "okay";
79
80 button@200 {
81 label = "Volume Up";
82 linux,code = <KEY_VOLUMEUP>;
83 channel = <0>;
84 voltage = <200000>;
85 };
86
87 button@400 {
88 label = "Volume Down";
89 linux,code = <KEY_VOLUMEDOWN>;
90 channel = <0>;
91 voltage = <400000>;
92 };
93};
94
95&mmc0 {
96 pinctrl-names = "default";
97 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8h>;
98 vmmc-supply = <&reg_vcc3v0>;
99 bus-width = <4>;
100 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
101 cd-inverted;
102 status = "okay";
103};
104
105&pio {
106 mmc0_cd_pin_q8h: mmc0_cd_pin@0 {
107 allwinner,pins = "PB4";
108 allwinner,function = "gpio_in";
109 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
110 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
111 };
112};
113
114&r_uart {
115 pinctrl-names = "default";
116 pinctrl-0 = <&r_uart_pins_a>;
117 status = "okay";
118};
119
120/*
121 * FIXME for now we only support host mode and rely on u-boot to have
122 * turned on Vbus which is controlled by the axp223 pmic on the board.
123 *
124 * Once we have axp223 support we should switch to fully supporting otg.
125 */
126&usb_otg {
127 dr_mode = "host";
128 status = "okay";
129};
130
131&usbphy {
132 status = "okay";
133};
diff --git a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
index 5788c29cb56a..1d5390d4e03a 100644
--- a/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
+++ b/arch/arm/boot/dts/sun8i-a33-sinlinx-sina33.dts
@@ -63,6 +63,10 @@
63 }; 63 };
64}; 64};
65 65
66&ehci0 {
67 status = "okay";
68};
69
66&lradc { 70&lradc {
67 vref-supply = <&reg_vcc3v0>; 71 vref-supply = <&reg_vcc3v0>;
68 status = "okay"; 72 status = "okay";
@@ -113,6 +117,10 @@
113 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 117 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
114}; 118};
115 119
120&ohci0 {
121 status = "okay";
122};
123
116&pio { 124&pio {
117 mmc0_cd_pin_sina33: mmc0_cd_pin@0 { 125 mmc0_cd_pin_sina33: mmc0_cd_pin@0 {
118 allwinner,pins = "PB4"; 126 allwinner,pins = "PB4";
@@ -127,3 +135,8 @@
127 pinctrl-0 = <&uart0_pins_b>; 135 pinctrl-0 = <&uart0_pins_b>;
128 status = "okay"; 136 status = "okay";
129}; 137};
138
139&usbphy {
140 status = "okay";
141 usb1_vbus-supply = <&reg_vcc5v0>; /* USB1 VBUS is always on */
142};
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 85ee08098b7b..faa7d3c1fcea 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -80,6 +80,39 @@
80 clock-output-names = "mbus"; 80 clock-output-names = "mbus";
81 }; 81 };
82 }; 82 };
83
84 soc@01c00000 {
85 usb_otg: usb@01c19000 {
86 compatible = "allwinner,sun8i-a33-musb";
87 reg = <0x01c19000 0x0400>;
88 clocks = <&ahb1_gates 24>;
89 resets = <&ahb1_rst 24>;
90 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
91 interrupt-names = "mc";
92 phys = <&usbphy 0>;
93 phy-names = "usb";
94 extcon = <&usbphy 0>;
95 status = "disabled";
96 };
97
98 usbphy: phy@01c19400 {
99 compatible = "allwinner,sun8i-a33-usb-phy";
100 reg = <0x01c19400 0x14>,
101 <0x01c1a800 0x4>;
102 reg-names = "phy_ctrl",
103 "pmu1";
104 clocks = <&usb_clk 8>,
105 <&usb_clk 9>;
106 clock-names = "usb0_phy",
107 "usb1_phy";
108 resets = <&usb_clk 0>,
109 <&usb_clk 1>;
110 reset-names = "usb0_reset",
111 "usb1_reset";
112 status = "disabled";
113 #phy-cells = <1>;
114 };
115 };
83}; 116};
84 117
85&pio { 118&pio {
diff --git a/arch/arm/boot/dts/sunxi-common-regulators.dtsi b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
index 51cc8383f70f..f1953b0c5059 100644
--- a/arch/arm/boot/dts/sunxi-common-regulators.dtsi
+++ b/arch/arm/boot/dts/sunxi-common-regulators.dtsi
@@ -108,6 +108,7 @@
108 regulator-name = "usb1-vbus"; 108 regulator-name = "usb1-vbus";
109 regulator-min-microvolt = <5000000>; 109 regulator-min-microvolt = <5000000>;
110 regulator-max-microvolt = <5000000>; 110 regulator-max-microvolt = <5000000>;
111 regulator-boot-on;
111 enable-active-high; 112 enable-active-high;
112 gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; 113 gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>;
113 status = "disabled"; 114 status = "disabled";
@@ -120,6 +121,7 @@
120 regulator-name = "usb2-vbus"; 121 regulator-name = "usb2-vbus";
121 regulator-min-microvolt = <5000000>; 122 regulator-min-microvolt = <5000000>;
122 regulator-max-microvolt = <5000000>; 123 regulator-max-microvolt = <5000000>;
124 regulator-boot-on;
123 enable-active-high; 125 enable-active-high;
124 gpio = <&pio 7 3 GPIO_ACTIVE_HIGH>; 126 gpio = <&pio 7 3 GPIO_ACTIVE_HIGH>;
125 status = "disabled"; 127 status = "disabled";
diff --git a/arch/arm/boot/dts/tegra114.dtsi b/arch/arm/boot/dts/tegra114.dtsi
index f58a3d9d5f13..9d4f86e9c50a 100644
--- a/arch/arm/boot/dts/tegra114.dtsi
+++ b/arch/arm/boot/dts/tegra114.dtsi
@@ -214,9 +214,9 @@
214 #dma-cells = <1>; 214 #dma-cells = <1>;
215 }; 215 };
216 216
217 ahb: ahb@6000c004 { 217 ahb: ahb@6000c000 {
218 compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb"; 218 compatible = "nvidia,tegra114-ahb", "nvidia,tegra30-ahb";
219 reg = <0x6000c004 0x14c>; 219 reg = <0x6000c000 0x150>;
220 }; 220 };
221 221
222 gpio: gpio@6000d000 { 222 gpio: gpio@6000d000 {
@@ -234,6 +234,7 @@
234 gpio-controller; 234 gpio-controller;
235 #interrupt-cells = <2>; 235 #interrupt-cells = <2>;
236 interrupt-controller; 236 interrupt-controller;
237 gpio-ranges = <&pinmux 0 0 246>;
237 }; 238 };
238 239
239 apbmisc@70000800 { 240 apbmisc@70000800 {
diff --git a/arch/arm/boot/dts/tegra124-jetson-tk1.dts b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
index bd43ed6d6ec7..66b4451eb2ca 100644
--- a/arch/arm/boot/dts/tegra124-jetson-tk1.dts
+++ b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
@@ -53,6 +53,14 @@
53 }; 53 };
54 }; 54 };
55 55
56 gpu@0,57000000 {
57 /*
58 * Node left disabled on purpose - the bootloader will enable
59 * it after having set the VPR up
60 */
61 vdd-supply = <&vdd_gpu>;
62 };
63
56 pinmux: pinmux@0,70000868 { 64 pinmux: pinmux@0,70000868 {
57 pinctrl-names = "boot"; 65 pinctrl-names = "boot";
58 pinctrl-0 = <&state_boot>; 66 pinctrl-0 = <&state_boot>;
@@ -1462,7 +1470,7 @@
1462 vin-ldo9-10-supply = <&vdd_5v0_sys>; 1470 vin-ldo9-10-supply = <&vdd_5v0_sys>;
1463 vin-ldo11-supply = <&vdd_3v3_run>; 1471 vin-ldo11-supply = <&vdd_3v3_run>;
1464 1472
1465 sd0 { 1473 vdd_cpu: sd0 {
1466 regulator-name = "+VDD_CPU_AP"; 1474 regulator-name = "+VDD_CPU_AP";
1467 regulator-min-microvolt = <700000>; 1475 regulator-min-microvolt = <700000>;
1468 regulator-max-microvolt = <1400000>; 1476 regulator-max-microvolt = <1400000>;
@@ -1514,7 +1522,7 @@
1514 regulator-always-on; 1522 regulator-always-on;
1515 }; 1523 };
1516 1524
1517 sd6 { 1525 vdd_gpu: sd6 {
1518 regulator-name = "+VDD_GPU_AP"; 1526 regulator-name = "+VDD_GPU_AP";
1519 regulator-min-microvolt = <650000>; 1527 regulator-min-microvolt = <650000>;
1520 regulator-max-microvolt = <1200000>; 1528 regulator-max-microvolt = <1200000>;
@@ -1694,6 +1702,13 @@
1694 non-removable; 1702 non-removable;
1695 }; 1703 };
1696 1704
1705 /* CPU DFLL clock */
1706 clock@0,70110000 {
1707 status = "okay";
1708 vdd-cpu-supply = <&vdd_cpu>;
1709 nvidia,i2c-fs-rate = <400000>;
1710 };
1711
1697 ahub@0,70300000 { 1712 ahub@0,70300000 {
1698 i2s@0,70301100 { 1713 i2s@0,70301100 {
1699 status = "okay"; 1714 status = "okay";
@@ -1732,6 +1747,12 @@
1732 }; 1747 };
1733 }; 1748 };
1734 1749
1750 cpus {
1751 cpu@0 {
1752 vdd-cpu-supply = <&vdd_cpu>;
1753 };
1754 };
1755
1735 gpio-keys { 1756 gpio-keys {
1736 compatible = "gpio-keys"; 1757 compatible = "gpio-keys";
1737 1758
diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts
index 79e724bb7df7..cfbdf429b45d 100644
--- a/arch/arm/boot/dts/tegra124-venice2.dts
+++ b/arch/arm/boot/dts/tegra124-venice2.dts
@@ -43,6 +43,14 @@
43 }; 43 };
44 }; 44 };
45 45
46 gpu@0,57000000 {
47 /*
48 * Node left disabled on purpose - the bootloader will enable
49 * it after having set the VPR up
50 */
51 vdd-supply = <&vdd_gpu>;
52 };
53
46 pinmux: pinmux@0,70000868 { 54 pinmux: pinmux@0,70000868 {
47 pinctrl-names = "boot"; 55 pinctrl-names = "boot";
48 pinctrl-0 = <&pinmux_boot>; 56 pinctrl-0 = <&pinmux_boot>;
@@ -735,7 +743,7 @@
735 regulator-always-on; 743 regulator-always-on;
736 }; 744 };
737 745
738 sd6 { 746 vdd_gpu: sd6 {
739 regulator-name = "+VDD_GPU_AP"; 747 regulator-name = "+VDD_GPU_AP";
740 regulator-min-microvolt = <650000>; 748 regulator-min-microvolt = <650000>;
741 regulator-max-microvolt = <1200000>; 749 regulator-max-microvolt = <1200000>;
diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
index 01a9f742b08f..1e204a6de12c 100644
--- a/arch/arm/boot/dts/tegra124.dtsi
+++ b/arch/arm/boot/dts/tegra124.dtsi
@@ -4,6 +4,7 @@
4#include <dt-bindings/pinctrl/pinctrl-tegra.h> 4#include <dt-bindings/pinctrl/pinctrl-tegra.h>
5#include <dt-bindings/pinctrl/pinctrl-tegra-xusb.h> 5#include <dt-bindings/pinctrl/pinctrl-tegra-xusb.h>
6#include <dt-bindings/interrupt-controller/arm-gic.h> 6#include <dt-bindings/interrupt-controller/arm-gic.h>
7#include <dt-bindings/reset/tegra124-car.h>
7#include <dt-bindings/thermal/tegra124-soctherm.h> 8#include <dt-bindings/thermal/tegra124-soctherm.h>
8 9
9#include "skeleton.dtsi" 10#include "skeleton.dtsi"
@@ -188,6 +189,9 @@
188 clock-names = "gpu", "pwr"; 189 clock-names = "gpu", "pwr";
189 resets = <&tegra_car 184>; 190 resets = <&tegra_car 184>;
190 reset-names = "gpu"; 191 reset-names = "gpu";
192
193 iommus = <&mc TEGRA_SWGROUP_GPU>;
194
191 status = "disabled"; 195 status = "disabled";
192 }; 196 };
193 197
@@ -254,6 +258,7 @@
254 gpio-controller; 258 gpio-controller;
255 #interrupt-cells = <2>; 259 #interrupt-cells = <2>;
256 interrupt-controller; 260 interrupt-controller;
261 gpio-ranges = <&pinmux 0 0 251>;
257 }; 262 };
258 263
259 apbdma: dma@0,60020000 { 264 apbdma: dma@0,60020000 {
@@ -702,6 +707,30 @@
702 #thermal-sensor-cells = <1>; 707 #thermal-sensor-cells = <1>;
703 }; 708 };
704 709
710 dfll: clock@0,70110000 {
711 compatible = "nvidia,tegra124-dfll";
712 reg = <0 0x70110000 0 0x100>, /* DFLL control */
713 <0 0x70110000 0 0x100>, /* I2C output control */
714 <0 0x70110100 0 0x100>, /* Integrated I2C controller */
715 <0 0x70110200 0 0x100>; /* Look-up table RAM */
716 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
717 clocks = <&tegra_car TEGRA124_CLK_DFLL_SOC>,
718 <&tegra_car TEGRA124_CLK_DFLL_REF>,
719 <&tegra_car TEGRA124_CLK_I2C5>;
720 clock-names = "soc", "ref", "i2c";
721 resets = <&tegra_car TEGRA124_RST_DFLL_DVCO>;
722 reset-names = "dvco";
723 #clock-cells = <0>;
724 clock-output-names = "dfllCPU_out";
725 nvidia,sample-rate = <12500>;
726 nvidia,droop-ctrl = <0x00000f00>;
727 nvidia,force-mode = <1>;
728 nvidia,cf = <10>;
729 nvidia,ci = <0>;
730 nvidia,cg = <2>;
731 status = "disabled";
732 };
733
705 ahub@0,70300000 { 734 ahub@0,70300000 {
706 compatible = "nvidia,tegra124-ahub"; 735 compatible = "nvidia,tegra124-ahub";
707 reg = <0x0 0x70300000 0x0 0x200>, 736 reg = <0x0 0x70300000 0x0 0x200>,
@@ -922,6 +951,15 @@
922 device_type = "cpu"; 951 device_type = "cpu";
923 compatible = "arm,cortex-a15"; 952 compatible = "arm,cortex-a15";
924 reg = <0>; 953 reg = <0>;
954
955 clocks = <&tegra_car TEGRA124_CLK_CCLK_G>,
956 <&tegra_car TEGRA124_CLK_CCLK_LP>,
957 <&tegra_car TEGRA124_CLK_PLL_X>,
958 <&tegra_car TEGRA124_CLK_PLL_P>,
959 <&dfll>;
960 clock-names = "cpu_g", "cpu_lp", "pll_x", "pll_p", "dfll";
961 /* FIXME: what's the actual transition time? */
962 clock-latency = <300000>;
925 }; 963 };
926 964
927 cpu@1 { 965 cpu@1 {
@@ -943,6 +981,18 @@
943 }; 981 };
944 }; 982 };
945 983
984 pmu {
985 compatible = "arm,cortex-a15-pmu";
986 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
987 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
988 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
989 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
990 interrupt-affinity = <&{/cpus/cpu@0}>,
991 <&{/cpus/cpu@1}>,
992 <&{/cpus/cpu@2}>,
993 <&{/cpus/cpu@3}>;
994 };
995
946 thermal-zones { 996 thermal-zones {
947 cpu { 997 cpu {
948 polling-delay-passive = <1000>; 998 polling-delay-passive = <1000>;
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index f444b67f55c6..e058709e6d98 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -225,9 +225,9 @@
225 #dma-cells = <1>; 225 #dma-cells = <1>;
226 }; 226 };
227 227
228 ahb@6000c004 { 228 ahb@6000c000 {
229 compatible = "nvidia,tegra20-ahb"; 229 compatible = "nvidia,tegra20-ahb";
230 reg = <0x6000c004 0x10c>; /* AHB Arbitration + Gizmo Controller */ 230 reg = <0x6000c000 0x110>; /* AHB Arbitration + Gizmo Controller */
231 }; 231 };
232 232
233 gpio: gpio@6000d000 { 233 gpio: gpio@6000d000 {
@@ -244,6 +244,7 @@
244 gpio-controller; 244 gpio-controller;
245 #interrupt-cells = <2>; 245 #interrupt-cells = <2>;
246 interrupt-controller; 246 interrupt-controller;
247 gpio-ranges = <&pinmux 0 0 224>;
247 }; 248 };
248 249
249 apbmisc@70000800 { 250 apbmisc@70000800 {
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi
index 782b11b2af6a..fe04fb5e155f 100644
--- a/arch/arm/boot/dts/tegra30.dtsi
+++ b/arch/arm/boot/dts/tegra30.dtsi
@@ -329,9 +329,9 @@
329 #dma-cells = <1>; 329 #dma-cells = <1>;
330 }; 330 };
331 331
332 ahb: ahb@6000c004 { 332 ahb: ahb@6000c000 {
333 compatible = "nvidia,tegra30-ahb"; 333 compatible = "nvidia,tegra30-ahb";
334 reg = <0x6000c004 0x14c>; /* AHB Arbitration + Gizmo Controller */ 334 reg = <0x6000c000 0x150>; /* AHB Arbitration + Gizmo Controller */
335 }; 335 };
336 336
337 gpio: gpio@6000d000 { 337 gpio: gpio@6000d000 {
@@ -349,6 +349,7 @@
349 gpio-controller; 349 gpio-controller;
350 #interrupt-cells = <2>; 350 #interrupt-cells = <2>;
351 interrupt-controller; 351 interrupt-controller;
352 gpio-ranges = <&pinmux 0 0 248>;
352 }; 353 };
353 354
354 apbmisc@70000800 { 355 apbmisc@70000800 {
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts b/arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts
index 200b0c99ed34..bfd3bb8c8285 100644
--- a/arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ph1-ld4-ref.dts
@@ -44,6 +44,7 @@
44 44
45/dts-v1/; 45/dts-v1/;
46/include/ "uniphier-ph1-ld4.dtsi" 46/include/ "uniphier-ph1-ld4.dtsi"
47/include/ "uniphier-ref-daughter.dtsi"
47/include/ "uniphier-support-card.dtsi" 48/include/ "uniphier-support-card.dtsi"
48 49
49/ { 50/ {
@@ -57,11 +58,18 @@
57 58
58 chosen { 59 chosen {
59 bootargs = "console=ttyS0,115200"; 60 bootargs = "console=ttyS0,115200";
60 stdout-path = &serialsc; 61 stdout-path = &serial0;
61 }; 62 };
62 63
63 aliases { 64 aliases {
64 serial0 = &serialsc; 65 serial0 = &serial0;
66 serial1 = &serial1;
67 serial2 = &serial2;
68 serial3 = &serial3;
69 i2c0 = &i2c0;
70 i2c1 = &i2c1;
71 i2c2 = &i2c2;
72 i2c3 = &i2c3;
65 }; 73 };
66}; 74};
67 75
@@ -74,6 +82,30 @@
74 ranges = <0x00000000 1 0x03f00000 0x00100000>; 82 ranges = <0x00000000 1 0x03f00000 0x00100000>;
75}; 83};
76 84
77&serialsc { 85&ethsc {
78 interrupts = <0 49 4>; 86 interrupts = <0 49 4>;
79}; 87};
88
89&serial0 {
90 status = "okay";
91};
92
93&serial2 {
94 status = "okay";
95};
96
97&serial3 {
98 status = "okay";
99};
100
101&i2c0 {
102 status = "okay";
103};
104
105&usb0 {
106 status = "okay";
107};
108
109&usb1 {
110 status = "okay";
111};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
index 6a34c56e4693..a6a185fae8f1 100644
--- a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
@@ -64,6 +64,18 @@
64 compatible = "fixed-clock"; 64 compatible = "fixed-clock";
65 clock-frequency = <50000000>; 65 clock-frequency = <50000000>;
66 }; 66 };
67
68 uart_clk: uart_clk {
69 #clock-cells = <0>;
70 compatible = "fixed-clock";
71 clock-frequency = <36864000>;
72 };
73
74 iobus_clk: iobus_clk {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <100000000>;
78 };
67 }; 79 };
68 80
69 soc { 81 soc {
@@ -79,12 +91,141 @@
79 #size-cells = <1>; 91 #size-cells = <1>;
80 }; 92 };
81 93
94 serial0: serial@54006800 {
95 compatible = "socionext,uniphier-uart";
96 status = "disabled";
97 reg = <0x54006800 0x40>;
98 pinctrl-names = "default";
99 pinctrl-0 = <&pinctrl_uart0>;
100 interrupts = <0 33 4>;
101 clocks = <&uart_clk>;
102 fifo-size = <64>;
103 };
104
105 serial1: serial@54006900 {
106 compatible = "socionext,uniphier-uart";
107 status = "disabled";
108 reg = <0x54006900 0x40>;
109 pinctrl-names = "default";
110 pinctrl-0 = <&pinctrl_uart1>;
111 interrupts = <0 35 4>;
112 clocks = <&uart_clk>;
113 fifo-size = <64>;
114 };
115
116 serial2: serial@54006a00 {
117 compatible = "socionext,uniphier-uart";
118 status = "disabled";
119 reg = <0x54006a00 0x40>;
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_uart2>;
122 interrupts = <0 37 4>;
123 clocks = <&uart_clk>;
124 fifo-size = <64>;
125 };
126
127 serial3: serial@54006b00 {
128 compatible = "socionext,uniphier-uart";
129 status = "disabled";
130 reg = <0x54006b00 0x40>;
131 pinctrl-names = "default";
132 pinctrl-0 = <&pinctrl_uart3>;
133 interrupts = <0 29 4>;
134 clocks = <&uart_clk>;
135 fifo-size = <64>;
136 };
137
138 i2c0: i2c@58400000 {
139 compatible = "socionext,uniphier-i2c";
140 status = "disabled";
141 reg = <0x58400000 0x40>;
142 #address-cells = <1>;
143 #size-cells = <0>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_i2c0>;
146 interrupts = <0 41 1>;
147 clocks = <&iobus_clk>;
148 clock-frequency = <100000>;
149 };
150
151 i2c1: i2c@58480000 {
152 compatible = "socionext,uniphier-i2c";
153 status = "disabled";
154 reg = <0x58480000 0x40>;
155 #address-cells = <1>;
156 #size-cells = <0>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_i2c1>;
159 interrupts = <0 42 1>;
160 clocks = <&iobus_clk>;
161 clock-frequency = <100000>;
162 };
163
164 /* chip-internal connection for DMD */
165 i2c2: i2c@58500000 {
166 compatible = "socionext,uniphier-i2c";
167 reg = <0x58500000 0x40>;
168 #address-cells = <1>;
169 #size-cells = <0>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_i2c2>;
172 interrupts = <0 43 1>;
173 clocks = <&iobus_clk>;
174 clock-frequency = <400000>;
175 };
176
177 i2c3: i2c@58580000 {
178 compatible = "socionext,uniphier-i2c";
179 status = "disabled";
180 reg = <0x58580000 0x40>;
181 #address-cells = <1>;
182 #size-cells = <0>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_i2c3>;
185 interrupts = <0 44 1>;
186 clocks = <&iobus_clk>;
187 clock-frequency = <100000>;
188 };
189
82 system-bus-controller-misc@59800000 { 190 system-bus-controller-misc@59800000 {
83 compatible = "socionext,uniphier-system-bus-controller-misc", 191 compatible = "socionext,uniphier-system-bus-controller-misc",
84 "syscon"; 192 "syscon";
85 reg = <0x59800000 0x2000>; 193 reg = <0x59800000 0x2000>;
86 }; 194 };
87 195
196 usb0: usb@5a800100 {
197 compatible = "socionext,uniphier-ehci", "generic-ehci";
198 status = "disabled";
199 reg = <0x5a800100 0x100>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_usb0>;
202 interrupts = <0 80 4>;
203 };
204
205 usb1: usb@5a810100 {
206 compatible = "socionext,uniphier-ehci", "generic-ehci";
207 status = "disabled";
208 reg = <0x5a810100 0x100>;
209 pinctrl-names = "default";
210 pinctrl-0 = <&pinctrl_usb1>;
211 interrupts = <0 81 4>;
212 };
213
214 usb2: usb@5a820100 {
215 compatible = "socionext,uniphier-ehci", "generic-ehci";
216 status = "disabled";
217 reg = <0x5a820100 0x100>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_usb2>;
220 interrupts = <0 82 4>;
221 };
222
223 pinctrl: pinctrl@5f801000 {
224 compatible = "socionext,ph1-ld4-pinctrl",
225 "syscon";
226 reg = <0x5f801000 0xe00>;
227 };
228
88 timer@60000200 { 229 timer@60000200 {
89 compatible = "arm,cortex-a9-global-timer"; 230 compatible = "arm,cortex-a9-global-timer";
90 reg = <0x60000200 0x20>; 231 reg = <0x60000200 0x20>;
@@ -108,3 +249,5 @@
108 }; 249 };
109 }; 250 };
110}; 251};
252
253/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts
new file mode 100644
index 000000000000..33963acd7e8f
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-ph1-ld6b-ref.dts
@@ -0,0 +1,105 @@
1/*
2 * Device Tree Source for UniPhier PH1-LD6b Reference Board
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46/include/ "uniphier-ph1-ld6b.dtsi"
47/include/ "uniphier-ref-daughter.dtsi"
48/include/ "uniphier-support-card.dtsi"
49
50/ {
51 model = "UniPhier PH1-LD6b Reference Board";
52 compatible = "socionext,ph1-ld6b-ref", "socionext,ph1-ld6b";
53
54 memory {
55 device_type = "memory";
56 reg = <0x80000000 0x80000000>;
57 };
58
59 chosen {
60 bootargs = "console=ttyS0,115200";
61 stdout-path = &serial0;
62 };
63
64 aliases {
65 serial0 = &serial0;
66 serial1 = &serial1;
67 serial2 = &serial2;
68 i2c0 = &i2c0;
69 i2c1 = &i2c1;
70 i2c2 = &i2c2;
71 i2c3 = &i2c3;
72 i2c4 = &i2c4;
73 i2c5 = &i2c5;
74 i2c6 = &i2c6;
75 };
76};
77
78&extbus {
79 ranges = <0 0x00000000 0x0f000000 0x01000000
80 1 0x00000000 0x00000000 0x08000000>;
81};
82
83&support_card {
84 ranges = <0x00000000 1 0x03f00000 0x00100000>;
85};
86
87&ethsc {
88 interrupts = <0 50 4>;
89};
90
91&serial0 {
92 status = "okay";
93};
94
95&serial1 {
96 status = "okay";
97};
98
99&serial2 {
100 status = "okay";
101};
102
103&i2c0 {
104 status = "okay";
105};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
new file mode 100644
index 000000000000..c6499ee65bc6
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
@@ -0,0 +1,67 @@
1/*
2 * Device Tree Source for UniPhier PH1-LD6b SoC
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/*
46 * PH1-LD6b consists of two silicon dies: D-chip and A-chip.
47 * The D-chip (digital chip) is the same as the ProXstream2 die.
48 * Reuse the ProXstream2 device tree with some properties overridden.
49 */
50/include/ "uniphier-proxstream2.dtsi"
51
52/ {
53 compatible = "socionext,ph1-ld6b";
54};
55
56/* UART3 unavilable: the pads are not wired to the package balls */
57&serial3 {
58 status = "disabled";
59};
60
61/*
62 * PH1-LD6b and ProXstream2 have completely different packages,
63 * which makes the pinctrl driver unshareable.
64 */
65&pinctrl {
66 compatible = "socionext,ph1-ld6b-pinctrl", "syscon";
67};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts b/arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts
index d891135a70c2..69a5b7d39629 100644
--- a/arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ph1-pro4-ref.dts
@@ -44,6 +44,7 @@
44 44
45/dts-v1/; 45/dts-v1/;
46/include/ "uniphier-ph1-pro4.dtsi" 46/include/ "uniphier-ph1-pro4.dtsi"
47/include/ "uniphier-ref-daughter.dtsi"
47/include/ "uniphier-support-card.dtsi" 48/include/ "uniphier-support-card.dtsi"
48 49
49/ { 50/ {
@@ -57,11 +58,20 @@
57 58
58 chosen { 59 chosen {
59 bootargs = "console=ttyS0,115200"; 60 bootargs = "console=ttyS0,115200";
60 stdout-path = &serialsc; 61 stdout-path = &serial0;
61 }; 62 };
62 63
63 aliases { 64 aliases {
64 serial0 = &serialsc; 65 serial0 = &serial0;
66 serial1 = &serial1;
67 serial2 = &serial2;
68 serial3 = &serial3;
69 i2c0 = &i2c0;
70 i2c1 = &i2c1;
71 i2c2 = &i2c2;
72 i2c3 = &i2c3;
73 i2c5 = &i2c5;
74 i2c6 = &i2c6;
65 }; 75 };
66}; 76};
67 77
@@ -74,6 +84,30 @@
74 ranges = <0x00000000 1 0x03f00000 0x00100000>; 84 ranges = <0x00000000 1 0x03f00000 0x00100000>;
75}; 85};
76 86
77&serialsc { 87&ethsc {
78 interrupts = <0 50 4>; 88 interrupts = <0 50 4>;
79}; 89};
90
91&serial0 {
92 status = "okay";
93};
94
95&serial1 {
96 status = "okay";
97};
98
99&serial2 {
100 status = "okay";
101};
102
103&i2c0 {
104 status = "okay";
105};
106
107&usb2 {
108 status = "okay";
109};
110
111&usb3 {
112 status = "okay";
113};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
index dc633603aed2..e8bbc454d788 100644
--- a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
@@ -71,6 +71,18 @@
71 compatible = "fixed-clock"; 71 compatible = "fixed-clock";
72 clock-frequency = <50000000>; 72 clock-frequency = <50000000>;
73 }; 73 };
74
75 uart_clk: uart_clk {
76 #clock-cells = <0>;
77 compatible = "fixed-clock";
78 clock-frequency = <73728000>;
79 };
80
81 i2c_clk: i2c_clk {
82 #clock-cells = <0>;
83 compatible = "fixed-clock";
84 clock-frequency = <50000000>;
85 };
74 }; 86 };
75 87
76 soc { 88 soc {
@@ -86,12 +98,156 @@
86 #size-cells = <1>; 98 #size-cells = <1>;
87 }; 99 };
88 100
101 serial0: serial@54006800 {
102 compatible = "socionext,uniphier-uart";
103 status = "disabled";
104 reg = <0x54006800 0x40>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_uart0>;
107 interrupts = <0 33 4>;
108 clocks = <&uart_clk>;
109 fifo-size = <64>;
110 };
111
112 serial1: serial@54006900 {
113 compatible = "socionext,uniphier-uart";
114 status = "disabled";
115 reg = <0x54006900 0x40>;
116 pinctrl-names = "default";
117 pinctrl-0 = <&pinctrl_uart1>;
118 interrupts = <0 35 4>;
119 clocks = <&uart_clk>;
120 fifo-size = <64>;
121 };
122
123 serial2: serial@54006a00 {
124 compatible = "socionext,uniphier-uart";
125 status = "disabled";
126 reg = <0x54006a00 0x40>;
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_uart2>;
129 interrupts = <0 37 4>;
130 clocks = <&uart_clk>;
131 fifo-size = <64>;
132 };
133
134 serial3: serial@54006b00 {
135 compatible = "socionext,uniphier-uart";
136 status = "disabled";
137 reg = <0x54006b00 0x40>;
138 pinctrl-names = "default";
139 pinctrl-0 = <&pinctrl_uart3>;
140 interrupts = <0 29 4>;
141 clocks = <&uart_clk>;
142 fifo-size = <64>;
143 };
144
145 i2c0: i2c@58780000 {
146 compatible = "socionext,uniphier-fi2c";
147 status = "disabled";
148 reg = <0x58780000 0x80>;
149 #address-cells = <1>;
150 #size-cells = <0>;
151 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_i2c0>;
153 interrupts = <0 41 4>;
154 clocks = <&i2c_clk>;
155 clock-frequency = <100000>;
156 };
157
158 i2c1: i2c@58781000 {
159 compatible = "socionext,uniphier-fi2c";
160 status = "disabled";
161 reg = <0x58781000 0x80>;
162 #address-cells = <1>;
163 #size-cells = <0>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_i2c1>;
166 interrupts = <0 42 4>;
167 clocks = <&i2c_clk>;
168 clock-frequency = <100000>;
169 };
170
171 i2c2: i2c@58782000 {
172 compatible = "socionext,uniphier-fi2c";
173 status = "disabled";
174 reg = <0x58782000 0x80>;
175 #address-cells = <1>;
176 #size-cells = <0>;
177 pinctrl-names = "default";
178 pinctrl-0 = <&pinctrl_i2c2>;
179 interrupts = <0 43 4>;
180 clocks = <&i2c_clk>;
181 clock-frequency = <100000>;
182 };
183
184 i2c3: i2c@58783000 {
185 compatible = "socionext,uniphier-fi2c";
186 status = "disabled";
187 reg = <0x58783000 0x80>;
188 #address-cells = <1>;
189 #size-cells = <0>;
190 pinctrl-names = "default";
191 pinctrl-0 = <&pinctrl_i2c3>;
192 interrupts = <0 44 4>;
193 clocks = <&i2c_clk>;
194 clock-frequency = <100000>;
195 };
196
197 /* i2c4 does not exist */
198
199 /* chip-internal connection for DMD */
200 i2c5: i2c@58785000 {
201 compatible = "socionext,uniphier-fi2c";
202 reg = <0x58785000 0x80>;
203 #address-cells = <1>;
204 #size-cells = <0>;
205 interrupts = <0 25 4>;
206 clocks = <&i2c_clk>;
207 clock-frequency = <400000>;
208 };
209
210 /* chip-internal connection for HDMI */
211 i2c6: i2c@58786000 {
212 compatible = "socionext,uniphier-fi2c";
213 reg = <0x58786000 0x80>;
214 #address-cells = <1>;
215 #size-cells = <0>;
216 interrupts = <0 26 4>;
217 clocks = <&i2c_clk>;
218 clock-frequency = <400000>;
219 };
220
89 system-bus-controller-misc@59800000 { 221 system-bus-controller-misc@59800000 {
90 compatible = "socionext,uniphier-system-bus-controller-misc", 222 compatible = "socionext,uniphier-system-bus-controller-misc",
91 "syscon"; 223 "syscon";
92 reg = <0x59800000 0x2000>; 224 reg = <0x59800000 0x2000>;
93 }; 225 };
94 226
227 usb2: usb@5a800100 {
228 compatible = "socionext,uniphier-ehci", "generic-ehci";
229 status = "disabled";
230 reg = <0x5a800100 0x100>;
231 pinctrl-names = "default";
232 pinctrl-0 = <&pinctrl_usb2>;
233 interrupts = <0 80 4>;
234 };
235
236 usb3: usb@5a810100 {
237 compatible = "socionext,uniphier-ehci", "generic-ehci";
238 status = "disabled";
239 reg = <0x5a810100 0x100>;
240 pinctrl-names = "default";
241 pinctrl-0 = <&pinctrl_usb3>;
242 interrupts = <0 81 4>;
243 };
244
245 pinctrl: pinctrl@5f801000 {
246 compatible = "socionext,ph1-pro4-pinctrl",
247 "syscon";
248 reg = <0x5f801000 0xe00>;
249 };
250
95 timer@60000200 { 251 timer@60000200 {
96 compatible = "arm,cortex-a9-global-timer"; 252 compatible = "arm,cortex-a9-global-timer";
97 reg = <0x60000200 0x20>; 253 reg = <0x60000200 0x20>;
@@ -115,3 +271,5 @@
115 }; 271 };
116 }; 272 };
117}; 273};
274
275/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
new file mode 100644
index 000000000000..59c2b127cffa
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
@@ -0,0 +1,252 @@
1/*
2 * Device Tree Source for UniPhier PH1-Pro5 SoC
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/include/ "skeleton.dtsi"
46
47/ {
48 compatible = "socionext,ph1-pro5";
49
50 cpus {
51 #address-cells = <1>;
52 #size-cells = <0>;
53 enable-method = "socionext,uniphier-smp";
54
55 cpu@0 {
56 device_type = "cpu";
57 compatible = "arm,cortex-a9";
58 reg = <0>;
59 };
60
61 cpu@1 {
62 device_type = "cpu";
63 compatible = "arm,cortex-a9";
64 reg = <1>;
65 };
66 };
67
68 clocks {
69 arm_timer_clk: arm_timer_clk {
70 #clock-cells = <0>;
71 compatible = "fixed-clock";
72 clock-frequency = <50000000>;
73 };
74
75 uart_clk: uart_clk {
76 #clock-cells = <0>;
77 compatible = "fixed-clock";
78 clock-frequency = <73728000>;
79 };
80
81 i2c_clk: i2c_clk {
82 #clock-cells = <0>;
83 compatible = "fixed-clock";
84 clock-frequency = <50000000>;
85 };
86 };
87
88 soc {
89 compatible = "simple-bus";
90 #address-cells = <1>;
91 #size-cells = <1>;
92 ranges;
93 interrupt-parent = <&intc>;
94
95 extbus: extbus {
96 compatible = "simple-bus";
97 #address-cells = <2>;
98 #size-cells = <1>;
99 };
100
101 serial0: serial@54006800 {
102 compatible = "socionext,uniphier-uart";
103 status = "disabled";
104 reg = <0x54006800 0x40>;
105 pinctrl-names = "default";
106 pinctrl-0 = <&pinctrl_uart0>;
107 interrupts = <0 33 4>;
108 clocks = <&uart_clk>;
109 };
110
111 serial1: serial@54006900 {
112 compatible = "socionext,uniphier-uart";
113 status = "disabled";
114 reg = <0x54006900 0x40>;
115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_uart1>;
117 interrupts = <0 35 4>;
118 clocks = <&uart_clk>;
119 };
120
121 serial2: serial@54006a00 {
122 compatible = "socionext,uniphier-uart";
123 status = "disabled";
124 reg = <0x54006a00 0x40>;
125 pinctrl-names = "default";
126 pinctrl-0 = <&pinctrl_uart2>;
127 interrupts = <0 37 4>;
128 clocks = <&uart_clk>;
129 };
130
131 serial3: serial@54006b00 {
132 compatible = "socionext,uniphier-uart";
133 status = "disabled";
134 reg = <0x54006b00 0x40>;
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_uart3>;
137 interrupts = <0 177 4>;
138 clocks = <&uart_clk>;
139 };
140
141 i2c0: i2c@58780000 {
142 compatible = "socionext,uniphier-fi2c";
143 status = "disabled";
144 reg = <0x58780000 0x80>;
145 #address-cells = <1>;
146 #size-cells = <0>;
147 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_i2c0>;
149 interrupts = <0 41 4>;
150 clocks = <&i2c_clk>;
151 clock-frequency = <100000>;
152 };
153
154 i2c1: i2c@58781000 {
155 compatible = "socionext,uniphier-fi2c";
156 status = "disabled";
157 reg = <0x58781000 0x80>;
158 #address-cells = <1>;
159 #size-cells = <0>;
160 pinctrl-names = "default";
161 pinctrl-0 = <&pinctrl_i2c1>;
162 interrupts = <0 42 4>;
163 clocks = <&i2c_clk>;
164 clock-frequency = <100000>;
165 };
166
167 i2c2: i2c@58782000 {
168 compatible = "socionext,uniphier-fi2c";
169 status = "disabled";
170 reg = <0x58782000 0x80>;
171 #address-cells = <1>;
172 #size-cells = <0>;
173 pinctrl-names = "default";
174 pinctrl-0 = <&pinctrl_i2c2>;
175 interrupts = <0 43 4>;
176 clocks = <&i2c_clk>;
177 clock-frequency = <100000>;
178 };
179
180 i2c3: i2c@58783000 {
181 compatible = "socionext,uniphier-fi2c";
182 status = "disabled";
183 reg = <0x58783000 0x80>;
184 #address-cells = <1>;
185 #size-cells = <0>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_i2c3>;
188 interrupts = <0 44 4>;
189 clocks = <&i2c_clk>;
190 clock-frequency = <100000>;
191 };
192
193 /* i2c4 does not exist */
194
195 /* chip-internal connection for DMD */
196 i2c5: i2c@58785000 {
197 compatible = "socionext,uniphier-fi2c";
198 reg = <0x58785000 0x80>;
199 #address-cells = <1>;
200 #size-cells = <0>;
201 interrupts = <0 25 4>;
202 clocks = <&i2c_clk>;
203 clock-frequency = <400000>;
204 };
205
206 /* chip-internal connection for HDMI */
207 i2c6: i2c@58786000 {
208 compatible = "socionext,uniphier-fi2c";
209 reg = <0x58786000 0x80>;
210 #address-cells = <1>;
211 #size-cells = <0>;
212 interrupts = <0 26 4>;
213 clocks = <&i2c_clk>;
214 clock-frequency = <400000>;
215 };
216
217 system-bus-controller-misc@59800000 {
218 compatible = "socionext,uniphier-system-bus-controller-misc",
219 "syscon";
220 reg = <0x59800000 0x2000>;
221 };
222
223 pinctrl: pinctrl@5f801000 {
224 compatible = "socionext,ph1-pro5-pinctrl", "syscon";
225 reg = <0x5f801000 0xe00>;
226 };
227
228 timer@60000200 {
229 compatible = "arm,cortex-a9-global-timer";
230 reg = <0x60000200 0x20>;
231 interrupts = <1 11 0x304>;
232 clocks = <&arm_timer_clk>;
233 };
234
235 timer@60000600 {
236 compatible = "arm,cortex-a9-twd-timer";
237 reg = <0x60000600 0x20>;
238 interrupts = <1 13 0x304>;
239 clocks = <&arm_timer_clk>;
240 };
241
242 intc: interrupt-controller@60001000 {
243 compatible = "arm,cortex-a9-gic";
244 #interrupt-cells = <3>;
245 interrupt-controller;
246 reg = <0x60001000 0x1000>,
247 <0x60000100 0x100>;
248 };
249 };
250};
251
252/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts b/arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts
index 3ea64ae009e9..1a440f87fa92 100644
--- a/arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ph1-sld3-ref.dts
@@ -44,6 +44,7 @@
44 44
45/dts-v1/; 45/dts-v1/;
46/include/ "uniphier-ph1-sld3.dtsi" 46/include/ "uniphier-ph1-sld3.dtsi"
47/include/ "uniphier-ref-daughter.dtsi"
47/include/ "uniphier-support-card.dtsi" 48/include/ "uniphier-support-card.dtsi"
48 49
49/ { 50/ {
@@ -58,11 +59,18 @@
58 59
59 chosen { 60 chosen {
60 bootargs = "console=ttyS0,115200"; 61 bootargs = "console=ttyS0,115200";
61 stdout-path = &serialsc; 62 stdout-path = &serial0;
62 }; 63 };
63 64
64 aliases { 65 aliases {
65 serial0 = &serialsc; 66 serial0 = &serial0;
67 serial1 = &serial1;
68 serial2 = &serial2;
69 i2c0 = &i2c0;
70 i2c1 = &i2c1;
71 i2c2 = &i2c2;
72 i2c3 = &i2c3;
73 i2c4 = &i2c4;
66 }; 74 };
67}; 75};
68 76
@@ -75,6 +83,38 @@
75 ranges = <0x00000000 1 0x03f00000 0x00100000>; 83 ranges = <0x00000000 1 0x03f00000 0x00100000>;
76}; 84};
77 85
78&serialsc { 86&ethsc {
79 interrupts = <0 49 4>; 87 interrupts = <0 49 4>;
80}; 88};
89
90&serial0 {
91 status = "okay";
92};
93
94&serial1 {
95 status = "okay";
96};
97
98&serial2 {
99 status = "okay";
100};
101
102&i2c0 {
103 status = "okay";
104};
105
106&usb0 {
107 status = "okay";
108};
109
110&usb1 {
111 status = "okay";
112};
113
114&usb2 {
115 status = "okay";
116};
117
118&usb3 {
119 status = "okay";
120};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld3.dtsi b/arch/arm/boot/dts/uniphier-ph1-sld3.dtsi
index 248b1886834f..3cc90cd37a26 100644
--- a/arch/arm/boot/dts/uniphier-ph1-sld3.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-sld3.dtsi
@@ -71,6 +71,18 @@
71 compatible = "fixed-clock"; 71 compatible = "fixed-clock";
72 clock-frequency = <50000000>; 72 clock-frequency = <50000000>;
73 }; 73 };
74
75 uart_clk: uart_clk {
76 #clock-cells = <0>;
77 compatible = "fixed-clock";
78 clock-frequency = <36864000>;
79 };
80
81 iobus_clk: iobus_clk {
82 #clock-cells = <0>;
83 compatible = "fixed-clock";
84 clock-frequency = <100000000>;
85 };
74 }; 86 };
75 87
76 soc { 88 soc {
@@ -108,10 +120,120 @@
108 <0x20000100 0x100>; 120 <0x20000100 0x100>;
109 }; 121 };
110 122
123 serial0: serial@54006800 {
124 compatible = "socionext,uniphier-uart";
125 status = "disabled";
126 reg = <0x54006800 0x40>;
127 interrupts = <0 33 4>;
128 clocks = <&uart_clk>;
129 fifo-size = <64>;
130 };
131
132 serial1: serial@54006900 {
133 compatible = "socionext,uniphier-uart";
134 status = "disabled";
135 reg = <0x54006900 0x40>;
136 interrupts = <0 35 4>;
137 clocks = <&uart_clk>;
138 fifo-size = <64>;
139 };
140
141 serial2: serial@54006a00 {
142 compatible = "socionext,uniphier-uart";
143 status = "disabled";
144 reg = <0x54006a00 0x40>;
145 interrupts = <0 37 4>;
146 clocks = <&uart_clk>;
147 fifo-size = <64>;
148 };
149
150 i2c0: i2c@58400000 {
151 compatible = "socionext,uniphier-i2c";
152 status = "disabled";
153 reg = <0x58400000 0x40>;
154 #address-cells = <1>;
155 #size-cells = <0>;
156 interrupts = <0 41 1>;
157 clocks = <&iobus_clk>;
158 clock-frequency = <100000>;
159 };
160
161 i2c1: i2c@58480000 {
162 compatible = "socionext,uniphier-i2c";
163 status = "disabled";
164 reg = <0x58480000 0x40>;
165 #address-cells = <1>;
166 #size-cells = <0>;
167 interrupts = <0 42 1>;
168 clocks = <&iobus_clk>;
169 clock-frequency = <100000>;
170 };
171
172 i2c2: i2c@58500000 {
173 compatible = "socionext,uniphier-i2c";
174 status = "disabled";
175 reg = <0x58500000 0x40>;
176 #address-cells = <1>;
177 #size-cells = <0>;
178 interrupts = <0 43 1>;
179 clocks = <&iobus_clk>;
180 clock-frequency = <100000>;
181 };
182
183 i2c3: i2c@58580000 {
184 compatible = "socionext,uniphier-i2c";
185 status = "disabled";
186 reg = <0x58580000 0x40>;
187 #address-cells = <1>;
188 #size-cells = <0>;
189 interrupts = <0 44 1>;
190 clocks = <&iobus_clk>;
191 clock-frequency = <100000>;
192 };
193
194 /* chip-internal connection for DMD */
195 i2c4: i2c@58600000 {
196 compatible = "socionext,uniphier-i2c";
197 reg = <0x58600000 0x40>;
198 #address-cells = <1>;
199 #size-cells = <0>;
200 interrupts = <0 45 1>;
201 clocks = <&iobus_clk>;
202 clock-frequency = <400000>;
203 };
204
111 system-bus-controller-misc@59800000 { 205 system-bus-controller-misc@59800000 {
112 compatible = "socionext,uniphier-system-bus-controller-misc", 206 compatible = "socionext,uniphier-system-bus-controller-misc",
113 "syscon"; 207 "syscon";
114 reg = <0x59800000 0x2000>; 208 reg = <0x59800000 0x2000>;
115 }; 209 };
210
211 usb0: usb@5a800100 {
212 compatible = "socionext,uniphier-ehci", "generic-ehci";
213 status = "disabled";
214 reg = <0x5a800100 0x100>;
215 interrupts = <0 80 4>;
216 };
217
218 usb1: usb@5a810100 {
219 compatible = "socionext,uniphier-ehci", "generic-ehci";
220 status = "disabled";
221 reg = <0x5a810100 0x100>;
222 interrupts = <0 81 4>;
223 };
224
225 usb2: usb@5a820100 {
226 compatible = "socionext,uniphier-ehci", "generic-ehci";
227 status = "disabled";
228 reg = <0x5a820100 0x100>;
229 interrupts = <0 82 4>;
230 };
231
232 usb3: usb@5a830100 {
233 compatible = "socionext,uniphier-ehci", "generic-ehci";
234 status = "disabled";
235 reg = <0x5a830100 0x100>;
236 interrupts = <0 83 4>;
237 };
116 }; 238 };
117}; 239};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts b/arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts
index dcdc4f74387d..955d417a5c42 100644
--- a/arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ph1-sld8-ref.dts
@@ -44,6 +44,7 @@
44 44
45/dts-v1/; 45/dts-v1/;
46/include/ "uniphier-ph1-sld8.dtsi" 46/include/ "uniphier-ph1-sld8.dtsi"
47/include/ "uniphier-ref-daughter.dtsi"
47/include/ "uniphier-support-card.dtsi" 48/include/ "uniphier-support-card.dtsi"
48 49
49/ { 50/ {
@@ -57,11 +58,18 @@
57 58
58 chosen { 59 chosen {
59 bootargs = "console=ttyS0,115200"; 60 bootargs = "console=ttyS0,115200";
60 stdout-path = &serialsc; 61 stdout-path = &serial0;
61 }; 62 };
62 63
63 aliases { 64 aliases {
64 serial0 = &serialsc; 65 serial0 = &serial0;
66 serial1 = &serial1;
67 serial2 = &serial2;
68 serial3 = &serial3;
69 i2c0 = &i2c0;
70 i2c1 = &i2c1;
71 i2c2 = &i2c2;
72 i2c3 = &i2c3;
65 }; 73 };
66}; 74};
67 75
@@ -74,6 +82,34 @@
74 ranges = <0x00000000 1 0x03f00000 0x00100000>; 82 ranges = <0x00000000 1 0x03f00000 0x00100000>;
75}; 83};
76 84
77&serialsc { 85&ethsc {
78 interrupts = <0 48 4>; 86 interrupts = <0 48 4>;
79}; 87};
88
89&serial0 {
90 status = "okay";
91};
92
93&serial2 {
94 status = "okay";
95};
96
97&serial3 {
98 status = "okay";
99};
100
101&i2c0 {
102 status = "okay";
103};
104
105&usb0 {
106 status = "okay";
107};
108
109&usb1 {
110 status = "okay";
111};
112
113&usb2 {
114 status = "okay";
115};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
index baa71e1febb8..58067dfc16e5 100644
--- a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
@@ -64,6 +64,18 @@
64 compatible = "fixed-clock"; 64 compatible = "fixed-clock";
65 clock-frequency = <50000000>; 65 clock-frequency = <50000000>;
66 }; 66 };
67
68 uart_clk: uart_clk {
69 #clock-cells = <0>;
70 compatible = "fixed-clock";
71 clock-frequency = <80000000>;
72 };
73
74 iobus_clk: iobus_clk {
75 #clock-cells = <0>;
76 compatible = "fixed-clock";
77 clock-frequency = <100000000>;
78 };
67 }; 79 };
68 80
69 soc { 81 soc {
@@ -79,12 +91,141 @@
79 #size-cells = <1>; 91 #size-cells = <1>;
80 }; 92 };
81 93
94 serial0: serial@54006800 {
95 compatible = "socionext,uniphier-uart";
96 status = "disabled";
97 reg = <0x54006800 0x40>;
98 pinctrl-names = "default";
99 pinctrl-0 = <&pinctrl_uart0>;
100 interrupts = <0 33 4>;
101 clocks = <&uart_clk>;
102 fifo-size = <64>;
103 };
104
105 serial1: serial@54006900 {
106 compatible = "socionext,uniphier-uart";
107 status = "disabled";
108 reg = <0x54006900 0x40>;
109 pinctrl-names = "default";
110 pinctrl-0 = <&pinctrl_uart1>;
111 interrupts = <0 35 4>;
112 clocks = <&uart_clk>;
113 fifo-size = <64>;
114 };
115
116 serial2: serial@54006a00 {
117 compatible = "socionext,uniphier-uart";
118 status = "disabled";
119 reg = <0x54006a00 0x40>;
120 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_uart2>;
122 interrupts = <0 37 4>;
123 clocks = <&uart_clk>;
124 fifo-size = <64>;
125 };
126
127 serial3: serial@54006b00 {
128 compatible = "socionext,uniphier-uart";
129 status = "disabled";
130 reg = <0x54006b00 0x40>;
131 pinctrl-names = "default";
132 pinctrl-0 = <&pinctrl_uart3>;
133 interrupts = <0 29 4>;
134 clocks = <&uart_clk>;
135 fifo-size = <64>;
136 };
137
138 i2c0: i2c@58400000 {
139 compatible = "socionext,uniphier-i2c";
140 status = "disabled";
141 reg = <0x58400000 0x40>;
142 #address-cells = <1>;
143 #size-cells = <0>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_i2c0>;
146 interrupts = <0 41 1>;
147 clocks = <&iobus_clk>;
148 clock-frequency = <100000>;
149 };
150
151 i2c1: i2c@58480000 {
152 compatible = "socionext,uniphier-i2c";
153 status = "disabled";
154 reg = <0x58480000 0x40>;
155 #address-cells = <1>;
156 #size-cells = <0>;
157 pinctrl-names = "default";
158 pinctrl-0 = <&pinctrl_i2c1>;
159 interrupts = <0 42 1>;
160 clocks = <&iobus_clk>;
161 clock-frequency = <100000>;
162 };
163
164 /* chip-internal connection for DMD */
165 i2c2: i2c@58500000 {
166 compatible = "socionext,uniphier-i2c";
167 reg = <0x58500000 0x40>;
168 #address-cells = <1>;
169 #size-cells = <0>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&pinctrl_i2c2>;
172 interrupts = <0 43 1>;
173 clocks = <&iobus_clk>;
174 clock-frequency = <400000>;
175 };
176
177 i2c3: i2c@58580000 {
178 compatible = "socionext,uniphier-i2c";
179 status = "disabled";
180 reg = <0x58580000 0x40>;
181 #address-cells = <1>;
182 #size-cells = <0>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_i2c3>;
185 interrupts = <0 44 1>;
186 clocks = <&iobus_clk>;
187 clock-frequency = <100000>;
188 };
189
82 system-bus-controller-misc@59800000 { 190 system-bus-controller-misc@59800000 {
83 compatible = "socionext,uniphier-system-bus-controller-misc", 191 compatible = "socionext,uniphier-system-bus-controller-misc",
84 "syscon"; 192 "syscon";
85 reg = <0x59800000 0x2000>; 193 reg = <0x59800000 0x2000>;
86 }; 194 };
87 195
196 usb0: usb@5a800100 {
197 compatible = "socionext,uniphier-ehci", "generic-ehci";
198 status = "disabled";
199 reg = <0x5a800100 0x100>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_usb0>;
202 interrupts = <0 80 4>;
203 };
204
205 usb1: usb@5a810100 {
206 compatible = "socionext,uniphier-ehci", "generic-ehci";
207 status = "disabled";
208 reg = <0x5a810100 0x100>;
209 pinctrl-names = "default";
210 pinctrl-0 = <&pinctrl_usb1>;
211 interrupts = <0 81 4>;
212 };
213
214 usb2: usb@5a820100 {
215 compatible = "socionext,uniphier-ehci", "generic-ehci";
216 status = "disabled";
217 reg = <0x5a820100 0x100>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_usb2>;
220 interrupts = <0 82 4>;
221 };
222
223 pinctrl: pinctrl@5f801000 {
224 compatible = "socionext,ph1-sld8-pinctrl",
225 "syscon";
226 reg = <0x5f801000 0xe00>;
227 };
228
88 timer@60000200 { 229 timer@60000200 {
89 compatible = "arm,cortex-a9-global-timer"; 230 compatible = "arm,cortex-a9-global-timer";
90 reg = <0x60000200 0x20>; 231 reg = <0x60000200 0x20>;
@@ -108,3 +249,5 @@
108 }; 249 };
109 }; 250 };
110}; 251};
252
253/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
new file mode 100644
index 000000000000..f67445f4f10d
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
@@ -0,0 +1,105 @@
1/*
2 * Device Tree Source for UniPhier SoCs default pinctrl settings
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45&pinctrl {
46 pinctrl_i2c0: i2c0_grp {
47 groups = "i2c0";
48 function = "i2c0";
49 };
50
51 pinctrl_i2c1: i2c1_grp {
52 groups = "i2c1";
53 function = "i2c1";
54 };
55
56 pinctrl_i2c2: i2c2_grp {
57 groups = "i2c2";
58 function = "i2c2";
59 };
60
61 pinctrl_i2c3: i2c3_grp {
62 groups = "i2c3";
63 function = "i2c3";
64 };
65
66 pinctrl_uart0: uart0_grp {
67 groups = "uart0";
68 function = "uart0";
69 };
70
71 pinctrl_uart1: uart1_grp {
72 groups = "uart1";
73 function = "uart1";
74 };
75
76 pinctrl_uart2: uart2_grp {
77 groups = "uart2";
78 function = "uart2";
79 };
80
81 pinctrl_uart3: uart3_grp {
82 groups = "uart3";
83 function = "uart3";
84 };
85
86 pinctrl_usb0: usb0_grp {
87 groups = "usb0";
88 function = "usb0";
89 };
90
91 pinctrl_usb1: usb1_grp {
92 groups = "usb1";
93 function = "usb1";
94 };
95
96 pinctrl_usb2: usb2_grp {
97 groups = "usb2";
98 function = "usb2";
99 };
100
101 pinctrl_usb3: usb3_grp {
102 groups = "usb3";
103 function = "usb3";
104 };
105};
diff --git a/arch/arm/boot/dts/uniphier-proxstream2.dtsi b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
new file mode 100644
index 000000000000..4c7b24611012
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
@@ -0,0 +1,273 @@
1/*
2 * Device Tree Source for UniPhier ProXstream2 SoC
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/include/ "skeleton.dtsi"
46
47/ {
48 compatible = "socionext,proxstream2";
49
50 cpus {
51 #address-cells = <1>;
52 #size-cells = <0>;
53 enable-method = "socionext,uniphier-smp";
54
55 cpu@0 {
56 device_type = "cpu";
57 compatible = "arm,cortex-a9";
58 reg = <0>;
59 };
60
61 cpu@1 {
62 device_type = "cpu";
63 compatible = "arm,cortex-a9";
64 reg = <1>;
65 };
66
67 cpu@2 {
68 device_type = "cpu";
69 compatible = "arm,cortex-a9";
70 reg = <2>;
71 };
72
73 cpu@3 {
74 device_type = "cpu";
75 compatible = "arm,cortex-a9";
76 reg = <3>;
77 };
78 };
79
80 clocks {
81 arm_timer_clk: arm_timer_clk {
82 #clock-cells = <0>;
83 compatible = "fixed-clock";
84 clock-frequency = <50000000>;
85 };
86
87 uart_clk: uart_clk {
88 #clock-cells = <0>;
89 compatible = "fixed-clock";
90 clock-frequency = <88900000>;
91 };
92
93 i2c_clk: i2c_clk {
94 #clock-cells = <0>;
95 compatible = "fixed-clock";
96 clock-frequency = <50000000>;
97 };
98 };
99
100 soc {
101 compatible = "simple-bus";
102 #address-cells = <1>;
103 #size-cells = <1>;
104 ranges;
105 interrupt-parent = <&intc>;
106
107 extbus: extbus {
108 compatible = "simple-bus";
109 #address-cells = <2>;
110 #size-cells = <1>;
111 };
112
113 serial0: serial@54006800 {
114 compatible = "socionext,uniphier-uart";
115 status = "disabled";
116 reg = <0x54006800 0x40>;
117 pinctrl-names = "default";
118 pinctrl-0 = <&pinctrl_uart0>;
119 interrupts = <0 33 4>;
120 clocks = <&uart_clk>;
121 };
122
123 serial1: serial@54006900 {
124 compatible = "socionext,uniphier-uart";
125 status = "disabled";
126 reg = <0x54006900 0x40>;
127 pinctrl-names = "default";
128 pinctrl-0 = <&pinctrl_uart1>;
129 interrupts = <0 35 4>;
130 clocks = <&uart_clk>;
131 };
132
133 serial2: serial@54006a00 {
134 compatible = "socionext,uniphier-uart";
135 status = "disabled";
136 reg = <0x54006a00 0x40>;
137 pinctrl-names = "default";
138 pinctrl-0 = <&pinctrl_uart2>;
139 interrupts = <0 37 4>;
140 clocks = <&uart_clk>;
141 };
142
143 serial3: serial@54006b00 {
144 compatible = "socionext,uniphier-uart";
145 status = "disabled";
146 reg = <0x54006b00 0x40>;
147 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_uart3>;
149 interrupts = <0 177 4>;
150 clocks = <&uart_clk>;
151 };
152
153 i2c0: i2c@58780000 {
154 compatible = "socionext,uniphier-fi2c";
155 status = "disabled";
156 reg = <0x58780000 0x80>;
157 #address-cells = <1>;
158 #size-cells = <0>;
159 pinctrl-names = "default";
160 pinctrl-0 = <&pinctrl_i2c0>;
161 interrupts = <0 41 4>;
162 clocks = <&i2c_clk>;
163 clock-frequency = <100000>;
164 };
165
166 i2c1: i2c@58781000 {
167 compatible = "socionext,uniphier-fi2c";
168 status = "disabled";
169 reg = <0x58781000 0x80>;
170 #address-cells = <1>;
171 #size-cells = <0>;
172 pinctrl-names = "default";
173 pinctrl-0 = <&pinctrl_i2c1>;
174 interrupts = <0 42 4>;
175 clocks = <&i2c_clk>;
176 clock-frequency = <100000>;
177 };
178
179 i2c2: i2c@58782000 {
180 compatible = "socionext,uniphier-fi2c";
181 status = "disabled";
182 reg = <0x58782000 0x80>;
183 #address-cells = <1>;
184 #size-cells = <0>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_i2c2>;
187 interrupts = <0 43 4>;
188 clocks = <&i2c_clk>;
189 clock-frequency = <100000>;
190 };
191
192 i2c3: i2c@58783000 {
193 compatible = "socionext,uniphier-fi2c";
194 status = "disabled";
195 reg = <0x58783000 0x80>;
196 #address-cells = <1>;
197 #size-cells = <0>;
198 pinctrl-names = "default";
199 pinctrl-0 = <&pinctrl_i2c3>;
200 interrupts = <0 44 4>;
201 clocks = <&i2c_clk>;
202 clock-frequency = <100000>;
203 };
204
205 /* chip-internal connection for DMD */
206 i2c4: i2c@58784000 {
207 compatible = "socionext,uniphier-fi2c";
208 reg = <0x58784000 0x80>;
209 #address-cells = <1>;
210 #size-cells = <0>;
211 interrupts = <0 45 4>;
212 clocks = <&i2c_clk>;
213 clock-frequency = <400000>;
214 };
215
216 /* chip-internal connection for STM */
217 i2c5: i2c@58785000 {
218 compatible = "socionext,uniphier-fi2c";
219 reg = <0x58785000 0x80>;
220 #address-cells = <1>;
221 #size-cells = <0>;
222 interrupts = <0 25 4>;
223 clocks = <&i2c_clk>;
224 clock-frequency = <400000>;
225 };
226
227 /* chip-internal connection for HDMI */
228 i2c6: i2c@58786000 {
229 compatible = "socionext,uniphier-fi2c";
230 reg = <0x58786000 0x80>;
231 #address-cells = <1>;
232 #size-cells = <0>;
233 interrupts = <0 26 4>;
234 clocks = <&i2c_clk>;
235 clock-frequency = <400000>;
236 };
237
238 system-bus-controller-misc@59800000 {
239 compatible = "socionext,uniphier-system-bus-controller-misc",
240 "syscon";
241 reg = <0x59800000 0x2000>;
242 };
243
244 pinctrl: pinctrl@5f801000 {
245 compatible = "socionext,proxstream2-pinctrl", "syscon";
246 reg = <0x5f801000 0xe00>;
247 };
248
249 timer@60000200 {
250 compatible = "arm,cortex-a9-global-timer";
251 reg = <0x60000200 0x20>;
252 interrupts = <1 11 0xf04>;
253 clocks = <&arm_timer_clk>;
254 };
255
256 timer@60000600 {
257 compatible = "arm,cortex-a9-twd-timer";
258 reg = <0x60000600 0x20>;
259 interrupts = <1 13 0xf04>;
260 clocks = <&arm_timer_clk>;
261 };
262
263 intc: interrupt-controller@60001000 {
264 compatible = "arm,cortex-a9-gic";
265 #interrupt-cells = <3>;
266 interrupt-controller;
267 reg = <0x60001000 0x1000>,
268 <0x60000100 0x100>;
269 };
270 };
271};
272
273/include/ "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-ref-daughter.dtsi b/arch/arm/boot/dts/uniphier-ref-daughter.dtsi
new file mode 100644
index 000000000000..3d29d2806cc0
--- /dev/null
+++ b/arch/arm/boot/dts/uniphier-ref-daughter.dtsi
@@ -0,0 +1,50 @@
1/*
2 * Device Tree Source for UniPhier Reference Daughter Board
3 *
4 * Copyright (C) 2015 Masahiro Yamada <yamada.masahiro@socionext.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45&i2c0 {
46 eeprom {
47 compatible = "microchip,24lc128";
48 reg = <0x50>;
49 };
50};
diff --git a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
index 2efb2058ba49..21b02874bea3 100644
--- a/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
+++ b/arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
@@ -101,6 +101,8 @@
101 clock-names = "refclk", "timclk", "apb_pclk"; 101 clock-names = "refclk", "timclk", "apb_pclk";
102 #clock-cells = <1>; 102 #clock-cells = <1>;
103 clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 103 clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
104 assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
105 assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
104 }; 106 };
105 107
106 /* PCI-E I2C bus */ 108 /* PCI-E I2C bus */
diff --git a/arch/arm/boot/dts/vexpress-v2m.dtsi b/arch/arm/boot/dts/vexpress-v2m.dtsi
index cb3090f919a7..e712c0af149b 100644
--- a/arch/arm/boot/dts/vexpress-v2m.dtsi
+++ b/arch/arm/boot/dts/vexpress-v2m.dtsi
@@ -100,6 +100,8 @@
100 clock-names = "refclk", "timclk", "apb_pclk"; 100 clock-names = "refclk", "timclk", "apb_pclk";
101 #clock-cells = <1>; 101 #clock-cells = <1>;
102 clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3"; 102 clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
103 assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
104 assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
103 }; 105 };
104 106
105 /* PCI-E I2C bus */ 107 /* PCI-E I2C bus */
diff --git a/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi b/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
index 606753eb72c8..ed65e0f7dfc0 100644
--- a/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
+++ b/arch/arm/boot/dts/vf-colibri-eval-v3.dtsi
@@ -9,7 +9,7 @@
9 9
10/ { 10/ {
11 chosen { 11 chosen {
12 bootargs = "console=ttyLP0,115200"; 12 stdout-path = "serial0:115200n8";
13 }; 13 };
14 14
15 clk16m: clk16m { 15 clk16m: clk16m {
diff --git a/arch/arm/boot/dts/vfxxx.dtsi b/arch/arm/boot/dts/vfxxx.dtsi
index 4aa335166be7..6865137fd114 100644
--- a/arch/arm/boot/dts/vfxxx.dtsi
+++ b/arch/arm/boot/dts/vfxxx.dtsi
@@ -226,7 +226,10 @@
226 interrupts = <53 IRQ_TYPE_LEVEL_HIGH>; 226 interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&clks VF610_CLK_ADC0>; 227 clocks = <&clks VF610_CLK_ADC0>;
228 clock-names = "adc"; 228 clock-names = "adc";
229 #io-channel-cells = <1>;
229 status = "disabled"; 230 status = "disabled";
231 fsl,adck-max-frequency = <30000000>, <40000000>,
232 <20000000>;
230 }; 233 };
231 234
232 wdoga5: wdog@4003e000 { 235 wdoga5: wdog@4003e000 {
@@ -242,7 +245,8 @@
242 #address-cells = <1>; 245 #address-cells = <1>;
243 #size-cells = <0>; 246 #size-cells = <0>;
244 compatible = "fsl,vf610-qspi"; 247 compatible = "fsl,vf610-qspi";
245 reg = <0x40044000 0x1000>; 248 reg = <0x40044000 0x1000>, <0x20000000 0x10000000>;
249 reg-names = "QuadSPI", "QuadSPI-memory";
246 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>; 250 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
247 clocks = <&clks VF610_CLK_QSPI0_EN>, 251 clocks = <&clks VF610_CLK_QSPI0_EN>,
248 <&clks VF610_CLK_QSPI0>; 252 <&clks VF610_CLK_QSPI0>;
@@ -347,6 +351,20 @@
347 status = "disabled"; 351 status = "disabled";
348 }; 352 };
349 353
354 i2c1: i2c@40067000 {
355 #address-cells = <1>;
356 #size-cells = <0>;
357 compatible = "fsl,vf610-i2c";
358 reg = <0x40067000 0x1000>;
359 interrupts = <72 IRQ_TYPE_LEVEL_HIGH>;
360 clocks = <&clks VF610_CLK_I2C1>;
361 clock-names = "ipg";
362 dmas = <&edma0 0 52>,
363 <&edma0 0 53>;
364 dma-names = "rx","tx";
365 status = "disabled";
366 };
367
350 clks: ccm@4006b000 { 368 clks: ccm@4006b000 {
351 compatible = "fsl,vf610-ccm"; 369 compatible = "fsl,vf610-ccm";
352 reg = <0x4006b000 0x1000>; 370 reg = <0x4006b000 0x1000>;
@@ -404,14 +422,13 @@
404 }; 422 };
405 423
406 snvs0: snvs@400a7000 { 424 snvs0: snvs@400a7000 {
407 compatible = "fsl,sec-v4.0-mon", "simple-bus"; 425 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
408 #address-cells = <1>; 426 reg = <0x400a7000 0x2000>;
409 #size-cells = <1>;
410 ranges = <0 0x400a7000 0x2000>;
411 427
412 snvsrtc: snvs-rtc-lp@34 { 428 snvsrtc: snvs-rtc-lp {
413 compatible = "fsl,sec-v4.0-mon-rtc-lp"; 429 compatible = "fsl,sec-v4.0-mon-rtc-lp";
414 reg = <0x34 0x58>; 430 regmap = <&snvs0>;
431 offset = <0x34>;
415 interrupts = <100 IRQ_TYPE_LEVEL_HIGH>; 432 interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
416 clocks = <&clks VF610_CLK_SNVS>; 433 clocks = <&clks VF610_CLK_SNVS>;
417 clock-names = "snvs-rtc"; 434 clock-names = "snvs-rtc";
@@ -442,9 +459,23 @@
442 interrupts = <54 IRQ_TYPE_LEVEL_HIGH>; 459 interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&clks VF610_CLK_ADC1>; 460 clocks = <&clks VF610_CLK_ADC1>;
444 clock-names = "adc"; 461 clock-names = "adc";
462 #io-channel-cells = <1>;
445 status = "disabled"; 463 status = "disabled";
446 }; 464 };
447 465
466 esdhc0: esdhc@400b1000 {
467 compatible = "fsl,imx53-esdhc";
468 reg = <0x400b1000 0x1000>;
469 interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
470 clocks = <&clks VF610_CLK_IPG_BUS>,
471 <&clks VF610_CLK_PLATFORM_BUS>,
472 <&clks VF610_CLK_ESDHC0>;
473 clock-names = "ipg", "ahb", "per";
474 status = "disabled";
475 fsl,adck-max-frequency = <30000000>, <40000000>,
476 <20000000>;
477 };
478
448 esdhc1: esdhc@400b2000 { 479 esdhc1: esdhc@400b2000 {
449 compatible = "fsl,imx53-esdhc"; 480 compatible = "fsl,imx53-esdhc";
450 reg = <0x400b2000 0x1000>; 481 reg = <0x400b2000 0x1000>;
@@ -488,6 +519,19 @@
488 status = "disabled"; 519 status = "disabled";
489 }; 520 };
490 521
522 qspi1: quadspi@400c4000 {
523 #address-cells = <1>;
524 #size-cells = <0>;
525 compatible = "fsl,vf610-qspi";
526 reg = <0x400c4000 0x1000>, <0x50000000 0x10000000>;
527 reg-names = "QuadSPI", "QuadSPI-memory";
528 interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
529 clocks = <&clks VF610_CLK_QSPI1_EN>,
530 <&clks VF610_CLK_QSPI1>;
531 clock-names = "qspi_en", "qspi";
532 status = "disabled";
533 };
534
491 fec0: ethernet@400d0000 { 535 fec0: ethernet@400d0000 {
492 compatible = "fsl,mvf600-fec"; 536 compatible = "fsl,mvf600-fec";
493 reg = <0x400d0000 0x1000>; 537 reg = <0x400d0000 0x1000>;
@@ -520,6 +564,33 @@
520 status = "disabled"; 564 status = "disabled";
521 }; 565 };
522 566
567 i2c2: i2c@400e6000 {
568 #address-cells = <1>;
569 #size-cells = <0>;
570 compatible = "fsl,vf610-i2c";
571 reg = <0x400e6000 0x1000>;
572 interrupts = <73 IRQ_TYPE_LEVEL_HIGH>;
573 clocks = <&clks VF610_CLK_I2C2>;
574 clock-names = "ipg";
575 dmas = <&edma0 1 36>,
576 <&edma0 1 37>;
577 dma-names = "rx","tx";
578 status = "disabled";
579 };
580
581 i2c3: i2c@400e7000 {
582 #address-cells = <1>;
583 #size-cells = <0>;
584 compatible = "fsl,vf610-i2c";
585 reg = <0x400e7000 0x1000>;
586 interrupts = <74 IRQ_TYPE_LEVEL_HIGH>;
587 clocks = <&clks VF610_CLK_I2C3>;
588 clock-names = "ipg";
589 dmas = <&edma0 1 38>,
590 <&edma0 1 39>;
591 dma-names = "rx","tx";
592 status = "disabled";
593 };
523 }; 594 };
524 }; 595 };
525}; 596};
diff --git a/arch/arm/boot/dts/zynq-7000.dtsi b/arch/arm/boot/dts/zynq-7000.dtsi
index 06915080b875..dc0457e40775 100644
--- a/arch/arm/boot/dts/zynq-7000.dtsi
+++ b/arch/arm/boot/dts/zynq-7000.dtsi
@@ -57,7 +57,7 @@
57 regulator-always-on; 57 regulator-always-on;
58 }; 58 };
59 59
60 amba { 60 amba: amba {
61 compatible = "simple-bus"; 61 compatible = "simple-bus";
62 #address-cells = <1>; 62 #address-cells = <1>;
63 #size-cells = <1>; 63 #size-cells = <1>;
@@ -139,6 +139,7 @@
139 L2: cache-controller@f8f02000 { 139 L2: cache-controller@f8f02000 {
140 compatible = "arm,pl310-cache"; 140 compatible = "arm,pl310-cache";
141 reg = <0xF8F02000 0x1000>; 141 reg = <0xF8F02000 0x1000>;
142 interrupts = <0 2 4>;
142 arm,data-latency = <3 2 2>; 143 arm,data-latency = <3 2 2>;
143 arm,tag-latency = <2 2 2>; 144 arm,tag-latency = <2 2 2>;
144 cache-unified; 145 cache-unified;
@@ -258,6 +259,13 @@
258 reg = <0x100 0x100>; 259 reg = <0x100 0x100>;
259 }; 260 };
260 261
262 rstc: rstc@200 {
263 compatible = "xlnx,zynq-reset";
264 reg = <0x200 0x48>;
265 #reset-cells = <1>;
266 syscon = <&slcr>;
267 };
268
261 pinctrl0: pinctrl@700 { 269 pinctrl0: pinctrl@700 {
262 compatible = "xlnx,pinctrl-zynq"; 270 compatible = "xlnx,pinctrl-zynq";
263 reg = <0x700 0x200>; 271 reg = <0x700 0x200>;
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index fb59d34e8ee6..5df8f81f4217 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -34,6 +34,27 @@
34 stdout-path = "serial0:115200n8"; 34 stdout-path = "serial0:115200n8";
35 }; 35 };
36 36
37 gpio-keys {
38 compatible = "gpio-keys";
39 #address-cells = <1>;
40 #size-cells = <0>;
41 autorepeat;
42 sw14 {
43 label = "sw14";
44 gpios = <&gpio0 12 0>;
45 linux,code = <108>; /* down */
46 gpio-key,wakeup;
47 autorepeat;
48 };
49 sw13 {
50 label = "sw13";
51 gpios = <&gpio0 14 0>;
52 linux,code = <103>; /* up */
53 gpio-key,wakeup;
54 autorepeat;
55 };
56 };
57
37 leds { 58 leds {
38 compatible = "gpio-leds"; 59 compatible = "gpio-leds";
39 60
@@ -50,6 +71,13 @@
50 }; 71 };
51}; 72};
52 73
74&amba {
75 ocm: sram@fffc0000 {
76 compatible = "mmio-sram";
77 reg = <0xfffc0000 0x10000>;
78 };
79};
80
53&can0 { 81&can0 {
54 status = "okay"; 82 status = "okay";
55 pinctrl-names = "default"; 83 pinctrl-names = "default";
diff --git a/arch/arm/configs/omap2plus_defconfig b/arch/arm/configs/omap2plus_defconfig
index ac521e764d10..b001f7ae67f3 100644
--- a/arch/arm/configs/omap2plus_defconfig
+++ b/arch/arm/configs/omap2plus_defconfig
@@ -324,10 +324,13 @@ CONFIG_SND_USB_AUDIO=m
324CONFIG_SND_SOC=m 324CONFIG_SND_SOC=m
325CONFIG_SND_EDMA_SOC=m 325CONFIG_SND_EDMA_SOC=m
326CONFIG_SND_AM33XX_SOC_EVM=m 326CONFIG_SND_AM33XX_SOC_EVM=m
327CONFIG_SND_DAVINCI_SOC_MCASP=m
327CONFIG_SND_OMAP_SOC=m 328CONFIG_SND_OMAP_SOC=m
328CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m 329CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m
329CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m 330CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=m
330CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m 331CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
332CONFIG_SND_SIMPLE_CARD=m
333CONFIG_SND_SOC_TLV320AIC3X=m
331CONFIG_HID_GENERIC=m 334CONFIG_HID_GENERIC=m
332CONFIG_USB_HIDDEV=y 335CONFIG_USB_HIDDEV=y
333CONFIG_USB_KBD=m 336CONFIG_USB_KBD=m
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 1a352f561113..ea56397599c2 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -14,9 +14,18 @@
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/of_platform.h> 15#include <linux/of_platform.h>
16#include <linux/ti_wilink_st.h> 16#include <linux/ti_wilink_st.h>
17#include <linux/wl12xx.h>
18#include <linux/mmc/card.h>
19#include <linux/mmc/host.h>
20#include <linux/regulator/machine.h>
21#include <linux/regulator/fixed.h>
17 22
18#include <linux/platform_data/pinctrl-single.h> 23#include <linux/platform_data/pinctrl-single.h>
19#include <linux/platform_data/iommu-omap.h> 24#include <linux/platform_data/iommu-omap.h>
25#include <linux/platform_data/wkup_m3.h>
26
27#include <asm/siginfo.h>
28#include <asm/signal.h>
20 29
21#include "common.h" 30#include "common.h"
22#include "common-board-devices.h" 31#include "common-board-devices.h"
@@ -25,6 +34,7 @@
25#include "omap_device.h" 34#include "omap_device.h"
26#include "omap-secure.h" 35#include "omap-secure.h"
27#include "soc.h" 36#include "soc.h"
37#include "hsmmc.h"
28 38
29struct pdata_init { 39struct pdata_init {
30 const char *compatible; 40 const char *compatible;
@@ -268,8 +278,136 @@ static void __init omap3_tao3530_legacy_init(void)
268{ 278{
269 hsmmc2_internal_input_clk(); 279 hsmmc2_internal_input_clk();
270} 280}
281
282/* omap3pandora legacy devices */
283#define PANDORA_WIFI_IRQ_GPIO 21
284#define PANDORA_WIFI_NRESET_GPIO 23
285
286static struct platform_device pandora_backlight = {
287 .name = "pandora-backlight",
288 .id = -1,
289};
290
291static struct regulator_consumer_supply pandora_vmmc3_supply[] = {
292 REGULATOR_SUPPLY("vmmc", "omap_hsmmc.2"),
293};
294
295static struct regulator_init_data pandora_vmmc3 = {
296 .constraints = {
297 .valid_ops_mask = REGULATOR_CHANGE_STATUS,
298 },
299 .num_consumer_supplies = ARRAY_SIZE(pandora_vmmc3_supply),
300 .consumer_supplies = pandora_vmmc3_supply,
301};
302
303static struct fixed_voltage_config pandora_vwlan = {
304 .supply_name = "vwlan",
305 .microvolts = 1800000, /* 1.8V */
306 .gpio = PANDORA_WIFI_NRESET_GPIO,
307 .startup_delay = 50000, /* 50ms */
308 .enable_high = 1,
309 .init_data = &pandora_vmmc3,
310};
311
312static struct platform_device pandora_vwlan_device = {
313 .name = "reg-fixed-voltage",
314 .id = 1,
315 .dev = {
316 .platform_data = &pandora_vwlan,
317 },
318};
319
320static void pandora_wl1251_init_card(struct mmc_card *card)
321{
322 /*
323 * We have TI wl1251 attached to MMC3. Pass this information to
324 * SDIO core because it can't be probed by normal methods.
325 */
326 if (card->type == MMC_TYPE_SDIO || card->type == MMC_TYPE_SD_COMBO) {
327 card->quirks |= MMC_QUIRK_NONSTD_SDIO;
328 card->cccr.wide_bus = 1;
329 card->cis.vendor = 0x104c;
330 card->cis.device = 0x9066;
331 card->cis.blksize = 512;
332 card->cis.max_dtr = 24000000;
333 card->ocr = 0x80;
334 }
335}
336
337static struct omap2_hsmmc_info pandora_mmc3[] = {
338 {
339 .mmc = 3,
340 .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
341 .gpio_cd = -EINVAL,
342 .gpio_wp = -EINVAL,
343 .init_card = pandora_wl1251_init_card,
344 },
345 {} /* Terminator */
346};
347
348static void __init pandora_wl1251_init(void)
349{
350 struct wl1251_platform_data pandora_wl1251_pdata;
351 int ret;
352
353 memset(&pandora_wl1251_pdata, 0, sizeof(pandora_wl1251_pdata));
354
355 pandora_wl1251_pdata.power_gpio = -1;
356
357 ret = gpio_request_one(PANDORA_WIFI_IRQ_GPIO, GPIOF_IN, "wl1251 irq");
358 if (ret < 0)
359 goto fail;
360
361 pandora_wl1251_pdata.irq = gpio_to_irq(PANDORA_WIFI_IRQ_GPIO);
362 if (pandora_wl1251_pdata.irq < 0)
363 goto fail_irq;
364
365 pandora_wl1251_pdata.use_eeprom = true;
366 ret = wl1251_set_platform_data(&pandora_wl1251_pdata);
367 if (ret < 0)
368 goto fail_irq;
369
370 return;
371
372fail_irq:
373 gpio_free(PANDORA_WIFI_IRQ_GPIO);
374fail:
375 pr_err("wl1251 board initialisation failed\n");
376}
377
378static void __init omap3_pandora_legacy_init(void)
379{
380 platform_device_register(&pandora_backlight);
381 platform_device_register(&pandora_vwlan_device);
382 omap_hsmmc_init(pandora_mmc3);
383 omap_hsmmc_late_init(pandora_mmc3);
384 pandora_wl1251_init();
385}
271#endif /* CONFIG_ARCH_OMAP3 */ 386#endif /* CONFIG_ARCH_OMAP3 */
272 387
388#ifdef CONFIG_SOC_TI81XX
389static int fault_fixed_up;
390
391static int t410_abort_handler(unsigned long addr, unsigned int fsr,
392 struct pt_regs *regs)
393{
394 if ((fsr == 0x406 || fsr == 0xc06) && !fault_fixed_up) {
395 pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
396 addr, fsr);
397 fault_fixed_up = 1;
398 return 0;
399 }
400
401 return 1;
402}
403
404static void __init t410_abort_init(void)
405{
406 hook_fault_code(16 + 6, t410_abort_handler, SIGBUS, BUS_OBJERR,
407 "imprecise external abort");
408}
409#endif
410
273#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) 411#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
274static struct iommu_platform_data omap4_iommu_pdata = { 412static struct iommu_platform_data omap4_iommu_pdata = {
275 .reset_name = "mmu_cache", 413 .reset_name = "mmu_cache",
@@ -278,6 +416,14 @@ static struct iommu_platform_data omap4_iommu_pdata = {
278}; 416};
279#endif 417#endif
280 418
419#if defined(CONFIG_SOC_AM33XX) || defined(CONFIG_SOC_AM43XX)
420static struct wkup_m3_platform_data wkup_m3_data = {
421 .reset_name = "wkup_m3",
422 .assert_reset = omap_device_assert_hardreset,
423 .deassert_reset = omap_device_deassert_hardreset,
424};
425#endif
426
281#ifdef CONFIG_SOC_OMAP5 427#ifdef CONFIG_SOC_OMAP5
282static void __init omap5_uevm_legacy_init(void) 428static void __init omap5_uevm_legacy_init(void)
283{ 429{
@@ -340,6 +486,10 @@ static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
340 OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0", 486 OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
341 &am35xx_emac_pdata), 487 &am35xx_emac_pdata),
342#endif 488#endif
489#ifdef CONFIG_SOC_AM33XX
490 OF_DEV_AUXDATA("ti,am3352-wkup-m3", 0x44d00000, "44d00000.wkup_m3",
491 &wkup_m3_data),
492#endif
343#ifdef CONFIG_ARCH_OMAP4 493#ifdef CONFIG_ARCH_OMAP4
344 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata), 494 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
345 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata), 495 OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
@@ -353,6 +503,8 @@ static struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
353#endif 503#endif
354#ifdef CONFIG_SOC_AM43XX 504#ifdef CONFIG_SOC_AM43XX
355 OF_DEV_AUXDATA("ti,am437-padconf", 0x44e10800, "44e10800.pinmux", &pcs_pdata), 505 OF_DEV_AUXDATA("ti,am437-padconf", 0x44e10800, "44e10800.pinmux", &pcs_pdata),
506 OF_DEV_AUXDATA("ti,am4372-wkup-m3", 0x44d00000, "44d00000.wkup_m3",
507 &wkup_m3_data),
356#endif 508#endif
357#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5) 509#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
358 OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu", 510 OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
@@ -381,6 +533,11 @@ static struct pdata_init pdata_quirks[] __initdata = {
381 { "ti,omap3-evm-37xx", omap3_evm_legacy_init, }, 533 { "ti,omap3-evm-37xx", omap3_evm_legacy_init, },
382 { "ti,am3517-evm", am3517_evm_legacy_init, }, 534 { "ti,am3517-evm", am3517_evm_legacy_init, },
383 { "technexion,omap3-tao3530", omap3_tao3530_legacy_init, }, 535 { "technexion,omap3-tao3530", omap3_tao3530_legacy_init, },
536 { "openpandora,omap3-pandora-600mhz", omap3_pandora_legacy_init, },
537 { "openpandora,omap3-pandora-1ghz", omap3_pandora_legacy_init, },
538#endif
539#ifdef CONFIG_SOC_TI81XX
540 { "hp,t410", t410_abort_init, },
384#endif 541#endif
385#ifdef CONFIG_SOC_OMAP5 542#ifdef CONFIG_SOC_OMAP5
386 { "ti,omap5-uevm", omap5_uevm_legacy_init, }, 543 { "ti,omap5-uevm", omap5_uevm_legacy_init, },
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig
index 2412efb6cdd9..08d2be2ea41f 100644
--- a/arch/arm/mach-orion5x/Kconfig
+++ b/arch/arm/mach-orion5x/Kconfig
@@ -78,11 +78,11 @@ config MACH_LINKSTATION_LSCHL
78 Buffalo Linkstation Live v3 (LS-CHL) platform. 78 Buffalo Linkstation Live v3 (LS-CHL) platform.
79 79
80config MACH_LINKSTATION_MINI 80config MACH_LINKSTATION_MINI
81 bool "Buffalo Linkstation Mini" 81 bool "Buffalo Linkstation Mini (Flattened Device Tree)"
82 select I2C_BOARDINFO 82 select ARCH_ORION5X_DT
83 help 83 help
84 Say 'Y' here if you want your kernel to support the 84 Say 'Y' here if you want your kernel to support the
85 Buffalo Linkstation Mini platform. 85 Buffalo Linkstation Mini (LS-WSGL) platform.
86 86
87config MACH_LINKSTATION_LS_HGL 87config MACH_LINKSTATION_LS_HGL
88 bool "Buffalo Linkstation LS-HGL" 88 bool "Buffalo Linkstation LS-HGL"
diff --git a/arch/arm/mach-orion5x/Makefile b/arch/arm/mach-orion5x/Makefile
index a40b5c9a58c4..a1e0fbe6a7a1 100644
--- a/arch/arm/mach-orion5x/Makefile
+++ b/arch/arm/mach-orion5x/Makefile
@@ -4,7 +4,6 @@ obj-$(CONFIG_MACH_RD88F5182) += rd88f5182-setup.o
4obj-$(CONFIG_MACH_KUROBOX_PRO) += kurobox_pro-setup.o 4obj-$(CONFIG_MACH_KUROBOX_PRO) += kurobox_pro-setup.o
5obj-$(CONFIG_MACH_TERASTATION_PRO2) += terastation_pro2-setup.o 5obj-$(CONFIG_MACH_TERASTATION_PRO2) += terastation_pro2-setup.o
6obj-$(CONFIG_MACH_LINKSTATION_PRO) += kurobox_pro-setup.o 6obj-$(CONFIG_MACH_LINKSTATION_PRO) += kurobox_pro-setup.o
7obj-$(CONFIG_MACH_LINKSTATION_MINI) += lsmini-setup.o
8obj-$(CONFIG_MACH_LINKSTATION_LS_HGL) += ls_hgl-setup.o 7obj-$(CONFIG_MACH_LINKSTATION_LS_HGL) += ls_hgl-setup.o
9obj-$(CONFIG_MACH_DNS323) += dns323-setup.o 8obj-$(CONFIG_MACH_DNS323) += dns323-setup.o
10obj-$(CONFIG_MACH_TS209) += ts209-setup.o tsx09-common.o 9obj-$(CONFIG_MACH_TS209) += ts209-setup.o tsx09-common.o
diff --git a/arch/arm/mach-orion5x/lsmini-setup.c b/arch/arm/mach-orion5x/lsmini-setup.c
deleted file mode 100644
index a6493e76f96d..000000000000
--- a/arch/arm/mach-orion5x/lsmini-setup.c
+++ /dev/null
@@ -1,280 +0,0 @@
1/*
2 * arch/arm/mach-orion5x/lsmini-setup.c
3 *
4 * Maintainer: Alexey Kopytko <alexey@kopytko.ru>
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/platform_device.h>
14#include <linux/mtd/physmap.h>
15#include <linux/mv643xx_eth.h>
16#include <linux/leds.h>
17#include <linux/gpio_keys.h>
18#include <linux/input.h>
19#include <linux/i2c.h>
20#include <linux/ata_platform.h>
21#include <linux/gpio.h>
22#include <asm/mach-types.h>
23#include <asm/mach/arch.h>
24#include <mach/orion5x.h>
25#include "common.h"
26#include "mpp.h"
27
28/*****************************************************************************
29 * Linkstation Mini Info
30 ****************************************************************************/
31
32/*
33 * 256K NOR flash Device bus boot chip select
34 */
35
36#define LSMINI_NOR_BOOT_BASE 0xf4000000
37#define LSMINI_NOR_BOOT_SIZE SZ_256K
38
39/*****************************************************************************
40 * 256KB NOR Flash on BOOT Device
41 ****************************************************************************/
42
43static struct physmap_flash_data lsmini_nor_flash_data = {
44 .width = 1,
45};
46
47static struct resource lsmini_nor_flash_resource = {
48 .flags = IORESOURCE_MEM,
49 .start = LSMINI_NOR_BOOT_BASE,
50 .end = LSMINI_NOR_BOOT_BASE + LSMINI_NOR_BOOT_SIZE - 1,
51};
52
53static struct platform_device lsmini_nor_flash = {
54 .name = "physmap-flash",
55 .id = 0,
56 .dev = {
57 .platform_data = &lsmini_nor_flash_data,
58 },
59 .num_resources = 1,
60 .resource = &lsmini_nor_flash_resource,
61};
62
63/*****************************************************************************
64 * Ethernet
65 ****************************************************************************/
66
67static struct mv643xx_eth_platform_data lsmini_eth_data = {
68 .phy_addr = 8,
69};
70
71/*****************************************************************************
72 * RTC 5C372a on I2C bus
73 ****************************************************************************/
74
75static struct i2c_board_info __initdata lsmini_i2c_rtc = {
76 I2C_BOARD_INFO("rs5c372a", 0x32),
77};
78
79/*****************************************************************************
80 * LEDs attached to GPIO
81 ****************************************************************************/
82
83#define LSMINI_GPIO_LED_ALARM 2
84#define LSMINI_GPIO_LED_INFO 3
85#define LSMINI_GPIO_LED_FUNC 9
86#define LSMINI_GPIO_LED_PWR 14
87
88static struct gpio_led lsmini_led_pins[] = {
89 {
90 .name = "alarm:red",
91 .gpio = LSMINI_GPIO_LED_ALARM,
92 .active_low = 1,
93 }, {
94 .name = "info:amber",
95 .gpio = LSMINI_GPIO_LED_INFO,
96 .active_low = 1,
97 }, {
98 .name = "func:blue:top",
99 .gpio = LSMINI_GPIO_LED_FUNC,
100 .active_low = 1,
101 }, {
102 .name = "power:blue:bottom",
103 .gpio = LSMINI_GPIO_LED_PWR,
104 },
105};
106
107static struct gpio_led_platform_data lsmini_led_data = {
108 .leds = lsmini_led_pins,
109 .num_leds = ARRAY_SIZE(lsmini_led_pins),
110};
111
112static struct platform_device lsmini_leds = {
113 .name = "leds-gpio",
114 .id = -1,
115 .dev = {
116 .platform_data = &lsmini_led_data,
117 },
118};
119
120/****************************************************************************
121 * GPIO Attached Keys
122 ****************************************************************************/
123
124#define LSMINI_GPIO_KEY_FUNC 15
125#define LSMINI_GPIO_KEY_POWER 18
126#define LSMINI_GPIO_KEY_AUTOPOWER 17
127
128#define LSMINI_SW_POWER 0x00
129#define LSMINI_SW_AUTOPOWER 0x01
130
131static struct gpio_keys_button lsmini_buttons[] = {
132 {
133 .code = KEY_OPTION,
134 .gpio = LSMINI_GPIO_KEY_FUNC,
135 .desc = "Function Button",
136 .active_low = 1,
137 }, {
138 .type = EV_SW,
139 .code = LSMINI_SW_POWER,
140 .gpio = LSMINI_GPIO_KEY_POWER,
141 .desc = "Power-on Switch",
142 .active_low = 1,
143 }, {
144 .type = EV_SW,
145 .code = LSMINI_SW_AUTOPOWER,
146 .gpio = LSMINI_GPIO_KEY_AUTOPOWER,
147 .desc = "Power-auto Switch",
148 .active_low = 1,
149 },
150};
151
152static struct gpio_keys_platform_data lsmini_button_data = {
153 .buttons = lsmini_buttons,
154 .nbuttons = ARRAY_SIZE(lsmini_buttons),
155};
156
157static struct platform_device lsmini_button_device = {
158 .name = "gpio-keys",
159 .id = -1,
160 .num_resources = 0,
161 .dev = {
162 .platform_data = &lsmini_button_data,
163 },
164};
165
166
167/*****************************************************************************
168 * SATA
169 ****************************************************************************/
170static struct mv_sata_platform_data lsmini_sata_data = {
171 .n_ports = 2,
172};
173
174
175/*****************************************************************************
176 * Linkstation Mini specific power off method: reboot
177 ****************************************************************************/
178/*
179 * On the Linkstation Mini, the shutdown process is following:
180 * - Userland monitors key events until the power switch goes to off position
181 * - The board reboots
182 * - U-boot starts and goes into an idle mode waiting for the user
183 * to move the switch to ON position
184 */
185
186static void lsmini_power_off(void)
187{
188 orion5x_restart(REBOOT_HARD, NULL);
189}
190
191
192/*****************************************************************************
193 * General Setup
194 ****************************************************************************/
195
196#define LSMINI_GPIO_USB_POWER 16
197#define LSMINI_GPIO_AUTO_POWER 17
198#define LSMINI_GPIO_POWER 18
199
200#define LSMINI_GPIO_HDD_POWER0 1
201#define LSMINI_GPIO_HDD_POWER1 19
202
203static unsigned int lsmini_mpp_modes[] __initdata = {
204 MPP0_UNUSED, /* LED_RESERVE1 (unused) */
205 MPP1_GPIO, /* HDD_PWR */
206 MPP2_GPIO, /* LED_ALARM */
207 MPP3_GPIO, /* LED_INFO */
208 MPP4_UNUSED,
209 MPP5_UNUSED,
210 MPP6_UNUSED,
211 MPP7_UNUSED,
212 MPP8_UNUSED,
213 MPP9_GPIO, /* LED_FUNC */
214 MPP10_UNUSED,
215 MPP11_UNUSED, /* LED_ETH (dummy) */
216 MPP12_UNUSED,
217 MPP13_UNUSED,
218 MPP14_GPIO, /* LED_PWR */
219 MPP15_GPIO, /* FUNC */
220 MPP16_GPIO, /* USB_PWR */
221 MPP17_GPIO, /* AUTO_POWER */
222 MPP18_GPIO, /* POWER */
223 MPP19_GPIO, /* HDD_PWR1 */
224 0,
225};
226
227static void __init lsmini_init(void)
228{
229 /*
230 * Setup basic Orion functions. Need to be called early.
231 */
232 orion5x_init();
233
234 orion5x_mpp_conf(lsmini_mpp_modes);
235
236 /*
237 * Configure peripherals.
238 */
239 orion5x_ehci0_init();
240 orion5x_ehci1_init();
241 orion5x_eth_init(&lsmini_eth_data);
242 orion5x_i2c_init();
243 orion5x_sata_init(&lsmini_sata_data);
244 orion5x_uart0_init();
245 orion5x_xor_init();
246
247 mvebu_mbus_add_window_by_id(ORION_MBUS_DEVBUS_BOOT_TARGET,
248 ORION_MBUS_DEVBUS_BOOT_ATTR,
249 LSMINI_NOR_BOOT_BASE,
250 LSMINI_NOR_BOOT_SIZE);
251 platform_device_register(&lsmini_nor_flash);
252
253 platform_device_register(&lsmini_button_device);
254
255 platform_device_register(&lsmini_leds);
256
257 i2c_register_board_info(0, &lsmini_i2c_rtc, 1);
258
259 /* enable USB power */
260 gpio_set_value(LSMINI_GPIO_USB_POWER, 1);
261
262 /* register power-off method */
263 pm_power_off = lsmini_power_off;
264
265 pr_info("%s: finished\n", __func__);
266}
267
268#ifdef CONFIG_MACH_LINKSTATION_MINI
269MACHINE_START(LINKSTATION_MINI, "Buffalo Linkstation Mini")
270 /* Maintainer: Alexey Kopytko <alexey@kopytko.ru> */
271 .atag_offset = 0x100,
272 .init_machine = lsmini_init,
273 .map_io = orion5x_map_io,
274 .init_early = orion5x_init_early,
275 .init_irq = orion5x_init_irq,
276 .init_time = orion5x_timer_init,
277 .fixup = tag_fixup_mem32,
278 .restart = orion5x_restart,
279MACHINE_END
280#endif
diff --git a/drivers/clk/ti/clk-43xx.c b/drivers/clk/ti/clk-43xx.c
index 72411fbcb6f3..097fc90bf19a 100644
--- a/drivers/clk/ti/clk-43xx.c
+++ b/drivers/clk/ti/clk-43xx.c
@@ -74,6 +74,7 @@ static struct ti_dt_clk am43xx_clks[] = {
74 DT_CLK(NULL, "clk_24mhz", "clk_24mhz"), 74 DT_CLK(NULL, "clk_24mhz", "clk_24mhz"),
75 DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"), 75 DT_CLK(NULL, "cpsw_125mhz_gclk", "cpsw_125mhz_gclk"),
76 DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"), 76 DT_CLK(NULL, "cpsw_cpts_rft_clk", "cpsw_cpts_rft_clk"),
77 DT_CLK(NULL, "dpll_clksel_mac_clk", "dpll_clksel_mac_clk"),
77 DT_CLK(NULL, "gpio0_dbclk_mux_ck", "gpio0_dbclk_mux_ck"), 78 DT_CLK(NULL, "gpio0_dbclk_mux_ck", "gpio0_dbclk_mux_ck"),
78 DT_CLK(NULL, "gpio0_dbclk", "gpio0_dbclk"), 79 DT_CLK(NULL, "gpio0_dbclk", "gpio0_dbclk"),
79 DT_CLK(NULL, "gpio1_dbclk", "gpio1_dbclk"), 80 DT_CLK(NULL, "gpio1_dbclk", "gpio1_dbclk"),
diff --git a/drivers/pinctrl/pinctrl-tegra.c b/drivers/pinctrl/pinctrl-tegra.c
index 0f982b829be1..0fd7fd2b0f72 100644
--- a/drivers/pinctrl/pinctrl-tegra.c
+++ b/drivers/pinctrl/pinctrl-tegra.c
@@ -624,6 +624,22 @@ static struct pinctrl_desc tegra_pinctrl_desc = {
624 .owner = THIS_MODULE, 624 .owner = THIS_MODULE,
625}; 625};
626 626
627static bool gpio_node_has_range(void)
628{
629 struct device_node *np;
630 bool has_prop = false;
631
632 np = of_find_compatible_node(NULL, NULL, "nvidia,tegra30-gpio");
633 if (!np)
634 return has_prop;
635
636 has_prop = of_find_property(np, "gpio-ranges", NULL);
637
638 of_node_put(np);
639
640 return has_prop;
641}
642
627int tegra_pinctrl_probe(struct platform_device *pdev, 643int tegra_pinctrl_probe(struct platform_device *pdev,
628 const struct tegra_pinctrl_soc_data *soc_data) 644 const struct tegra_pinctrl_soc_data *soc_data)
629{ 645{
@@ -708,7 +724,8 @@ int tegra_pinctrl_probe(struct platform_device *pdev,
708 return PTR_ERR(pmx->pctl); 724 return PTR_ERR(pmx->pctl);
709 } 725 }
710 726
711 pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range); 727 if (!gpio_node_has_range())
728 pinctrl_add_gpio_range(pmx->pctl, &tegra_pinctrl_gpio_range);
712 729
713 platform_set_drvdata(pdev, pmx); 730 platform_set_drvdata(pdev, pmx);
714 731
diff --git a/include/dt-bindings/clock/r8a7790-clock.h b/include/dt-bindings/clock/r8a7790-clock.h
index ff7ca3584e16..7b1ad8922eec 100644
--- a/include/dt-bindings/clock/r8a7790-clock.h
+++ b/include/dt-bindings/clock/r8a7790-clock.h
@@ -108,6 +108,7 @@
108#define R8A7790_CLK_VIN2 9 108#define R8A7790_CLK_VIN2 9
109#define R8A7790_CLK_VIN1 10 109#define R8A7790_CLK_VIN1 10
110#define R8A7790_CLK_VIN0 11 110#define R8A7790_CLK_VIN0 11
111#define R8A7790_CLK_ETHERAVB 12
111#define R8A7790_CLK_ETHER 13 112#define R8A7790_CLK_ETHER 13
112#define R8A7790_CLK_SATA1 14 113#define R8A7790_CLK_SATA1 14
113#define R8A7790_CLK_SATA0 15 114#define R8A7790_CLK_SATA0 15
@@ -143,6 +144,8 @@
143#define R8A7790_CLK_SCU_ALL 17 144#define R8A7790_CLK_SCU_ALL 17
144#define R8A7790_CLK_SCU_DVC1 18 145#define R8A7790_CLK_SCU_DVC1 18
145#define R8A7790_CLK_SCU_DVC0 19 146#define R8A7790_CLK_SCU_DVC0 19
147#define R8A7790_CLK_SCU_CTU1_MIX1 20
148#define R8A7790_CLK_SCU_CTU0_MIX0 21
146#define R8A7790_CLK_SCU_SRC9 22 149#define R8A7790_CLK_SCU_SRC9 22
147#define R8A7790_CLK_SCU_SRC8 23 150#define R8A7790_CLK_SCU_SRC8 23
148#define R8A7790_CLK_SCU_SRC7 24 151#define R8A7790_CLK_SCU_SRC7 24
diff --git a/include/dt-bindings/clock/r8a7791-clock.h b/include/dt-bindings/clock/r8a7791-clock.h
index 402268384b99..dd09b73c4aaf 100644
--- a/include/dt-bindings/clock/r8a7791-clock.h
+++ b/include/dt-bindings/clock/r8a7791-clock.h
@@ -141,6 +141,8 @@
141#define R8A7791_CLK_SCU_ALL 17 141#define R8A7791_CLK_SCU_ALL 17
142#define R8A7791_CLK_SCU_DVC1 18 142#define R8A7791_CLK_SCU_DVC1 18
143#define R8A7791_CLK_SCU_DVC0 19 143#define R8A7791_CLK_SCU_DVC0 19
144#define R8A7791_CLK_SCU_CTU1_MIX1 20
145#define R8A7791_CLK_SCU_CTU0_MIX0 21
144#define R8A7791_CLK_SCU_SRC9 22 146#define R8A7791_CLK_SCU_SRC9 22
145#define R8A7791_CLK_SCU_SRC8 23 147#define R8A7791_CLK_SCU_SRC8 23
146#define R8A7791_CLK_SCU_SRC7 24 148#define R8A7791_CLK_SCU_SRC7 24
diff --git a/include/dt-bindings/clock/r8a7793-clock.h b/include/dt-bindings/clock/r8a7793-clock.h
new file mode 100644
index 000000000000..1579e07f96a3
--- /dev/null
+++ b/include/dt-bindings/clock/r8a7793-clock.h
@@ -0,0 +1,164 @@
1/*
2 * r8a7793 clock definition
3 *
4 * Copyright (C) 2014 Renesas Electronics Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#ifndef __DT_BINDINGS_CLOCK_R8A7793_H__
17#define __DT_BINDINGS_CLOCK_R8A7793_H__
18
19/* CPG */
20#define R8A7793_CLK_MAIN 0
21#define R8A7793_CLK_PLL0 1
22#define R8A7793_CLK_PLL1 2
23#define R8A7793_CLK_PLL3 3
24#define R8A7793_CLK_LB 4
25#define R8A7793_CLK_QSPI 5
26#define R8A7793_CLK_SDH 6
27#define R8A7793_CLK_SD0 7
28#define R8A7793_CLK_Z 8
29#define R8A7793_CLK_RCAN 9
30#define R8A7793_CLK_ADSP 10
31
32/* MSTP0 */
33#define R8A7793_CLK_MSIOF0 0
34
35/* MSTP1 */
36#define R8A7793_CLK_VCP0 1
37#define R8A7793_CLK_VPC0 3
38#define R8A7793_CLK_SSP1 9
39#define R8A7793_CLK_TMU1 11
40#define R8A7793_CLK_3DG 12
41#define R8A7793_CLK_2DDMAC 15
42#define R8A7793_CLK_FDP1_1 18
43#define R8A7793_CLK_FDP1_0 19
44#define R8A7793_CLK_TMU3 21
45#define R8A7793_CLK_TMU2 22
46#define R8A7793_CLK_CMT0 24
47#define R8A7793_CLK_TMU0 25
48#define R8A7793_CLK_VSP1_DU1 27
49#define R8A7793_CLK_VSP1_DU0 28
50#define R8A7793_CLK_VSP1_S 31
51
52/* MSTP2 */
53#define R8A7793_CLK_SCIFA2 2
54#define R8A7793_CLK_SCIFA1 3
55#define R8A7793_CLK_SCIFA0 4
56#define R8A7793_CLK_MSIOF2 5
57#define R8A7793_CLK_SCIFB0 6
58#define R8A7793_CLK_SCIFB1 7
59#define R8A7793_CLK_MSIOF1 8
60#define R8A7793_CLK_SCIFB2 16
61#define R8A7793_CLK_SYS_DMAC1 18
62#define R8A7793_CLK_SYS_DMAC0 19
63
64/* MSTP3 */
65#define R8A7793_CLK_TPU0 4
66#define R8A7793_CLK_SDHI2 11
67#define R8A7793_CLK_SDHI1 12
68#define R8A7793_CLK_SDHI0 14
69#define R8A7793_CLK_MMCIF0 15
70#define R8A7793_CLK_IIC0 18
71#define R8A7793_CLK_PCIEC 19
72#define R8A7793_CLK_IIC1 23
73#define R8A7793_CLK_SSUSB 28
74#define R8A7793_CLK_CMT1 29
75#define R8A7793_CLK_USBDMAC0 30
76#define R8A7793_CLK_USBDMAC1 31
77
78/* MSTP4 */
79#define R8A7793_CLK_IRQC 7
80
81/* MSTP5 */
82#define R8A7793_CLK_AUDIO_DMAC1 1
83#define R8A7793_CLK_AUDIO_DMAC0 2
84#define R8A7793_CLK_ADSP_MOD 6
85#define R8A7793_CLK_THERMAL 22
86#define R8A7793_CLK_PWM 23
87
88/* MSTP7 */
89#define R8A7793_CLK_EHCI 3
90#define R8A7793_CLK_HSUSB 4
91#define R8A7793_CLK_HSCIF2 13
92#define R8A7793_CLK_SCIF5 14
93#define R8A7793_CLK_SCIF4 15
94#define R8A7793_CLK_HSCIF1 16
95#define R8A7793_CLK_HSCIF0 17
96#define R8A7793_CLK_SCIF3 18
97#define R8A7793_CLK_SCIF2 19
98#define R8A7793_CLK_SCIF1 20
99#define R8A7793_CLK_SCIF0 21
100#define R8A7793_CLK_DU1 23
101#define R8A7793_CLK_DU0 24
102#define R8A7793_CLK_LVDS0 26
103
104/* MSTP8 */
105#define R8A7793_CLK_IPMMU_SGX 0
106#define R8A7793_CLK_VIN2 9
107#define R8A7793_CLK_VIN1 10
108#define R8A7793_CLK_VIN0 11
109#define R8A7793_CLK_ETHER 13
110#define R8A7793_CLK_SATA1 14
111#define R8A7793_CLK_SATA0 15
112
113/* MSTP9 */
114#define R8A7793_CLK_GPIO7 4
115#define R8A7793_CLK_GPIO6 5
116#define R8A7793_CLK_GPIO5 7
117#define R8A7793_CLK_GPIO4 8
118#define R8A7793_CLK_GPIO3 9
119#define R8A7793_CLK_GPIO2 10
120#define R8A7793_CLK_GPIO1 11
121#define R8A7793_CLK_GPIO0 12
122#define R8A7793_CLK_RCAN1 15
123#define R8A7793_CLK_RCAN0 16
124#define R8A7793_CLK_QSPI_MOD 17
125#define R8A7793_CLK_I2C5 25
126#define R8A7793_CLK_IICDVFS 26
127#define R8A7793_CLK_I2C4 27
128#define R8A7793_CLK_I2C3 28
129#define R8A7793_CLK_I2C2 29
130#define R8A7793_CLK_I2C1 30
131#define R8A7793_CLK_I2C0 31
132
133/* MSTP10 */
134#define R8A7793_CLK_SSI_ALL 5
135#define R8A7793_CLK_SSI9 6
136#define R8A7793_CLK_SSI8 7
137#define R8A7793_CLK_SSI7 8
138#define R8A7793_CLK_SSI6 9
139#define R8A7793_CLK_SSI5 10
140#define R8A7793_CLK_SSI4 11
141#define R8A7793_CLK_SSI3 12
142#define R8A7793_CLK_SSI2 13
143#define R8A7793_CLK_SSI1 14
144#define R8A7793_CLK_SSI0 15
145#define R8A7793_CLK_SCU_ALL 17
146#define R8A7793_CLK_SCU_DVC1 18
147#define R8A7793_CLK_SCU_DVC0 19
148#define R8A7793_CLK_SCU_SRC9 22
149#define R8A7793_CLK_SCU_SRC8 23
150#define R8A7793_CLK_SCU_SRC7 24
151#define R8A7793_CLK_SCU_SRC6 25
152#define R8A7793_CLK_SCU_SRC5 26
153#define R8A7793_CLK_SCU_SRC4 27
154#define R8A7793_CLK_SCU_SRC3 28
155#define R8A7793_CLK_SCU_SRC2 29
156#define R8A7793_CLK_SCU_SRC1 30
157#define R8A7793_CLK_SCU_SRC0 31
158
159/* MSTP11 */
160#define R8A7793_CLK_SCIFA3 6
161#define R8A7793_CLK_SCIFA4 7
162#define R8A7793_CLK_SCIFA5 8
163
164#endif /* __DT_BINDINGS_CLOCK_R8A7793_H__ */
diff --git a/include/dt-bindings/pinctrl/am43xx.h b/include/dt-bindings/pinctrl/am43xx.h
index b00bbc9c60b4..774dc1e843c5 100644
--- a/include/dt-bindings/pinctrl/am43xx.h
+++ b/include/dt-bindings/pinctrl/am43xx.h
@@ -14,6 +14,7 @@
14#define MUX_MODE6 6 14#define MUX_MODE6 6
15#define MUX_MODE7 7 15#define MUX_MODE7 7
16#define MUX_MODE8 8 16#define MUX_MODE8 8
17#define MUX_MODE9 9
17 18
18#define PULL_DISABLE (1 << 16) 19#define PULL_DISABLE (1 << 16)
19#define PULL_UP (1 << 17) 20#define PULL_UP (1 << 17)
diff --git a/include/dt-bindings/pinctrl/dra.h b/include/dt-bindings/pinctrl/dra.h
index 7448edff4723..4379e29f0460 100644
--- a/include/dt-bindings/pinctrl/dra.h
+++ b/include/dt-bindings/pinctrl/dra.h
@@ -30,6 +30,26 @@
30#define MUX_MODE14 0xe 30#define MUX_MODE14 0xe
31#define MUX_MODE15 0xf 31#define MUX_MODE15 0xf
32 32
33/* Certain pins need virtual mode, but note: they may glitch */
34#define MUX_VIRTUAL_MODE0 (MODE_SELECT | (0x0 << 4))
35#define MUX_VIRTUAL_MODE1 (MODE_SELECT | (0x1 << 4))
36#define MUX_VIRTUAL_MODE2 (MODE_SELECT | (0x2 << 4))
37#define MUX_VIRTUAL_MODE3 (MODE_SELECT | (0x3 << 4))
38#define MUX_VIRTUAL_MODE4 (MODE_SELECT | (0x4 << 4))
39#define MUX_VIRTUAL_MODE5 (MODE_SELECT | (0x5 << 4))
40#define MUX_VIRTUAL_MODE6 (MODE_SELECT | (0x6 << 4))
41#define MUX_VIRTUAL_MODE7 (MODE_SELECT | (0x7 << 4))
42#define MUX_VIRTUAL_MODE8 (MODE_SELECT | (0x8 << 4))
43#define MUX_VIRTUAL_MODE9 (MODE_SELECT | (0x9 << 4))
44#define MUX_VIRTUAL_MODE10 (MODE_SELECT | (0xa << 4))
45#define MUX_VIRTUAL_MODE11 (MODE_SELECT | (0xb << 4))
46#define MUX_VIRTUAL_MODE12 (MODE_SELECT | (0xc << 4))
47#define MUX_VIRTUAL_MODE13 (MODE_SELECT | (0xd << 4))
48#define MUX_VIRTUAL_MODE14 (MODE_SELECT | (0xe << 4))
49#define MUX_VIRTUAL_MODE15 (MODE_SELECT | (0xf << 4))
50
51#define MODE_SELECT (1 << 8)
52
33#define PULL_ENA (0 << 16) 53#define PULL_ENA (0 << 16)
34#define PULL_DIS (1 << 16) 54#define PULL_DIS (1 << 16)
35#define PULL_UP (1 << 17) 55#define PULL_UP (1 << 17)
diff --git a/include/dt-bindings/reset/altr,rst-mgr-a10.h b/include/dt-bindings/reset/altr,rst-mgr-a10.h
new file mode 100644
index 000000000000..acb0bbf4f9f5
--- /dev/null
+++ b/include/dt-bindings/reset/altr,rst-mgr-a10.h
@@ -0,0 +1,110 @@
1/*
2 * Copyright (c) 2014, Steffen Trumtrar <s.trumtrar@pengutronix.de>
3 *
4 * This software is licensed under the terms of the GNU General Public
5 * License version 2, as published by the Free Software Foundation, and
6 * may be copied, distributed, and modified under those terms.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 */
13
14#ifndef _DT_BINDINGS_RESET_ALTR_RST_MGR_A10_H
15#define _DT_BINDINGS_RESET_ALTR_RST_MGR_A10_H
16
17/* MPUMODRST */
18#define CPU0_RESET 0
19#define CPU1_RESET 1
20#define WDS_RESET 2
21#define SCUPER_RESET 3
22
23/* PER0MODRST */
24#define EMAC0_RESET 32
25#define EMAC1_RESET 33
26#define EMAC2_RESET 34
27#define USB0_RESET 35
28#define USB1_RESET 36
29#define NAND_RESET 37
30#define QSPI_RESET 38
31#define SDMMC_RESET 39
32#define EMAC0_OCP_RESET 40
33#define EMAC1_OCP_RESET 41
34#define EMAC2_OCP_RESET 42
35#define USB0_OCP_RESET 43
36#define USB1_OCP_RESET 44
37#define NAND_OCP_RESET 45
38#define QSPI_OCP_RESET 46
39#define SDMMC_OCP_RESET 47
40#define DMA_RESET 48
41#define SPIM0_RESET 49
42#define SPIM1_RESET 50
43#define SPIS0_RESET 51
44#define SPIS1_RESET 52
45#define DMA_OCP_RESET 53
46#define EMAC_PTP_RESET 54
47/* 55 is empty*/
48#define DMAIF0_RESET 56
49#define DMAIF1_RESET 57
50#define DMAIF2_RESET 58
51#define DMAIF3_RESET 59
52#define DMAIF4_RESET 60
53#define DMAIF5_RESET 61
54#define DMAIF6_RESET 62
55#define DMAIF7_RESET 63
56
57/* PER1MODRST */
58#define L4WD0_RESET 64
59#define L4WD1_RESET 65
60#define L4SYSTIMER0_RESET 66
61#define L4SYSTIMER1_RESET 67
62#define SPTIMER0_RESET 68
63#define SPTIMER1_RESET 69
64/* 70-71 is reserved */
65#define I2C0_RESET 72
66#define I2C1_RESET 73
67#define I2C2_RESET 74
68#define I2C3_RESET 75
69#define I2C4_RESET 76
70/* 77-79 is reserved */
71#define UART0_RESET 80
72#define UART1_RESET 81
73/* 82-87 is reserved */
74#define GPIO0_RESET 88
75#define GPIO1_RESET 89
76#define GPIO2_RESET 90
77
78/* BRGMODRST */
79#define HPS2FPGA_RESET 96
80#define LWHPS2FPGA_RESET 97
81#define FPGA2HPS_RESET 98
82#define F2SSDRAM0_RESET 99
83#define F2SSDRAM1_RESET 100
84#define F2SSDRAM2_RESET 101
85#define DDRSCH_RESET 102
86
87/* SYSMODRST*/
88#define ROM_RESET 128
89#define OCRAM_RESET 129
90/* 130 is reserved */
91#define FPGAMGR_RESET 131
92#define S2F_RESET 132
93#define SYSDBG_RESET 133
94#define OCRAM_OCP_RESET 134
95
96/* COLDMODRST */
97#define CLKMGRCOLD_RESET 160
98/* 161-162 is reserved */
99#define S2FCOLD_RESET 163
100#define TIMESTAMPCOLD_RESET 164
101#define TAPCOLD_RESET 165
102#define HMCCOLD_RESET 166
103#define IOMGRCOLD_RESET 167
104
105/* NRSTMODRST */
106#define NRSTPINOE_RESET 192
107
108/* DBGMODRST */
109#define DBG_RESET 224
110#endif