aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-08-01 18:37:45 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-08-01 18:37:45 -0400
commit043248cd4e9603e2e8858c4e20810d8e40be7d9d (patch)
treee7efb8af3cbc9cf379cb5473a554d68c0ef30553
parent43a0a98aa8da71583f84b84fd72e265c24d4c5f8 (diff)
parentd95eabc7b8ee4c8ef471e8a97aa62d353b110880 (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: "Device tree contents continue to be the largest branches we submit. This time around, some of the contents worth pointing out is: New SoC platforms: - Freescale i.MX 7Solo - Broadcom BCM23550 - Cirrus Logic EP7209 and EP7211 (clps711x platforms)_ - Hisilicon HI3519 - Renesas R8A7792 Some of the other delta that is sticking out, line-count wise: - Exynos moves of IP blocks under an SoC bus, which causes a large delta due to indentation changes - a new Tegra K1 board: Apalis - a bunch of small updates to many Allwinner platforms; new hardware support, some cleanup, etc" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (426 commits) ARM: dts: sun8i: Add dts file for inet86dz board ARM: dts: sun8i: Add dts file for Polaroid MID2407PXE03 tablet ARM: dts: sun8i: Use sun8i-reference-design-tablet for ga10h dts ARM: dts: sun8i: Use sun8i-reference-design-tablet for polaroid mid2809pxe04 ARM: dts: sun8i: reference-design-tablet: Add drivevbus-supply ARM: dts: Copy sun8i-q8-common.dtsi sun8i-reference-design-tablet.dtsi ARM: dts: sun5i: Use sun5i-reference-design-tablet.dtsi for utoo p66 dts ARM: dts: sun5i: Use sun5i-reference-design-tablet.dtsi for dit4350 dts ARM: dts: sun5i: reference-design-tablet: Remove mention of q8 ARM: dts: sun5i: reference-design-tablet: Set lradc vref to avcc ARM: dts: sun5i: Rename sun5i-q8-common.dtsi sun5i-reference-design-tablet.dtsi ARM: dts: sun5i: Move q8 display bits to sun5i-a13-q8-tablet.dts ARM: dts: sunxi: Rename sunxi-q8-common.dtsi sunxi-reference-design-tablet.dtsi ARM: dts: at91: Don't build unnecessary dtbs ARM: dts: at91: sama5d3x: separate motherboard gmac and emac definitions ARM: dts: at91: at91sam9g25ek: fix isi endpoint node ARM: dts: at91: move isi definition to at91sam9g25ek ARM: dts: at91: fix i2c-gpio node name ARM: dts: at91: vinco: fix regulator name ARM: dts: at91: ariag25 : fix onewire node ...
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt6
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550-cpu-method.txt36
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550.txt15
-rw-r--r--Documentation/devicetree/bindings/arm/cpus.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/hisilicon/hi3519-sysctrl.txt14
-rw-r--r--Documentation/devicetree/bindings/arm/olimex.txt8
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt3
-rw-r--r--Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/shmobile.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/tegra.txt4
-rw-r--r--Documentation/devicetree/bindings/dma/ti-edma.txt4
-rw-r--r--Documentation/devicetree/bindings/firmware/qcom,scm.txt28
-rw-r--r--Documentation/devicetree/bindings/iio/adc/at91_adc.txt12
-rw-r--r--Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt2
-rw-r--r--Documentation/devicetree/bindings/power/renesas,apmu.txt31
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tiecap.txt38
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt38
-rw-r--r--Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt33
-rw-r--r--Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt116
-rw-r--r--Documentation/devicetree/bindings/usb/atmel-usb.txt14
-rw-r--r--Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt8
-rw-r--r--arch/arm/boot/dts/Makefile43
-rw-r--r--arch/arm/boot/dts/aks-cdu.dts2
-rw-r--r--arch/arm/boot/dts/am335x-bone-common.dtsi12
-rw-r--r--arch/arm/boot/dts/am335x-boneblack.dts11
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts2
-rw-r--r--arch/arm/boot/dts/am335x-evmsk.dts2
-rw-r--r--arch/arm/boot/dts/am335x-icev2.dts7
-rw-r--r--arch/arm/boot/dts/am33xx.dtsi126
-rw-r--r--arch/arm/boot/dts/am3517-craneboard.dts2
-rw-r--r--arch/arm/boot/dts/am4372.dtsi111
-rw-r--r--arch/arm/boot/dts/am437x-gp-evm.dts6
-rw-r--r--arch/arm/boot/dts/am437x-idk-evm.dts1
-rw-r--r--arch/arm/boot/dts/am437x-sbc-t43.dts2
-rw-r--r--arch/arm/boot/dts/am43x-epos-evm.dts2
-rw-r--r--arch/arm/boot/dts/am43xx-clocks.dtsi8
-rw-r--r--arch/arm/boot/dts/am57xx-sbc-am57x.dts2
-rw-r--r--arch/arm/boot/dts/animeo_ip.dts11
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dts16
-rw-r--r--arch/arm/boot/dts/at91-ariag25.dts11
-rw-r--r--arch/arm/boot/dts/at91-cosino.dtsi9
-rw-r--r--arch/arm/boot/dts/at91-foxg20.dts13
-rw-r--r--arch/arm/boot/dts/at91-kizbox.dts4
-rw-r--r--arch/arm/boot/dts/at91-qil_a9260.dts13
-rw-r--r--arch/arm/boot/dts/at91-sam9_l9260.dts121
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts41
-rw-r--r--arch/arm/boot/dts/at91-sama5d3_xplained.dts2
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi11
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts2
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts4
-rw-r--r--arch/arm/boot/dts/at91-sama5d4ek.dts20
-rw-r--r--arch/arm/boot/dts/at91-vinco.dts2
-rw-r--r--arch/arm/boot/dts/at91rm9200.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9260.dtsi16
-rw-r--r--arch/arm/boot/dts/at91sam9260ek.dts211
-rw-r--r--arch/arm/boot/dts/at91sam9261.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9263ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9g20ek_common.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9g25ek.dts26
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi28
-rw-r--r--arch/arm/boot/dts/at91sam9n12.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9rl.dtsi30
-rw-r--r--arch/arm/boot/dts/at91sam9rlek.dts4
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi32
-rw-r--r--arch/arm/boot/dts/at91sam9x5ek.dtsi33
-rw-r--r--arch/arm/boot/dts/axp209.dtsi1
-rw-r--r--arch/arm/boot/dts/axp22x.dtsi12
-rw-r--r--arch/arm/boot/dts/axp809.dtsi53
-rw-r--r--arch/arm/boot/dts/bcm-cygnus.dtsi11
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi55
-rw-r--r--arch/arm/boot/dts/bcm11351.dtsi2
-rw-r--r--arch/arm/boot/dts/bcm21664.dtsi2
-rw-r--r--arch/arm/boot/dts/bcm23550-sparrow.dts80
-rw-r--r--arch/arm/boot/dts/bcm23550.dtsi415
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-plus.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts1
-rw-r--r--arch/arm/boot/dts/bcm2835-rpi-b.dts1
-rw-r--r--arch/arm/boot/dts/bcm2836-rpi-2-b.dts1
-rw-r--r--arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi19
-rw-r--r--arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi19
-rw-r--r--arch/arm/boot/dts/bcm283x.dtsi2
-rw-r--r--arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6250.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts4
-rw-r--r--arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts40
-rw-r--r--arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts4
-rw-r--r--arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts6
-rw-r--r--arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi15
-rw-r--r--arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi16
-rw-r--r--arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi18
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi47
-rw-r--r--arch/arm/boot/dts/bcm953012er.dts104
-rw-r--r--arch/arm/boot/dts/bcm958525xmc.dts109
-rw-r--r--arch/arm/boot/dts/bcm958625hr.dts111
-rw-r--r--arch/arm/boot/dts/compulab-sb-som.dtsi2
-rw-r--r--arch/arm/boot/dts/dm814x.dtsi2
-rw-r--r--arch/arm/boot/dts/dra7.dtsi242
-rw-r--r--arch/arm/boot/dts/dra72-evm-common.dtsi12
-rw-r--r--arch/arm/boot/dts/dra72x.dtsi16
-rw-r--r--arch/arm/boot/dts/dra74x.dtsi25
-rw-r--r--arch/arm/boot/dts/emev2-kzm9d.dts24
-rw-r--r--arch/arm/boot/dts/emev2.dtsi26
-rw-r--r--arch/arm/boot/dts/ep7209.dtsi191
-rw-r--r--arch/arm/boot/dts/ep7211-edb7211.dts100
-rw-r--r--arch/arm/boot/dts/ep7211.dtsi12
-rw-r--r--arch/arm/boot/dts/ethernut5.dts4
-rw-r--r--arch/arm/boot/dts/evk-pro3.dts4
-rw-r--r--arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi14
-rw-r--r--arch/arm/boot/dts/exynos3250-rinato.dts4
-rw-r--r--arch/arm/boot/dts/exynos3250.dtsi1
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi1
-rw-r--r--arch/arm/boot/dts/exynos4210-origen.dts5
-rw-r--r--arch/arm/boot/dts/exynos4210-smdkv310.dts5
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi33
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidu3.dts18
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx.dts11
-rw-r--r--arch/arm/boot/dts/exynos4412-odroidx2.dts11
-rw-r--r--arch/arm/boot/dts/exynos4412-origen.dts21
-rw-r--r--arch/arm/boot/dts/exynos4412-smdk4412.dts5
-rw-r--r--arch/arm/boot/dts/exynos4412-trats2.dts4
-rw-r--r--arch/arm/boot/dts/exynos5.dtsi215
-rw-r--r--arch/arm/boot/dts/exynos5250-arndale.dts4
-rw-r--r--arch/arm/boot/dts/exynos5250-smdk5250.dts4
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-common.dtsi2
-rw-r--r--arch/arm/boot/dts/exynos5250-spring.dts4
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi1701
-rw-r--r--arch/arm/boot/dts/exynos5410-odroidxu.dts580
-rw-r--r--arch/arm/boot/dts/exynos5410-pinctrl.dtsi210
-rw-r--r--arch/arm/boot/dts/exynos5410-smdk5410.dts6
-rw-r--r--arch/arm/boot/dts/exynos5410.dtsi333
-rw-r--r--arch/arm/boot/dts/exynos5420-arndale-octa.dts4
-rw-r--r--arch/arm/boot/dts/exynos5420-peach-pit.dts30
-rw-r--r--arch/arm/boot/dts/exynos5420-pinctrl.dtsi12
-rw-r--r--arch/arm/boot/dts/exynos5420-smdk5420.dts4
-rw-r--r--arch/arm/boot/dts/exynos5420.dtsi2770
-rw-r--r--arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi103
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi102
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts35
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3.dts35
-rw-r--r--arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi50
-rw-r--r--arch/arm/boot/dts/exynos54xx.dtsi199
-rw-r--r--arch/arm/boot/dts/exynos5800-peach-pi.dts30
-rw-r--r--arch/arm/boot/dts/ge863-pro3.dtsi9
-rw-r--r--arch/arm/boot/dts/hi3519-demb.dts42
-rw-r--r--arch/arm/boot/dts/hi3519.dtsi187
-rw-r--r--arch/arm/boot/dts/imx1-ads.dts4
-rw-r--r--arch/arm/boot/dts/imx1-apf9328.dts4
-rw-r--r--arch/arm/boot/dts/imx23-sansa.dts207
-rw-r--r--arch/arm/boot/dts/imx23-xfi3.dts179
-rw-r--r--arch/arm/boot/dts/imx23.dtsi48
-rw-r--r--arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts4
-rw-r--r--arch/arm/boot/dts/imx25-pdk.dts2
-rw-r--r--arch/arm/boot/dts/imx25-pinfunc.h627
-rw-r--r--arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi2
-rw-r--r--arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts6
-rw-r--r--arch/arm/boot/dts/imx27-pdk.dts2
-rw-r--r--arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts6
-rw-r--r--arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts4
-rw-r--r--arch/arm/boot/dts/imx28-apf28dev.dts2
-rw-r--r--arch/arm/boot/dts/imx28-cfa10049.dts2
-rw-r--r--arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi4
-rw-r--r--arch/arm/boot/dts/imx28-evk.dts2
-rw-r--r--arch/arm/boot/dts/imx28-tx28.dts2
-rw-r--r--arch/arm/boot/dts/imx28.dtsi5
-rw-r--r--arch/arm/boot/dts/imx31-bug.dts2
-rw-r--r--arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts4
-rw-r--r--arch/arm/boot/dts/imx35-pdk.dts2
-rw-r--r--arch/arm/boot/dts/imx51-babbage.dts4
-rw-r--r--arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts4
-rw-r--r--arch/arm/boot/dts/imx51-ts4800.dts27
-rw-r--r--arch/arm/boot/dts/imx53-smd.dts2
-rw-r--r--arch/arm/boot/dts/imx53-tqma53.dtsi2
-rw-r--r--arch/arm/boot/dts/imx53-tx53.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6dl-riotboard.dts1
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora.dts4
-rw-r--r--arch/arm/boot/dts/imx6q-arm2.dts3
-rw-r--r--arch/arm/boot/dts/imx6q-ba16.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6q-bx50v3.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6q-cm-fx6.dts281
-rw-r--r--arch/arm/boot/dts/imx6q-h100.dts395
-rw-r--r--arch/arm/boot/dts/imx6q-tbs2910.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-utilite-pro.dts197
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-apf6dev.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-aristainetos.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-microsom.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi3
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabrelite.dtsi1
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabresd.dtsi19
-rw-r--r--arch/arm/boot/dts/imx6qdl-tx6.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6qdl-wandboard.dtsi3
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6sl-warp.dts2
-rw-r--r--arch/arm/boot/dts/imx6sl.dtsi13
-rw-r--r--arch/arm/boot/dts/imx6sx-nitrogen6sx.dts2
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb.dtsi14
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi12
-rw-r--r--arch/arm/boot/dts/imx6ul-14x14-evk.dts63
-rw-r--r--arch/arm/boot/dts/imx6ul-pico-hobbit.dts6
-rw-r--r--arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts4
-rw-r--r--arch/arm/boot/dts/imx6ul-tx6ul.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi9
-rw-r--r--arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi148
-rw-r--r--arch/arm/boot/dts/imx7-colibri.dtsi571
-rw-r--r--arch/arm/boot/dts/imx7d-cl-som-imx7.dts1
-rw-r--r--arch/arm/boot/dts/imx7d-colibri-eval-v3.dts66
-rw-r--r--arch/arm/boot/dts/imx7d-colibri.dtsi54
-rw-r--r--arch/arm/boot/dts/imx7d-nitrogen7.dts3
-rw-r--r--arch/arm/boot/dts/imx7d-pinfunc.h2
-rw-r--r--arch/arm/boot/dts/imx7d-sdb.dts131
-rw-r--r--arch/arm/boot/dts/imx7d.dtsi923
-rw-r--r--arch/arm/boot/dts/imx7s-colibri-eval-v3.dts51
-rw-r--r--arch/arm/boot/dts/imx7s-colibri.dtsi50
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi933
-rw-r--r--arch/arm/boot/dts/keystone-k2e.dtsi7
-rw-r--r--arch/arm/boot/dts/keystone-k2g-evm.dts11
-rw-r--r--arch/arm/boot/dts/keystone-k2g.dtsi8
-rw-r--r--arch/arm/boot/dts/keystone-k2l.dtsi149
-rw-r--r--arch/arm/boot/dts/keystone.dtsi7
-rw-r--r--arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts4
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi1
-rw-r--r--arch/arm/boot/dts/meson8b.dtsi7
-rw-r--r--arch/arm/boot/dts/mpa1600.dts11
-rw-r--r--arch/arm/boot/dts/omap24xx-clocks.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-beagle-xm.dts10
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts10
-rw-r--r--arch/arm/boot/dts/omap3-cm-t3x.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-common.dtsi12
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi4
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd43.dts2
-rw-r--r--arch/arm/boot/dts/omap3-devkit8000-lcd70.dts2
-rw-r--r--arch/arm/boot/dts/omap3-gta04.dtsi72
-rw-r--r--arch/arm/boot/dts/omap3-ha-lcd.dts2
-rw-r--r--arch/arm/boot/dts/omap3-igep0020-common.dtsi8
-rw-r--r--arch/arm/boot/dts/omap3-n900.dts12
-rw-r--r--arch/arm/boot/dts/omap3-overo-common-dvi.dtsi8
-rw-r--r--arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-pandora-common.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-sb-t35.dtsi8
-rw-r--r--arch/arm/boot/dts/omap3-thunder.dts2
-rw-r--r--arch/arm/boot/dts/omap3.dtsi10
-rw-r--r--arch/arm/boot/dts/omap4-duovero-parlor.dts2
-rw-r--r--arch/arm/boot/dts/omap4-duovero.dtsi5
-rw-r--r--arch/arm/boot/dts/omap4-panda-common.dtsi21
-rw-r--r--arch/arm/boot/dts/omap4-sdp.dts13
-rw-r--r--arch/arm/boot/dts/omap4-var-om44customboard.dtsi2
-rw-r--r--arch/arm/boot/dts/omap4-var-som-om44.dtsi5
-rw-r--r--arch/arm/boot/dts/omap5-board-common.dtsi13
-rw-r--r--arch/arm/boot/dts/omap5-cm-t54.dts15
-rw-r--r--arch/arm/boot/dts/pm9g45.dts9
-rw-r--r--arch/arm/boot/dts/pxa27x.dtsi7
-rw-r--r--arch/arm/boot/dts/pxa2xx.dtsi8
-rw-r--r--arch/arm/boot/dts/pxa3xx.dtsi133
-rw-r--r--arch/arm/boot/dts/qcom-apq8060-dragonboard.dts626
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi (renamed from arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi)0
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts (renamed from arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts)10
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts6
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-pins.dtsi40
-rw-r--r--arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts44
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi10
-rw-r--r--arch/arm/boot/dts/qcom-apq8074-dragonboard.dts247
-rw-r--r--arch/arm/boot/dts/qcom-apq8084.dtsi8
-rw-r--r--arch/arm/boot/dts/qcom-ipq4019.dtsi6
-rw-r--r--arch/arm/boot/dts/qcom-msm8660-surf.dts11
-rw-r--r--arch/arm/boot/dts/qcom-msm8660.dtsi166
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts4
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi28
-rw-r--r--arch/arm/boot/dts/qcom-pma8084.dtsi20
-rw-r--r--arch/arm/boot/dts/r7s72100-genmai.dts6
-rw-r--r--arch/arm/boot/dts/r8a73a4-ape6evm.dts12
-rw-r--r--arch/arm/boot/dts/r8a73a4.dtsi34
-rw-r--r--arch/arm/boot/dts/r8a7740-armadillo800eva.dts20
-rw-r--r--arch/arm/boot/dts/r8a7740.dtsi2
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw.dts7
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi28
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen.dts10
-rw-r--r--arch/arm/boot/dts/r8a7790-lager.dts30
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi237
-rw-r--r--arch/arm/boot/dts/r8a7791-koelsch.dts20
-rw-r--r--arch/arm/boot/dts/r8a7791-porter.dts12
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi227
-rw-r--r--arch/arm/boot/dts/r8a7792-blanche.dts66
-rw-r--r--arch/arm/boot/dts/r8a7792.dtsi385
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts18
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi213
-rw-r--r--arch/arm/boot/dts/r8a7794-alt.dts4
-rw-r--r--arch/arm/boot/dts/r8a7794-silk.dts22
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi132
-rw-r--r--arch/arm/boot/dts/rk3228-evb.dts2
-rw-r--r--arch/arm/boot/dts/rk3229-evb.dts90
-rw-r--r--arch/arm/boot/dts/rk322x.dtsi (renamed from arch/arm/boot/dts/rk3228.dtsi)118
-rw-r--r--arch/arm/boot/dts/rk3288-firefly.dtsi31
-rw-r--r--arch/arm/boot/dts/rk3288-miqi.dts26
-rw-r--r--arch/arm/boot/dts/rk3288-popmetal.dts31
-rw-r--r--arch/arm/boot/dts/rk3288-rock2-som.dtsi31
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi101
-rw-r--r--arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi1
-rw-r--r--arch/arm/boot/dts/rk3288-veyron.dtsi31
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi5
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi37
-rw-r--r--arch/arm/boot/dts/sama5d3.dtsi44
-rw-r--r--arch/arm/boot/dts/sama5d31ek.dts1
-rw-r--r--arch/arm/boot/dts/sama5d33ek.dts1
-rw-r--r--arch/arm/boot/dts/sama5d34ek.dts1
-rw-r--r--arch/arm/boot/dts/sama5d35ek.dts2
-rw-r--r--arch/arm/boot/dts/sama5d36ek.dts2
-rw-r--r--arch/arm/boot/dts/sama5d3xcm.dtsi34
-rw-r--r--arch/arm/boot/dts/sama5d3xmb.dtsi12
-rw-r--r--arch/arm/boot/dts/sama5d3xmb_emac.dtsi26
-rw-r--r--arch/arm/boot/dts/sama5d3xmb_gmac.dtsi48
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi40
-rw-r--r--arch/arm/boot/dts/sh73a0-kzm9g.dts19
-rw-r--r--arch/arm/boot/dts/sh73a0.dtsi2
-rw-r--r--arch/arm/boot/dts/socfpga_arria10.dtsi24
-rw-r--r--arch/arm/boot/dts/socfpga_arria10_socdk.dtsi7
-rw-r--r--arch/arm/boot/dts/ste-dbx5x0.dtsi1
-rw-r--r--arch/arm/boot/dts/ste-href-tvk1281618.dtsi62
-rw-r--r--arch/arm/boot/dts/ste-href.dtsi1
-rw-r--r--arch/arm/boot/dts/ste-hrefv60plus.dtsi120
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts84
-rw-r--r--arch/arm/boot/dts/stih410-clock.dtsi9
-rw-r--r--arch/arm/boot/dts/sun4i-a10-a1000.dts4
-rw-r--r--arch/arm/boot/dts/sun4i-a10-hackberry.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts1
-rw-r--r--arch/arm/boot/dts/sun4i-a10.dtsi227
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts19
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-mk802.dts32
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts7
-rw-r--r--arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts10
-rw-r--r--arch/arm/boot/dts/sun5i-a10s.dtsi14
-rw-r--r--arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts178
-rw-r--r--arch/arm/boot/dts/sun5i-a13-q8-tablet.dts40
-rw-r--r--arch/arm/boot/dts/sun5i-a13-utoo-p66.dts180
-rw-r--r--arch/arm/boot/dts/sun5i-a13.dtsi122
-rw-r--r--arch/arm/boot/dts/sun5i-r8.dtsi120
-rw-r--r--arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi (renamed from arch/arm/boot/dts/sun5i-q8-common.dtsi)36
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi2
-rw-r--r--arch/arm/boot/dts/sun6i-a31-m9.dts96
-rw-r--r--arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts96
-rw-r--r--arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts229
-rw-r--r--arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts80
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi474
-rw-r--r--arch/arm/boot/dts/sun8i-a23-inet86dz.dts58
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts50
-rw-r--r--arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts195
-rw-r--r--arch/arm/boot/dts/sun8i-a23-q8-tablet.dts15
-rw-r--r--arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts77
-rw-r--r--arch/arm/boot/dts/sun8i-a33-q8-tablet.dts15
-rw-r--r--arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts195
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi21
-rw-r--r--arch/arm/boot/dts/sun8i-q8-common.dtsi139
-rw-r--r--arch/arm/boot/dts/sun8i-r16-parrot.dts351
-rw-r--r--arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi216
-rw-r--r--arch/arm/boot/dts/sun9i-a80-cubieboard4.dts164
-rw-r--r--arch/arm/boot/dts/sun9i-a80-optimus.dts195
-rw-r--r--arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi (renamed from arch/arm/boot/dts/sunxi-q8-common.dtsi)0
-rw-r--r--arch/arm/boot/dts/tegra114-dalmore.dts2
-rw-r--r--arch/arm/boot/dts/tegra114-roth.dts4
-rw-r--r--arch/arm/boot/dts/tegra114-tn7.dts2
-rw-r--r--arch/arm/boot/dts/tegra124-apalis-emc.dtsi1502
-rw-r--r--arch/arm/boot/dts/tegra124-apalis-eval.dts284
-rw-r--r--arch/arm/boot/dts/tegra124-apalis.dtsi2100
-rw-r--r--arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi6
-rw-r--r--arch/arm/boot/dts/tegra124-jetson-tk1.dts88
-rw-r--r--arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi6
-rw-r--r--arch/arm/boot/dts/tegra124-nyan-big.dts4
-rw-r--r--arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi6
-rw-r--r--arch/arm/boot/dts/tegra124-nyan-blaze.dts2
-rw-r--r--arch/arm/boot/dts/tegra124-nyan.dtsi60
-rw-r--r--arch/arm/boot/dts/tegra124-venice2.dts70
-rw-r--r--arch/arm/boot/dts/tegra124.dtsi125
-rw-r--r--arch/arm/boot/dts/tegra20-colibri-512.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra20-harmony.dts2
-rw-r--r--arch/arm/boot/dts/tegra20-paz00.dts2
-rw-r--r--arch/arm/boot/dts/tegra20-seaboard.dts2
-rw-r--r--arch/arm/boot/dts/tegra20-tamonten.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra20-trimslice.dts2
-rw-r--r--arch/arm/boot/dts/tegra20-ventana.dts2
-rw-r--r--arch/arm/boot/dts/tegra20-whistler.dts2
-rw-r--r--arch/arm/boot/dts/tegra30-apalis.dtsi7
-rw-r--r--arch/arm/boot/dts/tegra30-beaver.dts2
-rw-r--r--arch/arm/boot/dts/tegra30-cardhu.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra30-colibri-eval-v3.dts2
-rw-r--r--arch/arm/boot/dts/tegra30-colibri.dtsi2
-rw-r--r--arch/arm/boot/dts/tny_a9260_common.dtsi9
-rw-r--r--arch/arm/boot/dts/tny_a9263.dts11
-rw-r--r--arch/arm/boot/dts/uniphier-common32.dtsi12
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld4.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro4.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-pro5.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-ph1-sld8.dtsi2
-rw-r--r--arch/arm/boot/dts/uniphier-pinctrl.dtsi5
-rw-r--r--arch/arm/boot/dts/uniphier-proxstream2-gentil.dts8
-rw-r--r--arch/arm/boot/dts/uniphier-proxstream2-vodka.dts8
-rw-r--r--arch/arm/boot/dts/uniphier-proxstream2.dtsi2
-rw-r--r--arch/arm/boot/dts/usb_a9260_common.dtsi13
-rw-r--r--arch/arm/boot/dts/usb_a9263.dts11
-rw-r--r--arch/arm/boot/dts/usb_a9g20_common.dtsi5
-rw-r--r--arch/arm/mach-bcm/platsmp.c116
-rw-r--r--drivers/clk/ti/clk-43xx.c1
-rw-r--r--drivers/spi/spi-st-ssc4.c36
-rw-r--r--include/dt-bindings/clock/r8a7792-clock.h102
-rw-r--r--include/dt-bindings/clock/r8a7794-clock.h1
-rw-r--r--include/dt-bindings/clock/stih407-clks.h4
-rw-r--r--include/dt-bindings/pinctrl/keystone.h39
-rw-r--r--include/dt-bindings/power/r8a7792-sysc.h26
413 files changed, 21016 insertions, 6944 deletions
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt
index 8240c023e202..e3f996920403 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt
@@ -5,7 +5,7 @@ CPUs in the following Broadcom SoCs:
5 BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664 5 BCM11130, BCM11140, BCM11351, BCM28145, BCM28155, BCM21664
6 6
7The enable method is specified by defining the following required 7The enable method is specified by defining the following required
8properties in the "cpus" device tree node: 8properties in the "cpu" device tree node:
9 - enable-method = "brcm,bcm11351-cpu-method"; 9 - enable-method = "brcm,bcm11351-cpu-method";
10 - secondary-boot-reg = <...>; 10 - secondary-boot-reg = <...>;
11 11
@@ -19,8 +19,6 @@ Example:
19 cpus { 19 cpus {
20 #address-cells = <1>; 20 #address-cells = <1>;
21 #size-cells = <0>; 21 #size-cells = <0>;
22 enable-method = "brcm,bcm11351-cpu-method";
23 secondary-boot-reg = <0x3500417c>;
24 22
25 cpu0: cpu@0 { 23 cpu0: cpu@0 {
26 device_type = "cpu"; 24 device_type = "cpu";
@@ -32,5 +30,7 @@ Example:
32 device_type = "cpu"; 30 device_type = "cpu";
33 compatible = "arm,cortex-a9"; 31 compatible = "arm,cortex-a9";
34 reg = <1>; 32 reg = <1>;
33 enable-method = "brcm,bcm11351-cpu-method";
34 secondary-boot-reg = <0x3500417c>;
35 }; 35 };
36 }; 36 };
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550-cpu-method.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550-cpu-method.txt
new file mode 100644
index 000000000000..a3af54c0e404
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550-cpu-method.txt
@@ -0,0 +1,36 @@
1Broadcom Kona Family CPU Enable Method
2--------------------------------------
3This binding defines the enable method used for starting secondary
4CPUs in the following Broadcom SoCs:
5 BCM23550
6
7The enable method is specified by defining the following required
8properties in the "cpu" device tree node:
9 - enable-method = "brcm,bcm23550";
10 - secondary-boot-reg = <...>;
11
12The secondary-boot-reg property is a u32 value that specifies the
13physical address of the register used to request the ROM holding pen
14code release a secondary CPU. The value written to the register is
15formed by encoding the target CPU id into the low bits of the
16physical start address it should jump to.
17
18Example:
19 cpus {
20 #address-cells = <1>;
21 #size-cells = <0>;
22
23 cpu0: cpu@0 {
24 device_type = "cpu";
25 compatible = "arm,cortex-a9";
26 reg = <0>;
27 };
28
29 cpu1: cpu@1 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a9";
32 reg = <1>;
33 enable-method = "brcm,bcm23550";
34 secondary-boot-reg = <0x3500417c>;
35 };
36 };
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550.txt
new file mode 100644
index 000000000000..080baad923d6
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550.txt
@@ -0,0 +1,15 @@
1Broadcom BCM23550 device tree bindings
2--------------------------------------
3
4This document describes the device tree bindings for boards with the BCM23550
5SoC.
6
7Required root node property:
8 - compatible: brcm,bcm23550
9
10Example:
11 / {
12 model = "BCM23550 SoC";
13 compatible = "brcm,bcm23550";
14 [...]
15 }
diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
index 3f0cbbb8395f..e6782d50cbcd 100644
--- a/Documentation/devicetree/bindings/arm/cpus.txt
+++ b/Documentation/devicetree/bindings/arm/cpus.txt
@@ -193,6 +193,8 @@ nodes to be present and contain the properties described below.
193 "allwinner,sun6i-a31" 193 "allwinner,sun6i-a31"
194 "allwinner,sun8i-a23" 194 "allwinner,sun8i-a23"
195 "arm,realview-smp" 195 "arm,realview-smp"
196 "brcm,bcm11351-cpu-method"
197 "brcm,bcm23550"
196 "brcm,bcm-nsp-smp" 198 "brcm,bcm-nsp-smp"
197 "brcm,brahma-b15" 199 "brcm,brahma-b15"
198 "marvell,armada-375-smp" 200 "marvell,armada-375-smp"
@@ -204,6 +206,7 @@ nodes to be present and contain the properties described below.
204 "qcom,gcc-msm8660" 206 "qcom,gcc-msm8660"
205 "qcom,kpss-acc-v1" 207 "qcom,kpss-acc-v1"
206 "qcom,kpss-acc-v2" 208 "qcom,kpss-acc-v2"
209 "renesas,apmu"
207 "rockchip,rk3036-smp" 210 "rockchip,rk3036-smp"
208 "rockchip,rk3066-smp" 211 "rockchip,rk3066-smp"
209 "ste,dbx500-smp" 212 "ste,dbx500-smp"
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hi3519-sysctrl.txt b/Documentation/devicetree/bindings/arm/hisilicon/hi3519-sysctrl.txt
new file mode 100644
index 000000000000..115c5be0bd0b
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/hisilicon/hi3519-sysctrl.txt
@@ -0,0 +1,14 @@
1* Hisilicon Hi3519 System Controller Block
2
3This bindings use the following binding:
4Documentation/devicetree/bindings/mfd/syscon.txt
5
6Required properties:
7- compatible: "hisilicon,hi3519-sysctrl".
8- reg: the register region of this block
9
10Examples:
11sysctrl: system-controller@12010000 {
12 compatible = "hisilicon,hi3519-sysctrl", "syscon";
13 reg = <0x12010000 0x1000>;
14};
diff --git a/Documentation/devicetree/bindings/arm/olimex.txt b/Documentation/devicetree/bindings/arm/olimex.txt
index 007fb5c685a1..d726aeca56be 100644
--- a/Documentation/devicetree/bindings/arm/olimex.txt
+++ b/Documentation/devicetree/bindings/arm/olimex.txt
@@ -1,5 +1,9 @@
1Olimex i.MX Platforms Device Tree Bindings 1Olimex Device Tree Bindings
2------------------------------------------ 2---------------------------
3
4SAM9-L9260 Board
5Required root node properties:
6 - compatible = "olimex,sam9-l9260", "atmel,at91sam9260";
3 7
4i.MX23 Olinuxino Low Cost Board 8i.MX23 Olinuxino Low Cost Board
5Required root node properties: 9Required root node properties:
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index 715d960d5eea..666864517069 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -107,6 +107,9 @@ Rockchip platforms device tree bindings
107 Required root node properties: 107 Required root node properties:
108 - compatible = "rockchip,rk3228-evb", "rockchip,rk3228"; 108 - compatible = "rockchip,rk3228-evb", "rockchip,rk3228";
109 109
110- Rockchip RK3229 Evaluation board:
111 - compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
112
110- Rockchip RK3399 evb: 113- Rockchip RK3399 evb:
111 Required root node properties: 114 Required root node properties:
112 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399"; 115 - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
diff --git a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
index f5deace2b380..0ea7f14ef294 100644
--- a/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
+++ b/Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt
@@ -47,6 +47,7 @@ Required root node properties:
47 - "hardkernel,odroid-u3" - for Exynos4412-based Hardkernel Odroid U3. 47 - "hardkernel,odroid-u3" - for Exynos4412-based Hardkernel Odroid U3.
48 - "hardkernel,odroid-x" - for Exynos4412-based Hardkernel Odroid X. 48 - "hardkernel,odroid-x" - for Exynos4412-based Hardkernel Odroid X.
49 - "hardkernel,odroid-x2" - for Exynos4412-based Hardkernel Odroid X2. 49 - "hardkernel,odroid-x2" - for Exynos4412-based Hardkernel Odroid X2.
50 - "hardkernel,odroid-xu" - for Exynos5410-based Hardkernel Odroid XU.
50 - "hardkernel,odroid-xu3" - for Exynos5422-based Hardkernel Odroid XU3. 51 - "hardkernel,odroid-xu3" - for Exynos5422-based Hardkernel Odroid XU3.
51 - "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel 52 - "hardkernel,odroid-xu3-lite" - for Exynos5422-based Hardkernel
52 Odroid XU3 Lite board. 53 Odroid XU3 Lite board.
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt
index 9cf67e48f222..6adb9d549fce 100644
--- a/Documentation/devicetree/bindings/arm/shmobile.txt
+++ b/Documentation/devicetree/bindings/arm/shmobile.txt
@@ -39,6 +39,8 @@ Boards:
39 compatible = "renesas,ape6evm", "renesas,r8a73a4" 39 compatible = "renesas,ape6evm", "renesas,r8a73a4"
40 - Atmark Techno Armadillo-800 EVA 40 - Atmark Techno Armadillo-800 EVA
41 compatible = "renesas,armadillo800eva" 41 compatible = "renesas,armadillo800eva"
42 - Blanche (RTP0RC7792SEB00010S)
43 compatible = "renesas,blanche", "renesas,r8a7792"
42 - BOCK-W 44 - BOCK-W
43 compatible = "renesas,bockw", "renesas,r8a7778" 45 compatible = "renesas,bockw", "renesas,r8a7778"
44 - Genmai (RTK772100BC00000BR) 46 - Genmai (RTK772100BC00000BR)
diff --git a/Documentation/devicetree/bindings/arm/tegra.txt b/Documentation/devicetree/bindings/arm/tegra.txt
index 73278c6d2dc3..b5a4342c1d46 100644
--- a/Documentation/devicetree/bindings/arm/tegra.txt
+++ b/Documentation/devicetree/bindings/arm/tegra.txt
@@ -32,7 +32,11 @@ board-specific compatible values:
32 nvidia,whistler 32 nvidia,whistler
33 toradex,apalis_t30 33 toradex,apalis_t30
34 toradex,apalis_t30-eval 34 toradex,apalis_t30-eval
35 toradex,apalis-tk1
36 toradex,apalis-tk1-eval
35 toradex,colibri_t20-512 37 toradex,colibri_t20-512
38 toradex,colibri_t30
39 toradex,colibri_t30-eval-v3
36 toradex,iris 40 toradex,iris
37 41
38Trusted Foundations 42Trusted Foundations
diff --git a/Documentation/devicetree/bindings/dma/ti-edma.txt b/Documentation/devicetree/bindings/dma/ti-edma.txt
index 079b42a81d7c..18090e7226b4 100644
--- a/Documentation/devicetree/bindings/dma/ti-edma.txt
+++ b/Documentation/devicetree/bindings/dma/ti-edma.txt
@@ -15,7 +15,7 @@ Required properties:
15- reg: Memory map of eDMA CC 15- reg: Memory map of eDMA CC
16- reg-names: "edma3_cc" 16- reg-names: "edma3_cc"
17- interrupts: Interrupt lines for CCINT, MPERR and CCERRINT. 17- interrupts: Interrupt lines for CCINT, MPERR and CCERRINT.
18- interrupt-names: "edma3_ccint", "emda3_mperr" and "edma3_ccerrint" 18- interrupt-names: "edma3_ccint", "edma3_mperr" and "edma3_ccerrint"
19- ti,tptcs: List of TPTCs associated with the eDMA in the following form: 19- ti,tptcs: List of TPTCs associated with the eDMA in the following form:
20 <&tptc_phandle TC_priority_number>. The highest priority is 0. 20 <&tptc_phandle TC_priority_number>. The highest priority is 0.
21 21
@@ -48,7 +48,7 @@ edma: edma@49000000 {
48 reg = <0x49000000 0x10000>; 48 reg = <0x49000000 0x10000>;
49 reg-names = "edma3_cc"; 49 reg-names = "edma3_cc";
50 interrupts = <12 13 14>; 50 interrupts = <12 13 14>;
51 interrupt-names = "edma3_ccint", "emda3_mperr", "edma3_ccerrint"; 51 interrupt-names = "edma3_ccint", "edma3_mperr", "edma3_ccerrint";
52 dma-requests = <64>; 52 dma-requests = <64>;
53 #dma-cells = <2>; 53 #dma-cells = <2>;
54 54
diff --git a/Documentation/devicetree/bindings/firmware/qcom,scm.txt b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
new file mode 100644
index 000000000000..3b4436e56865
--- /dev/null
+++ b/Documentation/devicetree/bindings/firmware/qcom,scm.txt
@@ -0,0 +1,28 @@
1QCOM Secure Channel Manager (SCM)
2
3Qualcomm processors include an interface to communicate to the secure firmware.
4This interface allows for clients to request different types of actions. These
5can include CPU power up/down, HDCP requests, loading of firmware, and other
6assorted actions.
7
8Required properties:
9- compatible: must contain one of the following:
10 * "qcom,scm-apq8064" for APQ8064 platforms
11 * "qcom,scm-msm8660" for MSM8660 platforms
12 * "qcom,scm-msm8690" for MSM8690 platforms
13 * "qcom,scm" for later processors (MSM8916, APQ8084, MSM8974, etc)
14- clocks: One to three clocks may be required based on compatible.
15 * Only core clock required for "qcom,scm-apq8064", "qcom,scm-msm8660", and "qcom,scm-msm8960"
16 * Core, iface, and bus clocks required for "qcom,scm"
17- clock-names: Must contain "core" for the core clock, "iface" for the interface
18 clock and "bus" for the bus clock per the requirements of the compatible.
19
20Example for MSM8916:
21
22 firmware {
23 scm {
24 compatible = "qcom,scm";
25 clocks = <&gcc GCC_CRYPTO_CLK> , <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
26 clock-names = "core", "bus", "iface";
27 };
28 };
diff --git a/Documentation/devicetree/bindings/iio/adc/at91_adc.txt b/Documentation/devicetree/bindings/iio/adc/at91_adc.txt
index 0f813dec5e08..f65b04fb7962 100644
--- a/Documentation/devicetree/bindings/iio/adc/at91_adc.txt
+++ b/Documentation/devicetree/bindings/iio/adc/at91_adc.txt
@@ -59,28 +59,24 @@ adc0: adc@fffb0000 {
59 atmel,adc-res-names = "lowres", "highres"; 59 atmel,adc-res-names = "lowres", "highres";
60 atmel,adc-use-res = "lowres"; 60 atmel,adc-use-res = "lowres";
61 61
62 trigger@0 { 62 trigger0 {
63 reg = <0>;
64 trigger-name = "external-rising"; 63 trigger-name = "external-rising";
65 trigger-value = <0x1>; 64 trigger-value = <0x1>;
66 trigger-external; 65 trigger-external;
67 }; 66 };
68 trigger@1 { 67 trigger1 {
69 reg = <1>;
70 trigger-name = "external-falling"; 68 trigger-name = "external-falling";
71 trigger-value = <0x2>; 69 trigger-value = <0x2>;
72 trigger-external; 70 trigger-external;
73 }; 71 };
74 72
75 trigger@2 { 73 trigger2 {
76 reg = <2>;
77 trigger-name = "external-any"; 74 trigger-name = "external-any";
78 trigger-value = <0x3>; 75 trigger-value = <0x3>;
79 trigger-external; 76 trigger-external;
80 }; 77 };
81 78
82 trigger@3 { 79 trigger3 {
83 reg = <3>;
84 trigger-name = "continuous"; 80 trigger-name = "continuous";
85 trigger-value = <0x6>; 81 trigger-value = <0x6>;
86 }; 82 };
diff --git a/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt b/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
index 0bf1ae243552..3742c152c467 100644
--- a/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
+++ b/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
@@ -124,7 +124,7 @@ For Tegra124 and Tegra132, the list of valid PHY nodes is given below:
124 - functions: "usb3-ss", "sata" 124 - functions: "usb3-ss", "sata"
125 125
126For Tegra210, the list of valid PHY nodes is given below: 126For Tegra210, the list of valid PHY nodes is given below:
127- utmi: utmi-0, utmi-1, utmi-2, utmi-3 127- usb2: usb2-0, usb2-1, usb2-2, usb2-3
128 - functions: "snps", "xusb", "uart" 128 - functions: "snps", "xusb", "uart"
129- hsic: hsic-0, hsic-1 129- hsic: hsic-0, hsic-1
130 - functions: "snps", "xusb" 130 - functions: "snps", "xusb"
diff --git a/Documentation/devicetree/bindings/power/renesas,apmu.txt b/Documentation/devicetree/bindings/power/renesas,apmu.txt
new file mode 100644
index 000000000000..84404c9edff7
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/renesas,apmu.txt
@@ -0,0 +1,31 @@
1DT bindings for the Renesas Advanced Power Management Unit
2
3Renesas R-Car line of SoCs utilize one or more APMU hardware units
4for CPU core power domain control including SMP boot and CPU Hotplug.
5
6Required properties:
7
8- compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
9 Examples with soctypes are:
10 - "renesas,r8a7790-apmu" (R-Car H2)
11 - "renesas,r8a7791-apmu" (R-Car M2-W)
12 - "renesas,r8a7792-apmu" (R-Car V2H)
13 - "renesas,r8a7793-apmu" (R-Car M2-N)
14 - "renesas,r8a7794-apmu" (R-Car E2)
15
16- reg: Base address and length of the I/O registers used by the APMU.
17
18- cpus: This node contains a list of CPU cores, which should match the order
19 of CPU cores used by the WUPCR and PSTR registers in the Advanced Power
20 Management Unit section of the device's datasheet.
21
22
23Example:
24
25This shows the r8a7791 APMU that can control CPU0 and CPU1.
26
27 apmu@e6152000 {
28 compatible = "renesas,r8a7791-apmu", "renesas,apmu";
29 reg = <0 0xe6152000 0 0x188>;
30 cpus = <&cpu0 &cpu1>;
31 };
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
index fb81179dce37..8007e839a716 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-tiecap.txt
@@ -2,28 +2,48 @@ TI SOC ECAP based APWM controller
2 2
3Required properties: 3Required properties:
4- compatible: Must be "ti,<soc>-ecap". 4- compatible: Must be "ti,<soc>-ecap".
5 for am33xx - compatible = "ti,am33xx-ecap"; 5 for am33xx - compatible = "ti,am3352-ecap", "ti,am33xx-ecap";
6 for da850 - compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 6 for am4372 - compatible = "ti,am4372-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
7 for da850 - compatible = "ti,da850-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
8 for dra746 - compatible = "ti,dra746-ecap", "ti,am3352-ecap";
7- #pwm-cells: should be 3. See pwm.txt in this directory for a description of 9- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
8 the cells format. The PWM channel index ranges from 0 to 4. The only third 10 the cells format. The PWM channel index ranges from 0 to 4. The only third
9 cell flag supported by this binding is PWM_POLARITY_INVERTED. 11 cell flag supported by this binding is PWM_POLARITY_INVERTED.
10- reg: physical base address and size of the registers map. 12- reg: physical base address and size of the registers map.
11 13
12Optional properties: 14Optional properties:
13- ti,hwmods: Name of the hwmod associated to the ECAP: 15- clocks: Handle to the ECAP's functional clock.
14 "ecap<x>", <x> being the 0-based instance number from the HW spec 16- clock-names: Must be set to "fck".
15 17
16Example: 18Example:
17 19
18ecap0: ecap@0 { /* ECAP on am33xx */ 20ecap0: ecap@48300100 { /* ECAP on am33xx */
19 compatible = "ti,am33xx-ecap"; 21 compatible = "ti,am3352-ecap", "ti,am33xx-ecap";
22 #pwm-cells = <3>;
23 reg = <0x48300100 0x80>;
24 clocks = <&l4ls_gclk>;
25 clock-names = "fck";
26};
27
28ecap0: ecap@48300100 { /* ECAP on am4372 */
29 compatible = "ti,am4372-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
20 #pwm-cells = <3>; 30 #pwm-cells = <3>;
21 reg = <0x48300100 0x80>; 31 reg = <0x48300100 0x80>;
22 ti,hwmods = "ecap0"; 32 ti,hwmods = "ecap0";
33 clocks = <&l4ls_gclk>;
34 clock-names = "fck";
35};
36
37ecap0: ecap@1f06000 { /* ECAP on da850 */
38 compatible = "ti,da850-ecap", "ti,am3352-ecap", "ti,am33xx-ecap";
39 #pwm-cells = <3>;
40 reg = <0x1f06000 0x80>;
23}; 41};
24 42
25ecap0: ecap@0 { /* ECAP on da850 */ 43ecap0: ecap@4843e100 {
26 compatible = "ti,da850-ecap", "ti,am33xx-ecap"; 44 compatible = "ti,dra746-ecap", "ti,am3352-ecap";
27 #pwm-cells = <3>; 45 #pwm-cells = <3>;
28 reg = <0x306000 0x80>; 46 reg = <0x4843e100 0x80>;
47 clocks = <&l4_root_clk_div>;
48 clock-names = "fck";
29}; 49};
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
index 9c100b2c5b23..944fe356bb45 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt
@@ -2,28 +2,48 @@ TI SOC EHRPWM based PWM controller
2 2
3Required properties: 3Required properties:
4- compatible: Must be "ti,<soc>-ehrpwm". 4- compatible: Must be "ti,<soc>-ehrpwm".
5 for am33xx - compatible = "ti,am33xx-ehrpwm"; 5 for am33xx - compatible = "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
6 for da850 - compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 6 for am4372 - compatible = "ti,am4372-ehrpwm", "ti-am3352-ehrpwm", "ti,am33xx-ehrpwm";
7 for da850 - compatible = "ti,da850-ehrpwm", "ti-am3352-ehrpwm", "ti,am33xx-ehrpwm";
8 for dra746 - compatible = "ti,dra746-ehrpwm", "ti-am3352-ehrpwm";
7- #pwm-cells: should be 3. See pwm.txt in this directory for a description of 9- #pwm-cells: should be 3. See pwm.txt in this directory for a description of
8 the cells format. The only third cell flag supported by this binding is 10 the cells format. The only third cell flag supported by this binding is
9 PWM_POLARITY_INVERTED. 11 PWM_POLARITY_INVERTED.
10- reg: physical base address and size of the registers map. 12- reg: physical base address and size of the registers map.
11 13
12Optional properties: 14Optional properties:
13- ti,hwmods: Name of the hwmod associated to the EHRPWM: 15- clocks: Handle to the PWM's time-base and functional clock.
14 "ehrpwm<x>", <x> being the 0-based instance number from the HW spec 16- clock-names: Must be set to "tbclk" and "fck".
15 17
16Example: 18Example:
17 19
18ehrpwm0: ehrpwm@0 { /* EHRPWM on am33xx */ 20ehrpwm0: pwm@48300200 { /* EHRPWM on am33xx */
19 compatible = "ti,am33xx-ehrpwm"; 21 compatible = "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
20 #pwm-cells = <3>; 22 #pwm-cells = <3>;
21 reg = <0x48300200 0x100>; 23 reg = <0x48300200 0x100>;
24 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
25 clock-names = "tbclk", "fck";
26};
27
28ehrpwm0: pwm@48300200 { /* EHRPWM on am4372 */
29 compatible = "ti,am4372-ehrpwm", "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
30 #pwm-cells = <3>;
31 reg = <0x48300200 0x80>;
32 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
33 clock-names = "tbclk", "fck";
22 ti,hwmods = "ehrpwm0"; 34 ti,hwmods = "ehrpwm0";
23}; 35};
24 36
25ehrpwm0: ehrpwm@0 { /* EHRPWM on da850 */ 37ehrpwm0: pwm@1f00000 { /* EHRPWM on da850 */
26 compatible = "ti,da850-ehrpwm", "ti,am33xx-ehrpwm"; 38 compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm", "ti,am33xx-ehrpwm";
39 #pwm-cells = <3>;
40 reg = <0x1f00000 0x2000>;
41};
42
43ehrpwm0: pwm@4843e200 { /* EHRPWM on dra746 */
44 compatible = "ti,dra746-ehrpwm", "ti,am3352-ehrpwm";
27 #pwm-cells = <3>; 45 #pwm-cells = <3>;
28 reg = <0x300000 0x2000>; 46 reg = <0x4843e200 0x80>;
47 clocks = <&ehrpwm0_tbclk>, <&l4_root_clk_div>;
48 clock-names = "tbclk", "fck";
29}; 49};
diff --git a/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt b/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt
index f7eae77f8354..1a5d7b71db89 100644
--- a/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt
+++ b/Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt
@@ -1,7 +1,11 @@
1TI SOC based PWM Subsystem 1TI SOC based PWM Subsystem
2 2
3Required properties: 3Required properties:
4- compatible: Must be "ti,am33xx-pwmss"; 4- compatible: Must be "ti,<soc>-pwmss".
5 for am33xx - compatible = "ti,am33xx-pwmss";
6 for am4372 - compatible = "ti,am4372-pwmss","ti,am33xx-pwmss";
7 for dra746 - compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss"
8
5- reg: physical base address and size of the registers map. 9- reg: physical base address and size of the registers map.
6- address-cells: Specify the number of u32 entries needed in child nodes. 10- address-cells: Specify the number of u32 entries needed in child nodes.
7 Should set to 1. 11 Should set to 1.
@@ -16,7 +20,7 @@ Required properties:
16Also child nodes should also populated under PWMSS DT node. 20Also child nodes should also populated under PWMSS DT node.
17 21
18Example: 22Example:
19pwmss0: pwmss@48300000 { 23epwmss0: epwmss@48300000 { /* PWMSS for am33xx */
20 compatible = "ti,am33xx-pwmss"; 24 compatible = "ti,am33xx-pwmss";
21 reg = <0x48300000 0x10>; 25 reg = <0x48300000 0x10>;
22 ti,hwmods = "epwmss0"; 26 ti,hwmods = "epwmss0";
@@ -29,3 +33,28 @@ pwmss0: pwmss@48300000 {
29 33
30 /* child nodes go here */ 34 /* child nodes go here */
31}; 35};
36
37epwmss0: epwmss@48300000 { /* PWMSS for am4372 */
38 compatible = "ti,am4372-pwmss","ti,am33xx-pwmss"
39 reg = <0x48300000 0x10>;
40 ti,hwmods = "epwmss0";
41 #address-cells = <1>;
42 #size-cells = <1>;
43 status = "disabled";
44 ranges = <0x48300100 0x48300100 0x80 /* ECAP */
45 0x48300180 0x48300180 0x80 /* EQEP */
46 0x48300200 0x48300200 0x80>; /* EHRPWM */
47
48 /* child nodes go here */
49};
50
51epwmss0: epwmss@4843e000 { /* PWMSS for DRA7xx */
52 compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss";
53 reg = <0x4843e000 0x30>;
54 ti,hwmods = "epwmss0";
55 #address-cells = <1>;
56 #size-cells = <1>;
57 ranges;
58
59 /* child nodes go here */
60};
diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
new file mode 100644
index 000000000000..4ea39e9186a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt
@@ -0,0 +1,116 @@
1Qualcomm WCNSS Binding
2
3This binding describes the Qualcomm WCNSS hardware. It consists of control
4block and a BT, WiFi and FM radio block, all using SMD as command channels.
5
6- compatible:
7 Usage: required
8 Value type: <string>
9 Definition: must be: "qcom,wcnss",
10
11- qcom,smd-channel:
12 Usage: required
13 Value type: <string>
14 Definition: standard SMD property specifying the SMD channel used for
15 communication with the WiFi firmware.
16 Should be "WCNSS_CTRL".
17
18- qcom,mmio:
19 Usage: required
20 Value type: <prop-encoded-array>
21 Definition: reference to a node specifying the wcnss "ccu" and "dxe"
22 register blocks. The node must be compatible with one of
23 the following:
24 "qcom,riva",
25 "qcom,pronto"
26
27= SUBNODES
28The subnodes of the wcnss node are optional and describe the individual blocks in
29the WCNSS.
30
31== Bluetooth
32The following properties are defined to the bluetooth node:
33
34- compatible:
35 Usage: required
36 Value type: <string>
37 Definition: must be:
38 "qcom,wcnss-bt"
39
40== WiFi
41The following properties are defined to the WiFi node:
42
43- compatible:
44 Usage: required
45 Value type: <string>
46 Definition: must be one of:
47 "qcom,wcnss-wlan",
48
49- interrupts:
50 Usage: required
51 Value type: <prop-encoded-array>
52 Definition: should specify the "rx" and "tx" interrupts
53
54- interrupt-names:
55 Usage: required
56 Value type: <stringlist>
57 Definition: must contain "rx" and "tx"
58
59- qcom,smem-state:
60 Usage: required
61 Value type: <prop-encoded-array>
62 Definition: should reference the tx-enable and tx-rings-empty SMEM states
63
64- qcom,smem-state-names:
65 Usage: required
66 Value type: <stringlist>
67 Definition: must contain "tx-enable" and "tx-rings-empty"
68
69= EXAMPLE
70The following example represents a SMD node, with one edge representing the
71"pronto" subsystem, with the wcnss device and its wcn3680 BT and WiFi blocks
72described; as found on the 8974 platform.
73
74smd {
75 compatible = "qcom,smd";
76
77 pronto-edge {
78 interrupts = <0 142 1>;
79
80 qcom,ipc = <&apcs 8 17>;
81 qcom,smd-edge = <6>;
82
83 wcnss {
84 compatible = "qcom,wcnss";
85 qcom,smd-channels = "WCNSS_CTRL";
86
87 #address-cells = <1>;
88 #size-cells = <1>;
89
90 qcom,mmio = <&pronto>;
91
92 bt {
93 compatible = "qcom,wcnss-bt";
94 };
95
96 wlan {
97 compatible = "qcom,wcnss-wlan";
98
99 interrupts = <0 145 0>, <0 146 0>;
100 interrupt-names = "tx", "rx";
101
102 qcom,smem-state = <&apps_smsm 10>, <&apps_smsm 9>;
103 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
104 };
105 };
106 };
107};
108
109soc {
110 pronto: pronto {
111 compatible = "qcom,pronto";
112
113 reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
114 reg-names = "ccu", "dxe", "pmu";
115 };
116};
diff --git a/Documentation/devicetree/bindings/usb/atmel-usb.txt b/Documentation/devicetree/bindings/usb/atmel-usb.txt
index 5883b73ea1b5..f4262ed60582 100644
--- a/Documentation/devicetree/bindings/usb/atmel-usb.txt
+++ b/Documentation/devicetree/bindings/usb/atmel-usb.txt
@@ -113,13 +113,13 @@ usb2: gadget@fff78000 {
113 clock-names = "hclk", "pclk"; 113 clock-names = "hclk", "pclk";
114 atmel,vbus-gpio = <&pioB 19 0>; 114 atmel,vbus-gpio = <&pioB 19 0>;
115 115
116 ep0 { 116 ep@0 {
117 reg = <0>; 117 reg = <0>;
118 atmel,fifo-size = <64>; 118 atmel,fifo-size = <64>;
119 atmel,nb-banks = <1>; 119 atmel,nb-banks = <1>;
120 }; 120 };
121 121
122 ep1 { 122 ep@1 {
123 reg = <1>; 123 reg = <1>;
124 atmel,fifo-size = <1024>; 124 atmel,fifo-size = <1024>;
125 atmel,nb-banks = <2>; 125 atmel,nb-banks = <2>;
@@ -127,7 +127,7 @@ usb2: gadget@fff78000 {
127 atmel,can-isoc; 127 atmel,can-isoc;
128 }; 128 };
129 129
130 ep2 { 130 ep@2 {
131 reg = <2>; 131 reg = <2>;
132 atmel,fifo-size = <1024>; 132 atmel,fifo-size = <1024>;
133 atmel,nb-banks = <2>; 133 atmel,nb-banks = <2>;
@@ -135,21 +135,21 @@ usb2: gadget@fff78000 {
135 atmel,can-isoc; 135 atmel,can-isoc;
136 }; 136 };
137 137
138 ep3 { 138 ep@3 {
139 reg = <3>; 139 reg = <3>;
140 atmel,fifo-size = <1024>; 140 atmel,fifo-size = <1024>;
141 atmel,nb-banks = <3>; 141 atmel,nb-banks = <3>;
142 atmel,can-dma; 142 atmel,can-dma;
143 }; 143 };
144 144
145 ep4 { 145 ep@4 {
146 reg = <4>; 146 reg = <4>;
147 atmel,fifo-size = <1024>; 147 atmel,fifo-size = <1024>;
148 atmel,nb-banks = <3>; 148 atmel,nb-banks = <3>;
149 atmel,can-dma; 149 atmel,can-dma;
150 }; 150 };
151 151
152 ep5 { 152 ep@5 {
153 reg = <5>; 153 reg = <5>;
154 atmel,fifo-size = <1024>; 154 atmel,fifo-size = <1024>;
155 atmel,nb-banks = <3>; 155 atmel,nb-banks = <3>;
@@ -157,7 +157,7 @@ usb2: gadget@fff78000 {
157 atmel,can-isoc; 157 atmel,can-isoc;
158 }; 158 };
159 159
160 ep6 { 160 ep@6 {
161 reg = <6>; 161 reg = <6>;
162 atmel,fifo-size = <1024>; 162 atmel,fifo-size = <1024>;
163 atmel,nb-banks = <3>; 163 atmel,nb-banks = <3>;
diff --git a/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
index d28295a3e55f..3eee9e505400 100644
--- a/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
+++ b/Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt
@@ -104,10 +104,10 @@ Example:
104 104
105 nvidia,xusb-padctl = <&padctl>; 105 nvidia,xusb-padctl = <&padctl>;
106 106
107 phys = <&{/padctl@0,7009f000/pads/usb2/usb2-1}>, /* mini-PCIe USB */ 107 phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* mini-PCIe USB */
108 <&{/padctl@0,7009f000/pads/usb2/usb2-2}>, /* USB A */ 108 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* USB A */
109 <&{/padctl@0,7009f000/pads/pcie/pcie-0}>; /* USB A */ 109 <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>; /* USB A */
110 phy-names = "utmi-1", "utmi-2", "usb3-0"; 110 phy-names = "usb2-1", "usb2-2", "usb3-0";
111 111
112 avddio-pex-supply = <&vdd_1v05_run>; 112 avddio-pex-supply = <&vdd_1v05_run>;
113 dvddio-pex-supply = <&vdd_1v05_run>; 113 dvddio-pex-supply = <&vdd_1v05_run>;
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 414b42710a36..faacd52370d2 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -7,9 +7,10 @@ dtb-$(CONFIG_MACH_ARTPEC6) += \
7dtb-$(CONFIG_MACH_ASM9260) += \ 7dtb-$(CONFIG_MACH_ASM9260) += \
8 alphascale-asm9260-devkit.dtb 8 alphascale-asm9260-devkit.dtb
9# Keep at91 dtb files sorted alphabetically for each SoC 9# Keep at91 dtb files sorted alphabetically for each SoC
10dtb-$(CONFIG_SOC_SAM_V4_V5) += \ 10dtb-$(CONFIG_SOC_AT91RM9200) += \
11 at91rm9200ek.dtb \ 11 at91rm9200ek.dtb \
12 mpa1600.dtb \ 12 mpa1600.dtb
13dtb-$(CONFIG_SOC_AT91SAM9) += \
13 animeo_ip.dtb \ 14 animeo_ip.dtb \
14 at91-qil_a9260.dtb \ 15 at91-qil_a9260.dtb \
15 aks-cdu.dtb \ 16 aks-cdu.dtb \
@@ -17,8 +18,10 @@ dtb-$(CONFIG_SOC_SAM_V4_V5) += \
17 evk-pro3.dtb \ 18 evk-pro3.dtb \
18 tny_a9260.dtb \ 19 tny_a9260.dtb \
19 usb_a9260.dtb \ 20 usb_a9260.dtb \
21 at91sam9260ek.dtb \
20 at91sam9261ek.dtb \ 22 at91sam9261ek.dtb \
21 at91sam9263ek.dtb \ 23 at91sam9263ek.dtb \
24 at91-sam9_l9260.dtb \
22 tny_a9263.dtb \ 25 tny_a9263.dtb \
23 usb_a9263.dtb \ 26 usb_a9263.dtb \
24 at91-foxg20.dtb \ 27 at91-foxg20.dtb \
@@ -85,6 +88,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
85 bcm47094-dlink-dir-885l.dtb \ 88 bcm47094-dlink-dir-885l.dtb \
86 bcm94708.dtb \ 89 bcm94708.dtb \
87 bcm94709.dtb \ 90 bcm94709.dtb \
91 bcm953012er.dtb \
88 bcm953012k.dtb 92 bcm953012k.dtb
89dtb-$(CONFIG_ARCH_BCM_63XX) += \ 93dtb-$(CONFIG_ARCH_BCM_63XX) += \
90 bcm963138dvt.dtb 94 bcm963138dvt.dtb
@@ -95,8 +99,11 @@ dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
95 bcm958305k.dtb 99 bcm958305k.dtb
96dtb-$(CONFIG_ARCH_BCM_MOBILE) += \ 100dtb-$(CONFIG_ARCH_BCM_MOBILE) += \
97 bcm28155-ap.dtb \ 101 bcm28155-ap.dtb \
98 bcm21664-garnet.dtb 102 bcm21664-garnet.dtb \
103 bcm23550-sparrow.dtb
99dtb-$(CONFIG_ARCH_BCM_NSP) += \ 104dtb-$(CONFIG_ARCH_BCM_NSP) += \
105 bcm958525xmc.dtb \
106 bcm958625hr.dtb \
100 bcm958625k.dtb 107 bcm958625k.dtb
101dtb-$(CONFIG_ARCH_BERLIN) += \ 108dtb-$(CONFIG_ARCH_BERLIN) += \
102 berlin2-sony-nsz-gs7.dtb \ 109 berlin2-sony-nsz-gs7.dtb \
@@ -104,6 +111,8 @@ dtb-$(CONFIG_ARCH_BERLIN) += \
104 berlin2q-marvell-dmp.dtb 111 berlin2q-marvell-dmp.dtb
105dtb-$(CONFIG_ARCH_BRCMSTB) += \ 112dtb-$(CONFIG_ARCH_BRCMSTB) += \
106 bcm7445-bcm97445svmb.dtb 113 bcm7445-bcm97445svmb.dtb
114dtb-$(CONFIG_ARCH_CLPS711X) += \
115 ep7211-edb7211.dtb
107dtb-$(CONFIG_ARCH_DAVINCI) += \ 116dtb-$(CONFIG_ARCH_DAVINCI) += \
108 da850-enbw-cmc.dtb \ 117 da850-enbw-cmc.dtb \
109 da850-evm.dtb 118 da850-evm.dtb
@@ -134,6 +143,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
134 exynos5250-snow-rev5.dtb \ 143 exynos5250-snow-rev5.dtb \
135 exynos5250-spring.dtb \ 144 exynos5250-spring.dtb \
136 exynos5260-xyref5260.dtb \ 145 exynos5260-xyref5260.dtb \
146 exynos5410-odroidxu.dtb \
137 exynos5410-smdk5410.dtb \ 147 exynos5410-smdk5410.dtb \
138 exynos5420-arndale-octa.dtb \ 148 exynos5420-arndale-octa.dtb \
139 exynos5420-peach-pit.dtb \ 149 exynos5420-peach-pit.dtb \
@@ -146,8 +156,6 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
146 exynos5800-peach-pi.dtb 156 exynos5800-peach-pi.dtb
147dtb-$(CONFIG_ARCH_HI3xxx) += \ 157dtb-$(CONFIG_ARCH_HI3xxx) += \
148 hi3620-hi4511.dtb 158 hi3620-hi4511.dtb
149dtb-$(CONFIG_ARCH_HIX5HD2) += \
150 hisi-x5hd2-dkb.dtb
151dtb-$(CONFIG_ARCH_HIGHBANK) += \ 159dtb-$(CONFIG_ARCH_HIGHBANK) += \
152 highbank.dtb \ 160 highbank.dtb \
153 ecx-2000.dtb 161 ecx-2000.dtb
@@ -155,6 +163,10 @@ dtb-$(CONFIG_ARCH_HIP01) += \
155 hip01-ca9x2.dtb 163 hip01-ca9x2.dtb
156dtb-$(CONFIG_ARCH_HIP04) += \ 164dtb-$(CONFIG_ARCH_HIP04) += \
157 hip04-d01.dtb 165 hip04-d01.dtb
166dtb-$(CONFIG_ARCH_HISI) += \
167 hi3519-demb.dtb
168dtb-$(CONFIG_ARCH_HIX5HD2) += \
169 hisi-x5hd2-dkb.dtb
158dtb-$(CONFIG_ARCH_INTEGRATOR) += \ 170dtb-$(CONFIG_ARCH_INTEGRATOR) += \
159 integratorap.dtb \ 171 integratorap.dtb \
160 integratorcp.dtb 172 integratorcp.dtb
@@ -356,6 +368,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
356 imx6q-gw54xx.dtb \ 368 imx6q-gw54xx.dtb \
357 imx6q-gw551x.dtb \ 369 imx6q-gw551x.dtb \
358 imx6q-gw552x.dtb \ 370 imx6q-gw552x.dtb \
371 imx6q-h100.dtb \
359 imx6q-hummingboard.dtb \ 372 imx6q-hummingboard.dtb \
360 imx6q-icore-rqs.dtb \ 373 imx6q-icore-rqs.dtb \
361 imx6q-marsboard.dtb \ 374 imx6q-marsboard.dtb \
@@ -377,6 +390,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
377 imx6q-tx6q-1110.dtb \ 390 imx6q-tx6q-1110.dtb \
378 imx6q-tx6q-11x0-mb7.dtb \ 391 imx6q-tx6q-11x0-mb7.dtb \
379 imx6q-udoo.dtb \ 392 imx6q-udoo.dtb \
393 imx6q-utilite-pro.dtb \
380 imx6q-wandboard.dtb \ 394 imx6q-wandboard.dtb \
381 imx6q-wandboard-revb1.dtb \ 395 imx6q-wandboard-revb1.dtb \
382 imx6qp-nitrogen6_max.dtb \ 396 imx6qp-nitrogen6_max.dtb \
@@ -399,9 +413,11 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
399 imx6ul-tx6ul-mainboard.dtb 413 imx6ul-tx6ul-mainboard.dtb
400dtb-$(CONFIG_SOC_IMX7D) += \ 414dtb-$(CONFIG_SOC_IMX7D) += \
401 imx7d-cl-som-imx7.dtb \ 415 imx7d-cl-som-imx7.dtb \
416 imx7d-colibri-eval-v3.dtb \
402 imx7d-nitrogen7.dtb \ 417 imx7d-nitrogen7.dtb \
403 imx7d-sbc-imx7.dtb \ 418 imx7d-sbc-imx7.dtb \
404 imx7d-sdb.dtb 419 imx7d-sdb.dtb \
420 imx7s-colibri-eval-v3.dtb
405dtb-$(CONFIG_SOC_LS1021A) += \ 421dtb-$(CONFIG_SOC_LS1021A) += \
406 ls1021a-qds.dtb \ 422 ls1021a-qds.dtb \
407 ls1021a-twr.dtb 423 ls1021a-twr.dtb
@@ -416,7 +432,9 @@ dtb-$(CONFIG_SOC_VF610) += \
416dtb-$(CONFIG_ARCH_MXS) += \ 432dtb-$(CONFIG_ARCH_MXS) += \
417 imx23-evk.dtb \ 433 imx23-evk.dtb \
418 imx23-olinuxino.dtb \ 434 imx23-olinuxino.dtb \
435 imx23-sansa.dtb \
419 imx23-stmp378x_devb.dtb \ 436 imx23-stmp378x_devb.dtb \
437 imx23-xfi3.dtb \
420 imx28-apf28.dtb \ 438 imx28-apf28.dtb \
421 imx28-apf28dev.dtb \ 439 imx28-apf28dev.dtb \
422 imx28-apx4devkit.dtb \ 440 imx28-apx4devkit.dtb \
@@ -572,7 +590,8 @@ dtb-$(CONFIG_ARCH_PRIMA2) += \
572dtb-$(CONFIG_ARCH_OXNAS) += \ 590dtb-$(CONFIG_ARCH_OXNAS) += \
573 wd-mbwe.dtb 591 wd-mbwe.dtb
574dtb-$(CONFIG_ARCH_QCOM) += \ 592dtb-$(CONFIG_ARCH_QCOM) += \
575 qcom-apq8064-arrow-db600c.dtb \ 593 qcom-apq8060-dragonboard.dtb \
594 qcom-apq8064-arrow-sd-600eval.dtb \
576 qcom-apq8064-cm-qs600.dtb \ 595 qcom-apq8064-cm-qs600.dtb \
577 qcom-apq8064-ifc6410.dtb \ 596 qcom-apq8064-ifc6410.dtb \
578 qcom-apq8064-sony-xperia-yuga.dtb \ 597 qcom-apq8064-sony-xperia-yuga.dtb \
@@ -602,6 +621,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
602 rk3066a-rayeager.dtb \ 621 rk3066a-rayeager.dtb \
603 rk3188-radxarock.dtb \ 622 rk3188-radxarock.dtb \
604 rk3228-evb.dtb \ 623 rk3228-evb.dtb \
624 rk3229-evb.dtb \
605 rk3288-evb-act8846.dtb \ 625 rk3288-evb-act8846.dtb \
606 rk3288-evb-rk808.dtb \ 626 rk3288-evb-rk808.dtb \
607 rk3288-firefly-beta.dtb \ 627 rk3288-firefly-beta.dtb \
@@ -638,6 +658,7 @@ dtb-$(CONFIG_ARCH_SHMOBILE_MULTI) += \
638 r8a7790-lager.dtb \ 658 r8a7790-lager.dtb \
639 r8a7791-koelsch.dtb \ 659 r8a7791-koelsch.dtb \
640 r8a7791-porter.dtb \ 660 r8a7791-porter.dtb \
661 r8a7792-blanche.dtb \
641 r8a7793-gose.dtb \ 662 r8a7793-gose.dtb \
642 r8a7794-alt.dtb \ 663 r8a7794-alt.dtb \
643 r8a7794-silk.dtb \ 664 r8a7794-silk.dtb \
@@ -728,6 +749,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
728 sun6i-a31s-yones-toptech-bs1078-v2.dtb 749 sun6i-a31s-yones-toptech-bs1078-v2.dtb
729dtb-$(CONFIG_MACH_SUN7I) += \ 750dtb-$(CONFIG_MACH_SUN7I) += \
730 sun7i-a20-bananapi.dtb \ 751 sun7i-a20-bananapi.dtb \
752 sun7i-a20-bananapi-m1-plus.dtb \
731 sun7i-a20-bananapro.dtb \ 753 sun7i-a20-bananapro.dtb \
732 sun7i-a20-cubieboard2.dtb \ 754 sun7i-a20-cubieboard2.dtb \
733 sun7i-a20-cubietruck.dtb \ 755 sun7i-a20-cubietruck.dtb \
@@ -752,8 +774,10 @@ dtb-$(CONFIG_MACH_SUN7I) += \
752dtb-$(CONFIG_MACH_SUN8I) += \ 774dtb-$(CONFIG_MACH_SUN8I) += \
753 sun8i-a23-evb.dtb \ 775 sun8i-a23-evb.dtb \
754 sun8i-a23-gt90h-v4.dtb \ 776 sun8i-a23-gt90h-v4.dtb \
777 sun8i-a23-inet86dz.dtb \
755 sun8i-a23-ippo-q8h-v5.dtb \ 778 sun8i-a23-ippo-q8h-v5.dtb \
756 sun8i-a23-ippo-q8h-v1.2.dtb \ 779 sun8i-a23-ippo-q8h-v1.2.dtb \
780 sun8i-a23-polaroid-mid2407pxe03.dtb \
757 sun8i-a23-polaroid-mid2809pxe04.dtb \ 781 sun8i-a23-polaroid-mid2809pxe04.dtb \
758 sun8i-a23-q8-tablet.dtb \ 782 sun8i-a23-q8-tablet.dtb \
759 sun8i-a33-et-q8-v1.6.dtb \ 783 sun8i-a33-et-q8-v1.6.dtb \
@@ -763,10 +787,12 @@ dtb-$(CONFIG_MACH_SUN8I) += \
763 sun8i-a33-sinlinx-sina33.dtb \ 787 sun8i-a33-sinlinx-sina33.dtb \
764 sun8i-a83t-allwinner-h8homlet-v2.dtb \ 788 sun8i-a83t-allwinner-h8homlet-v2.dtb \
765 sun8i-a83t-cubietruck-plus.dtb \ 789 sun8i-a83t-cubietruck-plus.dtb \
790 sun8i-h3-bananapi-m2-plus.dtb \
766 sun8i-h3-orangepi-2.dtb \ 791 sun8i-h3-orangepi-2.dtb \
767 sun8i-h3-orangepi-one.dtb \ 792 sun8i-h3-orangepi-one.dtb \
768 sun8i-h3-orangepi-pc.dtb \ 793 sun8i-h3-orangepi-pc.dtb \
769 sun8i-h3-orangepi-plus.dtb 794 sun8i-h3-orangepi-plus.dtb \
795 sun8i-r16-parrot.dtb
770dtb-$(CONFIG_MACH_SUN9I) += \ 796dtb-$(CONFIG_MACH_SUN9I) += \
771 sun9i-a80-optimus.dtb \ 797 sun9i-a80-optimus.dtb \
772 sun9i-a80-cubieboard4.dtb 798 sun9i-a80-cubieboard4.dtb
@@ -794,6 +820,7 @@ dtb-$(CONFIG_ARCH_TEGRA_114_SOC) += \
794 tegra114-roth.dtb \ 820 tegra114-roth.dtb \
795 tegra114-tn7.dtb 821 tegra114-tn7.dtb
796dtb-$(CONFIG_ARCH_TEGRA_124_SOC) += \ 822dtb-$(CONFIG_ARCH_TEGRA_124_SOC) += \
823 tegra124-apalis-eval.dtb \
797 tegra124-jetson-tk1.dtb \ 824 tegra124-jetson-tk1.dtb \
798 tegra124-nyan-big.dtb \ 825 tegra124-nyan-big.dtb \
799 tegra124-nyan-blaze.dtb \ 826 tegra124-nyan-blaze.dtb \
diff --git a/arch/arm/boot/dts/aks-cdu.dts b/arch/arm/boot/dts/aks-cdu.dts
index d9c50fbb49d2..5b1bf92d927c 100644
--- a/arch/arm/boot/dts/aks-cdu.dts
+++ b/arch/arm/boot/dts/aks-cdu.dts
@@ -57,7 +57,7 @@
57 }; 57 };
58 }; 58 };
59 59
60 usb0: ohci@00500000 { 60 usb0: ohci@500000 {
61 num-ports = <2>; 61 num-ports = <2>;
62 status = "okay"; 62 status = "okay";
63 }; 63 };
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 0cc150b87b86..e247c15e5176 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -18,6 +18,10 @@
18 reg = <0x80000000 0x10000000>; /* 256 MB */ 18 reg = <0x80000000 0x10000000>; /* 256 MB */
19 }; 19 };
20 20
21 chosen {
22 stdout-path = &uart0;
23 };
24
21 leds { 25 leds {
22 pinctrl-names = "default"; 26 pinctrl-names = "default";
23 pinctrl-0 = <&user_leds_s0>; 27 pinctrl-0 = <&user_leds_s0>;
@@ -318,7 +322,7 @@
318 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 322 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
319 regulator-name = "vdd_mpu"; 323 regulator-name = "vdd_mpu";
320 regulator-min-microvolt = <925000>; 324 regulator-min-microvolt = <925000>;
321 regulator-max-microvolt = <1325000>; 325 regulator-max-microvolt = <1351500>;
322 regulator-boot-on; 326 regulator-boot-on;
323 regulator-always-on; 327 regulator-always-on;
324 }; 328 };
@@ -359,12 +363,8 @@
359 phy-mode = "mii"; 363 phy-mode = "mii";
360}; 364};
361 365
362&cpsw_emac1 {
363 phy_id = <&davinci_mdio>, <1>;
364 phy-mode = "mii";
365};
366
367&mac { 366&mac {
367 slaves = <1>;
368 pinctrl-names = "default", "sleep"; 368 pinctrl-names = "default", "sleep";
369 pinctrl-0 = <&cpsw_default>; 369 pinctrl-0 = <&cpsw_default>;
370 pinctrl-1 = <&cpsw_sleep>; 370 pinctrl-1 = <&cpsw_sleep>;
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts b/arch/arm/boot/dts/am335x-boneblack.dts
index 55c0e954b146..ca721670bd91 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -33,6 +33,17 @@
33 status = "okay"; 33 status = "okay";
34}; 34};
35 35
36&cpu0_opp_table {
37 /*
38 * All PG 2.0 silicon may not support 1GHz but some of the early
39 * BeagleBone Blacks have PG 2.0 silicon which is guaranteed
40 * to support 1GHz OPP so enable it for PG 2.0 on this board.
41 */
42 oppnitro@1000000000 {
43 opp-supported-hw = <0x06 0x0100>;
44 };
45};
46
36&am33xx_pinmux { 47&am33xx_pinmux {
37 nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins { 48 nxp_hdmi_bonelt_pins: nxp_hdmi_bonelt_pins {
38 pinctrl-single,pins = < 49 pinctrl-single,pins = <
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index 516673bb023d..5d28712ad253 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -640,7 +640,7 @@
640 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 640 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
641 regulator-name = "vdd_mpu"; 641 regulator-name = "vdd_mpu";
642 regulator-min-microvolt = <912500>; 642 regulator-min-microvolt = <912500>;
643 regulator-max-microvolt = <1312500>; 643 regulator-max-microvolt = <1351500>;
644 regulator-boot-on; 644 regulator-boot-on;
645 regulator-always-on; 645 regulator-always-on;
646 }; 646 };
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index 282fe1b37095..09308d66645b 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -560,7 +560,7 @@
560 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */ 560 /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
561 regulator-name = "vdd_mpu"; 561 regulator-name = "vdd_mpu";
562 regulator-min-microvolt = <912500>; 562 regulator-min-microvolt = <912500>;
563 regulator-max-microvolt = <1312500>; 563 regulator-max-microvolt = <1351500>;
564 regulator-boot-on; 564 regulator-boot-on;
565 regulator-always-on; 565 regulator-always-on;
566 }; 566 };
diff --git a/arch/arm/boot/dts/am335x-icev2.dts b/arch/arm/boot/dts/am335x-icev2.dts
index e271013e78a6..7d8b8fefdf08 100644
--- a/arch/arm/boot/dts/am335x-icev2.dts
+++ b/arch/arm/boot/dts/am335x-icev2.dts
@@ -206,6 +206,13 @@
206 gpio-controller; 206 gpio-controller;
207 #gpio-cells = <2>; 207 #gpio-cells = <2>;
208 }; 208 };
209
210 pca9536: gpio@41 {
211 compatible = "ti,pca9536";
212 reg = <0x41>;
213 gpio-controller;
214 #gpio-cells = <2>;
215 };
209}; 216};
210 217
211#include "tps65910.dtsi" 218#include "tps65910.dtsi"
diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index 7fa295155543..98748c61ed99 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -45,19 +45,9 @@
45 device_type = "cpu"; 45 device_type = "cpu";
46 reg = <0>; 46 reg = <0>;
47 47
48 /* 48 operating-points-v2 = <&cpu0_opp_table>;
49 * To consider voltage drop between PMIC and SoC, 49 ti,syscon-efuse = <&scm_conf 0x7fc 0x1fff 0>;
50 * tolerance value is reduced to 2% from 4% and 50 ti,syscon-rev = <&scm_conf 0x600>;
51 * voltage value is increased as a precaution.
52 */
53 operating-points = <
54 /* kHz uV */
55 720000 1285000
56 600000 1225000
57 500000 1125000
58 275000 1125000
59 >;
60 voltage-tolerance = <2>; /* 2 percentage */
61 51
62 clocks = <&dpll_mpu_ck>; 52 clocks = <&dpll_mpu_ck>;
63 clock-names = "cpu"; 53 clock-names = "cpu";
@@ -66,6 +56,78 @@
66 }; 56 };
67 }; 57 };
68 58
59 cpu0_opp_table: opp_table0 {
60 compatible = "operating-points-v2";
61
62 /*
63 * The three following nodes are marked with opp-suspend
64 * because the can not be enabled simultaneously on a
65 * single SoC.
66 */
67 opp50@300000000 {
68 opp-hz = /bits/ 64 <300000000>;
69 opp-microvolt = <950000 931000 969000>;
70 opp-supported-hw = <0x06 0x0010>;
71 opp-suspend;
72 };
73
74 opp100@275000000 {
75 opp-hz = /bits/ 64 <275000000>;
76 opp-microvolt = <1100000 1078000 1122000>;
77 opp-supported-hw = <0x01 0x00FF>;
78 opp-suspend;
79 };
80
81 opp100@300000000 {
82 opp-hz = /bits/ 64 <300000000>;
83 opp-microvolt = <1100000 1078000 1122000>;
84 opp-supported-hw = <0x06 0x0020>;
85 opp-suspend;
86 };
87
88 opp100@500000000 {
89 opp-hz = /bits/ 64 <500000000>;
90 opp-microvolt = <1100000 1078000 1122000>;
91 opp-supported-hw = <0x01 0xFFFF>;
92 };
93
94 opp100@600000000 {
95 opp-hz = /bits/ 64 <600000000>;
96 opp-microvolt = <1100000 1078000 1122000>;
97 opp-supported-hw = <0x06 0x0040>;
98 };
99
100 opp120@600000000 {
101 opp-hz = /bits/ 64 <600000000>;
102 opp-microvolt = <1200000 1176000 1224000>;
103 opp-supported-hw = <0x01 0xFFFF>;
104 };
105
106 opp120@720000000 {
107 opp-hz = /bits/ 64 <720000000>;
108 opp-microvolt = <1200000 1176000 1224000>;
109 opp-supported-hw = <0x06 0x0080>;
110 };
111
112 oppturbo@720000000 {
113 opp-hz = /bits/ 64 <720000000>;
114 opp-microvolt = <1260000 1234800 1285200>;
115 opp-supported-hw = <0x01 0xFFFF>;
116 };
117
118 oppturbo@800000000 {
119 opp-hz = /bits/ 64 <800000000>;
120 opp-microvolt = <1260000 1234800 1285200>;
121 opp-supported-hw = <0x06 0x0100>;
122 };
123
124 oppnitro@1000000000 {
125 opp-hz = /bits/ 64 <1000000000>;
126 opp-microvolt = <1325000 1298500 1351500>;
127 opp-supported-hw = <0x04 0x0200>;
128 };
129 };
130
69 pmu { 131 pmu {
70 compatible = "arm,cortex-a8-pmu"; 132 compatible = "arm,cortex-a8-pmu";
71 interrupts = <3>; 133 interrupts = <3>;
@@ -187,7 +249,7 @@
187 reg = <0x49000000 0x10000>; 249 reg = <0x49000000 0x10000>;
188 reg-names = "edma3_cc"; 250 reg-names = "edma3_cc";
189 interrupts = <12 13 14>; 251 interrupts = <12 13 14>;
190 interrupt-names = "edma3_ccint", "emda3_mperr", 252 interrupt-names = "edma3_ccint", "edma3_mperr",
191 "edma3_ccerrint"; 253 "edma3_ccerrint";
192 dma-requests = <64>; 254 dma-requests = <64>;
193 #dma-cells = <2>; 255 #dma-cells = <2>;
@@ -679,20 +741,24 @@
679 0x48300200 0x48300200 0x80>; /* EHRPWM */ 741 0x48300200 0x48300200 0x80>; /* EHRPWM */
680 742
681 ecap0: ecap@48300100 { 743 ecap0: ecap@48300100 {
682 compatible = "ti,am33xx-ecap"; 744 compatible = "ti,am3352-ecap",
745 "ti,am33xx-ecap";
683 #pwm-cells = <3>; 746 #pwm-cells = <3>;
684 reg = <0x48300100 0x80>; 747 reg = <0x48300100 0x80>;
748 clocks = <&l4ls_gclk>;
749 clock-names = "fck";
685 interrupts = <31>; 750 interrupts = <31>;
686 interrupt-names = "ecap0"; 751 interrupt-names = "ecap0";
687 ti,hwmods = "ecap0";
688 status = "disabled"; 752 status = "disabled";
689 }; 753 };
690 754
691 ehrpwm0: pwm@48300200 { 755 ehrpwm0: pwm@48300200 {
692 compatible = "ti,am33xx-ehrpwm"; 756 compatible = "ti,am3352-ehrpwm",
757 "ti,am33xx-ehrpwm";
693 #pwm-cells = <3>; 758 #pwm-cells = <3>;
694 reg = <0x48300200 0x80>; 759 reg = <0x48300200 0x80>;
695 ti,hwmods = "ehrpwm0"; 760 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
761 clock-names = "tbclk", "fck";
696 status = "disabled"; 762 status = "disabled";
697 }; 763 };
698 }; 764 };
@@ -709,20 +775,24 @@
709 0x48302200 0x48302200 0x80>; /* EHRPWM */ 775 0x48302200 0x48302200 0x80>; /* EHRPWM */
710 776
711 ecap1: ecap@48302100 { 777 ecap1: ecap@48302100 {
712 compatible = "ti,am33xx-ecap"; 778 compatible = "ti,am3352-ecap",
779 "ti,am33xx-ecap";
713 #pwm-cells = <3>; 780 #pwm-cells = <3>;
714 reg = <0x48302100 0x80>; 781 reg = <0x48302100 0x80>;
782 clocks = <&l4ls_gclk>;
783 clock-names = "fck";
715 interrupts = <47>; 784 interrupts = <47>;
716 interrupt-names = "ecap1"; 785 interrupt-names = "ecap1";
717 ti,hwmods = "ecap1";
718 status = "disabled"; 786 status = "disabled";
719 }; 787 };
720 788
721 ehrpwm1: pwm@48302200 { 789 ehrpwm1: pwm@48302200 {
722 compatible = "ti,am33xx-ehrpwm"; 790 compatible = "ti,am3352-ehrpwm",
791 "ti,am33xx-ehrpwm";
723 #pwm-cells = <3>; 792 #pwm-cells = <3>;
724 reg = <0x48302200 0x80>; 793 reg = <0x48302200 0x80>;
725 ti,hwmods = "ehrpwm1"; 794 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
795 clock-names = "tbclk", "fck";
726 status = "disabled"; 796 status = "disabled";
727 }; 797 };
728 }; 798 };
@@ -739,20 +809,24 @@
739 0x48304200 0x48304200 0x80>; /* EHRPWM */ 809 0x48304200 0x48304200 0x80>; /* EHRPWM */
740 810
741 ecap2: ecap@48304100 { 811 ecap2: ecap@48304100 {
742 compatible = "ti,am33xx-ecap"; 812 compatible = "ti,am3352-ecap",
813 "ti,am33xx-ecap";
743 #pwm-cells = <3>; 814 #pwm-cells = <3>;
744 reg = <0x48304100 0x80>; 815 reg = <0x48304100 0x80>;
816 clocks = <&l4ls_gclk>;
817 clock-names = "fck";
745 interrupts = <61>; 818 interrupts = <61>;
746 interrupt-names = "ecap2"; 819 interrupt-names = "ecap2";
747 ti,hwmods = "ecap2";
748 status = "disabled"; 820 status = "disabled";
749 }; 821 };
750 822
751 ehrpwm2: pwm@48304200 { 823 ehrpwm2: pwm@48304200 {
752 compatible = "ti,am33xx-ehrpwm"; 824 compatible = "ti,am3352-ehrpwm",
825 "ti,am33xx-ehrpwm";
753 #pwm-cells = <3>; 826 #pwm-cells = <3>;
754 reg = <0x48304200 0x80>; 827 reg = <0x48304200 0x80>;
755 ti,hwmods = "ehrpwm2"; 828 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
829 clock-names = "tbclk", "fck";
756 status = "disabled"; 830 status = "disabled";
757 }; 831 };
758 }; 832 };
diff --git a/arch/arm/boot/dts/am3517-craneboard.dts b/arch/arm/boot/dts/am3517-craneboard.dts
index cb7de1d4e05f..f9d8f3948c4a 100644
--- a/arch/arm/boot/dts/am3517-craneboard.dts
+++ b/arch/arm/boot/dts/am3517-craneboard.dts
@@ -20,7 +20,7 @@
20 reg = <0x80000000 0x10000000>; /* 256 MB */ 20 reg = <0x80000000 0x10000000>; /* 256 MB */
21 }; 21 };
22 22
23 vbat: fixedregulator@0 { 23 vbat: fixedregulator {
24 compatible = "regulator-fixed"; 24 compatible = "regulator-fixed";
25 regulator-name = "vbat"; 25 regulator-name = "vbat";
26 regulator-min-microvolt = <5000000>; 26 regulator-min-microvolt = <5000000>;
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index cd81ecf12731..0fadae5396e1 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -44,10 +44,49 @@
44 clocks = <&dpll_mpu_ck>; 44 clocks = <&dpll_mpu_ck>;
45 clock-names = "cpu"; 45 clock-names = "cpu";
46 46
47 operating-points-v2 = <&cpu0_opp_table>;
48 ti,syscon-efuse = <&scm_conf 0x610 0x3f 0>;
49 ti,syscon-rev = <&scm_conf 0x600>;
50
47 clock-latency = <300000>; /* From omap-cpufreq driver */ 51 clock-latency = <300000>; /* From omap-cpufreq driver */
48 }; 52 };
49 }; 53 };
50 54
55 cpu0_opp_table: opp_table0 {
56 compatible = "operating-points-v2";
57
58 opp50@300000000 {
59 opp-hz = /bits/ 64 <300000000>;
60 opp-microvolt = <950000 931000 969000>;
61 opp-supported-hw = <0xFF 0x01>;
62 opp-suspend;
63 };
64
65 opp100@600000000 {
66 opp-hz = /bits/ 64 <600000000>;
67 opp-microvolt = <1100000 1078000 1122000>;
68 opp-supported-hw = <0xFF 0x04>;
69 };
70
71 opp120@720000000 {
72 opp-hz = /bits/ 64 <720000000>;
73 opp-microvolt = <1200000 1176000 1224000>;
74 opp-supported-hw = <0xFF 0x08>;
75 };
76
77 oppturbo@800000000 {
78 opp-hz = /bits/ 64 <800000000>;
79 opp-microvolt = <1260000 1234800 1285200>;
80 opp-supported-hw = <0xFF 0x10>;
81 };
82
83 oppnitro@1000000000 {
84 opp-hz = /bits/ 64 <1000000000>;
85 opp-microvolt = <1325000 1298500 1351500>;
86 opp-supported-hw = <0xFF 0x20>;
87 };
88 };
89
51 gic: interrupt-controller@48241000 { 90 gic: interrupt-controller@48241000 {
52 compatible = "arm,cortex-a9-gic"; 91 compatible = "arm,cortex-a9-gic";
53 interrupt-controller; 92 interrupt-controller;
@@ -199,7 +238,7 @@
199 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>, 238 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
200 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>, 239 <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
201 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 240 <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
202 interrupt-names = "edma3_ccint", "emda3_mperr", 241 interrupt-names = "edma3_ccint", "edma3_mperr",
203 "edma3_ccerrint"; 242 "edma3_ccerrint";
204 dma-requests = <64>; 243 dma-requests = <64>;
205 #dma-cells = <2>; 244 #dma-cells = <2>;
@@ -671,18 +710,24 @@
671 status = "disabled"; 710 status = "disabled";
672 711
673 ecap0: ecap@48300100 { 712 ecap0: ecap@48300100 {
674 compatible = "ti,am4372-ecap","ti,am33xx-ecap"; 713 compatible = "ti,am4372-ecap",
714 "ti,am3352-ecap",
715 "ti,am33xx-ecap";
675 #pwm-cells = <3>; 716 #pwm-cells = <3>;
676 reg = <0x48300100 0x80>; 717 reg = <0x48300100 0x80>;
677 ti,hwmods = "ecap0"; 718 clocks = <&l4ls_gclk>;
719 clock-names = "fck";
678 status = "disabled"; 720 status = "disabled";
679 }; 721 };
680 722
681 ehrpwm0: pwm@48300200 { 723 ehrpwm0: pwm@48300200 {
682 compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; 724 compatible = "ti,am4372-ehrpwm",
725 "ti,am3352-ehrpwm",
726 "ti,am33xx-ehrpwm";
683 #pwm-cells = <3>; 727 #pwm-cells = <3>;
684 reg = <0x48300200 0x80>; 728 reg = <0x48300200 0x80>;
685 ti,hwmods = "ehrpwm0"; 729 clocks = <&ehrpwm0_tbclk>, <&l4ls_gclk>;
730 clock-names = "tbclk", "fck";
686 status = "disabled"; 731 status = "disabled";
687 }; 732 };
688 }; 733 };
@@ -697,18 +742,24 @@
697 status = "disabled"; 742 status = "disabled";
698 743
699 ecap1: ecap@48302100 { 744 ecap1: ecap@48302100 {
700 compatible = "ti,am4372-ecap","ti,am33xx-ecap"; 745 compatible = "ti,am4372-ecap",
746 "ti,am3352-ecap",
747 "ti,am33xx-ecap";
701 #pwm-cells = <3>; 748 #pwm-cells = <3>;
702 reg = <0x48302100 0x80>; 749 reg = <0x48302100 0x80>;
703 ti,hwmods = "ecap1"; 750 clocks = <&l4ls_gclk>;
751 clock-names = "fck";
704 status = "disabled"; 752 status = "disabled";
705 }; 753 };
706 754
707 ehrpwm1: pwm@48302200 { 755 ehrpwm1: pwm@48302200 {
708 compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; 756 compatible = "ti,am4372-ehrpwm",
757 "ti,am3352-ehrpwm",
758 "ti,am33xx-ehrpwm";
709 #pwm-cells = <3>; 759 #pwm-cells = <3>;
710 reg = <0x48302200 0x80>; 760 reg = <0x48302200 0x80>;
711 ti,hwmods = "ehrpwm1"; 761 clocks = <&ehrpwm1_tbclk>, <&l4ls_gclk>;
762 clock-names = "tbclk", "fck";
712 status = "disabled"; 763 status = "disabled";
713 }; 764 };
714 }; 765 };
@@ -723,18 +774,24 @@
723 status = "disabled"; 774 status = "disabled";
724 775
725 ecap2: ecap@48304100 { 776 ecap2: ecap@48304100 {
726 compatible = "ti,am4372-ecap","ti,am33xx-ecap"; 777 compatible = "ti,am4372-ecap",
778 "ti,am3352-ecap",
779 "ti,am33xx-ecap";
727 #pwm-cells = <3>; 780 #pwm-cells = <3>;
728 reg = <0x48304100 0x80>; 781 reg = <0x48304100 0x80>;
729 ti,hwmods = "ecap2"; 782 clocks = <&l4ls_gclk>;
783 clock-names = "fck";
730 status = "disabled"; 784 status = "disabled";
731 }; 785 };
732 786
733 ehrpwm2: pwm@48304200 { 787 ehrpwm2: pwm@48304200 {
734 compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; 788 compatible = "ti,am4372-ehrpwm",
789 "ti,am3352-ehrpwm",
790 "ti,am33xx-ehrpwm";
735 #pwm-cells = <3>; 791 #pwm-cells = <3>;
736 reg = <0x48304200 0x80>; 792 reg = <0x48304200 0x80>;
737 ti,hwmods = "ehrpwm2"; 793 clocks = <&ehrpwm2_tbclk>, <&l4ls_gclk>;
794 clock-names = "tbclk", "fck";
738 status = "disabled"; 795 status = "disabled";
739 }; 796 };
740 }; 797 };
@@ -749,10 +806,13 @@
749 status = "disabled"; 806 status = "disabled";
750 807
751 ehrpwm3: pwm@48306200 { 808 ehrpwm3: pwm@48306200 {
752 compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; 809 compatible = "ti,am4372-ehrpwm",
810 "ti,am3352-ehrpwm",
811 "ti,am33xx-ehrpwm";
753 #pwm-cells = <3>; 812 #pwm-cells = <3>;
754 reg = <0x48306200 0x80>; 813 reg = <0x48306200 0x80>;
755 ti,hwmods = "ehrpwm3"; 814 clocks = <&ehrpwm3_tbclk>, <&l4ls_gclk>;
815 clock-names = "tbclk", "fck";
756 status = "disabled"; 816 status = "disabled";
757 }; 817 };
758 }; 818 };
@@ -767,10 +827,13 @@
767 status = "disabled"; 827 status = "disabled";
768 828
769 ehrpwm4: pwm@48308200 { 829 ehrpwm4: pwm@48308200 {
770 compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; 830 compatible = "ti,am4372-ehrpwm",
831 "ti,am3352-ehrpwm",
832 "ti,am33xx-ehrpwm";
771 #pwm-cells = <3>; 833 #pwm-cells = <3>;
772 reg = <0x48308200 0x80>; 834 reg = <0x48308200 0x80>;
773 ti,hwmods = "ehrpwm4"; 835 clocks = <&ehrpwm4_tbclk>, <&l4ls_gclk>;
836 clock-names = "tbclk", "fck";
774 status = "disabled"; 837 status = "disabled";
775 }; 838 };
776 }; 839 };
@@ -785,10 +848,13 @@
785 status = "disabled"; 848 status = "disabled";
786 849
787 ehrpwm5: pwm@4830a200 { 850 ehrpwm5: pwm@4830a200 {
788 compatible = "ti,am4372-ehrpwm","ti,am33xx-ehrpwm"; 851 compatible = "ti,am4372-ehrpwm",
852 "ti,am3352-ehrpwm",
853 "ti,am33xx-ehrpwm";
789 #pwm-cells = <3>; 854 #pwm-cells = <3>;
790 reg = <0x4830a200 0x80>; 855 reg = <0x4830a200 0x80>;
791 ti,hwmods = "ehrpwm5"; 856 clocks = <&ehrpwm5_tbclk>, <&l4ls_gclk>;
857 clock-names = "tbclk", "fck";
792 status = "disabled"; 858 status = "disabled";
793 }; 859 };
794 }; 860 };
@@ -842,6 +908,13 @@
842 dma-names = "tx", "rx"; 908 dma-names = "tx", "rx";
843 }; 909 };
844 910
911 rng: rng@48310000 {
912 compatible = "ti,omap4-rng";
913 ti,hwmods = "rng";
914 reg = <0x48310000 0x2000>;
915 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
916 };
917
845 mcasp0: mcasp@48038000 { 918 mcasp0: mcasp@48038000 {
846 compatible = "ti,am33xx-mcasp-audio"; 919 compatible = "ti,am33xx-mcasp-audio";
847 ti,hwmods = "mcasp0"; 920 ti,hwmods = "mcasp0";
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 5bcd3aa025bc..14677d599595 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -897,7 +897,7 @@
897 pinctrl-0 = <&dss_pins>; 897 pinctrl-0 = <&dss_pins>;
898 898
899 port { 899 port {
900 dpi_out: endpoint@0 { 900 dpi_out: endpoint {
901 remote-endpoint = <&lcd_in>; 901 remote-endpoint = <&lcd_in>;
902 data-lines = <24>; 902 data-lines = <24>;
903 }; 903 };
@@ -975,3 +975,7 @@
975 clock-names = "ext-clk", "int-clk"; 975 clock-names = "ext-clk", "int-clk";
976 status = "okay"; 976 status = "okay";
977}; 977};
978
979&cpu {
980 cpu0-supply = <&dcdc2>;
981};
diff --git a/arch/arm/boot/dts/am437x-idk-evm.dts b/arch/arm/boot/dts/am437x-idk-evm.dts
index 76dcfc6d5f0d..12a69518383e 100644
--- a/arch/arm/boot/dts/am437x-idk-evm.dts
+++ b/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -382,6 +382,7 @@
382}; 382};
383 383
384&mac { 384&mac {
385 slaves = <1>;
385 pinctrl-names = "default", "sleep"; 386 pinctrl-names = "default", "sleep";
386 pinctrl-0 = <&cpsw_default>; 387 pinctrl-0 = <&cpsw_default>;
387 pinctrl-1 = <&cpsw_sleep>; 388 pinctrl-1 = <&cpsw_sleep>;
diff --git a/arch/arm/boot/dts/am437x-sbc-t43.dts b/arch/arm/boot/dts/am437x-sbc-t43.dts
index 5f750c0ed6c9..d23260d3a581 100644
--- a/arch/arm/boot/dts/am437x-sbc-t43.dts
+++ b/arch/arm/boot/dts/am437x-sbc-t43.dts
@@ -145,7 +145,7 @@
145 pinctrl-0 = <&dss_pinctrl_default>; 145 pinctrl-0 = <&dss_pinctrl_default>;
146 146
147 port { 147 port {
148 dpi_lcd_out: endpoint@0 { 148 dpi_lcd_out: endpoint {
149 remote-endpoint = <&lcd_in>; 149 remote-endpoint = <&lcd_in>;
150 data-lines = <24>; 150 data-lines = <24>;
151 }; 151 };
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 3549b8c9ac49..ad32e55532f8 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -754,7 +754,7 @@
754 pinctrl-0 = <&dss_pins>; 754 pinctrl-0 = <&dss_pins>;
755 755
756 port { 756 port {
757 dpi_out: endpoint@0 { 757 dpi_out: endpoint {
758 remote-endpoint = <&lcd_in>; 758 remote-endpoint = <&lcd_in>;
759 data-lines = <24>; 759 data-lines = <24>;
760 }; 760 };
diff --git a/arch/arm/boot/dts/am43xx-clocks.dtsi b/arch/arm/boot/dts/am43xx-clocks.dtsi
index 7630ba1d89e4..d1d73b725f47 100644
--- a/arch/arm/boot/dts/am43xx-clocks.dtsi
+++ b/arch/arm/boot/dts/am43xx-clocks.dtsi
@@ -104,6 +104,14 @@
104 clock-div = <1>; 104 clock-div = <1>;
105 }; 105 };
106 106
107 rng_fck: rng_fck {
108 #clock-cells = <0>;
109 compatible = "fixed-factor-clock";
110 clocks = <&sys_clkin_ck>;
111 clock-mult = <1>;
112 clock-div = <1>;
113 };
114
107 ehrpwm0_tbclk: ehrpwm0_tbclk@664 { 115 ehrpwm0_tbclk: ehrpwm0_tbclk@664 {
108 #clock-cells = <0>; 116 #clock-cells = <0>;
109 compatible = "ti,gate-clock"; 117 compatible = "ti,gate-clock";
diff --git a/arch/arm/boot/dts/am57xx-sbc-am57x.dts b/arch/arm/boot/dts/am57xx-sbc-am57x.dts
index 988e99632d49..31f9be632406 100644
--- a/arch/arm/boot/dts/am57xx-sbc-am57x.dts
+++ b/arch/arm/boot/dts/am57xx-sbc-am57x.dts
@@ -128,7 +128,7 @@
128 vdda_video-supply = <&ldoln_reg>; 128 vdda_video-supply = <&ldoln_reg>;
129 129
130 port { 130 port {
131 dpi_lcd_out: endpoint@0 { 131 dpi_lcd_out: endpoint {
132 remote-endpoint = <&lcd_in>; 132 remote-endpoint = <&lcd_in>;
133 data-lines = <24>; 133 data-lines = <24>;
134 }; 134 };
diff --git a/arch/arm/boot/dts/animeo_ip.dts b/arch/arm/boot/dts/animeo_ip.dts
index 0962f2fa3f6e..9cc372b9fb9b 100644
--- a/arch/arm/boot/dts/animeo_ip.dts
+++ b/arch/arm/boot/dts/animeo_ip.dts
@@ -32,15 +32,6 @@
32 }; 32 };
33 33
34 clocks { 34 clocks {
35 #address-cells = <1>;
36 #size-cells = <1>;
37 ranges;
38
39 main_clock: clock@0 {
40 compatible = "atmel,osc", "fixed-clock";
41 clock-frequency = <18432000>;
42 };
43
44 slow_xtal { 35 slow_xtal {
45 clock-frequency = <32768>; 36 clock-frequency = <32768>;
46 }; 37 };
@@ -114,7 +105,7 @@
114 }; 105 };
115 }; 106 };
116 107
117 usb0: ohci@00500000 { 108 usb0: ohci@500000 {
118 num-ports = <2>; 109 num-ports = <2>;
119 atmel,vbus-gpio = <&pioB 15 GPIO_ACTIVE_LOW>; 110 atmel,vbus-gpio = <&pioB 15 GPIO_ACTIVE_LOW>;
120 status = "okay"; 111 status = "okay";
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dts b/arch/arm/boot/dts/armada-388-clearfog.dts
index c60206efb583..2e0556af6e5e 100644
--- a/arch/arm/boot/dts/armada-388-clearfog.dts
+++ b/arch/arm/boot/dts/armada-388-clearfog.dts
@@ -239,22 +239,6 @@
239 status = "okay"; 239 status = "okay";
240 }; 240 };
241 241
242 mdio@72004 {
243 pinctrl-0 = <&mdio_pins>;
244 pinctrl-names = "default";
245
246 phy_dedicated: ethernet-phy@0 {
247 /*
248 * Annoyingly, the marvell phy driver
249 * configures the LED register, rather
250 * than preserving reset-loaded setting.
251 * We undo that rubbish here.
252 */
253 marvell,reg-init = <3 16 0 0x101e>;
254 reg = <0>;
255 };
256 };
257
258 pinctrl@18000 { 242 pinctrl@18000 {
259 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins { 243 clearfog_dsa0_clk_pins: clearfog-dsa0-clk-pins {
260 marvell,pins = "mpp46"; 244 marvell,pins = "mpp46";
diff --git a/arch/arm/boot/dts/at91-ariag25.dts b/arch/arm/boot/dts/at91-ariag25.dts
index e9ced30159a7..4da011a7a698 100644
--- a/arch/arm/boot/dts/at91-ariag25.dts
+++ b/arch/arm/boot/dts/at91-ariag25.dts
@@ -34,15 +34,6 @@
34 }; 34 };
35 35
36 clocks { 36 clocks {
37 #address-cells = <1>;
38 #size-cells = <1>;
39 ranges;
40
41 main_clock: clock@0 {
42 compatible = "atmel,osc", "fixed-clock";
43 clock-frequency = <12000000>;
44 };
45
46 slow_xtal { 37 slow_xtal {
47 clock-frequency = <32768>; 38 clock-frequency = <32768>;
48 }; 39 };
@@ -178,7 +169,7 @@
178 169
179 }; 170 };
180 171
181 onewire@0 { 172 onewire {
182 compatible = "w1-gpio"; 173 compatible = "w1-gpio";
183 gpios = <&pioA 21 GPIO_ACTIVE_LOW>; 174 gpios = <&pioA 21 GPIO_ACTIVE_LOW>;
184 pinctrl-names = "default"; 175 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/at91-cosino.dtsi b/arch/arm/boot/dts/at91-cosino.dtsi
index b6ea3f4a7206..02d8ef43de3a 100644
--- a/arch/arm/boot/dts/at91-cosino.dtsi
+++ b/arch/arm/boot/dts/at91-cosino.dtsi
@@ -26,15 +26,6 @@
26 }; 26 };
27 27
28 clocks { 28 clocks {
29 #address-cells = <1>;
30 #size-cells = <1>;
31 ranges;
32
33 main_clock: clock@0 {
34 compatible = "atmel,osc", "fixed-clock";
35 clock-frequency = <12000000>;
36 };
37
38 slow_xtal { 29 slow_xtal {
39 clock-frequency = <32768>; 30 clock-frequency = <32768>;
40 }; 31 };
diff --git a/arch/arm/boot/dts/at91-foxg20.dts b/arch/arm/boot/dts/at91-foxg20.dts
index 6bf873e7d96c..50d5e719b451 100644
--- a/arch/arm/boot/dts/at91-foxg20.dts
+++ b/arch/arm/boot/dts/at91-foxg20.dts
@@ -23,15 +23,6 @@
23 }; 23 };
24 24
25 clocks { 25 clocks {
26 #address-cells = <1>;
27 #size-cells = <1>;
28 ranges;
29
30 main_clock: clock@0 {
31 compatible = "atmel,osc", "fixed-clock";
32 clock-frequency = <18432000>;
33 };
34
35 slow_xtal { 26 slow_xtal {
36 clock-frequency = <32768>; 27 clock-frequency = <32768>;
37 }; 28 };
@@ -128,13 +119,13 @@
128 }; 119 };
129 }; 120 };
130 121
131 usb0: ohci@00500000 { 122 usb0: ohci@500000 {
132 num-ports = <2>; 123 num-ports = <2>;
133 status = "okay"; 124 status = "okay";
134 }; 125 };
135 }; 126 };
136 127
137 i2c@0 { 128 i2c-gpio-0 {
138 pinctrl-names = "default"; 129 pinctrl-names = "default";
139 pinctrl-0 = <&pinctrl_i2c0>; 130 pinctrl-0 = <&pinctrl_i2c0>;
140 i2c-gpio,delay-us = <5>; /* ~85 kHz */ 131 i2c-gpio,delay-us = <5>; /* ~85 kHz */
diff --git a/arch/arm/boot/dts/at91-kizbox.dts b/arch/arm/boot/dts/at91-kizbox.dts
index 229e989eb60d..b4f147c193fd 100644
--- a/arch/arm/boot/dts/at91-kizbox.dts
+++ b/arch/arm/boot/dts/at91-kizbox.dts
@@ -54,7 +54,7 @@
54 }; 54 };
55 }; 55 };
56 56
57 usb0: ohci@00500000 { 57 usb0: ohci@500000 {
58 num-ports = <1>; 58 num-ports = <1>;
59 status = "okay"; 59 status = "okay";
60 }; 60 };
@@ -96,7 +96,7 @@
96 }; 96 };
97 }; 97 };
98 98
99 i2c@0 { 99 i2c-gpio-0 {
100 status = "okay"; 100 status = "okay";
101 101
102 rtc: pcf8563@51 { 102 rtc: pcf8563@51 {
diff --git a/arch/arm/boot/dts/at91-qil_a9260.dts b/arch/arm/boot/dts/at91-qil_a9260.dts
index 4f2eebf4a560..8f019184fccf 100644
--- a/arch/arm/boot/dts/at91-qil_a9260.dts
+++ b/arch/arm/boot/dts/at91-qil_a9260.dts
@@ -20,15 +20,6 @@
20 }; 20 };
21 21
22 clocks { 22 clocks {
23 #address-cells = <1>;
24 #size-cells = <1>;
25 ranges;
26
27 main_clock: clock@0 {
28 compatible = "atmel,osc", "fixed-clock";
29 clock-frequency = <12000000>;
30 };
31
32 slow_xtal { 23 slow_xtal {
33 clock-frequency = <32768>; 24 clock-frequency = <32768>;
34 }; 25 };
@@ -111,7 +102,7 @@
111 }; 102 };
112 }; 103 };
113 104
114 usb0: ohci@00500000 { 105 usb0: ohci@500000 {
115 num-ports = <2>; 106 num-ports = <2>;
116 status = "okay"; 107 status = "okay";
117 }; 108 };
@@ -187,7 +178,7 @@
187 }; 178 };
188 }; 179 };
189 180
190 i2c@0 { 181 i2c-gpio-0 {
191 status = "okay"; 182 status = "okay";
192 }; 183 };
193}; 184};
diff --git a/arch/arm/boot/dts/at91-sam9_l9260.dts b/arch/arm/boot/dts/at91-sam9_l9260.dts
new file mode 100644
index 000000000000..171243ca4f2f
--- /dev/null
+++ b/arch/arm/boot/dts/at91-sam9_l9260.dts
@@ -0,0 +1,121 @@
1/*
2 * at91-sam9_l9260.dts - Device Tree file for Olimex SAM9-L9260 board
3 *
4 * Copyright (C) 2016 Raashid Muhammed <raashidmuhammed@zilogic.com>
5 *
6 * Licensed under GPLv2 or later.
7 */
8/dts-v1/;
9#include "at91sam9260.dtsi"
10
11/ {
12 model = "Olimex sam9-l9260";
13 compatible = "olimex,sam9-l9260", "atmel,at91sam9260", "atmel,at91sam9";
14
15 chosen {
16 stdout-path = "serial0:115200n8";
17 };
18
19 memory {
20 reg = <0x20000000 0x4000000>;
21 };
22
23 clocks {
24 slow_xtal {
25 clock-frequency = <32768>;
26 };
27
28 main_xtal {
29 clock-frequency = <18432000>;
30 };
31 };
32
33 ahb {
34 apb {
35 mmc0: mmc@fffa8000 {
36 pinctrl-0 = <
37 &pinctrl_board_mmc0
38 &pinctrl_mmc0_clk
39 &pinctrl_mmc0_slot1_cmd_dat0
40 &pinctrl_mmc0_slot1_dat1_3>;
41 status = "okay";
42
43 slot@1 {
44 reg = <1>;
45 bus-width = <4>;
46 cd-gpios = <&pioC 8 GPIO_ACTIVE_HIGH>;
47 wp-gpios = <&pioC 4 GPIO_ACTIVE_HIGH>;
48 };
49 };
50
51 macb0: ethernet@fffc4000 {
52 pinctrl-0 = <&pinctrl_macb_rmii &pinctrl_macb_rmii_mii_alt>;
53 phy-mode = "mii";
54 #address-cells = <1>;
55 #size-cells = <0>;
56 status = "okay";
57
58 ethernet-phy@1 {
59 reg = <0x1>;
60 };
61 };
62
63 spi0: spi@fffc8000 {
64 cs-gpios = <&pioC 11 0>, <0>, <0>, <0>;
65 status = "okay";
66
67 flash@0 {
68 compatible = "atmel,at45", "atmel,dataflash";
69 spi-max-frequency = <15000000>;
70 reg = <0>;
71 };
72 };
73
74 dbgu: serial@fffff200 {
75 status = "okay";
76 };
77
78 pinctrl@fffff400 {
79 mmc0 {
80 pinctrl_board_mmc0: mmc0-board {
81 atmel,pins =
82 <AT91_PIOC 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH /* CD pin */
83 AT91_PIOC 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* WP pin */
84 };
85 };
86 };
87 };
88
89 nand0: nand@40000000 {
90 nand-bus-width = <8>;
91 nand-ecc-mode = "soft";
92 nand-on-flash-bbt = <1>;
93 status = "okay";
94 };
95
96 usb0: ohci@500000 {
97 status = "okay";
98 };
99
100 };
101
102 i2c-gpio-0 {
103 status = "okay";
104 };
105
106 leds {
107 compatible = "gpio-leds";
108
109 pwr_led {
110 label = "sam9-l9260:yellow:pwr";
111 gpios = <&pioA 9 GPIO_ACTIVE_HIGH>;
112 linux,default-trigger = "cpu0";
113 };
114
115 status_led {
116 label = "sam9-l9260:green:status";
117 gpios = <&pioA 6 GPIO_ACTIVE_LOW>;
118 linux,default-trigger = "timer";
119 };
120 };
121};
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index eb4f1ac96271..0b9a59d5fdac 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -158,56 +158,64 @@
158 i2c-sda-hold-time-ns = <350>; 158 i2c-sda-hold-time-ns = <350>;
159 status = "okay"; 159 status = "okay";
160 160
161 pmic: act8865@5b { 161 pmic@5b {
162 compatible = "active-semi,act8865"; 162 compatible = "active-semi,act8945a";
163 reg = <0x5b>; 163 reg = <0x5b>;
164 active-semi,vsel-high; 164 active-semi,vsel-high;
165 active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
166 active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
167 active-semi,irq_gpios = <&pioA 45 GPIO_ACTIVE_LOW>;
168 active-semi,input-voltage-threshold-microvolt = <6600>;
169 active-semi,precondition-timeout = <40>;
170 active-semi,total-timeout = <3>;
171 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_charger_chglev &pinctrl_charger_lbo &pinctrl_charger_irq>;
165 status = "okay"; 173 status = "okay";
166 174
167 regulators { 175 regulators {
168 vdd_1v35_reg: DCDC_REG1 { 176 vdd_1v35_reg: REG_DCDC1 {
169 regulator-name = "VDD_1V35"; 177 regulator-name = "VDD_1V35";
170 regulator-min-microvolt = <1350000>; 178 regulator-min-microvolt = <1350000>;
171 regulator-max-microvolt = <1350000>; 179 regulator-max-microvolt = <1350000>;
172 regulator-always-on; 180 regulator-always-on;
173 }; 181 };
174 182
175 vdd_1v2_reg: DCDC_REG2 { 183 vdd_1v2_reg: REG_DCDC2 {
176 regulator-name = "VDD_1V2"; 184 regulator-name = "VDD_1V2";
177 regulator-min-microvolt = <1100000>; 185 regulator-min-microvolt = <1100000>;
178 regulator-max-microvolt = <1300000>; 186 regulator-max-microvolt = <1300000>;
179 regulator-always-on; 187 regulator-always-on;
180 }; 188 };
181 189
182 vdd_3v3_reg: DCDC_REG3 { 190 vdd_3v3_reg: REG_DCDC3 {
183 regulator-name = "VDD_3V3"; 191 regulator-name = "VDD_3V3";
184 regulator-min-microvolt = <3300000>; 192 regulator-min-microvolt = <3300000>;
185 regulator-max-microvolt = <3300000>; 193 regulator-max-microvolt = <3300000>;
186 regulator-always-on; 194 regulator-always-on;
187 }; 195 };
188 196
189 vdd_fuse_reg: LDO_REG1 { 197 vdd_fuse_reg: REG_LDO1 {
190 regulator-name = "VDD_FUSE"; 198 regulator-name = "VDD_FUSE";
191 regulator-min-microvolt = <2500000>; 199 regulator-min-microvolt = <2500000>;
192 regulator-max-microvolt = <2500000>; 200 regulator-max-microvolt = <2500000>;
193 regulator-always-on; 201 regulator-always-on;
194 }; 202 };
195 203
196 vdd_3v3_lp_reg: LDO_REG2 { 204 vdd_3v3_lp_reg: REG_LDO2 {
197 regulator-name = "VDD_3V3_LP"; 205 regulator-name = "VDD_3V3_LP";
198 regulator-min-microvolt = <3300000>; 206 regulator-min-microvolt = <3300000>;
199 regulator-max-microvolt = <3300000>; 207 regulator-max-microvolt = <3300000>;
200 regulator-always-on; 208 regulator-always-on;
201 }; 209 };
202 210
203 vdd_led_reg: LDO_REG3 { 211 vdd_led_reg: REG_LDO3 {
204 regulator-name = "VDD_LED"; 212 regulator-name = "VDD_LED";
205 regulator-min-microvolt = <3300000>; 213 regulator-min-microvolt = <3300000>;
206 regulator-max-microvolt = <3300000>; 214 regulator-max-microvolt = <3300000>;
207 regulator-always-on; 215 regulator-always-on;
208 }; 216 };
209 217
210 vdd_sdhc_1v8_reg: LDO_REG4 { 218 vdd_sdhc_1v8_reg: REG_LDO4 {
211 regulator-name = "VDD_SDHC_1V8"; 219 regulator-name = "VDD_SDHC_1V8";
212 regulator-min-microvolt = <1800000>; 220 regulator-min-microvolt = <1800000>;
213 regulator-max-microvolt = <1800000>; 221 regulator-max-microvolt = <1800000>;
@@ -309,6 +317,21 @@
309 bias-disable; 317 bias-disable;
310 }; 318 };
311 319
320 pinctrl_charger_chglev: charger_chglev {
321 pinmux = <PIN_PA12__GPIO>;
322 bias-disable;
323 };
324
325 pinctrl_charger_irq: charger_irq {
326 pinmux = <PIN_PB13__GPIO>;
327 bias-disable;
328 };
329
330 pinctrl_charger_lbo: charger_lbo {
331 pinmux = <PIN_PC8__GPIO>;
332 bias-pull-up;
333 };
334
312 pinctrl_flx0_default: flx0_default { 335 pinctrl_flx0_default: flx0_default {
313 pinmux = <PIN_PB28__FLEXCOM0_IO0>, 336 pinmux = <PIN_PB28__FLEXCOM0_IO0>,
314 <PIN_PB29__FLEXCOM0_IO1>; 337 <PIN_PB29__FLEXCOM0_IO1>;
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
index f3e2b96c06a3..c51fc652f6c7 100644
--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -297,7 +297,7 @@
297 }; 297 };
298 }; 298 };
299 299
300 vcc_mmc0_reg: fixedregulator@0 { 300 vcc_mmc0_reg: fixedregulator_mmc0 {
301 compatible = "regulator-fixed"; 301 compatible = "regulator-fixed";
302 gpio = <&pioE 2 GPIO_ACTIVE_LOW>; 302 gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
303 regulator-name = "mmc0-card-supply"; 303 regulator-name = "mmc0-card-supply";
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
index e7b2109fc85a..a92c6e0ca854 100644
--- a/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi
@@ -20,8 +20,11 @@
20 }; 20 };
21 21
22 clocks { 22 clocks {
23 main_clock: main_clock { 23 slow_xtal {
24 compatible = "atmel,osc", "fixed-clock"; 24 clock-frequency = <32768>;
25 };
26
27 main_xtal {
25 clock-frequency = <12000000>; 28 clock-frequency = <12000000>;
26 }; 29 };
27 30
@@ -106,7 +109,7 @@
106 }; 109 };
107 }; 110 };
108 111
109 vcc_3v3_reg: fixedregulator@0 { 112 vcc_3v3_reg: fixedregulator_3v3 {
110 compatible = "regulator-fixed"; 113 compatible = "regulator-fixed";
111 regulator-name = "VCC 3V3"; 114 regulator-name = "VCC 3V3";
112 regulator-min-microvolt = <3300000>; 115 regulator-min-microvolt = <3300000>;
@@ -115,7 +118,7 @@
115 regulator-always-on; 118 regulator-always-on;
116 }; 119 };
117 120
118 vcc_mmc0_reg: fixedregulator@1 { 121 vcc_mmc0_reg: fixedregulator_mmc0 {
119 compatible = "regulator-fixed"; 122 compatible = "regulator-fixed";
120 gpio = <&pioE 15 GPIO_ACTIVE_HIGH>; 123 gpio = <&pioE 15 GPIO_ACTIVE_HIGH>;
121 regulator-name = "RST_n MCI0"; 124 regulator-name = "RST_n MCI0";
diff --git a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
index abaaba58fbec..eac4ea2744cc 100644
--- a/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts
@@ -159,7 +159,7 @@
159 }; 159 };
160 }; 160 };
161 161
162 vcc_mmc1_reg: fixedregulator@2 { 162 vcc_mmc1_reg: fixedregulator_mmc1 {
163 compatible = "regulator-fixed"; 163 compatible = "regulator-fixed";
164 gpio = <&pioE 17 GPIO_ACTIVE_LOW>; 164 gpio = <&pioE 17 GPIO_ACTIVE_LOW>;
165 regulator-name = "VDD MCI1"; 165 regulator-name = "VDD MCI1";
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index da84e65b56ef..ed7fce297738 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -252,7 +252,7 @@
252 }; 252 };
253 }; 253 };
254 254
255 vcc_3v3_reg: fixedregulator@0 { 255 vcc_3v3_reg: fixedregulator_3v3 {
256 compatible = "regulator-fixed"; 256 compatible = "regulator-fixed";
257 regulator-name = "VCC 3V3"; 257 regulator-name = "VCC 3V3";
258 regulator-min-microvolt = <3300000>; 258 regulator-min-microvolt = <3300000>;
@@ -261,7 +261,7 @@
261 regulator-always-on; 261 regulator-always-on;
262 }; 262 };
263 263
264 vcc_mmc1_reg: fixedregulator@1 { 264 vcc_mmc1_reg: fixedregulator_mmc1 {
265 compatible = "regulator-fixed"; 265 compatible = "regulator-fixed";
266 gpio = <&pioE 4 GPIO_ACTIVE_LOW>; 266 gpio = <&pioE 4 GPIO_ACTIVE_LOW>;
267 regulator-name = "VDD MCI1"; 267 regulator-name = "VDD MCI1";
diff --git a/arch/arm/boot/dts/at91-sama5d4ek.dts b/arch/arm/boot/dts/at91-sama5d4ek.dts
index 4e98cda97403..f8b96cef5e1a 100644
--- a/arch/arm/boot/dts/at91-sama5d4ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d4ek.dts
@@ -69,26 +69,6 @@
69 69
70 ahb { 70 ahb {
71 apb { 71 apb {
72 lcd_bus@f0000000 {
73 status = "okay";
74
75 lcd@f0000000 {
76 status = "okay";
77 };
78
79 lcdovl1@f0000140 {
80 status = "okay";
81 };
82
83 lcdovl2@f0000240 {
84 status = "okay";
85 };
86
87 lcdheo1@f0000340 {
88 status = "okay";
89 };
90 };
91
92 adc0: adc@fc034000 { 72 adc0: adc@fc034000 {
93 pinctrl-names = "default"; 73 pinctrl-names = "default";
94 pinctrl-0 = < 74 pinctrl-0 = <
diff --git a/arch/arm/boot/dts/at91-vinco.dts b/arch/arm/boot/dts/at91-vinco.dts
index 6a366ee952a8..e0c0b2897a49 100644
--- a/arch/arm/boot/dts/at91-vinco.dts
+++ b/arch/arm/boot/dts/at91-vinco.dts
@@ -245,7 +245,7 @@
245 245
246 }; 246 };
247 247
248 vcc_3v3_reg: fixedregulator@0 { 248 vcc_3v3_reg: fixedregulator_3v3 {
249 compatible = "regulator-fixed"; 249 compatible = "regulator-fixed";
250 regulator-name = "VCC 3V3"; 250 regulator-name = "VCC 3V3";
251 regulator-min-microvolt = <3300000>; 251 regulator-min-microvolt = <3300000>;
diff --git a/arch/arm/boot/dts/at91rm9200.dtsi b/arch/arm/boot/dts/at91rm9200.dtsi
index f6cb7a80a2f5..4e913c2ccb79 100644
--- a/arch/arm/boot/dts/at91rm9200.dtsi
+++ b/arch/arm/boot/dts/at91rm9200.dtsi
@@ -948,7 +948,7 @@
948 }; 948 };
949 }; 949 };
950 950
951 i2c@0 { 951 i2c-gpio-0 {
952 compatible = "i2c-gpio"; 952 compatible = "i2c-gpio";
953 gpios = <&pioA 25 GPIO_ACTIVE_HIGH /* sda */ 953 gpios = <&pioA 25 GPIO_ACTIVE_HIGH /* sda */
954 &pioA 26 GPIO_ACTIVE_HIGH /* scl */ 954 &pioA 26 GPIO_ACTIVE_HIGH /* scl */
diff --git a/arch/arm/boot/dts/at91sam9260.dtsi b/arch/arm/boot/dts/at91sam9260.dtsi
index d4884dd1c243..a3e363d79122 100644
--- a/arch/arm/boot/dts/at91sam9260.dtsi
+++ b/arch/arm/boot/dts/at91sam9260.dtsi
@@ -938,25 +938,21 @@
938 atmel,adc-res-names = "lowres", "highres"; 938 atmel,adc-res-names = "lowres", "highres";
939 atmel,adc-use-res = "highres"; 939 atmel,adc-use-res = "highres";
940 940
941 trigger@0 { 941 trigger0 {
942 reg = <0>;
943 trigger-name = "timer-counter-0"; 942 trigger-name = "timer-counter-0";
944 trigger-value = <0x1>; 943 trigger-value = <0x1>;
945 }; 944 };
946 trigger@1 { 945 trigger1 {
947 reg = <1>;
948 trigger-name = "timer-counter-1"; 946 trigger-name = "timer-counter-1";
949 trigger-value = <0x3>; 947 trigger-value = <0x3>;
950 }; 948 };
951 949
952 trigger@2 { 950 trigger2 {
953 reg = <2>;
954 trigger-name = "timer-counter-2"; 951 trigger-name = "timer-counter-2";
955 trigger-value = <0x5>; 952 trigger-value = <0x5>;
956 }; 953 };
957 954
958 trigger@3 { 955 trigger3 {
959 reg = <3>;
960 trigger-name = "external"; 956 trigger-name = "external";
961 trigger-value = <0xd>; 957 trigger-value = <0xd>;
962 trigger-external; 958 trigger-external;
@@ -1007,7 +1003,7 @@
1007 status = "disabled"; 1003 status = "disabled";
1008 }; 1004 };
1009 1005
1010 usb0: ohci@00500000 { 1006 usb0: ohci@500000 {
1011 compatible = "atmel,at91rm9200-ohci", "usb-ohci"; 1007 compatible = "atmel,at91rm9200-ohci", "usb-ohci";
1012 reg = <0x00500000 0x100000>; 1008 reg = <0x00500000 0x100000>;
1013 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>; 1009 interrupts = <20 IRQ_TYPE_LEVEL_HIGH 2>;
@@ -1017,7 +1013,7 @@
1017 }; 1013 };
1018 }; 1014 };
1019 1015
1020 i2c@0 { 1016 i2c-gpio-0 {
1021 compatible = "i2c-gpio"; 1017 compatible = "i2c-gpio";
1022 gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */ 1018 gpios = <&pioA 23 GPIO_ACTIVE_HIGH /* sda */
1023 &pioA 24 GPIO_ACTIVE_HIGH /* scl */ 1019 &pioA 24 GPIO_ACTIVE_HIGH /* scl */
diff --git a/arch/arm/boot/dts/at91sam9260ek.dts b/arch/arm/boot/dts/at91sam9260ek.dts
new file mode 100644
index 000000000000..2c87f58448e7
--- /dev/null
+++ b/arch/arm/boot/dts/at91sam9260ek.dts
@@ -0,0 +1,211 @@
1/*
2 * Device Tree file for Atmel at91sam9260 Evaluation Kit
3 *
4 * Copyright (C) 2016 Atmel,
5 * 2016 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 "at91sam9260.dtsi"
47
48/ {
49 model = "Atmel at91sam9260ek";
50 compatible = "atmel,at91sam9260ek", "atmel,at91sam9260", "atmel,at91sam9";
51
52 chosen {
53 stdout-path = &dbgu;
54 };
55
56 memory {
57 reg = <0x20000000 0x4000000>;
58 };
59
60 clocks {
61 slow_xtal {
62 clock-frequency = <32768>;
63 };
64
65 main_xtal {
66 clock-frequency = <18432000>;
67 };
68 };
69
70 ahb {
71 apb {
72 usb1: gadget@fffa4000 {
73 atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>;
74 status = "okay";
75 };
76
77 mmc0: mmc@fffa8000 {
78 pinctrl-0 = <
79 &pinctrl_board_mmc0_slot1
80 &pinctrl_mmc0_clk
81 &pinctrl_mmc0_slot1_cmd_dat0
82 &pinctrl_mmc0_slot1_dat1_3>;
83 status = "okay";
84 slot@1 {
85 reg = <1>;
86 bus-width = <4>;
87 cd-gpios = <&pioC 9 GPIO_ACTIVE_HIGH>;
88 };
89 };
90
91 usart0: serial@fffb0000 {
92 pinctrl-0 =
93 <&pinctrl_usart0
94 &pinctrl_usart0_rts
95 &pinctrl_usart0_cts
96 &pinctrl_usart0_dtr_dsr
97 &pinctrl_usart0_dcd
98 &pinctrl_usart0_ri>;
99 status = "okay";
100 };
101
102 usart1: serial@fffb4000 {
103 status = "okay";
104 };
105
106 ssc0: ssc@fffbc000 {
107 status = "okay";
108 pinctrl-0 = <&pinctrl_ssc0_tx>;
109 };
110
111 macb0: ethernet@fffc4000 {
112 phy-mode = "rmii";
113 status = "okay";
114 };
115
116 spi0: spi@fffc8000 {
117 cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
118 mtd_dataflash@0 {
119 compatible = "atmel,at45", "atmel,dataflash";
120 spi-max-frequency = <50000000>;
121 reg = <1>;
122 };
123 };
124
125 dbgu: serial@fffff200 {
126 status = "okay";
127 };
128
129 pinctrl@fffff400 {
130 board {
131 pinctrl_board_mmc0_slot1: mmc0_slot1-board {
132 atmel,pins =
133 <AT91_PIOC 9 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
134 };
135 };
136 };
137
138 shdwc@fffffd10 {
139 atmel,wakeup-counter = <10>;
140 atmel,wakeup-rtt-timer;
141 };
142
143 rtc@fffffd20 {
144 atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
145 status = "okay";
146 };
147
148 watchdog@fffffd40 {
149 status = "okay";
150 };
151
152 gpbr: syscon@fffffd50 {
153 status = "okay";
154 };
155 };
156
157 usb0: ohci@500000 {
158 num-ports = <2>;
159 status = "okay";
160 };
161
162 nand0: nand@40000000 {
163 nand-bus-width = <8>;
164 nand-ecc-mode = "soft";
165 nand-on-flash-bbt;
166 status = "okay";
167 };
168 };
169
170 gpio_keys {
171 compatible = "gpio-keys";
172
173 btn3 {
174 label = "Button 3";
175 gpios = <&pioA 30 GPIO_ACTIVE_LOW>;
176 linux,code = <0x103>;
177 gpio-key,wakeup;
178 };
179
180 btn4 {
181 label = "Button 4";
182 gpios = <&pioA 31 GPIO_ACTIVE_LOW>;
183 linux,code = <0x104>;
184 gpio-key,wakeup;
185 };
186 };
187
188 i2c-gpio-0 {
189 status = "okay";
190
191 24c512@50 {
192 compatible = "24c512";
193 reg = <0x50>;
194 };
195 };
196
197 leds {
198 compatible = "gpio-leds";
199
200 ds1 {
201 label = "ds1";
202 gpios = <&pioA 9 GPIO_ACTIVE_HIGH>;
203 linux,default-trigger = "heartbeat";
204 };
205
206 ds5 {
207 label = "ds5";
208 gpios = <&pioA 6 GPIO_ACTIVE_LOW>;
209 };
210 };
211};
diff --git a/arch/arm/boot/dts/at91sam9261.dtsi b/arch/arm/boot/dts/at91sam9261.dtsi
index 5e09de4eb9cd..32752d7883f1 100644
--- a/arch/arm/boot/dts/at91sam9261.dtsi
+++ b/arch/arm/boot/dts/at91sam9261.dtsi
@@ -860,7 +860,7 @@
860 }; 860 };
861 }; 861 };
862 862
863 i2c@0 { 863 i2c-gpio-0 {
864 compatible = "i2c-gpio"; 864 compatible = "i2c-gpio";
865 pinctrl-names = "default"; 865 pinctrl-names = "default";
866 pinctrl-0 = <&pinctrl_i2c_bitbang>; 866 pinctrl-0 = <&pinctrl_i2c_bitbang>;
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi
index 93446420af25..aeb1a36373f4 100644
--- a/arch/arm/boot/dts/at91sam9263.dtsi
+++ b/arch/arm/boot/dts/at91sam9263.dtsi
@@ -1019,7 +1019,7 @@
1019 }; 1019 };
1020 }; 1020 };
1021 1021
1022 i2c@0 { 1022 i2c-gpio-0 {
1023 compatible = "i2c-gpio"; 1023 compatible = "i2c-gpio";
1024 gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */ 1024 gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
1025 &pioB 5 GPIO_ACTIVE_HIGH /* scl */ 1025 &pioB 5 GPIO_ACTIVE_HIGH /* scl */
diff --git a/arch/arm/boot/dts/at91sam9263ek.dts b/arch/arm/boot/dts/at91sam9263ek.dts
index 59df9d73d276..127cc42e9e29 100644
--- a/arch/arm/boot/dts/at91sam9263ek.dts
+++ b/arch/arm/boot/dts/at91sam9263ek.dts
@@ -215,7 +215,7 @@
215 }; 215 };
216 }; 216 };
217 217
218 i2c@0 { 218 i2c-gpio-0 {
219 status = "okay"; 219 status = "okay";
220 220
221 24c512@50 { 221 24c512@50 {
diff --git a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
index e9cc99b6353a..27847a47c108 100644
--- a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
+++ b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
@@ -170,13 +170,13 @@
170 }; 170 };
171 }; 171 };
172 172
173 usb0: ohci@00500000 { 173 usb0: ohci@500000 {
174 num-ports = <2>; 174 num-ports = <2>;
175 status = "okay"; 175 status = "okay";
176 }; 176 };
177 }; 177 };
178 178
179 i2c@0 { 179 i2c-gpio-0 {
180 status = "okay"; 180 status = "okay";
181 181
182 24c512@50 { 182 24c512@50 {
diff --git a/arch/arm/boot/dts/at91sam9g25ek.dts b/arch/arm/boot/dts/at91sam9g25ek.dts
index 707fd4ea58f5..91a71774472e 100644
--- a/arch/arm/boot/dts/at91sam9g25ek.dts
+++ b/arch/arm/boot/dts/at91sam9g25ek.dts
@@ -26,7 +26,24 @@
26 26
27 i2c0: i2c@f8010000 { 27 i2c0: i2c@f8010000 {
28 ov2640: camera@0x30 { 28 ov2640: camera@0x30 {
29 compatible = "ovti,ov2640";
30 reg = <0x30>;
31 pinctrl-names = "default";
32 pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
33 resetb-gpios = <&pioA 7 GPIO_ACTIVE_LOW>;
34 pwdn-gpios = <&pioA 13 GPIO_ACTIVE_HIGH>;
35 clocks = <&pck0>;
36 clock-names = "xvclk";
37 assigned-clocks = <&pck0>;
38 assigned-clock-rates = <25000000>;
29 status = "okay"; 39 status = "okay";
40
41 port {
42 ov2640_0: endpoint {
43 remote-endpoint = <&isi_0>;
44 bus-width = <8>;
45 };
46 };
30 }; 47 };
31 }; 48 };
32 49
@@ -37,6 +54,15 @@
37 54
38 isi: isi@f8048000 { 55 isi: isi@f8048000 {
39 status = "okay"; 56 status = "okay";
57 port {
58 isi_0: endpoint@0 {
59 reg = <0>;
60 remote-endpoint = <&ov2640_0>;
61 bus-width = <8>;
62 vsync-active = <1>;
63 hsync-active = <1>;
64 };
65 };
40 }; 66 };
41 }; 67 };
42 }; 68 };
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index 8837b7e4292c..b3501ae2a3bd 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -1044,28 +1044,24 @@
1044 atmel,adc-res-names = "lowres", "highres"; 1044 atmel,adc-res-names = "lowres", "highres";
1045 atmel,adc-use-res = "highres"; 1045 atmel,adc-use-res = "highres";
1046 1046
1047 trigger@0 { 1047 trigger0 {
1048 reg = <0>;
1049 trigger-name = "external-rising"; 1048 trigger-name = "external-rising";
1050 trigger-value = <0x1>; 1049 trigger-value = <0x1>;
1051 trigger-external; 1050 trigger-external;
1052 }; 1051 };
1053 trigger@1 { 1052 trigger1 {
1054 reg = <1>;
1055 trigger-name = "external-falling"; 1053 trigger-name = "external-falling";
1056 trigger-value = <0x2>; 1054 trigger-value = <0x2>;
1057 trigger-external; 1055 trigger-external;
1058 }; 1056 };
1059 1057
1060 trigger@2 { 1058 trigger2 {
1061 reg = <2>;
1062 trigger-name = "external-any"; 1059 trigger-name = "external-any";
1063 trigger-value = <0x3>; 1060 trigger-value = <0x3>;
1064 trigger-external; 1061 trigger-external;
1065 }; 1062 };
1066 1063
1067 trigger@3 { 1064 trigger3 {
1068 reg = <3>;
1069 trigger-name = "continuous"; 1065 trigger-name = "continuous";
1070 trigger-value = <0x6>; 1066 trigger-value = <0x6>;
1071 }; 1067 };
@@ -1169,13 +1165,13 @@
1169 clock-names = "pclk", "hclk"; 1165 clock-names = "pclk", "hclk";
1170 status = "disabled"; 1166 status = "disabled";
1171 1167
1172 ep0 { 1168 ep@0 {
1173 reg = <0>; 1169 reg = <0>;
1174 atmel,fifo-size = <64>; 1170 atmel,fifo-size = <64>;
1175 atmel,nb-banks = <1>; 1171 atmel,nb-banks = <1>;
1176 }; 1172 };
1177 1173
1178 ep1 { 1174 ep@1 {
1179 reg = <1>; 1175 reg = <1>;
1180 atmel,fifo-size = <1024>; 1176 atmel,fifo-size = <1024>;
1181 atmel,nb-banks = <2>; 1177 atmel,nb-banks = <2>;
@@ -1183,7 +1179,7 @@
1183 atmel,can-isoc; 1179 atmel,can-isoc;
1184 }; 1180 };
1185 1181
1186 ep2 { 1182 ep@2 {
1187 reg = <2>; 1183 reg = <2>;
1188 atmel,fifo-size = <1024>; 1184 atmel,fifo-size = <1024>;
1189 atmel,nb-banks = <2>; 1185 atmel,nb-banks = <2>;
@@ -1191,21 +1187,21 @@
1191 atmel,can-isoc; 1187 atmel,can-isoc;
1192 }; 1188 };
1193 1189
1194 ep3 { 1190 ep@3 {
1195 reg = <3>; 1191 reg = <3>;
1196 atmel,fifo-size = <1024>; 1192 atmel,fifo-size = <1024>;
1197 atmel,nb-banks = <3>; 1193 atmel,nb-banks = <3>;
1198 atmel,can-dma; 1194 atmel,can-dma;
1199 }; 1195 };
1200 1196
1201 ep4 { 1197 ep@4 {
1202 reg = <4>; 1198 reg = <4>;
1203 atmel,fifo-size = <1024>; 1199 atmel,fifo-size = <1024>;
1204 atmel,nb-banks = <3>; 1200 atmel,nb-banks = <3>;
1205 atmel,can-dma; 1201 atmel,can-dma;
1206 }; 1202 };
1207 1203
1208 ep5 { 1204 ep@5 {
1209 reg = <5>; 1205 reg = <5>;
1210 atmel,fifo-size = <1024>; 1206 atmel,fifo-size = <1024>;
1211 atmel,nb-banks = <3>; 1207 atmel,nb-banks = <3>;
@@ -1213,7 +1209,7 @@
1213 atmel,can-isoc; 1209 atmel,can-isoc;
1214 }; 1210 };
1215 1211
1216 ep6 { 1212 ep@6 {
1217 reg = <6>; 1213 reg = <6>;
1218 atmel,fifo-size = <1024>; 1214 atmel,fifo-size = <1024>;
1219 atmel,nb-banks = <3>; 1215 atmel,nb-banks = <3>;
@@ -1320,7 +1316,7 @@
1320 }; 1316 };
1321 }; 1317 };
1322 1318
1323 i2c@0 { 1319 i2c-gpio-0 {
1324 compatible = "i2c-gpio"; 1320 compatible = "i2c-gpio";
1325 gpios = <&pioA 20 GPIO_ACTIVE_HIGH /* sda */ 1321 gpios = <&pioA 20 GPIO_ACTIVE_HIGH /* sda */
1326 &pioA 21 GPIO_ACTIVE_HIGH /* scl */ 1322 &pioA 21 GPIO_ACTIVE_HIGH /* scl */
diff --git a/arch/arm/boot/dts/at91sam9n12.dtsi b/arch/arm/boot/dts/at91sam9n12.dtsi
index 95569a87b6c9..3b3eb3edcb47 100644
--- a/arch/arm/boot/dts/at91sam9n12.dtsi
+++ b/arch/arm/boot/dts/at91sam9n12.dtsi
@@ -1030,7 +1030,7 @@
1030 }; 1030 };
1031 }; 1031 };
1032 1032
1033 i2c@0 { 1033 i2c-gpio-0 {
1034 compatible = "i2c-gpio"; 1034 compatible = "i2c-gpio";
1035 gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */ 1035 gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
1036 &pioA 31 GPIO_ACTIVE_HIGH /* scl */ 1036 &pioA 31 GPIO_ACTIVE_HIGH /* scl */
diff --git a/arch/arm/boot/dts/at91sam9rl.dtsi b/arch/arm/boot/dts/at91sam9rl.dtsi
index 6d829db4e887..70adf940d98c 100644
--- a/arch/arm/boot/dts/at91sam9rl.dtsi
+++ b/arch/arm/boot/dts/at91sam9rl.dtsi
@@ -265,25 +265,21 @@
265 atmel,adc-res-names = "lowres", "highres"; 265 atmel,adc-res-names = "lowres", "highres";
266 atmel,adc-use-res = "highres"; 266 atmel,adc-use-res = "highres";
267 267
268 trigger@0 { 268 trigger0 {
269 reg = <0>;
270 trigger-name = "timer-counter-0"; 269 trigger-name = "timer-counter-0";
271 trigger-value = <0x1>; 270 trigger-value = <0x1>;
272 }; 271 };
273 trigger@1 { 272 trigger1 {
274 reg = <1>;
275 trigger-name = "timer-counter-1"; 273 trigger-name = "timer-counter-1";
276 trigger-value = <0x3>; 274 trigger-value = <0x3>;
277 }; 275 };
278 276
279 trigger@2 { 277 trigger2 {
280 reg = <2>;
281 trigger-name = "timer-counter-2"; 278 trigger-name = "timer-counter-2";
282 trigger-value = <0x5>; 279 trigger-value = <0x5>;
283 }; 280 };
284 281
285 trigger@3 { 282 trigger3 {
286 reg = <3>;
287 trigger-name = "external"; 283 trigger-name = "external";
288 trigger-value = <0x13>; 284 trigger-value = <0x13>;
289 trigger-external; 285 trigger-external;
@@ -301,13 +297,13 @@
301 clock-names = "pclk", "hclk"; 297 clock-names = "pclk", "hclk";
302 status = "disabled"; 298 status = "disabled";
303 299
304 ep0 { 300 ep@0 {
305 reg = <0>; 301 reg = <0>;
306 atmel,fifo-size = <64>; 302 atmel,fifo-size = <64>;
307 atmel,nb-banks = <1>; 303 atmel,nb-banks = <1>;
308 }; 304 };
309 305
310 ep1 { 306 ep@1 {
311 reg = <1>; 307 reg = <1>;
312 atmel,fifo-size = <1024>; 308 atmel,fifo-size = <1024>;
313 atmel,nb-banks = <2>; 309 atmel,nb-banks = <2>;
@@ -315,7 +311,7 @@
315 atmel,can-isoc; 311 atmel,can-isoc;
316 }; 312 };
317 313
318 ep2 { 314 ep@2 {
319 reg = <2>; 315 reg = <2>;
320 atmel,fifo-size = <1024>; 316 atmel,fifo-size = <1024>;
321 atmel,nb-banks = <2>; 317 atmel,nb-banks = <2>;
@@ -323,21 +319,21 @@
323 atmel,can-isoc; 319 atmel,can-isoc;
324 }; 320 };
325 321
326 ep3 { 322 ep@3 {
327 reg = <3>; 323 reg = <3>;
328 atmel,fifo-size = <1024>; 324 atmel,fifo-size = <1024>;
329 atmel,nb-banks = <3>; 325 atmel,nb-banks = <3>;
330 atmel,can-dma; 326 atmel,can-dma;
331 }; 327 };
332 328
333 ep4 { 329 ep@4 {
334 reg = <4>; 330 reg = <4>;
335 atmel,fifo-size = <1024>; 331 atmel,fifo-size = <1024>;
336 atmel,nb-banks = <3>; 332 atmel,nb-banks = <3>;
337 atmel,can-dma; 333 atmel,can-dma;
338 }; 334 };
339 335
340 ep5 { 336 ep@5 {
341 reg = <5>; 337 reg = <5>;
342 atmel,fifo-size = <1024>; 338 atmel,fifo-size = <1024>;
343 atmel,nb-banks = <3>; 339 atmel,nb-banks = <3>;
@@ -345,7 +341,7 @@
345 atmel,can-isoc; 341 atmel,can-isoc;
346 }; 342 };
347 343
348 ep6 { 344 ep@6 {
349 reg = <6>; 345 reg = <6>;
350 atmel,fifo-size = <1024>; 346 atmel,fifo-size = <1024>;
351 atmel,nb-banks = <3>; 347 atmel,nb-banks = <3>;
@@ -1093,7 +1089,7 @@
1093 }; 1089 };
1094 }; 1090 };
1095 1091
1096 i2c@0 { 1092 i2c-gpio-0 {
1097 compatible = "i2c-gpio"; 1093 compatible = "i2c-gpio";
1098 gpios = <&pioA 23 GPIO_ACTIVE_HIGH>, /* sda */ 1094 gpios = <&pioA 23 GPIO_ACTIVE_HIGH>, /* sda */
1099 <&pioA 24 GPIO_ACTIVE_HIGH>; /* scl */ 1095 <&pioA 24 GPIO_ACTIVE_HIGH>; /* scl */
@@ -1107,7 +1103,7 @@
1107 status = "disabled"; 1103 status = "disabled";
1108 }; 1104 };
1109 1105
1110 i2c@1 { 1106 i2c-gpio-1 {
1111 compatible = "i2c-gpio"; 1107 compatible = "i2c-gpio";
1112 gpios = <&pioD 10 GPIO_ACTIVE_HIGH>, /* sda */ 1108 gpios = <&pioD 10 GPIO_ACTIVE_HIGH>, /* sda */
1113 <&pioD 11 GPIO_ACTIVE_HIGH>; /* scl */ 1109 <&pioD 11 GPIO_ACTIVE_HIGH>; /* scl */
diff --git a/arch/arm/boot/dts/at91sam9rlek.dts b/arch/arm/boot/dts/at91sam9rlek.dts
index f10566f759cd..2e567d90fba8 100644
--- a/arch/arm/boot/dts/at91sam9rlek.dts
+++ b/arch/arm/boot/dts/at91sam9rlek.dts
@@ -227,11 +227,11 @@
227 }; 227 };
228 }; 228 };
229 229
230 i2c@0 { 230 i2c-gpio-0 {
231 status = "okay"; 231 status = "okay";
232 }; 232 };
233 233
234 i2c@1 { 234 i2c-gpio-1 {
235 status = "okay"; 235 status = "okay";
236 }; 236 };
237}; 237};
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi
index cd0cd5fd09a3..ed4e4bd8a8f1 100644
--- a/arch/arm/boot/dts/at91sam9x5.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5.dtsi
@@ -1048,29 +1048,25 @@
1048 atmel,adc-res-names = "lowres", "highres"; 1048 atmel,adc-res-names = "lowres", "highres";
1049 atmel,adc-use-res = "highres"; 1049 atmel,adc-use-res = "highres";
1050 1050
1051 trigger@0 { 1051 trigger0 {
1052 reg = <0>;
1053 trigger-name = "external-rising"; 1052 trigger-name = "external-rising";
1054 trigger-value = <0x1>; 1053 trigger-value = <0x1>;
1055 trigger-external; 1054 trigger-external;
1056 }; 1055 };
1057 1056
1058 trigger@1 { 1057 trigger1 {
1059 reg = <1>;
1060 trigger-name = "external-falling"; 1058 trigger-name = "external-falling";
1061 trigger-value = <0x2>; 1059 trigger-value = <0x2>;
1062 trigger-external; 1060 trigger-external;
1063 }; 1061 };
1064 1062
1065 trigger@2 { 1063 trigger2 {
1066 reg = <2>;
1067 trigger-name = "external-any"; 1064 trigger-name = "external-any";
1068 trigger-value = <0x3>; 1065 trigger-value = <0x3>;
1069 trigger-external; 1066 trigger-external;
1070 }; 1067 };
1071 1068
1072 trigger@3 { 1069 trigger3 {
1073 reg = <3>;
1074 trigger-name = "continuous"; 1070 trigger-name = "continuous";
1075 trigger-value = <0x6>; 1071 trigger-value = <0x6>;
1076 }; 1072 };
@@ -1119,13 +1115,13 @@
1119 clock-names = "hclk", "pclk"; 1115 clock-names = "hclk", "pclk";
1120 status = "disabled"; 1116 status = "disabled";
1121 1117
1122 ep0 { 1118 ep@0 {
1123 reg = <0>; 1119 reg = <0>;
1124 atmel,fifo-size = <64>; 1120 atmel,fifo-size = <64>;
1125 atmel,nb-banks = <1>; 1121 atmel,nb-banks = <1>;
1126 }; 1122 };
1127 1123
1128 ep1 { 1124 ep@1 {
1129 reg = <1>; 1125 reg = <1>;
1130 atmel,fifo-size = <1024>; 1126 atmel,fifo-size = <1024>;
1131 atmel,nb-banks = <2>; 1127 atmel,nb-banks = <2>;
@@ -1133,7 +1129,7 @@
1133 atmel,can-isoc; 1129 atmel,can-isoc;
1134 }; 1130 };
1135 1131
1136 ep2 { 1132 ep@2 {
1137 reg = <2>; 1133 reg = <2>;
1138 atmel,fifo-size = <1024>; 1134 atmel,fifo-size = <1024>;
1139 atmel,nb-banks = <2>; 1135 atmel,nb-banks = <2>;
@@ -1141,21 +1137,21 @@
1141 atmel,can-isoc; 1137 atmel,can-isoc;
1142 }; 1138 };
1143 1139
1144 ep3 { 1140 ep@3 {
1145 reg = <3>; 1141 reg = <3>;
1146 atmel,fifo-size = <1024>; 1142 atmel,fifo-size = <1024>;
1147 atmel,nb-banks = <3>; 1143 atmel,nb-banks = <3>;
1148 atmel,can-dma; 1144 atmel,can-dma;
1149 }; 1145 };
1150 1146
1151 ep4 { 1147 ep@4 {
1152 reg = <4>; 1148 reg = <4>;
1153 atmel,fifo-size = <1024>; 1149 atmel,fifo-size = <1024>;
1154 atmel,nb-banks = <3>; 1150 atmel,nb-banks = <3>;
1155 atmel,can-dma; 1151 atmel,can-dma;
1156 }; 1152 };
1157 1153
1158 ep5 { 1154 ep@5 {
1159 reg = <5>; 1155 reg = <5>;
1160 atmel,fifo-size = <1024>; 1156 atmel,fifo-size = <1024>;
1161 atmel,nb-banks = <3>; 1157 atmel,nb-banks = <3>;
@@ -1163,7 +1159,7 @@
1163 atmel,can-isoc; 1159 atmel,can-isoc;
1164 }; 1160 };
1165 1161
1166 ep6 { 1162 ep@6 {
1167 reg = <6>; 1163 reg = <6>;
1168 atmel,fifo-size = <1024>; 1164 atmel,fifo-size = <1024>;
1169 atmel,nb-banks = <3>; 1165 atmel,nb-banks = <3>;
@@ -1242,7 +1238,7 @@
1242 }; 1238 };
1243 }; 1239 };
1244 1240
1245 i2c@0 { 1241 i2c-gpio-0 {
1246 compatible = "i2c-gpio"; 1242 compatible = "i2c-gpio";
1247 gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */ 1243 gpios = <&pioA 30 GPIO_ACTIVE_HIGH /* sda */
1248 &pioA 31 GPIO_ACTIVE_HIGH /* scl */ 1244 &pioA 31 GPIO_ACTIVE_HIGH /* scl */
@@ -1257,7 +1253,7 @@
1257 status = "disabled"; 1253 status = "disabled";
1258 }; 1254 };
1259 1255
1260 i2c@1 { 1256 i2c-gpio-1 {
1261 compatible = "i2c-gpio"; 1257 compatible = "i2c-gpio";
1262 gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */ 1258 gpios = <&pioC 0 GPIO_ACTIVE_HIGH /* sda */
1263 &pioC 1 GPIO_ACTIVE_HIGH /* scl */ 1259 &pioC 1 GPIO_ACTIVE_HIGH /* scl */
@@ -1272,7 +1268,7 @@
1272 status = "disabled"; 1268 status = "disabled";
1273 }; 1269 };
1274 1270
1275 i2c@2 { 1271 i2c-gpio-2 {
1276 compatible = "i2c-gpio"; 1272 compatible = "i2c-gpio";
1277 gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */ 1273 gpios = <&pioB 4 GPIO_ACTIVE_HIGH /* sda */
1278 &pioB 5 GPIO_ACTIVE_HIGH /* scl */ 1274 &pioB 5 GPIO_ACTIVE_HIGH /* scl */
diff --git a/arch/arm/boot/dts/at91sam9x5ek.dtsi b/arch/arm/boot/dts/at91sam9x5ek.dtsi
index 52425a4ca97e..696b8ba064a6 100644
--- a/arch/arm/boot/dts/at91sam9x5ek.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5ek.dtsi
@@ -60,18 +60,6 @@
60 status = "okay"; 60 status = "okay";
61 }; 61 };
62 62
63 isi: isi@f8048000 {
64 status = "disabled";
65 port {
66 isi_0: endpoint@0 {
67 remote-endpoint = <&ov2640_0>;
68 bus-width = <8>;
69 vsync-active = <1>;
70 hsync-active = <1>;
71 };
72 };
73 };
74
75 i2c0: i2c@f8010000 { 63 i2c0: i2c@f8010000 {
76 status = "okay"; 64 status = "okay";
77 65
@@ -79,27 +67,6 @@
79 compatible = "wm8731"; 67 compatible = "wm8731";
80 reg = <0x1a>; 68 reg = <0x1a>;
81 }; 69 };
82
83 ov2640: camera@0x30 {
84 compatible = "ovti,ov2640";
85 reg = <0x30>;
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_pck0_as_isi_mck &pinctrl_sensor_power &pinctrl_sensor_reset>;
88 resetb-gpios = <&pioA 7 GPIO_ACTIVE_LOW>;
89 pwdn-gpios = <&pioA 13 GPIO_ACTIVE_HIGH>;
90 clocks = <&pck0>;
91 clock-names = "xvclk";
92 assigned-clocks = <&pck0>;
93 assigned-clock-rates = <25000000>;
94 status = "disabled";
95
96 port {
97 ov2640_0: endpoint {
98 remote-endpoint = <&isi_0>;
99 bus-width = <8>;
100 };
101 };
102 };
103 }; 70 };
104 71
105 adc0: adc@f804c000 { 72 adc0: adc@f804c000 {
diff --git a/arch/arm/boot/dts/axp209.dtsi b/arch/arm/boot/dts/axp209.dtsi
index 051ab3ba9a65..afbe89c01df5 100644
--- a/arch/arm/boot/dts/axp209.dtsi
+++ b/arch/arm/boot/dts/axp209.dtsi
@@ -87,6 +87,7 @@
87 87
88 reg_ldo5: ldo5 { 88 reg_ldo5: ldo5 {
89 regulator-name = "ldo5"; 89 regulator-name = "ldo5";
90 status = "disabled";
90 }; 91 };
91 }; 92 };
92 93
diff --git a/arch/arm/boot/dts/axp22x.dtsi b/arch/arm/boot/dts/axp22x.dtsi
index 76302f58c478..458b6681e3ec 100644
--- a/arch/arm/boot/dts/axp22x.dtsi
+++ b/arch/arm/boot/dts/axp22x.dtsi
@@ -126,10 +126,12 @@
126 126
127 reg_ldo_io0: ldo_io0 { 127 reg_ldo_io0: ldo_io0 {
128 regulator-name = "ldo_io0"; 128 regulator-name = "ldo_io0";
129 status = "disabled";
129 }; 130 };
130 131
131 reg_ldo_io1: ldo_io1 { 132 reg_ldo_io1: ldo_io1 {
132 regulator-name = "ldo_io1"; 133 regulator-name = "ldo_io1";
134 status = "disabled";
133 }; 135 };
134 136
135 reg_rtc_ldo: rtc_ldo { 137 reg_rtc_ldo: rtc_ldo {
@@ -139,5 +141,15 @@
139 regulator-max-microvolt = <3000000>; 141 regulator-max-microvolt = <3000000>;
140 regulator-name = "rtc_ldo"; 142 regulator-name = "rtc_ldo";
141 }; 143 };
144
145 reg_drivevbus: drivevbus {
146 regulator-name = "drivevbus";
147 status = "disabled";
148 };
149 };
150
151 usb_power_supply: usb_power_supply {
152 compatible = "x-powers,axp221-usb-power-supply";
153 status = "disabled";
142 }; 154 };
143}; 155};
diff --git a/arch/arm/boot/dts/axp809.dtsi b/arch/arm/boot/dts/axp809.dtsi
new file mode 100644
index 000000000000..ab8e5f2d9246
--- /dev/null
+++ b/arch/arm/boot/dts/axp809.dtsi
@@ -0,0 +1,53 @@
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/*
46 * AXP809 Integrated Power Management Chip
47 */
48
49&axp809 {
50 compatible = "x-powers,axp809";
51 interrupt-controller;
52 #interrupt-cells = <1>;
53};
diff --git a/arch/arm/boot/dts/bcm-cygnus.dtsi b/arch/arm/boot/dts/bcm-cygnus.dtsi
index b42fe5596b94..fabc9f36c408 100644
--- a/arch/arm/boot/dts/bcm-cygnus.dtsi
+++ b/arch/arm/boot/dts/bcm-cygnus.dtsi
@@ -366,5 +366,16 @@
366 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 366 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
367 status = "disabled"; 367 status = "disabled";
368 }; 368 };
369
370 adc: adc@180a6000 {
371 compatible = "brcm,iproc-static-adc";
372 #io-channel-cells = <1>;
373 io-channel-ranges;
374 adc-syscon = <&ts_adc_syscon>;
375 clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
376 clock-names = "tsc_clk";
377 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
378 status = "disabled";
379 };
369 }; 380 };
370}; 381};
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 6a40ed7d0502..c3bf7d23f136 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -57,7 +57,7 @@
57 compatible = "arm,cortex-a9"; 57 compatible = "arm,cortex-a9";
58 next-level-cache = <&L2>; 58 next-level-cache = <&L2>;
59 enable-method = "brcm,bcm-nsp-smp"; 59 enable-method = "brcm,bcm-nsp-smp";
60 secondary-boot-reg = <0xffff042c>; 60 secondary-boot-reg = <0xffff0fec>;
61 reg = <0x1>; 61 reg = <0x1>;
62 }; 62 };
63 }; 63 };
@@ -192,6 +192,23 @@
192 status = "disabled"; 192 status = "disabled";
193 }; 193 };
194 194
195 dma@20000 {
196 compatible = "arm,pl330", "arm,primecell";
197 reg = <0x20000 0x1000>;
198 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
199 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
200 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
201 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
202 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
203 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
204 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
205 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
206 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
207 clocks = <&iprocslow>;
208 clock-names = "apb_pclk";
209 #dma-cells = <1>;
210 };
211
195 nand: nand@26000 { 212 nand: nand@26000 {
196 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1"; 213 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
197 reg = <0x026000 0x600>, 214 reg = <0x026000 0x600>,
@@ -337,6 +354,18 @@
337 ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>; 354 ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
338 355
339 status = "disabled"; 356 status = "disabled";
357
358 msi-parent = <&msi0>;
359 msi0: msi@18012000 {
360 compatible = "brcm,iproc-msi";
361 msi-controller;
362 interrupt-parent = <&gic>;
363 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>,
364 <GIC_SPI 128 IRQ_TYPE_NONE>,
365 <GIC_SPI 129 IRQ_TYPE_NONE>,
366 <GIC_SPI 130 IRQ_TYPE_NONE>;
367 brcm,pcie-msi-inten;
368 };
340 }; 369 };
341 370
342 pcie1: pcie@18013000 { 371 pcie1: pcie@18013000 {
@@ -361,6 +390,18 @@
361 ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>; 390 ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
362 391
363 status = "disabled"; 392 status = "disabled";
393
394 msi-parent = <&msi1>;
395 msi1: msi@18013000 {
396 compatible = "brcm,iproc-msi";
397 msi-controller;
398 interrupt-parent = <&gic>;
399 interrupts = <GIC_SPI 133 IRQ_TYPE_NONE>,
400 <GIC_SPI 134 IRQ_TYPE_NONE>,
401 <GIC_SPI 135 IRQ_TYPE_NONE>,
402 <GIC_SPI 136 IRQ_TYPE_NONE>;
403 brcm,pcie-msi-inten;
404 };
364 }; 405 };
365 406
366 pcie2: pcie@18014000 { 407 pcie2: pcie@18014000 {
@@ -385,5 +426,17 @@
385 ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>; 426 ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>;
386 427
387 status = "disabled"; 428 status = "disabled";
429
430 msi-parent = <&msi2>;
431 msi2: msi@18014000 {
432 compatible = "brcm,iproc-msi";
433 msi-controller;
434 interrupt-parent = <&gic>;
435 interrupts = <GIC_SPI 139 IRQ_TYPE_NONE>,
436 <GIC_SPI 140 IRQ_TYPE_NONE>,
437 <GIC_SPI 141 IRQ_TYPE_NONE>,
438 <GIC_SPI 142 IRQ_TYPE_NONE>;
439 brcm,pcie-msi-inten;
440 };
388 }; 441 };
389}; 442};
diff --git a/arch/arm/boot/dts/bcm11351.dtsi b/arch/arm/boot/dts/bcm11351.dtsi
index 3dc7a8cc5812..18045c38bcf1 100644
--- a/arch/arm/boot/dts/bcm11351.dtsi
+++ b/arch/arm/boot/dts/bcm11351.dtsi
@@ -30,7 +30,6 @@
30 cpus { 30 cpus {
31 #address-cells = <1>; 31 #address-cells = <1>;
32 #size-cells = <0>; 32 #size-cells = <0>;
33 enable-method = "brcm,bcm11351-cpu-method";
34 33
35 cpu0: cpu@0 { 34 cpu0: cpu@0 {
36 device_type = "cpu"; 35 device_type = "cpu";
@@ -41,6 +40,7 @@
41 cpu1: cpu@1 { 40 cpu1: cpu@1 {
42 device_type = "cpu"; 41 device_type = "cpu";
43 compatible = "arm,cortex-a9"; 42 compatible = "arm,cortex-a9";
43 enable-method = "brcm,bcm11351-cpu-method";
44 secondary-boot-reg = <0x3500417c>; 44 secondary-boot-reg = <0x3500417c>;
45 reg = <1>; 45 reg = <1>;
46 }; 46 };
diff --git a/arch/arm/boot/dts/bcm21664.dtsi b/arch/arm/boot/dts/bcm21664.dtsi
index 3f525be28fd0..6dde95f21cef 100644
--- a/arch/arm/boot/dts/bcm21664.dtsi
+++ b/arch/arm/boot/dts/bcm21664.dtsi
@@ -30,7 +30,6 @@
30 cpus { 30 cpus {
31 #address-cells = <1>; 31 #address-cells = <1>;
32 #size-cells = <0>; 32 #size-cells = <0>;
33 enable-method = "brcm,bcm11351-cpu-method";
34 33
35 cpu0: cpu@0 { 34 cpu0: cpu@0 {
36 device_type = "cpu"; 35 device_type = "cpu";
@@ -41,6 +40,7 @@
41 cpu1: cpu@1 { 40 cpu1: cpu@1 {
42 device_type = "cpu"; 41 device_type = "cpu";
43 compatible = "arm,cortex-a9"; 42 compatible = "arm,cortex-a9";
43 enable-method = "brcm,bcm11351-cpu-method";
44 secondary-boot-reg = <0x35004178>; 44 secondary-boot-reg = <0x35004178>;
45 reg = <1>; 45 reg = <1>;
46 }; 46 };
diff --git a/arch/arm/boot/dts/bcm23550-sparrow.dts b/arch/arm/boot/dts/bcm23550-sparrow.dts
new file mode 100644
index 000000000000..4d525ccb48c8
--- /dev/null
+++ b/arch/arm/boot/dts/bcm23550-sparrow.dts
@@ -0,0 +1,80 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2016 Broadcom. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include <dt-bindings/gpio/gpio.h>
36
37#include "bcm23550.dtsi"
38
39/ {
40 model = "BCM23550 Sparrow board";
41 compatible = "brcm,bcm23550-sparrow", "brcm,bcm23550";
42
43 chosen {
44 stdout-path = "/slaves@3e000000/serial@0:115200n8";
45 bootargs = "console=ttyS0,115200n8";
46 };
47
48 memory {
49 reg = <0x80000000 0x20000000>; /* 512 MB */
50 };
51};
52
53&uartb {
54 status = "okay";
55};
56
57&usbotg {
58 status = "okay";
59};
60
61&usbphy {
62 status = "okay";
63};
64
65&sdio1 {
66 max-frequency = <48000000>;
67 status = "okay";
68};
69
70&sdio2 {
71 non-removable;
72 max-frequency = <48000000>;
73 status = "okay";
74};
75
76&sdio4 {
77 max-frequency = <48000000>;
78 cd-gpios = <&gpio 91 GPIO_ACTIVE_LOW>;
79 status = "okay";
80};
diff --git a/arch/arm/boot/dts/bcm23550.dtsi b/arch/arm/boot/dts/bcm23550.dtsi
new file mode 100644
index 000000000000..a7a643f38385
--- /dev/null
+++ b/arch/arm/boot/dts/bcm23550.dtsi
@@ -0,0 +1,415 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2016 Broadcom. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33#include <dt-bindings/interrupt-controller/arm-gic.h>
34#include <dt-bindings/interrupt-controller/irq.h>
35
36/* BCM23550 and BCM21664 have almost identical clocks */
37#include "dt-bindings/clock/bcm21664.h"
38
39#include "skeleton.dtsi"
40
41/ {
42 model = "BCM23550 SoC";
43 compatible = "brcm,bcm23550";
44 interrupt-parent = <&gic>;
45
46 cpus {
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 cpu0: cpu@0 {
51 device_type = "cpu";
52 compatible = "arm,cortex-a7";
53 reg = <0>;
54 clock-frequency = <1000000000>;
55 };
56
57 cpu1: cpu@1 {
58 device_type = "cpu";
59 compatible = "arm,cortex-a7";
60 enable-method = "brcm,bcm23550";
61 secondary-boot-reg = <0x35004178>;
62 reg = <1>;
63 clock-frequency = <1000000000>;
64 };
65
66 cpu2: cpu@2 {
67 device_type = "cpu";
68 compatible = "arm,cortex-a7";
69 enable-method = "brcm,bcm23550";
70 secondary-boot-reg = <0x35004178>;
71 reg = <2>;
72 clock-frequency = <1000000000>;
73 };
74
75 cpu3: cpu@3 {
76 device_type = "cpu";
77 compatible = "arm,cortex-a7";
78 enable-method = "brcm,bcm23550";
79 secondary-boot-reg = <0x35004178>;
80 reg = <3>;
81 clock-frequency = <1000000000>;
82 };
83 };
84
85 /* Hub bus */
86 hub@34000000 {
87 compatible = "simple-bus";
88 ranges = <0 0x34000000 0x102f83ac>;
89 #address-cells = <1>;
90 #size-cells = <1>;
91
92 smc@4e000 {
93 compatible = "brcm,bcm23550-smc", "brcm,kona-smc";
94 reg = <0x0004e000 0x400>; /* 1 KiB in SRAM */
95 };
96
97 resetmgr: reset-controller@1001f00 {
98 compatible = "brcm,bcm21664-resetmgr";
99 reg = <0x01001f00 0x24>;
100 };
101
102 gpio: gpio@1003000 {
103 compatible = "brcm,bcm23550-gpio", "brcm,kona-gpio";
104 reg = <0x01003000 0x524>;
105 interrupts =
106 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH
107 GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH
108 GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH
109 GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
110 #gpio-cells = <2>;
111 #interrupt-cells = <2>;
112 gpio-controller;
113 interrupt-controller;
114 };
115
116 timer@1006000 {
117 compatible = "brcm,kona-timer";
118 reg = <0x01006000 0x1c>;
119 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
120 clocks = <&aon_ccu BCM21664_AON_CCU_HUB_TIMER>;
121 };
122 };
123
124 /* Slaves bus */
125 slaves@3e000000 {
126 compatible = "simple-bus";
127 ranges = <0 0x3e000000 0x0001c070>;
128 #address-cells = <1>;
129 #size-cells = <1>;
130
131 uartb: serial@0 {
132 compatible = "snps,dw-apb-uart";
133 status = "disabled";
134 reg = <0x00000000 0x118>;
135 clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB>;
136 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
137 reg-shift = <2>;
138 reg-io-width = <4>;
139 };
140
141 uartb2: serial@1000 {
142 compatible = "snps,dw-apb-uart";
143 status = "disabled";
144 reg = <0x00001000 0x118>;
145 clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB2>;
146 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
147 reg-shift = <2>;
148 reg-io-width = <4>;
149 };
150
151 uartb3: serial@2000 {
152 compatible = "snps,dw-apb-uart";
153 status = "disabled";
154 reg = <0x00002000 0x118>;
155 clocks = <&slave_ccu BCM21664_SLAVE_CCU_UARTB3>;
156 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
157 reg-shift = <2>;
158 reg-io-width = <4>;
159 };
160
161 bsc1: i2c@16000 {
162 compatible = "brcm,kona-i2c";
163 reg = <0x00016000 0x70>;
164 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
165 #address-cells = <1>;
166 #size-cells = <0>;
167 clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC1>;
168 status = "disabled";
169 };
170
171 bsc2: i2c@17000 {
172 compatible = "brcm,kona-i2c";
173 reg = <0x00017000 0x70>;
174 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
175 #address-cells = <1>;
176 #size-cells = <0>;
177 clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC2>;
178 status = "disabled";
179 };
180
181 bsc3: i2c@18000 {
182 compatible = "brcm,kona-i2c";
183 reg = <0x00018000 0x70>;
184 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC3>;
188 status = "disabled";
189 };
190
191 bsc4: i2c@1c000 {
192 compatible = "brcm,kona-i2c";
193 reg = <0x0001c000 0x70>;
194 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
195 #address-cells = <1>;
196 #size-cells = <0>;
197 clocks = <&slave_ccu BCM21664_SLAVE_CCU_BSC4>;
198 status = "disabled";
199 };
200 };
201
202 /* Apps bus */
203 apps@3e300000 {
204 compatible = "simple-bus";
205 ranges = <0 0x3e300000 0x01b77000>;
206 #address-cells = <1>;
207 #size-cells = <1>;
208
209 usbotg: usb@e20000 {
210 compatible = "snps,dwc2";
211 reg = <0x00e20000 0x10000>;
212 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&usb_otg_ahb_clk>;
214 clock-names = "otg";
215 phys = <&usbphy>;
216 phy-names = "usb2-phy";
217 status = "disabled";
218 };
219
220 usbphy: usb-phy@e30000 {
221 compatible = "brcm,kona-usb2-phy";
222 reg = <0x00e30000 0x28>;
223 #phy-cells = <0>;
224 status = "disabled";
225 };
226
227 sdio1: sdio@e80000 {
228 compatible = "brcm,kona-sdhci";
229 reg = <0x00e80000 0x801c>;
230 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
231 clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO1>;
232 status = "disabled";
233 };
234
235 sdio2: sdio@e90000 {
236 compatible = "brcm,kona-sdhci";
237 reg = <0x00e90000 0x801c>;
238 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
239 clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO2>;
240 status = "disabled";
241 };
242
243 sdio3: sdio@ea0000 {
244 compatible = "brcm,kona-sdhci";
245 reg = <0x00ea0000 0x801c>;
246 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
247 clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO3>;
248 status = "disabled";
249 };
250
251 sdio4: sdio@eb0000 {
252 compatible = "brcm,kona-sdhci";
253 reg = <0x00eb0000 0x801c>;
254 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&master_ccu BCM21664_MASTER_CCU_SDIO4>;
256 status = "disabled";
257 };
258
259 cdc: cdc@1b0e000 {
260 compatible = "brcm,bcm23550-cdc";
261 reg = <0x01b0e000 0x78>;
262 };
263
264 gic: interrupt-controller@1b21000 {
265 compatible = "arm,cortex-a9-gic";
266 #interrupt-cells = <3>;
267 #address-cells = <0>;
268 interrupt-controller;
269 reg = <0x01b21000 0x1000>,
270 <0x01b22000 0x1000>;
271 };
272 };
273
274 clocks {
275 #address-cells = <1>;
276 #size-cells = <1>;
277 ranges;
278
279 /*
280 * Fixed clocks are defined before CCUs whose
281 * clocks may depend on them.
282 */
283
284 ref_32k_clk: ref_32k {
285 #clock-cells = <0>;
286 compatible = "fixed-clock";
287 clock-frequency = <32768>;
288 };
289
290 bbl_32k_clk: bbl_32k {
291 #clock-cells = <0>;
292 compatible = "fixed-clock";
293 clock-frequency = <32768>;
294 };
295
296 ref_13m_clk: ref_13m {
297 #clock-cells = <0>;
298 compatible = "fixed-clock";
299 clock-frequency = <13000000>;
300 };
301
302 var_13m_clk: var_13m {
303 #clock-cells = <0>;
304 compatible = "fixed-clock";
305 clock-frequency = <13000000>;
306 };
307
308 dft_19_5m_clk: dft_19_5m {
309 #clock-cells = <0>;
310 compatible = "fixed-clock";
311 clock-frequency = <19500000>;
312 };
313
314 ref_crystal_clk: ref_crystal {
315 #clock-cells = <0>;
316 compatible = "fixed-clock";
317 clock-frequency = <26000000>;
318 };
319
320 ref_52m_clk: ref_52m {
321 #clock-cells = <0>;
322 compatible = "fixed-clock";
323 clock-frequency = <52000000>;
324 };
325
326 var_52m_clk: var_52m {
327 #clock-cells = <0>;
328 compatible = "fixed-clock";
329 clock-frequency = <52000000>;
330 };
331
332 usb_otg_ahb_clk: usb_otg_ahb {
333 #clock-cells = <0>;
334 compatible = "fixed-clock";
335 clock-frequency = <52000000>;
336 };
337
338 ref_96m_clk: ref_96m {
339 #clock-cells = <0>;
340 compatible = "fixed-clock";
341 clock-frequency = <96000000>;
342 };
343
344 var_96m_clk: var_96m {
345 #clock-cells = <0>;
346 compatible = "fixed-clock";
347 clock-frequency = <96000000>;
348 };
349
350 ref_104m_clk: ref_104m {
351 #clock-cells = <0>;
352 compatible = "fixed-clock";
353 clock-frequency = <104000000>;
354 };
355
356 var_104m_clk: var_104m {
357 #clock-cells = <0>;
358 compatible = "fixed-clock";
359 clock-frequency = <104000000>;
360 };
361
362 ref_156m_clk: ref_156m {
363 #clock-cells = <0>;
364 compatible = "fixed-clock";
365 clock-frequency = <156000000>;
366 };
367
368 var_156m_clk: var_156m {
369 #clock-cells = <0>;
370 compatible = "fixed-clock";
371 clock-frequency = <156000000>;
372 };
373
374 root_ccu: root_ccu {
375 compatible = BCM21664_DT_ROOT_CCU_COMPAT;
376 reg = <0x35001000 0x0f00>;
377 #clock-cells = <1>;
378 clock-output-names = "frac_1m";
379 };
380
381 aon_ccu: aon_ccu {
382 compatible = BCM21664_DT_AON_CCU_COMPAT;
383 reg = <0x35002000 0x0f00>;
384 #clock-cells = <1>;
385 clock-output-names = "hub_timer";
386 };
387
388 slave_ccu: slave_ccu {
389 compatible = BCM21664_DT_SLAVE_CCU_COMPAT;
390 reg = <0x3e011000 0x0f00>;
391 #clock-cells = <1>;
392 clock-output-names = "uartb",
393 "uartb2",
394 "uartb3",
395 "bsc1",
396 "bsc2",
397 "bsc3",
398 "bsc4";
399 };
400
401 master_ccu: master_ccu {
402 compatible = BCM21664_DT_MASTER_CCU_COMPAT;
403 reg = <0x3f001000 0x0f00>;
404 #clock-cells = <1>;
405 clock-output-names = "sdio1",
406 "sdio2",
407 "sdio3",
408 "sdio4",
409 "sdio1_sleep",
410 "sdio2_sleep",
411 "sdio3_sleep",
412 "sdio4_sleep";
413 };
414 };
415};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
index 57d313b6afaf..d5fdb8e761a3 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi" 2#include "bcm2835.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9514.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,model-b-plus", "brcm,bcm2835"; 7 compatible = "raspberrypi,model-b-plus", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
index cf2774ec0834..bfc4bd9b7733 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi" 2#include "bcm2835.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9512.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835"; 7 compatible = "raspberrypi,model-b-rev2", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
index 8b15f9c35643..0371bb7374b8 100644
--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
+++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2835.dtsi" 2#include "bcm2835.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9512.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,model-b", "brcm,bcm2835"; 7 compatible = "raspberrypi,model-b", "brcm,bcm2835";
diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
index c4743f42237b..29e1cfe8eb14 100644
--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
@@ -1,6 +1,7 @@
1/dts-v1/; 1/dts-v1/;
2#include "bcm2836.dtsi" 2#include "bcm2836.dtsi"
3#include "bcm2835-rpi.dtsi" 3#include "bcm2835-rpi.dtsi"
4#include "bcm283x-rpi-smsc9514.dtsi"
4 5
5/ { 6/ {
6 compatible = "raspberrypi,2-model-b", "brcm,bcm2836"; 7 compatible = "raspberrypi,2-model-b", "brcm,bcm2836";
diff --git a/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi b/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
new file mode 100644
index 000000000000..12c981e51134
--- /dev/null
+++ b/arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
@@ -0,0 +1,19 @@
1/ {
2 aliases {
3 ethernet = &ethernet;
4 };
5};
6
7&usb {
8 usb1@1 {
9 compatible = "usb424,9512";
10 reg = <1>;
11 #address-cells = <1>;
12 #size-cells = <0>;
13
14 ethernet: usbether@1 {
15 compatible = "usb424,ec00";
16 reg = <1>;
17 };
18 };
19};
diff --git a/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi b/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
new file mode 100644
index 000000000000..3f0a56ebcf1f
--- /dev/null
+++ b/arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
@@ -0,0 +1,19 @@
1/ {
2 aliases {
3 ethernet = &ethernet;
4 };
5};
6
7&usb {
8 usb1@1 {
9 compatible = "usb424,9514";
10 reg = <1>;
11 #address-cells = <1>;
12 #size-cells = <0>;
13
14 ethernet: usbether@1 {
15 compatible = "usb424,ec00";
16 reg = <1>;
17 };
18 };
19};
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 10b27b912bac..b98252232d20 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -287,6 +287,8 @@
287 compatible = "brcm,bcm2835-usb"; 287 compatible = "brcm,bcm2835-usb";
288 reg = <0x7e980000 0x10000>; 288 reg = <0x7e980000 0x10000>;
289 interrupts = <1 9>; 289 interrupts = <1 9>;
290 #address-cells = <1>;
291 #size-cells = <0>;
290 }; 292 };
291 293
292 v3d: v3d@7ec00000 { 294 v3d: v3d@7ec00000 {
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
index 5087aa81efb1..9cb186ea2e97 100644
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
@@ -147,3 +147,7 @@
147&usb3 { 147&usb3 {
148 vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_LOW>; 148 vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_LOW>;
149}; 149};
150
151&spi_nor {
152 status = "okay";
153};
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
index 1049ab108b32..8ce39d58eeb8 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
@@ -90,3 +90,7 @@
90&usb3 { 90&usb3 {
91 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>; 91 vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
92}; 92};
93
94&spi_nor {
95 status = "okay";
96};
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
index 3a94606d042b..6229ef283c41 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
@@ -82,3 +82,7 @@
82 }; 82 };
83 }; 83 };
84}; 84};
85
86&spi_nor {
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 8b0c440b2e71..70f4bb9d864a 100644
--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
@@ -126,3 +126,43 @@
126&spi_nor { 126&spi_nor {
127 status = "okay"; 127 status = "okay";
128}; 128};
129
130&srab {
131 status = "okay";
132
133 ports {
134 #address-cells = <1>;
135 #size-cells = <0>;
136
137 port@0 {
138 reg = <0>;
139 label = "lan4";
140 };
141
142 port@1 {
143 reg = <1>;
144 label = "lan3";
145 };
146
147 port@2 {
148 reg = <2>;
149 label = "lan2";
150 };
151
152 port@3 {
153 reg = <3>;
154 label = "lan1";
155 };
156
157 port@4 {
158 reg = <4>;
159 label = "wan";
160 };
161
162 port@5 {
163 reg = <5>;
164 label = "cpu";
165 ethernet = <&gmac0>;
166 };
167 };
168};
diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
index 791d7225c733..0653e7ef248c 100644
--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
@@ -131,3 +131,7 @@
131&usb2 { 131&usb2 {
132 vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>; 132 vcc-gpio = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
133}; 133};
134
135&spi_nor {
136 status = "okay";
137};
diff --git a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
index ace38efd2db3..c8c0b3616935 100644
--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
@@ -10,7 +10,7 @@
10/dts-v1/; 10/dts-v1/;
11 11
12#include "bcm4708.dtsi" 12#include "bcm4708.dtsi"
13#include "bcm5301x-nand-cs0-bch8.dtsi" 13#include "bcm5301x-nand-cs0-bch1.dtsi"
14 14
15/ { 15/ {
16 compatible = "dlink,dir-885l", "brcm,bcm47094", "brcm,bcm4708"; 16 compatible = "dlink,dir-885l", "brcm,bcm47094", "brcm,bcm4708";
@@ -113,3 +113,7 @@
113&usb3 { 113&usb3 {
114 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>; 114 vcc-gpio = <&chipcommon 18 GPIO_ACTIVE_HIGH>;
115}; 115};
116
117&spi_nor {
118 status = "okay";
119};
diff --git a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi
new file mode 100644
index 000000000000..24b099c00f13
--- /dev/null
+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi
@@ -0,0 +1,15 @@
1/*
2 * Broadcom Northstar NAND.
3 *
4 * Copyright (C) 2016 Rafał Miłecki <rafal.milecki@gmail.com>
5 *
6 * Licensed under the ISC license.
7 */
8
9#include "bcm5301x-nand-cs0.dtsi"
10
11&nandcs {
12 nand-ecc-algo = "bch";
13 nand-ecc-strength = <1>;
14 nand-ecc-step-size = <512>;
15};
diff --git a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
index d10781e36f54..9a9630ded306 100644
--- a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
@@ -9,16 +9,10 @@
9 * Licensed under the GNU/GPL. See COPYING for details. 9 * Licensed under the GNU/GPL. See COPYING for details.
10 */ 10 */
11 11
12/ { 12#include "bcm5301x-nand-cs0.dtsi"
13 nand@18028000 {
14 nandcs@0 {
15 compatible = "brcm,nandcs";
16 reg = <0>;
17 #address-cells = <1>;
18 #size-cells = <1>;
19 13
20 nand-ecc-strength = <8>; 14&nandcs {
21 nand-ecc-step-size = <512>; 15 nand-ecc-algo = "bch";
22 }; 16 nand-ecc-strength = <8>;
23 }; 17 nand-ecc-step-size = <512>;
24}; 18};
diff --git a/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi b/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
new file mode 100644
index 000000000000..168495106b82
--- /dev/null
+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
@@ -0,0 +1,18 @@
1/*
2 * Broadcom Northstar NAND.
3 *
4 * Copyright (C) 2015 Hauke Mehrtens <hauke@hauke-m.de>
5 *
6 * Licensed under the GNU/GPL. See COPYING for details.
7 */
8
9/ {
10 nand@18028000 {
11 nandcs: nandcs@0 {
12 compatible = "brcm,nandcs";
13 reg = <0>;
14 #address-cells = <1>;
15 #size-cells = <1>;
16 };
17 };
18};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 7d4d29bf0ed3..8af47913b3b4 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -153,6 +153,21 @@
153 /* ChipCommon */ 153 /* ChipCommon */
154 <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>, 154 <0x00000000 0 &gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
155 155
156 /* Switch Register Access Block */
157 <0x00007000 0 &gic GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
158 <0x00007000 1 &gic GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
159 <0x00007000 2 &gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
160 <0x00007000 3 &gic GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
161 <0x00007000 4 &gic GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
162 <0x00007000 5 &gic GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
163 <0x00007000 6 &gic GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
164 <0x00007000 7 &gic GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
165 <0x00007000 8 &gic GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
166 <0x00007000 9 &gic GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
167 <0x00007000 10 &gic GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
168 <0x00007000 11 &gic GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
169 <0x00007000 12 &gic GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
170
156 /* PCIe Controller 0 */ 171 /* PCIe Controller 0 */
157 <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>, 172 <0x00012000 0 &gic GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
158 <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>, 173 <0x00012000 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
@@ -239,6 +254,22 @@
239 status = "disabled"; 254 status = "disabled";
240 }; 255 };
241 }; 256 };
257
258 gmac0: ethernet@24000 {
259 reg = <0x24000 0x800>;
260 };
261
262 gmac1: ethernet@25000 {
263 reg = <0x25000 0x800>;
264 };
265
266 gmac2: ethernet@26000 {
267 reg = <0x26000 0x800>;
268 };
269
270 gmac3: ethernet@27000 {
271 reg = <0x27000 0x800>;
272 };
242 }; 273 };
243 274
244 lcpll0: lcpll0@1800c100 { 275 lcpll0: lcpll0@1800c100 {
@@ -260,6 +291,22 @@
260 "sata2"; 291 "sata2";
261 }; 292 };
262 293
294 srab: srab@18007000 {
295 compatible = "brcm,bcm5301x-srab";
296 reg = <0x18007000 0x1000>;
297 #address-cells = <1>;
298 #size-cells = <0>;
299
300 status = "disabled";
301
302 /* ports are defined in board DTS */
303 };
304
305 rng: rng@18004000 {
306 compatible = "brcm,bcm5301x-rng";
307 reg = <0x18004000 0x14>;
308 };
309
263 nand: nand@18028000 { 310 nand: nand@18028000 {
264 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand"; 311 compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1", "brcm,brcmnand";
265 reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>; 312 reg = <0x18028000 0x600>, <0x1811a408 0x600>, <0x18028f00 0x20>;
diff --git a/arch/arm/boot/dts/bcm953012er.dts b/arch/arm/boot/dts/bcm953012er.dts
new file mode 100644
index 000000000000..0a9abecf9423
--- /dev/null
+++ b/arch/arm/boot/dts/bcm953012er.dts
@@ -0,0 +1,104 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2016 Broadcom. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm4708.dtsi"
36#include "bcm5301x-nand-cs0-bch8.dtsi"
37
38/ {
39 model = "NorthStar Enterprise Router (BCM953012ER)";
40 compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708";
41
42 aliases {
43 serial0 = &uart0;
44 };
45
46 chosen {
47 stdout-path = "serial0:115200n8";
48 };
49
50 memory {
51 reg = <0x00000000 0x8000000>;
52 };
53
54 gpio-keys {
55 compatible = "gpio-keys";
56 #address-cells = <1>;
57 #size-cells = <0>;
58
59 wps {
60 label = "WPS";
61 linux,code = <KEY_WPS_BUTTON>;
62 gpios = <&chipcommon 6 GPIO_ACTIVE_LOW>;
63 };
64
65 restart {
66 label = "Reset";
67 linux,code = <KEY_RESTART>;
68 gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
69 };
70 };
71};
72
73&uart0 {
74 status = "okay";
75};
76
77&spi_nor {
78 status = "okay";
79};
80
81&srab {
82 status = "okay";
83
84 ports {
85 #address-cells = <1>;
86 #size-cells = <0>;
87
88 port@0 {
89 reg = <0>;
90 label = "port0";
91 };
92
93 port@1 {
94 reg = <1>;
95 label = "port1";
96 };
97
98 port@5 {
99 reg = <5>;
100 label = "cpu";
101 ethernet = <&gmac0>;
102 };
103 };
104};
diff --git a/arch/arm/boot/dts/bcm958525xmc.dts b/arch/arm/boot/dts/bcm958525xmc.dts
new file mode 100644
index 000000000000..d257e83dedfc
--- /dev/null
+++ b/arch/arm/boot/dts/bcm958525xmc.dts
@@ -0,0 +1,109 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright(c) 2016 Broadcom. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm-nsp.dtsi"
36
37/ {
38 model = "NorthStar Plus XMC (BCM958525xmc)";
39 compatible = "brcm,bcm58525", "brcm,nsp";
40
41 aliases {
42 serial0 = &uart0;
43 };
44
45 chosen {
46 stdout-path = "serial0:115200n8";
47 };
48};
49
50&nand {
51 nandcs@0 {
52 compatible = "brcm,nandcs";
53 reg = <0>;
54 nand-on-flash-bbt;
55
56 #address-cells = <1>;
57 #size-cells = <1>;
58
59 nand-ecc-strength = <24>;
60 nand-ecc-step-size = <1024>;
61
62 brcm,nand-oob-sector-size = <27>;
63
64 partition@0 {
65 label = "nboot";
66 reg = <0x00000000 0x00200000>;
67 read-only;
68 };
69 partition@200000 {
70 label = "nenv";
71 reg = <0x00200000 0x00400000>;
72 };
73 partition@600000 {
74 label = "nsystem";
75 reg = <0x00600000 0x00a00000>;
76 };
77 partition@1000000 {
78 label = "nrootfs";
79 reg = <0x01000000 0x03000000>;
80 };
81 partition@4000000 {
82 label = "ncustfs";
83 reg = <0x04000000 0x3c000000>;
84 };
85 };
86};
87
88/* XHCI, SATA, MMC, and Ethernet support needed to be complete */
89
90&uart0 {
91 status = "okay";
92};
93
94&pcie0 {
95 status = "okay";
96};
97
98&pcie1 {
99 status = "okay";
100};
101
102&pinctrl {
103 pinctrl-names = "default";
104 pinctrl-0 = <&nand_sel>;
105 nand_sel: nand_sel {
106 function = "nand";
107 groups = "nand_grp";
108 };
109};
diff --git a/arch/arm/boot/dts/bcm958625hr.dts b/arch/arm/boot/dts/bcm958625hr.dts
new file mode 100644
index 000000000000..03b8bbeb694f
--- /dev/null
+++ b/arch/arm/boot/dts/bcm958625hr.dts
@@ -0,0 +1,111 @@
1/*
2 * BSD LICENSE
3 *
4 * Copyright (c) 2016 Broadcom. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Broadcom Corporation nor the names of its
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32
33/dts-v1/;
34
35#include "bcm-nsp.dtsi"
36
37/ {
38 model = "NorthStar Plus SVK (BCM958625HR)";
39 compatible = "brcm,bcm58625", "brcm,nsp";
40
41 aliases {
42 serial0 = &uart0;
43 };
44
45 chosen {
46 stdout-path = "serial0:115200n8";
47 };
48
49 memory {
50 reg = <0x60000000 0x20000000>;
51 };
52};
53
54&nand {
55 nandcs@0 {
56 compatible = "brcm,nandcs";
57 reg = <0>;
58 nand-on-flash-bbt;
59
60 #address-cells = <1>;
61 #size-cells = <1>;
62
63 nand-ecc-strength = <24>;
64 nand-ecc-step-size = <1024>;
65
66 brcm,nand-oob-sector-size = <27>;
67
68 partition@0 {
69 label = "nboot";
70 reg = <0x00000000 0x00200000>;
71 read-only;
72 };
73 partition@200000 {
74 label = "nenv";
75 reg = <0x00200000 0x00400000>;
76 };
77 partition@600000 {
78 label = "nsystem";
79 reg = <0x00600000 0x00a00000>;
80 };
81 partition@1000000 {
82 label = "nrootfs";
83 reg = <0x01000000 0x03000000>;
84 };
85 partition@4000000 {
86 label = "ncustfs";
87 reg = <0x04000000 0x3c000000>;
88 };
89 };
90};
91
92&uart0 {
93 status = "okay";
94};
95
96&pcie0 {
97 status = "okay";
98};
99
100&pcie1 {
101 status = "okay";
102};
103
104&pinctrl {
105 pinctrl-names = "default";
106 pinctrl-0 = <&nand_sel>;
107 nand_sel: nand_sel {
108 function = "nand";
109 groups = "nand_grp";
110 };
111};
diff --git a/arch/arm/boot/dts/compulab-sb-som.dtsi b/arch/arm/boot/dts/compulab-sb-som.dtsi
index 93d7e235bc80..4af1adfee788 100644
--- a/arch/arm/boot/dts/compulab-sb-som.dtsi
+++ b/arch/arm/boot/dts/compulab-sb-som.dtsi
@@ -40,7 +40,7 @@
40 }; 40 };
41 }; 41 };
42 42
43 hdmi_conn: connector@0 { 43 hdmi_conn: connector {
44 compatible = "hdmi-connector"; 44 compatible = "hdmi-connector";
45 label = "hdmi"; 45 label = "hdmi";
46 46
diff --git a/arch/arm/boot/dts/dm814x.dtsi b/arch/arm/boot/dts/dm814x.dtsi
index f23cae0c2179..68e412c9863c 100644
--- a/arch/arm/boot/dts/dm814x.dtsi
+++ b/arch/arm/boot/dts/dm814x.dtsi
@@ -448,7 +448,7 @@
448 reg = <0x49000000 0x10000>; 448 reg = <0x49000000 0x10000>;
449 reg-names = "edma3_cc"; 449 reg-names = "edma3_cc";
450 interrupts = <12 13 14>; 450 interrupts = <12 13 14>;
451 interrupt-names = "edma3_ccint", "emda3_mperr", 451 interrupt-names = "edma3_ccint", "edma3_mperr",
452 "edma3_ccerrint"; 452 "edma3_ccerrint";
453 dma-requests = <64>; 453 dma-requests = <64>;
454 #dma-cells = <2>; 454 #dma-cells = <2>;
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index de559f6e4fee..d9bfb94a2992 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -73,6 +73,49 @@
73 interrupt-parent = <&gic>; 73 interrupt-parent = <&gic>;
74 }; 74 };
75 75
76 cpus {
77 #address-cells = <1>;
78 #size-cells = <0>;
79
80 cpu0: cpu@0 {
81 device_type = "cpu";
82 compatible = "arm,cortex-a15";
83 reg = <0>;
84
85 operating-points-v2 = <&cpu0_opp_table>;
86 ti,syscon-efuse = <&scm_wkup 0x20c 0xf80000 19>;
87 ti,syscon-rev = <&scm_wkup 0x204>;
88
89 clocks = <&dpll_mpu_ck>;
90 clock-names = "cpu";
91
92 clock-latency = <300000>; /* From omap-cpufreq driver */
93
94 /* cooling options */
95 cooling-min-level = <0>;
96 cooling-max-level = <2>;
97 #cooling-cells = <2>; /* min followed by max */
98 };
99 };
100
101 cpu0_opp_table: opp_table0 {
102 compatible = "operating-points-v2";
103 opp-shared;
104
105 opp_nom@1000000000 {
106 opp-hz = /bits/ 64 <1000000000>;
107 opp-microvolt = <1060000 850000 1150000>;
108 opp-supported-hw = <0xFF 0x01>;
109 opp-suspend;
110 };
111
112 opp_od@1176000000 {
113 opp-hz = /bits/ 64 <1176000000>;
114 opp-microvolt = <1160000 885000 1160000>;
115 opp-supported-hw = <0xFF 0x02>;
116 };
117 };
118
76 /* 119 /*
77 * The soc node represents the soc top level view. It is used for IPs 120 * The soc node represents the soc top level view. It is used for IPs
78 * that are not memory mapped in the MPU view or for the MPU itself. 121 * that are not memory mapped in the MPU view or for the MPU itself.
@@ -233,6 +276,11 @@
233 prm_clockdomains: clockdomains { 276 prm_clockdomains: clockdomains {
234 }; 277 };
235 }; 278 };
279
280 scm_wkup: scm_conf@c000 {
281 compatible = "syscon";
282 reg = <0xc000 0x1000>;
283 };
236 }; 284 };
237 285
238 axi@0 { 286 axi@0 {
@@ -276,7 +324,7 @@
276 ranges = <0x51800000 0x51800000 0x3000 324 ranges = <0x51800000 0x51800000 0x3000
277 0x0 0x30000000 0x10000000>; 325 0x0 0x30000000 0x10000000>;
278 status = "disabled"; 326 status = "disabled";
279 pcie@51000000 { 327 pcie@51800000 {
280 compatible = "ti,dra7-pcie"; 328 compatible = "ti,dra7-pcie";
281 reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>; 329 reg = <0x51800000 0x2000>, <0x51802000 0x14c>, <0x1000 0x2000>;
282 reg-names = "rc_dbics", "ti_conf", "config"; 330 reg-names = "rc_dbics", "ti_conf", "config";
@@ -304,6 +352,53 @@
304 }; 352 };
305 }; 353 };
306 354
355 ocmcram1: ocmcram@40300000 {
356 compatible = "mmio-sram";
357 reg = <0x40300000 0x80000>;
358 ranges = <0x0 0x40300000 0x80000>;
359 #address-cells = <1>;
360 #size-cells = <1>;
361 /*
362 * This is a placeholder for an optional reserved
363 * region for use by secure software. The size
364 * of this region is not known until runtime so it
365 * is set as zero to either be updated to reserve
366 * space or left unchanged to leave all SRAM for use.
367 * On HS parts that that require the reserved region
368 * either the bootloader can update the size to
369 * the required amount or the node can be overridden
370 * from the board dts file for the secure platform.
371 */
372 sram-hs@0 {
373 compatible = "ti,secure-ram";
374 reg = <0x0 0x0>;
375 };
376 };
377
378 /*
379 * NOTE: ocmcram2 and ocmcram3 are not available on all
380 * DRA7xx and AM57xx variants. Confirm availability in
381 * the data manual for the exact part number in use
382 * before enabling these nodes in the board dts file.
383 */
384 ocmcram2: ocmcram@40400000 {
385 status = "disabled";
386 compatible = "mmio-sram";
387 reg = <0x40400000 0x100000>;
388 ranges = <0x0 0x40400000 0x100000>;
389 #address-cells = <1>;
390 #size-cells = <1>;
391 };
392
393 ocmcram3: ocmcram@40500000 {
394 status = "disabled";
395 compatible = "mmio-sram";
396 reg = <0x40500000 0x100000>;
397 ranges = <0x0 0x40500000 0x100000>;
398 #address-cells = <1>;
399 #size-cells = <1>;
400 };
401
307 bandgap: bandgap@4a0021e0 { 402 bandgap: bandgap@4a0021e0 {
308 reg = <0x4a0021e0 0xc 403 reg = <0x4a0021e0 0xc
309 0x4a00232c 0xc 404 0x4a00232c 0xc
@@ -341,7 +436,7 @@
341 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>, 436 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
342 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>, 437 <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
343 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; 438 <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
344 interrupt-names = "edma3_ccint", "emda3_mperr", 439 interrupt-names = "edma3_ccint", "edma3_mperr",
345 "edma3_ccerrint"; 440 "edma3_ccerrint";
346 dma-requests = <64>; 441 dma-requests = <64>;
347 #dma-cells = <2>; 442 #dma-cells = <2>;
@@ -1744,6 +1839,149 @@
1744 clock-names = "fck", "sys_clk"; 1839 clock-names = "fck", "sys_clk";
1745 }; 1840 };
1746 }; 1841 };
1842
1843 epwmss0: epwmss@4843e000 {
1844 compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss";
1845 reg = <0x4843e000 0x30>;
1846 ti,hwmods = "epwmss0";
1847 #address-cells = <1>;
1848 #size-cells = <1>;
1849 status = "disabled";
1850 ranges;
1851
1852 ehrpwm0: pwm@4843e200 {
1853 compatible = "ti,dra746-ehrpwm",
1854 "ti,am3352-ehrpwm";
1855 #pwm-cells = <3>;
1856 reg = <0x4843e200 0x80>;
1857 clocks = <&ehrpwm0_tbclk>, <&l4_root_clk_div>;
1858 clock-names = "tbclk", "fck";
1859 status = "disabled";
1860 };
1861
1862 ecap0: ecap@4843e100 {
1863 compatible = "ti,dra746-ecap",
1864 "ti,am3352-ecap";
1865 #pwm-cells = <3>;
1866 reg = <0x4843e100 0x80>;
1867 clocks = <&l4_root_clk_div>;
1868 clock-names = "fck";
1869 status = "disabled";
1870 };
1871 };
1872
1873 epwmss1: epwmss@48440000 {
1874 compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss";
1875 reg = <0x48440000 0x30>;
1876 ti,hwmods = "epwmss1";
1877 #address-cells = <1>;
1878 #size-cells = <1>;
1879 status = "disabled";
1880 ranges;
1881
1882 ehrpwm1: pwm@48440200 {
1883 compatible = "ti,dra746-ehrpwm",
1884 "ti,am3352-ehrpwm";
1885 #pwm-cells = <3>;
1886 reg = <0x48440200 0x80>;
1887 clocks = <&ehrpwm1_tbclk>, <&l4_root_clk_div>;
1888 clock-names = "tbclk", "fck";
1889 status = "disabled";
1890 };
1891
1892 ecap1: ecap@48440100 {
1893 compatible = "ti,dra746-ecap",
1894 "ti,am3352-ecap";
1895 #pwm-cells = <3>;
1896 reg = <0x48440100 0x80>;
1897 clocks = <&l4_root_clk_div>;
1898 clock-names = "fck";
1899 status = "disabled";
1900 };
1901 };
1902
1903 epwmss2: epwmss@48442000 {
1904 compatible = "ti,dra746-pwmss", "ti,am33xx-pwmss";
1905 reg = <0x48442000 0x30>;
1906 ti,hwmods = "epwmss2";
1907 #address-cells = <1>;
1908 #size-cells = <1>;
1909 status = "disabled";
1910 ranges;
1911
1912 ehrpwm2: pwm@48442200 {
1913 compatible = "ti,dra746-ehrpwm",
1914 "ti,am3352-ehrpwm";
1915 #pwm-cells = <3>;
1916 reg = <0x48442200 0x80>;
1917 clocks = <&ehrpwm2_tbclk>, <&l4_root_clk_div>;
1918 clock-names = "tbclk", "fck";
1919 status = "disabled";
1920 };
1921
1922 ecap2: ecap@48442100 {
1923 compatible = "ti,dra746-ecap",
1924 "ti,am3352-ecap";
1925 #pwm-cells = <3>;
1926 reg = <0x48442100 0x80>;
1927 clocks = <&l4_root_clk_div>;
1928 clock-names = "fck";
1929 status = "disabled";
1930 };
1931 };
1932
1933 aes1: aes@4b500000 {
1934 compatible = "ti,omap4-aes";
1935 ti,hwmods = "aes1";
1936 reg = <0x4b500000 0xa0>;
1937 interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1938 dmas = <&edma_xbar 111 0>, <&edma_xbar 110 0>;
1939 dma-names = "tx", "rx";
1940 clocks = <&l3_iclk_div>;
1941 clock-names = "fck";
1942 };
1943
1944 aes2: aes@4b700000 {
1945 compatible = "ti,omap4-aes";
1946 ti,hwmods = "aes2";
1947 reg = <0x4b700000 0xa0>;
1948 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
1949 dmas = <&edma_xbar 114 0>, <&edma_xbar 113 0>;
1950 dma-names = "tx", "rx";
1951 clocks = <&l3_iclk_div>;
1952 clock-names = "fck";
1953 };
1954
1955 des: des@480a5000 {
1956 compatible = "ti,omap4-des";
1957 ti,hwmods = "des";
1958 reg = <0x480a5000 0xa0>;
1959 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
1960 dmas = <&sdma_xbar 117>, <&sdma_xbar 116>;
1961 dma-names = "tx", "rx";
1962 clocks = <&l3_iclk_div>;
1963 clock-names = "fck";
1964 };
1965
1966 sham: sham@53100000 {
1967 compatible = "ti,omap5-sham";
1968 ti,hwmods = "sham";
1969 reg = <0x4b101000 0x300>;
1970 interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
1971 dmas = <&edma_xbar 119 0>;
1972 dma-names = "rx";
1973 clocks = <&l3_iclk_div>;
1974 clock-names = "fck";
1975 };
1976
1977 rng: rng@48090000 {
1978 compatible = "ti,omap4-rng";
1979 ti,hwmods = "rng";
1980 reg = <0x48090000 0x2000>;
1981 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
1982 clocks = <&l3_iclk_div>;
1983 clock-names = "fck";
1984 };
1747 }; 1985 };
1748 1986
1749 thermal_zones: thermal-zones { 1987 thermal_zones: thermal-zones {
diff --git a/arch/arm/boot/dts/dra72-evm-common.dtsi b/arch/arm/boot/dts/dra72-evm-common.dtsi
index 093538ea5b5f..9d3cf50ca37e 100644
--- a/arch/arm/boot/dts/dra72-evm-common.dtsi
+++ b/arch/arm/boot/dts/dra72-evm-common.dtsi
@@ -18,7 +18,7 @@
18 display0 = &hdmi0; 18 display0 = &hdmi0;
19 }; 19 };
20 20
21 evm_3v3: fixedregulator-evm_3v3 { 21 evm_3v3_sw: fixedregulator-evm_3v3 {
22 compatible = "regulator-fixed"; 22 compatible = "regulator-fixed";
23 regulator-name = "evm_3v3"; 23 regulator-name = "evm_3v3";
24 regulator-min-microvolt = <3300000>; 24 regulator-min-microvolt = <3300000>;
@@ -29,7 +29,7 @@
29 /* TPS77018DBVT */ 29 /* TPS77018DBVT */
30 compatible = "regulator-fixed"; 30 compatible = "regulator-fixed";
31 regulator-name = "aic_dvdd"; 31 regulator-name = "aic_dvdd";
32 vin-supply = <&evm_3v3>; 32 vin-supply = <&evm_3v3_sw>;
33 regulator-min-microvolt = <1800000>; 33 regulator-min-microvolt = <1800000>;
34 regulator-max-microvolt = <1800000>; 34 regulator-max-microvolt = <1800000>;
35 }; 35 };
@@ -414,9 +414,9 @@
414 status = "okay"; 414 status = "okay";
415 415
416 /* Regulators */ 416 /* Regulators */
417 AVDD-supply = <&evm_3v3>; 417 AVDD-supply = <&evm_3v3_sw>;
418 IOVDD-supply = <&evm_3v3>; 418 IOVDD-supply = <&evm_3v3_sw>;
419 DRVDD-supply = <&evm_3v3>; 419 DRVDD-supply = <&evm_3v3_sw>;
420 DVDD-supply = <&aic_dvdd>; 420 DVDD-supply = <&aic_dvdd>;
421 }; 421 };
422}; 422};
@@ -597,7 +597,7 @@
597 pinctrl-names = "default"; 597 pinctrl-names = "default";
598 pinctrl-0 = <&mmc2_pins_default>; 598 pinctrl-0 = <&mmc2_pins_default>;
599 599
600 vmmc-supply = <&evm_3v3>; 600 vmmc-supply = <&evm_3v3_sw>;
601 bus-width = <8>; 601 bus-width = <8>;
602 ti,non-removable; 602 ti,non-removable;
603 max-frequency = <192000000>; 603 max-frequency = <192000000>;
diff --git a/arch/arm/boot/dts/dra72x.dtsi b/arch/arm/boot/dts/dra72x.dtsi
index 70a217050a4c..67107605fb4c 100644
--- a/arch/arm/boot/dts/dra72x.dtsi
+++ b/arch/arm/boot/dts/dra72x.dtsi
@@ -12,22 +12,6 @@
12/ { 12/ {
13 compatible = "ti,dra722", "ti,dra72", "ti,dra7"; 13 compatible = "ti,dra722", "ti,dra72", "ti,dra7";
14 14
15 cpus {
16 #address-cells = <1>;
17 #size-cells = <0>;
18
19 cpu0: cpu@0 {
20 device_type = "cpu";
21 compatible = "arm,cortex-a15";
22 reg = <0>;
23
24 /* cooling options */
25 cooling-min-level = <0>;
26 cooling-max-level = <2>;
27 #cooling-cells = <2>; /* min followed by max */
28 };
29 };
30
31 pmu { 15 pmu {
32 compatible = "arm,cortex-a15-pmu"; 16 compatible = "arm,cortex-a15-pmu";
33 interrupt-parent = <&wakeupgen>; 17 interrupt-parent = <&wakeupgen>;
diff --git a/arch/arm/boot/dts/dra74x.dtsi b/arch/arm/boot/dts/dra74x.dtsi
index 5e06020f450b..8987b3e180a1 100644
--- a/arch/arm/boot/dts/dra74x.dtsi
+++ b/arch/arm/boot/dts/dra74x.dtsi
@@ -13,34 +13,11 @@
13 compatible = "ti,dra742", "ti,dra74", "ti,dra7"; 13 compatible = "ti,dra742", "ti,dra74", "ti,dra7";
14 14
15 cpus { 15 cpus {
16 #address-cells = <1>;
17 #size-cells = <0>;
18
19 cpu0: cpu@0 {
20 device_type = "cpu";
21 compatible = "arm,cortex-a15";
22 reg = <0>;
23
24 operating-points = <
25 /* kHz uV */
26 1000000 1060000
27 1176000 1160000
28 >;
29
30 clocks = <&dpll_mpu_ck>;
31 clock-names = "cpu";
32
33 clock-latency = <300000>; /* From omap-cpufreq driver */
34
35 /* cooling options */
36 cooling-min-level = <0>;
37 cooling-max-level = <2>;
38 #cooling-cells = <2>; /* min followed by max */
39 };
40 cpu@1 { 16 cpu@1 {
41 device_type = "cpu"; 17 device_type = "cpu";
42 compatible = "arm,cortex-a15"; 18 compatible = "arm,cortex-a15";
43 reg = <1>; 19 reg = <1>;
20 operating-points-v2 = <&cpu0_opp_table>;
44 }; 21 };
45 }; 22 };
46 23
diff --git a/arch/arm/boot/dts/emev2-kzm9d.dts b/arch/arm/boot/dts/emev2-kzm9d.dts
index a35b851e1cd7..60d0a732833a 100644
--- a/arch/arm/boot/dts/emev2-kzm9d.dts
+++ b/arch/arm/boot/dts/emev2-kzm9d.dts
@@ -18,14 +18,18 @@
18 model = "EMEV2 KZM9D Board"; 18 model = "EMEV2 KZM9D Board";
19 compatible = "renesas,kzm9d", "renesas,emev2"; 19 compatible = "renesas,kzm9d", "renesas,emev2";
20 20
21 memory { 21 memory@40000000 {
22 device_type = "memory"; 22 device_type = "memory";
23 reg = <0x40000000 0x8000000>; 23 reg = <0x40000000 0x8000000>;
24 }; 24 };
25 25
26 aliases {
27 serial1 = &uart1;
28 };
29
26 chosen { 30 chosen {
27 bootargs = "console=ttyS1,115200n81 ignore_loglevel root=/dev/nfs ip=dhcp"; 31 bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp";
28 stdout-path = &uart1; 32 stdout-path = "serial1:115200n8";
29 }; 33 };
30 34
31 gpio_keys { 35 gpio_keys {
@@ -33,28 +37,28 @@
33 #address-cells = <1>; 37 #address-cells = <1>;
34 #size-cells = <0>; 38 #size-cells = <0>;
35 39
36 button@1 { 40 one {
37 debounce_interval = <50>; 41 debounce_interval = <50>;
38 wakeup-source; 42 wakeup-source;
39 label = "DSW2-1"; 43 label = "DSW2-1";
40 linux,code = <KEY_1>; 44 linux,code = <KEY_1>;
41 gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>; 45 gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
42 }; 46 };
43 button@2 { 47 two {
44 debounce_interval = <50>; 48 debounce_interval = <50>;
45 wakeup-source; 49 wakeup-source;
46 label = "DSW2-2"; 50 label = "DSW2-2";
47 linux,code = <KEY_2>; 51 linux,code = <KEY_2>;
48 gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; 52 gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
49 }; 53 };
50 button@3 { 54 three {
51 debounce_interval = <50>; 55 debounce_interval = <50>;
52 wakeup-source; 56 wakeup-source;
53 label = "DSW2-3"; 57 label = "DSW2-3";
54 linux,code = <KEY_3>; 58 linux,code = <KEY_3>;
55 gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; 59 gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
56 }; 60 };
57 button@4 { 61 four {
58 debounce_interval = <50>; 62 debounce_interval = <50>;
59 wakeup-source; 63 wakeup-source;
60 label = "DSW2-4"; 64 label = "DSW2-4";
@@ -63,7 +67,7 @@
63 }; 67 };
64 }; 68 };
65 69
66 reg_1p8v: regulator@0 { 70 reg_1p8v: regulator-1p8v {
67 compatible = "regulator-fixed"; 71 compatible = "regulator-fixed";
68 regulator-name = "fixed-1.8V"; 72 regulator-name = "fixed-1.8V";
69 regulator-min-microvolt = <1800000>; 73 regulator-min-microvolt = <1800000>;
@@ -72,7 +76,7 @@
72 regulator-boot-on; 76 regulator-boot-on;
73 }; 77 };
74 78
75 reg_3p3v: regulator@1 { 79 reg_3p3v: regulator-3p3v {
76 compatible = "regulator-fixed"; 80 compatible = "regulator-fixed";
77 regulator-name = "fixed-3.3V"; 81 regulator-name = "fixed-3.3V";
78 regulator-min-microvolt = <3300000>; 82 regulator-min-microvolt = <3300000>;
@@ -104,7 +108,7 @@
104}; 108};
105 109
106&pfc { 110&pfc {
107 uart1_pins: serial@e1030000 { 111 uart1_pins: uart1 {
108 groups = "uart1_ctrl", "uart1_data"; 112 groups = "uart1_ctrl", "uart1_data";
109 function = "uart1"; 113 function = "uart1";
110 }; 114 };
diff --git a/arch/arm/boot/dts/emev2.dtsi b/arch/arm/boot/dts/emev2.dtsi
index bcce6f50c93d..cd119400f440 100644
--- a/arch/arm/boot/dts/emev2.dtsi
+++ b/arch/arm/boot/dts/emev2.dtsi
@@ -69,25 +69,25 @@
69 clock-frequency = <32768>; 69 clock-frequency = <32768>;
70 #clock-cells = <0>; 70 #clock-cells = <0>;
71 }; 71 };
72 iic0_sclkdiv: iic0_sclkdiv { 72 iic0_sclkdiv: iic0_sclkdiv@624,0 {
73 compatible = "renesas,emev2-smu-clkdiv"; 73 compatible = "renesas,emev2-smu-clkdiv";
74 reg = <0x624 0>; 74 reg = <0x624 0>;
75 clocks = <&pll3_fo>; 75 clocks = <&pll3_fo>;
76 #clock-cells = <0>; 76 #clock-cells = <0>;
77 }; 77 };
78 iic0_sclk: iic0_sclk { 78 iic0_sclk: iic0_sclk@48c,1 {
79 compatible = "renesas,emev2-smu-gclk"; 79 compatible = "renesas,emev2-smu-gclk";
80 reg = <0x48c 1>; 80 reg = <0x48c 1>;
81 clocks = <&iic0_sclkdiv>; 81 clocks = <&iic0_sclkdiv>;
82 #clock-cells = <0>; 82 #clock-cells = <0>;
83 }; 83 };
84 iic1_sclkdiv: iic1_sclkdiv { 84 iic1_sclkdiv: iic1_sclkdiv@624,16 {
85 compatible = "renesas,emev2-smu-clkdiv"; 85 compatible = "renesas,emev2-smu-clkdiv";
86 reg = <0x624 16>; 86 reg = <0x624 16>;
87 clocks = <&pll3_fo>; 87 clocks = <&pll3_fo>;
88 #clock-cells = <0>; 88 #clock-cells = <0>;
89 }; 89 };
90 iic1_sclk: iic1_sclk { 90 iic1_sclk: iic1_sclk@490,1 {
91 compatible = "renesas,emev2-smu-gclk"; 91 compatible = "renesas,emev2-smu-gclk";
92 reg = <0x490 1>; 92 reg = <0x490 1>;
93 clocks = <&iic1_sclkdiv>; 93 clocks = <&iic1_sclkdiv>;
@@ -100,55 +100,55 @@
100 clock-mult = <7000>; 100 clock-mult = <7000>;
101 #clock-cells = <0>; 101 #clock-cells = <0>;
102 }; 102 };
103 usia_u0_sclkdiv: usia_u0_sclkdiv { 103 usia_u0_sclkdiv: usia_u0_sclkdiv@610,0 {
104 compatible = "renesas,emev2-smu-clkdiv"; 104 compatible = "renesas,emev2-smu-clkdiv";
105 reg = <0x610 0>; 105 reg = <0x610 0>;
106 clocks = <&pll3_fo>; 106 clocks = <&pll3_fo>;
107 #clock-cells = <0>; 107 #clock-cells = <0>;
108 }; 108 };
109 usib_u1_sclkdiv: usib_u1_sclkdiv { 109 usib_u1_sclkdiv: usib_u1_sclkdiv@65c,0 {
110 compatible = "renesas,emev2-smu-clkdiv"; 110 compatible = "renesas,emev2-smu-clkdiv";
111 reg = <0x65c 0>; 111 reg = <0x65c 0>;
112 clocks = <&pll3_fo>; 112 clocks = <&pll3_fo>;
113 #clock-cells = <0>; 113 #clock-cells = <0>;
114 }; 114 };
115 usib_u2_sclkdiv: usib_u2_sclkdiv { 115 usib_u2_sclkdiv: usib_u2_sclkdiv@65c,16 {
116 compatible = "renesas,emev2-smu-clkdiv"; 116 compatible = "renesas,emev2-smu-clkdiv";
117 reg = <0x65c 16>; 117 reg = <0x65c 16>;
118 clocks = <&pll3_fo>; 118 clocks = <&pll3_fo>;
119 #clock-cells = <0>; 119 #clock-cells = <0>;
120 }; 120 };
121 usib_u3_sclkdiv: usib_u3_sclkdiv { 121 usib_u3_sclkdiv: usib_u3_sclkdiv@660,0 {
122 compatible = "renesas,emev2-smu-clkdiv"; 122 compatible = "renesas,emev2-smu-clkdiv";
123 reg = <0x660 0>; 123 reg = <0x660 0>;
124 clocks = <&pll3_fo>; 124 clocks = <&pll3_fo>;
125 #clock-cells = <0>; 125 #clock-cells = <0>;
126 }; 126 };
127 usia_u0_sclk: usia_u0_sclk { 127 usia_u0_sclk: usia_u0_sclk@4a0,1 {
128 compatible = "renesas,emev2-smu-gclk"; 128 compatible = "renesas,emev2-smu-gclk";
129 reg = <0x4a0 1>; 129 reg = <0x4a0 1>;
130 clocks = <&usia_u0_sclkdiv>; 130 clocks = <&usia_u0_sclkdiv>;
131 #clock-cells = <0>; 131 #clock-cells = <0>;
132 }; 132 };
133 usib_u1_sclk: usib_u1_sclk { 133 usib_u1_sclk: usib_u1_sclk@4b8,1 {
134 compatible = "renesas,emev2-smu-gclk"; 134 compatible = "renesas,emev2-smu-gclk";
135 reg = <0x4b8 1>; 135 reg = <0x4b8 1>;
136 clocks = <&usib_u1_sclkdiv>; 136 clocks = <&usib_u1_sclkdiv>;
137 #clock-cells = <0>; 137 #clock-cells = <0>;
138 }; 138 };
139 usib_u2_sclk: usib_u2_sclk { 139 usib_u2_sclk: usib_u2_sclk@4bc,1 {
140 compatible = "renesas,emev2-smu-gclk"; 140 compatible = "renesas,emev2-smu-gclk";
141 reg = <0x4bc 1>; 141 reg = <0x4bc 1>;
142 clocks = <&usib_u2_sclkdiv>; 142 clocks = <&usib_u2_sclkdiv>;
143 #clock-cells = <0>; 143 #clock-cells = <0>;
144 }; 144 };
145 usib_u3_sclk: usib_u3_sclk { 145 usib_u3_sclk: usib_u3_sclk@4c0,1 {
146 compatible = "renesas,emev2-smu-gclk"; 146 compatible = "renesas,emev2-smu-gclk";
147 reg = <0x4c0 1>; 147 reg = <0x4c0 1>;
148 clocks = <&usib_u3_sclkdiv>; 148 clocks = <&usib_u3_sclkdiv>;
149 #clock-cells = <0>; 149 #clock-cells = <0>;
150 }; 150 };
151 sti_sclk: sti_sclk { 151 sti_sclk: sti_sclk@528,1 {
152 compatible = "renesas,emev2-smu-gclk"; 152 compatible = "renesas,emev2-smu-gclk";
153 reg = <0x528 1>; 153 reg = <0x528 1>;
154 clocks = <&c32ki>; 154 clocks = <&c32ki>;
diff --git a/arch/arm/boot/dts/ep7209.dtsi b/arch/arm/boot/dts/ep7209.dtsi
new file mode 100644
index 000000000000..aaf1261d2ee4
--- /dev/null
+++ b/arch/arm/boot/dts/ep7209.dtsi
@@ -0,0 +1,191 @@
1/*
2 * The code contained herein is licensed under the GNU General Public
3 * License. You may obtain a copy of the GNU General Public License
4 * Version 2 or later at the following locations:
5 */
6
7/dts-v1/;
8
9#include "skeleton.dtsi"
10
11#include <dt-bindings/clock/clps711x-clock.h>
12
13/ {
14 model = "Cirrus Logic EP7209";
15 compatible = "cirrus,ep7209";
16
17 aliases {
18 gpio0 = &porta;
19 gpio1 = &portb;
20 gpio3 = &portd;
21 gpio4 = &porte;
22 serial0 = &uart1;
23 serial1 = &uart2;
24 spi0 = &spi;
25 timer0 = &timer1;
26 timer1 = &timer2;
27 };
28
29 cpus {
30 #address-cells = <0>;
31 #size-cells = <0>;
32
33 cpu {
34 device_type = "cpu";
35 compatible = "arm,arm720t";
36 };
37 };
38
39 soc {
40 #address-cells = <1>;
41 #size-cells = <1>;
42 compatible = "simple-bus";
43 interrupt-parent = <&intc>;
44 ranges;
45
46 clks: clks@80000000 {
47 #clock-cells = <1>;
48 compatible = "cirrus,ep7209-clk";
49 reg = <0x80000000 0xc000>;
50 startup-frequency = <73728000>;
51 };
52
53 intc: intc@80000000 {
54 compatible = "cirrus,ep7209-intc";
55 reg = <0x80000000 0x4000>;
56 interrupt-controller;
57 #interrupt-cells = <1>;
58 };
59
60 porta: gpio@80000000 {
61 compatible = "cirrus,ep7209-gpio";
62 reg = <0x80000000 0x1 0x80000040 0x1>;
63 gpio-controller;
64 #gpio-cells = <2>;
65 };
66
67 portb: gpio@80000001 {
68 compatible = "cirrus,ep7209-gpio";
69 reg = <0x80000001 0x1 0x80000041 0x1>;
70 gpio-controller;
71 #gpio-cells = <2>;
72 };
73
74 portd: gpio@80000003 {
75 compatible = "cirrus,ep7209-gpio";
76 reg = <0x80000003 0x1 0x80000043 0x1>;
77 gpio-controller;
78 #gpio-cells = <2>;
79 };
80
81 porte: gpio@80000083 {
82 compatible = "cirrus,ep7209-gpio";
83 reg = <0x80000083 0x1 0x800000c3 0x1>;
84 gpio-controller;
85 #gpio-cells = <2>;
86 };
87
88 syscon1: syscon@80000100 {
89 compatible = "cirrus,ep7209-syscon1", "syscon";
90 reg = <0x80000100 0x80>;
91 };
92
93 bus: bus@80000180 {
94 #address-cells = <2>;
95 #size-cells = <1>;
96 compatible = "cirrus,ep7209-bus", "simple-bus";
97 clocks = <&clks CLPS711X_CLK_BUS>;
98 reg = <0x80000180 0x80>;
99 ranges = <
100 0 0 0x00000000 0x10000000
101 1 0 0x10000000 0x10000000
102 2 0 0x20000000 0x10000000
103 3 0 0x30000000 0x10000000
104 4 0 0x40000000 0x10000000
105 5 0 0x50000000 0x10000000
106 6 0 0x60000000 0x0000c000
107 7 0 0x70000000 0x00000080
108 >;
109 };
110
111 fb: fb@800002c0 {
112 compatible = "cirrus,ep7209-fb";
113 reg = <0x800002c0 0xd44>, <0x60000000 0xc000>;
114 clocks = <&clks CLPS711X_CLK_BUS>;
115 status = "disabled";
116 };
117
118 timer1: timer@80000300 {
119 compatible = "cirrus,ep7209-timer";
120 reg = <0x80000300 0x4>;
121 clocks = <&clks CLPS711X_CLK_TIMER1>;
122 interrupts = <8>;
123 };
124
125 timer2: timer@80000340 {
126 compatible = "cirrus,ep7209-timer";
127 reg = <0x80000340 0x4>;
128 clocks = <&clks CLPS711X_CLK_TIMER2>;
129 interrupts = <9>;
130 };
131
132 pwm: pwm@80000400 {
133 compatible = "cirrus,ep7209-pwm";
134 reg = <0x80000400 0x4>;
135 clocks = <&clks CLPS711X_CLK_PWM>;
136 #pwm-cells = <1>;
137 };
138
139 uart1: uart@80000480 {
140 compatible = "cirrus,ep7209-uart";
141 reg = <0x80000480 0x80>;
142 interrupts = <12 13>;
143 clocks = <&clks CLPS711X_CLK_UART>;
144 syscon = <&syscon1>;
145 };
146
147 spi: spi@80000500 {
148 #address-cells = <1>;
149 #size-cells = <0>;
150 compatible = "cirrus,ep7209-spi";
151 reg = <0x80000500 0x4>;
152 interrupts = <15>;
153 clocks = <&clks CLPS711X_CLK_SPI>;
154 status = "disabled";
155 };
156
157 syscon2: syscon@80001100 {
158 compatible = "cirrus,ep7209-syscon2", "syscon";
159 reg = <0x80001100 0x80>;
160 };
161
162 uart2: uart@80001480 {
163 compatible = "cirrus,ep7209-uart";
164 reg = <0x80001480 0x80>;
165 interrupts = <28 29>;
166 clocks = <&clks CLPS711X_CLK_UART>;
167 syscon = <&syscon2>;
168 };
169
170 dai: dai@80002000 {
171 #sound-dai-cells = <0>;
172 compatible = "cirrus,ep7209-dai";
173 reg = <0x80002000 0x604>;
174 clocks = <&clks CLPS711X_CLK_PLL>;
175 clock-names = "pll";
176 interrupts = <32>;
177 status = "disabled";
178 };
179
180 syscon3: syscon@80002200 {
181 compatible = "cirrus,ep7209-syscon3", "syscon";
182 reg = <0x80002200 0x40>;
183 };
184 };
185
186 mctrl: mctrl {
187 compatible = "cirrus,ep7209-mctrl-gpio";
188 gpio-controller;
189 #gpio-cells = <2>;
190 };
191};
diff --git a/arch/arm/boot/dts/ep7211-edb7211.dts b/arch/arm/boot/dts/ep7211-edb7211.dts
new file mode 100644
index 000000000000..9a134ed271eb
--- /dev/null
+++ b/arch/arm/boot/dts/ep7211-edb7211.dts
@@ -0,0 +1,100 @@
1/*
2 * The code contained herein is licensed under the GNU General Public
3 * License. You may obtain a copy of the GNU General Public License
4 * Version 2 or later at the following locations:
5 */
6
7#include "ep7211.dtsi"
8#include <dt-bindings/gpio/gpio.h>
9
10/ {
11 model = "Cirrus Logic EP7211 Development Board";
12 compatible = "cirrus,edb7211", "cirrus,ep7211", "cirrus,ep7209";
13
14 memory {
15 reg = <0xc0000000 0x02000000>;
16 };
17
18 backlight: backlight {
19 compatible = "pwm-backlight";
20 pwms = <&pwm 0>;
21 brightness-levels = <
22 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7
23 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf
24 >;
25 default-brightness-level = <0x0>;
26 power-supply = <&blen>;
27 };
28
29 display: display {
30 model = "320x240x4";
31 native-mode = <&timing0>;
32 bits-per-pixel = <4>;
33 ac-prescale = <17>;
34
35 display-timings {
36 timing0: 320x240 {
37 hactive = <320>;
38 hback-porch = <0>;
39 hfront-porch = <0>;
40 hsync-len = <0>;
41 vactive = <240>;
42 vback-porch = <0>;
43 vfront-porch = <0>;
44 vsync-len = <0>;
45 clock-frequency = <6500000>;
46 };
47 };
48 };
49
50 i2c: i2c {
51 compatible = "i2c-gpio";
52 gpios = <&portd 4 GPIO_ACTIVE_HIGH>,
53 <&portd 5 GPIO_ACTIVE_HIGH>;
54 i2c-gpio,delay-us = <2>;
55 i2c-gpio,scl-output-only;
56 #address-cells = <1>;
57 #size-cells = <0>;
58 };
59
60 lcddc: lcddc {
61 compatible = "regulator-fixed";
62 regulator-name = "BACKLIGHT ENABLE";
63 regulator-min-microvolt = <3300000>;
64 regulator-max-microvolt = <3300000>;
65 gpio = <&portd 1 GPIO_ACTIVE_HIGH>;
66 };
67
68 blen: blen {
69 compatible = "regulator-fixed";
70 regulator-name = "BACKLIGHT ENABLE";
71 regulator-min-microvolt = <3300000>;
72 regulator-max-microvolt = <3300000>;
73 gpio = <&portd 3 GPIO_ACTIVE_HIGH>;
74 };
75};
76
77&bus {
78 flash: nor@00000000 {
79 compatible = "cfi-flash";
80 reg = <0 0x00000000 0x02000000>;
81 bank-width = <2>;
82 #address-cells = <1>;
83 #size-cells = <1>;
84 };
85};
86
87&fb {
88 display = <&display>;
89 lcd-supply = <&lcddc>;
90 status = "okay";
91};
92
93&portd {
94 lcden {
95 gpio-hog;
96 gpios = <2 GPIO_ACTIVE_HIGH>;
97 output-high;
98 line-name = "LCD ENABLE";
99 };
100};
diff --git a/arch/arm/boot/dts/ep7211.dtsi b/arch/arm/boot/dts/ep7211.dtsi
new file mode 100644
index 000000000000..e438f6db0673
--- /dev/null
+++ b/arch/arm/boot/dts/ep7211.dtsi
@@ -0,0 +1,12 @@
1/*
2 * The code contained herein is licensed under the GNU General Public
3 * License. You may obtain a copy of the GNU General Public License
4 * Version 2 or later at the following locations:
5 */
6
7#include "ep7209.dtsi"
8
9/ {
10 model = "Cirrus Logic EP7211";
11 compatible = "cirrus,ep7211", "cirrus,ep7209";
12};
diff --git a/arch/arm/boot/dts/ethernut5.dts b/arch/arm/boot/dts/ethernut5.dts
index 243044343ee8..4687229a3ab9 100644
--- a/arch/arm/boot/dts/ethernut5.dts
+++ b/arch/arm/boot/dts/ethernut5.dts
@@ -77,13 +77,13 @@
77 }; 77 };
78 }; 78 };
79 79
80 usb0: ohci@00500000 { 80 usb0: ohci@500000 {
81 num-ports = <2>; 81 num-ports = <2>;
82 status = "okay"; 82 status = "okay";
83 }; 83 };
84 }; 84 };
85 85
86 i2c@0 { 86 i2c-gpio-0 {
87 status = "okay"; 87 status = "okay";
88 88
89 pcf8563@50 { 89 pcf8563@50 {
diff --git a/arch/arm/boot/dts/evk-pro3.dts b/arch/arm/boot/dts/evk-pro3.dts
index f72969efe6d7..20a4481b6e12 100644
--- a/arch/arm/boot/dts/evk-pro3.dts
+++ b/arch/arm/boot/dts/evk-pro3.dts
@@ -46,13 +46,13 @@
46 }; 46 };
47 }; 47 };
48 48
49 usb0: ohci@00500000 { 49 usb0: ohci@500000 {
50 num-ports = <2>; 50 num-ports = <2>;
51 status = "okay"; 51 status = "okay";
52 }; 52 };
53 }; 53 };
54 54
55 i2c@0 { 55 i2c-gpio-0 {
56 status = "okay"; 56 status = "okay";
57 }; 57 };
58 58
diff --git a/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi b/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi
index c4d063ae6b74..f78c14c82e17 100644
--- a/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi
+++ b/arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi
@@ -14,16 +14,22 @@
14 #size-cells = <1>; 14 #size-cells = <1>;
15 ranges; 15 ranges;
16 16
17 mfc_left: region@51000000 { 17 mfc_left: region_mfc_left {
18 compatible = "shared-dma-pool"; 18 compatible = "shared-dma-pool";
19 no-map; 19 no-map;
20 reg = <0x51000000 0x800000>; 20 size = <0x1000000>;
21 alignment = <0x100000>;
21 }; 22 };
22 23
23 mfc_right: region@43000000 { 24 mfc_right: region_mfc_right {
24 compatible = "shared-dma-pool"; 25 compatible = "shared-dma-pool";
25 no-map; 26 no-map;
26 reg = <0x43000000 0x800000>; 27 size = <0x800000>;
28 alignment = <0x100000>;
27 }; 29 };
28 }; 30 };
29}; 31};
32
33&mfc {
34 memory-region = <&mfc_left>, <&mfc_right>;
35};
diff --git a/arch/arm/boot/dts/exynos3250-rinato.dts b/arch/arm/boot/dts/exynos3250-rinato.dts
index e422819591dc..a92181368e5b 100644
--- a/arch/arm/boot/dts/exynos3250-rinato.dts
+++ b/arch/arm/boot/dts/exynos3250-rinato.dts
@@ -632,10 +632,6 @@
632 status = "okay"; 632 status = "okay";
633}; 633};
634 634
635&mfc {
636 status = "okay";
637};
638
639&jpeg { 635&jpeg {
640 status = "okay"; 636 status = "okay";
641}; 637};
diff --git a/arch/arm/boot/dts/exynos3250.dtsi b/arch/arm/boot/dts/exynos3250.dtsi
index 62f3dcd9e046..70e3aceab3a9 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -431,7 +431,6 @@
431 clocks = <&cmu CLK_MFC>, <&cmu CLK_SCLK_MFC>; 431 clocks = <&cmu CLK_MFC>, <&cmu CLK_SCLK_MFC>;
432 power-domains = <&pd_mfc>; 432 power-domains = <&pd_mfc>;
433 iommus = <&sysmmu_mfc>; 433 iommus = <&sysmmu_mfc>;
434 status = "disabled";
435 }; 434 };
436 435
437 sysmmu_mfc: sysmmu@13620000 { 436 sysmmu_mfc: sysmmu@13620000 {
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index ca8f3e3cf2f3..32f22e12c70b 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -428,7 +428,6 @@
428 clock-names = "mfc", "sclk_mfc"; 428 clock-names = "mfc", "sclk_mfc";
429 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>; 429 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
430 iommu-names = "left", "right"; 430 iommu-names = "left", "right";
431 status = "disabled";
432 }; 431 };
433 432
434 serial_0: serial@13800000 { 433 serial_0: serial@13800000 {
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
index f5e4eb23aa21..be2751eebaf8 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -288,11 +288,6 @@
288 }; 288 };
289}; 289};
290 290
291&mfc {
292 memory-region = <&mfc_left>, <&mfc_right>;
293 status = "okay";
294};
295
296&sdhci_0 { 291&sdhci_0 {
297 bus-width = <4>; 292 bus-width = <4>;
298 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>; 293 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
diff --git a/arch/arm/boot/dts/exynos4210-smdkv310.dts b/arch/arm/boot/dts/exynos4210-smdkv310.dts
index de917f0d907d..847fae3dd1f1 100644
--- a/arch/arm/boot/dts/exynos4210-smdkv310.dts
+++ b/arch/arm/boot/dts/exynos4210-smdkv310.dts
@@ -133,11 +133,6 @@
133 }; 133 };
134}; 134};
135 135
136&mfc {
137 memory-region = <&mfc_left>, <&mfc_right>;
138 status = "okay";
139};
140
141&pinctrl_1 { 136&pinctrl_1 {
142 keypad_rows: keypad-rows { 137 keypad_rows: keypad-rows {
143 samsung,pins = "gpx2-0", "gpx2-1"; 138 samsung,pins = "gpx2-0", "gpx2-1";
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index 276ac9a7bb82..58ad48e7b8f7 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -298,7 +298,6 @@
298 regulator-name = "VDDQ_MMC2_2.8V"; 298 regulator-name = "VDDQ_MMC2_2.8V";
299 regulator-min-microvolt = <2800000>; 299 regulator-min-microvolt = <2800000>;
300 regulator-max-microvolt = <2800000>; 300 regulator-max-microvolt = <2800000>;
301 regulator-always-on;
302 regulator-boot-on; 301 regulator-boot-on;
303 }; 302 };
304 303
@@ -391,10 +390,18 @@
391 }; 390 };
392 391
393 ldo21_reg: LDO21 { 392 ldo21_reg: LDO21 {
394 regulator-name = "LDO21_3.3V"; 393 regulator-name = "TFLASH_2.8V";
395 regulator-min-microvolt = <3300000>; 394 regulator-min-microvolt = <2800000>;
396 regulator-max-microvolt = <3300000>; 395 regulator-max-microvolt = <2800000>;
397 regulator-always-on; 396 regulator-boot-on;
397 };
398
399 ldo22_reg: LDO22 {
400 /*
401 * Only U3 uses it, so let it define the
402 * constraints
403 */
404 regulator-name = "LDO22";
398 regulator-boot-on; 405 regulator-boot-on;
399 }; 406 };
400 407
@@ -461,9 +468,11 @@
461 }; 468 };
462 469
463 buck8_reg: BUCK8 { 470 buck8_reg: BUCK8 {
471 /*
472 * Constraints set by specific board: X,
473 * X2 and U3.
474 */
464 regulator-name = "BUCK8_2.8V"; 475 regulator-name = "BUCK8_2.8V";
465 regulator-min-microvolt = <2800000>;
466 regulator-max-microvolt = <2800000>;
467 }; 476 };
468 }; 477 };
469 }; 478 };
@@ -500,11 +509,6 @@
500 clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; 509 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
501}; 510};
502 511
503&mfc {
504 memory-region = <&mfc_left>, <&mfc_right>;
505 status = "okay";
506};
507
508&mixer { 512&mixer {
509 status = "okay"; 513 status = "okay";
510}; 514};
@@ -512,7 +516,7 @@
512&mshc_0 { 516&mshc_0 {
513 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 517 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
514 pinctrl-names = "default"; 518 pinctrl-names = "default";
515 vmmc-supply = <&ldo20_reg &buck8_reg>; 519 vmmc-supply = <&ldo20_reg>;
516 mmc-pwrseq = <&emmc_pwrseq>; 520 mmc-pwrseq = <&emmc_pwrseq>;
517 status = "okay"; 521 status = "okay";
518 522
@@ -536,7 +540,8 @@
536 bus-width = <4>; 540 bus-width = <4>;
537 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 541 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
538 pinctrl-names = "default"; 542 pinctrl-names = "default";
539 vmmc-supply = <&ldo4_reg &ldo21_reg>; 543 vmmc-supply = <&ldo21_reg>;
544 vqmmc-supply = <&ldo4_reg>;
540 cd-gpios = <&gpk2 2 GPIO_ACTIVE_HIGH>; 545 cd-gpios = <&gpk2 2 GPIO_ACTIVE_HIGH>;
541 cd-inverted; 546 cd-inverted;
542 status = "okay"; 547 status = "okay";
diff --git a/arch/arm/boot/dts/exynos4412-odroidu3.dts b/arch/arm/boot/dts/exynos4412-odroidu3.dts
index dd89f7b37c9f..d73aa6c58fe3 100644
--- a/arch/arm/boot/dts/exynos4412-odroidu3.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidu3.dts
@@ -69,6 +69,24 @@
69 }; 69 };
70}; 70};
71 71
72/* Supply for LAN9730/SMSC95xx */
73&buck8_reg {
74 regulator-name = "BUCK8_P3V3";
75 regulator-min-microvolt = <3300000>;
76 regulator-max-microvolt = <3300000>;
77};
78
79/* VDDQ for MSHC (eMMC card) */
80&ldo22_reg {
81 regulator-name = "LDO22_VDDQ_MMC4_2.8V";
82 regulator-min-microvolt = <2800000>;
83 regulator-max-microvolt = <2800000>;
84};
85
86&mshc_0 {
87 vqmmc-supply = <&ldo22_reg>;
88};
89
72&pwm { 90&pwm {
73 pinctrl-0 = <&pwm0_out>; 91 pinctrl-0 = <&pwm0_out>;
74 pinctrl-names = "default"; 92 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/exynos4412-odroidx.dts b/arch/arm/boot/dts/exynos4412-odroidx.dts
index bf7b21b817e4..2af235151301 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx.dts
@@ -63,12 +63,23 @@
63 }; 63 };
64}; 64};
65 65
66/* VDDQ for MSHC (eMMC card) */
67&buck8_reg {
68 regulator-name = "BUCK8_VDDQ_MMC4_2.8V";
69 regulator-min-microvolt = <2800000>;
70 regulator-max-microvolt = <2800000>;
71};
72
66&ehci { 73&ehci {
67 port@1 { 74 port@1 {
68 status = "okay"; 75 status = "okay";
69 }; 76 };
70}; 77};
71 78
79&mshc_0 {
80 vqmmc-supply = <&buck8_reg>;
81};
82
72&pinctrl_1 { 83&pinctrl_1 {
73 gpio_home_key: home_key { 84 gpio_home_key: home_key {
74 samsung,pins = "gpx2-2"; 85 samsung,pins = "gpx2-2";
diff --git a/arch/arm/boot/dts/exynos4412-odroidx2.dts b/arch/arm/boot/dts/exynos4412-odroidx2.dts
index 6e33678562ae..3e3584270e00 100644
--- a/arch/arm/boot/dts/exynos4412-odroidx2.dts
+++ b/arch/arm/boot/dts/exynos4412-odroidx2.dts
@@ -22,6 +22,17 @@
22 }; 22 };
23}; 23};
24 24
25/* VDDQ for MSHC (eMMC card) */
26&buck8_reg {
27 regulator-name = "BUCK8_VDDQ_MMC4_2.8V";
28 regulator-min-microvolt = <2800000>;
29 regulator-max-microvolt = <2800000>;
30};
31
32&mshc_0 {
33 vqmmc-supply = <&buck8_reg>;
34};
35
25&sound { 36&sound {
26 simple-audio-card,name = "Odroid-X2"; 37 simple-audio-card,name = "Odroid-X2";
27 simple-audio-card,widgets = 38 simple-audio-card,widgets =
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts b/arch/arm/boot/dts/exynos4412-origen.dts
index cd363d7e4e34..26a36fed9652 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -84,6 +84,22 @@
84 cpu0-supply = <&buck2_reg>; 84 cpu0-supply = <&buck2_reg>;
85}; 85};
86 86
87&exynos_usbphy {
88 status = "okay";
89};
90
91&ehci {
92 samsung,vbus-gpio = <&gpx3 5 1>;
93 status = "okay";
94
95 port@1{
96 status = "okay";
97 };
98 port@2 {
99 status = "okay";
100 };
101};
102
87&fimd { 103&fimd {
88 pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>; 104 pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
89 pinctrl-names = "default"; 105 pinctrl-names = "default";
@@ -466,11 +482,6 @@
466 }; 482 };
467}; 483};
468 484
469&mfc {
470 memory-region = <&mfc_left>, <&mfc_right>;
471 status = "okay";
472};
473
474&mshc_0 { 485&mshc_0 {
475 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 486 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>;
476 pinctrl-names = "default"; 487 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/exynos4412-smdk4412.dts b/arch/arm/boot/dts/exynos4412-smdk4412.dts
index 9b6d561dbdac..231ffbdbf9d0 100644
--- a/arch/arm/boot/dts/exynos4412-smdk4412.dts
+++ b/arch/arm/boot/dts/exynos4412-smdk4412.dts
@@ -112,11 +112,6 @@
112 }; 112 };
113}; 113};
114 114
115&mfc {
116 memory-region = <&mfc_left>, <&mfc_right>;
117 status = "okay";
118};
119
120&pinctrl_1 { 115&pinctrl_1 {
121 keypad_rows: keypad-rows { 116 keypad_rows: keypad-rows {
122 samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2"; 117 samsung,pins = "gpx2-0", "gpx2-1", "gpx2-2";
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 9336fd4824d9..129e973a06a6 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -253,7 +253,7 @@
253 }; 253 };
254 254
255 thermistor-ap { 255 thermistor-ap {
256 compatible = "ntc,ncp15wb473"; 256 compatible = "murata,ncp15wb473";
257 pullup-uv = <1800000>; /* VCC_1.8V_AP */ 257 pullup-uv = <1800000>; /* VCC_1.8V_AP */
258 pullup-ohm = <100000>; /* 100K */ 258 pullup-ohm = <100000>; /* 100K */
259 pulldown-ohm = <100000>; /* 100K */ 259 pulldown-ohm = <100000>; /* 100K */
@@ -261,7 +261,7 @@
261 }; 261 };
262 262
263 thermistor-battery { 263 thermistor-battery {
264 compatible = "ntc,ncp15wb473"; 264 compatible = "murata,ncp15wb473";
265 pullup-uv = <1800000>; /* VCC_1.8V_AP */ 265 pullup-uv = <1800000>; /* VCC_1.8V_AP */
266 pullup-ohm = <100000>; /* 100K */ 266 pullup-ohm = <100000>; /* 100K */
267 pulldown-ohm = <100000>; /* 100K */ 267 pulldown-ohm = <100000>; /* 100K */
diff --git a/arch/arm/boot/dts/exynos5.dtsi b/arch/arm/boot/dts/exynos5.dtsi
index d5c0f18a4223..cab91782e20c 100644
--- a/arch/arm/boot/dts/exynos5.dtsi
+++ b/arch/arm/boot/dts/exynos5.dtsi
@@ -20,97 +20,160 @@
20 interrupt-parent = <&gic>; 20 interrupt-parent = <&gic>;
21 21
22 aliases { 22 aliases {
23 i2c0 = &i2c_0;
24 i2c1 = &i2c_1;
25 i2c2 = &i2c_2;
26 i2c3 = &i2c_3;
23 serial0 = &serial_0; 27 serial0 = &serial_0;
24 serial1 = &serial_1; 28 serial1 = &serial_1;
25 serial2 = &serial_2; 29 serial2 = &serial_2;
26 serial3 = &serial_3; 30 serial3 = &serial_3;
27 }; 31 };
28 32
29 chipid@10000000 { 33 soc: soc {
30 compatible = "samsung,exynos4210-chipid"; 34 compatible = "simple-bus";
31 reg = <0x10000000 0x100>; 35 #address-cells = <1>;
32 }; 36 #size-cells = <1>;
37 ranges;
33 38
34 memory-controller@12250000 { 39 chipid@10000000 {
35 compatible = "samsung,exynos4210-srom"; 40 compatible = "samsung,exynos4210-chipid";
36 reg = <0x12250000 0x14>; 41 reg = <0x10000000 0x100>;
37 }; 42 };
38 43
39 combiner: interrupt-controller@10440000 { 44 sromc: memory-controller@12250000 {
40 compatible = "samsung,exynos4210-combiner"; 45 compatible = "samsung,exynos4210-srom";
41 #interrupt-cells = <2>; 46 reg = <0x12250000 0x14>;
42 interrupt-controller; 47 };
43 samsung,combiner-nr = <32>;
44 reg = <0x10440000 0x1000>;
45 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
46 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
47 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
48 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
49 <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>,
50 <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>,
51 <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>,
52 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>;
53 };
54 48
55 gic: interrupt-controller@10481000 { 49 combiner: interrupt-controller@10440000 {
56 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; 50 compatible = "samsung,exynos4210-combiner";
57 #interrupt-cells = <3>; 51 #interrupt-cells = <2>;
58 interrupt-controller; 52 interrupt-controller;
59 reg = <0x10481000 0x1000>, 53 samsung,combiner-nr = <32>;
60 <0x10482000 0x1000>, 54 reg = <0x10440000 0x1000>;
61 <0x10484000 0x2000>, 55 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
62 <0x10486000 0x2000>; 56 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
63 interrupts = <1 9 0xf04>; 57 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
64 }; 58 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
59 <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>,
60 <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>,
61 <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>,
62 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>;
63 };
65 64
66 serial_0: serial@12C00000 { 65 gic: interrupt-controller@10481000 {
67 compatible = "samsung,exynos4210-uart"; 66 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
68 reg = <0x12C00000 0x100>; 67 #interrupt-cells = <3>;
69 interrupts = <0 51 0>; 68 interrupt-controller;
70 }; 69 reg = <0x10481000 0x1000>,
70 <0x10482000 0x1000>,
71 <0x10484000 0x2000>,
72 <0x10486000 0x2000>;
73 interrupts = <1 9 0xf04>;
74 };
71 75
72 serial_1: serial@12C10000 { 76 sysreg_system_controller: syscon@10050000 {
73 compatible = "samsung,exynos4210-uart"; 77 compatible = "samsung,exynos5-sysreg", "syscon";
74 reg = <0x12C10000 0x100>; 78 reg = <0x10050000 0x5000>;
75 interrupts = <0 52 0>; 79 };
76 };
77 80
78 serial_2: serial@12C20000 { 81 serial_0: serial@12C00000 {
79 compatible = "samsung,exynos4210-uart"; 82 compatible = "samsung,exynos4210-uart";
80 reg = <0x12C20000 0x100>; 83 reg = <0x12C00000 0x100>;
81 interrupts = <0 53 0>; 84 interrupts = <0 51 0>;
82 }; 85 };
83 86
84 serial_3: serial@12C30000 { 87 serial_1: serial@12C10000 {
85 compatible = "samsung,exynos4210-uart"; 88 compatible = "samsung,exynos4210-uart";
86 reg = <0x12C30000 0x100>; 89 reg = <0x12C10000 0x100>;
87 interrupts = <0 54 0>; 90 interrupts = <0 52 0>;
88 }; 91 };
89 92
90 rtc: rtc@101E0000 { 93 serial_2: serial@12C20000 {
91 compatible = "samsung,s3c6410-rtc"; 94 compatible = "samsung,exynos4210-uart";
92 reg = <0x101E0000 0x100>; 95 reg = <0x12C20000 0x100>;
93 interrupts = <0 43 0>, <0 44 0>; 96 interrupts = <0 53 0>;
94 status = "disabled"; 97 };
95 };
96 98
97 fimd: fimd@14400000 { 99 serial_3: serial@12C30000 {
98 compatible = "samsung,exynos5250-fimd"; 100 compatible = "samsung,exynos4210-uart";
99 interrupt-parent = <&combiner>; 101 reg = <0x12C30000 0x100>;
100 reg = <0x14400000 0x40000>; 102 interrupts = <0 54 0>;
101 interrupt-names = "fifo", "vsync", "lcd_sys"; 103 };
102 interrupts = <18 4>, <18 5>, <18 6>;
103 samsung,sysreg = <&sysreg_system_controller>;
104 status = "disabled";
105 };
106 104
107 dp: dp-controller@145B0000 { 105 i2c_0: i2c@12C60000 {
108 compatible = "samsung,exynos5-dp"; 106 compatible = "samsung,s3c2440-i2c";
109 reg = <0x145B0000 0x1000>; 107 reg = <0x12C60000 0x100>;
110 interrupts = <10 3>; 108 interrupts = <0 56 0>;
111 interrupt-parent = <&combiner>; 109 #address-cells = <1>;
112 #address-cells = <1>; 110 #size-cells = <0>;
113 #size-cells = <0>; 111 samsung,sysreg-phandle = <&sysreg_system_controller>;
114 status = "disabled"; 112 status = "disabled";
113 };
114
115 i2c_1: i2c@12C70000 {
116 compatible = "samsung,s3c2440-i2c";
117 reg = <0x12C70000 0x100>;
118 interrupts = <0 57 0>;
119 #address-cells = <1>;
120 #size-cells = <0>;
121 samsung,sysreg-phandle = <&sysreg_system_controller>;
122 status = "disabled";
123 };
124
125 i2c_2: i2c@12C80000 {
126 compatible = "samsung,s3c2440-i2c";
127 reg = <0x12C80000 0x100>;
128 interrupts = <0 58 0>;
129 #address-cells = <1>;
130 #size-cells = <0>;
131 samsung,sysreg-phandle = <&sysreg_system_controller>;
132 status = "disabled";
133 };
134
135 i2c_3: i2c@12C90000 {
136 compatible = "samsung,s3c2440-i2c";
137 reg = <0x12C90000 0x100>;
138 interrupts = <0 59 0>;
139 #address-cells = <1>;
140 #size-cells = <0>;
141 samsung,sysreg-phandle = <&sysreg_system_controller>;
142 status = "disabled";
143 };
144
145 pwm: pwm@12DD0000 {
146 compatible = "samsung,exynos4210-pwm";
147 reg = <0x12DD0000 0x100>;
148 samsung,pwm-outputs = <0>, <1>, <2>, <3>;
149 #pwm-cells = <3>;
150 };
151
152 rtc: rtc@101E0000 {
153 compatible = "samsung,s3c6410-rtc";
154 reg = <0x101E0000 0x100>;
155 interrupts = <0 43 0>, <0 44 0>;
156 status = "disabled";
157 };
158
159 fimd: fimd@14400000 {
160 compatible = "samsung,exynos5250-fimd";
161 interrupt-parent = <&combiner>;
162 reg = <0x14400000 0x40000>;
163 interrupt-names = "fifo", "vsync", "lcd_sys";
164 interrupts = <18 4>, <18 5>, <18 6>;
165 samsung,sysreg = <&sysreg_system_controller>;
166 status = "disabled";
167 };
168
169 dp: dp-controller@145B0000 {
170 compatible = "samsung,exynos5-dp";
171 reg = <0x145B0000 0x1000>;
172 interrupts = <10 3>;
173 interrupt-parent = <&combiner>;
174 #address-cells = <1>;
175 #size-cells = <0>;
176 status = "disabled";
177 };
115 }; 178 };
116}; 179};
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
index 39940f4bd556..ea70603f660d 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -516,10 +516,6 @@
516 status = "okay"; 516 status = "okay";
517}; 517};
518 518
519&mfc {
520 memory-region = <&mfc_left>, <&mfc_right>;
521};
522
523&mmc_0 { 519&mmc_0 {
524 status = "okay"; 520 status = "okay";
525 num-slots = <1>; 521 num-slots = <1>;
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index 9fac874af5eb..381af134c4c8 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -344,10 +344,6 @@
344 status = "okay"; 344 status = "okay";
345}; 345};
346 346
347&mfc {
348 memory-region = <&mfc_left>, <&mfc_right>;
349};
350
351&mmc_0 { 347&mmc_0 {
352 status = "okay"; 348 status = "okay";
353 num-slots = <1>; 349 num-slots = <1>;
diff --git a/arch/arm/boot/dts/exynos5250-snow-common.dtsi b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
index fa14f77df563..fadbea744e1a 100644
--- a/arch/arm/boot/dts/exynos5250-snow-common.dtsi
+++ b/arch/arm/boot/dts/exynos5250-snow-common.dtsi
@@ -61,7 +61,7 @@
61 #address-cells = <1>; 61 #address-cells = <1>;
62 #size-cells = <0>; 62 #size-cells = <0>;
63 63
64 i2c-parent = <&{/i2c@12CA0000}>; 64 i2c-parent = <&i2c_4>;
65 65
66 our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>; 66 our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
67 their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>; 67 their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
diff --git a/arch/arm/boot/dts/exynos5250-spring.dts b/arch/arm/boot/dts/exynos5250-spring.dts
index 784130bdb6a3..44f4292bfef6 100644
--- a/arch/arm/boot/dts/exynos5250-spring.dts
+++ b/arch/arm/boot/dts/exynos5250-spring.dts
@@ -425,10 +425,6 @@
425 status = "okay"; 425 status = "okay";
426}; 426};
427 427
428&mfc {
429 memory-region = <&mfc_left>, <&mfc_right>;
430};
431
432&mmc_0 { 428&mmc_0 {
433 status = "okay"; 429 status = "okay";
434 num-slots = <1>; 430 num-slots = <1>;
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index c7158b2fb213..f7357d99b47c 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -37,10 +37,6 @@
37 mshc1 = &mmc_1; 37 mshc1 = &mmc_1;
38 mshc2 = &mmc_2; 38 mshc2 = &mmc_2;
39 mshc3 = &mmc_3; 39 mshc3 = &mmc_3;
40 i2c0 = &i2c_0;
41 i2c1 = &i2c_1;
42 i2c2 = &i2c_2;
43 i2c3 = &i2c_3;
44 i2c4 = &i2c_4; 40 i2c4 = &i2c_4;
45 i2c5 = &i2c_5; 41 i2c5 = &i2c_5;
46 i2c6 = &i2c_6; 42 i2c6 = &i2c_6;
@@ -96,962 +92,896 @@
96 }; 92 };
97 }; 93 };
98 94
99 sysram@02020000 { 95 soc: soc {
100 compatible = "mmio-sram"; 96 sysram@02020000 {
101 reg = <0x02020000 0x30000>; 97 compatible = "mmio-sram";
102 #address-cells = <1>; 98 reg = <0x02020000 0x30000>;
103 #size-cells = <1>; 99 #address-cells = <1>;
104 ranges = <0 0x02020000 0x30000>; 100 #size-cells = <1>;
101 ranges = <0 0x02020000 0x30000>;
105 102
106 smp-sysram@0 { 103 smp-sysram@0 {
107 compatible = "samsung,exynos4210-sysram"; 104 compatible = "samsung,exynos4210-sysram";
108 reg = <0x0 0x1000>; 105 reg = <0x0 0x1000>;
109 }; 106 };
110 107
111 smp-sysram@2f000 { 108 smp-sysram@2f000 {
112 compatible = "samsung,exynos4210-sysram-ns"; 109 compatible = "samsung,exynos4210-sysram-ns";
113 reg = <0x2f000 0x1000>; 110 reg = <0x2f000 0x1000>;
111 };
114 }; 112 };
115 };
116 113
117 pd_gsc: gsc-power-domain@10044000 { 114 pd_gsc: gsc-power-domain@10044000 {
118 compatible = "samsung,exynos4210-pd"; 115 compatible = "samsung,exynos4210-pd";
119 reg = <0x10044000 0x20>; 116 reg = <0x10044000 0x20>;
120 #power-domain-cells = <0>; 117 #power-domain-cells = <0>;
121 }; 118 };
122 119
123 pd_mfc: mfc-power-domain@10044040 { 120 pd_mfc: mfc-power-domain@10044040 {
124 compatible = "samsung,exynos4210-pd"; 121 compatible = "samsung,exynos4210-pd";
125 reg = <0x10044040 0x20>; 122 reg = <0x10044040 0x20>;
126 #power-domain-cells = <0>; 123 #power-domain-cells = <0>;
127 }; 124 };
128 125
129 pd_disp1: disp1-power-domain@100440A0 { 126 pd_disp1: disp1-power-domain@100440A0 {
130 compatible = "samsung,exynos4210-pd"; 127 compatible = "samsung,exynos4210-pd";
131 reg = <0x100440A0 0x20>; 128 reg = <0x100440A0 0x20>;
132 #power-domain-cells = <0>; 129 #power-domain-cells = <0>;
133 clocks = <&clock CLK_FIN_PLL>, 130 clocks = <&clock CLK_FIN_PLL>,
134 <&clock CLK_MOUT_ACLK200_DISP1_SUB>, 131 <&clock CLK_MOUT_ACLK200_DISP1_SUB>,
135 <&clock CLK_MOUT_ACLK300_DISP1_SUB>; 132 <&clock CLK_MOUT_ACLK300_DISP1_SUB>;
136 clock-names = "oscclk", "clk0", "clk1"; 133 clock-names = "oscclk", "clk0", "clk1";
137 }; 134 };
138 135
139 clock: clock-controller@10010000 { 136 clock: clock-controller@10010000 {
140 compatible = "samsung,exynos5250-clock"; 137 compatible = "samsung,exynos5250-clock";
141 reg = <0x10010000 0x30000>; 138 reg = <0x10010000 0x30000>;
142 #clock-cells = <1>; 139 #clock-cells = <1>;
143 }; 140 };
144 141
145 clock_audss: audss-clock-controller@3810000 { 142 clock_audss: audss-clock-controller@3810000 {
146 compatible = "samsung,exynos5250-audss-clock"; 143 compatible = "samsung,exynos5250-audss-clock";
147 reg = <0x03810000 0x0C>; 144 reg = <0x03810000 0x0C>;
148 #clock-cells = <1>; 145 #clock-cells = <1>;
149 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_FOUT_EPLL>, 146 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_FOUT_EPLL>,
150 <&clock CLK_SCLK_AUDIO0>, <&clock CLK_DIV_PCM0>; 147 <&clock CLK_SCLK_AUDIO0>, <&clock CLK_DIV_PCM0>;
151 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in"; 148 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
152 }; 149 };
153 150
154 timer { 151 timer {
155 compatible = "arm,armv7-timer"; 152 compatible = "arm,armv7-timer";
156 interrupts = <1 13 0xf08>, 153 interrupts = <1 13 0xf08>,
157 <1 14 0xf08>, 154 <1 14 0xf08>,
158 <1 11 0xf08>, 155 <1 11 0xf08>,
159 <1 10 0xf08>; 156 <1 10 0xf08>;
160 /* Unfortunately we need this since some versions of U-Boot 157 /*
161 * on Exynos don't set the CNTFRQ register, so we need the 158 * Unfortunately we need this since some versions
162 * value from DT. 159 * of U-Boot on Exynos don't set the CNTFRQ register,
163 */ 160 * so we need the value from DT.
164 clock-frequency = <24000000>; 161 */
165 }; 162 clock-frequency = <24000000>;
163 };
166 164
167 mct@101C0000 { 165 mct@101C0000 {
168 compatible = "samsung,exynos4210-mct"; 166 compatible = "samsung,exynos4210-mct";
169 reg = <0x101C0000 0x800>; 167 reg = <0x101C0000 0x800>;
170 interrupt-controller; 168 interrupt-controller;
171 #interrupt-cells = <2>;
172 interrupt-parent = <&mct_map>;
173 interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
174 <4 0>, <5 0>;
175 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
176 clock-names = "fin_pll", "mct";
177
178 mct_map: mct-map {
179 #interrupt-cells = <2>; 169 #interrupt-cells = <2>;
180 #address-cells = <0>; 170 interrupt-parent = <&mct_map>;
181 #size-cells = <0>; 171 interrupts = <0 0>, <1 0>, <2 0>, <3 0>,
182 interrupt-map = <0x0 0 &combiner 23 3>, 172 <4 0>, <5 0>;
183 <0x1 0 &combiner 23 4>, 173 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
184 <0x2 0 &combiner 25 2>, 174 clock-names = "fin_pll", "mct";
185 <0x3 0 &combiner 25 3>, 175
186 <0x4 0 &gic 0 120 0>, 176 mct_map: mct-map {
187 <0x5 0 &gic 0 121 0>; 177 #interrupt-cells = <2>;
178 #address-cells = <0>;
179 #size-cells = <0>;
180 interrupt-map = <0x0 0 &combiner 23 3>,
181 <0x1 0 &combiner 23 4>,
182 <0x2 0 &combiner 25 2>,
183 <0x3 0 &combiner 25 3>,
184 <0x4 0 &gic 0 120 0>,
185 <0x5 0 &gic 0 121 0>;
186 };
188 }; 187 };
189 };
190
191 pmu {
192 compatible = "arm,cortex-a15-pmu";
193 interrupt-parent = <&combiner>;
194 interrupts = <1 2>, <22 4>;
195 };
196
197 pinctrl_0: pinctrl@11400000 {
198 compatible = "samsung,exynos5250-pinctrl";
199 reg = <0x11400000 0x1000>;
200 interrupts = <0 46 0>;
201 188
202 wakup_eint: wakeup-interrupt-controller { 189 pmu {
203 compatible = "samsung,exynos4210-wakeup-eint"; 190 compatible = "arm,cortex-a15-pmu";
204 interrupt-parent = <&gic>; 191 interrupt-parent = <&combiner>;
205 interrupts = <0 32 0>; 192 interrupts = <1 2>, <22 4>;
206 }; 193 };
207 };
208
209 pinctrl_1: pinctrl@13400000 {
210 compatible = "samsung,exynos5250-pinctrl";
211 reg = <0x13400000 0x1000>;
212 interrupts = <0 45 0>;
213 };
214 194
215 pinctrl_2: pinctrl@10d10000 { 195 pinctrl_0: pinctrl@11400000 {
216 compatible = "samsung,exynos5250-pinctrl"; 196 compatible = "samsung,exynos5250-pinctrl";
217 reg = <0x10d10000 0x1000>; 197 reg = <0x11400000 0x1000>;
218 interrupts = <0 50 0>; 198 interrupts = <0 46 0>;
219 };
220
221 pinctrl_3: pinctrl@03860000 {
222 compatible = "samsung,exynos5250-pinctrl";
223 reg = <0x03860000 0x1000>;
224 interrupts = <0 47 0>;
225 };
226
227 pmu_system_controller: system-controller@10040000 {
228 compatible = "samsung,exynos5250-pmu", "syscon";
229 reg = <0x10040000 0x5000>;
230 clock-names = "clkout16";
231 clocks = <&clock CLK_FIN_PLL>;
232 #clock-cells = <1>;
233 interrupt-controller;
234 #interrupt-cells = <3>;
235 interrupt-parent = <&gic>;
236 };
237 199
238 sysreg_system_controller: syscon@10050000 { 200 wakup_eint: wakeup-interrupt-controller {
239 compatible = "samsung,exynos5-sysreg", "syscon"; 201 compatible = "samsung,exynos4210-wakeup-eint";
240 reg = <0x10050000 0x5000>; 202 interrupt-parent = <&gic>;
241 }; 203 interrupts = <0 32 0>;
204 };
205 };
242 206
243 watchdog@101D0000 { 207 pinctrl_1: pinctrl@13400000 {
244 compatible = "samsung,exynos5250-wdt"; 208 compatible = "samsung,exynos5250-pinctrl";
245 reg = <0x101D0000 0x100>; 209 reg = <0x13400000 0x1000>;
246 interrupts = <0 42 0>; 210 interrupts = <0 45 0>;
247 clocks = <&clock CLK_WDT>; 211 };
248 clock-names = "watchdog";
249 samsung,syscon-phandle = <&pmu_system_controller>;
250 };
251 212
252 g2d@10850000 { 213 pinctrl_2: pinctrl@10d10000 {
253 compatible = "samsung,exynos5250-g2d"; 214 compatible = "samsung,exynos5250-pinctrl";
254 reg = <0x10850000 0x1000>; 215 reg = <0x10d10000 0x1000>;
255 interrupts = <0 91 0>; 216 interrupts = <0 50 0>;
256 clocks = <&clock CLK_G2D>; 217 };
257 clock-names = "fimg2d";
258 iommus = <&sysmmu_g2d>;
259 };
260 218
261 mfc: codec@11000000 { 219 pinctrl_3: pinctrl@03860000 {
262 compatible = "samsung,mfc-v6"; 220 compatible = "samsung,exynos5250-pinctrl";
263 reg = <0x11000000 0x10000>; 221 reg = <0x03860000 0x1000>;
264 interrupts = <0 96 0>; 222 interrupts = <0 47 0>;
265 power-domains = <&pd_mfc>; 223 };
266 clocks = <&clock CLK_MFC>;
267 clock-names = "mfc";
268 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
269 iommu-names = "left", "right";
270 };
271 224
272 rotator: rotator@11C00000 { 225 pmu_system_controller: system-controller@10040000 {
273 compatible = "samsung,exynos5250-rotator"; 226 compatible = "samsung,exynos5250-pmu", "syscon";
274 reg = <0x11C00000 0x64>; 227 reg = <0x10040000 0x5000>;
275 interrupts = <0 84 0>; 228 clock-names = "clkout16";
276 clocks = <&clock CLK_ROTATOR>; 229 clocks = <&clock CLK_FIN_PLL>;
277 clock-names = "rotator"; 230 #clock-cells = <1>;
278 iommus = <&sysmmu_rotator>; 231 interrupt-controller;
279 }; 232 #interrupt-cells = <3>;
233 interrupt-parent = <&gic>;
234 };
280 235
281 tmu: tmu@10060000 { 236 watchdog@101D0000 {
282 compatible = "samsung,exynos5250-tmu"; 237 compatible = "samsung,exynos5250-wdt";
283 reg = <0x10060000 0x100>; 238 reg = <0x101D0000 0x100>;
284 interrupts = <0 65 0>; 239 interrupts = <0 42 0>;
285 clocks = <&clock CLK_TMU>; 240 clocks = <&clock CLK_WDT>;
286 clock-names = "tmu_apbif"; 241 clock-names = "watchdog";
287 #include "exynos4412-tmu-sensor-conf.dtsi" 242 samsung,syscon-phandle = <&pmu_system_controller>;
288 }; 243 };
289 244
290 thermal-zones { 245 g2d@10850000 {
291 cpu_thermal: cpu-thermal { 246 compatible = "samsung,exynos5250-g2d";
292 polling-delay-passive = <0>; 247 reg = <0x10850000 0x1000>;
293 polling-delay = <0>; 248 interrupts = <0 91 0>;
294 thermal-sensors = <&tmu 0>; 249 clocks = <&clock CLK_G2D>;
250 clock-names = "fimg2d";
251 iommus = <&sysmmu_g2d>;
252 };
295 253
296 cooling-maps { 254 mfc: codec@11000000 {
297 map0 { 255 compatible = "samsung,mfc-v6";
298 /* Corresponds to 800MHz at freq_table */ 256 reg = <0x11000000 0x10000>;
299 cooling-device = <&cpu0 9 9>; 257 interrupts = <0 96 0>;
300 }; 258 power-domains = <&pd_mfc>;
301 map1 { 259 clocks = <&clock CLK_MFC>;
302 /* Corresponds to 200MHz at freq_table */ 260 clock-names = "mfc";
303 cooling-device = <&cpu0 15 15>; 261 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
304 }; 262 iommu-names = "left", "right";
305 };
306 }; 263 };
307 };
308 264
309 sata: sata@122F0000 { 265 rotator: rotator@11C00000 {
310 compatible = "snps,dwc-ahci"; 266 compatible = "samsung,exynos5250-rotator";
311 samsung,sata-freq = <66>; 267 reg = <0x11C00000 0x64>;
312 reg = <0x122F0000 0x1ff>; 268 interrupts = <0 84 0>;
313 interrupts = <0 115 0>; 269 clocks = <&clock CLK_ROTATOR>;
314 clocks = <&clock CLK_SATA>, <&clock CLK_SCLK_SATA>; 270 clock-names = "rotator";
315 clock-names = "sata", "sclk_sata"; 271 iommus = <&sysmmu_rotator>;
316 phys = <&sata_phy>; 272 };
317 phy-names = "sata-phy";
318 status = "disabled";
319 };
320 273
321 sata_phy: sata-phy@12170000 { 274 tmu: tmu@10060000 {
322 compatible = "samsung,exynos5250-sata-phy"; 275 compatible = "samsung,exynos5250-tmu";
323 reg = <0x12170000 0x1ff>; 276 reg = <0x10060000 0x100>;
324 clocks = <&clock CLK_SATA_PHYCTRL>; 277 interrupts = <0 65 0>;
325 clock-names = "sata_phyctrl"; 278 clocks = <&clock CLK_TMU>;
326 #phy-cells = <0>; 279 clock-names = "tmu_apbif";
327 samsung,syscon-phandle = <&pmu_system_controller>; 280 #include "exynos4412-tmu-sensor-conf.dtsi"
328 status = "disabled"; 281 };
329 };
330 282
331 i2c_0: i2c@12C60000 { 283 sata: sata@122F0000 {
332 compatible = "samsung,s3c2440-i2c"; 284 compatible = "snps,dwc-ahci";
333 reg = <0x12C60000 0x100>; 285 samsung,sata-freq = <66>;
334 interrupts = <0 56 0>; 286 reg = <0x122F0000 0x1ff>;
335 #address-cells = <1>; 287 interrupts = <0 115 0>;
336 #size-cells = <0>; 288 clocks = <&clock CLK_SATA>, <&clock CLK_SCLK_SATA>;
337 clocks = <&clock CLK_I2C0>; 289 clock-names = "sata", "sclk_sata";
338 clock-names = "i2c"; 290 phys = <&sata_phy>;
339 pinctrl-names = "default"; 291 phy-names = "sata-phy";
340 pinctrl-0 = <&i2c0_bus>; 292 status = "disabled";
341 samsung,sysreg-phandle = <&sysreg_system_controller>; 293 };
342 status = "disabled";
343 };
344 294
345 i2c_1: i2c@12C70000 { 295 sata_phy: sata-phy@12170000 {
346 compatible = "samsung,s3c2440-i2c"; 296 compatible = "samsung,exynos5250-sata-phy";
347 reg = <0x12C70000 0x100>; 297 reg = <0x12170000 0x1ff>;
348 interrupts = <0 57 0>; 298 clocks = <&clock CLK_SATA_PHYCTRL>;
349 #address-cells = <1>; 299 clock-names = "sata_phyctrl";
350 #size-cells = <0>; 300 #phy-cells = <0>;
351 clocks = <&clock CLK_I2C1>; 301 samsung,syscon-phandle = <&pmu_system_controller>;
352 clock-names = "i2c"; 302 status = "disabled";
353 pinctrl-names = "default"; 303 };
354 pinctrl-0 = <&i2c1_bus>;
355 samsung,sysreg-phandle = <&sysreg_system_controller>;
356 status = "disabled";
357 };
358 304
359 i2c_2: i2c@12C80000 { 305 /* i2c_0-3 are defined in exynos5.dtsi */
360 compatible = "samsung,s3c2440-i2c"; 306 i2c_4: i2c@12CA0000 {
361 reg = <0x12C80000 0x100>; 307 compatible = "samsung,s3c2440-i2c";
362 interrupts = <0 58 0>; 308 reg = <0x12CA0000 0x100>;
363 #address-cells = <1>; 309 interrupts = <0 60 0>;
364 #size-cells = <0>; 310 #address-cells = <1>;
365 clocks = <&clock CLK_I2C2>; 311 #size-cells = <0>;
366 clock-names = "i2c"; 312 clocks = <&clock CLK_I2C4>;
367 pinctrl-names = "default"; 313 clock-names = "i2c";
368 pinctrl-0 = <&i2c2_bus>; 314 pinctrl-names = "default";
369 samsung,sysreg-phandle = <&sysreg_system_controller>; 315 pinctrl-0 = <&i2c4_bus>;
370 status = "disabled"; 316 status = "disabled";
371 }; 317 };
372 318
373 i2c_3: i2c@12C90000 { 319 i2c_5: i2c@12CB0000 {
374 compatible = "samsung,s3c2440-i2c"; 320 compatible = "samsung,s3c2440-i2c";
375 reg = <0x12C90000 0x100>; 321 reg = <0x12CB0000 0x100>;
376 interrupts = <0 59 0>; 322 interrupts = <0 61 0>;
377 #address-cells = <1>; 323 #address-cells = <1>;
378 #size-cells = <0>; 324 #size-cells = <0>;
379 clocks = <&clock CLK_I2C3>; 325 clocks = <&clock CLK_I2C5>;
380 clock-names = "i2c"; 326 clock-names = "i2c";
381 pinctrl-names = "default"; 327 pinctrl-names = "default";
382 pinctrl-0 = <&i2c3_bus>; 328 pinctrl-0 = <&i2c5_bus>;
383 samsung,sysreg-phandle = <&sysreg_system_controller>; 329 status = "disabled";
384 status = "disabled"; 330 };
385 };
386 331
387 i2c_4: i2c@12CA0000 { 332 i2c_6: i2c@12CC0000 {
388 compatible = "samsung,s3c2440-i2c"; 333 compatible = "samsung,s3c2440-i2c";
389 reg = <0x12CA0000 0x100>; 334 reg = <0x12CC0000 0x100>;
390 interrupts = <0 60 0>; 335 interrupts = <0 62 0>;
391 #address-cells = <1>; 336 #address-cells = <1>;
392 #size-cells = <0>; 337 #size-cells = <0>;
393 clocks = <&clock CLK_I2C4>; 338 clocks = <&clock CLK_I2C6>;
394 clock-names = "i2c"; 339 clock-names = "i2c";
395 pinctrl-names = "default"; 340 pinctrl-names = "default";
396 pinctrl-0 = <&i2c4_bus>; 341 pinctrl-0 = <&i2c6_bus>;
397 status = "disabled"; 342 status = "disabled";
398 }; 343 };
399 344
400 i2c_5: i2c@12CB0000 { 345 i2c_7: i2c@12CD0000 {
401 compatible = "samsung,s3c2440-i2c"; 346 compatible = "samsung,s3c2440-i2c";
402 reg = <0x12CB0000 0x100>; 347 reg = <0x12CD0000 0x100>;
403 interrupts = <0 61 0>; 348 interrupts = <0 63 0>;
404 #address-cells = <1>; 349 #address-cells = <1>;
405 #size-cells = <0>; 350 #size-cells = <0>;
406 clocks = <&clock CLK_I2C5>; 351 clocks = <&clock CLK_I2C7>;
407 clock-names = "i2c"; 352 clock-names = "i2c";
408 pinctrl-names = "default"; 353 pinctrl-names = "default";
409 pinctrl-0 = <&i2c5_bus>; 354 pinctrl-0 = <&i2c7_bus>;
410 status = "disabled"; 355 status = "disabled";
411 }; 356 };
412 357
413 i2c_6: i2c@12CC0000 { 358 i2c_8: i2c@12CE0000 {
414 compatible = "samsung,s3c2440-i2c"; 359 compatible = "samsung,s3c2440-hdmiphy-i2c";
415 reg = <0x12CC0000 0x100>; 360 reg = <0x12CE0000 0x1000>;
416 interrupts = <0 62 0>; 361 interrupts = <0 64 0>;
417 #address-cells = <1>; 362 #address-cells = <1>;
418 #size-cells = <0>; 363 #size-cells = <0>;
419 clocks = <&clock CLK_I2C6>; 364 clocks = <&clock CLK_I2C_HDMI>;
420 clock-names = "i2c"; 365 clock-names = "i2c";
421 pinctrl-names = "default"; 366 status = "disabled";
422 pinctrl-0 = <&i2c6_bus>; 367 };
423 status = "disabled";
424 };
425 368
426 i2c_7: i2c@12CD0000 { 369 i2c_9: i2c@121D0000 {
427 compatible = "samsung,s3c2440-i2c"; 370 compatible = "samsung,exynos5-sata-phy-i2c";
428 reg = <0x12CD0000 0x100>; 371 reg = <0x121D0000 0x100>;
429 interrupts = <0 63 0>; 372 #address-cells = <1>;
430 #address-cells = <1>; 373 #size-cells = <0>;
431 #size-cells = <0>; 374 clocks = <&clock CLK_SATA_PHYI2C>;
432 clocks = <&clock CLK_I2C7>; 375 clock-names = "i2c";
433 clock-names = "i2c"; 376 status = "disabled";
434 pinctrl-names = "default"; 377 };
435 pinctrl-0 = <&i2c7_bus>;
436 status = "disabled";
437 };
438 378
439 i2c_8: i2c@12CE0000 { 379 spi_0: spi@12d20000 {
440 compatible = "samsung,s3c2440-hdmiphy-i2c"; 380 compatible = "samsung,exynos4210-spi";
441 reg = <0x12CE0000 0x1000>; 381 status = "disabled";
442 interrupts = <0 64 0>; 382 reg = <0x12d20000 0x100>;
443 #address-cells = <1>; 383 interrupts = <0 66 0>;
444 #size-cells = <0>; 384 dmas = <&pdma0 5
445 clocks = <&clock CLK_I2C_HDMI>; 385 &pdma0 4>;
446 clock-names = "i2c"; 386 dma-names = "tx", "rx";
447 status = "disabled"; 387 #address-cells = <1>;
448 }; 388 #size-cells = <0>;
389 clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
390 clock-names = "spi", "spi_busclk0";
391 pinctrl-names = "default";
392 pinctrl-0 = <&spi0_bus>;
393 };
449 394
450 i2c_9: i2c@121D0000 { 395 spi_1: spi@12d30000 {
451 compatible = "samsung,exynos5-sata-phy-i2c"; 396 compatible = "samsung,exynos4210-spi";
452 reg = <0x121D0000 0x100>; 397 status = "disabled";
453 #address-cells = <1>; 398 reg = <0x12d30000 0x100>;
454 #size-cells = <0>; 399 interrupts = <0 67 0>;
455 clocks = <&clock CLK_SATA_PHYI2C>; 400 dmas = <&pdma1 5
456 clock-names = "i2c"; 401 &pdma1 4>;
457 status = "disabled"; 402 dma-names = "tx", "rx";
458 }; 403 #address-cells = <1>;
404 #size-cells = <0>;
405 clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
406 clock-names = "spi", "spi_busclk0";
407 pinctrl-names = "default";
408 pinctrl-0 = <&spi1_bus>;
409 };
459 410
460 spi_0: spi@12d20000 { 411 spi_2: spi@12d40000 {
461 compatible = "samsung,exynos4210-spi"; 412 compatible = "samsung,exynos4210-spi";
462 status = "disabled"; 413 status = "disabled";
463 reg = <0x12d20000 0x100>; 414 reg = <0x12d40000 0x100>;
464 interrupts = <0 66 0>; 415 interrupts = <0 68 0>;
465 dmas = <&pdma0 5 416 dmas = <&pdma0 7
466 &pdma0 4>; 417 &pdma0 6>;
467 dma-names = "tx", "rx"; 418 dma-names = "tx", "rx";
468 #address-cells = <1>; 419 #address-cells = <1>;
469 #size-cells = <0>; 420 #size-cells = <0>;
470 clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>; 421 clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
471 clock-names = "spi", "spi_busclk0"; 422 clock-names = "spi", "spi_busclk0";
472 pinctrl-names = "default"; 423 pinctrl-names = "default";
473 pinctrl-0 = <&spi0_bus>; 424 pinctrl-0 = <&spi2_bus>;
474 }; 425 };
475 426
476 spi_1: spi@12d30000 { 427 mmc_0: mmc@12200000 {
477 compatible = "samsung,exynos4210-spi"; 428 compatible = "samsung,exynos5250-dw-mshc";
478 status = "disabled"; 429 interrupts = <0 75 0>;
479 reg = <0x12d30000 0x100>; 430 #address-cells = <1>;
480 interrupts = <0 67 0>; 431 #size-cells = <0>;
481 dmas = <&pdma1 5 432 reg = <0x12200000 0x1000>;
482 &pdma1 4>; 433 clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>;
483 dma-names = "tx", "rx"; 434 clock-names = "biu", "ciu";
484 #address-cells = <1>; 435 fifo-depth = <0x80>;
485 #size-cells = <0>; 436 status = "disabled";
486 clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>; 437 };
487 clock-names = "spi", "spi_busclk0";
488 pinctrl-names = "default";
489 pinctrl-0 = <&spi1_bus>;
490 };
491 438
492 spi_2: spi@12d40000 { 439 mmc_1: mmc@12210000 {
493 compatible = "samsung,exynos4210-spi"; 440 compatible = "samsung,exynos5250-dw-mshc";
494 status = "disabled"; 441 interrupts = <0 76 0>;
495 reg = <0x12d40000 0x100>; 442 #address-cells = <1>;
496 interrupts = <0 68 0>; 443 #size-cells = <0>;
497 dmas = <&pdma0 7 444 reg = <0x12210000 0x1000>;
498 &pdma0 6>; 445 clocks = <&clock CLK_SDMMC1>, <&clock CLK_SCLK_MMC1>;
499 dma-names = "tx", "rx"; 446 clock-names = "biu", "ciu";
500 #address-cells = <1>; 447 fifo-depth = <0x80>;
501 #size-cells = <0>; 448 status = "disabled";
502 clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>; 449 };
503 clock-names = "spi", "spi_busclk0";
504 pinctrl-names = "default";
505 pinctrl-0 = <&spi2_bus>;
506 };
507 450
508 mmc_0: mmc@12200000 { 451 mmc_2: mmc@12220000 {
509 compatible = "samsung,exynos5250-dw-mshc"; 452 compatible = "samsung,exynos5250-dw-mshc";
510 interrupts = <0 75 0>; 453 interrupts = <0 77 0>;
511 #address-cells = <1>; 454 #address-cells = <1>;
512 #size-cells = <0>; 455 #size-cells = <0>;
513 reg = <0x12200000 0x1000>; 456 reg = <0x12220000 0x1000>;
514 clocks = <&clock CLK_SDMMC0>, <&clock CLK_SCLK_MMC0>; 457 clocks = <&clock CLK_SDMMC2>, <&clock CLK_SCLK_MMC2>;
515 clock-names = "biu", "ciu"; 458 clock-names = "biu", "ciu";
516 fifo-depth = <0x80>; 459 fifo-depth = <0x80>;
517 status = "disabled"; 460 status = "disabled";
518 }; 461 };
519 462
520 mmc_1: mmc@12210000 { 463 mmc_3: mmc@12230000 {
521 compatible = "samsung,exynos5250-dw-mshc"; 464 compatible = "samsung,exynos5250-dw-mshc";
522 interrupts = <0 76 0>; 465 reg = <0x12230000 0x1000>;
523 #address-cells = <1>; 466 interrupts = <0 78 0>;
524 #size-cells = <0>; 467 #address-cells = <1>;
525 reg = <0x12210000 0x1000>; 468 #size-cells = <0>;
526 clocks = <&clock CLK_SDMMC1>, <&clock CLK_SCLK_MMC1>; 469 clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>;
527 clock-names = "biu", "ciu"; 470 clock-names = "biu", "ciu";
528 fifo-depth = <0x80>; 471 fifo-depth = <0x80>;
529 status = "disabled"; 472 status = "disabled";
530 }; 473 };
531 474
532 mmc_2: mmc@12220000 { 475 i2s0: i2s@03830000 {
533 compatible = "samsung,exynos5250-dw-mshc"; 476 compatible = "samsung,s5pv210-i2s";
534 interrupts = <0 77 0>; 477 status = "disabled";
535 #address-cells = <1>; 478 reg = <0x03830000 0x100>;
536 #size-cells = <0>; 479 dmas = <&pdma0 10
537 reg = <0x12220000 0x1000>; 480 &pdma0 9
538 clocks = <&clock CLK_SDMMC2>, <&clock CLK_SCLK_MMC2>; 481 &pdma0 8>;
539 clock-names = "biu", "ciu"; 482 dma-names = "tx", "rx", "tx-sec";
540 fifo-depth = <0x80>; 483 clocks = <&clock_audss EXYNOS_I2S_BUS>,
541 status = "disabled"; 484 <&clock_audss EXYNOS_I2S_BUS>,
542 }; 485 <&clock_audss EXYNOS_SCLK_I2S>;
486 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
487 samsung,idma-addr = <0x03000000>;
488 pinctrl-names = "default";
489 pinctrl-0 = <&i2s0_bus>;
490 };
543 491
544 mmc_3: mmc@12230000 { 492 i2s1: i2s@12D60000 {
545 compatible = "samsung,exynos5250-dw-mshc"; 493 compatible = "samsung,s3c6410-i2s";
546 reg = <0x12230000 0x1000>; 494 status = "disabled";
547 interrupts = <0 78 0>; 495 reg = <0x12D60000 0x100>;
548 #address-cells = <1>; 496 dmas = <&pdma1 12
549 #size-cells = <0>; 497 &pdma1 11>;
550 clocks = <&clock CLK_SDMMC3>, <&clock CLK_SCLK_MMC3>; 498 dma-names = "tx", "rx";
551 clock-names = "biu", "ciu"; 499 clocks = <&clock CLK_I2S1>, <&clock CLK_DIV_I2S1>;
552 fifo-depth = <0x80>; 500 clock-names = "iis", "i2s_opclk0";
553 status = "disabled"; 501 pinctrl-names = "default";
554 }; 502 pinctrl-0 = <&i2s1_bus>;
503 };
555 504
556 i2s0: i2s@03830000 { 505 i2s2: i2s@12D70000 {
557 compatible = "samsung,s5pv210-i2s"; 506 compatible = "samsung,s3c6410-i2s";
558 status = "disabled"; 507 status = "disabled";
559 reg = <0x03830000 0x100>; 508 reg = <0x12D70000 0x100>;
560 dmas = <&pdma0 10 509 dmas = <&pdma0 12
561 &pdma0 9 510 &pdma0 11>;
562 &pdma0 8>; 511 dma-names = "tx", "rx";
563 dma-names = "tx", "rx", "tx-sec"; 512 clocks = <&clock CLK_I2S2>, <&clock CLK_DIV_I2S2>;
564 clocks = <&clock_audss EXYNOS_I2S_BUS>, 513 clock-names = "iis", "i2s_opclk0";
565 <&clock_audss EXYNOS_I2S_BUS>, 514 pinctrl-names = "default";
566 <&clock_audss EXYNOS_SCLK_I2S>; 515 pinctrl-0 = <&i2s2_bus>;
567 clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; 516 };
568 samsung,idma-addr = <0x03000000>;
569 pinctrl-names = "default";
570 pinctrl-0 = <&i2s0_bus>;
571 };
572 517
573 i2s1: i2s@12D60000 { 518 usb_dwc3 {
574 compatible = "samsung,s3c6410-i2s"; 519 compatible = "samsung,exynos5250-dwusb3";
575 status = "disabled"; 520 clocks = <&clock CLK_USB3>;
576 reg = <0x12D60000 0x100>; 521 clock-names = "usbdrd30";
577 dmas = <&pdma1 12 522 #address-cells = <1>;
578 &pdma1 11>; 523 #size-cells = <1>;
579 dma-names = "tx", "rx"; 524 ranges;
580 clocks = <&clock CLK_I2S1>, <&clock CLK_DIV_I2S1>; 525
581 clock-names = "iis", "i2s_opclk0"; 526 usbdrd_dwc3: dwc3@12000000 {
582 pinctrl-names = "default"; 527 compatible = "synopsys,dwc3";
583 pinctrl-0 = <&i2s1_bus>; 528 reg = <0x12000000 0x10000>;
584 }; 529 interrupts = <0 72 0>;
530 phys = <&usbdrd_phy 0>, <&usbdrd_phy 1>;
531 phy-names = "usb2-phy", "usb3-phy";
532 };
533 };
585 534
586 i2s2: i2s@12D70000 { 535 usbdrd_phy: phy@12100000 {
587 compatible = "samsung,s3c6410-i2s"; 536 compatible = "samsung,exynos5250-usbdrd-phy";
588 status = "disabled"; 537 reg = <0x12100000 0x100>;
589 reg = <0x12D70000 0x100>; 538 clocks = <&clock CLK_USB3>, <&clock CLK_FIN_PLL>;
590 dmas = <&pdma0 12 539 clock-names = "phy", "ref";
591 &pdma0 11>; 540 samsung,pmu-syscon = <&pmu_system_controller>;
592 dma-names = "tx", "rx"; 541 #phy-cells = <1>;
593 clocks = <&clock CLK_I2S2>, <&clock CLK_DIV_I2S2>; 542 };
594 clock-names = "iis", "i2s_opclk0";
595 pinctrl-names = "default";
596 pinctrl-0 = <&i2s2_bus>;
597 };
598 543
599 usb_dwc3 { 544 ehci: usb@12110000 {
600 compatible = "samsung,exynos5250-dwusb3"; 545 compatible = "samsung,exynos4210-ehci";
601 clocks = <&clock CLK_USB3>; 546 reg = <0x12110000 0x100>;
602 clock-names = "usbdrd30"; 547 interrupts = <0 71 0>;
603 #address-cells = <1>;
604 #size-cells = <1>;
605 ranges;
606 548
607 usbdrd_dwc3: dwc3@12000000 { 549 clocks = <&clock CLK_USB2>;
608 compatible = "synopsys,dwc3"; 550 clock-names = "usbhost";
609 reg = <0x12000000 0x10000>; 551 #address-cells = <1>;
610 interrupts = <0 72 0>; 552 #size-cells = <0>;
611 phys = <&usbdrd_phy 0>, <&usbdrd_phy 1>; 553 port@0 {
612 phy-names = "usb2-phy", "usb3-phy"; 554 reg = <0>;
555 phys = <&usb2_phy_gen 1>;
556 };
613 }; 557 };
614 };
615
616 usbdrd_phy: phy@12100000 {
617 compatible = "samsung,exynos5250-usbdrd-phy";
618 reg = <0x12100000 0x100>;
619 clocks = <&clock CLK_USB3>, <&clock CLK_FIN_PLL>;
620 clock-names = "phy", "ref";
621 samsung,pmu-syscon = <&pmu_system_controller>;
622 #phy-cells = <1>;
623 };
624 558
625 ehci: usb@12110000 { 559 ohci: usb@12120000 {
626 compatible = "samsung,exynos4210-ehci"; 560 compatible = "samsung,exynos4210-ohci";
627 reg = <0x12110000 0x100>; 561 reg = <0x12120000 0x100>;
628 interrupts = <0 71 0>; 562 interrupts = <0 71 0>;
629 563
630 clocks = <&clock CLK_USB2>; 564 clocks = <&clock CLK_USB2>;
631 clock-names = "usbhost"; 565 clock-names = "usbhost";
632 #address-cells = <1>; 566 #address-cells = <1>;
633 #size-cells = <0>; 567 #size-cells = <0>;
634 port@0 { 568 port@0 {
635 reg = <0>; 569 reg = <0>;
636 phys = <&usb2_phy_gen 1>; 570 phys = <&usb2_phy_gen 1>;
571 };
637 }; 572 };
638 };
639 573
640 ohci: usb@12120000 { 574 usb2_phy_gen: phy@12130000 {
641 compatible = "samsung,exynos4210-ohci"; 575 compatible = "samsung,exynos5250-usb2-phy";
642 reg = <0x12120000 0x100>; 576 reg = <0x12130000 0x100>;
643 interrupts = <0 71 0>; 577 clocks = <&clock CLK_USB2>, <&clock CLK_FIN_PLL>;
644 578 clock-names = "phy", "ref";
645 clocks = <&clock CLK_USB2>; 579 #phy-cells = <1>;
646 clock-names = "usbhost"; 580 samsung,sysreg-phandle = <&sysreg_system_controller>;
647 #address-cells = <1>; 581 samsung,pmureg-phandle = <&pmu_system_controller>;
648 #size-cells = <0>;
649 port@0 {
650 reg = <0>;
651 phys = <&usb2_phy_gen 1>;
652 }; 582 };
653 };
654 583
655 usb2_phy_gen: phy@12130000 { 584 amba {
656 compatible = "samsung,exynos5250-usb2-phy"; 585 #address-cells = <1>;
657 reg = <0x12130000 0x100>; 586 #size-cells = <1>;
658 clocks = <&clock CLK_USB2>, <&clock CLK_FIN_PLL>; 587 compatible = "simple-bus";
659 clock-names = "phy", "ref"; 588 interrupt-parent = <&gic>;
660 #phy-cells = <1>; 589 ranges;
661 samsung,sysreg-phandle = <&sysreg_system_controller>; 590
662 samsung,pmureg-phandle = <&pmu_system_controller>; 591 pdma0: pdma@121A0000 {
663 }; 592 compatible = "arm,pl330", "arm,primecell";
593 reg = <0x121A0000 0x1000>;
594 interrupts = <0 34 0>;
595 clocks = <&clock CLK_PDMA0>;
596 clock-names = "apb_pclk";
597 #dma-cells = <1>;
598 #dma-channels = <8>;
599 #dma-requests = <32>;
600 };
601
602 pdma1: pdma@121B0000 {
603 compatible = "arm,pl330", "arm,primecell";
604 reg = <0x121B0000 0x1000>;
605 interrupts = <0 35 0>;
606 clocks = <&clock CLK_PDMA1>;
607 clock-names = "apb_pclk";
608 #dma-cells = <1>;
609 #dma-channels = <8>;
610 #dma-requests = <32>;
611 };
612
613 mdma0: mdma@10800000 {
614 compatible = "arm,pl330", "arm,primecell";
615 reg = <0x10800000 0x1000>;
616 interrupts = <0 33 0>;
617 clocks = <&clock CLK_MDMA0>;
618 clock-names = "apb_pclk";
619 #dma-cells = <1>;
620 #dma-channels = <8>;
621 #dma-requests = <1>;
622 };
623
624 mdma1: mdma@11C10000 {
625 compatible = "arm,pl330", "arm,primecell";
626 reg = <0x11C10000 0x1000>;
627 interrupts = <0 124 0>;
628 clocks = <&clock CLK_MDMA1>;
629 clock-names = "apb_pclk";
630 #dma-cells = <1>;
631 #dma-channels = <8>;
632 #dma-requests = <1>;
633 };
634 };
664 635
665 pwm: pwm@12dd0000 { 636 gsc_0: gsc@13e00000 {
666 compatible = "samsung,exynos4210-pwm"; 637 compatible = "samsung,exynos5-gsc";
667 reg = <0x12dd0000 0x100>; 638 reg = <0x13e00000 0x1000>;
668 samsung,pwm-outputs = <0>, <1>, <2>, <3>; 639 interrupts = <0 85 0>;
669 #pwm-cells = <3>; 640 power-domains = <&pd_gsc>;
670 clocks = <&clock CLK_PWM>; 641 clocks = <&clock CLK_GSCL0>;
671 clock-names = "timers"; 642 clock-names = "gscl";
672 }; 643 iommu = <&sysmmu_gsc0>;
644 };
673 645
674 amba { 646 gsc_1: gsc@13e10000 {
675 #address-cells = <1>; 647 compatible = "samsung,exynos5-gsc";
676 #size-cells = <1>; 648 reg = <0x13e10000 0x1000>;
677 compatible = "simple-bus"; 649 interrupts = <0 86 0>;
678 interrupt-parent = <&gic>; 650 power-domains = <&pd_gsc>;
679 ranges; 651 clocks = <&clock CLK_GSCL1>;
680 652 clock-names = "gscl";
681 pdma0: pdma@121A0000 { 653 iommu = <&sysmmu_gsc1>;
682 compatible = "arm,pl330", "arm,primecell";
683 reg = <0x121A0000 0x1000>;
684 interrupts = <0 34 0>;
685 clocks = <&clock CLK_PDMA0>;
686 clock-names = "apb_pclk";
687 #dma-cells = <1>;
688 #dma-channels = <8>;
689 #dma-requests = <32>;
690 };
691
692 pdma1: pdma@121B0000 {
693 compatible = "arm,pl330", "arm,primecell";
694 reg = <0x121B0000 0x1000>;
695 interrupts = <0 35 0>;
696 clocks = <&clock CLK_PDMA1>;
697 clock-names = "apb_pclk";
698 #dma-cells = <1>;
699 #dma-channels = <8>;
700 #dma-requests = <32>;
701 };
702
703 mdma0: mdma@10800000 {
704 compatible = "arm,pl330", "arm,primecell";
705 reg = <0x10800000 0x1000>;
706 interrupts = <0 33 0>;
707 clocks = <&clock CLK_MDMA0>;
708 clock-names = "apb_pclk";
709 #dma-cells = <1>;
710 #dma-channels = <8>;
711 #dma-requests = <1>;
712 };
713
714 mdma1: mdma@11C10000 {
715 compatible = "arm,pl330", "arm,primecell";
716 reg = <0x11C10000 0x1000>;
717 interrupts = <0 124 0>;
718 clocks = <&clock CLK_MDMA1>;
719 clock-names = "apb_pclk";
720 #dma-cells = <1>;
721 #dma-channels = <8>;
722 #dma-requests = <1>;
723 }; 654 };
724 };
725 655
726 gsc_0: gsc@13e00000 { 656 gsc_2: gsc@13e20000 {
727 compatible = "samsung,exynos5-gsc"; 657 compatible = "samsung,exynos5-gsc";
728 reg = <0x13e00000 0x1000>; 658 reg = <0x13e20000 0x1000>;
729 interrupts = <0 85 0>; 659 interrupts = <0 87 0>;
730 power-domains = <&pd_gsc>; 660 power-domains = <&pd_gsc>;
731 clocks = <&clock CLK_GSCL0>; 661 clocks = <&clock CLK_GSCL2>;
732 clock-names = "gscl"; 662 clock-names = "gscl";
733 iommu = <&sysmmu_gsc0>; 663 iommu = <&sysmmu_gsc2>;
734 }; 664 };
735 665
736 gsc_1: gsc@13e10000 { 666 gsc_3: gsc@13e30000 {
737 compatible = "samsung,exynos5-gsc"; 667 compatible = "samsung,exynos5-gsc";
738 reg = <0x13e10000 0x1000>; 668 reg = <0x13e30000 0x1000>;
739 interrupts = <0 86 0>; 669 interrupts = <0 88 0>;
740 power-domains = <&pd_gsc>; 670 power-domains = <&pd_gsc>;
741 clocks = <&clock CLK_GSCL1>; 671 clocks = <&clock CLK_GSCL3>;
742 clock-names = "gscl"; 672 clock-names = "gscl";
743 iommu = <&sysmmu_gsc1>; 673 iommu = <&sysmmu_gsc3>;
744 }; 674 };
745 675
746 gsc_2: gsc@13e20000 { 676 hdmi: hdmi@14530000 {
747 compatible = "samsung,exynos5-gsc"; 677 compatible = "samsung,exynos4212-hdmi";
748 reg = <0x13e20000 0x1000>; 678 reg = <0x14530000 0x70000>;
749 interrupts = <0 87 0>; 679 power-domains = <&pd_disp1>;
750 power-domains = <&pd_gsc>; 680 interrupts = <0 95 0>;
751 clocks = <&clock CLK_GSCL2>; 681 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
752 clock-names = "gscl"; 682 <&clock CLK_SCLK_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
753 iommu = <&sysmmu_gsc2>; 683 <&clock CLK_MOUT_HDMI>;
754 }; 684 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
685 "sclk_hdmiphy", "mout_hdmi";
686 samsung,syscon-phandle = <&pmu_system_controller>;
687 };
755 688
756 gsc_3: gsc@13e30000 { 689 mixer@14450000 {
757 compatible = "samsung,exynos5-gsc"; 690 compatible = "samsung,exynos5250-mixer";
758 reg = <0x13e30000 0x1000>; 691 reg = <0x14450000 0x10000>;
759 interrupts = <0 88 0>; 692 power-domains = <&pd_disp1>;
760 power-domains = <&pd_gsc>; 693 interrupts = <0 94 0>;
761 clocks = <&clock CLK_GSCL3>; 694 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
762 clock-names = "gscl"; 695 <&clock CLK_SCLK_HDMI>;
763 iommu = <&sysmmu_gsc3>; 696 clock-names = "mixer", "hdmi", "sclk_hdmi";
764 }; 697 iommus = <&sysmmu_tv>;
698 };
765 699
766 hdmi: hdmi@14530000 { 700 dp_phy: video-phy {
767 compatible = "samsung,exynos4212-hdmi"; 701 compatible = "samsung,exynos5250-dp-video-phy";
768 reg = <0x14530000 0x70000>; 702 samsung,pmu-syscon = <&pmu_system_controller>;
769 power-domains = <&pd_disp1>; 703 #phy-cells = <0>;
770 interrupts = <0 95 0>; 704 };
771 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
772 <&clock CLK_SCLK_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
773 <&clock CLK_MOUT_HDMI>;
774 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
775 "sclk_hdmiphy", "mout_hdmi";
776 samsung,syscon-phandle = <&pmu_system_controller>;
777 };
778 705
779 mixer@14450000 { 706 adc: adc@12D10000 {
780 compatible = "samsung,exynos5250-mixer"; 707 compatible = "samsung,exynos-adc-v1";
781 reg = <0x14450000 0x10000>; 708 reg = <0x12D10000 0x100>;
782 power-domains = <&pd_disp1>; 709 interrupts = <0 106 0>;
783 interrupts = <0 94 0>; 710 clocks = <&clock CLK_ADC>;
784 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>, 711 clock-names = "adc";
785 <&clock CLK_SCLK_HDMI>; 712 #io-channel-cells = <1>;
786 clock-names = "mixer", "hdmi", "sclk_hdmi"; 713 io-channel-ranges;
787 iommus = <&sysmmu_tv>; 714 samsung,syscon-phandle = <&pmu_system_controller>;
788 }; 715 status = "disabled";
716 };
789 717
790 dp_phy: video-phy { 718 sss@10830000 {
791 compatible = "samsung,exynos5250-dp-video-phy"; 719 compatible = "samsung,exynos4210-secss";
792 samsung,pmu-syscon = <&pmu_system_controller>; 720 reg = <0x10830000 0x300>;
793 #phy-cells = <0>; 721 interrupts = <0 112 0>;
794 }; 722 clocks = <&clock CLK_SSS>;
723 clock-names = "secss";
724 };
795 725
796 adc: adc@12D10000 { 726 sysmmu_g2d: sysmmu@10A60000 {
797 compatible = "samsung,exynos-adc-v1"; 727 compatible = "samsung,exynos-sysmmu";
798 reg = <0x12D10000 0x100>; 728 reg = <0x10A60000 0x1000>;
799 interrupts = <0 106 0>; 729 interrupt-parent = <&combiner>;
800 clocks = <&clock CLK_ADC>; 730 interrupts = <24 5>;
801 clock-names = "adc"; 731 clock-names = "sysmmu", "master";
802 #io-channel-cells = <1>; 732 clocks = <&clock CLK_SMMU_2D>, <&clock CLK_G2D>;
803 io-channel-ranges; 733 #iommu-cells = <0>;
804 samsung,syscon-phandle = <&pmu_system_controller>; 734 };
805 status = "disabled";
806 };
807 735
808 sss@10830000 { 736 sysmmu_mfc_r: sysmmu@11200000 {
809 compatible = "samsung,exynos4210-secss"; 737 compatible = "samsung,exynos-sysmmu";
810 reg = <0x10830000 0x300>; 738 reg = <0x11200000 0x1000>;
811 interrupts = <0 112 0>; 739 interrupt-parent = <&combiner>;
812 clocks = <&clock CLK_SSS>; 740 interrupts = <6 2>;
813 clock-names = "secss"; 741 power-domains = <&pd_mfc>;
814 }; 742 clock-names = "sysmmu", "master";
743 clocks = <&clock CLK_SMMU_MFCR>, <&clock CLK_MFC>;
744 #iommu-cells = <0>;
745 };
815 746
816 sysmmu_g2d: sysmmu@10A60000 { 747 sysmmu_mfc_l: sysmmu@11210000 {
817 compatible = "samsung,exynos-sysmmu"; 748 compatible = "samsung,exynos-sysmmu";
818 reg = <0x10A60000 0x1000>; 749 reg = <0x11210000 0x1000>;
819 interrupt-parent = <&combiner>; 750 interrupt-parent = <&combiner>;
820 interrupts = <24 5>; 751 interrupts = <8 5>;
821 clock-names = "sysmmu", "master"; 752 power-domains = <&pd_mfc>;
822 clocks = <&clock CLK_SMMU_2D>, <&clock CLK_G2D>; 753 clock-names = "sysmmu", "master";
823 #iommu-cells = <0>; 754 clocks = <&clock CLK_SMMU_MFCL>, <&clock CLK_MFC>;
824 }; 755 #iommu-cells = <0>;
756 };
825 757
826 sysmmu_mfc_r: sysmmu@11200000 { 758 sysmmu_rotator: sysmmu@11D40000 {
827 compatible = "samsung,exynos-sysmmu"; 759 compatible = "samsung,exynos-sysmmu";
828 reg = <0x11200000 0x1000>; 760 reg = <0x11D40000 0x1000>;
829 interrupt-parent = <&combiner>; 761 interrupt-parent = <&combiner>;
830 interrupts = <6 2>; 762 interrupts = <4 0>;
831 power-domains = <&pd_mfc>; 763 clock-names = "sysmmu", "master";
832 clock-names = "sysmmu", "master"; 764 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>;
833 clocks = <&clock CLK_SMMU_MFCR>, <&clock CLK_MFC>; 765 #iommu-cells = <0>;
834 #iommu-cells = <0>; 766 };
835 };
836 767
837 sysmmu_mfc_l: sysmmu@11210000 { 768 sysmmu_jpeg: sysmmu@11F20000 {
838 compatible = "samsung,exynos-sysmmu"; 769 compatible = "samsung,exynos-sysmmu";
839 reg = <0x11210000 0x1000>; 770 reg = <0x11F20000 0x1000>;
840 interrupt-parent = <&combiner>; 771 interrupt-parent = <&combiner>;
841 interrupts = <8 5>; 772 interrupts = <4 2>;
842 power-domains = <&pd_mfc>; 773 power-domains = <&pd_gsc>;
843 clock-names = "sysmmu", "master"; 774 clock-names = "sysmmu", "master";
844 clocks = <&clock CLK_SMMU_MFCL>, <&clock CLK_MFC>; 775 clocks = <&clock CLK_SMMU_JPEG>, <&clock CLK_JPEG>;
845 #iommu-cells = <0>; 776 #iommu-cells = <0>;
846 }; 777 };
847 778
848 sysmmu_rotator: sysmmu@11D40000 { 779 sysmmu_fimc_isp: sysmmu@13260000 {
849 compatible = "samsung,exynos-sysmmu"; 780 compatible = "samsung,exynos-sysmmu";
850 reg = <0x11D40000 0x1000>; 781 reg = <0x13260000 0x1000>;
851 interrupt-parent = <&combiner>; 782 interrupt-parent = <&combiner>;
852 interrupts = <4 0>; 783 interrupts = <10 6>;
853 clock-names = "sysmmu", "master"; 784 clock-names = "sysmmu";
854 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>; 785 clocks = <&clock CLK_SMMU_FIMC_ISP>;
855 #iommu-cells = <0>; 786 #iommu-cells = <0>;
856 }; 787 };
857 788
858 sysmmu_jpeg: sysmmu@11F20000 { 789 sysmmu_fimc_drc: sysmmu@13270000 {
859 compatible = "samsung,exynos-sysmmu"; 790 compatible = "samsung,exynos-sysmmu";
860 reg = <0x11F20000 0x1000>; 791 reg = <0x13270000 0x1000>;
861 interrupt-parent = <&combiner>; 792 interrupt-parent = <&combiner>;
862 interrupts = <4 2>; 793 interrupts = <11 6>;
863 power-domains = <&pd_gsc>; 794 clock-names = "sysmmu";
864 clock-names = "sysmmu", "master"; 795 clocks = <&clock CLK_SMMU_FIMC_DRC>;
865 clocks = <&clock CLK_SMMU_JPEG>, <&clock CLK_JPEG>; 796 #iommu-cells = <0>;
866 #iommu-cells = <0>; 797 };
867 };
868 798
869 sysmmu_fimc_isp: sysmmu@13260000 { 799 sysmmu_fimc_fd: sysmmu@132A0000 {
870 compatible = "samsung,exynos-sysmmu"; 800 compatible = "samsung,exynos-sysmmu";
871 reg = <0x13260000 0x1000>; 801 reg = <0x132A0000 0x1000>;
872 interrupt-parent = <&combiner>; 802 interrupt-parent = <&combiner>;
873 interrupts = <10 6>; 803 interrupts = <5 0>;
874 clock-names = "sysmmu"; 804 clock-names = "sysmmu";
875 clocks = <&clock CLK_SMMU_FIMC_ISP>; 805 clocks = <&clock CLK_SMMU_FIMC_FD>;
876 #iommu-cells = <0>; 806 #iommu-cells = <0>;
877 }; 807 };
878 808
879 sysmmu_fimc_drc: sysmmu@13270000 { 809 sysmmu_fimc_scc: sysmmu@13280000 {
880 compatible = "samsung,exynos-sysmmu"; 810 compatible = "samsung,exynos-sysmmu";
881 reg = <0x13270000 0x1000>; 811 reg = <0x13280000 0x1000>;
882 interrupt-parent = <&combiner>; 812 interrupt-parent = <&combiner>;
883 interrupts = <11 6>; 813 interrupts = <5 2>;
884 clock-names = "sysmmu"; 814 clock-names = "sysmmu";
885 clocks = <&clock CLK_SMMU_FIMC_DRC>; 815 clocks = <&clock CLK_SMMU_FIMC_SCC>;
886 #iommu-cells = <0>; 816 #iommu-cells = <0>;
887 }; 817 };
888 818
889 sysmmu_fimc_fd: sysmmu@132A0000 { 819 sysmmu_fimc_scp: sysmmu@13290000 {
890 compatible = "samsung,exynos-sysmmu"; 820 compatible = "samsung,exynos-sysmmu";
891 reg = <0x132A0000 0x1000>; 821 reg = <0x13290000 0x1000>;
892 interrupt-parent = <&combiner>; 822 interrupt-parent = <&combiner>;
893 interrupts = <5 0>; 823 interrupts = <3 6>;
894 clock-names = "sysmmu"; 824 clock-names = "sysmmu";
895 clocks = <&clock CLK_SMMU_FIMC_FD>; 825 clocks = <&clock CLK_SMMU_FIMC_SCP>;
896 #iommu-cells = <0>; 826 #iommu-cells = <0>;
897 }; 827 };
898 828
899 sysmmu_fimc_scc: sysmmu@13280000 { 829 sysmmu_fimc_mcuctl: sysmmu@132B0000 {
900 compatible = "samsung,exynos-sysmmu"; 830 compatible = "samsung,exynos-sysmmu";
901 reg = <0x13280000 0x1000>; 831 reg = <0x132B0000 0x1000>;
902 interrupt-parent = <&combiner>; 832 interrupt-parent = <&combiner>;
903 interrupts = <5 2>; 833 interrupts = <5 4>;
904 clock-names = "sysmmu"; 834 clock-names = "sysmmu";
905 clocks = <&clock CLK_SMMU_FIMC_SCC>; 835 clocks = <&clock CLK_SMMU_FIMC_MCU>;
906 #iommu-cells = <0>; 836 #iommu-cells = <0>;
907 }; 837 };
908 838
909 sysmmu_fimc_scp: sysmmu@13290000 { 839 sysmmu_fimc_odc: sysmmu@132C0000 {
910 compatible = "samsung,exynos-sysmmu"; 840 compatible = "samsung,exynos-sysmmu";
911 reg = <0x13290000 0x1000>; 841 reg = <0x132C0000 0x1000>;
912 interrupt-parent = <&combiner>; 842 interrupt-parent = <&combiner>;
913 interrupts = <3 6>; 843 interrupts = <11 0>;
914 clock-names = "sysmmu"; 844 clock-names = "sysmmu";
915 clocks = <&clock CLK_SMMU_FIMC_SCP>; 845 clocks = <&clock CLK_SMMU_FIMC_ODC>;
916 #iommu-cells = <0>; 846 #iommu-cells = <0>;
917 }; 847 };
918 848
919 sysmmu_fimc_mcuctl: sysmmu@132B0000 { 849 sysmmu_fimc_dis0: sysmmu@132D0000 {
920 compatible = "samsung,exynos-sysmmu"; 850 compatible = "samsung,exynos-sysmmu";
921 reg = <0x132B0000 0x1000>; 851 reg = <0x132D0000 0x1000>;
922 interrupt-parent = <&combiner>; 852 interrupt-parent = <&combiner>;
923 interrupts = <5 4>; 853 interrupts = <10 4>;
924 clock-names = "sysmmu"; 854 clock-names = "sysmmu";
925 clocks = <&clock CLK_SMMU_FIMC_MCU>; 855 clocks = <&clock CLK_SMMU_FIMC_DIS0>;
926 #iommu-cells = <0>; 856 #iommu-cells = <0>;
927 }; 857 };
928 858
929 sysmmu_fimc_odc: sysmmu@132C0000 { 859 sysmmu_fimc_dis1: sysmmu@132E0000{
930 compatible = "samsung,exynos-sysmmu"; 860 compatible = "samsung,exynos-sysmmu";
931 reg = <0x132C0000 0x1000>; 861 reg = <0x132E0000 0x1000>;
932 interrupt-parent = <&combiner>; 862 interrupt-parent = <&combiner>;
933 interrupts = <11 0>; 863 interrupts = <9 4>;
934 clock-names = "sysmmu"; 864 clock-names = "sysmmu";
935 clocks = <&clock CLK_SMMU_FIMC_ODC>; 865 clocks = <&clock CLK_SMMU_FIMC_DIS1>;
936 #iommu-cells = <0>; 866 #iommu-cells = <0>;
937 }; 867 };
938 868
939 sysmmu_fimc_dis0: sysmmu@132D0000 { 869 sysmmu_fimc_3dnr: sysmmu@132F0000 {
940 compatible = "samsung,exynos-sysmmu"; 870 compatible = "samsung,exynos-sysmmu";
941 reg = <0x132D0000 0x1000>; 871 reg = <0x132F0000 0x1000>;
942 interrupt-parent = <&combiner>; 872 interrupt-parent = <&combiner>;
943 interrupts = <10 4>; 873 interrupts = <5 6>;
944 clock-names = "sysmmu"; 874 clock-names = "sysmmu";
945 clocks = <&clock CLK_SMMU_FIMC_DIS0>; 875 clocks = <&clock CLK_SMMU_FIMC_3DNR>;
946 #iommu-cells = <0>; 876 #iommu-cells = <0>;
947 }; 877 };
948 878
949 sysmmu_fimc_dis1: sysmmu@132E0000{ 879 sysmmu_fimc_lite0: sysmmu@13C40000 {
950 compatible = "samsung,exynos-sysmmu"; 880 compatible = "samsung,exynos-sysmmu";
951 reg = <0x132E0000 0x1000>; 881 reg = <0x13C40000 0x1000>;
952 interrupt-parent = <&combiner>; 882 interrupt-parent = <&combiner>;
953 interrupts = <9 4>; 883 interrupts = <3 4>;
954 clock-names = "sysmmu"; 884 power-domains = <&pd_gsc>;
955 clocks = <&clock CLK_SMMU_FIMC_DIS1>; 885 clock-names = "sysmmu", "master";
956 #iommu-cells = <0>; 886 clocks = <&clock CLK_SMMU_FIMC_LITE0>, <&clock CLK_CAMIF_TOP>;
957 }; 887 #iommu-cells = <0>;
888 };
958 889
959 sysmmu_fimc_3dnr: sysmmu@132F0000 { 890 sysmmu_fimc_lite1: sysmmu@13C50000 {
960 compatible = "samsung,exynos-sysmmu"; 891 compatible = "samsung,exynos-sysmmu";
961 reg = <0x132F0000 0x1000>; 892 reg = <0x13C50000 0x1000>;
962 interrupt-parent = <&combiner>; 893 interrupt-parent = <&combiner>;
963 interrupts = <5 6>; 894 interrupts = <24 1>;
964 clock-names = "sysmmu"; 895 power-domains = <&pd_gsc>;
965 clocks = <&clock CLK_SMMU_FIMC_3DNR>; 896 clock-names = "sysmmu", "master";
966 #iommu-cells = <0>; 897 clocks = <&clock CLK_SMMU_FIMC_LITE1>, <&clock CLK_CAMIF_TOP>;
967 }; 898 #iommu-cells = <0>;
899 };
968 900
969 sysmmu_fimc_lite0: sysmmu@13C40000 { 901 sysmmu_gsc0: sysmmu@13E80000 {
970 compatible = "samsung,exynos-sysmmu"; 902 compatible = "samsung,exynos-sysmmu";
971 reg = <0x13C40000 0x1000>; 903 reg = <0x13E80000 0x1000>;
972 interrupt-parent = <&combiner>; 904 interrupt-parent = <&combiner>;
973 interrupts = <3 4>; 905 interrupts = <2 0>;
974 power-domains = <&pd_gsc>; 906 power-domains = <&pd_gsc>;
975 clock-names = "sysmmu", "master"; 907 clock-names = "sysmmu", "master";
976 clocks = <&clock CLK_SMMU_FIMC_LITE0>, <&clock CLK_CAMIF_TOP>; 908 clocks = <&clock CLK_SMMU_GSCL0>, <&clock CLK_GSCL0>;
977 #iommu-cells = <0>; 909 #iommu-cells = <0>;
978 }; 910 };
979 911
980 sysmmu_fimc_lite1: sysmmu@13C50000 { 912 sysmmu_gsc1: sysmmu@13E90000 {
981 compatible = "samsung,exynos-sysmmu"; 913 compatible = "samsung,exynos-sysmmu";
982 reg = <0x13C50000 0x1000>; 914 reg = <0x13E90000 0x1000>;
983 interrupt-parent = <&combiner>; 915 interrupt-parent = <&combiner>;
984 interrupts = <24 1>; 916 interrupts = <2 2>;
985 power-domains = <&pd_gsc>; 917 power-domains = <&pd_gsc>;
986 clock-names = "sysmmu", "master"; 918 clock-names = "sysmmu", "master";
987 clocks = <&clock CLK_SMMU_FIMC_LITE1>, <&clock CLK_CAMIF_TOP>; 919 clocks = <&clock CLK_SMMU_GSCL1>, <&clock CLK_GSCL1>;
988 #iommu-cells = <0>; 920 #iommu-cells = <0>;
989 }; 921 };
990 922
991 sysmmu_gsc0: sysmmu@13E80000 { 923 sysmmu_gsc2: sysmmu@13EA0000 {
992 compatible = "samsung,exynos-sysmmu"; 924 compatible = "samsung,exynos-sysmmu";
993 reg = <0x13E80000 0x1000>; 925 reg = <0x13EA0000 0x1000>;
994 interrupt-parent = <&combiner>; 926 interrupt-parent = <&combiner>;
995 interrupts = <2 0>; 927 interrupts = <2 4>;
996 power-domains = <&pd_gsc>; 928 power-domains = <&pd_gsc>;
997 clock-names = "sysmmu", "master"; 929 clock-names = "sysmmu", "master";
998 clocks = <&clock CLK_SMMU_GSCL0>, <&clock CLK_GSCL0>; 930 clocks = <&clock CLK_SMMU_GSCL2>, <&clock CLK_GSCL2>;
999 #iommu-cells = <0>; 931 #iommu-cells = <0>;
1000 }; 932 };
1001 933
1002 sysmmu_gsc1: sysmmu@13E90000 { 934 sysmmu_gsc3: sysmmu@13EB0000 {
1003 compatible = "samsung,exynos-sysmmu"; 935 compatible = "samsung,exynos-sysmmu";
1004 reg = <0x13E90000 0x1000>; 936 reg = <0x13EB0000 0x1000>;
1005 interrupt-parent = <&combiner>; 937 interrupt-parent = <&combiner>;
1006 interrupts = <2 2>; 938 interrupts = <2 6>;
1007 power-domains = <&pd_gsc>; 939 power-domains = <&pd_gsc>;
1008 clock-names = "sysmmu", "master"; 940 clock-names = "sysmmu", "master";
1009 clocks = <&clock CLK_SMMU_GSCL1>, <&clock CLK_GSCL1>; 941 clocks = <&clock CLK_SMMU_GSCL3>, <&clock CLK_GSCL3>;
1010 #iommu-cells = <0>; 942 #iommu-cells = <0>;
1011 }; 943 };
1012 944
1013 sysmmu_gsc2: sysmmu@13EA0000 { 945 sysmmu_fimd1: sysmmu@14640000 {
1014 compatible = "samsung,exynos-sysmmu"; 946 compatible = "samsung,exynos-sysmmu";
1015 reg = <0x13EA0000 0x1000>; 947 reg = <0x14640000 0x1000>;
1016 interrupt-parent = <&combiner>; 948 interrupt-parent = <&combiner>;
1017 interrupts = <2 4>; 949 interrupts = <3 2>;
1018 power-domains = <&pd_gsc>; 950 power-domains = <&pd_disp1>;
1019 clock-names = "sysmmu", "master"; 951 clock-names = "sysmmu", "master";
1020 clocks = <&clock CLK_SMMU_GSCL2>, <&clock CLK_GSCL2>; 952 clocks = <&clock CLK_SMMU_FIMD1>, <&clock CLK_FIMD1>;
1021 #iommu-cells = <0>; 953 #iommu-cells = <0>;
1022 }; 954 };
1023 955
1024 sysmmu_gsc3: sysmmu@13EB0000 { 956 sysmmu_tv: sysmmu@14650000 {
1025 compatible = "samsung,exynos-sysmmu"; 957 compatible = "samsung,exynos-sysmmu";
1026 reg = <0x13EB0000 0x1000>; 958 reg = <0x14650000 0x1000>;
1027 interrupt-parent = <&combiner>; 959 interrupt-parent = <&combiner>;
1028 interrupts = <2 6>; 960 interrupts = <7 4>;
1029 power-domains = <&pd_gsc>; 961 power-domains = <&pd_disp1>;
1030 clock-names = "sysmmu", "master"; 962 clock-names = "sysmmu", "master";
1031 clocks = <&clock CLK_SMMU_GSCL3>, <&clock CLK_GSCL3>; 963 clocks = <&clock CLK_SMMU_TV>, <&clock CLK_MIXER>;
1032 #iommu-cells = <0>; 964 #iommu-cells = <0>;
965 };
1033 }; 966 };
1034 967
1035 sysmmu_fimd1: sysmmu@14640000 { 968 thermal-zones {
1036 compatible = "samsung,exynos-sysmmu"; 969 cpu_thermal: cpu-thermal {
1037 reg = <0x14640000 0x1000>; 970 polling-delay-passive = <0>;
1038 interrupt-parent = <&combiner>; 971 polling-delay = <0>;
1039 interrupts = <3 2>; 972 thermal-sensors = <&tmu 0>;
1040 power-domains = <&pd_disp1>;
1041 clock-names = "sysmmu", "master";
1042 clocks = <&clock CLK_SMMU_FIMD1>, <&clock CLK_FIMD1>;
1043 #iommu-cells = <0>;
1044 };
1045 973
1046 sysmmu_tv: sysmmu@14650000 { 974 cooling-maps {
1047 compatible = "samsung,exynos-sysmmu"; 975 map0 {
1048 reg = <0x14650000 0x1000>; 976 /* Corresponds to 800MHz at freq_table */
1049 interrupt-parent = <&combiner>; 977 cooling-device = <&cpu0 9 9>;
1050 interrupts = <7 4>; 978 };
1051 power-domains = <&pd_disp1>; 979 map1 {
1052 clock-names = "sysmmu", "master"; 980 /* Corresponds to 200MHz at freq_table */
1053 clocks = <&clock CLK_SMMU_TV>, <&clock CLK_MIXER>; 981 cooling-device = <&cpu0 15 15>;
1054 #iommu-cells = <0>; 982 };
983 };
984 };
1055 }; 985 };
1056}; 986};
1057 987
@@ -1070,6 +1000,39 @@
1070 iommus = <&sysmmu_fimd1>; 1000 iommus = <&sysmmu_fimd1>;
1071}; 1001};
1072 1002
1003&i2c_0 {
1004 clocks = <&clock CLK_I2C0>;
1005 clock-names = "i2c";
1006 pinctrl-names = "default";
1007 pinctrl-0 = <&i2c0_bus>;
1008};
1009
1010&i2c_1 {
1011 clocks = <&clock CLK_I2C1>;
1012 clock-names = "i2c";
1013 pinctrl-names = "default";
1014 pinctrl-0 = <&i2c1_bus>;
1015};
1016
1017&i2c_2 {
1018 clocks = <&clock CLK_I2C2>;
1019 clock-names = "i2c";
1020 pinctrl-names = "default";
1021 pinctrl-0 = <&i2c2_bus>;
1022};
1023
1024&i2c_3 {
1025 clocks = <&clock CLK_I2C3>;
1026 clock-names = "i2c";
1027 pinctrl-names = "default";
1028 pinctrl-0 = <&i2c3_bus>;
1029};
1030
1031&pwm {
1032 clocks = <&clock CLK_PWM>;
1033 clock-names = "timers";
1034};
1035
1073&rtc { 1036&rtc {
1074 clocks = <&clock CLK_RTC>; 1037 clocks = <&clock CLK_RTC>;
1075 clock-names = "rtc"; 1038 clock-names = "rtc";
diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
new file mode 100644
index 000000000000..d9499310a301
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -0,0 +1,580 @@
1/*
2 * Hardkernel Odroid XU board device tree source
3 *
4 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2016 Krzysztof Kozlowski
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13/dts-v1/;
14#include "exynos5410.dtsi"
15#include <dt-bindings/clock/maxim,max77802.h>
16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/interrupt-controller/irq.h>
18#include "exynos54xx-odroidxu-leds.dtsi"
19
20/ {
21 model = "Hardkernel Odroid XU";
22 compatible = "hardkernel,odroid-xu", "samsung,exynos5410", "samsung,exynos5";
23
24 memory {
25 reg = <0x40000000 0x7ea00000>;
26 };
27
28 chosen {
29 linux,stdout-path = &serial_2;
30 };
31
32 emmc_pwrseq: pwrseq {
33 pinctrl-0 = <&emmc_nrst_pin>;
34 pinctrl-names = "default";
35 compatible = "mmc-pwrseq-emmc";
36 reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
37 };
38
39 fan0: pwm-fan {
40 compatible = "pwm-fan";
41 pwms = <&pwm 0 20972 0>;
42 cooling-min-state = <0>;
43 cooling-max-state = <3>;
44 #cooling-cells = <2>;
45 cooling-levels = <0 130 170 230>;
46 };
47
48 fin_pll: xxti {
49 compatible = "fixed-clock";
50 clock-frequency = <24000000>;
51 clock-output-names = "fin_pll";
52 #clock-cells = <0>;
53 };
54
55 firmware@02073000 {
56 compatible = "samsung,secure-firmware";
57 reg = <0x02073000 0x1000>;
58 };
59};
60
61&cpu0_thermal {
62 thermal-sensors = <&tmu_cpu0 0>;
63 polling-delay-passive = <0>;
64 polling-delay = <0>;
65
66 trips {
67 cpu_alert0: cpu-alert-0 {
68 temperature = <50000>; /* millicelsius */
69 hysteresis = <5000>; /* millicelsius */
70 type = "active";
71 };
72 cpu_alert1: cpu-alert-1 {
73 temperature = <60000>; /* millicelsius */
74 hysteresis = <5000>; /* millicelsius */
75 type = "active";
76 };
77 cpu_alert2: cpu-alert-2 {
78 temperature = <70000>; /* millicelsius */
79 hysteresis = <5000>; /* millicelsius */
80 type = "active";
81 };
82 cpu_crit0: cpu-crit-0 {
83 temperature = <120000>; /* millicelsius */
84 hysteresis = <0>; /* millicelsius */
85 type = "critical";
86 };
87 };
88
89 cooling-maps {
90 map0 {
91 trip = <&cpu_alert0>;
92 cooling-device = <&fan0 0 1>;
93 };
94 map1 {
95 trip = <&cpu_alert1>;
96 cooling-device = <&fan0 1 2>;
97 };
98 map2 {
99 trip = <&cpu_alert2>;
100 cooling-device = <&fan0 2 3>;
101 };
102 };
103};
104
105&hsi2c_4 {
106 samsung,i2c-sda-delay = <100>;
107 samsung,i2c-max-bus-freq = <400000>;
108 status = "okay";
109
110 usb3503: usb-hub@08 {
111 compatible = "smsc,usb3503";
112 reg = <0x08>;
113
114 intn-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH>;
115 connect-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
116 reset-gpios = <&gpx1 4 GPIO_ACTIVE_HIGH>;
117 initial-mode = <1>;
118
119 clock-names = "refclk";
120 clocks = <&pmu_system_controller 0>;
121 refclk-frequency = <24000000>;
122 };
123
124 max77802: pmic@09 {
125 compatible = "maxim,max77802";
126 reg = <0x9>;
127 interrupt-parent = <&gpx0>;
128 interrupts = <4 IRQ_TYPE_NONE>;
129 pinctrl-names = "default";
130 pinctrl-0 = <&max77802_irq>, <&pmic_dvs_1>, <&pmic_dvs_2>,
131 <&pmic_dvs_3>;
132 #clock-cells = <1>;
133
134 inl1-supply = <&buck5_reg>;
135 inl2-supply = <&buck7_reg>;
136 inl3-supply = <&buck9_reg>;
137 inl4-supply = <&buck9_reg>;
138 inl5-supply = <&buck9_reg>;
139 inl6-supply = <&buck10_reg>;
140 inl7-supply = <&buck9_reg>;
141 /* inl9 supply is BOOST, not configured here */
142 inl10-supply = <&buck7_reg>;
143
144 regulators {
145 buck1_reg: BUCK1 {
146 regulator-name = "vdd_mif";
147 regulator-min-microvolt = <800000>;
148 regulator-max-microvolt = <1300000>;
149 regulator-always-on;
150 regulator-boot-on;
151 };
152
153 buck2_reg: BUCK2 {
154 regulator-name = "vdd_arm";
155 regulator-min-microvolt = <800000>;
156 regulator-max-microvolt = <1500000>;
157 regulator-always-on;
158 regulator-boot-on;
159 };
160
161 buck3_reg: BUCK3 {
162 regulator-name = "vdd_int";
163 regulator-min-microvolt = <800000>;
164 regulator-max-microvolt = <1400000>;
165 regulator-always-on;
166 regulator-boot-on;
167 };
168
169 buck4_reg: BUCK4 {
170 regulator-name = "vdd_g3d";
171 regulator-min-microvolt = <800000>;
172 regulator-max-microvolt = <1400000>;
173 regulator-always-on;
174 regulator-boot-on;
175 };
176
177 buck5_reg: BUCK5 {
178 regulator-name = "vdd_mem";
179 regulator-min-microvolt = <800000>;
180 regulator-max-microvolt = <1500000>;
181 regulator-always-on;
182 regulator-boot-on;
183 };
184
185 buck6_reg: BUCK6 {
186 regulator-name = "vdd_kfc";
187 regulator-min-microvolt = <800000>;
188 regulator-max-microvolt = <1500000>;
189 regulator-always-on;
190 regulator-boot-on;
191 };
192
193 buck7_reg: BUCK7 {
194 regulator-name = "buck7";
195 regulator-min-microvolt = <1300000>;
196 regulator-max-microvolt = <1300000>;
197 regulator-always-on;
198 regulator-boot-on;
199 };
200
201 buck8_reg: BUCK8 {
202 /* vdd_mmc0 */
203 regulator-name = "vddf_2v85";
204 regulator-min-microvolt = <2850000>;
205 regulator-max-microvolt = <2850000>;
206 regulator-always-on;
207 regulator-boot-on;
208 };
209
210 buck9_reg: BUCK9 {
211 regulator-name = "buck9";
212 regulator-min-microvolt = <3000000>;
213 regulator-max-microvolt = <3000000>;
214 regulator-always-on;
215 regulator-boot-on;
216 };
217
218 buck10_reg: BUCK10 {
219 regulator-name = "buck10";
220 regulator-min-microvolt = <2950000>;
221 regulator-max-microvolt = <2950000>;
222 regulator-always-on;
223 regulator-boot-on;
224 };
225
226 ldo1_reg: LDO1 {
227 regulator-name = "vdd_alive";
228 regulator-min-microvolt = <1000000>;
229 regulator-max-microvolt = <1000000>;
230 regulator-always-on;
231 };
232
233 ldo2_reg: LDO2 {
234 regulator-name = "vddq_m1_m2";
235 regulator-min-microvolt = <1200000>;
236 regulator-max-microvolt = <1200000>;
237 regulator-always-on;
238 };
239
240 ldo3_reg: LDO3 {
241 regulator-name = "vddq_gpio";
242 regulator-min-microvolt = <1800000>;
243 regulator-max-microvolt = <1800000>;
244 regulator-always-on;
245 };
246
247 ldo4_reg: LDO4 {
248 regulator-name = "vddq_mmc2";
249 regulator-min-microvolt = <1800000>;
250 regulator-max-microvolt = <3000000>;
251 /* Having it off prevents reboot */
252 regulator-always-on;
253 };
254
255 ldo5_reg: LDO5 {
256 regulator-name = "vdd18_hsic";
257 regulator-min-microvolt = <1800000>;
258 regulator-max-microvolt = <1800000>;
259 regulator-always-on;
260 };
261
262 ldo6_reg: LDO6 {
263 regulator-name = "vdd18_bpll";
264 regulator-min-microvolt = <1800000>;
265 regulator-max-microvolt = <1800000>;
266 regulator-always-on;
267 };
268
269 ldo7_reg: LDO7 {
270 regulator-name = "vddq_lcd";
271 regulator-min-microvolt = <1800000>;
272 regulator-max-microvolt = <1800000>;
273 };
274
275 ldo8_reg: LDO8 {
276 regulator-name = "vdd10_hdmi";
277 regulator-min-microvolt = <1000000>;
278 regulator-max-microvolt = <1000000>;
279 regulator-always-on;
280 };
281
282 ldo9_reg: LDO9 {
283 regulator-name = "ldo9";
284 };
285
286 ldo10_reg: LDO10 {
287 regulator-name = "vdd18_mipi";
288 regulator-min-microvolt = <1800000>;
289 regulator-max-microvolt = <1800000>;
290 regulator-always-on;
291 };
292
293 ldo11_reg: LDO11 {
294 regulator-name = "vddq_mmc01";
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <1800000>;
297 /*
298 * Having it off prevents accessing MMC after
299 * reboot with error:
300 * MMC Device 1: Clock OFF has been failed.
301 */
302 regulator-always-on;
303 };
304
305 ldo12_reg: LDO12 {
306 regulator-name = "vdd33_usb3";
307 regulator-min-microvolt = <3300000>;
308 regulator-max-microvolt = <3300000>;
309 regulator-always-on;
310 };
311
312 ldo13_reg: LDO13 {
313 regulator-name = "vddq_abbg0";
314 regulator-min-microvolt = <1800000>;
315 regulator-max-microvolt = <1800000>;
316 regulator-always-on;
317 };
318
319 ldo14_reg: LDO14 {
320 regulator-name = "vddq_abbg1";
321 regulator-min-microvolt = <1800000>;
322 regulator-max-microvolt = <1800000>;
323 regulator-always-on;
324 };
325
326 ldo15_reg: LDO15 {
327 regulator-name = "vdd10_usb3";
328 regulator-min-microvolt = <1000000>;
329 regulator-max-microvolt = <1000000>;
330 regulator-always-on;
331 };
332
333 ldo16_reg: LDO16 {
334 regulator-name = "ldo16";
335 };
336
337 ldo17_reg: LDO17 {
338 regulator-name = "cam_sensor_core";
339 regulator-min-microvolt = <1200000>;
340 regulator-max-microvolt = <1200000>;
341 };
342
343 ldo18_reg: LDO18 {
344 regulator-name = "ldo18";
345 regulator-min-microvolt = <1800000>;
346 regulator-max-microvolt = <1800000>;
347 };
348
349 ldo19_reg: LDO19 {
350 regulator-name = "ldo19";
351 };
352
353 ldo20_reg: LDO20 {
354 regulator-name = "vdd_mmc0";
355 regulator-min-microvolt = <1800000>;
356 regulator-max-microvolt = <1800000>;
357 };
358
359 ldo21_reg: LDO21 {
360 /* vdd_mmc2 */
361 regulator-name = "vddf_2v8";
362 regulator-min-microvolt = <2850000>;
363 regulator-max-microvolt = <2850000>;
364 };
365
366 ldo22_reg: LDO22 {
367 regulator-name = "ldo22";
368 };
369
370 ldo23_reg: LDO23 {
371 regulator-name = "dp_p3v3";
372 regulator-min-microvolt = <3300000>;
373 regulator-max-microvolt = <3300000>;
374 regulator-always-on;
375 };
376
377 ldo24_reg: LDO24 {
378 regulator-name = "cam_af";
379 regulator-min-microvolt = <2800000>;
380 regulator-max-microvolt = <2800000>;
381 };
382
383 ldo25_reg: LDO25 {
384 regulator-name = "eth_p3v3";
385 regulator-min-microvolt = <3300000>;
386 regulator-max-microvolt = <3300000>;
387 regulator-always-on;
388 };
389
390 ldo26_reg: LDO26 {
391 regulator-name = "usb30_extclk";
392 regulator-min-microvolt = <3300000>;
393 regulator-max-microvolt = <3300000>;
394 regulator-always-on;
395 };
396
397 ldo27_reg: LDO27 {
398 regulator-name = "ldo27";
399 };
400
401 ldo28_reg: LDO28 {
402 regulator-name = "ldo28";
403 };
404
405 ldo29_reg: LDO29 {
406 regulator-name = "ldo29";
407 };
408
409 ldo30_reg: LDO30 {
410 regulator-name = "vddq_e1_e2";
411 regulator-min-microvolt = <1200000>;
412 regulator-max-microvolt = <1200000>;
413 regulator-always-on;
414 };
415
416 ldo31_reg: LDO31 {
417 regulator-name = "ldo31";
418 };
419
420 /* On revisions with ti,ina231 this is sensor VS */
421 ldo32_reg: LDO32 {
422 regulator-name = "vs_power_meter";
423 regulator-min-microvolt = <3300000>;
424 regulator-max-microvolt = <3300000>;
425 };
426
427 ldo33_reg: LDO33 {
428 regulator-name = "ldo33";
429 };
430
431 ldo34_reg: LDO34 {
432 regulator-name = "ldo34";
433 };
434
435 ldo35_reg: LDO35 {
436 regulator-name = "ldo35";
437 };
438 };
439 };
440};
441
442&mmc_0 {
443 status = "okay";
444 mmc-pwrseq = <&emmc_pwrseq>;
445 cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>;
446 card-detect-delay = <200>;
447 samsung,dw-mshc-ciu-div = <3>;
448 samsung,dw-mshc-sdr-timing = <0 4>;
449 samsung,dw-mshc-ddr-timing = <0 2>;
450 samsung,dw-mshc-hs400-timing = <0 2>;
451 samsung,read-strobe-delay = <90>;
452 pinctrl-names = "default";
453 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd>;
454 bus-width = <8>;
455 cap-mmc-highspeed;
456 mmc-hs200-1_8v;
457 mmc-hs400-1_8v;
458 vmmc-supply = <&ldo20_reg>;
459 vqmmc-supply = <&ldo11_reg>;
460};
461
462&mmc_2 {
463 status = "okay";
464 card-detect-delay = <200>;
465 samsung,dw-mshc-ciu-div = <3>;
466 samsung,dw-mshc-sdr-timing = <0 4>;
467 samsung,dw-mshc-ddr-timing = <0 2>;
468 pinctrl-names = "default";
469 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
470 bus-width = <4>;
471 cap-sd-highspeed;
472 vmmc-supply = <&ldo21_reg>;
473 vqmmc-supply = <&ldo4_reg>;
474};
475
476&pinctrl_0 {
477 emmc_nrst_pin: emmc-nrst {
478 samsung,pins = "gpd1-0";
479 samsung,pin-function = <2>;
480 samsung,pin-pud = <0>;
481 samsung,pin-drv = <0>;
482 };
483
484 pmic_dvs_3: pmic-dvs-3 {
485 samsung,pins = "gpx0-0";
486 samsung,pin-function = <1>;
487 samsung,pin-pud = <0>;
488 samsung,pin-drv = <0>;
489 };
490
491 pmic_dvs_2: pmic-dvs-2 {
492 samsung,pins = "gpx0-1";
493 samsung,pin-function = <1>;
494 samsung,pin-pud = <0>;
495 samsung,pin-drv = <0>;
496 };
497
498 pmic_dvs_1: pmic-dvs-1 {
499 samsung,pins = "gpx0-2";
500 samsung,pin-function = <1>;
501 samsung,pin-pud = <0>;
502 samsung,pin-drv = <0>;
503 samsung,pin-val = <1>;
504 };
505
506 max77802_irq: max77802-irq {
507 samsung,pins = "gpx0-4";
508 samsung,pin-function = <0xf>;
509 samsung,pin-pud = <0>;
510 samsung,pin-drv = <0>;
511 };
512};
513
514&pwm {
515 /*
516 * PWM 0 -- fan
517 * PWM 1 -- Green LED
518 * PWM 2 -- Blue LED
519 * PWM 3 -- on MIPI connector for backlight
520 */
521 pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>;
522 pinctrl-names = "default";
523 status = "okay";
524};
525
526&rtc {
527 status = "okay";
528 clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
529 clock-names = "rtc", "rtc_src";
530};
531
532&serial_0 {
533 status = "okay";
534};
535
536&serial_1 {
537 status = "okay";
538};
539
540&serial_2 {
541 status = "okay";
542};
543
544&serial_3 {
545 status = "okay";
546};
547
548&tmu_cpu0 {
549 vtmu-supply = <&ldo10_reg>;
550};
551
552&tmu_cpu1 {
553 vtmu-supply = <&ldo10_reg>;
554};
555
556&tmu_cpu2 {
557 vtmu-supply = <&ldo10_reg>;
558};
559
560&tmu_cpu3 {
561 vtmu-supply = <&ldo10_reg>;
562};
563
564&usbdrd_dwc3_0 {
565 dr_mode = "host";
566};
567
568&usbdrd_dwc3_1 {
569 dr_mode = "peripheral";
570};
571
572&usbdrd3_0 {
573 vdd33-supply = <&ldo12_reg>;
574 vdd10-supply = <&ldo15_reg>;
575};
576
577&usbdrd3_1 {
578 vdd33-supply = <&ldo12_reg>;
579 vdd10-supply = <&ldo15_reg>;
580};
diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
index f9aa6bb55464..b58a0f29f42c 100644
--- a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
@@ -277,6 +277,216 @@
277 interrupt-controller; 277 interrupt-controller;
278 #interrupt-cells = <2>; 278 #interrupt-cells = <2>;
279 }; 279 };
280
281 uart0_data: uart0-data {
282 samsung,pins = "gpa0-0", "gpa0-1";
283 samsung,pin-function = <2>;
284 samsung,pin-pud = <0>;
285 samsung,pin-drv = <0>;
286 };
287
288 uart0_fctl: uart0-fctl {
289 samsung,pins = "gpa0-2", "gpa0-3";
290 samsung,pin-function = <2>;
291 samsung,pin-pud = <0>;
292 samsung,pin-drv = <0>;
293 };
294
295 uart1_data: uart1-data {
296 samsung,pins = "gpa0-4", "gpa0-5";
297 samsung,pin-function = <2>;
298 samsung,pin-pud = <0>;
299 samsung,pin-drv = <0>;
300 };
301
302 uart1_fctl: uart1-fctl {
303 samsung,pins = "gpa0-6", "gpa0-7";
304 samsung,pin-function = <2>;
305 samsung,pin-pud = <0>;
306 samsung,pin-drv = <0>;
307 };
308
309 i2c2_bus: i2c2-bus {
310 samsung,pins = "gpa0-6", "gpa0-7";
311 samsung,pin-function = <3>;
312 samsung,pin-pud = <3>;
313 samsung,pin-drv = <0>;
314 };
315
316 uart2_data: uart2-data {
317 samsung,pins = "gpa1-0", "gpa1-1";
318 samsung,pin-function = <2>;
319 samsung,pin-pud = <0>;
320 samsung,pin-drv = <0>;
321 };
322
323 uart2_fctl: uart2-fctl {
324 samsung,pins = "gpa1-2", "gpa1-3";
325 samsung,pin-function = <2>;
326 samsung,pin-pud = <0>;
327 samsung,pin-drv = <0>;
328 };
329
330 i2c3_bus: i2c3-bus {
331 samsung,pins = "gpa1-2", "gpa1-3";
332 samsung,pin-function = <3>;
333 samsung,pin-pud = <3>;
334 samsung,pin-drv = <0>;
335 };
336
337 uart3_data: uart3-data {
338 samsung,pins = "gpa1-4", "gpa1-5";
339 samsung,pin-function = <2>;
340 samsung,pin-pud = <0>;
341 samsung,pin-drv = <0>;
342 };
343
344 i2c4_hs_bus: i2c4-hs-bus {
345 samsung,pins = "gpa2-0", "gpa2-1";
346 samsung,pin-function = <3>;
347 samsung,pin-pud = <3>;
348 samsung,pin-drv = <0>;
349 };
350
351 i2c5_hs_bus: i2c5-hs-bus {
352 samsung,pins = "gpa2-2", "gpa2-3";
353 samsung,pin-function = <3>;
354 samsung,pin-pud = <3>;
355 samsung,pin-drv = <0>;
356 };
357
358 i2c6_hs_bus: i2c6-hs-bus {
359 samsung,pins = "gpb1-3", "gpb1-4";
360 samsung,pin-function = <4>;
361 samsung,pin-pud = <3>;
362 samsung,pin-drv = <0>;
363 };
364
365 pwm0_out: pwm0-out {
366 samsung,pins = "gpb2-0";
367 samsung,pin-function = <2>;
368 samsung,pin-pud = <0>;
369 samsung,pin-drv = <0>;
370 };
371
372 pwm1_out: pwm1-out {
373 samsung,pins = "gpb2-1";
374 samsung,pin-function = <2>;
375 samsung,pin-pud = <0>;
376 samsung,pin-drv = <0>;
377 };
378
379 pwm2_out: pwm2-out {
380 samsung,pins = "gpb2-2";
381 samsung,pin-function = <2>;
382 samsung,pin-pud = <0>;
383 samsung,pin-drv = <0>;
384 };
385
386 pwm3_out: pwm3-out {
387 samsung,pins = "gpb2-3";
388 samsung,pin-function = <2>;
389 samsung,pin-pud = <0>;
390 samsung,pin-drv = <0>;
391 };
392
393 i2c7_hs_bus: i2c7-hs-bus {
394 samsung,pins = "gpb2-2", "gpb2-3";
395 samsung,pin-function = <3>;
396 samsung,pin-pud = <3>;
397 samsung,pin-drv = <0>;
398 };
399
400 i2c0_bus: i2c0-bus {
401 samsung,pins = "gpb3-0", "gpb3-1";
402 samsung,pin-function = <2>;
403 samsung,pin-pud = <3>;
404 samsung,pin-drv = <0>;
405 };
406
407 i2c1_bus: i2c1-bus {
408 samsung,pins = "gpb3-2", "gpb3-3";
409 samsung,pin-function = <2>;
410 samsung,pin-pud = <3>;
411 samsung,pin-drv = <0>;
412 };
413
414 sd0_clk: sd0-clk {
415 samsung,pins = "gpc0-0";
416 samsung,pin-function = <2>;
417 samsung,pin-pud = <0>;
418 samsung,pin-drv = <3>;
419 };
420
421 sd0_cmd: sd0-cmd {
422 samsung,pins = "gpc0-1";
423 samsung,pin-function = <2>;
424 samsung,pin-pud = <0>;
425 samsung,pin-drv = <3>;
426 };
427
428 sd0_cd: sd0-cd {
429 samsung,pins = "gpc0-2";
430 samsung,pin-function = <2>;
431 samsung,pin-pud = <3>;
432 samsung,pin-drv = <3>;
433 };
434
435 sd0_bus1: sd0-bus-width1 {
436 samsung,pins = "gpc0-3";
437 samsung,pin-function = <2>;
438 samsung,pin-pud = <3>;
439 samsung,pin-drv = <3>;
440 };
441
442 sd0_bus4: sd0-bus-width4 {
443 samsung,pins = "gpc0-4", "gpc0-5", "gpc0-6";
444 samsung,pin-function = <2>;
445 samsung,pin-pud = <3>;
446 samsung,pin-drv = <3>;
447 };
448
449 sd2_clk: sd2-clk {
450 samsung,pins = "gpc2-0";
451 samsung,pin-function = <2>;
452 samsung,pin-pud = <0>;
453 samsung,pin-drv = <3>;
454 };
455
456 sd2_cmd: sd2-cmd {
457 samsung,pins = "gpc2-1";
458 samsung,pin-function = <2>;
459 samsung,pin-pud = <0>;
460 samsung,pin-drv = <3>;
461 };
462
463 sd2_cd: sd2-cd {
464 samsung,pins = "gpc2-2";
465 samsung,pin-function = <2>;
466 samsung,pin-pud = <3>;
467 samsung,pin-drv = <3>;
468 };
469
470 sd2_bus1: sd2-bus-width1 {
471 samsung,pins = "gpc2-3";
472 samsung,pin-function = <2>;
473 samsung,pin-pud = <3>;
474 samsung,pin-drv = <3>;
475 };
476
477 sd2_bus4: sd2-bus-width4 {
478 samsung,pins = "gpc2-4", "gpc2-5", "gpc2-6";
479 samsung,pin-function = <2>;
480 samsung,pin-pud = <3>;
481 samsung,pin-drv = <3>;
482 };
483
484 sd0_bus8: sd0-bus-width8 {
485 samsung,pins = "gpc3-0", "gpc3-1", "gpc3-2", "gpc3-3";
486 samsung,pin-function = <2>;
487 samsung,pin-pud = <3>;
488 samsung,pin-drv = <3>;
489 };
280}; 490};
281 491
282&pinctrl_1 { 492&pinctrl_1 {
diff --git a/arch/arm/boot/dts/exynos5410-smdk5410.dts b/arch/arm/boot/dts/exynos5410-smdk5410.dts
index 0f6429e1b75c..777fcf2edd79 100644
--- a/arch/arm/boot/dts/exynos5410-smdk5410.dts
+++ b/arch/arm/boot/dts/exynos5410-smdk5410.dts
@@ -102,14 +102,14 @@
102 }; 102 };
103}; 103};
104 104
105&uart0 { 105&serial_0 {
106 status = "okay"; 106 status = "okay";
107}; 107};
108 108
109&uart1 { 109&serial_1 {
110 status = "okay"; 110 status = "okay";
111}; 111};
112 112
113&uart2 { 113&serial_2 {
114 status = "okay"; 114 status = "okay";
115}; 115};
diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
index 7a56aec2c5ba..137f48464f8b 100644
--- a/arch/arm/boot/dts/exynos5410.dtsi
+++ b/arch/arm/boot/dts/exynos5410.dtsi
@@ -13,9 +13,10 @@
13 * published by the Free Software Foundation. 13 * published by the Free Software Foundation.
14 */ 14 */
15 15
16#include "skeleton.dtsi" 16#include "exynos54xx.dtsi"
17#include "exynos-syscon-restart.dtsi" 17#include "exynos-syscon-restart.dtsi"
18#include <dt-bindings/clock/exynos5410.h> 18#include <dt-bindings/clock/exynos5410.h>
19#include <dt-bindings/interrupt-controller/arm-gic.h>
19 20
20/ { 21/ {
21 compatible = "samsung,exynos5410", "samsung,exynos5"; 22 compatible = "samsung,exynos5410", "samsung,exynos5";
@@ -26,37 +27,34 @@
26 pinctrl1 = &pinctrl_1; 27 pinctrl1 = &pinctrl_1;
27 pinctrl2 = &pinctrl_2; 28 pinctrl2 = &pinctrl_2;
28 pinctrl3 = &pinctrl_3; 29 pinctrl3 = &pinctrl_3;
29 serial0 = &uart0;
30 serial1 = &uart1;
31 serial2 = &uart2;
32 }; 30 };
33 31
34 cpus { 32 cpus {
35 #address-cells = <1>; 33 #address-cells = <1>;
36 #size-cells = <0>; 34 #size-cells = <0>;
37 35
38 CPU0: cpu@0 { 36 cpu0: cpu@0 {
39 device_type = "cpu"; 37 device_type = "cpu";
40 compatible = "arm,cortex-a15"; 38 compatible = "arm,cortex-a15";
41 reg = <0x0>; 39 reg = <0x0>;
42 clock-frequency = <1600000000>; 40 clock-frequency = <1600000000>;
43 }; 41 };
44 42
45 CPU1: cpu@1 { 43 cpu1: cpu@1 {
46 device_type = "cpu"; 44 device_type = "cpu";
47 compatible = "arm,cortex-a15"; 45 compatible = "arm,cortex-a15";
48 reg = <0x1>; 46 reg = <0x1>;
49 clock-frequency = <1600000000>; 47 clock-frequency = <1600000000>;
50 }; 48 };
51 49
52 CPU2: cpu@2 { 50 cpu2: cpu@2 {
53 device_type = "cpu"; 51 device_type = "cpu";
54 compatible = "arm,cortex-a15"; 52 compatible = "arm,cortex-a15";
55 reg = <0x2>; 53 reg = <0x2>;
56 clock-frequency = <1600000000>; 54 clock-frequency = <1600000000>;
57 }; 55 };
58 56
59 CPU3: cpu@3 { 57 cpu3: cpu@3 {
60 device_type = "cpu"; 58 device_type = "cpu";
61 compatible = "arm,cortex-a15"; 59 compatible = "arm,cortex-a15";
62 reg = <0x3>; 60 reg = <0x3>;
@@ -70,105 +68,54 @@
70 #size-cells = <1>; 68 #size-cells = <1>;
71 ranges; 69 ranges;
72 70
73 combiner: interrupt-controller@10440000 {
74 compatible = "samsung,exynos4210-combiner";
75 #interrupt-cells = <2>;
76 interrupt-controller;
77 samsung,combiner-nr = <32>;
78 reg = <0x10440000 0x1000>;
79 interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
80 <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
81 <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
82 <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>,
83 <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>,
84 <0 20 0>, <0 21 0>, <0 22 0>, <0 23 0>,
85 <0 24 0>, <0 25 0>, <0 26 0>, <0 27 0>,
86 <0 28 0>, <0 29 0>, <0 30 0>, <0 31 0>;
87 };
88
89 gic: interrupt-controller@10481000 {
90 compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
91 #interrupt-cells = <3>;
92 interrupt-controller;
93 reg = <0x10481000 0x1000>,
94 <0x10482000 0x1000>,
95 <0x10484000 0x2000>,
96 <0x10486000 0x2000>;
97 interrupts = <1 9 0xf04>;
98 };
99
100 chipid@10000000 {
101 compatible = "samsung,exynos4210-chipid";
102 reg = <0x10000000 0x100>;
103 };
104
105 sromc: memory-controller@12250000 {
106 compatible = "samsung,exynos4210-srom";
107 reg = <0x12250000 0x14>;
108 #address-cells = <2>;
109 #size-cells = <1>;
110 ranges = <0 0 0x04000000 0x20000
111 1 0 0x05000000 0x20000
112 2 0 0x06000000 0x20000
113 3 0 0x07000000 0x20000>;
114 };
115
116 pmu_system_controller: system-controller@10040000 { 71 pmu_system_controller: system-controller@10040000 {
117 compatible = "samsung,exynos5410-pmu", "syscon"; 72 compatible = "samsung,exynos5410-pmu", "syscon";
118 reg = <0x10040000 0x5000>; 73 reg = <0x10040000 0x5000>;
74 clock-names = "clkout16";
75 clocks = <&fin_pll>;
76 #clock-cells = <1>;
119 }; 77 };
120 78
121 mct: mct@101C0000 { 79 clock: clock-controller@10010000 {
122 compatible = "samsung,exynos4210-mct"; 80 compatible = "samsung,exynos5410-clock";
123 reg = <0x101C0000 0xB00>; 81 reg = <0x10010000 0x30000>;
124 interrupt-parent = <&interrupt_map>; 82 #clock-cells = <1>;
125 interrupts = <0>, <1>, <2>, <3>,
126 <4>, <5>, <6>, <7>,
127 <8>, <9>, <10>, <11>;
128 clocks = <&fin_pll>, <&clock CLK_MCT>;
129 clock-names = "fin_pll", "mct";
130
131 interrupt_map: interrupt-map {
132 #interrupt-cells = <1>;
133 #address-cells = <0>;
134 #size-cells = <0>;
135 interrupt-map = <0 &combiner 23 3>,
136 <1 &combiner 23 4>,
137 <2 &combiner 25 2>,
138 <3 &combiner 25 3>,
139 <4 &gic 0 120 0>,
140 <5 &gic 0 121 0>,
141 <6 &gic 0 122 0>,
142 <7 &gic 0 123 0>,
143 <8 &gic 0 128 0>,
144 <9 &gic 0 129 0>,
145 <10 &gic 0 130 0>,
146 <11 &gic 0 131 0>;
147 };
148 }; 83 };
149 84
150 sysram@02020000 { 85 tmu_cpu0: tmu@10060000 {
151 compatible = "mmio-sram"; 86 compatible = "samsung,exynos5420-tmu";
152 reg = <0x02020000 0x54000>; 87 reg = <0x10060000 0x100>;
153 #address-cells = <1>; 88 interrupts = <GIC_SPI 65 0>;
154 #size-cells = <1>; 89 clocks = <&clock CLK_TMU>;
155 ranges = <0 0x02020000 0x54000>; 90 clock-names = "tmu_apbif";
91 #include "exynos4412-tmu-sensor-conf.dtsi"
92 };
156 93
157 smp-sysram@0 { 94 tmu_cpu1: tmu@10064000 {
158 compatible = "samsung,exynos4210-sysram"; 95 compatible = "samsung,exynos5420-tmu";
159 reg = <0x0 0x1000>; 96 reg = <0x10064000 0x100>;
160 }; 97 interrupts = <GIC_SPI 183 0>;
98 clocks = <&clock CLK_TMU>;
99 clock-names = "tmu_apbif";
100 #include "exynos4412-tmu-sensor-conf.dtsi"
101 };
161 102
162 smp-sysram@53000 { 103 tmu_cpu2: tmu@10068000 {
163 compatible = "samsung,exynos4210-sysram-ns"; 104 compatible = "samsung,exynos5420-tmu";
164 reg = <0x53000 0x1000>; 105 reg = <0x10068000 0x100>;
165 }; 106 interrupts = <GIC_SPI 184 0>;
107 clocks = <&clock CLK_TMU>;
108 clock-names = "tmu_apbif";
109 #include "exynos4412-tmu-sensor-conf.dtsi"
166 }; 110 };
167 111
168 clock: clock-controller@10010000 { 112 tmu_cpu3: tmu@1006c000 {
169 compatible = "samsung,exynos5410-clock"; 113 compatible = "samsung,exynos5420-tmu";
170 reg = <0x10010000 0x30000>; 114 reg = <0x1006c000 0x100>;
171 #clock-cells = <1>; 115 interrupts = <GIC_SPI 185 0>;
116 clocks = <&clock CLK_TMU>;
117 clock-names = "tmu_apbif";
118 #include "exynos4412-tmu-sensor-conf.dtsi"
172 }; 119 };
173 120
174 mmc_0: mmc@12200000 { 121 mmc_0: mmc@12200000 {
@@ -236,34 +183,182 @@
236 reg = <0x03860000 0x1000>; 183 reg = <0x03860000 0x1000>;
237 interrupts = <0 47 0>; 184 interrupts = <0 47 0>;
238 }; 185 };
186 };
239 187
240 uart0: serial@12C00000 { 188 thermal-zones {
241 compatible = "samsung,exynos4210-uart"; 189 cpu0_thermal: cpu0-thermal {
242 reg = <0x12C00000 0x100>; 190 thermal-sensors = <&tmu_cpu0>;
243 interrupts = <0 51 0>; 191 #include "exynos5420-trip-points.dtsi"
244 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
245 clock-names = "uart", "clk_uart_baud0";
246 status = "disabled";
247 }; 192 };
248 193 cpu1_thermal: cpu1-thermal {
249 uart1: serial@12C10000 { 194 thermal-sensors = <&tmu_cpu1>;
250 compatible = "samsung,exynos4210-uart"; 195 #include "exynos5420-trip-points.dtsi"
251 reg = <0x12C10000 0x100>;
252 interrupts = <0 52 0>;
253 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
254 clock-names = "uart", "clk_uart_baud0";
255 status = "disabled";
256 }; 196 };
257 197 cpu2_thermal: cpu2-thermal {
258 uart2: serial@12C20000 { 198 thermal-sensors = <&tmu_cpu2>;
259 compatible = "samsung,exynos4210-uart"; 199 #include "exynos5420-trip-points.dtsi"
260 reg = <0x12C20000 0x100>; 200 };
261 interrupts = <0 53 0>; 201 cpu3_thermal: cpu3-thermal {
262 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>; 202 thermal-sensors = <&tmu_cpu3>;
263 clock-names = "uart", "clk_uart_baud0"; 203 #include "exynos5420-trip-points.dtsi"
264 status = "disabled";
265 }; 204 };
266 }; 205 };
267}; 206};
268 207
208&i2c_0 {
209 clocks = <&clock CLK_I2C0>;
210 clock-names = "i2c";
211 pinctrl-names = "default";
212 pinctrl-0 = <&i2c0_bus>;
213};
214
215&i2c_1 {
216 clocks = <&clock CLK_I2C1>;
217 clock-names = "i2c";
218 pinctrl-names = "default";
219 pinctrl-0 = <&i2c1_bus>;
220};
221
222&i2c_2 {
223 clocks = <&clock CLK_I2C2>;
224 clock-names = "i2c";
225 pinctrl-names = "default";
226 pinctrl-0 = <&i2c2_bus>;
227};
228
229&i2c_3 {
230 clocks = <&clock CLK_I2C3>;
231 clock-names = "i2c";
232 pinctrl-names = "default";
233 pinctrl-0 = <&i2c3_bus>;
234};
235
236&hsi2c_4 {
237 clocks = <&clock CLK_USI0>;
238 clock-names = "hsi2c";
239 pinctrl-names = "default";
240 pinctrl-0 = <&i2c4_hs_bus>;
241};
242
243&hsi2c_5 {
244 clocks = <&clock CLK_USI1>;
245 clock-names = "hsi2c";
246 pinctrl-names = "default";
247 pinctrl-0 = <&i2c5_hs_bus>;
248};
249
250&hsi2c_6 {
251 clocks = <&clock CLK_USI2>;
252 clock-names = "hsi2c";
253 pinctrl-names = "default";
254 pinctrl-0 = <&i2c6_hs_bus>;
255};
256
257&hsi2c_7 {
258 clocks = <&clock CLK_USI3>;
259 clock-names = "hsi2c";
260 pinctrl-names = "default";
261 pinctrl-0 = <&i2c7_hs_bus>;
262};
263
264&mct {
265 clocks = <&fin_pll>, <&clock CLK_MCT>;
266 clock-names = "fin_pll", "mct";
267};
268
269&pwm {
270 clocks = <&clock CLK_PWM>;
271 clock-names = "timers";
272};
273
274&rtc {
275 clocks = <&clock CLK_RTC>;
276 clock-names = "rtc";
277 interrupt-parent = <&pmu_system_controller>;
278 status = "disabled";
279};
280
281&serial_0 {
282 clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
283 clock-names = "uart", "clk_uart_baud0";
284};
285
286&serial_1 {
287 clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
288 clock-names = "uart", "clk_uart_baud0";
289};
290
291&serial_2 {
292 clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
293 clock-names = "uart", "clk_uart_baud0";
294};
295
296&serial_3 {
297 clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
298 clock-names = "uart", "clk_uart_baud0";
299};
300
301&sss {
302 clocks = <&clock CLK_SSS>;
303 clock-names = "secss";
304};
305
306&sromc {
307 #address-cells = <2>;
308 #size-cells = <1>;
309 ranges = <0 0 0x04000000 0x20000
310 1 0 0x05000000 0x20000
311 2 0 0x06000000 0x20000
312 3 0 0x07000000 0x20000>;
313};
314
315&usbdrd3_0 {
316 clocks = <&clock CLK_USBD300>;
317 clock-names = "usbdrd30";
318};
319
320&usbdrd_phy0 {
321 clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
322 clock-names = "phy", "ref";
323 samsung,pmu-syscon = <&pmu_system_controller>;
324};
325
326&usbdrd3_1 {
327 clocks = <&clock CLK_USBD301>;
328 clock-names = "usbdrd30";
329};
330
331&usbdrd_dwc3_1 {
332 interrupts = <GIC_SPI 200 0>;
333};
334
335&usbdrd_phy1 {
336 clocks = <&clock CLK_USBD301>, <&clock CLK_SCLK_USBPHY301>;
337 clock-names = "phy", "ref";
338 samsung,pmu-syscon = <&pmu_system_controller>;
339};
340
341&usbhost1 {
342 clocks = <&clock CLK_USBH20>;
343 clock-names = "usbhost";
344};
345
346&usbhost2 {
347 clocks = <&clock CLK_USBH20>;
348 clock-names = "usbhost";
349};
350
351&usb2_phy {
352 clocks = <&clock CLK_USBH20>, <&clock CLK_SCLK_USBPHY300>;
353 clock-names = "phy", "ref";
354 samsung,sysreg-phandle = <&sysreg_system_controller>;
355 samsung,pmureg-phandle = <&pmu_system_controller>;
356};
357
358&watchdog {
359 clocks = <&clock CLK_WDT>;
360 clock-names = "watchdog";
361 samsung,syscon-phandle = <&pmu_system_controller>;
362};
363
269#include "exynos5410-pinctrl.dtsi" 364#include "exynos5410-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos5420-arndale-octa.dts b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
index b8b5f3ae2942..39a3b81478fd 100644
--- a/arch/arm/boot/dts/exynos5420-arndale-octa.dts
+++ b/arch/arm/boot/dts/exynos5420-arndale-octa.dts
@@ -347,10 +347,6 @@
347 }; 347 };
348}; 348};
349 349
350&mfc {
351 memory-region = <&mfc_left>, <&mfc_right>;
352};
353
354&mmc_0 { 350&mmc_0 {
355 status = "okay"; 351 status = "okay";
356 broken-cd; 352 broken-cd;
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index 6b6766e3d90a..fe4e0915c0c6 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -279,7 +279,6 @@
279 regulator-name = "vdd_1v2"; 279 regulator-name = "vdd_1v2";
280 regulator-min-microvolt = <1200000>; 280 regulator-min-microvolt = <1200000>;
281 regulator-max-microvolt = <1200000>; 281 regulator-max-microvolt = <1200000>;
282 regulator-always-on;
283 regulator-boot-on; 282 regulator-boot-on;
284 regulator-state-mem { 283 regulator-state-mem {
285 regulator-off-in-suspend; 284 regulator-off-in-suspend;
@@ -302,7 +301,6 @@
302 regulator-name = "vdd_1v35"; 301 regulator-name = "vdd_1v35";
303 regulator-min-microvolt = <1350000>; 302 regulator-min-microvolt = <1350000>;
304 regulator-max-microvolt = <1350000>; 303 regulator-max-microvolt = <1350000>;
305 regulator-always-on;
306 regulator-boot-on; 304 regulator-boot-on;
307 regulator-state-mem { 305 regulator-state-mem {
308 regulator-on-in-suspend; 306 regulator-on-in-suspend;
@@ -324,7 +322,6 @@
324 regulator-name = "vdd_2v"; 322 regulator-name = "vdd_2v";
325 regulator-min-microvolt = <2000000>; 323 regulator-min-microvolt = <2000000>;
326 regulator-max-microvolt = <2000000>; 324 regulator-max-microvolt = <2000000>;
327 regulator-always-on;
328 regulator-boot-on; 325 regulator-boot-on;
329 regulator-state-mem { 326 regulator-state-mem {
330 regulator-on-in-suspend; 327 regulator-on-in-suspend;
@@ -335,7 +332,6 @@
335 regulator-name = "vdd_1v8"; 332 regulator-name = "vdd_1v8";
336 regulator-min-microvolt = <1800000>; 333 regulator-min-microvolt = <1800000>;
337 regulator-max-microvolt = <1800000>; 334 regulator-max-microvolt = <1800000>;
338 regulator-always-on;
339 regulator-boot-on; 335 regulator-boot-on;
340 regulator-state-mem { 336 regulator-state-mem {
341 regulator-on-in-suspend; 337 regulator-on-in-suspend;
@@ -420,7 +416,6 @@
420 regulator-name = "vdd_ldo9"; 416 regulator-name = "vdd_ldo9";
421 regulator-min-microvolt = <1800000>; 417 regulator-min-microvolt = <1800000>;
422 regulator-max-microvolt = <1800000>; 418 regulator-max-microvolt = <1800000>;
423 regulator-always-on;
424 regulator-state-mem { 419 regulator-state-mem {
425 regulator-on-in-suspend; 420 regulator-on-in-suspend;
426 regulator-mode = <MAX77802_OPMODE_LP>; 421 regulator-mode = <MAX77802_OPMODE_LP>;
@@ -431,7 +426,6 @@
431 regulator-name = "vdd_ldo10"; 426 regulator-name = "vdd_ldo10";
432 regulator-min-microvolt = <1800000>; 427 regulator-min-microvolt = <1800000>;
433 regulator-max-microvolt = <1800000>; 428 regulator-max-microvolt = <1800000>;
434 regulator-always-on;
435 regulator-state-mem { 429 regulator-state-mem {
436 regulator-off-in-suspend; 430 regulator-off-in-suspend;
437 }; 431 };
@@ -702,10 +696,6 @@
702 status = "okay"; 696 status = "okay";
703}; 697};
704 698
705&mfc {
706 memory-region = <&mfc_left>, <&mfc_right>;
707};
708
709&mmc_0 { 699&mmc_0 {
710 status = "okay"; 700 status = "okay";
711 num-slots = <1>; 701 num-slots = <1>;
@@ -1053,6 +1043,26 @@
1053 status = "okay"; 1043 status = "okay";
1054}; 1044};
1055 1045
1046&tmu_cpu0 {
1047 vtmu-supply = <&ldo10_reg>;
1048};
1049
1050&tmu_cpu1 {
1051 vtmu-supply = <&ldo10_reg>;
1052};
1053
1054&tmu_cpu2 {
1055 vtmu-supply = <&ldo10_reg>;
1056};
1057
1058&tmu_cpu3 {
1059 vtmu-supply = <&ldo10_reg>;
1060};
1061
1062&tmu_gpu {
1063 vtmu-supply = <&ldo10_reg>;
1064};
1065
1056&usbdrd_dwc3_0 { 1066&usbdrd_dwc3_0 {
1057 dr_mode = "host"; 1067 dr_mode = "host";
1058}; 1068};
diff --git a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
index 130563b2ca95..14beb7e07323 100644
--- a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
@@ -193,17 +193,17 @@
193 samsung,pin-drv = <3>; 193 samsung,pin-drv = <3>;
194 }; 194 };
195 195
196 sd1_clk: sd1-clk { 196 sd0_rclk: sd0-rclk {
197 samsung,pins = "gpc1-0"; 197 samsung,pins = "gpc0-7";
198 samsung,pin-function = <2>; 198 samsung,pin-function = <2>;
199 samsung,pin-pud = <0>; 199 samsung,pin-pud = <1>;
200 samsung,pin-drv = <3>; 200 samsung,pin-drv = <3>;
201 }; 201 };
202 202
203 sd0_rclk: sd0-rclk { 203 sd1_clk: sd1-clk {
204 samsung,pins = "gpc0-7"; 204 samsung,pins = "gpc1-0";
205 samsung,pin-function = <2>; 205 samsung,pin-function = <2>;
206 samsung,pin-pud = <1>; 206 samsung,pin-pud = <0>;
207 samsung,pin-drv = <3>; 207 samsung,pin-drv = <3>;
208 }; 208 };
209 209
diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts b/arch/arm/boot/dts/exynos5420-smdk5420.dts
index 5206f41e548d..ed8f3426911b 100644
--- a/arch/arm/boot/dts/exynos5420-smdk5420.dts
+++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts
@@ -355,10 +355,6 @@
355 }; 355 };
356}; 356};
357 357
358&mfc {
359 memory-region = <&mfc_left>, <&mfc_right>;
360};
361
362&mmc_0 { 358&mmc_0 {
363 status = "okay"; 359 status = "okay";
364 broken-cd; 360 broken-cd;
diff --git a/arch/arm/boot/dts/exynos5420.dtsi b/arch/arm/boot/dts/exynos5420.dtsi
index c6e05eb88937..00c4cfa54839 100644
--- a/arch/arm/boot/dts/exynos5420.dtsi
+++ b/arch/arm/boot/dts/exynos5420.dtsi
@@ -13,10 +13,10 @@
13 * published by the Free Software Foundation. 13 * published by the Free Software Foundation.
14 */ 14 */
15 15
16#include "exynos54xx.dtsi"
16#include <dt-bindings/clock/exynos5420.h> 17#include <dt-bindings/clock/exynos5420.h>
17#include "exynos5.dtsi"
18
19#include <dt-bindings/clock/exynos-audss-clk.h> 18#include <dt-bindings/clock/exynos-audss-clk.h>
19#include <dt-bindings/interrupt-controller/arm-gic.h>
20 20
21/ { 21/ {
22 compatible = "samsung,exynos5420", "samsung,exynos5"; 22 compatible = "samsung,exynos5420", "samsung,exynos5";
@@ -30,14 +30,6 @@
30 pinctrl2 = &pinctrl_2; 30 pinctrl2 = &pinctrl_2;
31 pinctrl3 = &pinctrl_3; 31 pinctrl3 = &pinctrl_3;
32 pinctrl4 = &pinctrl_4; 32 pinctrl4 = &pinctrl_4;
33 i2c0 = &i2c_0;
34 i2c1 = &i2c_1;
35 i2c2 = &i2c_2;
36 i2c3 = &i2c_3;
37 i2c4 = &hsi2c_4;
38 i2c5 = &hsi2c_5;
39 i2c6 = &hsi2c_6;
40 i2c7 = &hsi2c_7;
41 i2c8 = &hsi2c_8; 33 i2c8 = &hsi2c_8;
42 i2c9 = &hsi2c_9; 34 i2c9 = &hsi2c_9;
43 i2c10 = &hsi2c_10; 35 i2c10 = &hsi2c_10;
@@ -46,118 +38,6 @@
46 spi0 = &spi_0; 38 spi0 = &spi_0;
47 spi1 = &spi_1; 39 spi1 = &spi_1;
48 spi2 = &spi_2; 40 spi2 = &spi_2;
49 usbdrdphy0 = &usbdrd_phy0;
50 usbdrdphy1 = &usbdrd_phy1;
51 };
52
53 cluster_a15_opp_table: opp_table0 {
54 compatible = "operating-points-v2";
55 opp-shared;
56 opp@1800000000 {
57 opp-hz = /bits/ 64 <1800000000>;
58 opp-microvolt = <1250000>;
59 clock-latency-ns = <140000>;
60 };
61 opp@1700000000 {
62 opp-hz = /bits/ 64 <1700000000>;
63 opp-microvolt = <1212500>;
64 clock-latency-ns = <140000>;
65 };
66 opp@1600000000 {
67 opp-hz = /bits/ 64 <1600000000>;
68 opp-microvolt = <1175000>;
69 clock-latency-ns = <140000>;
70 };
71 opp@1500000000 {
72 opp-hz = /bits/ 64 <1500000000>;
73 opp-microvolt = <1137500>;
74 clock-latency-ns = <140000>;
75 };
76 opp@1400000000 {
77 opp-hz = /bits/ 64 <1400000000>;
78 opp-microvolt = <1112500>;
79 clock-latency-ns = <140000>;
80 };
81 opp@1300000000 {
82 opp-hz = /bits/ 64 <1300000000>;
83 opp-microvolt = <1062500>;
84 clock-latency-ns = <140000>;
85 };
86 opp@1200000000 {
87 opp-hz = /bits/ 64 <1200000000>;
88 opp-microvolt = <1037500>;
89 clock-latency-ns = <140000>;
90 };
91 opp@1100000000 {
92 opp-hz = /bits/ 64 <1100000000>;
93 opp-microvolt = <1012500>;
94 clock-latency-ns = <140000>;
95 };
96 opp@1000000000 {
97 opp-hz = /bits/ 64 <1000000000>;
98 opp-microvolt = < 987500>;
99 clock-latency-ns = <140000>;
100 };
101 opp@900000000 {
102 opp-hz = /bits/ 64 <900000000>;
103 opp-microvolt = < 962500>;
104 clock-latency-ns = <140000>;
105 };
106 opp@800000000 {
107 opp-hz = /bits/ 64 <800000000>;
108 opp-microvolt = < 937500>;
109 clock-latency-ns = <140000>;
110 };
111 opp@700000000 {
112 opp-hz = /bits/ 64 <700000000>;
113 opp-microvolt = < 912500>;
114 clock-latency-ns = <140000>;
115 };
116 };
117
118 cluster_a7_opp_table: opp_table1 {
119 compatible = "operating-points-v2";
120 opp-shared;
121 opp@1300000000 {
122 opp-hz = /bits/ 64 <1300000000>;
123 opp-microvolt = <1275000>;
124 clock-latency-ns = <140000>;
125 };
126 opp@1200000000 {
127 opp-hz = /bits/ 64 <1200000000>;
128 opp-microvolt = <1212500>;
129 clock-latency-ns = <140000>;
130 };
131 opp@1100000000 {
132 opp-hz = /bits/ 64 <1100000000>;
133 opp-microvolt = <1162500>;
134 clock-latency-ns = <140000>;
135 };
136 opp@1000000000 {
137 opp-hz = /bits/ 64 <1000000000>;
138 opp-microvolt = <1112500>;
139 clock-latency-ns = <140000>;
140 };
141 opp@900000000 {
142 opp-hz = /bits/ 64 <900000000>;
143 opp-microvolt = <1062500>;
144 clock-latency-ns = <140000>;
145 };
146 opp@800000000 {
147 opp-hz = /bits/ 64 <800000000>;
148 opp-microvolt = <1025000>;
149 clock-latency-ns = <140000>;
150 };
151 opp@700000000 {
152 opp-hz = /bits/ 64 <700000000>;
153 opp-microvolt = <975000>;
154 clock-latency-ns = <140000>;
155 };
156 opp@600000000 {
157 opp-hz = /bits/ 64 <600000000>;
158 opp-microvolt = <937500>;
159 clock-latency-ns = <140000>;
160 };
161 }; 41 };
162 42
163 /* 43 /*
@@ -165,1434 +45,1270 @@
165 * by exynos5420-cpus.dtsi or exynos5422-cpus.dtsi. 45 * by exynos5420-cpus.dtsi or exynos5422-cpus.dtsi.
166 */ 46 */
167 47
168 cci: cci@10d20000 { 48 soc: soc {
169 compatible = "arm,cci-400"; 49 cluster_a15_opp_table: opp_table0 {
170 #address-cells = <1>; 50 compatible = "operating-points-v2";
171 #size-cells = <1>; 51 opp-shared;
172 reg = <0x10d20000 0x1000>; 52 opp@1800000000 {
173 ranges = <0x0 0x10d20000 0x6000>; 53 opp-hz = /bits/ 64 <1800000000>;
174 54 opp-microvolt = <1250000>;
175 cci_control0: slave-if@4000 { 55 clock-latency-ns = <140000>;
176 compatible = "arm,cci-400-ctrl-if"; 56 };
177 interface-type = "ace"; 57 opp@1700000000 {
178 reg = <0x4000 0x1000>; 58 opp-hz = /bits/ 64 <1700000000>;
179 }; 59 opp-microvolt = <1212500>;
180 cci_control1: slave-if@5000 { 60 clock-latency-ns = <140000>;
181 compatible = "arm,cci-400-ctrl-if"; 61 };
182 interface-type = "ace"; 62 opp@1600000000 {
183 reg = <0x5000 0x1000>; 63 opp-hz = /bits/ 64 <1600000000>;
64 opp-microvolt = <1175000>;
65 clock-latency-ns = <140000>;
66 };
67 opp@1500000000 {
68 opp-hz = /bits/ 64 <1500000000>;
69 opp-microvolt = <1137500>;
70 clock-latency-ns = <140000>;
71 };
72 opp@1400000000 {
73 opp-hz = /bits/ 64 <1400000000>;
74 opp-microvolt = <1112500>;
75 clock-latency-ns = <140000>;
76 };
77 opp@1300000000 {
78 opp-hz = /bits/ 64 <1300000000>;
79 opp-microvolt = <1062500>;
80 clock-latency-ns = <140000>;
81 };
82 opp@1200000000 {
83 opp-hz = /bits/ 64 <1200000000>;
84 opp-microvolt = <1037500>;
85 clock-latency-ns = <140000>;
86 };
87 opp@1100000000 {
88 opp-hz = /bits/ 64 <1100000000>;
89 opp-microvolt = <1012500>;
90 clock-latency-ns = <140000>;
91 };
92 opp@1000000000 {
93 opp-hz = /bits/ 64 <1000000000>;
94 opp-microvolt = < 987500>;
95 clock-latency-ns = <140000>;
96 };
97 opp@900000000 {
98 opp-hz = /bits/ 64 <900000000>;
99 opp-microvolt = < 962500>;
100 clock-latency-ns = <140000>;
101 };
102 opp@800000000 {
103 opp-hz = /bits/ 64 <800000000>;
104 opp-microvolt = < 937500>;
105 clock-latency-ns = <140000>;
106 };
107 opp@700000000 {
108 opp-hz = /bits/ 64 <700000000>;
109 opp-microvolt = < 912500>;
110 clock-latency-ns = <140000>;
111 };
112 };
113
114 cluster_a7_opp_table: opp_table1 {
115 compatible = "operating-points-v2";
116 opp-shared;
117 opp@1300000000 {
118 opp-hz = /bits/ 64 <1300000000>;
119 opp-microvolt = <1275000>;
120 clock-latency-ns = <140000>;
121 };
122 opp@1200000000 {
123 opp-hz = /bits/ 64 <1200000000>;
124 opp-microvolt = <1212500>;
125 clock-latency-ns = <140000>;
126 };
127 opp@1100000000 {
128 opp-hz = /bits/ 64 <1100000000>;
129 opp-microvolt = <1162500>;
130 clock-latency-ns = <140000>;
131 };
132 opp@1000000000 {
133 opp-hz = /bits/ 64 <1000000000>;
134 opp-microvolt = <1112500>;
135 clock-latency-ns = <140000>;
136 };
137 opp@900000000 {
138 opp-hz = /bits/ 64 <900000000>;
139 opp-microvolt = <1062500>;
140 clock-latency-ns = <140000>;
141 };
142 opp@800000000 {
143 opp-hz = /bits/ 64 <800000000>;
144 opp-microvolt = <1025000>;
145 clock-latency-ns = <140000>;
146 };
147 opp@700000000 {
148 opp-hz = /bits/ 64 <700000000>;
149 opp-microvolt = <975000>;
150 clock-latency-ns = <140000>;
151 };
152 opp@600000000 {
153 opp-hz = /bits/ 64 <600000000>;
154 opp-microvolt = <937500>;
155 clock-latency-ns = <140000>;
156 };
157 };
158
159 cci: cci@10d20000 {
160 compatible = "arm,cci-400";
161 #address-cells = <1>;
162 #size-cells = <1>;
163 reg = <0x10d20000 0x1000>;
164 ranges = <0x0 0x10d20000 0x6000>;
165
166 cci_control0: slave-if@4000 {
167 compatible = "arm,cci-400-ctrl-if";
168 interface-type = "ace";
169 reg = <0x4000 0x1000>;
170 };
171 cci_control1: slave-if@5000 {
172 compatible = "arm,cci-400-ctrl-if";
173 interface-type = "ace";
174 reg = <0x5000 0x1000>;
175 };
176 };
177
178 clock: clock-controller@10010000 {
179 compatible = "samsung,exynos5420-clock";
180 reg = <0x10010000 0x30000>;
181 #clock-cells = <1>;
182 };
183
184 clock_audss: audss-clock-controller@3810000 {
185 compatible = "samsung,exynos5420-audss-clock";
186 reg = <0x03810000 0x0C>;
187 #clock-cells = <1>;
188 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MAU_EPLL>,
189 <&clock CLK_SCLK_MAUDIO0>, <&clock CLK_SCLK_MAUPCM0>;
190 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
191 };
192
193 mfc: codec@11000000 {
194 compatible = "samsung,mfc-v7";
195 reg = <0x11000000 0x10000>;
196 interrupts = <0 96 0>;
197 clocks = <&clock CLK_MFC>;
198 clock-names = "mfc";
199 power-domains = <&mfc_pd>;
200 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
201 iommu-names = "left", "right";
202 };
203
204 mmc_0: mmc@12200000 {
205 compatible = "samsung,exynos5420-dw-mshc-smu";
206 interrupts = <0 75 0>;
207 #address-cells = <1>;
208 #size-cells = <0>;
209 reg = <0x12200000 0x2000>;
210 clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>;
211 clock-names = "biu", "ciu";
212 fifo-depth = <0x40>;
213 status = "disabled";
184 }; 214 };
185 };
186
187 sysram@02020000 {
188 compatible = "mmio-sram";
189 reg = <0x02020000 0x54000>;
190 #address-cells = <1>;
191 #size-cells = <1>;
192 ranges = <0 0x02020000 0x54000>;
193 215
194 smp-sysram@0 { 216 mmc_1: mmc@12210000 {
195 compatible = "samsung,exynos4210-sysram"; 217 compatible = "samsung,exynos5420-dw-mshc-smu";
196 reg = <0x0 0x1000>; 218 interrupts = <0 76 0>;
219 #address-cells = <1>;
220 #size-cells = <0>;
221 reg = <0x12210000 0x2000>;
222 clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>;
223 clock-names = "biu", "ciu";
224 fifo-depth = <0x40>;
225 status = "disabled";
197 }; 226 };
198 227
199 smp-sysram@53000 { 228 mmc_2: mmc@12220000 {
200 compatible = "samsung,exynos4210-sysram-ns"; 229 compatible = "samsung,exynos5420-dw-mshc";
201 reg = <0x53000 0x1000>; 230 interrupts = <0 77 0>;
231 #address-cells = <1>;
232 #size-cells = <0>;
233 reg = <0x12220000 0x1000>;
234 clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
235 clock-names = "biu", "ciu";
236 fifo-depth = <0x40>;
237 status = "disabled";
202 }; 238 };
203 };
204
205 clock: clock-controller@10010000 {
206 compatible = "samsung,exynos5420-clock";
207 reg = <0x10010000 0x30000>;
208 #clock-cells = <1>;
209 };
210 239
211 clock_audss: audss-clock-controller@3810000 { 240 nocp_mem0_0: nocp@10CA1000 {
212 compatible = "samsung,exynos5420-audss-clock"; 241 compatible = "samsung,exynos5420-nocp";
213 reg = <0x03810000 0x0C>; 242 reg = <0x10CA1000 0x200>;
214 #clock-cells = <1>; 243 status = "disabled";
215 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MAU_EPLL>, 244 };
216 <&clock CLK_SCLK_MAUDIO0>, <&clock CLK_SCLK_MAUPCM0>;
217 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
218 };
219
220 mfc: codec@11000000 {
221 compatible = "samsung,mfc-v7";
222 reg = <0x11000000 0x10000>;
223 interrupts = <0 96 0>;
224 clocks = <&clock CLK_MFC>;
225 clock-names = "mfc";
226 power-domains = <&mfc_pd>;
227 iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
228 iommu-names = "left", "right";
229 };
230 245
231 mmc_0: mmc@12200000 { 246 nocp_mem0_1: nocp@10CA1400 {
232 compatible = "samsung,exynos5420-dw-mshc-smu"; 247 compatible = "samsung,exynos5420-nocp";
233 interrupts = <0 75 0>; 248 reg = <0x10CA1400 0x200>;
234 #address-cells = <1>; 249 status = "disabled";
235 #size-cells = <0>; 250 };
236 reg = <0x12200000 0x2000>;
237 clocks = <&clock CLK_MMC0>, <&clock CLK_SCLK_MMC0>;
238 clock-names = "biu", "ciu";
239 fifo-depth = <0x40>;
240 status = "disabled";
241 };
242 251
243 mmc_1: mmc@12210000 { 252 nocp_mem1_0: nocp@10CA1800 {
244 compatible = "samsung,exynos5420-dw-mshc-smu"; 253 compatible = "samsung,exynos5420-nocp";
245 interrupts = <0 76 0>; 254 reg = <0x10CA1800 0x200>;
246 #address-cells = <1>; 255 status = "disabled";
247 #size-cells = <0>; 256 };
248 reg = <0x12210000 0x2000>;
249 clocks = <&clock CLK_MMC1>, <&clock CLK_SCLK_MMC1>;
250 clock-names = "biu", "ciu";
251 fifo-depth = <0x40>;
252 status = "disabled";
253 };
254 257
255 mmc_2: mmc@12220000 { 258 nocp_mem1_1: nocp@10CA1C00 {
256 compatible = "samsung,exynos5420-dw-mshc"; 259 compatible = "samsung,exynos5420-nocp";
257 interrupts = <0 77 0>; 260 reg = <0x10CA1C00 0x200>;
258 #address-cells = <1>; 261 status = "disabled";
259 #size-cells = <0>; 262 };
260 reg = <0x12220000 0x1000>;
261 clocks = <&clock CLK_MMC2>, <&clock CLK_SCLK_MMC2>;
262 clock-names = "biu", "ciu";
263 fifo-depth = <0x40>;
264 status = "disabled";
265 };
266 263
267 mct: mct@101C0000 { 264 nocp_g3d_0: nocp@11A51000 {
268 compatible = "samsung,exynos4210-mct"; 265 compatible = "samsung,exynos5420-nocp";
269 reg = <0x101C0000 0x800>; 266 reg = <0x11A51000 0x200>;
270 interrupt-controller; 267 status = "disabled";
271 #interrupt-cells = <1>;
272 interrupt-parent = <&mct_map>;
273 interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>,
274 <8>, <9>, <10>, <11>;
275 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
276 clock-names = "fin_pll", "mct";
277
278 mct_map: mct-map {
279 #interrupt-cells = <1>;
280 #address-cells = <0>;
281 #size-cells = <0>;
282 interrupt-map = <0 &combiner 23 3>,
283 <1 &combiner 23 4>,
284 <2 &combiner 25 2>,
285 <3 &combiner 25 3>,
286 <4 &gic 0 120 0>,
287 <5 &gic 0 121 0>,
288 <6 &gic 0 122 0>,
289 <7 &gic 0 123 0>,
290 <8 &gic 0 128 0>,
291 <9 &gic 0 129 0>,
292 <10 &gic 0 130 0>,
293 <11 &gic 0 131 0>;
294 }; 268 };
295 };
296 269
297 nocp_mem0_0: nocp@10CA1000 { 270 nocp_g3d_1: nocp@11A51400 {
298 compatible = "samsung,exynos5420-nocp"; 271 compatible = "samsung,exynos5420-nocp";
299 reg = <0x10CA1000 0x200>; 272 reg = <0x11A51400 0x200>;
300 status = "disabled"; 273 status = "disabled";
301 }; 274 };
302 275
303 nocp_mem0_1: nocp@10CA1400 { 276 gsc_pd: power-domain@10044000 {
304 compatible = "samsung,exynos5420-nocp"; 277 compatible = "samsung,exynos4210-pd";
305 reg = <0x10CA1400 0x200>; 278 reg = <0x10044000 0x20>;
306 status = "disabled"; 279 #power-domain-cells = <0>;
307 }; 280 clocks = <&clock CLK_FIN_PLL>,
281 <&clock CLK_MOUT_USER_ACLK300_GSCL>,
282 <&clock CLK_GSCL0>, <&clock CLK_GSCL1>;
283 clock-names = "oscclk", "clk0", "asb0", "asb1";
284 };
308 285
309 nocp_mem1_0: nocp@10CA1800 { 286 isp_pd: power-domain@10044020 {
310 compatible = "samsung,exynos5420-nocp"; 287 compatible = "samsung,exynos4210-pd";
311 reg = <0x10CA1800 0x200>; 288 reg = <0x10044020 0x20>;
312 status = "disabled"; 289 #power-domain-cells = <0>;
313 }; 290 };
314 291
315 nocp_mem1_1: nocp@10CA1C00 { 292 mfc_pd: power-domain@10044060 {
316 compatible = "samsung,exynos5420-nocp"; 293 compatible = "samsung,exynos4210-pd";
317 reg = <0x10CA1C00 0x200>; 294 reg = <0x10044060 0x20>;
318 status = "disabled"; 295 clocks = <&clock CLK_FIN_PLL>,
319 }; 296 <&clock CLK_MOUT_USER_ACLK333>,
297 <&clock CLK_ACLK333>;
298 clock-names = "oscclk", "clk0","asb0";
299 #power-domain-cells = <0>;
300 };
320 301
321 nocp_g3d_0: nocp@11A51000 { 302 msc_pd: power-domain@10044120 {
322 compatible = "samsung,exynos5420-nocp"; 303 compatible = "samsung,exynos4210-pd";
323 reg = <0x11A51000 0x200>; 304 reg = <0x10044120 0x20>;
324 status = "disabled"; 305 #power-domain-cells = <0>;
325 }; 306 };
326 307
327 nocp_g3d_1: nocp@11A51400 { 308 disp_pd: power-domain@100440C0 {
328 compatible = "samsung,exynos5420-nocp"; 309 compatible = "samsung,exynos4210-pd";
329 reg = <0x11A51400 0x200>; 310 reg = <0x100440C0 0x20>;
330 status = "disabled"; 311 #power-domain-cells = <0>;
331 }; 312 clocks = <&clock CLK_FIN_PLL>,
313 <&clock CLK_MOUT_USER_ACLK200_DISP1>,
314 <&clock CLK_MOUT_USER_ACLK300_DISP1>,
315 <&clock CLK_MOUT_USER_ACLK400_DISP1>,
316 <&clock CLK_FIMD1>, <&clock CLK_MIXER>;
317 clock-names = "oscclk", "clk0", "clk1", "clk2", "asb0", "asb1";
318 };
332 319
333 gsc_pd: power-domain@10044000 { 320 pinctrl_0: pinctrl@13400000 {
334 compatible = "samsung,exynos4210-pd"; 321 compatible = "samsung,exynos5420-pinctrl";
335 reg = <0x10044000 0x20>; 322 reg = <0x13400000 0x1000>;
336 #power-domain-cells = <0>; 323 interrupts = <0 45 0>;
337 clocks = <&clock CLK_FIN_PLL>,
338 <&clock CLK_MOUT_USER_ACLK300_GSCL>,
339 <&clock CLK_GSCL0>, <&clock CLK_GSCL1>;
340 clock-names = "oscclk", "clk0", "asb0", "asb1";
341 };
342 324
343 isp_pd: power-domain@10044020 { 325 wakeup-interrupt-controller {
344 compatible = "samsung,exynos4210-pd"; 326 compatible = "samsung,exynos4210-wakeup-eint";
345 reg = <0x10044020 0x20>; 327 interrupt-parent = <&gic>;
346 #power-domain-cells = <0>; 328 interrupts = <0 32 0>;
347 }; 329 };
330 };
348 331
349 mfc_pd: power-domain@10044060 { 332 pinctrl_1: pinctrl@13410000 {
350 compatible = "samsung,exynos4210-pd"; 333 compatible = "samsung,exynos5420-pinctrl";
351 reg = <0x10044060 0x20>; 334 reg = <0x13410000 0x1000>;
352 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MOUT_USER_ACLK333>; 335 interrupts = <0 78 0>;
353 clock-names = "oscclk", "clk0"; 336 };
354 #power-domain-cells = <0>;
355 };
356 337
357 msc_pd: power-domain@10044120 { 338 pinctrl_2: pinctrl@14000000 {
358 compatible = "samsung,exynos4210-pd"; 339 compatible = "samsung,exynos5420-pinctrl";
359 reg = <0x10044120 0x20>; 340 reg = <0x14000000 0x1000>;
360 #power-domain-cells = <0>; 341 interrupts = <0 46 0>;
361 }; 342 };
362 343
363 disp_pd: power-domain@100440C0 { 344 pinctrl_3: pinctrl@14010000 {
364 compatible = "samsung,exynos4210-pd"; 345 compatible = "samsung,exynos5420-pinctrl";
365 reg = <0x100440C0 0x20>; 346 reg = <0x14010000 0x1000>;
366 #power-domain-cells = <0>; 347 interrupts = <0 50 0>;
367 clocks = <&clock CLK_FIN_PLL>, 348 };
368 <&clock CLK_MOUT_USER_ACLK200_DISP1>,
369 <&clock CLK_MOUT_USER_ACLK300_DISP1>,
370 <&clock CLK_MOUT_USER_ACLK400_DISP1>,
371 <&clock CLK_FIMD1>, <&clock CLK_MIXER>;
372 clock-names = "oscclk", "clk0", "clk1", "clk2", "asb0", "asb1";
373 };
374 349
375 pinctrl_0: pinctrl@13400000 { 350 pinctrl_4: pinctrl@03860000 {
376 compatible = "samsung,exynos5420-pinctrl"; 351 compatible = "samsung,exynos5420-pinctrl";
377 reg = <0x13400000 0x1000>; 352 reg = <0x03860000 0x1000>;
378 interrupts = <0 45 0>; 353 interrupts = <0 47 0>;
354 };
379 355
380 wakeup-interrupt-controller { 356 amba {
381 compatible = "samsung,exynos4210-wakeup-eint"; 357 #address-cells = <1>;
358 #size-cells = <1>;
359 compatible = "simple-bus";
382 interrupt-parent = <&gic>; 360 interrupt-parent = <&gic>;
383 interrupts = <0 32 0>; 361 ranges;
362
363 adma: adma@03880000 {
364 compatible = "arm,pl330", "arm,primecell";
365 reg = <0x03880000 0x1000>;
366 interrupts = <0 110 0>;
367 clocks = <&clock_audss EXYNOS_ADMA>;
368 clock-names = "apb_pclk";
369 #dma-cells = <1>;
370 #dma-channels = <6>;
371 #dma-requests = <16>;
372 };
373
374 pdma0: pdma@121A0000 {
375 compatible = "arm,pl330", "arm,primecell";
376 reg = <0x121A0000 0x1000>;
377 interrupts = <0 34 0>;
378 clocks = <&clock CLK_PDMA0>;
379 clock-names = "apb_pclk";
380 #dma-cells = <1>;
381 #dma-channels = <8>;
382 #dma-requests = <32>;
383 };
384
385 pdma1: pdma@121B0000 {
386 compatible = "arm,pl330", "arm,primecell";
387 reg = <0x121B0000 0x1000>;
388 interrupts = <0 35 0>;
389 clocks = <&clock CLK_PDMA1>;
390 clock-names = "apb_pclk";
391 #dma-cells = <1>;
392 #dma-channels = <8>;
393 #dma-requests = <32>;
394 };
395
396 mdma0: mdma@10800000 {
397 compatible = "arm,pl330", "arm,primecell";
398 reg = <0x10800000 0x1000>;
399 interrupts = <0 33 0>;
400 clocks = <&clock CLK_MDMA0>;
401 clock-names = "apb_pclk";
402 #dma-cells = <1>;
403 #dma-channels = <8>;
404 #dma-requests = <1>;
405 };
406
407 mdma1: mdma@11C10000 {
408 compatible = "arm,pl330", "arm,primecell";
409 reg = <0x11C10000 0x1000>;
410 interrupts = <0 124 0>;
411 clocks = <&clock CLK_MDMA1>;
412 clock-names = "apb_pclk";
413 #dma-cells = <1>;
414 #dma-channels = <8>;
415 #dma-requests = <1>;
416 /*
417 * MDMA1 can support both secure and non-secure
418 * AXI transactions. When this is enabled in
419 * the kernel for boards that run in secure
420 * mode, we are getting imprecise external
421 * aborts causing the kernel to oops.
422 */
423 status = "disabled";
424 };
425 };
426
427 i2s0: i2s@03830000 {
428 compatible = "samsung,exynos5420-i2s";
429 reg = <0x03830000 0x100>;
430 dmas = <&adma 0
431 &adma 2
432 &adma 1>;
433 dma-names = "tx", "rx", "tx-sec";
434 clocks = <&clock_audss EXYNOS_I2S_BUS>,
435 <&clock_audss EXYNOS_I2S_BUS>,
436 <&clock_audss EXYNOS_SCLK_I2S>;
437 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
438 #clock-cells = <1>;
439 clock-output-names = "i2s_cdclk0";
440 #sound-dai-cells = <1>;
441 samsung,idma-addr = <0x03000000>;
442 pinctrl-names = "default";
443 pinctrl-0 = <&i2s0_bus>;
444 status = "disabled";
384 }; 445 };
385 };
386
387 pinctrl_1: pinctrl@13410000 {
388 compatible = "samsung,exynos5420-pinctrl";
389 reg = <0x13410000 0x1000>;
390 interrupts = <0 78 0>;
391 };
392 446
393 pinctrl_2: pinctrl@14000000 { 447 i2s1: i2s@12D60000 {
394 compatible = "samsung,exynos5420-pinctrl"; 448 compatible = "samsung,exynos5420-i2s";
395 reg = <0x14000000 0x1000>; 449 reg = <0x12D60000 0x100>;
396 interrupts = <0 46 0>; 450 dmas = <&pdma1 12
397 }; 451 &pdma1 11>;
398 452 dma-names = "tx", "rx";
399 pinctrl_3: pinctrl@14010000 { 453 clocks = <&clock CLK_I2S1>, <&clock CLK_SCLK_I2S1>;
400 compatible = "samsung,exynos5420-pinctrl"; 454 clock-names = "iis", "i2s_opclk0";
401 reg = <0x14010000 0x1000>; 455 #clock-cells = <1>;
402 interrupts = <0 50 0>; 456 clock-output-names = "i2s_cdclk1";
403 }; 457 #sound-dai-cells = <1>;
404 458 pinctrl-names = "default";
405 pinctrl_4: pinctrl@03860000 { 459 pinctrl-0 = <&i2s1_bus>;
406 compatible = "samsung,exynos5420-pinctrl";
407 reg = <0x03860000 0x1000>;
408 interrupts = <0 47 0>;
409 };
410
411 amba {
412 #address-cells = <1>;
413 #size-cells = <1>;
414 compatible = "simple-bus";
415 interrupt-parent = <&gic>;
416 ranges;
417
418 adma: adma@03880000 {
419 compatible = "arm,pl330", "arm,primecell";
420 reg = <0x03880000 0x1000>;
421 interrupts = <0 110 0>;
422 clocks = <&clock_audss EXYNOS_ADMA>;
423 clock-names = "apb_pclk";
424 #dma-cells = <1>;
425 #dma-channels = <6>;
426 #dma-requests = <16>;
427 };
428
429 pdma0: pdma@121A0000 {
430 compatible = "arm,pl330", "arm,primecell";
431 reg = <0x121A0000 0x1000>;
432 interrupts = <0 34 0>;
433 clocks = <&clock CLK_PDMA0>;
434 clock-names = "apb_pclk";
435 #dma-cells = <1>;
436 #dma-channels = <8>;
437 #dma-requests = <32>;
438 };
439
440 pdma1: pdma@121B0000 {
441 compatible = "arm,pl330", "arm,primecell";
442 reg = <0x121B0000 0x1000>;
443 interrupts = <0 35 0>;
444 clocks = <&clock CLK_PDMA1>;
445 clock-names = "apb_pclk";
446 #dma-cells = <1>;
447 #dma-channels = <8>;
448 #dma-requests = <32>;
449 };
450
451 mdma0: mdma@10800000 {
452 compatible = "arm,pl330", "arm,primecell";
453 reg = <0x10800000 0x1000>;
454 interrupts = <0 33 0>;
455 clocks = <&clock CLK_MDMA0>;
456 clock-names = "apb_pclk";
457 #dma-cells = <1>;
458 #dma-channels = <8>;
459 #dma-requests = <1>;
460 };
461
462 mdma1: mdma@11C10000 {
463 compatible = "arm,pl330", "arm,primecell";
464 reg = <0x11C10000 0x1000>;
465 interrupts = <0 124 0>;
466 clocks = <&clock CLK_MDMA1>;
467 clock-names = "apb_pclk";
468 #dma-cells = <1>;
469 #dma-channels = <8>;
470 #dma-requests = <1>;
471 /*
472 * MDMA1 can support both secure and non-secure
473 * AXI transactions. When this is enabled in the kernel
474 * for boards that run in secure mode, we are getting
475 * imprecise external aborts causing the kernel to oops.
476 */
477 status = "disabled"; 460 status = "disabled";
478 }; 461 };
479 };
480
481 i2s0: i2s@03830000 {
482 compatible = "samsung,exynos5420-i2s";
483 reg = <0x03830000 0x100>;
484 dmas = <&adma 0
485 &adma 2
486 &adma 1>;
487 dma-names = "tx", "rx", "tx-sec";
488 clocks = <&clock_audss EXYNOS_I2S_BUS>,
489 <&clock_audss EXYNOS_I2S_BUS>,
490 <&clock_audss EXYNOS_SCLK_I2S>;
491 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
492 #clock-cells = <1>;
493 clock-output-names = "i2s_cdclk0";
494 #sound-dai-cells = <1>;
495 samsung,idma-addr = <0x03000000>;
496 pinctrl-names = "default";
497 pinctrl-0 = <&i2s0_bus>;
498 status = "disabled";
499 };
500
501 i2s1: i2s@12D60000 {
502 compatible = "samsung,exynos5420-i2s";
503 reg = <0x12D60000 0x100>;
504 dmas = <&pdma1 12
505 &pdma1 11>;
506 dma-names = "tx", "rx";
507 clocks = <&clock CLK_I2S1>, <&clock CLK_SCLK_I2S1>;
508 clock-names = "iis", "i2s_opclk0";
509 #clock-cells = <1>;
510 clock-output-names = "i2s_cdclk1";
511 #sound-dai-cells = <1>;
512 pinctrl-names = "default";
513 pinctrl-0 = <&i2s1_bus>;
514 status = "disabled";
515 };
516
517 i2s2: i2s@12D70000 {
518 compatible = "samsung,exynos5420-i2s";
519 reg = <0x12D70000 0x100>;
520 dmas = <&pdma0 12
521 &pdma0 11>;
522 dma-names = "tx", "rx";
523 clocks = <&clock CLK_I2S2>, <&clock CLK_SCLK_I2S2>;
524 clock-names = "iis", "i2s_opclk0";
525 #clock-cells = <1>;
526 clock-output-names = "i2s_cdclk2";
527 #sound-dai-cells = <1>;
528 pinctrl-names = "default";
529 pinctrl-0 = <&i2s2_bus>;
530 status = "disabled";
531 };
532
533 spi_0: spi@12d20000 {
534 compatible = "samsung,exynos4210-spi";
535 reg = <0x12d20000 0x100>;
536 interrupts = <0 68 0>;
537 dmas = <&pdma0 5
538 &pdma0 4>;
539 dma-names = "tx", "rx";
540 #address-cells = <1>;
541 #size-cells = <0>;
542 pinctrl-names = "default";
543 pinctrl-0 = <&spi0_bus>;
544 clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
545 clock-names = "spi", "spi_busclk0";
546 status = "disabled";
547 };
548
549 spi_1: spi@12d30000 {
550 compatible = "samsung,exynos4210-spi";
551 reg = <0x12d30000 0x100>;
552 interrupts = <0 69 0>;
553 dmas = <&pdma1 5
554 &pdma1 4>;
555 dma-names = "tx", "rx";
556 #address-cells = <1>;
557 #size-cells = <0>;
558 pinctrl-names = "default";
559 pinctrl-0 = <&spi1_bus>;
560 clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
561 clock-names = "spi", "spi_busclk0";
562 status = "disabled";
563 };
564
565 spi_2: spi@12d40000 {
566 compatible = "samsung,exynos4210-spi";
567 reg = <0x12d40000 0x100>;
568 interrupts = <0 70 0>;
569 dmas = <&pdma0 7
570 &pdma0 6>;
571 dma-names = "tx", "rx";
572 #address-cells = <1>;
573 #size-cells = <0>;
574 pinctrl-names = "default";
575 pinctrl-0 = <&spi2_bus>;
576 clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
577 clock-names = "spi", "spi_busclk0";
578 status = "disabled";
579 };
580
581 pwm: pwm@12dd0000 {
582 compatible = "samsung,exynos4210-pwm";
583 reg = <0x12dd0000 0x100>;
584 samsung,pwm-outputs = <0>, <1>, <2>, <3>;
585 #pwm-cells = <3>;
586 clocks = <&clock CLK_PWM>;
587 clock-names = "timers";
588 };
589
590 dp_phy: dp-video-phy {
591 compatible = "samsung,exynos5420-dp-video-phy";
592 samsung,pmu-syscon = <&pmu_system_controller>;
593 #phy-cells = <0>;
594 };
595
596 mipi_phy: mipi-video-phy {
597 compatible = "samsung,s5pv210-mipi-video-phy";
598 syscon = <&pmu_system_controller>;
599 #phy-cells = <1>;
600 };
601
602 dsi@14500000 {
603 compatible = "samsung,exynos5410-mipi-dsi";
604 reg = <0x14500000 0x10000>;
605 interrupts = <0 82 0>;
606 phys = <&mipi_phy 1>;
607 phy-names = "dsim";
608 clocks = <&clock CLK_DSIM1>, <&clock CLK_SCLK_MIPI1>;
609 clock-names = "bus_clk", "pll_clk";
610 #address-cells = <1>;
611 #size-cells = <0>;
612 status = "disabled";
613 };
614
615 adc: adc@12D10000 {
616 compatible = "samsung,exynos-adc-v2";
617 reg = <0x12D10000 0x100>;
618 interrupts = <0 106 0>;
619 clocks = <&clock CLK_TSADC>;
620 clock-names = "adc";
621 #io-channel-cells = <1>;
622 io-channel-ranges;
623 samsung,syscon-phandle = <&pmu_system_controller>;
624 status = "disabled";
625 };
626
627 i2c_0: i2c@12C60000 {
628 compatible = "samsung,s3c2440-i2c";
629 reg = <0x12C60000 0x100>;
630 interrupts = <0 56 0>;
631 #address-cells = <1>;
632 #size-cells = <0>;
633 clocks = <&clock CLK_I2C0>;
634 clock-names = "i2c";
635 pinctrl-names = "default";
636 pinctrl-0 = <&i2c0_bus>;
637 samsung,sysreg-phandle = <&sysreg_system_controller>;
638 status = "disabled";
639 };
640
641 i2c_1: i2c@12C70000 {
642 compatible = "samsung,s3c2440-i2c";
643 reg = <0x12C70000 0x100>;
644 interrupts = <0 57 0>;
645 #address-cells = <1>;
646 #size-cells = <0>;
647 clocks = <&clock CLK_I2C1>;
648 clock-names = "i2c";
649 pinctrl-names = "default";
650 pinctrl-0 = <&i2c1_bus>;
651 samsung,sysreg-phandle = <&sysreg_system_controller>;
652 status = "disabled";
653 };
654
655 i2c_2: i2c@12C80000 {
656 compatible = "samsung,s3c2440-i2c";
657 reg = <0x12C80000 0x100>;
658 interrupts = <0 58 0>;
659 #address-cells = <1>;
660 #size-cells = <0>;
661 clocks = <&clock CLK_I2C2>;
662 clock-names = "i2c";
663 pinctrl-names = "default";
664 pinctrl-0 = <&i2c2_bus>;
665 samsung,sysreg-phandle = <&sysreg_system_controller>;
666 status = "disabled";
667 };
668
669 i2c_3: i2c@12C90000 {
670 compatible = "samsung,s3c2440-i2c";
671 reg = <0x12C90000 0x100>;
672 interrupts = <0 59 0>;
673 #address-cells = <1>;
674 #size-cells = <0>;
675 clocks = <&clock CLK_I2C3>;
676 clock-names = "i2c";
677 pinctrl-names = "default";
678 pinctrl-0 = <&i2c3_bus>;
679 samsung,sysreg-phandle = <&sysreg_system_controller>;
680 status = "disabled";
681 };
682 462
683 hsi2c_4: i2c@12CA0000 { 463 i2s2: i2s@12D70000 {
684 compatible = "samsung,exynos5-hsi2c"; 464 compatible = "samsung,exynos5420-i2s";
685 reg = <0x12CA0000 0x1000>; 465 reg = <0x12D70000 0x100>;
686 interrupts = <0 60 0>; 466 dmas = <&pdma0 12
687 #address-cells = <1>; 467 &pdma0 11>;
688 #size-cells = <0>; 468 dma-names = "tx", "rx";
689 pinctrl-names = "default"; 469 clocks = <&clock CLK_I2S2>, <&clock CLK_SCLK_I2S2>;
690 pinctrl-0 = <&i2c4_hs_bus>; 470 clock-names = "iis", "i2s_opclk0";
691 clocks = <&clock CLK_USI0>; 471 #clock-cells = <1>;
692 clock-names = "hsi2c"; 472 clock-output-names = "i2s_cdclk2";
693 status = "disabled"; 473 #sound-dai-cells = <1>;
694 }; 474 pinctrl-names = "default";
695 475 pinctrl-0 = <&i2s2_bus>;
696 hsi2c_5: i2c@12CB0000 { 476 status = "disabled";
697 compatible = "samsung,exynos5-hsi2c";
698 reg = <0x12CB0000 0x1000>;
699 interrupts = <0 61 0>;
700 #address-cells = <1>;
701 #size-cells = <0>;
702 pinctrl-names = "default";
703 pinctrl-0 = <&i2c5_hs_bus>;
704 clocks = <&clock CLK_USI1>;
705 clock-names = "hsi2c";
706 status = "disabled";
707 };
708
709 hsi2c_6: i2c@12CC0000 {
710 compatible = "samsung,exynos5-hsi2c";
711 reg = <0x12CC0000 0x1000>;
712 interrupts = <0 62 0>;
713 #address-cells = <1>;
714 #size-cells = <0>;
715 pinctrl-names = "default";
716 pinctrl-0 = <&i2c6_hs_bus>;
717 clocks = <&clock CLK_USI2>;
718 clock-names = "hsi2c";
719 status = "disabled";
720 };
721
722 hsi2c_7: i2c@12CD0000 {
723 compatible = "samsung,exynos5-hsi2c";
724 reg = <0x12CD0000 0x1000>;
725 interrupts = <0 63 0>;
726 #address-cells = <1>;
727 #size-cells = <0>;
728 pinctrl-names = "default";
729 pinctrl-0 = <&i2c7_hs_bus>;
730 clocks = <&clock CLK_USI3>;
731 clock-names = "hsi2c";
732 status = "disabled";
733 };
734
735 hsi2c_8: i2c@12E00000 {
736 compatible = "samsung,exynos5-hsi2c";
737 reg = <0x12E00000 0x1000>;
738 interrupts = <0 87 0>;
739 #address-cells = <1>;
740 #size-cells = <0>;
741 pinctrl-names = "default";
742 pinctrl-0 = <&i2c8_hs_bus>;
743 clocks = <&clock CLK_USI4>;
744 clock-names = "hsi2c";
745 status = "disabled";
746 };
747
748 hsi2c_9: i2c@12E10000 {
749 compatible = "samsung,exynos5-hsi2c";
750 reg = <0x12E10000 0x1000>;
751 interrupts = <0 88 0>;
752 #address-cells = <1>;
753 #size-cells = <0>;
754 pinctrl-names = "default";
755 pinctrl-0 = <&i2c9_hs_bus>;
756 clocks = <&clock CLK_USI5>;
757 clock-names = "hsi2c";
758 status = "disabled";
759 };
760
761 hsi2c_10: i2c@12E20000 {
762 compatible = "samsung,exynos5-hsi2c";
763 reg = <0x12E20000 0x1000>;
764 interrupts = <0 203 0>;
765 #address-cells = <1>;
766 #size-cells = <0>;
767 pinctrl-names = "default";
768 pinctrl-0 = <&i2c10_hs_bus>;
769 clocks = <&clock CLK_USI6>;
770 clock-names = "hsi2c";
771 status = "disabled";
772 };
773
774 hdmi: hdmi@14530000 {
775 compatible = "samsung,exynos5420-hdmi";
776 reg = <0x14530000 0x70000>;
777 interrupts = <0 95 0>;
778 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
779 <&clock CLK_DOUT_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
780 <&clock CLK_MOUT_HDMI>;
781 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
782 "sclk_hdmiphy", "mout_hdmi";
783 phy = <&hdmiphy>;
784 samsung,syscon-phandle = <&pmu_system_controller>;
785 status = "disabled";
786 power-domains = <&disp_pd>;
787 };
788
789 hdmiphy: hdmiphy@145D0000 {
790 reg = <0x145D0000 0x20>;
791 };
792
793 mixer: mixer@14450000 {
794 compatible = "samsung,exynos5420-mixer";
795 reg = <0x14450000 0x10000>;
796 interrupts = <0 94 0>;
797 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
798 <&clock CLK_SCLK_HDMI>;
799 clock-names = "mixer", "hdmi", "sclk_hdmi";
800 power-domains = <&disp_pd>;
801 iommus = <&sysmmu_tv>;
802 };
803
804 rotator: rotator@11C00000 {
805 compatible = "samsung,exynos5250-rotator";
806 reg = <0x11C00000 0x64>;
807 interrupts = <0 84 0>;
808 clocks = <&clock CLK_ROTATOR>;
809 clock-names = "rotator";
810 iommus = <&sysmmu_rotator>;
811 };
812
813 gsc_0: video-scaler@13e00000 {
814 compatible = "samsung,exynos5-gsc";
815 reg = <0x13e00000 0x1000>;
816 interrupts = <0 85 0>;
817 clocks = <&clock CLK_GSCL0>;
818 clock-names = "gscl";
819 power-domains = <&gsc_pd>;
820 iommus = <&sysmmu_gscl0>;
821 };
822
823 gsc_1: video-scaler@13e10000 {
824 compatible = "samsung,exynos5-gsc";
825 reg = <0x13e10000 0x1000>;
826 interrupts = <0 86 0>;
827 clocks = <&clock CLK_GSCL1>;
828 clock-names = "gscl";
829 power-domains = <&gsc_pd>;
830 iommus = <&sysmmu_gscl1>;
831 };
832
833 jpeg_0: jpeg@11F50000 {
834 compatible = "samsung,exynos5420-jpeg";
835 reg = <0x11F50000 0x1000>;
836 interrupts = <0 89 0>;
837 clock-names = "jpeg";
838 clocks = <&clock CLK_JPEG>;
839 iommus = <&sysmmu_jpeg0>;
840 };
841
842 jpeg_1: jpeg@11F60000 {
843 compatible = "samsung,exynos5420-jpeg";
844 reg = <0x11F60000 0x1000>;
845 interrupts = <0 168 0>;
846 clock-names = "jpeg";
847 clocks = <&clock CLK_JPEG2>;
848 iommus = <&sysmmu_jpeg1>;
849 };
850
851 pmu_system_controller: system-controller@10040000 {
852 compatible = "samsung,exynos5420-pmu", "syscon";
853 reg = <0x10040000 0x5000>;
854 clock-names = "clkout16";
855 clocks = <&clock CLK_FIN_PLL>;
856 #clock-cells = <1>;
857 interrupt-controller;
858 #interrupt-cells = <3>;
859 interrupt-parent = <&gic>;
860 };
861
862 sysreg_system_controller: syscon@10050000 {
863 compatible = "samsung,exynos5-sysreg", "syscon";
864 reg = <0x10050000 0x5000>;
865 };
866
867 tmu_cpu0: tmu@10060000 {
868 compatible = "samsung,exynos5420-tmu";
869 reg = <0x10060000 0x100>;
870 interrupts = <0 65 0>;
871 clocks = <&clock CLK_TMU>;
872 clock-names = "tmu_apbif";
873 #include "exynos4412-tmu-sensor-conf.dtsi"
874 };
875
876 tmu_cpu1: tmu@10064000 {
877 compatible = "samsung,exynos5420-tmu";
878 reg = <0x10064000 0x100>;
879 interrupts = <0 183 0>;
880 clocks = <&clock CLK_TMU>;
881 clock-names = "tmu_apbif";
882 #include "exynos4412-tmu-sensor-conf.dtsi"
883 };
884
885 tmu_cpu2: tmu@10068000 {
886 compatible = "samsung,exynos5420-tmu-ext-triminfo";
887 reg = <0x10068000 0x100>, <0x1006c000 0x4>;
888 interrupts = <0 184 0>;
889 clocks = <&clock CLK_TMU>, <&clock CLK_TMU>;
890 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
891 #include "exynos4412-tmu-sensor-conf.dtsi"
892 };
893
894 tmu_cpu3: tmu@1006c000 {
895 compatible = "samsung,exynos5420-tmu-ext-triminfo";
896 reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
897 interrupts = <0 185 0>;
898 clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>;
899 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
900 #include "exynos4412-tmu-sensor-conf.dtsi"
901 };
902
903 tmu_gpu: tmu@100a0000 {
904 compatible = "samsung,exynos5420-tmu-ext-triminfo";
905 reg = <0x100a0000 0x100>, <0x10068000 0x4>;
906 interrupts = <0 215 0>;
907 clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>;
908 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
909 #include "exynos4412-tmu-sensor-conf.dtsi"
910 };
911
912 thermal-zones {
913 cpu0_thermal: cpu0-thermal {
914 thermal-sensors = <&tmu_cpu0>;
915 #include "exynos5420-trip-points.dtsi"
916 };
917 cpu1_thermal: cpu1-thermal {
918 thermal-sensors = <&tmu_cpu1>;
919 #include "exynos5420-trip-points.dtsi"
920 };
921 cpu2_thermal: cpu2-thermal {
922 thermal-sensors = <&tmu_cpu2>;
923 #include "exynos5420-trip-points.dtsi"
924 };
925 cpu3_thermal: cpu3-thermal {
926 thermal-sensors = <&tmu_cpu3>;
927 #include "exynos5420-trip-points.dtsi"
928 };
929 gpu_thermal: gpu-thermal {
930 thermal-sensors = <&tmu_gpu>;
931 #include "exynos5420-trip-points.dtsi"
932 }; 477 };
933 };
934 478
935 watchdog: watchdog@101D0000 { 479 spi_0: spi@12d20000 {
936 compatible = "samsung,exynos5420-wdt"; 480 compatible = "samsung,exynos4210-spi";
937 reg = <0x101D0000 0x100>; 481 reg = <0x12d20000 0x100>;
938 interrupts = <0 42 0>; 482 interrupts = <0 68 0>;
939 clocks = <&clock CLK_WDT>; 483 dmas = <&pdma0 5
940 clock-names = "watchdog"; 484 &pdma0 4>;
941 samsung,syscon-phandle = <&pmu_system_controller>; 485 dma-names = "tx", "rx";
942 }; 486 #address-cells = <1>;
943 487 #size-cells = <0>;
944 sss: sss@10830000 { 488 pinctrl-names = "default";
945 compatible = "samsung,exynos4210-secss"; 489 pinctrl-0 = <&spi0_bus>;
946 reg = <0x10830000 0x300>; 490 clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
947 interrupts = <0 112 0>; 491 clock-names = "spi", "spi_busclk0";
948 clocks = <&clock CLK_SSS>; 492 status = "disabled";
949 clock-names = "secss";
950 };
951
952 usbdrd3_0: usb3-0 {
953 compatible = "samsung,exynos5250-dwusb3";
954 clocks = <&clock CLK_USBD300>;
955 clock-names = "usbdrd30";
956 #address-cells = <1>;
957 #size-cells = <1>;
958 ranges;
959
960 usbdrd_dwc3_0: dwc3@12000000 {
961 compatible = "snps,dwc3";
962 reg = <0x12000000 0x10000>;
963 interrupts = <0 72 0>;
964 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
965 phy-names = "usb2-phy", "usb3-phy";
966 }; 493 };
967 };
968
969 usbdrd_phy0: phy@12100000 {
970 compatible = "samsung,exynos5420-usbdrd-phy";
971 reg = <0x12100000 0x100>;
972 clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
973 clock-names = "phy", "ref";
974 samsung,pmu-syscon = <&pmu_system_controller>;
975 #phy-cells = <1>;
976 };
977 494
978 usbdrd3_1: usb3-1 { 495 spi_1: spi@12d30000 {
979 compatible = "samsung,exynos5250-dwusb3"; 496 compatible = "samsung,exynos4210-spi";
980 clocks = <&clock CLK_USBD301>; 497 reg = <0x12d30000 0x100>;
981 clock-names = "usbdrd30"; 498 interrupts = <0 69 0>;
982 #address-cells = <1>; 499 dmas = <&pdma1 5
983 #size-cells = <1>; 500 &pdma1 4>;
984 ranges; 501 dma-names = "tx", "rx";
985 502 #address-cells = <1>;
986 usbdrd_dwc3_1: dwc3@12400000 { 503 #size-cells = <0>;
987 compatible = "snps,dwc3"; 504 pinctrl-names = "default";
988 reg = <0x12400000 0x10000>; 505 pinctrl-0 = <&spi1_bus>;
989 interrupts = <0 73 0>; 506 clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
990 phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>; 507 clock-names = "spi", "spi_busclk0";
991 phy-names = "usb2-phy", "usb3-phy"; 508 status = "disabled";
992 }; 509 };
993 };
994
995 usbdrd_phy1: phy@12500000 {
996 compatible = "samsung,exynos5420-usbdrd-phy";
997 reg = <0x12500000 0x100>;
998 clocks = <&clock CLK_USBD301>, <&clock CLK_SCLK_USBPHY301>;
999 clock-names = "phy", "ref";
1000 samsung,pmu-syscon = <&pmu_system_controller>;
1001 #phy-cells = <1>;
1002 };
1003
1004 usbhost2: usb@12110000 {
1005 compatible = "samsung,exynos4210-ehci";
1006 reg = <0x12110000 0x100>;
1007 interrupts = <0 71 0>;
1008 510
1009 clocks = <&clock CLK_USBH20>; 511 spi_2: spi@12d40000 {
1010 clock-names = "usbhost"; 512 compatible = "samsung,exynos4210-spi";
1011 #address-cells = <1>; 513 reg = <0x12d40000 0x100>;
1012 #size-cells = <0>; 514 interrupts = <0 70 0>;
1013 port@0 { 515 dmas = <&pdma0 7
1014 reg = <0>; 516 &pdma0 6>;
1015 phys = <&usb2_phy 1>; 517 dma-names = "tx", "rx";
518 #address-cells = <1>;
519 #size-cells = <0>;
520 pinctrl-names = "default";
521 pinctrl-0 = <&spi2_bus>;
522 clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
523 clock-names = "spi", "spi_busclk0";
524 status = "disabled";
1016 }; 525 };
1017 };
1018 526
1019 usbhost1: usb@12120000 { 527 dp_phy: dp-video-phy {
1020 compatible = "samsung,exynos4210-ohci"; 528 compatible = "samsung,exynos5420-dp-video-phy";
1021 reg = <0x12120000 0x100>; 529 samsung,pmu-syscon = <&pmu_system_controller>;
1022 interrupts = <0 71 0>; 530 #phy-cells = <0>;
1023
1024 clocks = <&clock CLK_USBH20>;
1025 clock-names = "usbhost";
1026 #address-cells = <1>;
1027 #size-cells = <0>;
1028 port@0 {
1029 reg = <0>;
1030 phys = <&usb2_phy 1>;
1031 }; 531 };
1032 };
1033
1034 usb2_phy: phy@12130000 {
1035 compatible = "samsung,exynos5250-usb2-phy";
1036 reg = <0x12130000 0x100>;
1037 clocks = <&clock CLK_USBH20>, <&clock CLK_SCLK_USBPHY300>;
1038 clock-names = "phy", "ref";
1039 #phy-cells = <1>;
1040 samsung,sysreg-phandle = <&sysreg_system_controller>;
1041 samsung,pmureg-phandle = <&pmu_system_controller>;
1042 };
1043
1044 sysmmu_g2dr: sysmmu@0x10A60000 {
1045 compatible = "samsung,exynos-sysmmu";
1046 reg = <0x10A60000 0x1000>;
1047 interrupt-parent = <&combiner>;
1048 interrupts = <24 5>;
1049 clock-names = "sysmmu", "master";
1050 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
1051 #iommu-cells = <0>;
1052 };
1053
1054 sysmmu_g2dw: sysmmu@0x10A70000 {
1055 compatible = "samsung,exynos-sysmmu";
1056 reg = <0x10A70000 0x1000>;
1057 interrupt-parent = <&combiner>;
1058 interrupts = <22 2>;
1059 clock-names = "sysmmu", "master";
1060 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
1061 #iommu-cells = <0>;
1062 };
1063
1064 sysmmu_tv: sysmmu@0x14650000 {
1065 compatible = "samsung,exynos-sysmmu";
1066 reg = <0x14650000 0x1000>;
1067 interrupt-parent = <&combiner>;
1068 interrupts = <7 4>;
1069 clock-names = "sysmmu", "master";
1070 clocks = <&clock CLK_SMMU_MIXER>, <&clock CLK_MIXER>;
1071 power-domains = <&disp_pd>;
1072 #iommu-cells = <0>;
1073 };
1074
1075 sysmmu_gscl0: sysmmu@0x13E80000 {
1076 compatible = "samsung,exynos-sysmmu";
1077 reg = <0x13E80000 0x1000>;
1078 interrupt-parent = <&combiner>;
1079 interrupts = <2 0>;
1080 clock-names = "sysmmu", "master";
1081 clocks = <&clock CLK_SMMU_GSCL0>, <&clock CLK_GSCL0>;
1082 power-domains = <&gsc_pd>;
1083 #iommu-cells = <0>;
1084 };
1085
1086 sysmmu_gscl1: sysmmu@0x13E90000 {
1087 compatible = "samsung,exynos-sysmmu";
1088 reg = <0x13E90000 0x1000>;
1089 interrupt-parent = <&combiner>;
1090 interrupts = <2 2>;
1091 clock-names = "sysmmu", "master";
1092 clocks = <&clock CLK_SMMU_GSCL1>, <&clock CLK_GSCL1>;
1093 power-domains = <&gsc_pd>;
1094 #iommu-cells = <0>;
1095 };
1096
1097 sysmmu_scaler0r: sysmmu@0x12880000 {
1098 compatible = "samsung,exynos-sysmmu";
1099 reg = <0x12880000 0x1000>;
1100 interrupt-parent = <&combiner>;
1101 interrupts = <22 4>;
1102 clock-names = "sysmmu", "master";
1103 clocks = <&clock CLK_SMMU_MSCL0>, <&clock CLK_MSCL0>;
1104 #iommu-cells = <0>;
1105 };
1106
1107 sysmmu_scaler1r: sysmmu@0x12890000 {
1108 compatible = "samsung,exynos-sysmmu";
1109 reg = <0x12890000 0x1000>;
1110 interrupts = <0 186 0>;
1111 clock-names = "sysmmu", "master";
1112 clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
1113 #iommu-cells = <0>;
1114 };
1115 532
1116 sysmmu_scaler2r: sysmmu@0x128A0000 { 533 mipi_phy: mipi-video-phy {
1117 compatible = "samsung,exynos-sysmmu"; 534 compatible = "samsung,s5pv210-mipi-video-phy";
1118 reg = <0x128A0000 0x1000>; 535 syscon = <&pmu_system_controller>;
1119 interrupts = <0 188 0>; 536 #phy-cells = <1>;
1120 clock-names = "sysmmu", "master";
1121 clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
1122 #iommu-cells = <0>;
1123 };
1124
1125 sysmmu_scaler0w: sysmmu@0x128C0000 {
1126 compatible = "samsung,exynos-sysmmu";
1127 reg = <0x128C0000 0x1000>;
1128 interrupt-parent = <&combiner>;
1129 interrupts = <27 2>;
1130 clock-names = "sysmmu", "master";
1131 clocks = <&clock CLK_SMMU_MSCL0>, <&clock CLK_MSCL0>;
1132 #iommu-cells = <0>;
1133 };
1134
1135 sysmmu_scaler1w: sysmmu@0x128D0000 {
1136 compatible = "samsung,exynos-sysmmu";
1137 reg = <0x128D0000 0x1000>;
1138 interrupt-parent = <&combiner>;
1139 interrupts = <22 6>;
1140 clock-names = "sysmmu", "master";
1141 clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
1142 #iommu-cells = <0>;
1143 };
1144
1145 sysmmu_scaler2w: sysmmu@0x128E0000 {
1146 compatible = "samsung,exynos-sysmmu";
1147 reg = <0x128E0000 0x1000>;
1148 interrupt-parent = <&combiner>;
1149 interrupts = <19 6>;
1150 clock-names = "sysmmu", "master";
1151 clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
1152 #iommu-cells = <0>;
1153 };
1154
1155 sysmmu_rotator: sysmmu@0x11D40000 {
1156 compatible = "samsung,exynos-sysmmu";
1157 reg = <0x11D40000 0x1000>;
1158 interrupt-parent = <&combiner>;
1159 interrupts = <4 0>;
1160 clock-names = "sysmmu", "master";
1161 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>;
1162 #iommu-cells = <0>;
1163 };
1164
1165 sysmmu_jpeg0: sysmmu@0x11F10000 {
1166 compatible = "samsung,exynos-sysmmu";
1167 reg = <0x11F10000 0x1000>;
1168 interrupt-parent = <&combiner>;
1169 interrupts = <4 2>;
1170 clock-names = "sysmmu", "master";
1171 clocks = <&clock CLK_SMMU_JPEG>, <&clock CLK_JPEG>;
1172 #iommu-cells = <0>;
1173 };
1174
1175 sysmmu_jpeg1: sysmmu@0x11F20000 {
1176 compatible = "samsung,exynos-sysmmu";
1177 reg = <0x11F20000 0x1000>;
1178 interrupts = <0 169 0>;
1179 clock-names = "sysmmu", "master";
1180 clocks = <&clock CLK_SMMU_JPEG2>, <&clock CLK_JPEG2>;
1181 #iommu-cells = <0>;
1182 };
1183
1184 sysmmu_mfc_l: sysmmu@0x11200000 {
1185 compatible = "samsung,exynos-sysmmu";
1186 reg = <0x11200000 0x1000>;
1187 interrupt-parent = <&combiner>;
1188 interrupts = <6 2>;
1189 clock-names = "sysmmu", "master";
1190 clocks = <&clock CLK_SMMU_MFCL>, <&clock CLK_MFC>;
1191 power-domains = <&mfc_pd>;
1192 #iommu-cells = <0>;
1193 };
1194
1195 sysmmu_mfc_r: sysmmu@0x11210000 {
1196 compatible = "samsung,exynos-sysmmu";
1197 reg = <0x11210000 0x1000>;
1198 interrupt-parent = <&combiner>;
1199 interrupts = <8 5>;
1200 clock-names = "sysmmu", "master";
1201 clocks = <&clock CLK_SMMU_MFCR>, <&clock CLK_MFC>;
1202 power-domains = <&mfc_pd>;
1203 #iommu-cells = <0>;
1204 };
1205
1206 sysmmu_fimd1_0: sysmmu@0x14640000 {
1207 compatible = "samsung,exynos-sysmmu";
1208 reg = <0x14640000 0x1000>;
1209 interrupt-parent = <&combiner>;
1210 interrupts = <3 2>;
1211 clock-names = "sysmmu", "master";
1212 clocks = <&clock CLK_SMMU_FIMD1M0>, <&clock CLK_FIMD1>;
1213 power-domains = <&disp_pd>;
1214 #iommu-cells = <0>;
1215 };
1216
1217 sysmmu_fimd1_1: sysmmu@0x14680000 {
1218 compatible = "samsung,exynos-sysmmu";
1219 reg = <0x14680000 0x1000>;
1220 interrupt-parent = <&combiner>;
1221 interrupts = <3 0>;
1222 clock-names = "sysmmu", "master";
1223 clocks = <&clock CLK_SMMU_FIMD1M1>, <&clock CLK_FIMD1>;
1224 power-domains = <&disp_pd>;
1225 #iommu-cells = <0>;
1226 };
1227
1228 bus_wcore: bus_wcore {
1229 compatible = "samsung,exynos-bus";
1230 clocks = <&clock CLK_DOUT_ACLK400_WCORE>;
1231 clock-names = "bus";
1232 operating-points-v2 = <&bus_wcore_opp_table>;
1233 status = "disabled";
1234 };
1235
1236 bus_noc: bus_noc {
1237 compatible = "samsung,exynos-bus";
1238 clocks = <&clock CLK_DOUT_ACLK100_NOC>;
1239 clock-names = "bus";
1240 operating-points-v2 = <&bus_noc_opp_table>;
1241 status = "disabled";
1242 };
1243
1244 bus_fsys_apb: bus_fsys_apb {
1245 compatible = "samsung,exynos-bus";
1246 clocks = <&clock CLK_DOUT_PCLK200_FSYS>;
1247 clock-names = "bus";
1248 operating-points-v2 = <&bus_fsys_apb_opp_table>;
1249 status = "disabled";
1250 };
1251
1252 bus_fsys: bus_fsys {
1253 compatible = "samsung,exynos-bus";
1254 clocks = <&clock CLK_DOUT_ACLK200_FSYS>;
1255 clock-names = "bus";
1256 operating-points-v2 = <&bus_fsys_apb_opp_table>;
1257 status = "disabled";
1258 };
1259
1260 bus_fsys2: bus_fsys2 {
1261 compatible = "samsung,exynos-bus";
1262 clocks = <&clock CLK_DOUT_ACLK200_FSYS2>;
1263 clock-names = "bus";
1264 operating-points-v2 = <&bus_fsys2_opp_table>;
1265 status = "disabled";
1266 };
1267
1268 bus_mfc: bus_mfc {
1269 compatible = "samsung,exynos-bus";
1270 clocks = <&clock CLK_DOUT_ACLK333>;
1271 clock-names = "bus";
1272 operating-points-v2 = <&bus_mfc_opp_table>;
1273 status = "disabled";
1274 };
1275
1276 bus_gen: bus_gen {
1277 compatible = "samsung,exynos-bus";
1278 clocks = <&clock CLK_DOUT_ACLK266>;
1279 clock-names = "bus";
1280 operating-points-v2 = <&bus_gen_opp_table>;
1281 status = "disabled";
1282 };
1283
1284 bus_peri: bus_peri {
1285 compatible = "samsung,exynos-bus";
1286 clocks = <&clock CLK_DOUT_ACLK66>;
1287 clock-names = "bus";
1288 operating-points-v2 = <&bus_peri_opp_table>;
1289 status = "disabled";
1290 };
1291
1292 bus_g2d: bus_g2d {
1293 compatible = "samsung,exynos-bus";
1294 clocks = <&clock CLK_DOUT_ACLK333_G2D>;
1295 clock-names = "bus";
1296 operating-points-v2 = <&bus_g2d_opp_table>;
1297 status = "disabled";
1298 };
1299
1300 bus_g2d_acp: bus_g2d_acp {
1301 compatible = "samsung,exynos-bus";
1302 clocks = <&clock CLK_DOUT_ACLK266_G2D>;
1303 clock-names = "bus";
1304 operating-points-v2 = <&bus_g2d_acp_opp_table>;
1305 status = "disabled";
1306 };
1307
1308 bus_jpeg: bus_jpeg {
1309 compatible = "samsung,exynos-bus";
1310 clocks = <&clock CLK_DOUT_ACLK300_JPEG>;
1311 clock-names = "bus";
1312 operating-points-v2 = <&bus_jpeg_opp_table>;
1313 status = "disabled";
1314 };
1315
1316 bus_jpeg_apb: bus_jpeg_apb {
1317 compatible = "samsung,exynos-bus";
1318 clocks = <&clock CLK_DOUT_ACLK166>;
1319 clock-names = "bus";
1320 operating-points-v2 = <&bus_jpeg_apb_opp_table>;
1321 status = "disabled";
1322 };
1323
1324 bus_disp1_fimd: bus_disp1_fimd {
1325 compatible = "samsung,exynos-bus";
1326 clocks = <&clock CLK_DOUT_ACLK300_DISP1>;
1327 clock-names = "bus";
1328 operating-points-v2 = <&bus_disp1_fimd_opp_table>;
1329 status = "disabled";
1330 };
1331
1332 bus_disp1: bus_disp1 {
1333 compatible = "samsung,exynos-bus";
1334 clocks = <&clock CLK_DOUT_ACLK400_DISP1>;
1335 clock-names = "bus";
1336 operating-points-v2 = <&bus_disp1_opp_table>;
1337 status = "disabled";
1338 };
1339
1340 bus_gscl_scaler: bus_gscl_scaler {
1341 compatible = "samsung,exynos-bus";
1342 clocks = <&clock CLK_DOUT_ACLK300_GSCL>;
1343 clock-names = "bus";
1344 operating-points-v2 = <&bus_gscl_opp_table>;
1345 status = "disabled";
1346 };
1347
1348 bus_mscl: bus_mscl {
1349 compatible = "samsung,exynos-bus";
1350 clocks = <&clock CLK_DOUT_ACLK400_MSCL>;
1351 clock-names = "bus";
1352 operating-points-v2 = <&bus_mscl_opp_table>;
1353 status = "disabled";
1354 };
1355
1356 bus_wcore_opp_table: opp_table2 {
1357 compatible = "operating-points-v2";
1358
1359 opp00 {
1360 opp-hz = /bits/ 64 <84000000>;
1361 opp-microvolt = <925000>;
1362 };
1363 opp01 {
1364 opp-hz = /bits/ 64 <111000000>;
1365 opp-microvolt = <950000>;
1366 };
1367 opp02 {
1368 opp-hz = /bits/ 64 <222000000>;
1369 opp-microvolt = <950000>;
1370 }; 537 };
1371 opp03 {
1372 opp-hz = /bits/ 64 <333000000>;
1373 opp-microvolt = <950000>;
1374 };
1375 opp04 {
1376 opp-hz = /bits/ 64 <400000000>;
1377 opp-microvolt = <987500>;
1378 };
1379 };
1380 538
1381 bus_noc_opp_table: opp_table3 { 539 dsi@14500000 {
1382 compatible = "operating-points-v2"; 540 compatible = "samsung,exynos5410-mipi-dsi";
1383 541 reg = <0x14500000 0x10000>;
1384 opp00 { 542 interrupts = <0 82 0>;
1385 opp-hz = /bits/ 64 <67000000>; 543 phys = <&mipi_phy 1>;
1386 }; 544 phy-names = "dsim";
1387 opp01 { 545 clocks = <&clock CLK_DSIM1>, <&clock CLK_SCLK_MIPI1>;
1388 opp-hz = /bits/ 64 <75000000>; 546 clock-names = "bus_clk", "pll_clk";
1389 }; 547 #address-cells = <1>;
1390 opp02 { 548 #size-cells = <0>;
1391 opp-hz = /bits/ 64 <86000000>; 549 status = "disabled";
1392 };
1393 opp03 {
1394 opp-hz = /bits/ 64 <100000000>;
1395 }; 550 };
1396 };
1397
1398 bus_fsys_apb_opp_table: opp_table4 {
1399 compatible = "operating-points-v2";
1400 opp-shared;
1401 551
1402 opp00 { 552 adc: adc@12D10000 {
1403 opp-hz = /bits/ 64 <100000000>; 553 compatible = "samsung,exynos-adc-v2";
1404 }; 554 reg = <0x12D10000 0x100>;
1405 opp01 { 555 interrupts = <0 106 0>;
1406 opp-hz = /bits/ 64 <200000000>; 556 clocks = <&clock CLK_TSADC>;
557 clock-names = "adc";
558 #io-channel-cells = <1>;
559 io-channel-ranges;
560 samsung,syscon-phandle = <&pmu_system_controller>;
561 status = "disabled";
1407 }; 562 };
1408 };
1409
1410 bus_fsys2_opp_table: opp_table5 {
1411 compatible = "operating-points-v2";
1412 563
1413 opp00 { 564 hsi2c_8: i2c@12E00000 {
1414 opp-hz = /bits/ 64 <75000000>; 565 compatible = "samsung,exynos5250-hsi2c";
1415 }; 566 reg = <0x12E00000 0x1000>;
1416 opp01 { 567 interrupts = <0 87 0>;
1417 opp-hz = /bits/ 64 <100000000>; 568 #address-cells = <1>;
1418 }; 569 #size-cells = <0>;
1419 opp02 { 570 pinctrl-names = "default";
1420 opp-hz = /bits/ 64 <150000000>; 571 pinctrl-0 = <&i2c8_hs_bus>;
572 clocks = <&clock CLK_USI4>;
573 clock-names = "hsi2c";
574 status = "disabled";
1421 }; 575 };
1422 };
1423 576
1424 bus_mfc_opp_table: opp_table6 { 577 hsi2c_9: i2c@12E10000 {
1425 compatible = "operating-points-v2"; 578 compatible = "samsung,exynos5250-hsi2c";
1426 579 reg = <0x12E10000 0x1000>;
1427 opp00 { 580 interrupts = <0 88 0>;
1428 opp-hz = /bits/ 64 <96000000>; 581 #address-cells = <1>;
1429 }; 582 #size-cells = <0>;
1430 opp01 { 583 pinctrl-names = "default";
1431 opp-hz = /bits/ 64 <111000000>; 584 pinctrl-0 = <&i2c9_hs_bus>;
1432 }; 585 clocks = <&clock CLK_USI5>;
1433 opp02 { 586 clock-names = "hsi2c";
1434 opp-hz = /bits/ 64 <167000000>; 587 status = "disabled";
1435 };
1436 opp03 {
1437 opp-hz = /bits/ 64 <222000000>;
1438 };
1439 opp04 {
1440 opp-hz = /bits/ 64 <333000000>;
1441 }; 588 };
1442 };
1443 589
1444 bus_gen_opp_table: opp_table7 { 590 hsi2c_10: i2c@12E20000 {
1445 compatible = "operating-points-v2"; 591 compatible = "samsung,exynos5250-hsi2c";
1446 592 reg = <0x12E20000 0x1000>;
1447 opp00 { 593 interrupts = <0 203 0>;
1448 opp-hz = /bits/ 64 <89000000>; 594 #address-cells = <1>;
1449 }; 595 #size-cells = <0>;
1450 opp01 { 596 pinctrl-names = "default";
1451 opp-hz = /bits/ 64 <133000000>; 597 pinctrl-0 = <&i2c10_hs_bus>;
1452 }; 598 clocks = <&clock CLK_USI6>;
1453 opp02 { 599 clock-names = "hsi2c";
1454 opp-hz = /bits/ 64 <178000000>; 600 status = "disabled";
1455 };
1456 opp03 {
1457 opp-hz = /bits/ 64 <267000000>;
1458 }; 601 };
1459 };
1460
1461 bus_peri_opp_table: opp_table8 {
1462 compatible = "operating-points-v2";
1463 602
1464 opp00 { 603 hdmi: hdmi@14530000 {
1465 opp-hz = /bits/ 64 <67000000>; 604 compatible = "samsung,exynos5420-hdmi";
605 reg = <0x14530000 0x70000>;
606 interrupts = <0 95 0>;
607 clocks = <&clock CLK_HDMI>, <&clock CLK_SCLK_HDMI>,
608 <&clock CLK_DOUT_PIXEL>, <&clock CLK_SCLK_HDMIPHY>,
609 <&clock CLK_MOUT_HDMI>;
610 clock-names = "hdmi", "sclk_hdmi", "sclk_pixel",
611 "sclk_hdmiphy", "mout_hdmi";
612 phy = <&hdmiphy>;
613 samsung,syscon-phandle = <&pmu_system_controller>;
614 status = "disabled";
615 power-domains = <&disp_pd>;
616 };
617
618 hdmiphy: hdmiphy@145D0000 {
619 reg = <0x145D0000 0x20>;
620 };
621
622 mixer: mixer@14450000 {
623 compatible = "samsung,exynos5420-mixer";
624 reg = <0x14450000 0x10000>;
625 interrupts = <0 94 0>;
626 clocks = <&clock CLK_MIXER>, <&clock CLK_HDMI>,
627 <&clock CLK_SCLK_HDMI>;
628 clock-names = "mixer", "hdmi", "sclk_hdmi";
629 power-domains = <&disp_pd>;
630 iommus = <&sysmmu_tv>;
631 };
632
633 rotator: rotator@11C00000 {
634 compatible = "samsung,exynos5250-rotator";
635 reg = <0x11C00000 0x64>;
636 interrupts = <0 84 0>;
637 clocks = <&clock CLK_ROTATOR>;
638 clock-names = "rotator";
639 iommus = <&sysmmu_rotator>;
640 };
641
642 gsc_0: video-scaler@13e00000 {
643 compatible = "samsung,exynos5-gsc";
644 reg = <0x13e00000 0x1000>;
645 interrupts = <0 85 0>;
646 clocks = <&clock CLK_GSCL0>;
647 clock-names = "gscl";
648 power-domains = <&gsc_pd>;
649 iommus = <&sysmmu_gscl0>;
650 };
651
652 gsc_1: video-scaler@13e10000 {
653 compatible = "samsung,exynos5-gsc";
654 reg = <0x13e10000 0x1000>;
655 interrupts = <0 86 0>;
656 clocks = <&clock CLK_GSCL1>;
657 clock-names = "gscl";
658 power-domains = <&gsc_pd>;
659 iommus = <&sysmmu_gscl1>;
660 };
661
662 jpeg_0: jpeg@11F50000 {
663 compatible = "samsung,exynos5420-jpeg";
664 reg = <0x11F50000 0x1000>;
665 interrupts = <0 89 0>;
666 clock-names = "jpeg";
667 clocks = <&clock CLK_JPEG>;
668 iommus = <&sysmmu_jpeg0>;
669 };
670
671 jpeg_1: jpeg@11F60000 {
672 compatible = "samsung,exynos5420-jpeg";
673 reg = <0x11F60000 0x1000>;
674 interrupts = <0 168 0>;
675 clock-names = "jpeg";
676 clocks = <&clock CLK_JPEG2>;
677 iommus = <&sysmmu_jpeg1>;
678 };
679
680 pmu_system_controller: system-controller@10040000 {
681 compatible = "samsung,exynos5420-pmu", "syscon";
682 reg = <0x10040000 0x5000>;
683 clock-names = "clkout16";
684 clocks = <&clock CLK_FIN_PLL>;
685 #clock-cells = <1>;
686 interrupt-controller;
687 #interrupt-cells = <3>;
688 interrupt-parent = <&gic>;
1466 }; 689 };
1467 };
1468
1469 bus_g2d_opp_table: opp_table9 {
1470 compatible = "operating-points-v2";
1471 690
1472 opp00 { 691 tmu_cpu0: tmu@10060000 {
1473 opp-hz = /bits/ 64 <84000000>; 692 compatible = "samsung,exynos5420-tmu";
1474 }; 693 reg = <0x10060000 0x100>;
1475 opp01 { 694 interrupts = <0 65 0>;
1476 opp-hz = /bits/ 64 <167000000>; 695 clocks = <&clock CLK_TMU>;
1477 }; 696 clock-names = "tmu_apbif";
1478 opp02 { 697 #include "exynos4412-tmu-sensor-conf.dtsi"
1479 opp-hz = /bits/ 64 <222000000>; 698 };
1480 }; 699
1481 opp03 { 700 tmu_cpu1: tmu@10064000 {
1482 opp-hz = /bits/ 64 <300000000>; 701 compatible = "samsung,exynos5420-tmu";
1483 }; 702 reg = <0x10064000 0x100>;
1484 opp04 { 703 interrupts = <0 183 0>;
1485 opp-hz = /bits/ 64 <333000000>; 704 clocks = <&clock CLK_TMU>;
705 clock-names = "tmu_apbif";
706 #include "exynos4412-tmu-sensor-conf.dtsi"
707 };
708
709 tmu_cpu2: tmu@10068000 {
710 compatible = "samsung,exynos5420-tmu-ext-triminfo";
711 reg = <0x10068000 0x100>, <0x1006c000 0x4>;
712 interrupts = <0 184 0>;
713 clocks = <&clock CLK_TMU>, <&clock CLK_TMU>;
714 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
715 #include "exynos4412-tmu-sensor-conf.dtsi"
716 };
717
718 tmu_cpu3: tmu@1006c000 {
719 compatible = "samsung,exynos5420-tmu-ext-triminfo";
720 reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
721 interrupts = <0 185 0>;
722 clocks = <&clock CLK_TMU>, <&clock CLK_TMU_GPU>;
723 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
724 #include "exynos4412-tmu-sensor-conf.dtsi"
725 };
726
727 tmu_gpu: tmu@100a0000 {
728 compatible = "samsung,exynos5420-tmu-ext-triminfo";
729 reg = <0x100a0000 0x100>, <0x10068000 0x4>;
730 interrupts = <0 215 0>;
731 clocks = <&clock CLK_TMU_GPU>, <&clock CLK_TMU>;
732 clock-names = "tmu_apbif", "tmu_triminfo_apbif";
733 #include "exynos4412-tmu-sensor-conf.dtsi"
734 };
735
736 sysmmu_g2dr: sysmmu@0x10A60000 {
737 compatible = "samsung,exynos-sysmmu";
738 reg = <0x10A60000 0x1000>;
739 interrupt-parent = <&combiner>;
740 interrupts = <24 5>;
741 clock-names = "sysmmu", "master";
742 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
743 #iommu-cells = <0>;
744 };
745
746 sysmmu_g2dw: sysmmu@0x10A70000 {
747 compatible = "samsung,exynos-sysmmu";
748 reg = <0x10A70000 0x1000>;
749 interrupt-parent = <&combiner>;
750 interrupts = <22 2>;
751 clock-names = "sysmmu", "master";
752 clocks = <&clock CLK_SMMU_G2D>, <&clock CLK_G2D>;
753 #iommu-cells = <0>;
754 };
755
756 sysmmu_tv: sysmmu@0x14650000 {
757 compatible = "samsung,exynos-sysmmu";
758 reg = <0x14650000 0x1000>;
759 interrupt-parent = <&combiner>;
760 interrupts = <7 4>;
761 clock-names = "sysmmu", "master";
762 clocks = <&clock CLK_SMMU_MIXER>, <&clock CLK_MIXER>;
763 power-domains = <&disp_pd>;
764 #iommu-cells = <0>;
765 };
766
767 sysmmu_gscl0: sysmmu@0x13E80000 {
768 compatible = "samsung,exynos-sysmmu";
769 reg = <0x13E80000 0x1000>;
770 interrupt-parent = <&combiner>;
771 interrupts = <2 0>;
772 clock-names = "sysmmu", "master";
773 clocks = <&clock CLK_SMMU_GSCL0>, <&clock CLK_GSCL0>;
774 power-domains = <&gsc_pd>;
775 #iommu-cells = <0>;
776 };
777
778 sysmmu_gscl1: sysmmu@0x13E90000 {
779 compatible = "samsung,exynos-sysmmu";
780 reg = <0x13E90000 0x1000>;
781 interrupt-parent = <&combiner>;
782 interrupts = <2 2>;
783 clock-names = "sysmmu", "master";
784 clocks = <&clock CLK_SMMU_GSCL1>, <&clock CLK_GSCL1>;
785 power-domains = <&gsc_pd>;
786 #iommu-cells = <0>;
787 };
788
789 sysmmu_scaler0r: sysmmu@0x12880000 {
790 compatible = "samsung,exynos-sysmmu";
791 reg = <0x12880000 0x1000>;
792 interrupt-parent = <&combiner>;
793 interrupts = <22 4>;
794 clock-names = "sysmmu", "master";
795 clocks = <&clock CLK_SMMU_MSCL0>, <&clock CLK_MSCL0>;
796 #iommu-cells = <0>;
797 };
798
799 sysmmu_scaler1r: sysmmu@0x12890000 {
800 compatible = "samsung,exynos-sysmmu";
801 reg = <0x12890000 0x1000>;
802 interrupts = <0 186 0>;
803 clock-names = "sysmmu", "master";
804 clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
805 #iommu-cells = <0>;
806 };
807
808 sysmmu_scaler2r: sysmmu@0x128A0000 {
809 compatible = "samsung,exynos-sysmmu";
810 reg = <0x128A0000 0x1000>;
811 interrupts = <0 188 0>;
812 clock-names = "sysmmu", "master";
813 clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
814 #iommu-cells = <0>;
815 };
816
817 sysmmu_scaler0w: sysmmu@0x128C0000 {
818 compatible = "samsung,exynos-sysmmu";
819 reg = <0x128C0000 0x1000>;
820 interrupt-parent = <&combiner>;
821 interrupts = <27 2>;
822 clock-names = "sysmmu", "master";
823 clocks = <&clock CLK_SMMU_MSCL0>, <&clock CLK_MSCL0>;
824 #iommu-cells = <0>;
825 };
826
827 sysmmu_scaler1w: sysmmu@0x128D0000 {
828 compatible = "samsung,exynos-sysmmu";
829 reg = <0x128D0000 0x1000>;
830 interrupt-parent = <&combiner>;
831 interrupts = <22 6>;
832 clock-names = "sysmmu", "master";
833 clocks = <&clock CLK_SMMU_MSCL1>, <&clock CLK_MSCL1>;
834 #iommu-cells = <0>;
835 };
836
837 sysmmu_scaler2w: sysmmu@0x128E0000 {
838 compatible = "samsung,exynos-sysmmu";
839 reg = <0x128E0000 0x1000>;
840 interrupt-parent = <&combiner>;
841 interrupts = <19 6>;
842 clock-names = "sysmmu", "master";
843 clocks = <&clock CLK_SMMU_MSCL2>, <&clock CLK_MSCL2>;
844 #iommu-cells = <0>;
845 };
846
847 sysmmu_rotator: sysmmu@0x11D40000 {
848 compatible = "samsung,exynos-sysmmu";
849 reg = <0x11D40000 0x1000>;
850 interrupt-parent = <&combiner>;
851 interrupts = <4 0>;
852 clock-names = "sysmmu", "master";
853 clocks = <&clock CLK_SMMU_ROTATOR>, <&clock CLK_ROTATOR>;
854 #iommu-cells = <0>;
855 };
856
857 sysmmu_jpeg0: sysmmu@0x11F10000 {
858 compatible = "samsung,exynos-sysmmu";
859 reg = <0x11F10000 0x1000>;
860 interrupt-parent = <&combiner>;
861 interrupts = <4 2>;
862 clock-names = "sysmmu", "master";
863 clocks = <&clock CLK_SMMU_JPEG>, <&clock CLK_JPEG>;
864 #iommu-cells = <0>;
865 };
866
867 sysmmu_jpeg1: sysmmu@0x11F20000 {
868 compatible = "samsung,exynos-sysmmu";
869 reg = <0x11F20000 0x1000>;
870 interrupts = <0 169 0>;
871 clock-names = "sysmmu", "master";
872 clocks = <&clock CLK_SMMU_JPEG2>, <&clock CLK_JPEG2>;
873 #iommu-cells = <0>;
874 };
875
876 sysmmu_mfc_l: sysmmu@0x11200000 {
877 compatible = "samsung,exynos-sysmmu";
878 reg = <0x11200000 0x1000>;
879 interrupt-parent = <&combiner>;
880 interrupts = <6 2>;
881 clock-names = "sysmmu", "master";
882 clocks = <&clock CLK_SMMU_MFCL>, <&clock CLK_MFC>;
883 power-domains = <&mfc_pd>;
884 #iommu-cells = <0>;
885 };
886
887 sysmmu_mfc_r: sysmmu@0x11210000 {
888 compatible = "samsung,exynos-sysmmu";
889 reg = <0x11210000 0x1000>;
890 interrupt-parent = <&combiner>;
891 interrupts = <8 5>;
892 clock-names = "sysmmu", "master";
893 clocks = <&clock CLK_SMMU_MFCR>, <&clock CLK_MFC>;
894 power-domains = <&mfc_pd>;
895 #iommu-cells = <0>;
896 };
897
898 sysmmu_fimd1_0: sysmmu@0x14640000 {
899 compatible = "samsung,exynos-sysmmu";
900 reg = <0x14640000 0x1000>;
901 interrupt-parent = <&combiner>;
902 interrupts = <3 2>;
903 clock-names = "sysmmu", "master";
904 clocks = <&clock CLK_SMMU_FIMD1M0>, <&clock CLK_FIMD1>;
905 power-domains = <&disp_pd>;
906 #iommu-cells = <0>;
907 };
908
909 sysmmu_fimd1_1: sysmmu@0x14680000 {
910 compatible = "samsung,exynos-sysmmu";
911 reg = <0x14680000 0x1000>;
912 interrupt-parent = <&combiner>;
913 interrupts = <3 0>;
914 clock-names = "sysmmu", "master";
915 clocks = <&clock CLK_SMMU_FIMD1M1>, <&clock CLK_FIMD1>;
916 power-domains = <&disp_pd>;
917 #iommu-cells = <0>;
918 };
919
920 bus_wcore: bus_wcore {
921 compatible = "samsung,exynos-bus";
922 clocks = <&clock CLK_DOUT_ACLK400_WCORE>;
923 clock-names = "bus";
924 operating-points-v2 = <&bus_wcore_opp_table>;
925 status = "disabled";
1486 }; 926 };
1487 };
1488
1489 bus_g2d_acp_opp_table: opp_table10 {
1490 compatible = "operating-points-v2";
1491 927
1492 opp00 { 928 bus_noc: bus_noc {
1493 opp-hz = /bits/ 64 <67000000>; 929 compatible = "samsung,exynos-bus";
1494 }; 930 clocks = <&clock CLK_DOUT_ACLK100_NOC>;
1495 opp01 { 931 clock-names = "bus";
1496 opp-hz = /bits/ 64 <133000000>; 932 operating-points-v2 = <&bus_noc_opp_table>;
1497 }; 933 status = "disabled";
1498 opp02 {
1499 opp-hz = /bits/ 64 <178000000>;
1500 };
1501 opp03 {
1502 opp-hz = /bits/ 64 <267000000>;
1503 }; 934 };
1504 };
1505
1506 bus_jpeg_opp_table: opp_table11 {
1507 compatible = "operating-points-v2";
1508 935
1509 opp00 { 936 bus_fsys_apb: bus_fsys_apb {
1510 opp-hz = /bits/ 64 <75000000>; 937 compatible = "samsung,exynos-bus";
1511 }; 938 clocks = <&clock CLK_DOUT_PCLK200_FSYS>;
1512 opp01 { 939 clock-names = "bus";
1513 opp-hz = /bits/ 64 <150000000>; 940 operating-points-v2 = <&bus_fsys_apb_opp_table>;
1514 }; 941 status = "disabled";
1515 opp02 {
1516 opp-hz = /bits/ 64 <200000000>;
1517 };
1518 opp03 {
1519 opp-hz = /bits/ 64 <300000000>;
1520 }; 942 };
1521 };
1522
1523 bus_jpeg_apb_opp_table: opp_table12 {
1524 compatible = "operating-points-v2";
1525 943
1526 opp00 { 944 bus_fsys: bus_fsys {
1527 opp-hz = /bits/ 64 <84000000>; 945 compatible = "samsung,exynos-bus";
1528 }; 946 clocks = <&clock CLK_DOUT_ACLK200_FSYS>;
1529 opp01 { 947 clock-names = "bus";
1530 opp-hz = /bits/ 64 <111000000>; 948 operating-points-v2 = <&bus_fsys_apb_opp_table>;
949 status = "disabled";
1531 }; 950 };
1532 opp02 { 951
1533 opp-hz = /bits/ 64 <134000000>; 952 bus_fsys2: bus_fsys2 {
953 compatible = "samsung,exynos-bus";
954 clocks = <&clock CLK_DOUT_ACLK200_FSYS2>;
955 clock-names = "bus";
956 operating-points-v2 = <&bus_fsys2_opp_table>;
957 status = "disabled";
1534 }; 958 };
1535 opp03 { 959
1536 opp-hz = /bits/ 64 <167000000>; 960 bus_mfc: bus_mfc {
961 compatible = "samsung,exynos-bus";
962 clocks = <&clock CLK_DOUT_ACLK333>;
963 clock-names = "bus";
964 operating-points-v2 = <&bus_mfc_opp_table>;
965 status = "disabled";
1537 }; 966 };
1538 };
1539 967
1540 bus_disp1_fimd_opp_table: opp_table13 { 968 bus_gen: bus_gen {
1541 compatible = "operating-points-v2"; 969 compatible = "samsung,exynos-bus";
970 clocks = <&clock CLK_DOUT_ACLK266>;
971 clock-names = "bus";
972 operating-points-v2 = <&bus_gen_opp_table>;
973 status = "disabled";
974 };
1542 975
1543 opp00 { 976 bus_peri: bus_peri {
1544 opp-hz = /bits/ 64 <120000000>; 977 compatible = "samsung,exynos-bus";
978 clocks = <&clock CLK_DOUT_ACLK66>;
979 clock-names = "bus";
980 operating-points-v2 = <&bus_peri_opp_table>;
981 status = "disabled";
1545 }; 982 };
1546 opp01 { 983
1547 opp-hz = /bits/ 64 <200000000>; 984 bus_g2d: bus_g2d {
985 compatible = "samsung,exynos-bus";
986 clocks = <&clock CLK_DOUT_ACLK333_G2D>;
987 clock-names = "bus";
988 operating-points-v2 = <&bus_g2d_opp_table>;
989 status = "disabled";
1548 }; 990 };
1549 };
1550 991
1551 bus_disp1_opp_table: opp_table14 { 992 bus_g2d_acp: bus_g2d_acp {
1552 compatible = "operating-points-v2"; 993 compatible = "samsung,exynos-bus";
994 clocks = <&clock CLK_DOUT_ACLK266_G2D>;
995 clock-names = "bus";
996 operating-points-v2 = <&bus_g2d_acp_opp_table>;
997 status = "disabled";
998 };
1553 999
1554 opp00 { 1000 bus_jpeg: bus_jpeg {
1555 opp-hz = /bits/ 64 <120000000>; 1001 compatible = "samsung,exynos-bus";
1002 clocks = <&clock CLK_DOUT_ACLK300_JPEG>;
1003 clock-names = "bus";
1004 operating-points-v2 = <&bus_jpeg_opp_table>;
1005 status = "disabled";
1556 }; 1006 };
1557 opp01 { 1007
1558 opp-hz = /bits/ 64 <200000000>; 1008 bus_jpeg_apb: bus_jpeg_apb {
1009 compatible = "samsung,exynos-bus";
1010 clocks = <&clock CLK_DOUT_ACLK166>;
1011 clock-names = "bus";
1012 operating-points-v2 = <&bus_jpeg_apb_opp_table>;
1013 status = "disabled";
1559 }; 1014 };
1560 opp02 { 1015
1561 opp-hz = /bits/ 64 <300000000>; 1016 bus_disp1_fimd: bus_disp1_fimd {
1017 compatible = "samsung,exynos-bus";
1018 clocks = <&clock CLK_DOUT_ACLK300_DISP1>;
1019 clock-names = "bus";
1020 operating-points-v2 = <&bus_disp1_fimd_opp_table>;
1021 status = "disabled";
1562 }; 1022 };
1563 };
1564 1023
1565 bus_gscl_opp_table: opp_table15 { 1024 bus_disp1: bus_disp1 {
1566 compatible = "operating-points-v2"; 1025 compatible = "samsung,exynos-bus";
1026 clocks = <&clock CLK_DOUT_ACLK400_DISP1>;
1027 clock-names = "bus";
1028 operating-points-v2 = <&bus_disp1_opp_table>;
1029 status = "disabled";
1030 };
1567 1031
1568 opp00 { 1032 bus_gscl_scaler: bus_gscl_scaler {
1569 opp-hz = /bits/ 64 <150000000>; 1033 compatible = "samsung,exynos-bus";
1034 clocks = <&clock CLK_DOUT_ACLK300_GSCL>;
1035 clock-names = "bus";
1036 operating-points-v2 = <&bus_gscl_opp_table>;
1037 status = "disabled";
1570 }; 1038 };
1571 opp01 { 1039
1572 opp-hz = /bits/ 64 <200000000>; 1040 bus_mscl: bus_mscl {
1041 compatible = "samsung,exynos-bus";
1042 clocks = <&clock CLK_DOUT_ACLK400_MSCL>;
1043 clock-names = "bus";
1044 operating-points-v2 = <&bus_mscl_opp_table>;
1045 status = "disabled";
1573 }; 1046 };
1574 opp02 { 1047
1575 opp-hz = /bits/ 64 <300000000>; 1048 bus_wcore_opp_table: opp_table2 {
1049 compatible = "operating-points-v2";
1050
1051 opp00 {
1052 opp-hz = /bits/ 64 <84000000>;
1053 opp-microvolt = <925000>;
1054 };
1055 opp01 {
1056 opp-hz = /bits/ 64 <111000000>;
1057 opp-microvolt = <950000>;
1058 };
1059 opp02 {
1060 opp-hz = /bits/ 64 <222000000>;
1061 opp-microvolt = <950000>;
1062 };
1063 opp03 {
1064 opp-hz = /bits/ 64 <333000000>;
1065 opp-microvolt = <950000>;
1066 };
1067 opp04 {
1068 opp-hz = /bits/ 64 <400000000>;
1069 opp-microvolt = <987500>;
1070 };
1071 };
1072
1073 bus_noc_opp_table: opp_table3 {
1074 compatible = "operating-points-v2";
1075
1076 opp00 {
1077 opp-hz = /bits/ 64 <67000000>;
1078 };
1079 opp01 {
1080 opp-hz = /bits/ 64 <75000000>;
1081 };
1082 opp02 {
1083 opp-hz = /bits/ 64 <86000000>;
1084 };
1085 opp03 {
1086 opp-hz = /bits/ 64 <100000000>;
1087 };
1088 };
1089
1090 bus_fsys_apb_opp_table: opp_table4 {
1091 compatible = "operating-points-v2";
1092 opp-shared;
1093
1094 opp00 {
1095 opp-hz = /bits/ 64 <100000000>;
1096 };
1097 opp01 {
1098 opp-hz = /bits/ 64 <200000000>;
1099 };
1100 };
1101
1102 bus_fsys2_opp_table: opp_table5 {
1103 compatible = "operating-points-v2";
1104
1105 opp00 {
1106 opp-hz = /bits/ 64 <75000000>;
1107 };
1108 opp01 {
1109 opp-hz = /bits/ 64 <100000000>;
1110 };
1111 opp02 {
1112 opp-hz = /bits/ 64 <150000000>;
1113 };
1114 };
1115
1116 bus_mfc_opp_table: opp_table6 {
1117 compatible = "operating-points-v2";
1118
1119 opp00 {
1120 opp-hz = /bits/ 64 <96000000>;
1121 };
1122 opp01 {
1123 opp-hz = /bits/ 64 <111000000>;
1124 };
1125 opp02 {
1126 opp-hz = /bits/ 64 <167000000>;
1127 };
1128 opp03 {
1129 opp-hz = /bits/ 64 <222000000>;
1130 };
1131 opp04 {
1132 opp-hz = /bits/ 64 <333000000>;
1133 };
1134 };
1135
1136 bus_gen_opp_table: opp_table7 {
1137 compatible = "operating-points-v2";
1138
1139 opp00 {
1140 opp-hz = /bits/ 64 <89000000>;
1141 };
1142 opp01 {
1143 opp-hz = /bits/ 64 <133000000>;
1144 };
1145 opp02 {
1146 opp-hz = /bits/ 64 <178000000>;
1147 };
1148 opp03 {
1149 opp-hz = /bits/ 64 <267000000>;
1150 };
1151 };
1152
1153 bus_peri_opp_table: opp_table8 {
1154 compatible = "operating-points-v2";
1155
1156 opp00 {
1157 opp-hz = /bits/ 64 <67000000>;
1158 };
1159 };
1160
1161 bus_g2d_opp_table: opp_table9 {
1162 compatible = "operating-points-v2";
1163
1164 opp00 {
1165 opp-hz = /bits/ 64 <84000000>;
1166 };
1167 opp01 {
1168 opp-hz = /bits/ 64 <167000000>;
1169 };
1170 opp02 {
1171 opp-hz = /bits/ 64 <222000000>;
1172 };
1173 opp03 {
1174 opp-hz = /bits/ 64 <300000000>;
1175 };
1176 opp04 {
1177 opp-hz = /bits/ 64 <333000000>;
1178 };
1179 };
1180
1181 bus_g2d_acp_opp_table: opp_table10 {
1182 compatible = "operating-points-v2";
1183
1184 opp00 {
1185 opp-hz = /bits/ 64 <67000000>;
1186 };
1187 opp01 {
1188 opp-hz = /bits/ 64 <133000000>;
1189 };
1190 opp02 {
1191 opp-hz = /bits/ 64 <178000000>;
1192 };
1193 opp03 {
1194 opp-hz = /bits/ 64 <267000000>;
1195 };
1196 };
1197
1198 bus_jpeg_opp_table: opp_table11 {
1199 compatible = "operating-points-v2";
1200
1201 opp00 {
1202 opp-hz = /bits/ 64 <75000000>;
1203 };
1204 opp01 {
1205 opp-hz = /bits/ 64 <150000000>;
1206 };
1207 opp02 {
1208 opp-hz = /bits/ 64 <200000000>;
1209 };
1210 opp03 {
1211 opp-hz = /bits/ 64 <300000000>;
1212 };
1213 };
1214
1215 bus_jpeg_apb_opp_table: opp_table12 {
1216 compatible = "operating-points-v2";
1217
1218 opp00 {
1219 opp-hz = /bits/ 64 <84000000>;
1220 };
1221 opp01 {
1222 opp-hz = /bits/ 64 <111000000>;
1223 };
1224 opp02 {
1225 opp-hz = /bits/ 64 <134000000>;
1226 };
1227 opp03 {
1228 opp-hz = /bits/ 64 <167000000>;
1229 };
1230 };
1231
1232 bus_disp1_fimd_opp_table: opp_table13 {
1233 compatible = "operating-points-v2";
1234
1235 opp00 {
1236 opp-hz = /bits/ 64 <120000000>;
1237 };
1238 opp01 {
1239 opp-hz = /bits/ 64 <200000000>;
1240 };
1241 };
1242
1243 bus_disp1_opp_table: opp_table14 {
1244 compatible = "operating-points-v2";
1245
1246 opp00 {
1247 opp-hz = /bits/ 64 <120000000>;
1248 };
1249 opp01 {
1250 opp-hz = /bits/ 64 <200000000>;
1251 };
1252 opp02 {
1253 opp-hz = /bits/ 64 <300000000>;
1254 };
1255 };
1256
1257 bus_gscl_opp_table: opp_table15 {
1258 compatible = "operating-points-v2";
1259
1260 opp00 {
1261 opp-hz = /bits/ 64 <150000000>;
1262 };
1263 opp01 {
1264 opp-hz = /bits/ 64 <200000000>;
1265 };
1266 opp02 {
1267 opp-hz = /bits/ 64 <300000000>;
1268 };
1269 };
1270
1271 bus_mscl_opp_table: opp_table16 {
1272 compatible = "operating-points-v2";
1273
1274 opp00 {
1275 opp-hz = /bits/ 64 <84000000>;
1276 };
1277 opp01 {
1278 opp-hz = /bits/ 64 <167000000>;
1279 };
1280 opp02 {
1281 opp-hz = /bits/ 64 <222000000>;
1282 };
1283 opp03 {
1284 opp-hz = /bits/ 64 <333000000>;
1285 };
1286 opp04 {
1287 opp-hz = /bits/ 64 <400000000>;
1288 };
1576 }; 1289 };
1577 }; 1290 };
1578 1291
1579 bus_mscl_opp_table: opp_table16 { 1292 thermal-zones {
1580 compatible = "operating-points-v2"; 1293 cpu0_thermal: cpu0-thermal {
1581 1294 thermal-sensors = <&tmu_cpu0>;
1582 opp00 { 1295 #include "exynos5420-trip-points.dtsi"
1583 opp-hz = /bits/ 64 <84000000>;
1584 }; 1296 };
1585 opp01 { 1297 cpu1_thermal: cpu1-thermal {
1586 opp-hz = /bits/ 64 <167000000>; 1298 thermal-sensors = <&tmu_cpu1>;
1299 #include "exynos5420-trip-points.dtsi"
1587 }; 1300 };
1588 opp02 { 1301 cpu2_thermal: cpu2-thermal {
1589 opp-hz = /bits/ 64 <222000000>; 1302 thermal-sensors = <&tmu_cpu2>;
1303 #include "exynos5420-trip-points.dtsi"
1590 }; 1304 };
1591 opp03 { 1305 cpu3_thermal: cpu3-thermal {
1592 opp-hz = /bits/ 64 <333000000>; 1306 thermal-sensors = <&tmu_cpu3>;
1307 #include "exynos5420-trip-points.dtsi"
1593 }; 1308 };
1594 opp04 { 1309 gpu_thermal: gpu-thermal {
1595 opp-hz = /bits/ 64 <400000000>; 1310 thermal-sensors = <&tmu_gpu>;
1311 #include "exynos5420-trip-points.dtsi"
1596 }; 1312 };
1597 }; 1313 };
1598}; 1314};
@@ -1614,6 +1330,72 @@
1614 iommu-names = "m0", "m1"; 1330 iommu-names = "m0", "m1";
1615}; 1331};
1616 1332
1333&i2c_0 {
1334 clocks = <&clock CLK_I2C0>;
1335 clock-names = "i2c";
1336 pinctrl-names = "default";
1337 pinctrl-0 = <&i2c0_bus>;
1338};
1339
1340&i2c_1 {
1341 clocks = <&clock CLK_I2C1>;
1342 clock-names = "i2c";
1343 pinctrl-names = "default";
1344 pinctrl-0 = <&i2c1_bus>;
1345};
1346
1347&i2c_2 {
1348 clocks = <&clock CLK_I2C2>;
1349 clock-names = "i2c";
1350 pinctrl-names = "default";
1351 pinctrl-0 = <&i2c2_bus>;
1352};
1353
1354&i2c_3 {
1355 clocks = <&clock CLK_I2C3>;
1356 clock-names = "i2c";
1357 pinctrl-names = "default";
1358 pinctrl-0 = <&i2c3_bus>;
1359};
1360
1361&hsi2c_4 {
1362 clocks = <&clock CLK_USI0>;
1363 clock-names = "hsi2c";
1364 pinctrl-names = "default";
1365 pinctrl-0 = <&i2c4_hs_bus>;
1366};
1367
1368&hsi2c_5 {
1369 clocks = <&clock CLK_USI1>;
1370 clock-names = "hsi2c";
1371 pinctrl-names = "default";
1372 pinctrl-0 = <&i2c5_hs_bus>;
1373};
1374
1375&hsi2c_6 {
1376 clocks = <&clock CLK_USI2>;
1377 clock-names = "hsi2c";
1378 pinctrl-names = "default";
1379 pinctrl-0 = <&i2c6_hs_bus>;
1380};
1381
1382&hsi2c_7 {
1383 clocks = <&clock CLK_USI3>;
1384 clock-names = "hsi2c";
1385 pinctrl-names = "default";
1386 pinctrl-0 = <&i2c7_hs_bus>;
1387};
1388
1389&mct {
1390 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
1391 clock-names = "fin_pll", "mct";
1392};
1393
1394&pwm {
1395 clocks = <&clock CLK_PWM>;
1396 clock-names = "timers";
1397};
1398
1617&rtc { 1399&rtc {
1618 clocks = <&clock CLK_RTC>; 1400 clocks = <&clock CLK_RTC>;
1619 clock-names = "rtc"; 1401 clock-names = "rtc";
@@ -1641,4 +1423,58 @@
1641 clock-names = "uart", "clk_uart_baud0"; 1423 clock-names = "uart", "clk_uart_baud0";
1642}; 1424};
1643 1425
1426&sss {
1427 clocks = <&clock CLK_SSS>;
1428 clock-names = "secss";
1429};
1430
1431&usbdrd3_0 {
1432 clocks = <&clock CLK_USBD300>;
1433 clock-names = "usbdrd30";
1434};
1435
1436&usbdrd_phy0 {
1437 clocks = <&clock CLK_USBD300>, <&clock CLK_SCLK_USBPHY300>;
1438 clock-names = "phy", "ref";
1439 samsung,pmu-syscon = <&pmu_system_controller>;
1440};
1441
1442&usbdrd3_1 {
1443 clocks = <&clock CLK_USBD301>;
1444 clock-names = "usbdrd30";
1445};
1446
1447&usbdrd_dwc3_1 {
1448 interrupts = <GIC_SPI 73 0>;
1449};
1450
1451&usbdrd_phy1 {
1452 clocks = <&clock CLK_USBD301>, <&clock CLK_SCLK_USBPHY301>;
1453 clock-names = "phy", "ref";
1454 samsung,pmu-syscon = <&pmu_system_controller>;
1455};
1456
1457&usbhost1 {
1458 clocks = <&clock CLK_USBH20>;
1459 clock-names = "usbhost";
1460};
1461
1462&usbhost2 {
1463 clocks = <&clock CLK_USBH20>;
1464 clock-names = "usbhost";
1465};
1466
1467&usb2_phy {
1468 clocks = <&clock CLK_USBH20>, <&clock CLK_SCLK_USBPHY300>;
1469 clock-names = "phy", "ref";
1470 samsung,sysreg-phandle = <&sysreg_system_controller>;
1471 samsung,pmureg-phandle = <&pmu_system_controller>;
1472};
1473
1474&watchdog {
1475 clocks = <&clock CLK_WDT>;
1476 clock-names = "watchdog";
1477 samsung,syscon-phandle = <&pmu_system_controller>;
1478};
1479
1644#include "exynos5420-pinctrl.dtsi" 1480#include "exynos5420-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi b/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi
deleted file mode 100644
index 3e4c4ad96d63..000000000000
--- a/arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi
+++ /dev/null
@@ -1,103 +0,0 @@
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 = <250>;
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 * Exyunos542x support only 4 trip-points
44 * so for these polling mode is required.
45 * Start polling at temperature level of last
46 * interrupt-driven trip: cpu_alert2
47 */
48 cpu_alert3: cpu-alert-3 {
49 temperature = <70000>; /* millicelsius */
50 hysteresis = <10000>; /* millicelsius */
51 type = "passive";
52 };
53 cpu_alert4: cpu-alert-4 {
54 temperature = <85000>; /* millicelsius */
55 hysteresis = <10000>; /* millicelsius */
56 type = "passive";
57 };
58
59 };
60 cooling-maps {
61 map0 {
62 trip = <&cpu_alert0>;
63 cooling-device = <&fan0 0 1>;
64 };
65 map1 {
66 trip = <&cpu_alert1>;
67 cooling-device = <&fan0 1 2>;
68 };
69 map2 {
70 trip = <&cpu_alert2>;
71 cooling-device = <&fan0 2 3>;
72 };
73 /*
74 * When reaching cpu_alert3, reduce CPU
75 * by 2 steps. On Exynos5422/5800 that would
76 * be: 1500 MHz and 1100 MHz.
77 */
78 map3 {
79 trip = <&cpu_alert3>;
80 cooling-device = <&cpu0 0 2>;
81 };
82 map4 {
83 trip = <&cpu_alert3>;
84 cooling-device = <&cpu4 0 2>;
85 };
86
87 /*
88 * When reaching cpu_alert4, reduce CPU
89 * further, down to 600 MHz (11 steps for big,
90 * 7 steps for LITTLE).
91 */
92 map5 {
93 trip = <&cpu_alert4>;
94 cooling-device = <&cpu0 3 7>;
95 };
96 map6 {
97 trip = <&cpu_alert4>;
98 cooling-device = <&cpu4 3 11>;
99 };
100 };
101 };
102 };
103};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 7c2335f18bfc..d56253049ccb 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -1,9 +1,11 @@
1/* 1/*
2 * Hardkernel Odroid XU3 board device tree source 2 * Hardkernel Odroid XU3 board device tree source
3 * 3 *
4 * Copyright (c) 2014 Collabora Ltd.
5 * Copyright (c) 2013 Samsung Electronics Co., Ltd. 4 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com 5 * http://www.samsung.com
6 * Copyright (c) 2014 Collabora Ltd.
7 * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
8 * Anand Moon <linux.amoon@gmail.com>
7 * 9 *
8 * This program is free software; you can redistribute it and/or modify 10 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as 11 * it under the terms of the GNU General Public License version 2 as
@@ -16,7 +18,6 @@
16#include <dt-bindings/sound/samsung-i2s.h> 18#include <dt-bindings/sound/samsung-i2s.h>
17#include "exynos5800.dtsi" 19#include "exynos5800.dtsi"
18#include "exynos5422-cpus.dtsi" 20#include "exynos5422-cpus.dtsi"
19#include "exynos5422-cpu-thermal.dtsi"
20#include "exynos-mfc-reserved-memory.dtsi" 21#include "exynos-mfc-reserved-memory.dtsi"
21 22
22/ { 23/ {
@@ -55,6 +56,94 @@
55 #cooling-cells = <2>; 56 #cooling-cells = <2>;
56 cooling-levels = <0 130 170 230>; 57 cooling-levels = <0 130 170 230>;
57 }; 58 };
59
60 thermal-zones {
61 cpu0_thermal: cpu0-thermal {
62 thermal-sensors = <&tmu_cpu0 0>;
63 polling-delay-passive = <250>;
64 polling-delay = <0>;
65 trips {
66 cpu_alert0: cpu-alert-0 {
67 temperature = <50000>; /* millicelsius */
68 hysteresis = <5000>; /* millicelsius */
69 type = "active";
70 };
71 cpu_alert1: cpu-alert-1 {
72 temperature = <60000>; /* millicelsius */
73 hysteresis = <5000>; /* millicelsius */
74 type = "active";
75 };
76 cpu_alert2: cpu-alert-2 {
77 temperature = <70000>; /* millicelsius */
78 hysteresis = <5000>; /* millicelsius */
79 type = "active";
80 };
81 cpu_crit0: cpu-crit-0 {
82 temperature = <120000>; /* millicelsius */
83 hysteresis = <0>; /* millicelsius */
84 type = "critical";
85 };
86 /*
87 * Exynos542x supports only 4 trip-points
88 * so for these polling mode is required.
89 * Start polling at temperature level of last
90 * interrupt-driven trip: cpu_alert2
91 */
92 cpu_alert3: cpu-alert-3 {
93 temperature = <70000>; /* millicelsius */
94 hysteresis = <10000>; /* millicelsius */
95 type = "passive";
96 };
97 cpu_alert4: cpu-alert-4 {
98 temperature = <85000>; /* millicelsius */
99 hysteresis = <10000>; /* millicelsius */
100 type = "passive";
101 };
102
103 };
104 cooling-maps {
105 map0 {
106 trip = <&cpu_alert0>;
107 cooling-device = <&fan0 0 1>;
108 };
109 map1 {
110 trip = <&cpu_alert1>;
111 cooling-device = <&fan0 1 2>;
112 };
113 map2 {
114 trip = <&cpu_alert2>;
115 cooling-device = <&fan0 2 3>;
116 };
117 /*
118 * When reaching cpu_alert3, reduce CPU
119 * by 2 steps. On Exynos5422/5800 that would
120 * be: 1600 MHz and 1100 MHz.
121 */
122 map3 {
123 trip = <&cpu_alert3>;
124 cooling-device = <&cpu0 0 2>;
125 };
126 map4 {
127 trip = <&cpu_alert3>;
128 cooling-device = <&cpu4 0 2>;
129 };
130
131 /*
132 * When reaching cpu_alert4, reduce CPU
133 * further, down to 600 MHz (11 steps for big,
134 * 7 steps for LITTLE).
135 */
136 map5 {
137 trip = <&cpu_alert4>;
138 cooling-device = <&cpu0 3 7>;
139 };
140 map6 {
141 trip = <&cpu_alert4>;
142 cooling-device = <&cpu4 3 11>;
143 };
144 };
145 };
146 };
58}; 147};
59 148
60&bus_wcore { 149&bus_wcore {
@@ -406,10 +495,6 @@
406 }; 495 };
407}; 496};
408 497
409&mfc {
410 memory-region = <&mfc_left>, <&mfc_right>;
411};
412
413&mmc_0 { 498&mmc_0 {
414 status = "okay"; 499 status = "okay";
415 mmc-pwrseq = <&emmc_pwrseq>; 500 mmc-pwrseq = <&emmc_pwrseq>;
@@ -487,27 +572,22 @@
487 572
488&tmu_cpu0 { 573&tmu_cpu0 {
489 vtmu-supply = <&ldo7_reg>; 574 vtmu-supply = <&ldo7_reg>;
490 status = "okay";
491}; 575};
492 576
493&tmu_cpu1 { 577&tmu_cpu1 {
494 vtmu-supply = <&ldo7_reg>; 578 vtmu-supply = <&ldo7_reg>;
495 status = "okay";
496}; 579};
497 580
498&tmu_cpu2 { 581&tmu_cpu2 {
499 vtmu-supply = <&ldo7_reg>; 582 vtmu-supply = <&ldo7_reg>;
500 status = "okay";
501}; 583};
502 584
503&tmu_cpu3 { 585&tmu_cpu3 {
504 vtmu-supply = <&ldo7_reg>; 586 vtmu-supply = <&ldo7_reg>;
505 status = "okay";
506}; 587};
507 588
508&tmu_gpu { 589&tmu_gpu {
509 vtmu-supply = <&ldo7_reg>; 590 vtmu-supply = <&ldo7_reg>;
510 status = "okay";
511}; 591};
512 592
513&rtc { 593&rtc {
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
index 2ae1cf41dcb6..03fa88c45426 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
@@ -14,44 +14,11 @@
14/dts-v1/; 14/dts-v1/;
15#include "exynos5422-odroidxu3-common.dtsi" 15#include "exynos5422-odroidxu3-common.dtsi"
16#include "exynos5422-odroidxu3-audio.dtsi" 16#include "exynos5422-odroidxu3-audio.dtsi"
17#include "exynos54xx-odroidxu-leds.dtsi"
17 18
18/ { 19/ {
19 model = "Hardkernel Odroid XU3 Lite"; 20 model = "Hardkernel Odroid XU3 Lite";
20 compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5"; 21 compatible = "hardkernel,odroid-xu3-lite", "samsung,exynos5800", "samsung,exynos5";
21
22 pwmleds {
23 compatible = "pwm-leds";
24
25 greenled {
26 label = "green:mmc0";
27 pwms = <&pwm 1 2000000 0>;
28 pwm-names = "pwm1";
29 /*
30 * Green LED is much brighter than the others
31 * so limit its max brightness
32 */
33 max_brightness = <127>;
34 linux,default-trigger = "mmc0";
35 };
36
37 blueled {
38 label = "blue:heartbeat";
39 pwms = <&pwm 2 2000000 0>;
40 pwm-names = "pwm2";
41 max_brightness = <255>;
42 linux,default-trigger = "heartbeat";
43 };
44 };
45
46 gpioleds {
47 compatible = "gpio-leds";
48 redled {
49 label = "red:microSD";
50 gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
51 default-state = "off";
52 linux,default-trigger = "mmc1";
53 };
54 };
55}; 22};
56 23
57&pwm { 24&pwm {
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index 432406db85de..9ed6564acfb0 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -13,44 +13,11 @@
13/dts-v1/; 13/dts-v1/;
14#include "exynos5422-odroidxu3-common.dtsi" 14#include "exynos5422-odroidxu3-common.dtsi"
15#include "exynos5422-odroidxu3-audio.dtsi" 15#include "exynos5422-odroidxu3-audio.dtsi"
16#include "exynos54xx-odroidxu-leds.dtsi"
16 17
17/ { 18/ {
18 model = "Hardkernel Odroid XU3"; 19 model = "Hardkernel Odroid XU3";
19 compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5"; 20 compatible = "hardkernel,odroid-xu3", "samsung,exynos5800", "samsung,exynos5";
20
21 pwmleds {
22 compatible = "pwm-leds";
23
24 greenled {
25 label = "green:mmc0";
26 pwms = <&pwm 1 2000000 0>;
27 pwm-names = "pwm1";
28 /*
29 * Green LED is much brighter than the others
30 * so limit its max brightness
31 */
32 max_brightness = <127>;
33 linux,default-trigger = "mmc0";
34 };
35
36 blueled {
37 label = "blue:heartbeat";
38 pwms = <&pwm 2 2000000 0>;
39 pwm-names = "pwm2";
40 max_brightness = <255>;
41 linux,default-trigger = "heartbeat";
42 };
43 };
44
45 gpioleds {
46 compatible = "gpio-leds";
47 redled {
48 label = "red:microSD";
49 gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
50 default-state = "off";
51 linux,default-trigger = "mmc1";
52 };
53 };
54}; 21};
55 22
56&i2c_0 { 23&i2c_0 {
diff --git a/arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi b/arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi
new file mode 100644
index 000000000000..0ed30206625c
--- /dev/null
+++ b/arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi
@@ -0,0 +1,50 @@
1/*
2 * Hardkernel Odroid XU/XU3 LED device tree source
3 *
4 * Copyright (c) 2015,2016 Krzysztof Kozlowski
5 * Copyright (c) 2014 Collabora Ltd.
6 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
7 * http://www.samsung.com
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12*/
13
14#include <dt-bindings/gpio/gpio.h>
15
16/ {
17 pwmleds {
18 compatible = "pwm-leds";
19
20 greenled {
21 label = "green:mmc0";
22 pwms = <&pwm 1 2000000 0>;
23 pwm-names = "pwm1";
24 /*
25 * Green LED is much brighter than the others
26 * so limit its max brightness
27 */
28 max_brightness = <127>;
29 linux,default-trigger = "mmc0";
30 };
31
32 blueled {
33 label = "blue:heartbeat";
34 pwms = <&pwm 2 2000000 0>;
35 pwm-names = "pwm2";
36 max_brightness = <255>;
37 linux,default-trigger = "heartbeat";
38 };
39 };
40
41 gpioleds {
42 compatible = "gpio-leds";
43 redled {
44 label = "red:microSD";
45 gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>;
46 default-state = "off";
47 linux,default-trigger = "mmc1";
48 };
49 };
50};
diff --git a/arch/arm/boot/dts/exynos54xx.dtsi b/arch/arm/boot/dts/exynos54xx.dtsi
new file mode 100644
index 000000000000..06a604911e87
--- /dev/null
+++ b/arch/arm/boot/dts/exynos54xx.dtsi
@@ -0,0 +1,199 @@
1/*
2 * Samsung's Exynos54xx SoC series common device tree source
3 *
4 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2016 Krzysztof Kozlowski
7 *
8 * Device nodes common for Samsung Exynos5410/5420/5422/5800. Specific
9 * Exynos 54xx SoCs should include this file and customize it further
10 * (e.g. with clocks).
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15 */
16
17#include "skeleton.dtsi"
18#include "exynos5.dtsi"
19
20/ {
21 compatible = "samsung,exynos5";
22
23 aliases {
24 i2c4 = &hsi2c_4;
25 i2c5 = &hsi2c_5;
26 i2c6 = &hsi2c_6;
27 i2c7 = &hsi2c_7;
28 usbdrdphy0 = &usbdrd_phy0;
29 usbdrdphy1 = &usbdrd_phy1;
30 };
31
32 soc: soc {
33 sysram@02020000 {
34 compatible = "mmio-sram";
35 reg = <0x02020000 0x54000>;
36 #address-cells = <1>;
37 #size-cells = <1>;
38 ranges = <0 0x02020000 0x54000>;
39
40 smp-sysram@0 {
41 compatible = "samsung,exynos4210-sysram";
42 reg = <0x0 0x1000>;
43 };
44
45 smp-sysram@53000 {
46 compatible = "samsung,exynos4210-sysram-ns";
47 reg = <0x53000 0x1000>;
48 };
49 };
50
51 mct: mct@101c0000 {
52 compatible = "samsung,exynos4210-mct";
53 reg = <0x101c0000 0xb00>;
54 interrupt-parent = <&mct_map>;
55 interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>,
56 <8>, <9>, <10>, <11>;
57
58 mct_map: mct-map {
59 #interrupt-cells = <1>;
60 #address-cells = <0>;
61 #size-cells = <0>;
62 interrupt-map = <0 &combiner 23 3>,
63 <1 &combiner 23 4>,
64 <2 &combiner 25 2>,
65 <3 &combiner 25 3>,
66 <4 &gic 0 120 0>,
67 <5 &gic 0 121 0>,
68 <6 &gic 0 122 0>,
69 <7 &gic 0 123 0>,
70 <8 &gic 0 128 0>,
71 <9 &gic 0 129 0>,
72 <10 &gic 0 130 0>,
73 <11 &gic 0 131 0>;
74 };
75 };
76
77 watchdog: watchdog@101d0000 {
78 compatible = "samsung,exynos5420-wdt";
79 reg = <0x101d0000 0x100>;
80 interrupts = <0 42 0>;
81 };
82
83 sss: sss@10830000 {
84 compatible = "samsung,exynos4210-secss";
85 reg = <0x10830000 0x300>;
86 interrupts = <0 112 0>;
87 };
88
89 /* i2c_0-3 are defined in exynos5.dtsi */
90 hsi2c_4: i2c@12ca0000 {
91 compatible = "samsung,exynos5250-hsi2c";
92 reg = <0x12ca0000 0x1000>;
93 interrupts = <0 60 0>;
94 #address-cells = <1>;
95 #size-cells = <0>;
96 status = "disabled";
97 };
98
99 hsi2c_5: i2c@12cb0000 {
100 compatible = "samsung,exynos5250-hsi2c";
101 reg = <0x12cb0000 0x1000>;
102 interrupts = <0 61 0>;
103 #address-cells = <1>;
104 #size-cells = <0>;
105 status = "disabled";
106 };
107
108 hsi2c_6: i2c@12cc0000 {
109 compatible = "samsung,exynos5250-hsi2c";
110 reg = <0x12cc0000 0x1000>;
111 interrupts = <0 62 0>;
112 #address-cells = <1>;
113 #size-cells = <0>;
114 status = "disabled";
115 };
116
117 hsi2c_7: i2c@12cd0000 {
118 compatible = "samsung,exynos5250-hsi2c";
119 reg = <0x12cd0000 0x1000>;
120 interrupts = <0 63 0>;
121 #address-cells = <1>;
122 #size-cells = <0>;
123 status = "disabled";
124 };
125
126 usbdrd3_0: usb3-0 {
127 compatible = "samsung,exynos5250-dwusb3";
128 #address-cells = <1>;
129 #size-cells = <1>;
130 ranges;
131
132 usbdrd_dwc3_0: dwc3@12000000 {
133 compatible = "snps,dwc3";
134 reg = <0x12000000 0x10000>;
135 interrupts = <0 72 0>;
136 phys = <&usbdrd_phy0 0>, <&usbdrd_phy0 1>;
137 phy-names = "usb2-phy", "usb3-phy";
138 };
139 };
140
141 usbdrd_phy0: phy@12100000 {
142 compatible = "samsung,exynos5420-usbdrd-phy";
143 reg = <0x12100000 0x100>;
144 #phy-cells = <1>;
145 };
146
147 usbdrd3_1: usb3-1 {
148 compatible = "samsung,exynos5250-dwusb3";
149 #address-cells = <1>;
150 #size-cells = <1>;
151 ranges;
152
153 usbdrd_dwc3_1: dwc3@12400000 {
154 compatible = "snps,dwc3";
155 reg = <0x12400000 0x10000>;
156 phys = <&usbdrd_phy1 0>, <&usbdrd_phy1 1>;
157 phy-names = "usb2-phy", "usb3-phy";
158 };
159 };
160
161 usbdrd_phy1: phy@12500000 {
162 compatible = "samsung,exynos5420-usbdrd-phy";
163 reg = <0x12500000 0x100>;
164 #phy-cells = <1>;
165 };
166
167 usbhost2: usb@12110000 {
168 compatible = "samsung,exynos4210-ehci";
169 reg = <0x12110000 0x100>;
170 interrupts = <0 71 0>;
171
172 #address-cells = <1>;
173 #size-cells = <0>;
174 port@0 {
175 reg = <0>;
176 phys = <&usb2_phy 1>;
177 };
178 };
179
180 usbhost1: usb@12120000 {
181 compatible = "samsung,exynos4210-ohci";
182 reg = <0x12120000 0x100>;
183 interrupts = <0 71 0>;
184
185 #address-cells = <1>;
186 #size-cells = <0>;
187 port@0 {
188 reg = <0>;
189 phys = <&usb2_phy 1>;
190 };
191 };
192
193 usb2_phy: phy@12130000 {
194 compatible = "samsung,exynos5250-usb2-phy";
195 reg = <0x12130000 0x100>;
196 #phy-cells = <1>;
197 };
198 };
199};
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 1f735963ca98..5ec71e2400fd 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -279,7 +279,6 @@
279 regulator-name = "vdd_1v2"; 279 regulator-name = "vdd_1v2";
280 regulator-min-microvolt = <1200000>; 280 regulator-min-microvolt = <1200000>;
281 regulator-max-microvolt = <1200000>; 281 regulator-max-microvolt = <1200000>;
282 regulator-always-on;
283 regulator-boot-on; 282 regulator-boot-on;
284 regulator-state-mem { 283 regulator-state-mem {
285 regulator-off-in-suspend; 284 regulator-off-in-suspend;
@@ -302,7 +301,6 @@
302 regulator-name = "vdd_1v35"; 301 regulator-name = "vdd_1v35";
303 regulator-min-microvolt = <1350000>; 302 regulator-min-microvolt = <1350000>;
304 regulator-max-microvolt = <1350000>; 303 regulator-max-microvolt = <1350000>;
305 regulator-always-on;
306 regulator-boot-on; 304 regulator-boot-on;
307 regulator-state-mem { 305 regulator-state-mem {
308 regulator-on-in-suspend; 306 regulator-on-in-suspend;
@@ -324,7 +322,6 @@
324 regulator-name = "vdd_2v"; 322 regulator-name = "vdd_2v";
325 regulator-min-microvolt = <2000000>; 323 regulator-min-microvolt = <2000000>;
326 regulator-max-microvolt = <2000000>; 324 regulator-max-microvolt = <2000000>;
327 regulator-always-on;
328 regulator-boot-on; 325 regulator-boot-on;
329 regulator-state-mem { 326 regulator-state-mem {
330 regulator-on-in-suspend; 327 regulator-on-in-suspend;
@@ -335,7 +332,6 @@
335 regulator-name = "vdd_1v8"; 332 regulator-name = "vdd_1v8";
336 regulator-min-microvolt = <1800000>; 333 regulator-min-microvolt = <1800000>;
337 regulator-max-microvolt = <1800000>; 334 regulator-max-microvolt = <1800000>;
338 regulator-always-on;
339 regulator-boot-on; 335 regulator-boot-on;
340 regulator-state-mem { 336 regulator-state-mem {
341 regulator-on-in-suspend; 337 regulator-on-in-suspend;
@@ -420,7 +416,6 @@
420 regulator-name = "vdd_ldo9"; 416 regulator-name = "vdd_ldo9";
421 regulator-min-microvolt = <1800000>; 417 regulator-min-microvolt = <1800000>;
422 regulator-max-microvolt = <1800000>; 418 regulator-max-microvolt = <1800000>;
423 regulator-always-on;
424 regulator-state-mem { 419 regulator-state-mem {
425 regulator-on-in-suspend; 420 regulator-on-in-suspend;
426 regulator-mode = <MAX77802_OPMODE_LP>; 421 regulator-mode = <MAX77802_OPMODE_LP>;
@@ -431,7 +426,6 @@
431 regulator-name = "vdd_ldo10"; 426 regulator-name = "vdd_ldo10";
432 regulator-min-microvolt = <1800000>; 427 regulator-min-microvolt = <1800000>;
433 regulator-max-microvolt = <1800000>; 428 regulator-max-microvolt = <1800000>;
434 regulator-always-on;
435 regulator-state-mem { 429 regulator-state-mem {
436 regulator-off-in-suspend; 430 regulator-off-in-suspend;
437 }; 431 };
@@ -670,10 +664,6 @@
670 status = "okay"; 664 status = "okay";
671}; 665};
672 666
673&mfc {
674 memory-region = <&mfc_left>, <&mfc_right>;
675};
676
677&mmc_0 { 667&mmc_0 {
678 status = "okay"; 668 status = "okay";
679 num-slots = <1>; 669 num-slots = <1>;
@@ -1022,6 +1012,26 @@
1022 status = "okay"; 1012 status = "okay";
1023}; 1013};
1024 1014
1015&tmu_cpu0 {
1016 vtmu-supply = <&ldo10_reg>;
1017};
1018
1019&tmu_cpu1 {
1020 vtmu-supply = <&ldo10_reg>;
1021};
1022
1023&tmu_cpu2 {
1024 vtmu-supply = <&ldo10_reg>;
1025};
1026
1027&tmu_cpu3 {
1028 vtmu-supply = <&ldo10_reg>;
1029};
1030
1031&tmu_gpu {
1032 vtmu-supply = <&ldo10_reg>;
1033};
1034
1025&usbdrd_dwc3_0 { 1035&usbdrd_dwc3_0 {
1026 dr_mode = "host"; 1036 dr_mode = "host";
1027}; 1037};
diff --git a/arch/arm/boot/dts/ge863-pro3.dtsi b/arch/arm/boot/dts/ge863-pro3.dtsi
index 0d0e62489d93..4aee5cc75fa4 100644
--- a/arch/arm/boot/dts/ge863-pro3.dtsi
+++ b/arch/arm/boot/dts/ge863-pro3.dtsi
@@ -11,15 +11,6 @@
11 11
12/ { 12/ {
13 clocks { 13 clocks {
14 #address-cells = <1>;
15 #size-cells = <1>;
16 ranges;
17
18 main_clock: clock@0 {
19 compatible = "atmel,osc", "fixed-clock";
20 clock-frequency = <6000000>;
21 };
22
23 main_xtal { 14 main_xtal {
24 clock-frequency = <6000000>; 15 clock-frequency = <6000000>;
25 }; 16 };
diff --git a/arch/arm/boot/dts/hi3519-demb.dts b/arch/arm/boot/dts/hi3519-demb.dts
new file mode 100644
index 000000000000..6991ab694c9c
--- /dev/null
+++ b/arch/arm/boot/dts/hi3519-demb.dts
@@ -0,0 +1,42 @@
1/*
2 * Copyright (c) 2015 HiSilicon Technologies Co., Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 *
17 */
18
19/dts-v1/;
20#include "hi3519.dtsi"
21
22/ {
23 model = "HiSilicon HI3519 DEMO Board";
24 compatible = "hisilicon,hi3519";
25
26 aliases {
27 serial0 = &uart0;
28 };
29
30 memory {
31 device_type = "memory";
32 reg = <0x80000000 0x40000000>;
33 };
34};
35
36&uart0 {
37 status = "okay";
38};
39
40&dual_timer0 {
41 status = "okay";
42};
diff --git a/arch/arm/boot/dts/hi3519.dtsi b/arch/arm/boot/dts/hi3519.dtsi
new file mode 100644
index 000000000000..5729ecfcdc8b
--- /dev/null
+++ b/arch/arm/boot/dts/hi3519.dtsi
@@ -0,0 +1,187 @@
1/*
2 * Copyright (c) 2015 HiSilicon Technologies Co., Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 *
17 */
18
19#include <dt-bindings/clock/hi3519-clock.h>
20#include <dt-bindings/interrupt-controller/arm-gic.h>
21/ {
22 #address-cells = <1>;
23 #size-cells = <1>;
24 chosen { };
25
26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 cpu@0 {
31 device_type = "cpu";
32 compatible = "arm,cortex-a7";
33 reg = <0>;
34 };
35 };
36
37 gic: interrupt-controller@10300000 {
38 compatible = "arm,cortex-a7-gic";
39 #interrupt-cells = <3>;
40 interrupt-controller;
41 reg = <0x10301000 0x1000>, <0x10302000 0x1000>;
42 };
43
44 clk_3m: clk_3m {
45 compatible = "fixed-clock";
46 #clock-cells = <0>;
47 clock-frequency = <3000000>;
48 };
49
50 crg: clock-reset-controller@12010000 {
51 compatible = "hisilicon,hi3519-crg";
52 #clock-cells = <1>;
53 #reset-cells = <2>;
54 reg = <0x12010000 0x10000>;
55 };
56
57 soc {
58 #address-cells = <1>;
59 #size-cells = <1>;
60 compatible = "simple-bus";
61 interrupt-parent = <&gic>;
62 ranges;
63
64 uart0: serial@12100000 {
65 compatible = "arm,pl011", "arm,primecell";
66 reg = <0x12100000 0x1000>;
67 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
68 clocks = <&crg HI3519_UART0_CLK>;
69 clock-names = "apb_pclk";
70 status = "disable";
71 };
72
73 uart1: serial@12101000 {
74 compatible = "arm,pl011", "arm,primecell";
75 reg = <0x12101000 0x1000>;
76 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
77 clocks = <&crg HI3519_UART1_CLK>;
78 clock-names = "apb_pclk";
79 status = "disable";
80 };
81
82 uart2: serial@12102000 {
83 compatible = "arm,pl011", "arm,primecell";
84 reg = <0x12102000 0x1000>;
85 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
86 clocks = <&crg HI3519_UART2_CLK>;
87 clock-names = "apb_pclk";
88 status = "disable";
89 };
90
91 uart3: serial@12103000 {
92 compatible = "arm,pl011", "arm,primecell";
93 reg = <0x12103000 0x1000>;
94 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
95 clocks = <&crg HI3519_UART3_CLK>;
96 clock-names = "apb_pclk";
97 status = "disable";
98 };
99
100 uart4: serial@12104000 {
101 compatible = "arm,pl011", "arm,primecell";
102 reg = <0x12104000 0x1000>;
103 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
104 clocks = <&crg HI3519_UART4_CLK>;
105 clock-names = "apb_pclk";
106 status = "disable";
107 };
108
109 dual_timer0: timer@12000000 {
110 compatible = "arm,sp804", "arm,primecell";
111 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
112 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
113 reg = <0x12000000 0x1000>;
114 clocks = <&clk_3m>;
115 clock-names = "apb_pclk";
116 status = "disable";
117 };
118
119 dual_timer1: timer@12001000 {
120 compatible = "arm,sp804", "arm,primecell";
121 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
122 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
123 reg = <0x12001000 0x1000>;
124 clocks = <&clk_3m>;
125 clock-names = "apb_pclk";
126 status = "disable";
127 };
128
129 dual_timer2: timer@12002000 {
130 compatible = "arm,sp804", "arm,primecell";
131 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
132 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
133 reg = <0x12002000 0x1000>;
134 clocks = <&clk_3m>;
135 clock-names = "apb_pclk";
136 status = "disable";
137 };
138
139 spi_bus0: spi@12120000 {
140 compatible = "arm,pl022", "arm,primecell";
141 reg = <0x12120000 0x1000>;
142 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
143 clocks = <&crg HI3519_SPI0_CLK>;
144 clock-names = "apb_pclk";
145 num-cs = <1>;
146 #address-cells = <1>;
147 #size-cells = <0>;
148 status = "disable";
149 };
150
151 spi_bus1: spi@12121000 {
152 compatible = "arm,pl022", "arm,primecell";
153 reg = <0x12121000 0x1000>;
154 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
155 clocks = <&crg HI3519_SPI1_CLK>;
156 clock-names = "apb_pclk";
157 num-cs = <1>;
158 #address-cells = <1>;
159 #size-cells = <0>;
160 status = "disable";
161 };
162
163 spi_bus2: spi@12122000 {
164 compatible = "arm,pl022", "arm,primecell";
165 reg = <0x12122000 0x1000>;
166 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
167 clocks = <&crg HI3519_SPI2_CLK>;
168 clock-names = "apb_pclk";
169 num-cs = <1>;
170 #address-cells = <1>;
171 #size-cells = <0>;
172 status = "disable";
173 };
174
175 sysctrl: system-controller@12020000 {
176 compatible = "hisilicon,hi3519-sysctrl", "syscon";
177 reg = <0x12020000 0x1000>;
178 };
179
180 reboot {
181 compatible = "syscon-reboot";
182 regmap = <&sysctrl>;
183 offset = <0x4>;
184 mask = <0xdeadbeef>;
185 };
186 };
187};
diff --git a/arch/arm/boot/dts/imx1-ads.dts b/arch/arm/boot/dts/imx1-ads.dts
index af4eee5794aa..f50498659cc3 100644
--- a/arch/arm/boot/dts/imx1-ads.dts
+++ b/arch/arm/boot/dts/imx1-ads.dts
@@ -66,14 +66,14 @@
66&uart1 { 66&uart1 {
67 pinctrl-names = "default"; 67 pinctrl-names = "default";
68 pinctrl-0 = <&pinctrl_uart1>; 68 pinctrl-0 = <&pinctrl_uart1>;
69 fsl,uart-has-rtscts; 69 uart-has-rtscts;
70 status = "okay"; 70 status = "okay";
71}; 71};
72 72
73&uart2 { 73&uart2 {
74 pinctrl-names = "default"; 74 pinctrl-names = "default";
75 pinctrl-0 = <&pinctrl_uart2>; 75 pinctrl-0 = <&pinctrl_uart2>;
76 fsl,uart-has-rtscts; 76 uart-has-rtscts;
77 status = "okay"; 77 status = "okay";
78}; 78};
79 79
diff --git a/arch/arm/boot/dts/imx1-apf9328.dts b/arch/arm/boot/dts/imx1-apf9328.dts
index 07d92fb40e6f..e8b4b52c2418 100644
--- a/arch/arm/boot/dts/imx1-apf9328.dts
+++ b/arch/arm/boot/dts/imx1-apf9328.dts
@@ -34,14 +34,14 @@
34&uart1 { 34&uart1 {
35 pinctrl-names = "default"; 35 pinctrl-names = "default";
36 pinctrl-0 = <&pinctrl_uart1>; 36 pinctrl-0 = <&pinctrl_uart1>;
37 fsl,uart-has-rtscts; 37 uart-has-rtscts;
38 status = "okay"; 38 status = "okay";
39}; 39};
40 40
41&uart2 { 41&uart2 {
42 pinctrl-names = "default"; 42 pinctrl-names = "default";
43 pinctrl-0 = <&pinctrl_uart2>; 43 pinctrl-0 = <&pinctrl_uart2>;
44 fsl,uart-has-rtscts; 44 uart-has-rtscts;
45 status = "okay"; 45 status = "okay";
46}; 46};
47 47
diff --git a/arch/arm/boot/dts/imx23-sansa.dts b/arch/arm/boot/dts/imx23-sansa.dts
new file mode 100644
index 000000000000..4ec32f4c7885
--- /dev/null
+++ b/arch/arm/boot/dts/imx23-sansa.dts
@@ -0,0 +1,207 @@
1/*
2 * Copyright (C) 2013-2016 Marek Vasut <marek.vasut@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
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * 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
44/dts-v1/;
45#include "imx23.dtsi"
46
47/ {
48 model = "SanDisk Sansa Fuze+";
49 compatible = "sandisk,sansa_fuze_plus", "fsl,imx23";
50
51 memory {
52 reg = <0x40000000 0x04000000>;
53 };
54
55 apb@80000000 {
56 apbh@80000000 {
57 ssp0: ssp@80010000 {
58 compatible = "fsl,imx23-mmc";
59 pinctrl-names = "default";
60 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
61 bus-width = <4>;
62 vmmc-supply = <&reg_vddio_sd0>;
63 cd-inverted;
64 status = "okay";
65 };
66
67 ssp1: ssp@80034000 {
68 compatible = "fsl,imx23-mmc";
69 pinctrl-names = "default";
70 pinctrl-0 = <&mmc1_8bit_pins_a>;
71 bus-width = <8>;
72 vmmc-supply = <&reg_vddio_sd1>;
73 non-removable;
74 status = "okay";
75 };
76
77 pinctrl@80018000 {
78 pinctrl-names = "default";
79 pinctrl-0 = <&hog_pins_a>;
80
81 hog_pins_a: hog@0 {
82 reg = <0>;
83 fsl,pinmux-ids = <
84 MX23_PAD_GPMI_D08__GPIO_0_8
85 MX23_PAD_PWM3__GPIO_1_29
86 MX23_PAD_AUART1_RTS__GPIO_0_27
87 MX23_PAD_AUART1_CTS__GPIO_0_26
88 MX23_PAD_I2C_SCL__I2C_SCL
89 MX23_PAD_I2C_SDA__I2C_SDA
90 MX23_PAD_LCD_DOTCK__GPIO_1_22
91 MX23_PAD_LCD_HSYNC__GPIO_1_24
92 MX23_PAD_PWM3__GPIO_1_29
93 >;
94 fsl,drive-strength = <0>;
95 fsl,voltage = <1>;
96 fsl,pull-up = <0>;
97 };
98 };
99 };
100
101 apbx@80040000 {
102 pwm: pwm@80064000 {
103 pinctrl-names = "default";
104 pinctrl-0 = <&pwm2_pins_a>;
105 status = "okay";
106 };
107
108 duart: serial@80070000 {
109 pinctrl-names = "default";
110 pinctrl-0 = <&duart_pins_a>;
111 status = "okay";
112 };
113
114 usbphy0: usbphy@8007c000 {
115 status = "okay";
116 };
117
118 lradc@80050000 {
119 status = "okay";
120 };
121 };
122 };
123
124 ahb@80080000 {
125 usb0: usb@80080000 {
126 dr_mode = "peripheral";
127 status = "okay";
128 };
129 };
130
131 reg_vddio_sd0: regulator-vddio-sd0 {
132 compatible = "regulator-fixed";
133 regulator-name = "vddio-sd0";
134 regulator-min-microvolt = <3300000>;
135 regulator-max-microvolt = <3300000>;
136 gpio = <&gpio0 8 0>;
137 };
138
139 reg_vddio_sd1: regulator-vddio-sd1 {
140 compatible = "regulator-fixed";
141 regulator-name = "vddio-sd1";
142 regulator-min-microvolt = <3300000>;
143 regulator-max-microvolt = <3300000>;
144 gpio = <&gpio1 29 0>;
145 };
146
147 reg_vdd_touchpad: regulator-vdd-touchpad0 {
148 compatible = "regulator-fixed";
149 regulator-name = "vdd-touchpad0";
150 regulator-min-microvolt = <3300000>;
151 regulator-max-microvolt = <3300000>;
152 gpio = <&gpio0 26 0>;
153 regulator-always-on;
154 enable-active-low;
155 };
156
157 reg_vdd_tuner: regulator-vdd-tuner0 {
158 compatible = "regulator-fixed";
159 regulator-name = "vdd-tuner0";
160 regulator-min-microvolt = <3300000>;
161 regulator-max-microvolt = <3300000>;
162 gpio = <&gpio0 29 0>;
163 regulator-always-on;
164 enable-active-low;
165 };
166
167 backlight {
168 compatible = "pwm-backlight";
169 pwms = <&pwm 2 5000000>;
170 brightness-levels = <0 4 8 16 32 64 128 255>;
171 default-brightness-level = <6>;
172 };
173
174 i2c-0 {
175 #address-cells = <1>;
176 #size-cells = <0>;
177 compatible = "i2c-gpio";
178 gpios = <
179 &gpio1 24 0 /* SDA */
180 &gpio1 22 0 /* SCL */
181 >;
182 i2c-gpio,delay-us = <2>; /* ~100 kHz */
183 };
184
185 i2c-1 {
186 #address-cells = <1>;
187 #size-cells = <0>;
188 compatible = "i2c-gpio";
189 gpios = <
190 &gpio0 31 0 /* SDA */
191 &gpio0 30 0 /* SCL */
192 >;
193 i2c-gpio,delay-us = <2>; /* ~100 kHz */
194
195 touch: touch@20 {
196 compatible = "synaptics,synaptics_i2c";
197 reg = <0x20>;
198 };
199
200 eeprom: eeprom@50 {
201 compatible = "atmel,24c64";
202 reg = <0x50>;
203 pagesize = <32>;
204 };
205 };
206
207};
diff --git a/arch/arm/boot/dts/imx23-xfi3.dts b/arch/arm/boot/dts/imx23-xfi3.dts
new file mode 100644
index 000000000000..025cf949662d
--- /dev/null
+++ b/arch/arm/boot/dts/imx23-xfi3.dts
@@ -0,0 +1,179 @@
1/*
2 * Copyright (C) 2013-2016 Marek Vasut <marek.vasut@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
12 * the License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * 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
44/dts-v1/;
45#include "imx23.dtsi"
46
47/ {
48 model = "Creative ZEN X-Fi3";
49 compatible = "creative,x-fi3", "fsl,imx23";
50
51 memory {
52 reg = <0x40000000 0x04000000>;
53 };
54
55 apb@80000000 {
56 apbh@80000000 {
57 ssp0: ssp@80010000 {
58 compatible = "fsl,imx23-mmc";
59 pinctrl-names = "default";
60 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
61 bus-width = <4>;
62 vmmc-supply = <&reg_vddio_sd0>;
63 cd-inverted;
64 status = "okay";
65 };
66
67 ssp1: ssp@80034000 {
68 compatible = "fsl,imx23-mmc";
69 pinctrl-names = "default";
70 pinctrl-0 = <&mmc1_4bit_pins_a>;
71 bus-width = <4>;
72 non-removable;
73 status = "okay";
74 };
75
76 pinctrl@80018000 {
77 pinctrl-names = "default";
78 pinctrl-0 = <&hog_pins_a>;
79
80 hog_pins_a: hog@0 {
81 reg = <0>;
82 fsl,pinmux-ids = <
83 MX23_PAD_GPMI_D07__GPIO_0_7
84 >;
85 fsl,drive-strength = <0>;
86 fsl,voltage = <1>;
87 fsl,pull-up = <0>;
88 };
89
90 key_pins_a: keys@0 {
91 reg = <0>;
92 fsl,pinmux-ids = <
93 MX23_PAD_ROTARYA__GPIO_2_7
94 MX23_PAD_ROTARYB__GPIO_2_8
95 >;
96 fsl,drive-strength = <0>;
97 fsl,voltage = <1>;
98 fsl,pull-up = <1>;
99 };
100 };
101 };
102
103 apbx@80040000 {
104 i2c: i2c@80058000 {
105 pinctrl-names = "default";
106 pinctrl-0 = <&i2c_pins_a>;
107 status = "okay";
108 };
109
110 pwm: pwm@80064000 {
111 pinctrl-names = "default";
112 pinctrl-0 = <&pwm2_pins_a>;
113 status = "okay";
114 };
115
116 duart: serial@80070000 {
117 pinctrl-names = "default";
118 pinctrl-0 = <&duart_pins_a>;
119 status = "okay";
120 };
121
122 auart1: serial@8006e000 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&auart1_2pins_a>;
125 status = "okay";
126 };
127
128 usbphy0: usbphy@8007c000 {
129 status = "okay";
130 };
131
132 lradc@80050000 {
133 status = "okay";
134 };
135 };
136 };
137
138 ahb@80080000 {
139 usb0: usb@80080000 {
140 dr_mode = "peripheral";
141 status = "okay";
142 };
143 };
144
145 reg_vddio_sd0: regulator-vddio-sd0 {
146 compatible = "regulator-fixed";
147 regulator-name = "vddio-sd0";
148 regulator-min-microvolt = <3300000>;
149 regulator-max-microvolt = <3300000>;
150 gpio = <&gpio0 7 0>;
151 };
152
153 backlight {
154 compatible = "pwm-backlight";
155 pwms = <&pwm 2 5000000>;
156 brightness-levels = <0 4 8 16 32 64 128 255>;
157 default-brightness-level = <6>;
158 };
159
160 gpio_keys {
161 compatible = "gpio-keys";
162 pinctrl-names = "default";
163 pinctrl-0 = <&key_pins_a>;
164
165 voldown {
166 label = "volume-down";
167 linux,code = <114>;
168 gpios = <&gpio2 7 0>;
169 debounce-interval = <20>;
170 };
171
172 volup {
173 label = "volume-up";
174 linux,code = <115>;
175 gpios = <&gpio2 8 0>;
176 debounce-interval = <20>;
177 };
178 };
179};
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
index 302d1168f424..440ee9a4a158 100644
--- a/arch/arm/boot/dts/imx23.dtsi
+++ b/arch/arm/boot/dts/imx23.dtsi
@@ -111,6 +111,7 @@
111 111
112 gpio0: gpio@0 { 112 gpio0: gpio@0 {
113 compatible = "fsl,imx23-gpio", "fsl,mxs-gpio"; 113 compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
114 reg = <0>;
114 interrupts = <16>; 115 interrupts = <16>;
115 gpio-controller; 116 gpio-controller;
116 #gpio-cells = <2>; 117 #gpio-cells = <2>;
@@ -120,6 +121,7 @@
120 121
121 gpio1: gpio@1 { 122 gpio1: gpio@1 {
122 compatible = "fsl,imx23-gpio", "fsl,mxs-gpio"; 123 compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
124 reg = <1>;
123 interrupts = <17>; 125 interrupts = <17>;
124 gpio-controller; 126 gpio-controller;
125 #gpio-cells = <2>; 127 #gpio-cells = <2>;
@@ -129,6 +131,7 @@
129 131
130 gpio2: gpio@2 { 132 gpio2: gpio@2 {
131 compatible = "fsl,imx23-gpio", "fsl,mxs-gpio"; 133 compatible = "fsl,imx23-gpio", "fsl,mxs-gpio";
134 reg = <2>;
132 interrupts = <18>; 135 interrupts = <18>;
133 gpio-controller; 136 gpio-controller;
134 #gpio-cells = <2>; 137 #gpio-cells = <2>;
@@ -171,6 +174,17 @@
171 fsl,pull-up = <MXS_PULL_DISABLE>; 174 fsl,pull-up = <MXS_PULL_DISABLE>;
172 }; 175 };
173 176
177 auart1_2pins_a: auart1-2pins@0 {
178 reg = <0>;
179 fsl,pinmux-ids = <
180 MX23_PAD_GPMI_D14__AUART2_RX
181 MX23_PAD_GPMI_D15__AUART2_TX
182 >;
183 fsl,drive-strength = <MXS_DRIVE_4mA>;
184 fsl,voltage = <MXS_VOLTAGE_HIGH>;
185 fsl,pull-up = <MXS_PULL_DISABLE>;
186 };
187
174 gpmi_pins_a: gpmi-nand@0 { 188 gpmi_pins_a: gpmi-nand@0 {
175 reg = <0>; 189 reg = <0>;
176 fsl,pinmux-ids = < 190 fsl,pinmux-ids = <
@@ -249,6 +263,40 @@
249 fsl,pull-up = <MXS_PULL_DISABLE>; 263 fsl,pull-up = <MXS_PULL_DISABLE>;
250 }; 264 };
251 265
266 mmc1_4bit_pins_a: mmc1-4bit@0 {
267 reg = <0>;
268 fsl,pinmux-ids = <
269 MX23_PAD_GPMI_D00__SSP2_DATA0
270 MX23_PAD_GPMI_D01__SSP2_DATA1
271 MX23_PAD_GPMI_D02__SSP2_DATA2
272 MX23_PAD_GPMI_D03__SSP2_DATA3
273 MX23_PAD_GPMI_RDY1__SSP2_CMD
274 MX23_PAD_GPMI_WRN__SSP2_SCK
275 >;
276 fsl,drive-strength = <MXS_DRIVE_8mA>;
277 fsl,voltage = <MXS_VOLTAGE_HIGH>;
278 fsl,pull-up = <MXS_PULL_ENABLE>;
279 };
280
281 mmc1_8bit_pins_a: mmc1-8bit@0 {
282 reg = <0>;
283 fsl,pinmux-ids = <
284 MX23_PAD_GPMI_D00__SSP2_DATA0
285 MX23_PAD_GPMI_D01__SSP2_DATA1
286 MX23_PAD_GPMI_D02__SSP2_DATA2
287 MX23_PAD_GPMI_D03__SSP2_DATA3
288 MX23_PAD_GPMI_D04__SSP2_DATA4
289 MX23_PAD_GPMI_D05__SSP2_DATA5
290 MX23_PAD_GPMI_D06__SSP2_DATA6
291 MX23_PAD_GPMI_D07__SSP2_DATA7
292 MX23_PAD_GPMI_RDY1__SSP2_CMD
293 MX23_PAD_GPMI_WRN__SSP2_SCK
294 >;
295 fsl,drive-strength = <MXS_DRIVE_8mA>;
296 fsl,voltage = <MXS_VOLTAGE_HIGH>;
297 fsl,pull-up = <MXS_PULL_ENABLE>;
298 };
299
252 pwm2_pins_a: pwm2@0 { 300 pwm2_pins_a: pwm2@0 {
253 reg = <0>; 301 reg = <0>;
254 fsl,pinmux-ids = < 302 fsl,pinmux-ids = <
diff --git a/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts b/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
index cda6907a27b9..9300711f1ea3 100644
--- a/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
+++ b/arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts
@@ -161,14 +161,14 @@
161&uart1 { 161&uart1 {
162 pinctrl-names = "default"; 162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_uart1>; 163 pinctrl-0 = <&pinctrl_uart1>;
164 fsl,uart-has-rtscts; 164 uart-has-rtscts;
165 status = "okay"; 165 status = "okay";
166}; 166};
167 167
168&uart2 { 168&uart2 {
169 pinctrl-names = "default"; 169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_uart2>; 170 pinctrl-0 = <&pinctrl_uart2>;
171 fsl,uart-has-rtscts; 171 uart-has-rtscts;
172 status = "okay"; 172 status = "okay";
173}; 173};
174 174
diff --git a/arch/arm/boot/dts/imx25-pdk.dts b/arch/arm/boot/dts/imx25-pdk.dts
index 9351296356dc..70292101ba03 100644
--- a/arch/arm/boot/dts/imx25-pdk.dts
+++ b/arch/arm/boot/dts/imx25-pdk.dts
@@ -298,7 +298,7 @@
298&uart1 { 298&uart1 {
299 pinctrl-names = "default"; 299 pinctrl-names = "default";
300 pinctrl-0 = <&pinctrl_uart1>; 300 pinctrl-0 = <&pinctrl_uart1>;
301 fsl,uart-has-rtscts; 301 uart-has-rtscts;
302 status = "okay"; 302 status = "okay";
303}; 303};
304 304
diff --git a/arch/arm/boot/dts/imx25-pinfunc.h b/arch/arm/boot/dts/imx25-pinfunc.h
index f96fa2df8f11..f840f03ad171 100644
--- a/arch/arm/boot/dts/imx25-pinfunc.h
+++ b/arch/arm/boot/dts/imx25-pinfunc.h
@@ -26,77 +26,77 @@
26#define MX25_PAD_A13__GPIO_4_1 0x00c 0x22C 0x000 0x05 0x000 26#define MX25_PAD_A13__GPIO_4_1 0x00c 0x22C 0x000 0x05 0x000
27#define MX25_PAD_A13__LCDC_CLS 0x00c 0x22C 0x000 0x07 0x000 27#define MX25_PAD_A13__LCDC_CLS 0x00c 0x22C 0x000 0x07 0x000
28 28
29#define MX25_PAD_A14__A14 0x010 0x230 0x000 0x10 0x000 29#define MX25_PAD_A14__A14 0x010 0x230 0x000 0x00 0x000
30#define MX25_PAD_A14__GPIO_2_0 0x010 0x230 0x000 0x15 0x000 30#define MX25_PAD_A14__GPIO_2_0 0x010 0x230 0x000 0x05 0x000
31#define MX25_PAD_A14__SIM1_CLK1 0x010 0x230 0x000 0x16 0x000 31#define MX25_PAD_A14__SIM1_CLK1 0x010 0x230 0x000 0x06 0x000
32#define MX25_PAD_A14__LCDC_SPL 0x010 0x230 0x000 0x17 0x000 32#define MX25_PAD_A14__LCDC_SPL 0x010 0x230 0x000 0x07 0x000
33 33
34#define MX25_PAD_A15__A15 0x014 0x234 0x000 0x10 0x000 34#define MX25_PAD_A15__A15 0x014 0x234 0x000 0x00 0x000
35#define MX25_PAD_A15__GPIO_2_1 0x014 0x234 0x000 0x15 0x000 35#define MX25_PAD_A15__GPIO_2_1 0x014 0x234 0x000 0x05 0x000
36#define MX25_PAD_A15__SIM1_RST1 0x014 0x234 0x000 0x16 0x000 36#define MX25_PAD_A15__SIM1_RST1 0x014 0x234 0x000 0x06 0x000
37#define MX25_PAD_A15__LCDC_PS 0x014 0x234 0x000 0x17 0x000 37#define MX25_PAD_A15__LCDC_PS 0x014 0x234 0x000 0x07 0x000
38 38
39#define MX25_PAD_A16__A16 0x018 0x000 0x000 0x10 0x000 39#define MX25_PAD_A16__A16 0x018 0x000 0x000 0x00 0x000
40#define MX25_PAD_A16__GPIO_2_2 0x018 0x000 0x000 0x15 0x000 40#define MX25_PAD_A16__GPIO_2_2 0x018 0x000 0x000 0x05 0x000
41#define MX25_PAD_A16__SIM1_VEN1 0x018 0x000 0x000 0x16 0x000 41#define MX25_PAD_A16__SIM1_VEN1 0x018 0x000 0x000 0x06 0x000
42#define MX25_PAD_A16__LCDC_REV 0x018 0x000 0x000 0x17 0x000 42#define MX25_PAD_A16__LCDC_REV 0x018 0x000 0x000 0x07 0x000
43 43
44#define MX25_PAD_A17__A17 0x01c 0x238 0x000 0x10 0x000 44#define MX25_PAD_A17__A17 0x01c 0x238 0x000 0x00 0x000
45#define MX25_PAD_A17__GPIO_2_3 0x01c 0x238 0x000 0x15 0x000 45#define MX25_PAD_A17__GPIO_2_3 0x01c 0x238 0x000 0x05 0x000
46#define MX25_PAD_A17__SIM1_TX 0x01c 0x238 0x554 0x16 0x000 46#define MX25_PAD_A17__SIM1_TX 0x01c 0x238 0x554 0x06 0x000
47#define MX25_PAD_A17__FEC_TX_ERR 0x01c 0x238 0x000 0x17 0x000 47#define MX25_PAD_A17__FEC_TX_ERR 0x01c 0x238 0x000 0x07 0x000
48 48
49#define MX25_PAD_A18__A18 0x020 0x23c 0x000 0x10 0x000 49#define MX25_PAD_A18__A18 0x020 0x23c 0x000 0x00 0x000
50#define MX25_PAD_A18__GPIO_2_4 0x020 0x23c 0x000 0x15 0x000 50#define MX25_PAD_A18__GPIO_2_4 0x020 0x23c 0x000 0x05 0x000
51#define MX25_PAD_A18__SIM1_PD1 0x020 0x23c 0x550 0x16 0x000 51#define MX25_PAD_A18__SIM1_PD1 0x020 0x23c 0x550 0x06 0x000
52#define MX25_PAD_A18__FEC_COL 0x020 0x23c 0x504 0x17 0x000 52#define MX25_PAD_A18__FEC_COL 0x020 0x23c 0x504 0x07 0x000
53 53
54#define MX25_PAD_A19__A19 0x024 0x240 0x000 0x10 0x000 54#define MX25_PAD_A19__A19 0x024 0x240 0x000 0x00 0x000
55#define MX25_PAD_A19__GPIO_2_5 0x024 0x240 0x000 0x15 0x000 55#define MX25_PAD_A19__GPIO_2_5 0x024 0x240 0x000 0x05 0x000
56#define MX25_PAD_A19__SIM1_RX1 0x024 0x240 0x54c 0x16 0x000 56#define MX25_PAD_A19__SIM1_RX1 0x024 0x240 0x54c 0x06 0x000
57#define MX25_PAD_A19__FEC_RX_ERR 0x024 0x240 0x518 0x17 0x000 57#define MX25_PAD_A19__FEC_RX_ERR 0x024 0x240 0x518 0x07 0x000
58 58
59#define MX25_PAD_A20__A20 0x028 0x244 0x000 0x10 0x000 59#define MX25_PAD_A20__A20 0x028 0x244 0x000 0x00 0x000
60#define MX25_PAD_A20__GPIO_2_6 0x028 0x244 0x000 0x15 0x000 60#define MX25_PAD_A20__GPIO_2_6 0x028 0x244 0x000 0x05 0x000
61#define MX25_PAD_A20__SIM2_CLK1 0x028 0x244 0x000 0x16 0x000 61#define MX25_PAD_A20__SIM2_CLK1 0x028 0x244 0x000 0x06 0x000
62#define MX25_PAD_A20__FEC_RDATA2 0x028 0x244 0x50c 0x17 0x000 62#define MX25_PAD_A20__FEC_RDATA2 0x028 0x244 0x50c 0x07 0x000
63 63
64#define MX25_PAD_A21__A21 0x02c 0x248 0x000 0x10 0x000 64#define MX25_PAD_A21__A21 0x02c 0x248 0x000 0x00 0x000
65#define MX25_PAD_A21__GPIO_2_7 0x02c 0x248 0x000 0x15 0x000 65#define MX25_PAD_A21__GPIO_2_7 0x02c 0x248 0x000 0x05 0x000
66#define MX25_PAD_A21__SIM2_RST1 0x02c 0x248 0x000 0x16 0x000 66#define MX25_PAD_A21__SIM2_RST1 0x02c 0x248 0x000 0x06 0x000
67#define MX25_PAD_A21__FEC_RDATA3 0x02c 0x248 0x510 0x17 0x000 67#define MX25_PAD_A21__FEC_RDATA3 0x02c 0x248 0x510 0x07 0x000
68 68
69#define MX25_PAD_A22__A22 0x030 0x000 0x000 0x10 0x000 69#define MX25_PAD_A22__A22 0x030 0x000 0x000 0x00 0x000
70#define MX25_PAD_A22__GPIO_2_8 0x030 0x000 0x000 0x15 0x000 70#define MX25_PAD_A22__GPIO_2_8 0x030 0x000 0x000 0x05 0x000
71#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x17 0x000 71#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x07 0x000
72#define MX25_PAD_A22__SIM2_VEN1 0x030 0x000 0x000 0x16 0x000 72#define MX25_PAD_A22__SIM2_VEN1 0x030 0x000 0x000 0x06 0x000
73#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x17 0x000 73#define MX25_PAD_A22__FEC_TDATA2 0x030 0x000 0x000 0x07 0x000
74 74
75#define MX25_PAD_A23__A23 0x034 0x24c 0x000 0x10 0x000 75#define MX25_PAD_A23__A23 0x034 0x24c 0x000 0x00 0x000
76#define MX25_PAD_A23__GPIO_2_9 0x034 0x24c 0x000 0x15 0x000 76#define MX25_PAD_A23__GPIO_2_9 0x034 0x24c 0x000 0x05 0x000
77#define MX25_PAD_A23__SIM2_TX1 0x034 0x24c 0x560 0x16 0x000 77#define MX25_PAD_A23__SIM2_TX1 0x034 0x24c 0x560 0x06 0x000
78#define MX25_PAD_A23__FEC_TDATA3 0x034 0x24c 0x000 0x17 0x000 78#define MX25_PAD_A23__FEC_TDATA3 0x034 0x24c 0x000 0x07 0x000
79 79
80#define MX25_PAD_A24__A24 0x038 0x250 0x000 0x10 0x000 80#define MX25_PAD_A24__A24 0x038 0x250 0x000 0x00 0x000
81#define MX25_PAD_A24__GPIO_2_10 0x038 0x250 0x000 0x15 0x000 81#define MX25_PAD_A24__GPIO_2_10 0x038 0x250 0x000 0x05 0x000
82#define MX25_PAD_A24__SIM2_PD1 0x038 0x250 0x55c 0x16 0x000 82#define MX25_PAD_A24__SIM2_PD1 0x038 0x250 0x55c 0x06 0x000
83#define MX25_PAD_A24__FEC_RX_CLK 0x038 0x250 0x514 0x17 0x000 83#define MX25_PAD_A24__FEC_RX_CLK 0x038 0x250 0x514 0x07 0x000
84 84
85#define MX25_PAD_A25__A25 0x03c 0x254 0x000 0x10 0x000 85#define MX25_PAD_A25__A25 0x03c 0x254 0x000 0x00 0x000
86#define MX25_PAD_A25__GPIO_2_11 0x03c 0x254 0x000 0x15 0x000 86#define MX25_PAD_A25__GPIO_2_11 0x03c 0x254 0x000 0x05 0x000
87#define MX25_PAD_A25__FEC_CRS 0x03c 0x254 0x508 0x17 0x000 87#define MX25_PAD_A25__FEC_CRS 0x03c 0x254 0x508 0x07 0x000
88 88
89#define MX25_PAD_EB0__EB0 0x040 0x258 0x000 0x10 0x000 89#define MX25_PAD_EB0__EB0 0x040 0x258 0x000 0x00 0x000
90#define MX25_PAD_EB0__AUD4_TXD 0x040 0x258 0x464 0x14 0x000 90#define MX25_PAD_EB0__AUD4_TXD 0x040 0x258 0x464 0x04 0x000
91#define MX25_PAD_EB0__GPIO_2_12 0x040 0x258 0x000 0x15 0x000 91#define MX25_PAD_EB0__GPIO_2_12 0x040 0x258 0x000 0x05 0x000
92 92
93#define MX25_PAD_EB1__EB1 0x044 0x25c 0x000 0x10 0x000 93#define MX25_PAD_EB1__EB1 0x044 0x25c 0x000 0x00 0x000
94#define MX25_PAD_EB1__AUD4_RXD 0x044 0x25c 0x460 0x14 0x000 94#define MX25_PAD_EB1__AUD4_RXD 0x044 0x25c 0x460 0x04 0x000
95#define MX25_PAD_EB1__GPIO_2_13 0x044 0x25c 0x000 0x15 0x000 95#define MX25_PAD_EB1__GPIO_2_13 0x044 0x25c 0x000 0x05 0x000
96 96
97#define MX25_PAD_OE__OE 0x048 0x260 0x000 0x10 0x000 97#define MX25_PAD_OE__OE 0x048 0x260 0x000 0x00 0x000
98#define MX25_PAD_OE__AUD4_TXC 0x048 0x260 0x000 0x14 0x000 98#define MX25_PAD_OE__AUD4_TXC 0x048 0x260 0x000 0x04 0x000
99#define MX25_PAD_OE__GPIO_2_14 0x048 0x260 0x000 0x15 0x000 99#define MX25_PAD_OE__GPIO_2_14 0x048 0x260 0x000 0x05 0x000
100 100
101#define MX25_PAD_CS0__CS0 0x04c 0x000 0x000 0x00 0x000 101#define MX25_PAD_CS0__CS0 0x04c 0x000 0x000 0x00 0x000
102#define MX25_PAD_CS0__GPIO_4_2 0x04c 0x000 0x000 0x05 0x000 102#define MX25_PAD_CS0__GPIO_4_2 0x04c 0x000 0x000 0x05 0x000
@@ -105,51 +105,51 @@
105#define MX25_PAD_CS1__NF_CE3 0x050 0x000 0x000 0x01 0x000 105#define MX25_PAD_CS1__NF_CE3 0x050 0x000 0x000 0x01 0x000
106#define MX25_PAD_CS1__GPIO_4_3 0x050 0x000 0x000 0x05 0x000 106#define MX25_PAD_CS1__GPIO_4_3 0x050 0x000 0x000 0x05 0x000
107 107
108#define MX25_PAD_CS4__CS4 0x054 0x264 0x000 0x10 0x000 108#define MX25_PAD_CS4__CS4 0x054 0x264 0x000 0x00 0x000
109#define MX25_PAD_CS4__NF_CE1 0x054 0x264 0x000 0x01 0x000 109#define MX25_PAD_CS4__NF_CE1 0x054 0x264 0x000 0x01 0x000
110#define MX25_PAD_CS4__UART5_CTS 0x054 0x264 0x000 0x13 0x000 110#define MX25_PAD_CS4__UART5_CTS 0x054 0x264 0x000 0x03 0x000
111#define MX25_PAD_CS4__GPIO_3_20 0x054 0x264 0x000 0x15 0x000 111#define MX25_PAD_CS4__GPIO_3_20 0x054 0x264 0x000 0x05 0x000
112 112
113#define MX25_PAD_CS5__CS5 0x058 0x268 0x000 0x00 0x000 113#define MX25_PAD_CS5__CS5 0x058 0x268 0x000 0x00 0x000
114#define MX25_PAD_CS5__NF_CE2 0x058 0x268 0x000 0x01 0x000 114#define MX25_PAD_CS5__NF_CE2 0x058 0x268 0x000 0x01 0x000
115#define MX25_PAD_CS5__UART5_RTS 0x058 0x268 0x574 0x03 0x000 115#define MX25_PAD_CS5__UART5_RTS 0x058 0x268 0x574 0x03 0x000
116#define MX25_PAD_CS5__GPIO_3_21 0x058 0x268 0x000 0x05 0x000 116#define MX25_PAD_CS5__GPIO_3_21 0x058 0x268 0x000 0x05 0x000
117 117
118#define MX25_PAD_NF_CE0__NF_CE0 0x05c 0x26c 0x000 0x10 0x000 118#define MX25_PAD_NF_CE0__NF_CE0 0x05c 0x26c 0x000 0x00 0x000
119#define MX25_PAD_NF_CE0__GPIO_3_22 0x05c 0x26c 0x000 0x15 0x000 119#define MX25_PAD_NF_CE0__GPIO_3_22 0x05c 0x26c 0x000 0x05 0x000
120 120
121#define MX25_PAD_ECB__ECB 0x060 0x270 0x000 0x10 0x000 121#define MX25_PAD_ECB__ECB 0x060 0x270 0x000 0x00 0x000
122#define MX25_PAD_ECB__UART5_TXD 0x060 0x270 0x000 0x13 0x000 122#define MX25_PAD_ECB__UART5_TXD 0x060 0x270 0x000 0x03 0x000
123#define MX25_PAD_ECB__GPIO_3_23 0x060 0x270 0x000 0x15 0x000 123#define MX25_PAD_ECB__GPIO_3_23 0x060 0x270 0x000 0x05 0x000
124 124
125#define MX25_PAD_LBA__LBA 0x064 0x274 0x000 0x10 0x000 125#define MX25_PAD_LBA__LBA 0x064 0x274 0x000 0x00 0x000
126#define MX25_PAD_LBA__UART5_RXD 0x064 0x274 0x578 0x13 0x000 126#define MX25_PAD_LBA__UART5_RXD 0x064 0x274 0x578 0x03 0x000
127#define MX25_PAD_LBA__GPIO_3_24 0x064 0x274 0x000 0x15 0x000 127#define MX25_PAD_LBA__GPIO_3_24 0x064 0x274 0x000 0x05 0x000
128 128
129#define MX25_PAD_BCLK__BCLK 0x068 0x000 0x000 0x00 0x000 129#define MX25_PAD_BCLK__BCLK 0x068 0x000 0x000 0x00 0x000
130#define MX25_PAD_BCLK__GPIO_4_4 0x068 0x000 0x000 0x05 0x000 130#define MX25_PAD_BCLK__GPIO_4_4 0x068 0x000 0x000 0x05 0x000
131 131
132#define MX25_PAD_RW__RW 0x06c 0x278 0x000 0x10 0x000 132#define MX25_PAD_RW__RW 0x06c 0x278 0x000 0x00 0x000
133#define MX25_PAD_RW__AUD4_TXFS 0x06c 0x278 0x474 0x14 0x000 133#define MX25_PAD_RW__AUD4_TXFS 0x06c 0x278 0x474 0x04 0x000
134#define MX25_PAD_RW__GPIO_3_25 0x06c 0x278 0x000 0x15 0x000 134#define MX25_PAD_RW__GPIO_3_25 0x06c 0x278 0x000 0x05 0x000
135 135
136#define MX25_PAD_NFWE_B__NFWE_B 0x070 0x000 0x000 0x10 0x000 136#define MX25_PAD_NFWE_B__NFWE_B 0x070 0x000 0x000 0x00 0x000
137#define MX25_PAD_NFWE_B__GPIO_3_26 0x070 0x000 0x000 0x15 0x000 137#define MX25_PAD_NFWE_B__GPIO_3_26 0x070 0x000 0x000 0x05 0x000
138 138
139#define MX25_PAD_NFRE_B__NFRE_B 0x074 0x000 0x000 0x10 0x000 139#define MX25_PAD_NFRE_B__NFRE_B 0x074 0x000 0x000 0x00 0x000
140#define MX25_PAD_NFRE_B__GPIO_3_27 0x074 0x000 0x000 0x15 0x000 140#define MX25_PAD_NFRE_B__GPIO_3_27 0x074 0x000 0x000 0x05 0x000
141 141
142#define MX25_PAD_NFALE__NFALE 0x078 0x000 0x000 0x10 0x000 142#define MX25_PAD_NFALE__NFALE 0x078 0x000 0x000 0x00 0x000
143#define MX25_PAD_NFALE__GPIO_3_28 0x078 0x000 0x000 0x15 0x000 143#define MX25_PAD_NFALE__GPIO_3_28 0x078 0x000 0x000 0x05 0x000
144 144
145#define MX25_PAD_NFCLE__NFCLE 0x07c 0x000 0x000 0x10 0x000 145#define MX25_PAD_NFCLE__NFCLE 0x07c 0x000 0x000 0x00 0x000
146#define MX25_PAD_NFCLE__GPIO_3_29 0x07c 0x000 0x000 0x15 0x000 146#define MX25_PAD_NFCLE__GPIO_3_29 0x07c 0x000 0x000 0x05 0x000
147 147
148#define MX25_PAD_NFWP_B__NFWP_B 0x080 0x000 0x000 0x10 0x000 148#define MX25_PAD_NFWP_B__NFWP_B 0x080 0x000 0x000 0x00 0x000
149#define MX25_PAD_NFWP_B__GPIO_3_30 0x080 0x000 0x000 0x15 0x000 149#define MX25_PAD_NFWP_B__GPIO_3_30 0x080 0x000 0x000 0x05 0x000
150 150
151#define MX25_PAD_NFRB__NFRB 0x084 0x27c 0x000 0x10 0x000 151#define MX25_PAD_NFRB__NFRB 0x084 0x27c 0x000 0x00 0x000
152#define MX25_PAD_NFRB__GPIO_3_31 0x084 0x27c 0x000 0x15 0x000 152#define MX25_PAD_NFRB__GPIO_3_31 0x084 0x27c 0x000 0x05 0x000
153 153
154#define MX25_PAD_D15__D15 0x088 0x280 0x000 0x00 0x000 154#define MX25_PAD_D15__D15 0x088 0x280 0x000 0x00 0x000
155#define MX25_PAD_D15__LD16 0x088 0x280 0x000 0x01 0x000 155#define MX25_PAD_D15__LD16 0x088 0x280 0x000 0x01 0x000
@@ -210,101 +210,101 @@
210#define MX25_PAD_D0__D0 0x0c4 0x2bc 0x000 0x00 0x000 210#define MX25_PAD_D0__D0 0x0c4 0x2bc 0x000 0x00 0x000
211#define MX25_PAD_D0__GPIO_4_20 0x0c4 0x2bc 0x000 0x05 0x000 211#define MX25_PAD_D0__GPIO_4_20 0x0c4 0x2bc 0x000 0x05 0x000
212 212
213#define MX25_PAD_LD0__LD0 0x0c8 0x2c0 0x000 0x10 0x000 213#define MX25_PAD_LD0__LD0 0x0c8 0x2c0 0x000 0x00 0x000
214#define MX25_PAD_LD0__CSI_D0 0x0c8 0x2c0 0x488 0x12 0x000 214#define MX25_PAD_LD0__CSI_D0 0x0c8 0x2c0 0x488 0x02 0x000
215#define MX25_PAD_LD0__GPIO_2_15 0x0c8 0x2c0 0x000 0x15 0x000 215#define MX25_PAD_LD0__GPIO_2_15 0x0c8 0x2c0 0x000 0x05 0x000
216 216
217#define MX25_PAD_LD1__LD1 0x0cc 0x2c4 0x000 0x10 0x000 217#define MX25_PAD_LD1__LD1 0x0cc 0x2c4 0x000 0x00 0x000
218#define MX25_PAD_LD1__CSI_D1 0x0cc 0x2c4 0x48c 0x12 0x000 218#define MX25_PAD_LD1__CSI_D1 0x0cc 0x2c4 0x48c 0x02 0x000
219#define MX25_PAD_LD1__GPIO_2_16 0x0cc 0x2c4 0x000 0x15 0x000 219#define MX25_PAD_LD1__GPIO_2_16 0x0cc 0x2c4 0x000 0x05 0x000
220 220
221#define MX25_PAD_LD2__LD2 0x0d0 0x2c8 0x000 0x10 0x000 221#define MX25_PAD_LD2__LD2 0x0d0 0x2c8 0x000 0x00 0x000
222#define MX25_PAD_LD2__GPIO_2_17 0x0d0 0x2c8 0x000 0x15 0x000 222#define MX25_PAD_LD2__GPIO_2_17 0x0d0 0x2c8 0x000 0x05 0x000
223 223
224#define MX25_PAD_LD3__LD3 0x0d4 0x2cc 0x000 0x10 0x000 224#define MX25_PAD_LD3__LD3 0x0d4 0x2cc 0x000 0x00 0x000
225#define MX25_PAD_LD3__GPIO_2_18 0x0d4 0x2cc 0x000 0x15 0x000 225#define MX25_PAD_LD3__GPIO_2_18 0x0d4 0x2cc 0x000 0x05 0x000
226 226
227#define MX25_PAD_LD4__LD4 0x0d8 0x2d0 0x000 0x10 0x000 227#define MX25_PAD_LD4__LD4 0x0d8 0x2d0 0x000 0x00 0x000
228#define MX25_PAD_LD4__GPIO_2_19 0x0d8 0x2d0 0x000 0x15 0x000 228#define MX25_PAD_LD4__GPIO_2_19 0x0d8 0x2d0 0x000 0x05 0x000
229 229
230#define MX25_PAD_LD5__LD5 0x0dc 0x2d4 0x000 0x10 0x000 230#define MX25_PAD_LD5__LD5 0x0dc 0x2d4 0x000 0x00 0x000
231#define MX25_PAD_LD5__GPIO_1_19 0x0dc 0x2d4 0x000 0x15 0x000 231#define MX25_PAD_LD5__GPIO_1_19 0x0dc 0x2d4 0x000 0x05 0x000
232 232
233#define MX25_PAD_LD6__LD6 0x0e0 0x2d8 0x000 0x10 0x000 233#define MX25_PAD_LD6__LD6 0x0e0 0x2d8 0x000 0x00 0x000
234#define MX25_PAD_LD6__GPIO_1_20 0x0e0 0x2d8 0x000 0x15 0x000 234#define MX25_PAD_LD6__GPIO_1_20 0x0e0 0x2d8 0x000 0x05 0x000
235 235
236#define MX25_PAD_LD7__LD7 0x0e4 0x2dc 0x000 0x10 0x000 236#define MX25_PAD_LD7__LD7 0x0e4 0x2dc 0x000 0x00 0x000
237#define MX25_PAD_LD7__GPIO_1_21 0x0e4 0x2dc 0x000 0x15 0x000 237#define MX25_PAD_LD7__GPIO_1_21 0x0e4 0x2dc 0x000 0x05 0x000
238 238
239#define MX25_PAD_LD8__LD8 0x0e8 0x2e0 0x000 0x10 0x000 239#define MX25_PAD_LD8__LD8 0x0e8 0x2e0 0x000 0x00 0x000
240#define MX25_PAD_LD8__UART4_RXD 0x0e8 0x2e0 0x570 0x12 0x000 240#define MX25_PAD_LD8__UART4_RXD 0x0e8 0x2e0 0x570 0x02 0x000
241#define MX25_PAD_LD8__FEC_TX_ERR 0x0e8 0x2e0 0x000 0x15 0x000 241#define MX25_PAD_LD8__FEC_TX_ERR 0x0e8 0x2e0 0x000 0x05 0x000
242#define MX25_PAD_LD8__SDHC2_CMD 0x0e8 0x2e0 0x4e0 0x06 0x000 242#define MX25_PAD_LD8__SDHC2_CMD 0x0e8 0x2e0 0x4e0 0x06 0x000
243 243
244#define MX25_PAD_LD9__LD9 0x0ec 0x2e4 0x000 0x10 0x000 244#define MX25_PAD_LD9__LD9 0x0ec 0x2e4 0x000 0x00 0x000
245#define MX25_PAD_LD9__UART4_TXD 0x0ec 0x2e4 0x000 0x12 0x000 245#define MX25_PAD_LD9__UART4_TXD 0x0ec 0x2e4 0x000 0x02 0x000
246#define MX25_PAD_LD9__FEC_COL 0x0ec 0x2e4 0x504 0x15 0x001 246#define MX25_PAD_LD9__FEC_COL 0x0ec 0x2e4 0x504 0x05 0x001
247#define MX25_PAD_LD9__SDHC2_CLK 0x0ec 0x2e4 0x4dc 0x06 0x000 247#define MX25_PAD_LD9__SDHC2_CLK 0x0ec 0x2e4 0x4dc 0x06 0x000
248 248
249#define MX25_PAD_LD10__LD10 0x0f0 0x2e8 0x000 0x00 0x000 249#define MX25_PAD_LD10__LD10 0x0f0 0x2e8 0x000 0x00 0x000
250#define MX25_PAD_LD10__UART4_RTS 0x0f0 0x2e8 0x56c 0x02 0x000 250#define MX25_PAD_LD10__UART4_RTS 0x0f0 0x2e8 0x56c 0x02 0x000
251#define MX25_PAD_LD10__FEC_RX_ERR 0x0f0 0x2e8 0x518 0x05 0x001 251#define MX25_PAD_LD10__FEC_RX_ERR 0x0f0 0x2e8 0x518 0x05 0x001
252 252
253#define MX25_PAD_LD11__LD11 0x0f4 0x2ec 0x000 0x10 0x000 253#define MX25_PAD_LD11__LD11 0x0f4 0x2ec 0x000 0x00 0x000
254#define MX25_PAD_LD11__UART4_CTS 0x0f4 0x2ec 0x000 0x12 0x000 254#define MX25_PAD_LD11__UART4_CTS 0x0f4 0x2ec 0x000 0x02 0x000
255#define MX25_PAD_LD11__FEC_RDATA2 0x0f4 0x2ec 0x50c 0x15 0x001 255#define MX25_PAD_LD11__FEC_RDATA2 0x0f4 0x2ec 0x50c 0x05 0x001
256#define MX25_PAD_LD11__SDHC2_DAT1 0x0f4 0x2ec 0x4e8 0x06 0x000 256#define MX25_PAD_LD11__SDHC2_DAT1 0x0f4 0x2ec 0x4e8 0x06 0x000
257 257
258#define MX25_PAD_LD12__LD12 0x0f8 0x2f0 0x000 0x10 0x000 258#define MX25_PAD_LD12__LD12 0x0f8 0x2f0 0x000 0x00 0x000
259#define MX25_PAD_LD12__CSPI2_MOSI 0x0f8 0x2f0 0x4a0 0x02 0x000 259#define MX25_PAD_LD12__CSPI2_MOSI 0x0f8 0x2f0 0x4a0 0x02 0x000
260#define MX25_PAD_LD12__FEC_RDATA3 0x0f8 0x2f0 0x510 0x15 0x001 260#define MX25_PAD_LD12__FEC_RDATA3 0x0f8 0x2f0 0x510 0x05 0x001
261 261
262#define MX25_PAD_LD13__LD13 0x0fc 0x2f4 0x000 0x10 0x000 262#define MX25_PAD_LD13__LD13 0x0fc 0x2f4 0x000 0x00 0x000
263#define MX25_PAD_LD13__CSPI2_MISO 0x0fc 0x2f4 0x49c 0x02 0x000 263#define MX25_PAD_LD13__CSPI2_MISO 0x0fc 0x2f4 0x49c 0x02 0x000
264#define MX25_PAD_LD13__FEC_TDATA2 0x0fc 0x2f4 0x000 0x15 0x000 264#define MX25_PAD_LD13__FEC_TDATA2 0x0fc 0x2f4 0x000 0x05 0x000
265 265
266#define MX25_PAD_LD14__LD14 0x100 0x2f8 0x000 0x10 0x000 266#define MX25_PAD_LD14__LD14 0x100 0x2f8 0x000 0x00 0x000
267#define MX25_PAD_LD14__CSPI2_SCLK 0x100 0x2f8 0x494 0x02 0x000 267#define MX25_PAD_LD14__CSPI2_SCLK 0x100 0x2f8 0x494 0x02 0x000
268#define MX25_PAD_LD14__FEC_TDATA3 0x100 0x2f8 0x000 0x15 0x000 268#define MX25_PAD_LD14__FEC_TDATA3 0x100 0x2f8 0x000 0x05 0x000
269 269
270#define MX25_PAD_LD15__LD15 0x104 0x2fc 0x000 0x10 0x000 270#define MX25_PAD_LD15__LD15 0x104 0x2fc 0x000 0x00 0x000
271#define MX25_PAD_LD15__CSPI2_RDY 0x104 0x2fc 0x498 0x02 0x000 271#define MX25_PAD_LD15__CSPI2_RDY 0x104 0x2fc 0x498 0x02 0x000
272#define MX25_PAD_LD15__FEC_RX_CLK 0x104 0x2fc 0x514 0x15 0x001 272#define MX25_PAD_LD15__FEC_RX_CLK 0x104 0x2fc 0x514 0x05 0x001
273 273
274#define MX25_PAD_HSYNC__HSYNC 0x108 0x300 0x000 0x10 0x000 274#define MX25_PAD_HSYNC__HSYNC 0x108 0x300 0x000 0x00 0x000
275#define MX25_PAD_HSYNC__GPIO_1_22 0x108 0x300 0x000 0x15 0x000 275#define MX25_PAD_HSYNC__GPIO_1_22 0x108 0x300 0x000 0x05 0x000
276 276
277#define MX25_PAD_VSYNC__VSYNC 0x10c 0x304 0x000 0x10 0x000 277#define MX25_PAD_VSYNC__VSYNC 0x10c 0x304 0x000 0x00 0x000
278#define MX25_PAD_VSYNC__GPIO_1_23 0x10c 0x304 0x000 0x15 0x000 278#define MX25_PAD_VSYNC__GPIO_1_23 0x10c 0x304 0x000 0x05 0x000
279 279
280#define MX25_PAD_LSCLK__LSCLK 0x110 0x308 0x000 0x10 0x000 280#define MX25_PAD_LSCLK__LSCLK 0x110 0x308 0x000 0x00 0x000
281#define MX25_PAD_LSCLK__GPIO_1_24 0x110 0x308 0x000 0x15 0x000 281#define MX25_PAD_LSCLK__GPIO_1_24 0x110 0x308 0x000 0x05 0x000
282 282
283#define MX25_PAD_OE_ACD__OE_ACD 0x114 0x30c 0x000 0x10 0x000 283#define MX25_PAD_OE_ACD__OE_ACD 0x114 0x30c 0x000 0x00 0x000
284#define MX25_PAD_OE_ACD__CSPI2_SS0 0x114 0x30c 0x4a4 0x02 0x000 284#define MX25_PAD_OE_ACD__CSPI2_SS0 0x114 0x30c 0x4a4 0x02 0x000
285#define MX25_PAD_OE_ACD__GPIO_1_25 0x114 0x30c 0x000 0x15 0x000 285#define MX25_PAD_OE_ACD__GPIO_1_25 0x114 0x30c 0x000 0x05 0x000
286 286
287#define MX25_PAD_CONTRAST__CONTRAST 0x118 0x310 0x000 0x10 0x000 287#define MX25_PAD_CONTRAST__CONTRAST 0x118 0x310 0x000 0x00 0x000
288#define MX25_PAD_CONTRAST__CC4 0x118 0x310 0x000 0x11 0x000 288#define MX25_PAD_CONTRAST__CC4 0x118 0x310 0x000 0x01 0x000
289#define MX25_PAD_CONTRAST__PWM4_PWMO 0x118 0x310 0x000 0x14 0x000 289#define MX25_PAD_CONTRAST__PWM4_PWMO 0x118 0x310 0x000 0x04 0x000
290#define MX25_PAD_CONTRAST__FEC_CRS 0x118 0x310 0x508 0x15 0x001 290#define MX25_PAD_CONTRAST__FEC_CRS 0x118 0x310 0x508 0x05 0x001
291#define MX25_PAD_CONTRAST__USBH2_PWR 0x118 0x310 0x000 0x16 0x000 291#define MX25_PAD_CONTRAST__USBH2_PWR 0x118 0x310 0x000 0x06 0x000
292 292
293#define MX25_PAD_PWM__PWM 0x11c 0x314 0x000 0x10 0x000 293#define MX25_PAD_PWM__PWM 0x11c 0x314 0x000 0x00 0x000
294#define MX25_PAD_PWM__GPIO_1_26 0x11c 0x314 0x000 0x15 0x000 294#define MX25_PAD_PWM__GPIO_1_26 0x11c 0x314 0x000 0x05 0x000
295#define MX25_PAD_PWM__USBH2_OC 0x11c 0x314 0x580 0x16 0x001 295#define MX25_PAD_PWM__USBH2_OC 0x11c 0x314 0x580 0x06 0x001
296 296
297#define MX25_PAD_CSI_D2__CSI_D2 0x120 0x318 0x000 0x10 0x000 297#define MX25_PAD_CSI_D2__CSI_D2 0x120 0x318 0x000 0x00 0x000
298#define MX25_PAD_CSI_D2__UART5_RXD 0x120 0x318 0x578 0x11 0x001 298#define MX25_PAD_CSI_D2__UART5_RXD 0x120 0x318 0x578 0x01 0x001
299#define MX25_PAD_CSI_D2__SIM1_CLK0 0x120 0x318 0x000 0x04 0x000 299#define MX25_PAD_CSI_D2__SIM1_CLK0 0x120 0x318 0x000 0x04 0x000
300#define MX25_PAD_CSI_D2__GPIO_1_27 0x120 0x318 0x000 0x15 0x000 300#define MX25_PAD_CSI_D2__GPIO_1_27 0x120 0x318 0x000 0x05 0x000
301#define MX25_PAD_CSI_D2__CSPI3_MOSI 0x120 0x318 0x000 0x17 0x000 301#define MX25_PAD_CSI_D2__CSPI3_MOSI 0x120 0x318 0x000 0x07 0x000
302 302
303#define MX25_PAD_CSI_D3__CSI_D3 0x124 0x31c 0x000 0x10 0x000 303#define MX25_PAD_CSI_D3__CSI_D3 0x124 0x31c 0x000 0x00 0x000
304#define MX25_PAD_CSI_D3__UART5_TXD 0x124 0x31c 0x000 0x11 0x000 304#define MX25_PAD_CSI_D3__UART5_TXD 0x124 0x31c 0x000 0x01 0x000
305#define MX25_PAD_CSI_D3__SIM1_RST0 0x124 0x31c 0x000 0x04 0x000 305#define MX25_PAD_CSI_D3__SIM1_RST0 0x124 0x31c 0x000 0x04 0x000
306#define MX25_PAD_CSI_D3__GPIO_1_28 0x124 0x31c 0x000 0x15 0x000 306#define MX25_PAD_CSI_D3__GPIO_1_28 0x124 0x31c 0x000 0x05 0x000
307#define MX25_PAD_CSI_D3__CSPI3_MISO 0x124 0x31c 0x4b4 0x17 0x001 307#define MX25_PAD_CSI_D3__CSPI3_MISO 0x124 0x31c 0x4b4 0x07 0x001
308 308
309#define MX25_PAD_CSI_D4__CSI_D4 0x128 0x320 0x000 0x00 0x000 309#define MX25_PAD_CSI_D4__CSI_D4 0x128 0x320 0x000 0x00 0x000
310#define MX25_PAD_CSI_D4__UART5_RTS 0x128 0x320 0x574 0x01 0x001 310#define MX25_PAD_CSI_D4__UART5_RTS 0x128 0x320 0x574 0x01 0x001
@@ -312,80 +312,80 @@
312#define MX25_PAD_CSI_D4__GPIO_1_29 0x128 0x320 0x000 0x05 0x000 312#define MX25_PAD_CSI_D4__GPIO_1_29 0x128 0x320 0x000 0x05 0x000
313#define MX25_PAD_CSI_D4__CSPI3_SCLK 0x128 0x320 0x000 0x07 0x000 313#define MX25_PAD_CSI_D4__CSPI3_SCLK 0x128 0x320 0x000 0x07 0x000
314 314
315#define MX25_PAD_CSI_D5__CSI_D5 0x12c 0x324 0x000 0x10 0x000 315#define MX25_PAD_CSI_D5__CSI_D5 0x12c 0x324 0x000 0x00 0x000
316#define MX25_PAD_CSI_D5__UART5_CTS 0x12c 0x324 0x000 0x11 0x000 316#define MX25_PAD_CSI_D5__UART5_CTS 0x12c 0x324 0x000 0x01 0x000
317#define MX25_PAD_CSI_D5__SIM1_TX0 0x12c 0x324 0x000 0x04 0x000 317#define MX25_PAD_CSI_D5__SIM1_TX0 0x12c 0x324 0x000 0x04 0x000
318#define MX25_PAD_CSI_D5__GPIO_1_30 0x12c 0x324 0x000 0x15 0x000 318#define MX25_PAD_CSI_D5__GPIO_1_30 0x12c 0x324 0x000 0x05 0x000
319#define MX25_PAD_CSI_D5__CSPI3_RDY 0x12c 0x324 0x000 0x17 0x000 319#define MX25_PAD_CSI_D5__CSPI3_RDY 0x12c 0x324 0x000 0x07 0x000
320 320
321#define MX25_PAD_CSI_D6__CSI_D6 0x130 0x328 0x000 0x10 0x000 321#define MX25_PAD_CSI_D6__CSI_D6 0x130 0x328 0x000 0x00 0x000
322#define MX25_PAD_CSI_D6__SDHC2_CMD 0x130 0x328 0x4e0 0x12 0x001 322#define MX25_PAD_CSI_D6__SDHC2_CMD 0x130 0x328 0x4e0 0x02 0x001
323#define MX25_PAD_CSI_D6__SIM1_PD0 0x130 0x328 0x000 0x04 0x000 323#define MX25_PAD_CSI_D6__SIM1_PD0 0x130 0x328 0x000 0x04 0x000
324#define MX25_PAD_CSI_D6__GPIO_1_31 0x130 0x328 0x000 0x15 0x000 324#define MX25_PAD_CSI_D6__GPIO_1_31 0x130 0x328 0x000 0x05 0x000
325 325
326#define MX25_PAD_CSI_D7__CSI_D7 0x134 0x32c 0x000 0x10 0x000 326#define MX25_PAD_CSI_D7__CSI_D7 0x134 0x32c 0x000 0x00 0x000
327#define MX25_PAD_CSI_D7__SDHC2_DAT_CLK 0x134 0x32C 0x4dc 0x12 0x001 327#define MX25_PAD_CSI_D7__SDHC2_DAT_CLK 0x134 0x32C 0x4dc 0x02 0x001
328#define MX25_PAD_CSI_D7__GPIO_1_6 0x134 0x32c 0x000 0x15 0x000 328#define MX25_PAD_CSI_D7__GPIO_1_6 0x134 0x32c 0x000 0x05 0x000
329 329
330#define MX25_PAD_CSI_D8__CSI_D8 0x138 0x330 0x000 0x10 0x000 330#define MX25_PAD_CSI_D8__CSI_D8 0x138 0x330 0x000 0x00 0x000
331#define MX25_PAD_CSI_D8__AUD6_RXC 0x138 0x330 0x000 0x12 0x000 331#define MX25_PAD_CSI_D8__AUD6_RXC 0x138 0x330 0x000 0x02 0x000
332#define MX25_PAD_CSI_D8__GPIO_1_7 0x138 0x330 0x000 0x15 0x000 332#define MX25_PAD_CSI_D8__GPIO_1_7 0x138 0x330 0x000 0x05 0x000
333#define MX25_PAD_CSI_D8__CSPI3_SS2 0x138 0x330 0x4c4 0x17 0x000 333#define MX25_PAD_CSI_D8__CSPI3_SS2 0x138 0x330 0x4c4 0x07 0x000
334 334
335#define MX25_PAD_CSI_D9__CSI_D9 0x13c 0x334 0x000 0x10 0x000 335#define MX25_PAD_CSI_D9__CSI_D9 0x13c 0x334 0x000 0x00 0x000
336#define MX25_PAD_CSI_D9__AUD6_RXFS 0x13c 0x334 0x000 0x12 0x000 336#define MX25_PAD_CSI_D9__AUD6_RXFS 0x13c 0x334 0x000 0x02 0x000
337#define MX25_PAD_CSI_D9__GPIO_4_21 0x13c 0x334 0x000 0x15 0x000 337#define MX25_PAD_CSI_D9__GPIO_4_21 0x13c 0x334 0x000 0x05 0x000
338#define MX25_PAD_CSI_D9__CSPI3_SS3 0x13c 0x334 0x4c8 0x17 0x000 338#define MX25_PAD_CSI_D9__CSPI3_SS3 0x13c 0x334 0x4c8 0x07 0x000
339 339
340#define MX25_PAD_CSI_MCLK__CSI_MCLK 0x140 0x338 0x000 0x10 0x000 340#define MX25_PAD_CSI_MCLK__CSI_MCLK 0x140 0x338 0x000 0x00 0x000
341#define MX25_PAD_CSI_MCLK__AUD6_TXD 0x140 0x338 0x000 0x11 0x000 341#define MX25_PAD_CSI_MCLK__AUD6_TXD 0x140 0x338 0x000 0x01 0x000
342#define MX25_PAD_CSI_MCLK__SDHC2_DAT0 0x140 0x338 0x4e4 0x12 0x001 342#define MX25_PAD_CSI_MCLK__SDHC2_DAT0 0x140 0x338 0x4e4 0x02 0x001
343#define MX25_PAD_CSI_MCLK__GPIO_1_8 0x140 0x338 0x000 0x15 0x000 343#define MX25_PAD_CSI_MCLK__GPIO_1_8 0x140 0x338 0x000 0x05 0x000
344 344
345#define MX25_PAD_CSI_VSYNC__CSI_VSYNC 0x144 0x33c 0x000 0x10 0x000 345#define MX25_PAD_CSI_VSYNC__CSI_VSYNC 0x144 0x33c 0x000 0x00 0x000
346#define MX25_PAD_CSI_VSYNC__AUD6_RXD 0x144 0x33c 0x000 0x11 0x000 346#define MX25_PAD_CSI_VSYNC__AUD6_RXD 0x144 0x33c 0x000 0x01 0x000
347#define MX25_PAD_CSI_VSYNC__SDHC2_DAT1 0x144 0x33c 0x4e8 0x12 0x001 347#define MX25_PAD_CSI_VSYNC__SDHC2_DAT1 0x144 0x33c 0x4e8 0x02 0x001
348#define MX25_PAD_CSI_VSYNC__GPIO_1_9 0x144 0x33c 0x000 0x15 0x000 348#define MX25_PAD_CSI_VSYNC__GPIO_1_9 0x144 0x33c 0x000 0x05 0x000
349 349
350#define MX25_PAD_CSI_HSYNC__CSI_HSYNC 0x148 0x340 0x000 0x10 0x000 350#define MX25_PAD_CSI_HSYNC__CSI_HSYNC 0x148 0x340 0x000 0x00 0x000
351#define MX25_PAD_CSI_HSYNC__AUD6_TXC 0x148 0x340 0x000 0x11 0x000 351#define MX25_PAD_CSI_HSYNC__AUD6_TXC 0x148 0x340 0x000 0x01 0x000
352#define MX25_PAD_CSI_HSYNC__SDHC2_DAT2 0x148 0x340 0x4ec 0x12 0x001 352#define MX25_PAD_CSI_HSYNC__SDHC2_DAT2 0x148 0x340 0x4ec 0x02 0x001
353#define MX25_PAD_CSI_HSYNC__GPIO_1_10 0x148 0x340 0x000 0x15 0x000 353#define MX25_PAD_CSI_HSYNC__GPIO_1_10 0x148 0x340 0x000 0x05 0x000
354 354
355#define MX25_PAD_CSI_PIXCLK__CSI_PIXCLK 0x14c 0x344 0x000 0x10 0x000 355#define MX25_PAD_CSI_PIXCLK__CSI_PIXCLK 0x14c 0x344 0x000 0x00 0x000
356#define MX25_PAD_CSI_PIXCLK__AUD6_TXFS 0x14c 0x344 0x000 0x11 0x000 356#define MX25_PAD_CSI_PIXCLK__AUD6_TXFS 0x14c 0x344 0x000 0x01 0x000
357#define MX25_PAD_CSI_PIXCLK__SDHC2_DAT3 0x14c 0x344 0x4f0 0x12 0x001 357#define MX25_PAD_CSI_PIXCLK__SDHC2_DAT3 0x14c 0x344 0x4f0 0x02 0x001
358#define MX25_PAD_CSI_PIXCLK__GPIO_1_11 0x14c 0x344 0x000 0x15 0x000 358#define MX25_PAD_CSI_PIXCLK__GPIO_1_11 0x14c 0x344 0x000 0x05 0x000
359 359
360#define MX25_PAD_I2C1_CLK__I2C1_CLK 0x150 0x348 0x000 0x10 0x000 360#define MX25_PAD_I2C1_CLK__I2C1_CLK 0x150 0x348 0x000 0x00 0x000
361#define MX25_PAD_I2C1_CLK__GPIO_1_12 0x150 0x348 0x000 0x15 0x000 361#define MX25_PAD_I2C1_CLK__GPIO_1_12 0x150 0x348 0x000 0x05 0x000
362 362
363#define MX25_PAD_I2C1_DAT__I2C1_DAT 0x154 0x34c 0x000 0x10 0x000 363#define MX25_PAD_I2C1_DAT__I2C1_DAT 0x154 0x34c 0x000 0x00 0x000
364#define MX25_PAD_I2C1_DAT__GPIO_1_13 0x154 0x34c 0x000 0x15 0x000 364#define MX25_PAD_I2C1_DAT__GPIO_1_13 0x154 0x34c 0x000 0x05 0x000
365 365
366#define MX25_PAD_CSPI1_MOSI__CSPI1_MOSI 0x158 0x350 0x000 0x10 0x000 366#define MX25_PAD_CSPI1_MOSI__CSPI1_MOSI 0x158 0x350 0x000 0x00 0x000
367#define MX25_PAD_CSPI1_MOSI__UART3_RXD 0x158 0x350 0x568 0x12 0x000 367#define MX25_PAD_CSPI1_MOSI__UART3_RXD 0x158 0x350 0x568 0x02 0x000
368#define MX25_PAD_CSPI1_MOSI__GPIO_1_14 0x158 0x350 0x000 0x15 0x000 368#define MX25_PAD_CSPI1_MOSI__GPIO_1_14 0x158 0x350 0x000 0x05 0x000
369 369
370#define MX25_PAD_CSPI1_MISO__CSPI1_MISO 0x15c 0x354 0x000 0x10 0x000 370#define MX25_PAD_CSPI1_MISO__CSPI1_MISO 0x15c 0x354 0x000 0x00 0x000
371#define MX25_PAD_CSPI1_MISO__UART3_TXD 0x15c 0x354 0x000 0x12 0x000 371#define MX25_PAD_CSPI1_MISO__UART3_TXD 0x15c 0x354 0x000 0x02 0x000
372#define MX25_PAD_CSPI1_MISO__GPIO_1_15 0x15c 0x354 0x000 0x15 0x000 372#define MX25_PAD_CSPI1_MISO__GPIO_1_15 0x15c 0x354 0x000 0x05 0x000
373 373
374#define MX25_PAD_CSPI1_SS0__CSPI1_SS0 0x160 0x358 0x000 0x10 0x000 374#define MX25_PAD_CSPI1_SS0__CSPI1_SS0 0x160 0x358 0x000 0x00 0x000
375#define MX25_PAD_CSPI1_SS0__PWM2_PWMO 0x160 0x358 0x000 0x12 0x000 375#define MX25_PAD_CSPI1_SS0__PWM2_PWMO 0x160 0x358 0x000 0x02 0x000
376#define MX25_PAD_CSPI1_SS0__GPIO_1_16 0x160 0x358 0x000 0x15 0x000 376#define MX25_PAD_CSPI1_SS0__GPIO_1_16 0x160 0x358 0x000 0x05 0x000
377 377
378#define MX25_PAD_CSPI1_SS1__CSPI1_SS1 0x164 0x35c 0x000 0x00 0x000 378#define MX25_PAD_CSPI1_SS1__CSPI1_SS1 0x164 0x35c 0x000 0x00 0x000
379#define MX25_PAD_CSPI1_SS1__I2C3_DAT 0x164 0x35C 0x528 0x01 0x001 379#define MX25_PAD_CSPI1_SS1__I2C3_DAT 0x164 0x35C 0x528 0x01 0x001
380#define MX25_PAD_CSPI1_SS1__UART3_RTS 0x164 0x35c 0x000 0x02 0x000 380#define MX25_PAD_CSPI1_SS1__UART3_RTS 0x164 0x35c 0x000 0x02 0x000
381#define MX25_PAD_CSPI1_SS1__GPIO_1_17 0x164 0x35c 0x000 0x05 0x000 381#define MX25_PAD_CSPI1_SS1__GPIO_1_17 0x164 0x35c 0x000 0x05 0x000
382 382
383#define MX25_PAD_CSPI1_SCLK__CSPI1_SCLK 0x168 0x360 0x000 0x10 0x000 383#define MX25_PAD_CSPI1_SCLK__CSPI1_SCLK 0x168 0x360 0x000 0x00 0x000
384#define MX25_PAD_CSPI1_SCLK__UART3_CTS 0x168 0x360 0x000 0x12 0x000 384#define MX25_PAD_CSPI1_SCLK__UART3_CTS 0x168 0x360 0x000 0x02 0x000
385#define MX25_PAD_CSPI1_SCLK__GPIO_1_18 0x168 0x360 0x000 0x15 0x000 385#define MX25_PAD_CSPI1_SCLK__GPIO_1_18 0x168 0x360 0x000 0x05 0x000
386 386
387#define MX25_PAD_CSPI1_RDY__CSPI1_RDY 0x16c 0x364 0x000 0x10 0x000 387#define MX25_PAD_CSPI1_RDY__CSPI1_RDY 0x16c 0x364 0x000 0x00 0x000
388#define MX25_PAD_CSPI1_RDY__GPIO_2_22 0x16c 0x364 0x000 0x15 0x000 388#define MX25_PAD_CSPI1_RDY__GPIO_2_22 0x16c 0x364 0x000 0x05 0x000
389 389
390#define MX25_PAD_UART1_RXD__UART1_RXD 0x170 0x368 0x000 0x00 0x000 390#define MX25_PAD_UART1_RXD__UART1_RXD 0x170 0x368 0x000 0x00 0x000
391#define MX25_PAD_UART1_RXD__UART2_DTR 0x170 0x368 0x000 0x03 0x000 391#define MX25_PAD_UART1_RXD__UART2_DTR 0x170 0x368 0x000 0x03 0x000
@@ -406,46 +406,55 @@
406#define MX25_PAD_UART1_CTS__UART2_RI 0x17c 0x374 0x000 0x03 0x001 406#define MX25_PAD_UART1_CTS__UART2_RI 0x17c 0x374 0x000 0x03 0x001
407#define MX25_PAD_UART1_CTS__GPIO_4_25 0x17c 0x374 0x000 0x05 0x000 407#define MX25_PAD_UART1_CTS__GPIO_4_25 0x17c 0x374 0x000 0x05 0x000
408 408
409#define MX25_PAD_UART2_RXD__UART2_RXD 0x180 0x378 0x000 0x10 0x000 409#define MX25_PAD_UART2_RXD__UART2_RXD 0x180 0x378 0x000 0x00 0x000
410#define MX25_PAD_UART2_RXD__GPIO_4_26 0x180 0x378 0x000 0x15 0x000 410#define MX25_PAD_UART2_RXD__GPIO_4_26 0x180 0x378 0x000 0x05 0x000
411 411
412#define MX25_PAD_UART2_TXD__UART2_TXD 0x184 0x37c 0x000 0x10 0x000 412#define MX25_PAD_UART2_TXD__UART2_TXD 0x184 0x37c 0x000 0x00 0x000
413#define MX25_PAD_UART2_TXD__GPIO_4_27 0x184 0x37c 0x000 0x15 0x000 413#define MX25_PAD_UART2_TXD__GPIO_4_27 0x184 0x37c 0x000 0x05 0x000
414 414
415#define MX25_PAD_UART2_RTS__UART2_RTS 0x188 0x380 0x000 0x00 0x000 415#define MX25_PAD_UART2_RTS__UART2_RTS 0x188 0x380 0x000 0x00 0x000
416#define MX25_PAD_UART2_RTS__FEC_COL 0x188 0x380 0x504 0x02 0x002 416#define MX25_PAD_UART2_RTS__FEC_COL 0x188 0x380 0x504 0x02 0x002
417#define MX25_PAD_UART2_RTS__CC1 0x188 0x380 0x000 0x03 0x000 417#define MX25_PAD_UART2_RTS__CC1 0x188 0x380 0x000 0x03 0x000
418#define MX25_PAD_UART2_RTS__GPIO_4_28 0x188 0x380 0x000 0x05 0x000 418#define MX25_PAD_UART2_RTS__GPIO_4_28 0x188 0x380 0x000 0x05 0x000
419 419
420#define MX25_PAD_UART2_CTS__UART2_CTS 0x18c 0x384 0x000 0x10 0x000 420#define MX25_PAD_UART2_CTS__UART2_CTS 0x18c 0x384 0x000 0x00 0x000
421#define MX25_PAD_UART2_CTS__FEC_RX_ERR 0x18c 0x384 0x518 0x12 0x002 421#define MX25_PAD_UART2_CTS__FEC_RX_ERR 0x18c 0x384 0x518 0x02 0x002
422#define MX25_PAD_UART2_CTS__GPIO_4_29 0x18c 0x384 0x000 0x15 0x000 422#define MX25_PAD_UART2_CTS__GPIO_4_29 0x18c 0x384 0x000 0x05 0x000
423 423
424/*
425 * Removing the SION bit from MX25_PAD_SD1_CMD__SD1_CMD breaks detecting an SD
426 * card. According to the i.MX25 reference manual (e.g. Figure 23-2 in IMX25RM
427 * Rev. 2 from 01/2011) this pin is bidirectional. So it seems to be a silicon
428 * bug that configuring the SD1_CMD function doesn't enable the input path for
429 * this pin.
430 * This might have side effects for other hardware units that are connected to
431 * that pin and use the respective function as input.
432 */
424#define MX25_PAD_SD1_CMD__SD1_CMD 0x190 0x388 0x000 0x10 0x000 433#define MX25_PAD_SD1_CMD__SD1_CMD 0x190 0x388 0x000 0x10 0x000
425#define MX25_PAD_SD1_CMD__CSPI2_MOSI 0x190 0x388 0x4a0 0x11 0x001 434#define MX25_PAD_SD1_CMD__CSPI2_MOSI 0x190 0x388 0x4a0 0x01 0x001
426#define MX25_PAD_SD1_CMD__FEC_RDATA2 0x190 0x388 0x50c 0x12 0x002 435#define MX25_PAD_SD1_CMD__FEC_RDATA2 0x190 0x388 0x50c 0x02 0x002
427#define MX25_PAD_SD1_CMD__GPIO_2_23 0x190 0x388 0x000 0x15 0x000 436#define MX25_PAD_SD1_CMD__GPIO_2_23 0x190 0x388 0x000 0x05 0x000
428 437
429#define MX25_PAD_SD1_CLK__SD1_CLK 0x194 0x38c 0x000 0x10 0x000 438#define MX25_PAD_SD1_CLK__SD1_CLK 0x194 0x38c 0x000 0x00 0x000
430#define MX25_PAD_SD1_CLK__CSPI2_MISO 0x194 0x38c 0x49c 0x11 0x001 439#define MX25_PAD_SD1_CLK__CSPI2_MISO 0x194 0x38c 0x49c 0x01 0x001
431#define MX25_PAD_SD1_CLK__FEC_RDATA3 0x194 0x38c 0x510 0x12 0x002 440#define MX25_PAD_SD1_CLK__FEC_RDATA3 0x194 0x38c 0x510 0x02 0x002
432#define MX25_PAD_SD1_CLK__GPIO_2_24 0x194 0x38c 0x000 0x15 0x000 441#define MX25_PAD_SD1_CLK__GPIO_2_24 0x194 0x38c 0x000 0x05 0x000
433 442
434#define MX25_PAD_SD1_DATA0__SD1_DATA0 0x198 0x390 0x000 0x10 0x000 443#define MX25_PAD_SD1_DATA0__SD1_DATA0 0x198 0x390 0x000 0x00 0x000
435#define MX25_PAD_SD1_DATA0__CSPI2_SCLK 0x198 0x390 0x494 0x11 0x001 444#define MX25_PAD_SD1_DATA0__CSPI2_SCLK 0x198 0x390 0x494 0x01 0x001
436#define MX25_PAD_SD1_DATA0__GPIO_2_25 0x198 0x390 0x000 0x15 0x000 445#define MX25_PAD_SD1_DATA0__GPIO_2_25 0x198 0x390 0x000 0x05 0x000
437 446
438#define MX25_PAD_SD1_DATA1__SD1_DATA1 0x19c 0x394 0x000 0x10 0x000 447#define MX25_PAD_SD1_DATA1__SD1_DATA1 0x19c 0x394 0x000 0x00 0x000
439#define MX25_PAD_SD1_DATA1__AUD7_RXD 0x19c 0x394 0x478 0x13 0x000 448#define MX25_PAD_SD1_DATA1__AUD7_RXD 0x19c 0x394 0x478 0x03 0x000
440#define MX25_PAD_SD1_DATA1__GPIO_2_26 0x19c 0x394 0x000 0x15 0x000 449#define MX25_PAD_SD1_DATA1__GPIO_2_26 0x19c 0x394 0x000 0x05 0x000
441 450
442#define MX25_PAD_SD1_DATA2__SD1_DATA2 0x1a0 0x398 0x000 0x10 0x000 451#define MX25_PAD_SD1_DATA2__SD1_DATA2 0x1a0 0x398 0x000 0x00 0x000
443#define MX25_PAD_SD1_DATA2__FEC_RX_CLK 0x1a0 0x398 0x514 0x12 0x002 452#define MX25_PAD_SD1_DATA2__FEC_RX_CLK 0x1a0 0x398 0x514 0x02 0x002
444#define MX25_PAD_SD1_DATA2__GPIO_2_27 0x1a0 0x398 0x000 0x15 0x000 453#define MX25_PAD_SD1_DATA2__GPIO_2_27 0x1a0 0x398 0x000 0x05 0x000
445 454
446#define MX25_PAD_SD1_DATA3__SD1_DATA3 0x1a4 0x39c 0x000 0x10 0x000 455#define MX25_PAD_SD1_DATA3__SD1_DATA3 0x1a4 0x39c 0x000 0x00 0x000
447#define MX25_PAD_SD1_DATA3__FEC_CRS 0x1a4 0x39c 0x508 0x12 0x002 456#define MX25_PAD_SD1_DATA3__FEC_CRS 0x1a4 0x39c 0x508 0x02 0x002
448#define MX25_PAD_SD1_DATA3__GPIO_2_28 0x1a4 0x39c 0x000 0x15 0x000 457#define MX25_PAD_SD1_DATA3__GPIO_2_28 0x1a4 0x39c 0x000 0x05 0x000
449 458
450#define MX25_PAD_KPP_ROW0__KPP_ROW0 0x1a8 0x3a0 0x000 0x00 0x000 459#define MX25_PAD_KPP_ROW0__KPP_ROW0 0x1a8 0x3a0 0x000 0x00 0x000
451#define MX25_PAD_KPP_ROW0__UART3_RXD 0x1a8 0x3a0 0x568 0x01 0x001 460#define MX25_PAD_KPP_ROW0__UART3_RXD 0x1a8 0x3a0 0x568 0x01 0x001
@@ -469,123 +478,123 @@
469#define MX25_PAD_KPP_ROW3__UART1_RI 0x1b4 0x3ac 0x000 0x04 0x000 478#define MX25_PAD_KPP_ROW3__UART1_RI 0x1b4 0x3ac 0x000 0x04 0x000
470#define MX25_PAD_KPP_ROW3__GPIO_3_0 0x1b4 0x3ac 0x000 0x05 0x000 479#define MX25_PAD_KPP_ROW3__GPIO_3_0 0x1b4 0x3ac 0x000 0x05 0x000
471 480
472#define MX25_PAD_KPP_COL0__KPP_COL0 0x1b8 0x3b0 0x000 0x10 0x000 481#define MX25_PAD_KPP_COL0__KPP_COL0 0x1b8 0x3b0 0x000 0x00 0x000
473#define MX25_PAD_KPP_COL0__UART4_RXD 0x1b8 0x3b0 0x570 0x11 0x001 482#define MX25_PAD_KPP_COL0__UART4_RXD 0x1b8 0x3b0 0x570 0x01 0x001
474#define MX25_PAD_KPP_COL0__AUD5_TXD 0x1b8 0x3b0 0x000 0x12 0x000 483#define MX25_PAD_KPP_COL0__AUD5_TXD 0x1b8 0x3b0 0x000 0x02 0x000
475#define MX25_PAD_KPP_COL0__GPIO_3_1 0x1b8 0x3b0 0x000 0x15 0x000 484#define MX25_PAD_KPP_COL0__GPIO_3_1 0x1b8 0x3b0 0x000 0x05 0x000
476 485
477#define MX25_PAD_KPP_COL1__KPP_COL1 0x1bc 0x3b4 0x000 0x10 0x000 486#define MX25_PAD_KPP_COL1__KPP_COL1 0x1bc 0x3b4 0x000 0x00 0x000
478#define MX25_PAD_KPP_COL1__UART4_TXD 0x1bc 0x3b4 0x000 0x11 0x000 487#define MX25_PAD_KPP_COL1__UART4_TXD 0x1bc 0x3b4 0x000 0x01 0x000
479#define MX25_PAD_KPP_COL1__AUD5_RXD 0x1bc 0x3b4 0x000 0x12 0x000 488#define MX25_PAD_KPP_COL1__AUD5_RXD 0x1bc 0x3b4 0x000 0x02 0x000
480#define MX25_PAD_KPP_COL1__GPIO_3_2 0x1bc 0x3b4 0x000 0x15 0x000 489#define MX25_PAD_KPP_COL1__GPIO_3_2 0x1bc 0x3b4 0x000 0x05 0x000
481 490
482#define MX25_PAD_KPP_COL2__KPP_COL2 0x1c0 0x3b8 0x000 0x00 0x000 491#define MX25_PAD_KPP_COL2__KPP_COL2 0x1c0 0x3b8 0x000 0x00 0x000
483#define MX25_PAD_KPP_COL2__UART4_RTS 0x1c0 0x3b8 0x56c 0x01 0x001 492#define MX25_PAD_KPP_COL2__UART4_RTS 0x1c0 0x3b8 0x56c 0x01 0x001
484#define MX25_PAD_KPP_COL2__AUD5_TXC 0x1c0 0x3b8 0x000 0x02 0x000 493#define MX25_PAD_KPP_COL2__AUD5_TXC 0x1c0 0x3b8 0x000 0x02 0x000
485#define MX25_PAD_KPP_COL2__GPIO_3_3 0x1c0 0x3b8 0x000 0x05 0x000 494#define MX25_PAD_KPP_COL2__GPIO_3_3 0x1c0 0x3b8 0x000 0x05 0x000
486 495
487#define MX25_PAD_KPP_COL3__KPP_COL3 0x1c4 0x3bc 0x000 0x10 0x000 496#define MX25_PAD_KPP_COL3__KPP_COL3 0x1c4 0x3bc 0x000 0x00 0x000
488#define MX25_PAD_KPP_COL3__UART4_CTS 0x1c4 0x3bc 0x000 0x11 0x000 497#define MX25_PAD_KPP_COL3__UART4_CTS 0x1c4 0x3bc 0x000 0x01 0x000
489#define MX25_PAD_KPP_COL3__AUD5_TXFS 0x1c4 0x3bc 0x000 0x12 0x000 498#define MX25_PAD_KPP_COL3__AUD5_TXFS 0x1c4 0x3bc 0x000 0x02 0x000
490#define MX25_PAD_KPP_COL3__GPIO_3_4 0x1c4 0x3bc 0x000 0x15 0x000 499#define MX25_PAD_KPP_COL3__GPIO_3_4 0x1c4 0x3bc 0x000 0x05 0x000
491 500
492#define MX25_PAD_FEC_MDC__FEC_MDC 0x1c8 0x3c0 0x000 0x10 0x000 501#define MX25_PAD_FEC_MDC__FEC_MDC 0x1c8 0x3c0 0x000 0x00 0x000
493#define MX25_PAD_FEC_MDC__AUD4_TXD 0x1c8 0x3c0 0x464 0x12 0x001 502#define MX25_PAD_FEC_MDC__AUD4_TXD 0x1c8 0x3c0 0x464 0x02 0x001
494#define MX25_PAD_FEC_MDC__GPIO_3_5 0x1c8 0x3c0 0x000 0x15 0x000 503#define MX25_PAD_FEC_MDC__GPIO_3_5 0x1c8 0x3c0 0x000 0x05 0x000
495 504
496#define MX25_PAD_FEC_MDIO__FEC_MDIO 0x1cc 0x3c4 0x000 0x10 0x000 505#define MX25_PAD_FEC_MDIO__FEC_MDIO 0x1cc 0x3c4 0x000 0x00 0x000
497#define MX25_PAD_FEC_MDIO__AUD4_RXD 0x1cc 0x3c4 0x460 0x12 0x001 506#define MX25_PAD_FEC_MDIO__AUD4_RXD 0x1cc 0x3c4 0x460 0x02 0x001
498#define MX25_PAD_FEC_MDIO__GPIO_3_6 0x1cc 0x3c4 0x000 0x15 0x000 507#define MX25_PAD_FEC_MDIO__GPIO_3_6 0x1cc 0x3c4 0x000 0x05 0x000
499 508
500#define MX25_PAD_FEC_TDATA0__FEC_TDATA0 0x1d0 0x3c8 0x000 0x10 0x000 509#define MX25_PAD_FEC_TDATA0__FEC_TDATA0 0x1d0 0x3c8 0x000 0x00 0x000
501#define MX25_PAD_FEC_TDATA0__GPIO_3_7 0x1d0 0x3c8 0x000 0x15 0x000 510#define MX25_PAD_FEC_TDATA0__GPIO_3_7 0x1d0 0x3c8 0x000 0x05 0x000
502 511
503#define MX25_PAD_FEC_TDATA1__FEC_TDATA1 0x1d4 0x3cc 0x000 0x10 0x000 512#define MX25_PAD_FEC_TDATA1__FEC_TDATA1 0x1d4 0x3cc 0x000 0x00 0x000
504#define MX25_PAD_FEC_TDATA1__AUD4_TXFS 0x1d4 0x3cc 0x474 0x12 0x001 513#define MX25_PAD_FEC_TDATA1__AUD4_TXFS 0x1d4 0x3cc 0x474 0x02 0x001
505#define MX25_PAD_FEC_TDATA1__GPIO_3_8 0x1d4 0x3cc 0x000 0x15 0x000 514#define MX25_PAD_FEC_TDATA1__GPIO_3_8 0x1d4 0x3cc 0x000 0x05 0x000
506 515
507#define MX25_PAD_FEC_TX_EN__FEC_TX_EN 0x1d8 0x3d0 0x000 0x10 0x000 516#define MX25_PAD_FEC_TX_EN__FEC_TX_EN 0x1d8 0x3d0 0x000 0x00 0x000
508#define MX25_PAD_FEC_TX_EN__GPIO_3_9 0x1d8 0x3d0 0x000 0x15 0x000 517#define MX25_PAD_FEC_TX_EN__GPIO_3_9 0x1d8 0x3d0 0x000 0x05 0x000
509 518
510#define MX25_PAD_FEC_RDATA0__FEC_RDATA0 0x1dc 0x3d4 0x000 0x10 0x000 519#define MX25_PAD_FEC_RDATA0__FEC_RDATA0 0x1dc 0x3d4 0x000 0x00 0x000
511#define MX25_PAD_FEC_RDATA0__GPIO_3_10 0x1dc 0x3d4 0x000 0x15 0x000 520#define MX25_PAD_FEC_RDATA0__GPIO_3_10 0x1dc 0x3d4 0x000 0x05 0x000
512 521
513#define MX25_PAD_FEC_RDATA1__FEC_RDATA1 0x1e0 0x3d8 0x000 0x10 0x000 522#define MX25_PAD_FEC_RDATA1__FEC_RDATA1 0x1e0 0x3d8 0x000 0x00 0x000
514/* 523/*
515 * According to the i.MX25 Reference manual (IMX25RM, Rev. 2, 524 * According to the i.MX25 Reference manual (IMX25RM, Rev. 2,
516 * 01/2011) this is CAN1_TX but that's wrong. 525 * 01/2011) this is CAN1_TX but that's wrong.
517 */ 526 */
518#define MX25_PAD_FEC_RDATA1__CAN2_TX 0x1e0 0x3d8 0x000 0x14 0x000 527#define MX25_PAD_FEC_RDATA1__CAN2_TX 0x1e0 0x3d8 0x000 0x04 0x000
519#define MX25_PAD_FEC_RDATA1__GPIO_3_11 0x1e0 0x3d8 0x000 0x15 0x000 528#define MX25_PAD_FEC_RDATA1__GPIO_3_11 0x1e0 0x3d8 0x000 0x05 0x000
520 529
521#define MX25_PAD_FEC_RX_DV__FEC_RX_DV 0x1e4 0x3dc 0x000 0x10 0x000 530#define MX25_PAD_FEC_RX_DV__FEC_RX_DV 0x1e4 0x3dc 0x000 0x00 0x000
522/* 531/*
523 * According to the i.MX25 Reference manual (IMX25RM, Rev. 2, 532 * According to the i.MX25 Reference manual (IMX25RM, Rev. 2,
524 * 01/2011) this is CAN1_RX but that's wrong. 533 * 01/2011) this is CAN1_RX but that's wrong.
525 */ 534 */
526#define MX25_PAD_FEC_RX_DV__CAN2_RX 0x1e4 0x3dc 0x484 0x14 0x000 535#define MX25_PAD_FEC_RX_DV__CAN2_RX 0x1e4 0x3dc 0x484 0x04 0x000
527#define MX25_PAD_FEC_RX_DV__GPIO_3_12 0x1e4 0x3dc 0x000 0x15 0x000 536#define MX25_PAD_FEC_RX_DV__GPIO_3_12 0x1e4 0x3dc 0x000 0x05 0x000
528 537
529#define MX25_PAD_FEC_TX_CLK__FEC_TX_CLK 0x1e8 0x3e0 0x000 0x10 0x000 538#define MX25_PAD_FEC_TX_CLK__FEC_TX_CLK 0x1e8 0x3e0 0x000 0x00 0x000
530#define MX25_PAD_FEC_TX_CLK__GPIO_3_13 0x1e8 0x3e0 0x000 0x15 0x000 539#define MX25_PAD_FEC_TX_CLK__GPIO_3_13 0x1e8 0x3e0 0x000 0x05 0x000
531 540
532#define MX25_PAD_RTCK__RTCK 0x1ec 0x3e4 0x000 0x10 0x000 541#define MX25_PAD_RTCK__RTCK 0x1ec 0x3e4 0x000 0x00 0x000
533#define MX25_PAD_RTCK__OWIRE 0x1ec 0x3e4 0x000 0x11 0x000 542#define MX25_PAD_RTCK__OWIRE 0x1ec 0x3e4 0x000 0x01 0x000
534#define MX25_PAD_RTCK__GPIO_3_14 0x1ec 0x3e4 0x000 0x15 0x000 543#define MX25_PAD_RTCK__GPIO_3_14 0x1ec 0x3e4 0x000 0x05 0x000
535 544
536#define MX25_PAD_DE_B__DE_B 0x1f0 0x3ec 0x000 0x10 0x000 545#define MX25_PAD_DE_B__DE_B 0x1f0 0x3ec 0x000 0x00 0x000
537#define MX25_PAD_DE_B__GPIO_2_20 0x1f0 0x3ec 0x000 0x15 0x000 546#define MX25_PAD_DE_B__GPIO_2_20 0x1f0 0x3ec 0x000 0x05 0x000
538 547
539#define MX25_PAD_GPIO_A__GPIO_A 0x1f4 0x3f0 0x000 0x10 0x000 548#define MX25_PAD_GPIO_A__GPIO_A 0x1f4 0x3f0 0x000 0x00 0x000
540#define MX25_PAD_GPIO_A__CAN1_TX 0x1f4 0x3f0 0x000 0x16 0x000 549#define MX25_PAD_GPIO_A__CAN1_TX 0x1f4 0x3f0 0x000 0x06 0x000
541#define MX25_PAD_GPIO_A__USBOTG_PWR 0x1f4 0x3f0 0x000 0x12 0x000 550#define MX25_PAD_GPIO_A__USBOTG_PWR 0x1f4 0x3f0 0x000 0x02 0x000
542 551
543#define MX25_PAD_GPIO_B__GPIO_B 0x1f8 0x3f4 0x000 0x10 0x000 552#define MX25_PAD_GPIO_B__GPIO_B 0x1f8 0x3f4 0x000 0x00 0x000
544#define MX25_PAD_GPIO_B__USBOTG_OC 0x1f8 0x3f4 0x57c 0x12 0x001 553#define MX25_PAD_GPIO_B__USBOTG_OC 0x1f8 0x3f4 0x57c 0x02 0x001
545#define MX25_PAD_GPIO_B__CAN1_RX 0x1f8 0x3f4 0x480 0x16 0x001 554#define MX25_PAD_GPIO_B__CAN1_RX 0x1f8 0x3f4 0x480 0x06 0x001
546 555
547#define MX25_PAD_GPIO_C__GPIO_C 0x1fc 0x3f8 0x000 0x10 0x000 556#define MX25_PAD_GPIO_C__GPIO_C 0x1fc 0x3f8 0x000 0x00 0x000
548#define MX25_PAD_GPIO_C__PWM4_PWMO 0x1fc 0x3f8 0x000 0x11 0x000 557#define MX25_PAD_GPIO_C__PWM4_PWMO 0x1fc 0x3f8 0x000 0x01 0x000
549#define MX25_PAD_GPIO_C__I2C2_SCL 0x1fc 0x3f8 0x51c 0x12 0x001 558#define MX25_PAD_GPIO_C__I2C2_SCL 0x1fc 0x3f8 0x51c 0x02 0x001
550#define MX25_PAD_GPIO_C__KPP_COL4 0x1fc 0x3f8 0x52c 0x13 0x001 559#define MX25_PAD_GPIO_C__KPP_COL4 0x1fc 0x3f8 0x52c 0x03 0x001
551#define MX25_PAD_GPIO_C__CAN2_TX 0x1fc 0x3f8 0x000 0x16 0x000 560#define MX25_PAD_GPIO_C__CAN2_TX 0x1fc 0x3f8 0x000 0x06 0x000
552 561
553#define MX25_PAD_GPIO_D__GPIO_D 0x200 0x3fc 0x000 0x10 0x000 562#define MX25_PAD_GPIO_D__GPIO_D 0x200 0x3fc 0x000 0x00 0x000
554#define MX25_PAD_GPIO_D__I2C2_SDA 0x200 0x3fc 0x520 0x12 0x001 563#define MX25_PAD_GPIO_D__I2C2_SDA 0x200 0x3fc 0x520 0x02 0x001
555#define MX25_PAD_GPIO_D__CAN2_RX 0x200 0x3fc 0x484 0x16 0x001 564#define MX25_PAD_GPIO_D__CAN2_RX 0x200 0x3fc 0x484 0x06 0x001
556 565
557#define MX25_PAD_GPIO_E__GPIO_E 0x204 0x400 0x000 0x10 0x000 566#define MX25_PAD_GPIO_E__GPIO_E 0x204 0x400 0x000 0x00 0x000
558#define MX25_PAD_GPIO_E__I2C3_CLK 0x204 0x400 0x524 0x11 0x002 567#define MX25_PAD_GPIO_E__I2C3_CLK 0x204 0x400 0x524 0x01 0x002
559#define MX25_PAD_GPIO_E__LD16 0x204 0x400 0x000 0x12 0x000 568#define MX25_PAD_GPIO_E__LD16 0x204 0x400 0x000 0x02 0x000
560#define MX25_PAD_GPIO_E__AUD7_TXD 0x204 0x400 0x000 0x14 0x000 569#define MX25_PAD_GPIO_E__AUD7_TXD 0x204 0x400 0x000 0x04 0x000
561#define MX25_PAD_GPIO_E__UART4_RXD 0x204 0x400 0x570 0x16 0x002 570#define MX25_PAD_GPIO_E__UART4_RXD 0x204 0x400 0x570 0x06 0x002
562 571
563#define MX25_PAD_GPIO_F__GPIO_F 0x208 0x404 0x000 0x10 0x000 572#define MX25_PAD_GPIO_F__GPIO_F 0x208 0x404 0x000 0x00 0x000
564#define MX25_PAD_GPIO_F__LD17 0x208 0x404 0x000 0x12 0x000 573#define MX25_PAD_GPIO_F__LD17 0x208 0x404 0x000 0x02 0x000
565#define MX25_PAD_GPIO_F__AUD7_TXC 0x208 0x404 0x000 0x14 0x000 574#define MX25_PAD_GPIO_F__AUD7_TXC 0x208 0x404 0x000 0x04 0x000
566#define MX25_PAD_GPIO_F__UART4_TXD 0x208 0x404 0x000 0x16 0x000 575#define MX25_PAD_GPIO_F__UART4_TXD 0x208 0x404 0x000 0x06 0x000
567 576
568#define MX25_PAD_EXT_ARMCLK__EXT_ARMCLK 0x20c 0x000 0x000 0x10 0x000 577#define MX25_PAD_EXT_ARMCLK__EXT_ARMCLK 0x20c 0x000 0x000 0x00 0x000
569#define MX25_PAD_EXT_ARMCLK__GPIO_3_15 0x20c 0x000 0x000 0x15 0x000 578#define MX25_PAD_EXT_ARMCLK__GPIO_3_15 0x20c 0x000 0x000 0x05 0x000
570 579
571#define MX25_PAD_UPLL_BYPCLK__UPLL_BYPCLK 0x210 0x000 0x000 0x10 0x000 580#define MX25_PAD_UPLL_BYPCLK__UPLL_BYPCLK 0x210 0x000 0x000 0x00 0x000
572#define MX25_PAD_UPLL_BYPCLK__GPIO_3_16 0x210 0x000 0x000 0x15 0x000 581#define MX25_PAD_UPLL_BYPCLK__GPIO_3_16 0x210 0x000 0x000 0x05 0x000
573 582
574#define MX25_PAD_VSTBY_REQ__VSTBY_REQ 0x214 0x408 0x000 0x00 0x000 583#define MX25_PAD_VSTBY_REQ__VSTBY_REQ 0x214 0x408 0x000 0x00 0x000
575#define MX25_PAD_VSTBY_REQ__AUD7_TXFS 0x214 0x408 0x000 0x04 0x000 584#define MX25_PAD_VSTBY_REQ__AUD7_TXFS 0x214 0x408 0x000 0x04 0x000
576#define MX25_PAD_VSTBY_REQ__GPIO_3_17 0x214 0x408 0x000 0x05 0x000 585#define MX25_PAD_VSTBY_REQ__GPIO_3_17 0x214 0x408 0x000 0x05 0x000
577#define MX25_PAD_VSTBY_REQ__UART4_RTS 0x214 0x408 0x56c 0x06 0x002 586#define MX25_PAD_VSTBY_REQ__UART4_RTS 0x214 0x408 0x56c 0x06 0x002
578 587
579#define MX25_PAD_VSTBY_ACK__VSTBY_ACK 0x218 0x40c 0x000 0x10 0x000 588#define MX25_PAD_VSTBY_ACK__VSTBY_ACK 0x218 0x40c 0x000 0x00 0x000
580#define MX25_PAD_VSTBY_ACK__GPIO_3_18 0x218 0x40c 0x000 0x15 0x000 589#define MX25_PAD_VSTBY_ACK__GPIO_3_18 0x218 0x40c 0x000 0x05 0x000
581 590
582#define MX25_PAD_POWER_FAIL__POWER_FAIL 0x21c 0x410 0x000 0x10 0x000 591#define MX25_PAD_POWER_FAIL__POWER_FAIL 0x21c 0x410 0x000 0x00 0x000
583#define MX25_PAD_POWER_FAIL__AUD7_RXD 0x21c 0x410 0x478 0x14 0x001 592#define MX25_PAD_POWER_FAIL__AUD7_RXD 0x21c 0x410 0x478 0x04 0x001
584#define MX25_PAD_POWER_FAIL__GPIO_3_19 0x21c 0x410 0x000 0x15 0x000 593#define MX25_PAD_POWER_FAIL__GPIO_3_19 0x21c 0x410 0x000 0x05 0x000
585#define MX25_PAD_POWER_FAIL__UART4_CTS 0x21c 0x410 0x000 0x16 0x000 594#define MX25_PAD_POWER_FAIL__UART4_CTS 0x21c 0x410 0x000 0x06 0x000
586 595
587#define MX25_PAD_CLKO__CLKO 0x220 0x414 0x000 0x10 0x000 596#define MX25_PAD_CLKO__CLKO 0x220 0x414 0x000 0x00 0x000
588#define MX25_PAD_CLKO__GPIO_2_21 0x220 0x414 0x000 0x15 0x000 597#define MX25_PAD_CLKO__GPIO_2_21 0x220 0x414 0x000 0x05 0x000
589 598
590#define MX25_PAD_BOOT_MODE0__BOOT_MODE0 0x224 0x000 0x000 0x00 0x000 599#define MX25_PAD_BOOT_MODE0__BOOT_MODE0 0x224 0x000 0x000 0x00 0x000
591#define MX25_PAD_BOOT_MODE0__GPIO_4_30 0x224 0x000 0x000 0x05 0x000 600#define MX25_PAD_BOOT_MODE0__GPIO_4_30 0x224 0x000 0x000 0x05 0x000
diff --git a/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi b/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi
index e2242638ea0b..2cf896c505f9 100644
--- a/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi
+++ b/arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi
@@ -77,7 +77,7 @@
77&uart4 { 77&uart4 {
78 pinctrl-names = "default"; 78 pinctrl-names = "default";
79 pinctrl-0 = <&pinctrl_uart4>; 79 pinctrl-0 = <&pinctrl_uart4>;
80 fsl,uart-has-rtscts; 80 uart-has-rtscts;
81 status = "okay"; 81 status = "okay";
82}; 82};
83 83
diff --git a/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts b/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
index 2ab65fc4c1e1..27846ff9bb0d 100644
--- a/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
+++ b/arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts
@@ -140,21 +140,21 @@
140}; 140};
141 141
142&uart1 { 142&uart1 {
143 fsl,uart-has-rtscts; 143 uart-has-rtscts;
144 pinctrl-names = "default"; 144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_uart1>; 145 pinctrl-0 = <&pinctrl_uart1>;
146 status = "okay"; 146 status = "okay";
147}; 147};
148 148
149&uart2 { 149&uart2 {
150 fsl,uart-has-rtscts; 150 uart-has-rtscts;
151 pinctrl-names = "default"; 151 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_uart2>; 152 pinctrl-0 = <&pinctrl_uart2>;
153 status = "okay"; 153 status = "okay";
154}; 154};
155 155
156&uart3 { 156&uart3 {
157 fsl,uart-has-rtscts; 157 uart-has-rtscts;
158 pinctrl-names = "default"; 158 pinctrl-names = "default";
159 pinctrl-0 = <&pinctrl_uart3>; 159 pinctrl-0 = <&pinctrl_uart3>;
160 status = "okay"; 160 status = "okay";
diff --git a/arch/arm/boot/dts/imx27-pdk.dts b/arch/arm/boot/dts/imx27-pdk.dts
index 49450dbbcab8..d0ef496a1af8 100644
--- a/arch/arm/boot/dts/imx27-pdk.dts
+++ b/arch/arm/boot/dts/imx27-pdk.dts
@@ -106,7 +106,7 @@
106}; 106};
107 107
108&uart1 { 108&uart1 {
109 fsl,uart-has-rtscts; 109 uart-has-rtscts;
110 pinctrl-names = "default"; 110 pinctrl-names = "default";
111 pinctrl-0 = <&pinctrl_uart1>; 111 pinctrl-0 = <&pinctrl_uart1>;
112 status = "okay"; 112 status = "okay";
diff --git a/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts b/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
index 7c869fe3c30b..bfd4946cf9fe 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
+++ b/arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts
@@ -147,21 +147,21 @@
147}; 147};
148 148
149&uart1 { 149&uart1 {
150 fsl,uart-has-rtscts; 150 uart-has-rtscts;
151 pinctrl-names = "default"; 151 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_uart1>; 152 pinctrl-0 = <&pinctrl_uart1>;
153 status = "okay"; 153 status = "okay";
154}; 154};
155 155
156&uart2 { 156&uart2 {
157 fsl,uart-has-rtscts; 157 uart-has-rtscts;
158 pinctrl-names = "default"; 158 pinctrl-names = "default";
159 pinctrl-0 = <&pinctrl_uart2>; 159 pinctrl-0 = <&pinctrl_uart2>;
160 status = "okay"; 160 status = "okay";
161}; 161};
162 162
163&uart3 { 163&uart3 {
164 fsl,uart-has-rtscts; 164 uart-has-rtscts;
165 pinctrl-names = "default"; 165 pinctrl-names = "default";
166 pinctrl-0 = <&pinctrl_uart3>; 166 pinctrl-0 = <&pinctrl_uart3>;
167 status = "okay"; 167 status = "okay";
diff --git a/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts b/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
index 538568b0de26..cf09e72aeb06 100644
--- a/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
+++ b/arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts
@@ -283,14 +283,14 @@
283}; 283};
284 284
285&uart1 { 285&uart1 {
286 fsl,uart-has-rtscts; 286 uart-has-rtscts;
287 pinctrl-names = "default"; 287 pinctrl-names = "default";
288 pinctrl-0 = <&pinctrl_uart1>; 288 pinctrl-0 = <&pinctrl_uart1>;
289 status = "okay"; 289 status = "okay";
290}; 290};
291 291
292&uart2 { 292&uart2 {
293 fsl,uart-has-rtscts; 293 uart-has-rtscts;
294 pinctrl-names = "default"; 294 pinctrl-names = "default";
295 pinctrl-0 = <&pinctrl_uart2>; 295 pinctrl-0 = <&pinctrl_uart2>;
296 status = "okay"; 296 status = "okay";
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts
index 1eaa131e2d18..c4fadbc1b400 100644
--- a/arch/arm/boot/dts/imx28-apf28dev.dts
+++ b/arch/arm/boot/dts/imx28-apf28dev.dts
@@ -140,7 +140,7 @@
140 auart0: serial@8006a000 { 140 auart0: serial@8006a000 {
141 pinctrl-names = "default"; 141 pinctrl-names = "default";
142 pinctrl-0 = <&auart0_pins_a>; 142 pinctrl-0 = <&auart0_pins_a>;
143 fsl,uart-has-rtscts; 143 uart-has-rtscts;
144 status = "okay"; 144 status = "okay";
145 }; 145 };
146 146
diff --git a/arch/arm/boot/dts/imx28-cfa10049.dts b/arch/arm/boot/dts/imx28-cfa10049.dts
index ef944b6d4f01..a9c347e48bcf 100644
--- a/arch/arm/boot/dts/imx28-cfa10049.dts
+++ b/arch/arm/boot/dts/imx28-cfa10049.dts
@@ -426,7 +426,7 @@
426 426
427 }; 427 };
428 428
429 onewire@0 { 429 onewire {
430 compatible = "w1-gpio"; 430 compatible = "w1-gpio";
431 pinctrl-names = "default"; 431 pinctrl-names = "default";
432 pinctrl-0 = <&w1_gpio_pins>; 432 pinctrl-0 = <&w1_gpio_pins>;
diff --git a/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi b/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
index 88594747f454..581e85f4fd4c 100644
--- a/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
+++ b/arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi
@@ -84,6 +84,7 @@
84 84
85 reg_3p3v: regulator@0 { 85 reg_3p3v: regulator@0 {
86 compatible = "regulator-fixed"; 86 compatible = "regulator-fixed";
87 reg = <0>;
87 regulator-name = "3P3V"; 88 regulator-name = "3P3V";
88 regulator-min-microvolt = <3300000>; 89 regulator-min-microvolt = <3300000>;
89 regulator-max-microvolt = <3300000>; 90 regulator-max-microvolt = <3300000>;
@@ -92,6 +93,7 @@
92 93
93 reg_lcd_3v3: regulator@1 { 94 reg_lcd_3v3: regulator@1 {
94 compatible = "regulator-fixed"; 95 compatible = "regulator-fixed";
96 reg = <1>;
95 pinctrl-names = "default"; 97 pinctrl-names = "default";
96 pinctrl-0 = <&reg_lcd_3v3_pins_mbmx28lc>; 98 pinctrl-0 = <&reg_lcd_3v3_pins_mbmx28lc>;
97 regulator-name = "lcd-3v3"; 99 regulator-name = "lcd-3v3";
@@ -103,6 +105,7 @@
103 105
104 reg_usb0_vbus: regulator@2 { 106 reg_usb0_vbus: regulator@2 {
105 compatible = "regulator-fixed"; 107 compatible = "regulator-fixed";
108 reg = <2>;
106 pinctrl-names = "default"; 109 pinctrl-names = "default";
107 pinctrl-0 = <&reg_usb0_vbus_pins_mbmx28lc>; 110 pinctrl-0 = <&reg_usb0_vbus_pins_mbmx28lc>;
108 regulator-name = "usb0_vbus"; 111 regulator-name = "usb0_vbus";
@@ -114,6 +117,7 @@
114 117
115 reg_usb1_vbus: regulator@3 { 118 reg_usb1_vbus: regulator@3 {
116 compatible = "regulator-fixed"; 119 compatible = "regulator-fixed";
120 reg = <3>;
117 pinctrl-names = "default"; 121 pinctrl-names = "default";
118 pinctrl-0 = <&reg_usb1_vbus_pins_mbmx28lc>; 122 pinctrl-0 = <&reg_usb1_vbus_pins_mbmx28lc>;
119 regulator-name = "usb1_vbus"; 123 regulator-name = "usb1_vbus";
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index e3ef94ac159f..a5ba669b4eaa 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -224,7 +224,7 @@
224 auart0: serial@8006a000 { 224 auart0: serial@8006a000 {
225 pinctrl-names = "default"; 225 pinctrl-names = "default";
226 pinctrl-0 = <&auart0_pins_a>; 226 pinctrl-0 = <&auart0_pins_a>;
227 fsl,uart-has-rtscts; 227 uart-has-rtscts;
228 status = "okay"; 228 status = "okay";
229 }; 229 };
230 230
diff --git a/arch/arm/boot/dts/imx28-tx28.dts b/arch/arm/boot/dts/imx28-tx28.dts
index fd20e99c777e..0ebbc83852d0 100644
--- a/arch/arm/boot/dts/imx28-tx28.dts
+++ b/arch/arm/boot/dts/imx28-tx28.dts
@@ -173,7 +173,7 @@
173 default-brightness-level = <50>; 173 default-brightness-level = <50>;
174 }; 174 };
175 175
176 matrix_keypad: matrix-keypad@0 { 176 matrix_keypad: matrix-keypad {
177 compatible = "gpio-matrix-keypad"; 177 compatible = "gpio-matrix-keypad";
178 col-gpios = < 178 col-gpios = <
179 &gpio5 0 GPIO_ACTIVE_HIGH 179 &gpio5 0 GPIO_ACTIVE_HIGH
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 74aa151cdb45..0ad893bf5f43 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -165,6 +165,7 @@
165 165
166 gpio0: gpio@0 { 166 gpio0: gpio@0 {
167 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio"; 167 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
168 reg = <0>;
168 interrupts = <127>; 169 interrupts = <127>;
169 gpio-controller; 170 gpio-controller;
170 #gpio-cells = <2>; 171 #gpio-cells = <2>;
@@ -174,6 +175,7 @@
174 175
175 gpio1: gpio@1 { 176 gpio1: gpio@1 {
176 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio"; 177 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
178 reg = <1>;
177 interrupts = <126>; 179 interrupts = <126>;
178 gpio-controller; 180 gpio-controller;
179 #gpio-cells = <2>; 181 #gpio-cells = <2>;
@@ -183,6 +185,7 @@
183 185
184 gpio2: gpio@2 { 186 gpio2: gpio@2 {
185 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio"; 187 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
188 reg = <2>;
186 interrupts = <125>; 189 interrupts = <125>;
187 gpio-controller; 190 gpio-controller;
188 #gpio-cells = <2>; 191 #gpio-cells = <2>;
@@ -192,6 +195,7 @@
192 195
193 gpio3: gpio@3 { 196 gpio3: gpio@3 {
194 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio"; 197 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
198 reg = <3>;
195 interrupts = <124>; 199 interrupts = <124>;
196 gpio-controller; 200 gpio-controller;
197 #gpio-cells = <2>; 201 #gpio-cells = <2>;
@@ -201,6 +205,7 @@
201 205
202 gpio4: gpio@4 { 206 gpio4: gpio@4 {
203 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio"; 207 compatible = "fsl,imx28-gpio", "fsl,mxs-gpio";
208 reg = <4>;
204 interrupts = <123>; 209 interrupts = <123>;
205 gpio-controller; 210 gpio-controller;
206 #gpio-cells = <2>; 211 #gpio-cells = <2>;
diff --git a/arch/arm/boot/dts/imx31-bug.dts b/arch/arm/boot/dts/imx31-bug.dts
index 2424abfc9c7b..ae6cebbed84b 100644
--- a/arch/arm/boot/dts/imx31-bug.dts
+++ b/arch/arm/boot/dts/imx31-bug.dts
@@ -22,6 +22,6 @@
22}; 22};
23 23
24&uart5 { 24&uart5 {
25 fsl,uart-has-rtscts; 25 uart-has-rtscts;
26 status = "okay"; 26 status = "okay";
27}; 27};
diff --git a/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts b/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
index 4727bbb804e1..e9357131b026 100644
--- a/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
+++ b/arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts
@@ -139,14 +139,14 @@
139&uart1 { 139&uart1 {
140 pinctrl-names = "default"; 140 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_uart1>; 141 pinctrl-0 = <&pinctrl_uart1>;
142 fsl,uart-has-rtscts; 142 uart-has-rtscts;
143 status = "okay"; 143 status = "okay";
144}; 144};
145 145
146&uart2 { 146&uart2 {
147 pinctrl-names = "default"; 147 pinctrl-names = "default";
148 pinctrl-0 = <&pinctrl_uart2>; 148 pinctrl-0 = <&pinctrl_uart2>;
149 fsl,uart-has-rtscts; 149 uart-has-rtscts;
150 status = "okay"; 150 status = "okay";
151}; 151};
152 152
diff --git a/arch/arm/boot/dts/imx35-pdk.dts b/arch/arm/boot/dts/imx35-pdk.dts
index 8d715523708f..9bb628f22502 100644
--- a/arch/arm/boot/dts/imx35-pdk.dts
+++ b/arch/arm/boot/dts/imx35-pdk.dts
@@ -63,6 +63,6 @@
63&uart1 { 63&uart1 {
64 pinctrl-names = "default"; 64 pinctrl-names = "default";
65 pinctrl-0 = <&pinctrl_uart1>; 65 pinctrl-0 = <&pinctrl_uart1>;
66 fsl,uart-has-rtscts; 66 uart-has-rtscts;
67 status = "okay"; 67 status = "okay";
68}; 68};
diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts
index 018d24eb9965..f097b4f29ab4 100644
--- a/arch/arm/boot/dts/imx51-babbage.dts
+++ b/arch/arm/boot/dts/imx51-babbage.dts
@@ -388,7 +388,7 @@
388&uart1 { 388&uart1 {
389 pinctrl-names = "default"; 389 pinctrl-names = "default";
390 pinctrl-0 = <&pinctrl_uart1>; 390 pinctrl-0 = <&pinctrl_uart1>;
391 fsl,uart-has-rtscts; 391 uart-has-rtscts;
392 status = "okay"; 392 status = "okay";
393}; 393};
394 394
@@ -401,7 +401,7 @@
401&uart3 { 401&uart3 {
402 pinctrl-names = "default"; 402 pinctrl-names = "default";
403 pinctrl-0 = <&pinctrl_uart3>; 403 pinctrl-0 = <&pinctrl_uart3>;
404 fsl,uart-has-rtscts; 404 uart-has-rtscts;
405 status = "okay"; 405 status = "okay";
406}; 406};
407 407
diff --git a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
index d270df3e5891..728212861ece 100644
--- a/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
+++ b/arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts
@@ -261,14 +261,14 @@
261&uart1 { 261&uart1 {
262 pinctrl-names = "default"; 262 pinctrl-names = "default";
263 pinctrl-0 = <&pinctrl_uart1>; 263 pinctrl-0 = <&pinctrl_uart1>;
264 fsl,uart-has-rtscts; 264 uart-has-rtscts;
265 status = "okay"; 265 status = "okay";
266}; 266};
267 267
268&uart3 { 268&uart3 {
269 pinctrl-names = "default"; 269 pinctrl-names = "default";
270 pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>; 270 pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>;
271 fsl,uart-has-rtscts; 271 uart-has-rtscts;
272 status = "okay"; 272 status = "okay";
273}; 273};
274 274
diff --git a/arch/arm/boot/dts/imx51-ts4800.dts b/arch/arm/boot/dts/imx51-ts4800.dts
index 30f44b5565b9..ca1cc5eca80f 100644
--- a/arch/arm/boot/dts/imx51-ts4800.dts
+++ b/arch/arm/boot/dts/imx51-ts4800.dts
@@ -165,6 +165,27 @@
165 reg = <0x12000 0x1000>; 165 reg = <0x12000 0x1000>;
166 syscon = <&syscon 0x10 6>; 166 syscon = <&syscon 0x10 6>;
167 }; 167 };
168
169 fpga_irqc: fpga-irqc@15000 {
170 compatible = "technologic,ts4800-irqc";
171 reg = <0x15000 0x1000>;
172 pinctrl-names = "default";
173 pinctrl-0 = <&pinctrl_interrupt_fpga>;
174 interrupt-parent = <&gpio2>;
175 interrupts= <9 IRQ_TYPE_LEVEL_HIGH>;
176 interrupt-controller;
177 #interrupt-cells = <1>;
178 };
179
180 can@1a000 {
181 compatible = "technologic,sja1000";
182 reg = <0x1a000 0x100>;
183 interrupt-parent = <&fpga_irqc>;
184 interrupts = <1>;
185 reg-io-width = <2>;
186 nxp,tx-output-config = <0x06>;
187 nxp,external-clock-frequency = <24000000>;
188 };
168 }; 189 };
169}; 190};
170 191
@@ -228,6 +249,12 @@
228 >; 249 >;
229 }; 250 };
230 251
252 pinctrl_interrupt_fpga: fpgaicgrp {
253 fsl,pins = <
254 MX51_PAD_EIM_D27__GPIO2_9 0xe5
255 >;
256 };
257
231 pinctrl_lcd: lcdgrp { 258 pinctrl_lcd: lcdgrp {
232 fsl,pins = < 259 fsl,pins = <
233 MX51_PAD_DISP1_DAT0__DISP1_DAT0 0x5 260 MX51_PAD_DISP1_DAT0__DISP1_DAT0 0x5
diff --git a/arch/arm/boot/dts/imx53-smd.dts b/arch/arm/boot/dts/imx53-smd.dts
index 542ab9e697fb..9f5190040555 100644
--- a/arch/arm/boot/dts/imx53-smd.dts
+++ b/arch/arm/boot/dts/imx53-smd.dts
@@ -56,7 +56,7 @@
56&uart3 { 56&uart3 {
57 pinctrl-names = "default"; 57 pinctrl-names = "default";
58 pinctrl-0 = <&pinctrl_uart3>; 58 pinctrl-0 = <&pinctrl_uart3>;
59 fsl,uart-has-rtscts; 59 uart-has-rtscts;
60 status = "okay"; 60 status = "okay";
61}; 61};
62 62
diff --git a/arch/arm/boot/dts/imx53-tqma53.dtsi b/arch/arm/boot/dts/imx53-tqma53.dtsi
index e03373a58760..91a6a9ff50d7 100644
--- a/arch/arm/boot/dts/imx53-tqma53.dtsi
+++ b/arch/arm/boot/dts/imx53-tqma53.dtsi
@@ -218,7 +218,7 @@
218&uart1 { 218&uart1 {
219 pinctrl-names = "default"; 219 pinctrl-names = "default";
220 pinctrl-0 = <&pinctrl_uart1>; 220 pinctrl-0 = <&pinctrl_uart1>;
221 fsl,uart-has-rtscts; 221 uart-has-rtscts;
222 status = "disabled"; 222 status = "disabled";
223}; 223};
224 224
diff --git a/arch/arm/boot/dts/imx53-tx53.dtsi b/arch/arm/boot/dts/imx53-tx53.dtsi
index bd3dfefa5778..57e75f1639e0 100644
--- a/arch/arm/boot/dts/imx53-tx53.dtsi
+++ b/arch/arm/boot/dts/imx53-tx53.dtsi
@@ -513,21 +513,21 @@
513&uart1 { 513&uart1 {
514 pinctrl-names = "default"; 514 pinctrl-names = "default";
515 pinctrl-0 = <&pinctrl_uart1>; 515 pinctrl-0 = <&pinctrl_uart1>;
516 fsl,uart-has-rtscts; 516 uart-has-rtscts;
517 status = "okay"; 517 status = "okay";
518}; 518};
519 519
520&uart2 { 520&uart2 {
521 pinctrl-names = "default"; 521 pinctrl-names = "default";
522 pinctrl-0 = <&pinctrl_uart2>; 522 pinctrl-0 = <&pinctrl_uart2>;
523 fsl,uart-has-rtscts; 523 uart-has-rtscts;
524 status = "okay"; 524 status = "okay";
525}; 525};
526 526
527&uart3 { 527&uart3 {
528 pinctrl-names = "default"; 528 pinctrl-names = "default";
529 pinctrl-0 = <&pinctrl_uart3>; 529 pinctrl-0 = <&pinctrl_uart3>;
530 fsl,uart-has-rtscts; 530 uart-has-rtscts;
531 status = "okay"; 531 status = "okay";
532}; 532};
533 533
diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts
index bfbed52ce1bd..2becd7cd6544 100644
--- a/arch/arm/boot/dts/imx6dl-riotboard.dts
+++ b/arch/arm/boot/dts/imx6dl-riotboard.dts
@@ -97,6 +97,7 @@
97 phy-reset-gpios = <&gpio3 31 0>; 97 phy-reset-gpios = <&gpio3 31 0>;
98 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 98 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
99 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 99 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
100 fsl,err006687-workaround-present;
100 status = "okay"; 101 status = "okay";
101}; 102};
102 103
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora.dts b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
index 8e67ca27ad79..207b85b91ada 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
@@ -93,7 +93,7 @@
93 reg = <0>; 93 reg = <0>;
94 94
95 lcd_display_in: endpoint { 95 lcd_display_in: endpoint {
96 remote-endpoint = <&ipu1_di0_disp1>; 96 remote-endpoint = <&ipu1_di1_disp1>;
97 }; 97 };
98 }; 98 };
99 99
@@ -210,7 +210,7 @@
210 }; 210 };
211}; 211};
212 212
213&ipu1_di0_disp1 { 213&ipu1_di1_disp1 {
214 remote-endpoint = <&lcd_display_in>; 214 remote-endpoint = <&lcd_display_in>;
215}; 215};
216 216
diff --git a/arch/arm/boot/dts/imx6q-arm2.dts b/arch/arm/boot/dts/imx6q-arm2.dts
index d6515f7a56c4..d8acf15611e4 100644
--- a/arch/arm/boot/dts/imx6q-arm2.dts
+++ b/arch/arm/boot/dts/imx6q-arm2.dts
@@ -185,6 +185,7 @@
185 phy-mode = "rgmii"; 185 phy-mode = "rgmii";
186 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 186 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
187 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 187 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
188 fsl,err006687-workaround-present;
188 status = "okay"; 189 status = "okay";
189}; 190};
190 191
@@ -218,7 +219,7 @@
218 pinctrl-names = "default"; 219 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_uart2>; 220 pinctrl-0 = <&pinctrl_uart2>;
220 fsl,dte-mode; 221 fsl,dte-mode;
221 fsl,uart-has-rtscts; 222 uart-has-rtscts;
222 status = "okay"; 223 status = "okay";
223}; 224};
224 225
diff --git a/arch/arm/boot/dts/imx6q-ba16.dtsi b/arch/arm/boot/dts/imx6q-ba16.dtsi
index f7e17e2004ac..f2adc60723da 100644
--- a/arch/arm/boot/dts/imx6q-ba16.dtsi
+++ b/arch/arm/boot/dts/imx6q-ba16.dtsi
@@ -351,7 +351,7 @@
351&uart3 { 351&uart3 {
352 pinctrl-names = "default"; 352 pinctrl-names = "default";
353 pinctrl-0 = <&pinctrl_uart3>; 353 pinctrl-0 = <&pinctrl_uart3>;
354 fsl,uart-has-rtscts; 354 uart-has-rtscts;
355 status = "okay"; 355 status = "okay";
356}; 356};
357 357
diff --git a/arch/arm/boot/dts/imx6q-bx50v3.dtsi b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
index bb66dfd5294c..cf3fd31e3406 100644
--- a/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -52,6 +52,12 @@
52 }; 52 };
53 }; 53 };
54 54
55 gpio-poweroff {
56 compatible = "gpio-poweroff";
57 gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
58 status = "okay";
59 };
60
55 reg_wl18xx_vmmc: regulator-wl18xx { 61 reg_wl18xx_vmmc: regulator-wl18xx {
56 compatible = "regulator-fixed"; 62 compatible = "regulator-fixed";
57 regulator-name = "vwl1807"; 63 regulator-name = "vwl1807";
diff --git a/arch/arm/boot/dts/imx6q-cm-fx6.dts b/arch/arm/boot/dts/imx6q-cm-fx6.dts
index 99b46f8030ad..b5de7e620905 100644
--- a/arch/arm/boot/dts/imx6q-cm-fx6.dts
+++ b/arch/arm/boot/dts/imx6q-cm-fx6.dts
@@ -3,15 +3,46 @@
3 * 3 *
4 * Author: Valentin Raevsky <valentin@compulab.co.il> 4 * Author: Valentin Raevsky <valentin@compulab.co.il>
5 * 5 *
6 * The code contained herein is licensed under the GNU General Public 6 * This file is dual-licensed: you can use it either under the terms
7 * License. You may obtain a copy of the GNU General Public License 7 * of the GPL or the X11 license, at your option. Note that this dual
8 * Version 2 or later at the following locations: 8 * licensing only applies to this file, and not this project as a
9 * whole.
9 * 10 *
10 * http://www.opensource.org/licenses/gpl-license.html 11 * a) This file is free software; you can redistribute it and/or
11 * http://www.gnu.org/copyleft/gpl.html 12 * modify it under the terms of the GNU General Public License
13 * version 2 as published by the Free Software Foundation.
14 *
15 * This file is distributed in the hope that it will be useful
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
12 */ 42 */
13 43
14/dts-v1/; 44/dts-v1/;
45#include <dt-bindings/gpio/gpio.h>
15#include "imx6q.dtsi" 46#include "imx6q.dtsi"
16 47
17/ { 48/ {
@@ -31,6 +62,71 @@
31 linux,default-trigger = "heartbeat"; 62 linux,default-trigger = "heartbeat";
32 }; 63 };
33 }; 64 };
65
66 reg_pcie_power_on_gpio: regulator-pcie-power-on-gpio {
67 compatible = "regulator-fixed";
68 regulator-name = "regulator-pcie-power-on-gpio";
69 regulator-min-microvolt = <3300000>;
70 regulator-max-microvolt = <3300000>;
71 gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
72 enable-active-high;
73 };
74
75 reg_usb_h1_vbus: usb_h1_vbus {
76 compatible = "regulator-fixed";
77 regulator-name = "usb_h1_vbus";
78 regulator-min-microvolt = <5000000>;
79 regulator-max-microvolt = <5000000>;
80 gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
81 enable-active-high;
82 };
83
84 reg_usb_otg_vbus: usb_otg_vbus {
85 compatible = "regulator-fixed";
86 regulator-name = "usb_otg_vbus";
87 regulator-min-microvolt = <5000000>;
88 regulator-max-microvolt = <5000000>;
89 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
90 enable-active-high;
91 };
92};
93
94&cpu0 {
95 /*
96 * Although the imx6q fuse indicates that 1.2GHz operation is possible,
97 * the module behaves unstable at this frequency. Hence, remove the
98 * 1.2GHz operation point here.
99 */
100 operating-points = <
101 /* kHz uV */
102 996000 1250000
103 852000 1250000
104 792000 1175000
105 396000 975000
106 >;
107 fsl,soc-operating-points = <
108 /* ARM kHz SOC-PU uV */
109 996000 1250000
110 852000 1250000
111 792000 1175000
112 396000 1175000
113 >;
114};
115
116&ecspi1 {
117 fsl,spi-num-chipselects = <2>;
118 cs-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>, <&gpio3 19 GPIO_ACTIVE_HIGH>;
119 pinctrl-names = "default";
120 pinctrl-0 = <&pinctrl_ecspi1>;
121 status = "okay";
122
123 m25p80@0 {
124 #address-cells = <1>;
125 #size-cells = <1>;
126 compatible = "st,m25p", "jedec,spi-nor";
127 spi-max-frequency = <20000000>;
128 reg = <0>;
129 };
34}; 130};
35 131
36&fec { 132&fec {
@@ -46,58 +142,122 @@
46 status = "okay"; 142 status = "okay";
47}; 143};
48 144
145&i2c3 {
146 pinctrl-names = "default";
147 pinctrl-0 = <&pinctrl_i2c3>;
148 status = "okay";
149 clock-frequency = <100000>;
150
151 eeprom@50 {
152 compatible = "at24,24c02";
153 reg = <0x50>;
154 pagesize = <16>;
155 };
156};
157
49&iomuxc { 158&iomuxc {
50 imx6q-cm-fx6 { 159 pinctrl_ecspi1: ecspi1grp {
51 pinctrl_enet: enetgrp { 160 fsl,pins = <
52 fsl,pins = < 161 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
53 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0 162 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
54 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0 163 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
55 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0 164 MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x100b1
56 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0 165 MX6QDL_PAD_EIM_D19__GPIO3_IO19 0x100b1
57 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0 166 >;
58 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0 167 };
59 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
60 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
61 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
62 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
63 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
64 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
65 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
66 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
67 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
68 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
69 >;
70 };
71 168
72 pinctrl_gpmi_nand: gpminandgrp { 169 pinctrl_enet: enetgrp {
73 fsl,pins = < 170 fsl,pins = <
74 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 171 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
75 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 172 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
76 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1 173 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
77 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000 174 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
78 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1 175 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
79 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1 176 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
80 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1 177 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b0b0
81 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1 178 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
82 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1 179 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
83 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1 180 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
84 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1 181 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
85 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1 182 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
86 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1 183 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
87 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1 184 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
88 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1 185 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
89 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1 186 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
90 MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x00b1 187 >;
91 >; 188 };
92 };
93 189
94 pinctrl_uart4: uart4grp { 190 pinctrl_gpmi_nand: gpminandgrp {
95 fsl,pins = < 191 fsl,pins = <
96 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 192 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
97 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 193 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
98 >; 194 MX6QDL_PAD_NANDF_WP_B__NAND_WP_B 0xb0b1
99 }; 195 MX6QDL_PAD_NANDF_RB0__NAND_READY_B 0xb000
196 MX6QDL_PAD_NANDF_CS0__NAND_CE0_B 0xb0b1
197 MX6QDL_PAD_NANDF_CS1__NAND_CE1_B 0xb0b1
198 MX6QDL_PAD_SD4_CMD__NAND_RE_B 0xb0b1
199 MX6QDL_PAD_SD4_CLK__NAND_WE_B 0xb0b1
200 MX6QDL_PAD_NANDF_D0__NAND_DATA00 0xb0b1
201 MX6QDL_PAD_NANDF_D1__NAND_DATA01 0xb0b1
202 MX6QDL_PAD_NANDF_D2__NAND_DATA02 0xb0b1
203 MX6QDL_PAD_NANDF_D3__NAND_DATA03 0xb0b1
204 MX6QDL_PAD_NANDF_D4__NAND_DATA04 0xb0b1
205 MX6QDL_PAD_NANDF_D5__NAND_DATA05 0xb0b1
206 MX6QDL_PAD_NANDF_D6__NAND_DATA06 0xb0b1
207 MX6QDL_PAD_NANDF_D7__NAND_DATA07 0xb0b1
208 MX6QDL_PAD_SD4_DAT0__NAND_DQS 0x00b1
209 >;
210 };
211
212 pinctrl_i2c3: i2c3grp {
213 fsl,pins = <
214 MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1
215 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
216 >;
217 };
218
219 pinctrl_pcie: pciegrp {
220 fsl,pins = <
221 MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x1b0b1
222 MX6QDL_PAD_EIM_CS1__GPIO2_IO24 0x1b0b1
223 >;
224 };
225
226 pinctrl_uart4: uart4grp {
227 fsl,pins = <
228 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
229 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
230 >;
100 }; 231 };
232
233 pinctrl_usbh1: usbh1grp {
234 fsl,pins = <
235 MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x1b0b1
236 >;
237 };
238
239 pinctrl_usbotg: usbotggrp {
240 fsl,pins = <
241 MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
242 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x130b0
243 >;
244 };
245};
246
247&pcie {
248 pinctrl-names = "default";
249 pinctrl-0 = <&pinctrl_pcie>;
250 reset-gpio = <&gpio1 26 GPIO_ACTIVE_LOW>;
251 vdd-supply = <&reg_pcie_power_on_gpio>;
252 status = "okay";
253};
254
255&sata {
256 status = "okay";
257};
258
259&snvs_poweroff {
260 status = "okay";
101}; 261};
102 262
103&uart4 { 263&uart4 {
@@ -105,3 +265,18 @@
105 pinctrl-0 = <&pinctrl_uart4>; 265 pinctrl-0 = <&pinctrl_uart4>;
106 status = "okay"; 266 status = "okay";
107}; 267};
268
269&usbh1 {
270 vbus-supply = <&reg_usb_h1_vbus>;
271 pinctrl-names = "default";
272 pinctrl-0 = <&pinctrl_usbh1>;
273 status = "okay";
274};
275
276&usbotg {
277 vbus-supply = <&reg_usb_otg_vbus>;
278 pinctrl-names = "default";
279 pinctrl-0 = <&pinctrl_usbotg>;
280 dr_mode = "otg";
281 status = "okay";
282};
diff --git a/arch/arm/boot/dts/imx6q-h100.dts b/arch/arm/boot/dts/imx6q-h100.dts
new file mode 100644
index 000000000000..65e66f994f88
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-h100.dts
@@ -0,0 +1,395 @@
1/*
2 * Copyright (C) 2015 Lucas Stach <kernel@pengutronix.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
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43
44#include "imx6q.dtsi"
45#include "imx6qdl-microsom.dtsi"
46#include "imx6qdl-microsom-ar8035.dtsi"
47
48/ {
49 model = "Auvidea H100";
50 compatible = "auvidea,h100", "fsl,imx6q";
51
52 aliases {
53 rtc0 = &rtc;
54 rtc1 = &snvs_rtc;
55 };
56
57 chosen {
58 stdout-path = &uart2;
59 };
60
61 hdmi_osc: hdmi-osc {
62 compatible = "fixed-clock";
63 clock-output-names = "hdmi-osc";
64 clock-frequency = <27000000>;
65 #clock-cells = <0>;
66 };
67
68 leds {
69 compatible = "gpio-leds";
70 pinctrl-names = "default";
71 pinctrl-0 = <&pinctrl_h100_leds>;
72
73 led0: power {
74 label = "power";
75 gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
76 default-state = "on";
77 };
78
79 led1: stream {
80 label = "stream";
81 gpios = <&gpio2 29 GPIO_ACTIVE_LOW>;
82 default-state = "off";
83 };
84
85 led2: rec {
86 label = "rec";
87 gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
88 default-state = "off";
89 };
90 };
91
92 reg_3p3v: regulator-3p3v {
93 compatible = "regulator-fixed";
94 regulator-name = "3P3V";
95 regulator-min-microvolt = <3300000>;
96 regulator-max-microvolt = <3300000>;
97 };
98
99 reg_hdmi: regulator-hdmi {
100 pinctrl-names = "default";
101 pinctrl-0 = <&pinctrl_h100_reg_hdmi>;
102 compatible = "regulator-fixed";
103 enable-active-high;
104 gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>;
105 regulator-name = "V_HDMI";
106 regulator-min-microvolt = <5000000>;
107 regulator-max-microvolt = <5000000>;
108 regulator-always-on;
109 };
110
111 reg_nvcc_sd2: regulator-nvcc-sd2 {
112 pinctrl-names = "default";
113 pinctrl-0 = <&pinctrl_h100_reg_nvcc_sd2>;
114 compatible = "regulator-gpio";
115 regulator-name = "NVCC_SD2";
116 regulator-min-microvolt = <1800000>;
117 regulator-max-microvolt = <3300000>;
118 regulator-type = "voltage";
119 regulator-boot-on;
120 regulator-always-on;
121 gpios = <&gpio4 9 GPIO_ACTIVE_HIGH>;
122 states = <1800000 0x1
123 3300000 0x0>;
124 };
125
126 reg_usbh1_vbus: regulator-usb-h1-vbus {
127 compatible = "regulator-fixed";
128 enable-active-high;
129 gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
130 pinctrl-names = "default";
131 pinctrl-0 = <&pinctrl_h100_usbh1_vbus>;
132 regulator-name = "USB_H1_VBUS";
133 regulator-min-microvolt = <5000000>;
134 regulator-max-microvolt = <5000000>;
135 };
136
137 reg_usbotg_vbus: regulator-usb-otg-vbus {
138 compatible = "regulator-fixed";
139 enable-active-high;
140 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_h100_usbotg_vbus>;
143 regulator-name = "USB_OTG_VBUS";
144 regulator-min-microvolt = <5000000>;
145 regulator-max-microvolt = <5000000>;
146 };
147
148 sound-sgtl5000 {
149 compatible = "fsl,imx-audio-sgtl5000";
150 model = "H100 on-board codec";
151 audio-codec = <&sgtl5000>;
152 audio-routing =
153 "MIC_IN", "Mic Jack",
154 "Mic Jack", "Mic Bias",
155 "Headphone Jack", "HP_OUT";
156 mux-ext-port = <5>;
157 mux-int-port = <1>;
158 ssi-controller = <&ssi1>;
159 };
160};
161
162&audmux {
163 status = "okay";
164};
165
166&hdmi {
167 pinctrl-names = "default";
168 pinctrl-0 = <&pinctrl_h100_hdmi>;
169 ddc-i2c-bus = <&i2c2>;
170 status = "okay";
171};
172
173&i2c1 {
174 pinctrl-names = "default";
175 pinctrl-0 = <&pinctrl_h100_i2c1>;
176 status = "okay";
177
178 eeprom: 24c02@51 {
179 compatible = "microchip,24c02", "at24";
180 reg = <0x51>;
181 };
182
183 rtc: pcf8523@68 {
184 compatible = "nxp,pcf8523";
185 reg = <0x68>;
186 };
187
188 sgtl5000: sgtl5000@0a {
189 compatible = "fsl,sgtl5000";
190 reg = <0x0a>;
191 pinctrl-names = "default";
192 pinctrl-0 = <&pinctrl_h100_sgtl5000>;
193 clocks = <&clks IMX6QDL_CLK_CKO>;
194 VDDA-supply = <&reg_3p3v>;
195 VDDIO-supply = <&reg_3p3v>;
196 };
197
198 tc358743: tc358743@0f {
199 compatible = "toshiba,tc358743";
200 reg = <0x0f>;
201 pinctrl-names = "default";
202 pinctrl-0 = <&pinctrl_h100_tc358743>;
203 clocks = <&hdmi_osc>;
204 clock-names = "refclk";
205 reset-gpios = <&gpio6 15 GPIO_ACTIVE_LOW>;
206 /* IRQ has a wrong pull resistor which renders it useless */
207
208 port@0 {
209 tc358743_out: endpoint {
210 remote-endpoint = <&mipi_csi2_in>;
211 data-lanes = <1 2 3 4>;
212 clock-lanes = <0>;
213 clock-noncontinuous;
214 link-frequencies = /bits/ 64 <297000000>;
215 };
216 };
217 };
218};
219
220&i2c2 {
221 clock-frequency = <100000>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_h100_i2c2>;
224 status = "okay";
225};
226
227&iomuxc {
228 h100 {
229 pinctrl_h100_hdmi: h100-hdmi {
230 fsl,pins = <
231 MX6QDL_PAD_KEY_ROW2__HDMI_TX_CEC_LINE 0x1f8b0
232 >;
233 };
234
235 pinctrl_h100_i2c1: h100-i2c1 {
236 fsl,pins = <
237 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
238 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
239 >;
240 };
241
242 pinctrl_h100_i2c2: h100-i2c2 {
243 fsl,pins = <
244 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
245 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
246 >;
247 };
248
249 pinctrl_h100_leds: pinctrl-h100-leds {
250 fsl,pins = <
251 MX6QDL_PAD_EIM_DA0__GPIO3_IO00 0x1b0b0
252 MX6QDL_PAD_EIM_EB1__GPIO2_IO29 0x1b0b0
253 MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0x1b0b0
254 >;
255 };
256
257 pinctrl_h100_reg_hdmi: h100-reg-hdmi {
258 fsl,pins = <
259 MX6QDL_PAD_EIM_A18__GPIO2_IO20 0x1b0b0
260 >;
261 };
262
263 pinctrl_h100_reg_nvcc_sd2: h100-reg-nvcc-sd2 {
264 fsl,pins = <
265 MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
266 >;
267 };
268
269 pinctrl_h100_sgtl5000: h100-sgtl5000 {
270 fsl,pins = <
271 MX6QDL_PAD_DISP0_DAT19__AUD5_RXD 0x130b0
272 MX6QDL_PAD_KEY_COL0__AUD5_TXC 0x130b0
273 MX6QDL_PAD_KEY_ROW0__AUD5_TXD 0x110b0
274 MX6QDL_PAD_KEY_COL1__AUD5_TXFS 0x130b0
275 MX6QDL_PAD_GPIO_5__CCM_CLKO1 0x130b0
276 >;
277 };
278
279 pinctrl_h100_tc358743: h100-tc358743 {
280 fsl,pins = <
281 MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0
282 >;
283 };
284
285 pinctrl_h100_uart2: h100-uart2 {
286 fsl,pins = <
287 MX6QDL_PAD_SD4_DAT4__UART2_RX_DATA 0x1b0b1
288 MX6QDL_PAD_SD4_DAT7__UART2_TX_DATA 0x1b0b1
289 >;
290 };
291
292 pinctrl_h100_usbh1_vbus: hummingboard-usbh1-vbus {
293 fsl,pins = <
294 MX6QDL_PAD_GPIO_0__GPIO1_IO00 0x1b0b0
295 >;
296 };
297
298 pinctrl_h100_usbotg_id: hummingboard-usbotg-id {
299 fsl,pins = <
300 MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x13059
301 >;
302 };
303
304 pinctrl_h100_usbotg_vbus: hummingboard-usbotg-vbus {
305 fsl,pins = <
306 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0
307 >;
308 };
309
310 pinctrl_h100_usdhc2: h100-usdhc2 {
311 fsl,pins = <
312 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
313 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
314 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
315 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
316 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
317 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
318 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x13059
319 >;
320 };
321
322 pinctrl_h100_usdhc2_100mhz: h100-usdhc2-100mhz {
323 fsl,pins = <
324 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
325 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9
326 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9
327 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9
328 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9
329 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9
330 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9
331 >;
332 };
333
334 pinctrl_h100_usdhc2_200mhz: h100-usdhc2-200mhz {
335 fsl,pins = <
336 MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x1f071
337 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170f9
338 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100f9
339 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170f9
340 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170f9
341 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170f9
342 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170f9
343 >;
344 };
345 };
346};
347
348&mipi_csi {
349 status = "okay";
350
351 port@0 {
352 mipi_csi2_in: endpoint {
353 remote-endpoint = <&tc358743_out>;
354 data-lanes = <1 2 3 4>;
355 clock-lanes = <0>;
356 clock-noncontinuous;
357 link-frequencies = /bits/ 64 <297000000>;
358 };
359 };
360};
361
362&ssi1 {
363 status = "okay";
364};
365
366&uart2 {
367 pinctrl-names = "default";
368 pinctrl-0 = <&pinctrl_h100_uart2>;
369 status = "okay";
370};
371
372&usbh1 {
373 disable-over-current;
374 vbus-supply = <&reg_usbh1_vbus>;
375 status = "okay";
376};
377
378&usbotg {
379 disable-over-current;
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_h100_usbotg_id>;
382 vbus-supply = <&reg_usbotg_vbus>;
383 status = "okay";
384};
385
386&usdhc2 {
387 pinctrl-names = "default", "state_100mhz", "state_200mhz";
388 pinctrl-0 = <&pinctrl_h100_usdhc2>;
389 pinctrl-1 = <&pinctrl_h100_usdhc2_100mhz>;
390 pinctrl-2 = <&pinctrl_h100_usdhc2_200mhz>;
391 vmmc-supply = <&reg_3p3v>;
392 vqmmc-supply = <&reg_nvcc_sd2>;
393 cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
394 status = "okay";
395};
diff --git a/arch/arm/boot/dts/imx6q-tbs2910.dts b/arch/arm/boot/dts/imx6q-tbs2910.dts
index 1926b1348a62..d7c8ccb2da95 100644
--- a/arch/arm/boot/dts/imx6q-tbs2910.dts
+++ b/arch/arm/boot/dts/imx6q-tbs2910.dts
@@ -191,7 +191,7 @@
191&pcie { 191&pcie {
192 pinctrl-names = "default"; 192 pinctrl-names = "default";
193 pinctrl-0 = <&pinctrl_pcie>; 193 pinctrl-0 = <&pinctrl_pcie>;
194 reset-gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>; 194 reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
195 status = "okay"; 195 status = "okay";
196}; 196};
197 197
diff --git a/arch/arm/boot/dts/imx6q-utilite-pro.dts b/arch/arm/boot/dts/imx6q-utilite-pro.dts
new file mode 100644
index 000000000000..61990630a748
--- /dev/null
+++ b/arch/arm/boot/dts/imx6q-utilite-pro.dts
@@ -0,0 +1,197 @@
1/*
2 * Copyright 2013 CompuLab Ltd.
3 * Copyright 2016 Christopher Spinrath
4 *
5 * Based on the devicetree distributed with the vendor kernel for the
6 * Utilite Pro:
7 * Copyright 2013 CompuLab Ltd.
8 * Author: Valentin Raevsky <valentin@compulab.co.il>
9 *
10 * This file is dual-licensed: you can use it either under the terms
11 * of the GPL or the X11 license, at your option. Note that this dual
12 * licensing only applies to this file, and not this project as a
13 * whole.
14 *
15 * a) This file is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License as
17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version.
19 *
20 * This file is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * Or, alternatively,
26 *
27 * b) Permission is hereby granted, free of charge, to any person
28 * obtaining a copy of this software and associated documentation
29 * files (the "Software"), to deal in the Software without
30 * restriction, including without limitation the rights to use,
31 * copy, modify, merge, publish, distribute, sublicense, and/or
32 * sell copies of the Software, and to permit persons to whom the
33 * Software is furnished to do so, subject to the following
34 * conditions:
35 *
36 * The above copyright notice and this permission notice shall be
37 * included in all copies or substantial portions of the Software.
38 *
39 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
40 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
41 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
42 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
43 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
44 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
45 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
46 * OTHER DEALINGS IN THE SOFTWARE.
47 */
48
49#include <dt-bindings/input/input.h>
50#include "imx6q-cm-fx6.dts"
51
52/ {
53 model = "CompuLab Utilite Pro";
54 compatible = "compulab,utilite-pro", "compulab,cm-fx6", "fsl,imx6q";
55
56 aliases {
57 ethernet1 = &eth1;
58 rtc0 = &em3027;
59 rtc1 = &snvs_rtc;
60 };
61
62 gpio-keys {
63 compatible = "gpio-keys";
64 pinctrl-names = "default";
65 pinctrl-0 = <&pinctrl_gpio_keys>;
66
67 power {
68 label = "Power Button";
69 gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
70 linux,code = <KEY_POWER>;
71 gpio-key,wakeup;
72 };
73 };
74};
75
76&hdmi {
77 ddc-i2c-bus = <&i2c2>;
78 status = "okay";
79};
80
81&i2c1 {
82 pinctrl-names = "default";
83 pinctrl-0 = <&pinctrl_i2c1>;
84 status = "okay";
85
86 eeprom@50 {
87 compatible = "at24,24c02";
88 reg = <0x50>;
89 pagesize = <16>;
90 };
91
92 em3027: rtc@56 {
93 compatible = "emmicro,em3027";
94 reg = <0x56>;
95 };
96};
97
98&i2c2 {
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_i2c2>;
101 status = "okay";
102};
103
104&iomuxc {
105 pinctrl_gpio_keys: gpio_keysgrp {
106 fsl,pins = <
107 MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x1b0b0
108 >;
109 };
110
111 pinctrl_i2c1: i2c1grp {
112 fsl,pins = <
113 MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
114 MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
115 >;
116 };
117
118 pinctrl_i2c2: i2c2grp {
119 fsl,pins = <
120 MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
121 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
122 >;
123 };
124
125 pinctrl_uart2: uart2grp {
126 fsl,pins = <
127 MX6QDL_PAD_GPIO_7__UART2_TX_DATA 0x1b0b1
128 MX6QDL_PAD_GPIO_8__UART2_RX_DATA 0x1b0b1
129 MX6QDL_PAD_SD4_DAT5__UART2_RTS_B 0x1b0b1
130 MX6QDL_PAD_SD4_DAT6__UART2_CTS_B 0x1b0b1
131 >;
132 };
133
134 pinctrl_usdhc3: usdhc3grp {
135 fsl,pins = <
136 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
137 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
138 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
139 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
140 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
141 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
142 >;
143 };
144
145 pinctrl_usdhc3_100mhz: usdhc3grp-100mhz {
146 fsl,pins = <
147 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170B9
148 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100B9
149 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170B9
150 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170B9
151 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170B9
152 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170B9
153 >;
154 };
155
156 pinctrl_usdhc3_200mhz: usdhc3grp-200mhz {
157 fsl,pins = <
158 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x170F9
159 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x100F9
160 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x170F9
161 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x170F9
162 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x170F9
163 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x170F9
164 >;
165 };
166};
167
168&pcie {
169 pcie@0,0 {
170 reg = <0x000000 0 0 0 0>;
171 #address-cells = <3>;
172 #size-cells = <2>;
173
174 /* non-removable i211 ethernet card */
175 eth1: intel,i211@pcie0,0 {
176 reg = <0x010000 0 0 0 0>;
177 };
178 };
179};
180
181&uart2 {
182 pinctrl-names = "default";
183 pinctrl-0 = <&pinctrl_uart2>;
184 uart-has-rtscts;
185 status = "okay";
186};
187
188&usdhc3 {
189 pinctrl-names = "default", "state_100mhz", "state_200mhz";
190 pinctrl-0 = <&pinctrl_usdhc3>;
191 pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
192 pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
193 no-1-8-v;
194 broken-cd;
195 keep-power-in-suspend;
196 status = "okay";
197};
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index 922b1dd06fda..315e033ff1d8 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -423,7 +423,7 @@
423 pinctrl-names = "default"; 423 pinctrl-names = "default";
424 pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>; 424 pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>;
425 fsl,dte-mode; 425 fsl,dte-mode;
426 fsl,uart-has-rtscts; 426 uart-has-rtscts;
427 status = "disabled"; 427 status = "disabled";
428}; 428};
429 429
@@ -431,7 +431,7 @@
431 pinctrl-names = "default"; 431 pinctrl-names = "default";
432 pinctrl-0 = <&pinctrl_uart2_dte>; 432 pinctrl-0 = <&pinctrl_uart2_dte>;
433 fsl,dte-mode; 433 fsl,dte-mode;
434 fsl,uart-has-rtscts; 434 uart-has-rtscts;
435 status = "disabled"; 435 status = "disabled";
436}; 436};
437 437
diff --git a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
index 865c9a264a43..edbce222c782 100644
--- a/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apf6dev.dtsi
@@ -254,7 +254,7 @@
254&uart3 { 254&uart3 {
255 pinctrl-names = "default"; 255 pinctrl-names = "default";
256 pinctrl-0 = <&pinctrl_uart3 &pinctrl_gsm>; 256 pinctrl-0 = <&pinctrl_uart3 &pinctrl_gsm>;
257 fsl,uart-has-rtscts; 257 uart-has-rtscts;
258 status = "okay"; 258 status = "okay";
259}; 259};
260 260
diff --git a/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi b/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
index ecbc6eba6a2c..54f4f0193f2b 100644
--- a/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
@@ -143,14 +143,14 @@
143&uart4 { 143&uart4 {
144 pinctrl-names = "default"; 144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_uart4>; 145 pinctrl-0 = <&pinctrl_uart4>;
146 fsl,uart-has-rtscts; 146 uart-has-rtscts;
147 status = "okay"; 147 status = "okay";
148}; 148};
149 149
150&uart5 { 150&uart5 {
151 pinctrl-names = "default"; 151 pinctrl-names = "default";
152 pinctrl-0 = <&pinctrl_uart5>; 152 pinctrl-0 = <&pinctrl_uart5>;
153 fsl,uart-has-rtscts; 153 uart-has-rtscts;
154 status = "okay"; 154 status = "okay";
155}; 155};
156 156
diff --git a/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi b/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
index 7d81100e7d47..7fff02c406f2 100644
--- a/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
@@ -351,7 +351,7 @@
351&uart1 { 351&uart1 {
352 pinctrl-names = "default"; 352 pinctrl-names = "default";
353 pinctrl-0 = <&pinctrl_uart1>; 353 pinctrl-0 = <&pinctrl_uart1>;
354 fsl,uart-has-rtscts; 354 uart-has-rtscts;
355 status = "okay"; 355 status = "okay";
356}; 356};
357 357
@@ -364,7 +364,7 @@
364&uart3 { 364&uart3 {
365 pinctrl-names = "default"; 365 pinctrl-names = "default";
366 pinctrl-0 = <&pinctrl_uart3>; 366 pinctrl-0 = <&pinctrl_uart3>;
367 fsl,uart-has-rtscts; 367 uart-has-rtscts;
368 status = "okay"; 368 status = "okay";
369}; 369};
370 370
diff --git a/arch/arm/boot/dts/imx6qdl-microsom.dtsi b/arch/arm/boot/dts/imx6qdl-microsom.dtsi
index 86460e46d055..3d62401dbd7f 100644
--- a/arch/arm/boot/dts/imx6qdl-microsom.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-microsom.dtsi
@@ -143,7 +143,7 @@
143&uart4 { 143&uart4 {
144 pinctrl-names = "default"; 144 pinctrl-names = "default";
145 pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4>; 145 pinctrl-0 = <&pinctrl_microsom_brcm_bt &pinctrl_microsom_uart4>;
146 fsl,uart-has-rtscts; 146 uart-has-rtscts;
147 status = "okay"; 147 status = "okay";
148}; 148};
149 149
diff --git a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
index e456b5cc1b03..cfd50ea1ed48 100644
--- a/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
@@ -250,6 +250,7 @@
250 txd3-skew-ps = <0>; 250 txd3-skew-ps = <0>;
251 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 251 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
252 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 252 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
253 fsl,err006687-workaround-present;
253 status = "okay"; 254 status = "okay";
254}; 255};
255 256
@@ -591,7 +592,7 @@
591&uart3 { 592&uart3 {
592 pinctrl-names = "default"; 593 pinctrl-names = "default";
593 pinctrl-0 = <&pinctrl_uart3>; 594 pinctrl-0 = <&pinctrl_uart3>;
594 fsl,uart-has-rtscts; 595 uart-has-rtscts;
595 status = "okay"; 596 status = "okay";
596}; 597};
597 598
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
index 657da6b6ccd2..9677bf323823 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
@@ -385,6 +385,7 @@
385 txd3-skew-ps = <0>; 385 txd3-skew-ps = <0>;
386 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 386 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
387 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 387 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
388 fsl,err006687-workaround-present;
388 status = "okay"; 389 status = "okay";
389}; 390};
390 391
diff --git a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
index 73915db704a0..97d9c333902b 100644
--- a/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
@@ -287,6 +287,7 @@
287 txd3-skew-ps = <0>; 287 txd3-skew-ps = <0>;
288 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 288 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
289 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 289 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
290 fsl,err006687-workaround-present;
290 status = "okay"; 291 status = "okay";
291}; 292};
292 293
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index d354d406954d..6aa193fb283f 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -155,6 +155,7 @@
155 phy-mode = "rgmii"; 155 phy-mode = "rgmii";
156 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 156 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
157 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 157 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
158 fsl,err006687-workaround-present;
158 status = "okay"; 159 status = "okay";
159}; 160};
160 161
diff --git a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
index c47fe6c79b36..f65fdfc2536d 100644
--- a/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
@@ -273,6 +273,7 @@
273 txd3-skew-ps = <0>; 273 txd3-skew-ps = <0>;
274 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 274 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
275 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 275 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
276 fsl,err006687-workaround-present;
276 status = "okay"; 277 status = "okay";
277}; 278};
278 279
diff --git a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
index 5248e7bd2b06..d77ea9423bbc 100644
--- a/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabresd.dtsi
@@ -501,6 +501,12 @@
501 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059 501 MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
502 >; 502 >;
503 }; 503 };
504
505 pinctrl_wdog: wdoggrp {
506 fsl,pins = <
507 MX6QDL_PAD_GPIO_1__WDOG2_B 0x1b0b0
508 >;
509 };
504 }; 510 };
505 511
506 gpio_leds { 512 gpio_leds {
@@ -533,7 +539,7 @@
533&pcie { 539&pcie {
534 pinctrl-names = "default"; 540 pinctrl-names = "default";
535 pinctrl-0 = <&pinctrl_pcie>; 541 pinctrl-0 = <&pinctrl_pcie>;
536 reset-gpio = <&gpio7 12 0>; 542 reset-gpio = <&gpio7 12 GPIO_ACTIVE_LOW>;
537 status = "okay"; 543 status = "okay";
538}; 544};
539 545
@@ -596,3 +602,14 @@
596 no-1-8-v; 602 no-1-8-v;
597 status = "okay"; 603 status = "okay";
598}; 604};
605
606&wdog1 {
607 status = "disabled";
608};
609
610&wdog2 {
611 pinctrl-names = "default";
612 pinctrl-0 = <&pinctrl_wdog>;
613 fsl,ext-reset-output;
614 status = "okay";
615};
diff --git a/arch/arm/boot/dts/imx6qdl-tx6.dtsi b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
index 39b85aef93e1..ac9529f85593 100644
--- a/arch/arm/boot/dts/imx6qdl-tx6.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-tx6.dtsi
@@ -689,21 +689,21 @@
689&uart1 { 689&uart1 {
690 pinctrl-names = "default"; 690 pinctrl-names = "default";
691 pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>; 691 pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>;
692 fsl,uart-has-rtscts; 692 uart-has-rtscts;
693 status = "okay"; 693 status = "okay";
694}; 694};
695 695
696&uart2 { 696&uart2 {
697 pinctrl-names = "default"; 697 pinctrl-names = "default";
698 pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>; 698 pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>;
699 fsl,uart-has-rtscts; 699 uart-has-rtscts;
700 status = "okay"; 700 status = "okay";
701}; 701};
702 702
703&uart3 { 703&uart3 {
704 pinctrl-names = "default"; 704 pinctrl-names = "default";
705 pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>; 705 pinctrl-0 = <&pinctrl_uart3 &pinctrl_uart3_rtscts>;
706 fsl,uart-has-rtscts; 706 uart-has-rtscts;
707 status = "okay"; 707 status = "okay";
708}; 708};
709 709
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index 8e7c40e114dd..3ffe00c557f1 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -211,6 +211,7 @@
211 phy-reset-gpios = <&gpio3 29 0>; 211 phy-reset-gpios = <&gpio3 29 0>;
212 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, 212 interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>,
213 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; 213 <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>;
214 fsl,err006687-workaround-present;
214 status = "okay"; 215 status = "okay";
215}; 216};
216 217
@@ -233,7 +234,7 @@
233&uart3 { 234&uart3 {
234 pinctrl-names = "default"; 235 pinctrl-names = "default";
235 pinctrl-0 = <&pinctrl_uart3>; 236 pinctrl-0 = <&pinctrl_uart3>;
236 fsl,uart-has-rtscts; 237 uart-has-rtscts;
237 status = "okay"; 238 status = "okay";
238}; 239};
239 240
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index ed613ebe0812..b620ac884cfd 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -185,6 +185,7 @@
185 cache-level = <2>; 185 cache-level = <2>;
186 arm,tag-latency = <4 2 3>; 186 arm,tag-latency = <4 2 3>;
187 arm,data-latency = <4 2 3>; 187 arm,data-latency = <4 2 3>;
188 arm,shared-override;
188 }; 189 };
189 190
190 pcie: pcie@0x01000000 { 191 pcie: pcie@0x01000000 {
@@ -1100,6 +1101,7 @@
1100 ocotp: ocotp@021bc000 { 1101 ocotp: ocotp@021bc000 {
1101 compatible = "fsl,imx6q-ocotp", "syscon"; 1102 compatible = "fsl,imx6q-ocotp", "syscon";
1102 reg = <0x021bc000 0x4000>; 1103 reg = <0x021bc000 0x4000>;
1104 clocks = <&clks IMX6QDL_CLK_IIM>;
1103 }; 1105 };
1104 1106
1105 tzasc@021d0000 { /* TZASC1 */ 1107 tzasc@021d0000 { /* TZASC1 */
@@ -1255,7 +1257,7 @@
1255 #size-cells = <0>; 1257 #size-cells = <0>;
1256 reg = <3>; 1258 reg = <3>;
1257 1259
1258 ipu1_di0_disp1: disp1-endpoint { 1260 ipu1_di1_disp1: disp1-endpoint {
1259 }; 1261 };
1260 1262
1261 ipu1_di1_hdmi: hdmi-endpoint { 1263 ipu1_di1_hdmi: hdmi-endpoint {
diff --git a/arch/arm/boot/dts/imx6sl-warp.dts b/arch/arm/boot/dts/imx6sl-warp.dts
index 058bcdceb81a..72c7745f51d3 100644
--- a/arch/arm/boot/dts/imx6sl-warp.dts
+++ b/arch/arm/boot/dts/imx6sl-warp.dts
@@ -84,7 +84,7 @@
84&uart5 { 84&uart5 {
85 pinctrl-names = "default"; 85 pinctrl-names = "default";
86 pinctrl-0 = <&pinctrl_uart5>; 86 pinctrl-0 = <&pinctrl_uart5>;
87 fsl,uart-has-rtscts; 87 uart-has-rtscts;
88 status = "okay"; 88 status = "okay";
89}; 89};
90 90
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index d12b250342a6..542515089b1e 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -461,7 +461,7 @@
461 <0 54 IRQ_TYPE_LEVEL_HIGH>, 461 <0 54 IRQ_TYPE_LEVEL_HIGH>,
462 <0 127 IRQ_TYPE_LEVEL_HIGH>; 462 <0 127 IRQ_TYPE_LEVEL_HIGH>;
463 463
464 regulator-1p1@110 { 464 regulator-1p1 {
465 compatible = "fsl,anatop-regulator"; 465 compatible = "fsl,anatop-regulator";
466 regulator-name = "vdd1p1"; 466 regulator-name = "vdd1p1";
467 regulator-min-microvolt = <800000>; 467 regulator-min-microvolt = <800000>;
@@ -475,7 +475,7 @@
475 anatop-max-voltage = <1375000>; 475 anatop-max-voltage = <1375000>;
476 }; 476 };
477 477
478 regulator-3p0@120 { 478 regulator-3p0 {
479 compatible = "fsl,anatop-regulator"; 479 compatible = "fsl,anatop-regulator";
480 regulator-name = "vdd3p0"; 480 regulator-name = "vdd3p0";
481 regulator-min-microvolt = <2800000>; 481 regulator-min-microvolt = <2800000>;
@@ -489,7 +489,7 @@
489 anatop-max-voltage = <3400000>; 489 anatop-max-voltage = <3400000>;
490 }; 490 };
491 491
492 regulator-2p5@130 { 492 regulator-2p5 {
493 compatible = "fsl,anatop-regulator"; 493 compatible = "fsl,anatop-regulator";
494 regulator-name = "vdd2p5"; 494 regulator-name = "vdd2p5";
495 regulator-min-microvolt = <2100000>; 495 regulator-min-microvolt = <2100000>;
@@ -503,7 +503,7 @@
503 anatop-max-voltage = <2850000>; 503 anatop-max-voltage = <2850000>;
504 }; 504 };
505 505
506 reg_arm: regulator-vddcore@140 { 506 reg_arm: regulator-vddcore {
507 compatible = "fsl,anatop-regulator"; 507 compatible = "fsl,anatop-regulator";
508 regulator-name = "vddarm"; 508 regulator-name = "vddarm";
509 regulator-min-microvolt = <725000>; 509 regulator-min-microvolt = <725000>;
@@ -520,7 +520,7 @@
520 anatop-max-voltage = <1450000>; 520 anatop-max-voltage = <1450000>;
521 }; 521 };
522 522
523 reg_pu: regulator-vddpu@140 { 523 reg_pu: regulator-vddpu {
524 compatible = "fsl,anatop-regulator"; 524 compatible = "fsl,anatop-regulator";
525 regulator-name = "vddpu"; 525 regulator-name = "vddpu";
526 regulator-min-microvolt = <725000>; 526 regulator-min-microvolt = <725000>;
@@ -537,7 +537,7 @@
537 anatop-max-voltage = <1450000>; 537 anatop-max-voltage = <1450000>;
538 }; 538 };
539 539
540 reg_soc: regulator-vddsoc@140 { 540 reg_soc: regulator-vddsoc {
541 compatible = "fsl,anatop-regulator"; 541 compatible = "fsl,anatop-regulator";
542 regulator-name = "vddsoc"; 542 regulator-name = "vddsoc";
543 regulator-min-microvolt = <725000>; 543 regulator-min-microvolt = <725000>;
@@ -853,6 +853,7 @@
853 ocotp: ocotp@021bc000 { 853 ocotp: ocotp@021bc000 {
854 compatible = "fsl,imx6sl-ocotp", "syscon"; 854 compatible = "fsl,imx6sl-ocotp", "syscon";
855 reg = <0x021bc000 0x4000>; 855 reg = <0x021bc000 0x4000>;
856 clocks = <&clks IMX6SL_CLK_OCOTP>;
856 }; 857 };
857 858
858 audmux: audmux@021d8000 { 859 audmux: audmux@021d8000 {
diff --git a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
index ba62348d8284..9b817f3501a6 100644
--- a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
+++ b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
@@ -326,7 +326,7 @@
326&uart3 { 326&uart3 {
327 pinctrl-names = "default"; 327 pinctrl-names = "default";
328 pinctrl-0 = <&pinctrl_uart3>; 328 pinctrl-0 = <&pinctrl_uart3>;
329 fsl,uart-has-rtscts; 329 uart-has-rtscts;
330 status = "okay"; 330 status = "okay";
331}; 331};
332 332
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dtsi b/arch/arm/boot/dts/imx6sx-sdb.dtsi
index e5eafe4d9a70..9d70cfd40aff 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dtsi
+++ b/arch/arm/boot/dts/imx6sx-sdb.dtsi
@@ -273,7 +273,7 @@
273&uart5 { /* for bluetooth */ 273&uart5 { /* for bluetooth */
274 pinctrl-names = "default"; 274 pinctrl-names = "default";
275 pinctrl-0 = <&pinctrl_uart5>; 275 pinctrl-0 = <&pinctrl_uart5>;
276 fsl,uart-has-rtscts; 276 uart-has-rtscts;
277 status = "okay"; 277 status = "okay";
278}; 278};
279 279
@@ -322,6 +322,12 @@
322 status = "okay"; 322 status = "okay";
323}; 323};
324 324
325&wdog1 {
326 pinctrl-names = "default";
327 pinctrl-0 = <&pinctrl_wdog>;
328 fsl,ext-reset-output;
329};
330
325&iomuxc { 331&iomuxc {
326 imx6x-sdb { 332 imx6x-sdb {
327 pinctrl_audmux: audmuxgrp { 333 pinctrl_audmux: audmuxgrp {
@@ -588,5 +594,11 @@
588 MX6SX_PAD_SD4_DATA6__GPIO6_IO_20 0x17059 /* WP */ 594 MX6SX_PAD_SD4_DATA6__GPIO6_IO_20 0x17059 /* WP */
589 >; 595 >;
590 }; 596 };
597
598 pinctrl_wdog: wdoggrp {
599 fsl,pins = <
600 MX6SX_PAD_GPIO1_IO13__WDOG1_WDOG_ANY 0x30b0
601 >;
602 };
591 }; 603 };
592}; 604};
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 6a993bfda248..2863c52be6f5 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -547,7 +547,7 @@
547 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 547 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
548 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 548 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
549 549
550 regulator-1p1@110 { 550 regulator-1p1 {
551 compatible = "fsl,anatop-regulator"; 551 compatible = "fsl,anatop-regulator";
552 regulator-name = "vdd1p1"; 552 regulator-name = "vdd1p1";
553 regulator-min-microvolt = <800000>; 553 regulator-min-microvolt = <800000>;
@@ -561,7 +561,7 @@
561 anatop-max-voltage = <1375000>; 561 anatop-max-voltage = <1375000>;
562 }; 562 };
563 563
564 regulator-3p0@120 { 564 regulator-3p0 {
565 compatible = "fsl,anatop-regulator"; 565 compatible = "fsl,anatop-regulator";
566 regulator-name = "vdd3p0"; 566 regulator-name = "vdd3p0";
567 regulator-min-microvolt = <2800000>; 567 regulator-min-microvolt = <2800000>;
@@ -575,7 +575,7 @@
575 anatop-max-voltage = <3400000>; 575 anatop-max-voltage = <3400000>;
576 }; 576 };
577 577
578 regulator-2p5@130 { 578 regulator-2p5 {
579 compatible = "fsl,anatop-regulator"; 579 compatible = "fsl,anatop-regulator";
580 regulator-name = "vdd2p5"; 580 regulator-name = "vdd2p5";
581 regulator-min-microvolt = <2100000>; 581 regulator-min-microvolt = <2100000>;
@@ -589,7 +589,7 @@
589 anatop-max-voltage = <2875000>; 589 anatop-max-voltage = <2875000>;
590 }; 590 };
591 591
592 reg_arm: regulator-vddcore@140 { 592 reg_arm: regulator-vddcore {
593 compatible = "fsl,anatop-regulator"; 593 compatible = "fsl,anatop-regulator";
594 regulator-name = "vddarm"; 594 regulator-name = "vddarm";
595 regulator-min-microvolt = <725000>; 595 regulator-min-microvolt = <725000>;
@@ -606,7 +606,7 @@
606 anatop-max-voltage = <1450000>; 606 anatop-max-voltage = <1450000>;
607 }; 607 };
608 608
609 reg_pcie: regulator-vddpcie@140 { 609 reg_pcie: regulator-vddpcie {
610 compatible = "fsl,anatop-regulator"; 610 compatible = "fsl,anatop-regulator";
611 regulator-name = "vddpcie"; 611 regulator-name = "vddpcie";
612 regulator-min-microvolt = <725000>; 612 regulator-min-microvolt = <725000>;
@@ -622,7 +622,7 @@
622 anatop-max-voltage = <1450000>; 622 anatop-max-voltage = <1450000>;
623 }; 623 };
624 624
625 reg_soc: regulator-vddsoc@140 { 625 reg_soc: regulator-vddsoc {
626 compatible = "fsl,anatop-regulator"; 626 compatible = "fsl,anatop-regulator";
627 regulator-name = "vddsoc"; 627 regulator-name = "vddsoc";
628 regulator-min-microvolt = <725000>; 628 regulator-min-microvolt = <725000>;
diff --git a/arch/arm/boot/dts/imx6ul-14x14-evk.dts b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
index 668a72997590..e281d5087d4a 100644
--- a/arch/arm/boot/dts/imx6ul-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ul-14x14-evk.dts
@@ -22,6 +22,14 @@
22 reg = <0x80000000 0x20000000>; 22 reg = <0x80000000 0x20000000>;
23 }; 23 };
24 24
25 backlight {
26 compatible = "pwm-backlight";
27 pwms = <&pwm1 0 5000000>;
28 brightness-levels = <0 4 8 16 32 64 128 255>;
29 default-brightness-level = <6>;
30 status = "okay";
31 };
32
25 regulators { 33 regulators {
26 compatible = "simple-bus"; 34 compatible = "simple-bus";
27 #address-cells = <1>; 35 #address-cells = <1>;
@@ -125,6 +133,46 @@
125 }; 133 };
126}; 134};
127 135
136
137&lcdif {
138 pinctrl-names = "default";
139 pinctrl-0 = <&pinctrl_lcdif_dat
140 &pinctrl_lcdif_ctrl>;
141 display = <&display0>;
142 status = "okay";
143
144 display0: display {
145 bits-per-pixel = <16>;
146 bus-width = <24>;
147
148 display-timings {
149 native-mode = <&timing0>;
150
151 timing0: timing0 {
152 clock-frequency = <9200000>;
153 hactive = <480>;
154 vactive = <272>;
155 hfront-porch = <8>;
156 hback-porch = <4>;
157 hsync-len = <41>;
158 vback-porch = <2>;
159 vfront-porch = <4>;
160 vsync-len = <10>;
161 hsync-active = <0>;
162 vsync-active = <0>;
163 de-active = <1>;
164 pixelclk-active = <0>;
165 };
166 };
167 };
168};
169
170&pwm1 {
171 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_pwm1>;
173 status = "okay";
174};
175
128&qspi { 176&qspi {
129 pinctrl-names = "default"; 177 pinctrl-names = "default";
130 pinctrl-0 = <&pinctrl_qspi>; 178 pinctrl-0 = <&pinctrl_qspi>;
@@ -146,6 +194,7 @@
146 <&clks IMX6UL_CLK_SAI2>; 194 <&clks IMX6UL_CLK_SAI2>;
147 assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>; 195 assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
148 assigned-clock-rates = <0>, <12288000>; 196 assigned-clock-rates = <0>, <12288000>;
197 fsl,sai-mclk-direction-output;
149 status = "okay"; 198 status = "okay";
150}; 199};
151 200
@@ -171,7 +220,7 @@
171&uart2 { 220&uart2 {
172 pinctrl-names = "default"; 221 pinctrl-names = "default";
173 pinctrl-0 = <&pinctrl_uart2>; 222 pinctrl-0 = <&pinctrl_uart2>;
174 fsl,uart-has-rtscts; 223 uart-has-rtscts;
175 status = "okay"; 224 status = "okay";
176}; 225};
177 226
@@ -207,6 +256,12 @@
207 status = "okay"; 256 status = "okay";
208}; 257};
209 258
259&wdog1 {
260 pinctrl-names = "default";
261 pinctrl-0 = <&pinctrl_wdog>;
262 fsl,ext-reset-output;
263};
264
210&iomuxc { 265&iomuxc {
211 pinctrl-names = "default"; 266 pinctrl-names = "default";
212 267
@@ -435,4 +490,10 @@
435 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059 490 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17059
436 >; 491 >;
437 }; 492 };
493
494 pinctrl_wdog: wdoggrp {
495 fsl,pins = <
496 MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY 0x30b0
497 >;
498 };
438}; 499};
diff --git a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
index 8ce1fec36e86..86f68faded0e 100644
--- a/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
+++ b/arch/arm/boot/dts/imx6ul-pico-hobbit.dts
@@ -151,8 +151,8 @@
151 phy-mode = "rmii"; 151 phy-mode = "rmii";
152 phy-handle = <&ethphy1>; 152 phy-handle = <&ethphy1>;
153 status = "okay"; 153 status = "okay";
154 phy-reset-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; 154 phy-reset-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
155 phy-reset-duration = <11>; 155 phy-reset-duration = <1>;
156 156
157 mdio { 157 mdio {
158 #address-cells = <1>; 158 #address-cells = <1>;
@@ -286,7 +286,7 @@
286&uart3 { 286&uart3 {
287 pinctrl-names = "default"; 287 pinctrl-names = "default";
288 pinctrl-0 = <&pinctrl_uart3>; 288 pinctrl-0 = <&pinctrl_uart3>;
289 fsl,uart-has-rtscts; 289 uart-has-rtscts;
290 status = "okay"; 290 status = "okay";
291}; 291};
292 292
diff --git a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
index d25899b71575..7c5dd1b316ca 100644
--- a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
+++ b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts
@@ -146,12 +146,12 @@
146 146
147&uart1 { 147&uart1 {
148 pinctrl-0 = <&pinctrl_uart1>; 148 pinctrl-0 = <&pinctrl_uart1>;
149 /delete-property/ fsl,uart-has-rtscts; 149 /delete-property/ uart-has-rtscts;
150}; 150};
151 151
152&uart2 { 152&uart2 {
153 pinctrl-0 = <&pinctrl_uart2>; 153 pinctrl-0 = <&pinctrl_uart2>;
154 /delete-property/ fsl,uart-has-rtscts; 154 /delete-property/ uart-has-rtscts;
155 status = "okay"; 155 status = "okay";
156}; 156};
157 157
diff --git a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
index 437e9aad5920..530e9ca13a74 100644
--- a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi
@@ -563,21 +563,21 @@
563&uart1 { 563&uart1 {
564 pinctrl-names = "default"; 564 pinctrl-names = "default";
565 pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>; 565 pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_rtscts>;
566 fsl,uart-has-rtscts; 566 uart-has-rtscts;
567 status = "okay"; 567 status = "okay";
568}; 568};
569 569
570&uart2 { 570&uart2 {
571 pinctrl-names = "default"; 571 pinctrl-names = "default";
572 pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>; 572 pinctrl-0 = <&pinctrl_uart2 &pinctrl_uart2_rtscts>;
573 fsl,uart-has-rtscts; 573 uart-has-rtscts;
574 status = "okay"; 574 status = "okay";
575}; 575};
576 576
577&uart5 { 577&uart5 {
578 pinctrl-names = "default"; 578 pinctrl-names = "default";
579 pinctrl-0 = <&pinctrl_uart5 &pinctrl_uart5_rtscts>; 579 pinctrl-0 = <&pinctrl_uart5 &pinctrl_uart5_rtscts>;
580 fsl,uart-has-rtscts; 580 uart-has-rtscts;
581 status = "okay"; 581 status = "okay";
582}; 582};
583 583
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index 4356b655ef02..33b95d78831a 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -36,6 +36,9 @@
36 serial5 = &uart6; 36 serial5 = &uart6;
37 serial6 = &uart7; 37 serial6 = &uart7;
38 serial7 = &uart8; 38 serial7 = &uart8;
39 sai1 = &sai1;
40 sai2 = &sai2;
41 sai3 = &sai3;
39 spi0 = &ecspi1; 42 spi0 = &ecspi1;
40 spi1 = &ecspi2; 43 spi1 = &ecspi2;
41 spi2 = &ecspi3; 44 spi2 = &ecspi3;
@@ -512,7 +515,7 @@
512 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>, 515 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
513 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; 516 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
514 517
515 reg_3p0: regulator-3p0@120 { 518 reg_3p0: regulator-3p0 {
516 compatible = "fsl,anatop-regulator"; 519 compatible = "fsl,anatop-regulator";
517 regulator-name = "vdd3p0"; 520 regulator-name = "vdd3p0";
518 regulator-min-microvolt = <2625000>; 521 regulator-min-microvolt = <2625000>;
@@ -526,7 +529,7 @@
526 anatop-enable-bit = <0>; 529 anatop-enable-bit = <0>;
527 }; 530 };
528 531
529 reg_arm: regulator-vddcore@140 { 532 reg_arm: regulator-vddcore {
530 compatible = "fsl,anatop-regulator"; 533 compatible = "fsl,anatop-regulator";
531 regulator-name = "cpu"; 534 regulator-name = "cpu";
532 regulator-min-microvolt = <725000>; 535 regulator-min-microvolt = <725000>;
@@ -543,7 +546,7 @@
543 anatop-max-voltage = <1450000>; 546 anatop-max-voltage = <1450000>;
544 }; 547 };
545 548
546 reg_soc: regulator-vddsoc@140 { 549 reg_soc: regulator-vddsoc {
547 compatible = "fsl,anatop-regulator"; 550 compatible = "fsl,anatop-regulator";
548 regulator-name = "vddsoc"; 551 regulator-name = "vddsoc";
549 regulator-min-microvolt = <725000>; 552 regulator-min-microvolt = <725000>;
diff --git a/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
new file mode 100644
index 000000000000..1545661df583
--- /dev/null
+++ b/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi
@@ -0,0 +1,148 @@
1/*
2 * Copyright 2016 Toradex AG
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/ {
44 chosen {
45 stdout-path = "serial0:115200n8";
46 };
47};
48
49&bl {
50 brightness-levels = <0 4 8 16 32 64 128 255>;
51 default-brightness-level = <6>;
52 status = "okay";
53};
54
55&adc1 {
56 status = "okay";
57};
58
59&adc2 {
60 status = "okay";
61};
62
63&fec1 {
64 status = "okay";
65};
66
67&i2c4 {
68 status = "okay";
69
70 /* M41T0M6 real time clock on carrier board */
71 rtc: m41t0m6@68 {
72 compatible = "st,m41t00";
73 reg = <0x68>;
74 };
75};
76
77&lcdif {
78 display = <&display0>;
79 status = "okay";
80
81 display0: lcd-display {
82 bits-per-pixel = <16>;
83 bus-width = <18>;
84
85 display-timings {
86 native-mode = <&timing_vga>;
87
88 /* Standard VGA timing */
89 timing_vga: 640x480 {
90 clock-frequency = <25175000>;
91 hactive = <640>;
92 vactive = <480>;
93 hback-porch = <40>;
94 hfront-porch = <24>;
95 vback-porch = <32>;
96 vfront-porch = <11>;
97 hsync-len = <96>;
98 vsync-len = <2>;
99 de-active = <1>;
100 hsync-active = <0>;
101 vsync-active = <0>;
102 pixelclk-active = <0>;
103 };
104 };
105 };
106};
107
108&pwm1 {
109 status = "okay";
110};
111
112&pwm2 {
113 status = "okay";
114};
115
116&pwm3 {
117 status = "okay";
118};
119
120&pwm4 {
121 status = "okay";
122};
123
124&uart1 {
125 status = "okay";
126};
127
128&uart2 {
129 status = "okay";
130};
131
132&uart3 {
133 status = "okay";
134};
135
136&usbotg1 {
137 status = "okay";
138};
139
140&usdhc1 {
141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_cd_usdhc1>;
143 no-1-8-v;
144 cd-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
145 keep-power-in-suspend;
146 wakeup-source;
147 status = "okay";
148};
diff --git a/arch/arm/boot/dts/imx7-colibri.dtsi b/arch/arm/boot/dts/imx7-colibri.dtsi
new file mode 100644
index 000000000000..0a9d3a822fc0
--- /dev/null
+++ b/arch/arm/boot/dts/imx7-colibri.dtsi
@@ -0,0 +1,571 @@
1/*
2 * Copyright 2016 Toradex AG
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/ {
44 bl: backlight {
45 compatible = "pwm-backlight";
46 pwms = <&pwm1 0 5000000>;
47 };
48
49 reg_3p3v: regulator-3p3v {
50 compatible = "regulator-fixed";
51 regulator-name = "3P3V";
52 regulator-min-microvolt = <3300000>;
53 regulator-max-microvolt = <3300000>;
54 regulator-always-on;
55 };
56
57 reg_vref_1v8: regulator-vref-1v8 {
58 compatible = "regulator-fixed";
59 regulator-name = "vref-1v8";
60 regulator-min-microvolt = <1800000>;
61 regulator-max-microvolt = <1800000>;
62 };
63};
64
65&adc1 {
66 vref-supply = <&reg_vref_1v8>;
67};
68
69&adc2 {
70 vref-supply = <&reg_vref_1v8>;
71};
72
73&cpu0 {
74 arm-supply = <&reg_DCDC2>;
75};
76
77&fec1 {
78 pinctrl-names = "default";
79 pinctrl-0 = <&pinctrl_enet1>;
80 clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
81 <&clks IMX7D_ENET_AXI_ROOT_CLK>,
82 <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
83 <&clks IMX7D_PLL_ENET_MAIN_50M_CLK>;
84 clock-names = "ipg", "ahb", "ptp", "enet_clk_ref";
85 assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
86 <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
87 assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
88 assigned-clock-rates = <0>, <100000000>;
89 phy-mode = "rmii";
90 phy-supply = <&reg_LDO1>;
91 fsl,magic-packet;
92};
93
94&i2c1 {
95 clock-frequency = <100000>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&pinctrl_i2c1 &pinctrl_i2c1_int>;
98 status = "okay";
99
100 ad7879@2c {
101 compatible = "adi,ad7879-1";
102 reg = <0x2c>;
103 interrupt-parent = <&gpio1>;
104 interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
105 touchscreen-max-pressure = <4096>;
106 adi,resistance-plate-x = <120>;
107 adi,first-conversion-delay = /bits/ 8 <3>;
108 adi,acquisition-time = /bits/ 8 <1>;
109 adi,median-filter-size = /bits/ 8 <2>;
110 adi,averaging = /bits/ 8 <1>;
111 adi,conversion-interval = /bits/ 8 <255>;
112 };
113
114 pmic@33 {
115 compatible = "ricoh,rn5t567";
116 reg = <0x33>;
117
118 regulators {
119 reg_DCDC1: DCDC1 { /* V1.0_SOC */
120 regulator-min-microvolt = <975000>;
121 regulator-max-microvolt = <1125000>;
122 regulator-boot-on;
123 regulator-always-on;
124 };
125
126 reg_DCDC2: DCDC2 { /* V1.1_ARM */
127 regulator-min-microvolt = <975000>;
128 regulator-max-microvolt = <1125000>;
129 regulator-boot-on;
130 regulator-always-on;
131 };
132
133 reg_DCDC3: DCDC3 { /* V1.8 */
134 regulator-min-microvolt = <1775000>;
135 regulator-max-microvolt = <1825000>;
136 regulator-boot-on;
137 regulator-always-on;
138 };
139
140 reg_DCDC4: DCDC4 { /* V1.35_DRAM */
141 regulator-min-microvolt = <1325000>;
142 regulator-max-microvolt = <1375000>;
143 regulator-boot-on;
144 regulator-always-on;
145 };
146
147 reg_LDO1: LDO1 { /* PWR_EN_+V3.3_ETH */
148 regulator-min-microvolt = <1800000>;
149 regulator-max-microvolt = <3300000>;
150 regulator-always-on;
151 };
152
153 reg_LDO2: LDO2 { /* +V1.8_SD */
154 regulator-min-microvolt = <1775000>;
155 regulator-max-microvolt = <3325000>;
156 regulator-boot-on;
157 regulator-always-on;
158 };
159
160 reg_LDO3: LDO3 { /* PWR_EN_+V3.3_LPSR */
161 regulator-min-microvolt = <3275000>;
162 regulator-max-microvolt = <3325000>;
163 regulator-boot-on;
164 regulator-always-on;
165 };
166
167 reg_LDO4: LDO4 { /* V1.8_LPSR */
168 regulator-min-microvolt = <1775000>;
169 regulator-max-microvolt = <1825000>;
170 regulator-boot-on;
171 regulator-always-on;
172 };
173
174 reg_LDO5: LDO5 { /* PWR_EN_+V3.3 */
175 regulator-min-microvolt = <1775000>;
176 regulator-max-microvolt = <1825000>;
177 regulator-boot-on;
178 regulator-always-on;
179 };
180 };
181 };
182};
183
184&i2c4 {
185 clock-frequency = <100000>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_i2c4>;
188};
189
190&lcdif {
191 pinctrl-names = "default";
192 pinctrl-0 = <&pinctrl_lcdif_dat
193 &pinctrl_lcdif_ctrl>;
194};
195
196&pwm1 {
197 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_pwm1>;
199};
200
201&pwm2 {
202 pinctrl-names = "default";
203 pinctrl-0 = <&pinctrl_pwm2>;
204};
205
206&pwm3 {
207 pinctrl-names = "default";
208 pinctrl-0 = <&pinctrl_pwm3>;
209};
210
211&pwm4 {
212 pinctrl-names = "default";
213 pinctrl-0 = <&pinctrl_pwm4>;
214};
215
216&reg_1p0d {
217 vin-supply = <&reg_DCDC3>;
218};
219
220&snvs_pwrkey {
221 status = "disabled";
222};
223
224&uart1 {
225 pinctrl-names = "default";
226 pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_ctrl1 &pinctrl_uart1_ctrl2>;
227 assigned-clocks = <&clks IMX7D_UART1_ROOT_SRC>;
228 assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
229 uart-has-rtscts;
230 fsl,dte-mode;
231};
232
233&uart2 {
234 pinctrl-names = "default";
235 pinctrl-0 = <&pinctrl_uart2>;
236 assigned-clocks = <&clks IMX7D_UART2_ROOT_SRC>;
237 assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
238 uart-has-rtscts;
239 fsl,dte-mode;
240};
241
242&uart3 {
243 pinctrl-names = "default";
244 pinctrl-0 = <&pinctrl_uart3>;
245 assigned-clocks = <&clks IMX7D_UART3_ROOT_SRC>;
246 assigned-clock-parents = <&clks IMX7D_OSC_24M_CLK>;
247 fsl,dte-mode;
248};
249
250&usbotg1 {
251 dr_mode = "host";
252};
253
254&iomuxc {
255 pinctrl-names = "default";
256 pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4>;
257
258 pinctrl_gpio1: gpio1-grp {
259 fsl,pins = <
260 MX7D_PAD_ENET1_RGMII_RD3__GPIO7_IO3 0x14 /* SODIMM 55 */
261 MX7D_PAD_ENET1_RGMII_RD2__GPIO7_IO2 0x14 /* SODIMM 63 */
262 MX7D_PAD_SD1_RESET_B__GPIO5_IO2 0X14 /* SODIMM 73 */
263 MX7D_PAD_SAI1_RX_SYNC__GPIO6_IO16 0X14 /* SODIMM 77 */
264 MX7D_PAD_EPDC_DATA09__GPIO2_IO9 0x14 /* SODIMM 89 */
265 MX7D_PAD_EPDC_DATA08__GPIO2_IO8 0x14 /* SODIMM 91 */
266 MX7D_PAD_LCD_RESET__GPIO3_IO4 0x14 /* SODIMM 93 */
267 MX7D_PAD_EPDC_DATA13__GPIO2_IO13 0x14 /* SODIMM 95 */
268 MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11 0x14 /* SODIMM 99 */
269 MX7D_PAD_EPDC_DATA10__GPIO2_IO10 0x14 /* SODIMM 105 */
270 MX7D_PAD_EPDC_DATA15__GPIO2_IO15 0x14 /* SODIMM 107 */
271 MX7D_PAD_EPDC_DATA00__GPIO2_IO0 0x14 /* SODIMM 111 */
272 MX7D_PAD_EPDC_DATA01__GPIO2_IO1 0x14 /* SODIMM 113 */
273 MX7D_PAD_EPDC_DATA02__GPIO2_IO2 0x14 /* SODIMM 115 */
274 MX7D_PAD_EPDC_DATA03__GPIO2_IO3 0x14 /* SODIMM 117 */
275 MX7D_PAD_EPDC_DATA04__GPIO2_IO4 0x14 /* SODIMM 119 */
276 MX7D_PAD_EPDC_DATA05__GPIO2_IO5 0x14 /* SODIMM 121 */
277 MX7D_PAD_EPDC_DATA06__GPIO2_IO6 0x14 /* SODIMM 123 */
278 MX7D_PAD_EPDC_DATA07__GPIO2_IO7 0x14 /* SODIMM 125 */
279 MX7D_PAD_EPDC_SDCE2__GPIO2_IO22 0x14 /* SODIMM 127 */
280 MX7D_PAD_UART3_RTS_B__GPIO4_IO6 0x14 /* SODIMM 131 */
281 MX7D_PAD_EPDC_GDRL__GPIO2_IO26 0x14 /* SODIMM 133 */
282 MX7D_PAD_SAI1_RX_BCLK__GPIO6_IO17 0x14 /* SODIMM 24 */
283 MX7D_PAD_SD2_DATA2__GPIO5_IO16 0x14 /* SODIMM 100 */
284 MX7D_PAD_SD2_DATA3__GPIO5_IO17 0x14 /* SODIMM 102 */
285 MX7D_PAD_EPDC_GDSP__GPIO2_IO27 0x14 /* SODIMM 104 */
286 MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 /* SODIMM 106 */
287 MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x14 /* SODIMM 110 */
288 MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30 0x14 /* SODIMM 112 */
289 MX7D_PAD_EPDC_SDCLK__GPIO2_IO16 0x14 /* SODIMM 114 */
290 MX7D_PAD_EPDC_SDLE__GPIO2_IO17 0x14 /* SODIMM 116 */
291 MX7D_PAD_EPDC_SDOE__GPIO2_IO18 0x14 /* SODIMM 118 */
292 MX7D_PAD_EPDC_SDSHR__GPIO2_IO19 0x14 /* SODIMM 120 */
293 MX7D_PAD_EPDC_SDCE0__GPIO2_IO20 0x14 /* SODIMM 122 */
294 MX7D_PAD_EPDC_SDCE1__GPIO2_IO21 0x14 /* SODIMM 124 */
295 MX7D_PAD_EPDC_DATA14__GPIO2_IO14 0x14 /* SODIMM 126 */
296 MX7D_PAD_EPDC_PWR_STAT__GPIO2_IO31 0x14 /* SODIMM 128 */
297 MX7D_PAD_EPDC_SDCE3__GPIO2_IO23 0x14 /* SODIMM 130 */
298 MX7D_PAD_EPDC_GDCLK__GPIO2_IO24 0x14 /* SODIMM 132 */
299 MX7D_PAD_EPDC_GDOE__GPIO2_IO25 0x14 /* SODIMM 134 */
300 MX7D_PAD_EPDC_DATA12__GPIO2_IO12 0x14 /* SODIMM 150 */
301 MX7D_PAD_EPDC_DATA11__GPIO2_IO11 0x14 /* SODIMM 152 */
302 MX7D_PAD_SD2_CLK__GPIO5_IO12 0x14 /* SODIMM 184 */
303 MX7D_PAD_SD2_CMD__GPIO5_IO13 0x14 /* SODIMM 186 */
304 >;
305 };
306
307 pinctrl_gpio2: gpio2-grp { /* On X22 Camera interface */
308 fsl,pins = <
309 MX7D_PAD_ECSPI2_SS0__GPIO4_IO23 0x14 /* SODIMM 65 */
310 MX7D_PAD_SD1_CD_B__GPIO5_IO0 0x14 /* SODIMM 69 */
311 MX7D_PAD_SD1_WP__GPIO5_IO1 0x14 /* SODIMM 71 */
312 MX7D_PAD_I2C4_SDA__GPIO4_IO15 0x14 /* SODIMM 75 */
313 MX7D_PAD_ECSPI1_MISO__GPIO4_IO18 0x14 /* SODIMM 79 */
314 MX7D_PAD_I2C3_SCL__GPIO4_IO12 0x14 /* SODIMM 81 */
315 MX7D_PAD_ECSPI2_MISO__GPIO4_IO22 0x14 /* SODIMM 85 */
316 MX7D_PAD_ECSPI1_SS0__GPIO4_IO19 0x14 /* SODIMM 97 */
317 MX7D_PAD_ECSPI1_SCLK__GPIO4_IO16 0x14 /* SODIMM 101 */
318 MX7D_PAD_ECSPI1_MOSI__GPIO4_IO17 0x14 /* SODIMM 103 */
319 MX7D_PAD_I2C3_SDA__GPIO4_IO13 0x14 /* SODIMM 94 */
320 MX7D_PAD_I2C4_SCL__GPIO4_IO14 0x14 /* SODIMM 96 */
321 MX7D_PAD_SD2_RESET_B__GPIO5_IO11 0x14 /* SODIMM 98 */
322 >;
323 };
324
325 pinctrl_gpio3: gpio3-grp { /* LCD 18-23 */
326 fsl,pins = <
327 MX7D_PAD_LCD_DATA18__GPIO3_IO23 0x14 /* SODIMM 136 */
328 MX7D_PAD_LCD_DATA19__GPIO3_IO24 0x14 /* SODIMM 138 */
329 MX7D_PAD_LCD_DATA20__GPIO3_IO25 0x14 /* SODIMM 140 */
330 MX7D_PAD_LCD_DATA21__GPIO3_IO26 0x14 /* SODIMM 142 */
331 MX7D_PAD_LCD_DATA22__GPIO3_IO27 0x14 /* SODIMM 146 */
332 MX7D_PAD_LCD_DATA23__GPIO3_IO28 0x14 /* SODIMM 148 */
333 >;
334 };
335
336 pinctrl_gpio4: gpio4-grp { /* Alternatively CAN2 */
337 fsl,pins = <
338 MX7D_PAD_GPIO1_IO15__GPIO1_IO15 0x14 /* SODIMM 178 */
339 MX7D_PAD_GPIO1_IO14__GPIO1_IO14 0x14 /* SODIMM 188 */
340 >;
341 };
342
343 pinctrl_i2c1_int: i2c1-int-grp { /* PMIC / TOUCH */
344 fsl,pins = <
345 MX7D_PAD_GPIO1_IO13__GPIO1_IO13 0x79
346 >;
347 };
348
349 pinctrl_enet1: enet1grp {
350 fsl,pins = <
351 MX7D_PAD_ENET1_CRS__GPIO7_IO14 0x14
352 MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x73
353 MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0 0x73
354 MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1 0x73
355 MX7D_PAD_ENET1_RGMII_RXC__ENET1_RX_ER 0x73
356
357 MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x73
358 MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0 0x73
359 MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1 0x73
360 MX7D_PAD_GPIO1_IO12__CCM_ENET_REF_CLK1 0x73
361 MX7D_PAD_SD2_CD_B__ENET1_MDIO 0x3
362 MX7D_PAD_SD2_WP__ENET1_MDC 0x3
363 >;
364 };
365
366 pinctrl_ecspi3_cs: ecspi3-cs-grp {
367 fsl,pins = <
368 MX7D_PAD_I2C2_SDA__GPIO4_IO11 0x14
369 >;
370 };
371
372 pinctrl_ecspi3: ecspi3-grp {
373 fsl,pins = <
374 MX7D_PAD_I2C1_SCL__ECSPI3_MISO 0x2
375 MX7D_PAD_I2C1_SDA__ECSPI3_MOSI 0x2
376 MX7D_PAD_I2C2_SCL__ECSPI3_SCLK 0x2
377 >;
378 };
379
380 pinctrl_flexcan2: flexcan2-grp {
381 fsl,pins = <
382 MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX 0x59
383 MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX 0x59
384 >;
385 };
386
387 pinctrl_gpmi_nand: gpmi-nand-grp {
388 fsl,pins = <
389 MX7D_PAD_SD3_CLK__NAND_CLE 0x71
390 MX7D_PAD_SD3_CMD__NAND_ALE 0x71
391 MX7D_PAD_SAI1_TX_BCLK__NAND_CE0_B 0x71
392 MX7D_PAD_SAI1_RX_DATA__NAND_CE1_B 0x71
393 MX7D_PAD_SAI1_TX_DATA__NAND_READY_B 0x74
394 MX7D_PAD_SD3_STROBE__NAND_RE_B 0x71
395 MX7D_PAD_SD3_RESET_B__NAND_WE_B 0x71
396 MX7D_PAD_SD3_DATA0__NAND_DATA00 0x71
397 MX7D_PAD_SD3_DATA1__NAND_DATA01 0x71
398 MX7D_PAD_SD3_DATA2__NAND_DATA02 0x71
399 MX7D_PAD_SD3_DATA3__NAND_DATA03 0x71
400 MX7D_PAD_SD3_DATA4__NAND_DATA04 0x71
401 MX7D_PAD_SD3_DATA5__NAND_DATA05 0x71
402 MX7D_PAD_SD3_DATA6__NAND_DATA06 0x71
403 MX7D_PAD_SD3_DATA7__NAND_DATA07 0x71
404 >;
405 };
406
407 pinctrl_i2c4: i2c4-grp {
408 fsl,pins = <
409 MX7D_PAD_ENET1_RGMII_TD3__I2C4_SDA 0x4000007f
410 MX7D_PAD_ENET1_RGMII_TD2__I2C4_SCL 0x4000007f
411 >;
412 };
413
414 pinctrl_lcdif_dat: lcdif-dat-grp {
415 fsl,pins = <
416 MX7D_PAD_LCD_DATA00__LCD_DATA0 0x79
417 MX7D_PAD_LCD_DATA01__LCD_DATA1 0x79
418 MX7D_PAD_LCD_DATA02__LCD_DATA2 0x79
419 MX7D_PAD_LCD_DATA03__LCD_DATA3 0x79
420 MX7D_PAD_LCD_DATA04__LCD_DATA4 0x79
421 MX7D_PAD_LCD_DATA05__LCD_DATA5 0x79
422 MX7D_PAD_LCD_DATA06__LCD_DATA6 0x79
423 MX7D_PAD_LCD_DATA07__LCD_DATA7 0x79
424 MX7D_PAD_LCD_DATA08__LCD_DATA8 0x79
425 MX7D_PAD_LCD_DATA09__LCD_DATA9 0x79
426 MX7D_PAD_LCD_DATA10__LCD_DATA10 0x79
427 MX7D_PAD_LCD_DATA11__LCD_DATA11 0x79
428 MX7D_PAD_LCD_DATA12__LCD_DATA12 0x79
429 MX7D_PAD_LCD_DATA13__LCD_DATA13 0x79
430 MX7D_PAD_LCD_DATA14__LCD_DATA14 0x79
431 MX7D_PAD_LCD_DATA15__LCD_DATA15 0x79
432 MX7D_PAD_LCD_DATA16__LCD_DATA16 0x79
433 MX7D_PAD_LCD_DATA17__LCD_DATA17 0x79
434 >;
435 };
436
437 pinctrl_lcdif_dat_24: lcdif-dat-24-grp {
438 fsl,pins = <
439 MX7D_PAD_LCD_DATA18__LCD_DATA18 0x79
440 MX7D_PAD_LCD_DATA19__LCD_DATA19 0x79
441 MX7D_PAD_LCD_DATA20__LCD_DATA20 0x79
442 MX7D_PAD_LCD_DATA21__LCD_DATA21 0x79
443 MX7D_PAD_LCD_DATA22__LCD_DATA22 0x79
444 MX7D_PAD_LCD_DATA23__LCD_DATA23 0x79
445 >;
446 };
447
448 pinctrl_lcdif_ctrl: lcdif-ctrl-grp {
449 fsl,pins = <
450 MX7D_PAD_LCD_CLK__LCD_CLK 0x79
451 MX7D_PAD_LCD_ENABLE__LCD_ENABLE 0x79
452 MX7D_PAD_LCD_VSYNC__LCD_VSYNC 0x79
453 MX7D_PAD_LCD_HSYNC__LCD_HSYNC 0x79
454 >;
455 };
456
457 pinctrl_pwm1: pwm1-grp {
458 fsl,pins = <
459 MX7D_PAD_GPIO1_IO08__PWM1_OUT 0x79
460 >;
461 };
462
463 pinctrl_pwm2: pwm2-grp {
464 fsl,pins = <
465 MX7D_PAD_GPIO1_IO09__PWM2_OUT 0x79
466 >;
467 };
468
469 pinctrl_pwm3: pwm3-grp {
470 fsl,pins = <
471 MX7D_PAD_GPIO1_IO10__PWM3_OUT 0x79
472 >;
473 };
474
475 pinctrl_pwm4: pwm4-grp {
476 fsl,pins = <
477 MX7D_PAD_GPIO1_IO11__PWM4_OUT 0x79
478 >;
479 };
480
481 pinctrl_uart1: uart1-grp {
482 fsl,pins = <
483 MX7D_PAD_UART1_TX_DATA__UART1_DTE_RX 0x79
484 MX7D_PAD_UART1_RX_DATA__UART1_DTE_TX 0x79
485 MX7D_PAD_SAI2_TX_BCLK__UART1_DTE_CTS 0x79
486 MX7D_PAD_SAI2_TX_SYNC__UART1_DTE_RTS 0x79
487 >;
488 };
489
490 pinctrl_uart1_ctrl1: uart1-ctrl1-grp {
491 fsl,pins = <
492 MX7D_PAD_SD2_DATA1__GPIO5_IO15 0x14 /* DCD */
493 MX7D_PAD_SD2_DATA0__GPIO5_IO14 0x14 /* DTR */
494 >;
495 };
496
497 pinctrl_uart2: uart2-grp {
498 fsl,pins = <
499 MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX 0x79
500 MX7D_PAD_UART2_RX_DATA__UART2_DTE_TX 0x79
501 MX7D_PAD_SAI2_RX_DATA__UART2_DTE_RTS 0x79
502 MX7D_PAD_SAI2_TX_DATA__UART2_DTE_CTS 0x79
503 >;
504 };
505 pinctrl_uart3: uart3-grp {
506 fsl,pins = <
507 MX7D_PAD_UART3_TX_DATA__UART3_DTE_RX 0x79
508 MX7D_PAD_UART3_RX_DATA__UART3_DTE_TX 0x79
509 >;
510 };
511
512 pinctrl_usbotg2_reg: gpio-usbotg2-vbus {
513 fsl,pins = <
514 MX7D_PAD_UART3_CTS_B__GPIO4_IO7 0x14 /* SODIMM 129 USBH PEN */
515 >;
516 };
517
518 pinctrl_usdhc1: usdhc1-grp {
519 fsl,pins = <
520 MX7D_PAD_SD1_CMD__SD1_CMD 0x59
521 MX7D_PAD_SD1_CLK__SD1_CLK 0x19
522 MX7D_PAD_SD1_DATA0__SD1_DATA0 0x59
523 MX7D_PAD_SD1_DATA1__SD1_DATA1 0x59
524 MX7D_PAD_SD1_DATA2__SD1_DATA2 0x59
525 MX7D_PAD_SD1_DATA3__SD1_DATA3 0x59
526 >;
527 };
528
529 pinctrl_sai1: sai1-grp {
530 fsl,pins = <
531 MX7D_PAD_SAI1_MCLK__SAI1_MCLK 0x1f
532 MX7D_PAD_ENET1_RX_CLK__SAI1_TX_BCLK 0x1f
533 MX7D_PAD_SAI1_TX_SYNC__SAI1_TX_SYNC 0x1f
534 MX7D_PAD_ENET1_COL__SAI1_TX_DATA0 0x30
535 MX7D_PAD_ENET1_TX_CLK__SAI1_RX_DATA0 0x1f
536 >;
537 };
538};
539
540&iomuxc_lpsr {
541 pinctrl-names = "default";
542 pinctrl-0 = <&pinctrl_gpio_lpsr>;
543
544 pinctrl_gpio_lpsr: gpio1-grp {
545 fsl,pins = <
546 MX7D_PAD_GPIO1_IO01__GPIO1_IO1 0x59
547 MX7D_PAD_GPIO1_IO02__GPIO1_IO2 0x59
548 MX7D_PAD_GPIO1_IO03__GPIO1_IO3 0x59
549 >;
550 };
551
552 pinctrl_i2c1: i2c1-grp {
553 fsl,pins = <
554 MX7D_PAD_GPIO1_IO05__I2C1_SDA 0x4000007f
555 MX7D_PAD_GPIO1_IO04__I2C1_SCL 0x4000007f
556 >;
557 };
558
559 pinctrl_cd_usdhc1: usdhc1-cd-grp {
560 fsl,pins = <
561 MX7D_PAD_GPIO1_IO00__GPIO1_IO0 0x59 /* CD */
562 >;
563 };
564
565 pinctrl_uart1_ctrl2: uart1-ctrl2-grp {
566 fsl,pins = <
567 MX7D_PAD_GPIO1_IO07__GPIO1_IO7 0x14 /* DSR */
568 MX7D_PAD_GPIO1_IO06__GPIO1_IO6 0x14 /* RI */
569 >;
570 };
571};
diff --git a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
index 48634519d13a..58b09bf1ba2d 100644
--- a/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
+++ b/arch/arm/boot/dts/imx7d-cl-som-imx7.dts
@@ -12,7 +12,6 @@
12 12
13/dts-v1/; 13/dts-v1/;
14 14
15#include <dt-bindings/input/input.h>
16#include "imx7d.dtsi" 15#include "imx7d.dtsi"
17 16
18/ { 17/ {
diff --git a/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts b/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts
new file mode 100644
index 000000000000..bd01d2cc642d
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts
@@ -0,0 +1,66 @@
1/*
2 * Copyright 2016 Toradex AG
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 "imx7d-colibri.dtsi"
45#include "imx7-colibri-eval-v3.dtsi"
46
47/ {
48 model = "Toradex Colibri iMX7D on Colibri Evaluation Board V3";
49 compatible = "toradex,colibri-imx7d-eval-v3", "toradex,colibri-imx7d",
50 "fsl,imx7d";
51
52 reg_usb_otg2_vbus: regulator-usb-otg2-vbus {
53 compatible = "regulator-fixed";
54 pinctrl-names = "default";
55 pinctrl-0 = <&pinctrl_usbotg2_reg>;
56 regulator-name = "VCC_USB[1-4]";
57 regulator-min-microvolt = <5000000>;
58 regulator-max-microvolt = <5000000>;
59 gpio = <&gpio4 7 GPIO_ACTIVE_LOW>;
60 };
61};
62
63&usbotg2 {
64 vbus-supply = <&reg_usb_otg2_vbus>;
65 status = "okay";
66};
diff --git a/arch/arm/boot/dts/imx7d-colibri.dtsi b/arch/arm/boot/dts/imx7d-colibri.dtsi
new file mode 100644
index 000000000000..3c2cb502b388
--- /dev/null
+++ b/arch/arm/boot/dts/imx7d-colibri.dtsi
@@ -0,0 +1,54 @@
1/*
2 * Copyright 2016 Toradex AG
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include "imx7d.dtsi"
44#include "imx7-colibri.dtsi"
45
46/ {
47 memory {
48 reg = <0x80000000 0x20000000>;
49 };
50};
51
52&usbotg2 {
53 dr_mode = "host";
54};
diff --git a/arch/arm/boot/dts/imx7d-nitrogen7.dts b/arch/arm/boot/dts/imx7d-nitrogen7.dts
index 1ce97800f0c5..ce08f180f213 100644
--- a/arch/arm/boot/dts/imx7d-nitrogen7.dts
+++ b/arch/arm/boot/dts/imx7d-nitrogen7.dts
@@ -42,7 +42,6 @@
42 42
43/dts-v1/; 43/dts-v1/;
44 44
45#include <dt-bindings/input/input.h>
46#include "imx7d.dtsi" 45#include "imx7d.dtsi"
47 46
48/ { 47/ {
@@ -392,7 +391,7 @@
392 pinctrl-0 = <&pinctrl_uart6>; 391 pinctrl-0 = <&pinctrl_uart6>;
393 assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>; 392 assigned-clocks = <&clks IMX7D_UART6_ROOT_SRC>;
394 assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>; 393 assigned-clock-parents = <&clks IMX7D_PLL_SYS_MAIN_240M_CLK>;
395 fsl,uart-has-rtscts; 394 uart-has-rtscts;
396 status = "okay"; 395 status = "okay";
397}; 396};
398 397
diff --git a/arch/arm/boot/dts/imx7d-pinfunc.h b/arch/arm/boot/dts/imx7d-pinfunc.h
index eeda78347619..3f9f0d9c8094 100644
--- a/arch/arm/boot/dts/imx7d-pinfunc.h
+++ b/arch/arm/boot/dts/imx7d-pinfunc.h
@@ -594,7 +594,7 @@
594#define MX7D_PAD_UART2_RX_DATA__GPIO4_IO2 0x0130 0x03A0 0x0000 0x5 0x0 594#define MX7D_PAD_UART2_RX_DATA__GPIO4_IO2 0x0130 0x03A0 0x0000 0x5 0x0
595#define MX7D_PAD_UART2_RX_DATA__ENET2_MDIO 0x0130 0x03A0 0x0000 0x6 0x0 595#define MX7D_PAD_UART2_RX_DATA__ENET2_MDIO 0x0130 0x03A0 0x0000 0x6 0x0
596#define MX7D_PAD_UART2_TX_DATA__UART2_DCE_TX 0x0134 0x03A4 0x0000 0x0 0x0 596#define MX7D_PAD_UART2_TX_DATA__UART2_DCE_TX 0x0134 0x03A4 0x0000 0x0 0x0
597#define MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX 0x0134 0x03A4 0x0000 0x0 0x0 597#define MX7D_PAD_UART2_TX_DATA__UART2_DTE_RX 0x0134 0x03A4 0x06FC 0x0 0x3
598#define MX7D_PAD_UART2_TX_DATA__I2C2_SDA 0x0134 0x03A4 0x05E0 0x1 0x0 598#define MX7D_PAD_UART2_TX_DATA__I2C2_SDA 0x0134 0x03A4 0x05E0 0x1 0x0
599#define MX7D_PAD_UART2_TX_DATA__SAI3_RX_DATA0 0x0134 0x03A4 0x06C8 0x2 0x0 599#define MX7D_PAD_UART2_TX_DATA__SAI3_RX_DATA0 0x0134 0x03A4 0x06C8 0x2 0x0
600#define MX7D_PAD_UART2_TX_DATA__ECSPI1_RDY 0x0134 0x03A4 0x0000 0x3 0x0 600#define MX7D_PAD_UART2_TX_DATA__ECSPI1_RDY 0x0134 0x03A4 0x0000 0x3 0x0
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index b267f79e3059..95ee268ed510 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -42,7 +42,6 @@
42 42
43/dts-v1/; 43/dts-v1/;
44 44
45#include <dt-bindings/input/input.h>
46#include "imx7d.dtsi" 45#include "imx7d.dtsi"
47 46
48/ { 47/ {
@@ -111,6 +110,32 @@
111 arm-supply = <&sw1a_reg>; 110 arm-supply = <&sw1a_reg>;
112}; 111};
113 112
113&ecspi3 {
114 fsl,spi-num-chipselects = <1>;
115 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_ecspi3>;
117 cs-gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
118 status = "okay";
119
120 tsc2046@0 {
121 compatible = "ti,tsc2046";
122 reg = <0>;
123 spi-max-frequency = <1000000>;
124 pinctrl-names ="default";
125 pinctrl-0 = <&pinctrl_tsc2046_pendown>;
126 interrupt-parent = <&gpio2>;
127 interrupts = <29 0>;
128 pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
129 ti,x-min = /bits/ 16 <0>;
130 ti,x-max = /bits/ 16 <0>;
131 ti,y-min = /bits/ 16 <0>;
132 ti,y-max = /bits/ 16 <0>;
133 ti,pressure-max = /bits/ 16 <0>;
134 ti,x-plat-ohms = /bits/ 16 <400>;
135 wakeup-source;
136 };
137};
138
114&fec1 { 139&fec1 {
115 pinctrl-names = "default"; 140 pinctrl-names = "default";
116 pinctrl-0 = <&pinctrl_enet1>; 141 pinctrl-0 = <&pinctrl_enet1>;
@@ -272,6 +297,44 @@
272 }; 297 };
273}; 298};
274 299
300&lcdif {
301 pinctrl-names = "default";
302 pinctrl-0 = <&pinctrl_lcdif>;
303 display = <&display0>;
304 status = "okay";
305
306 display0: display {
307 bits-per-pixel = <16>;
308 bus-width = <24>;
309
310 display-timings {
311 native-mode = <&timing0>;
312
313 timing0: timing0 {
314 clock-frequency = <9200000>;
315 hactive = <480>;
316 vactive = <272>;
317 hfront-porch = <8>;
318 hback-porch = <4>;
319 hsync-len = <41>;
320 vback-porch = <2>;
321 vfront-porch = <4>;
322 vsync-len = <10>;
323 hsync-active = <0>;
324 vsync-active = <0>;
325 de-active = <1>;
326 pixelclk-active = <0>;
327 };
328 };
329 };
330};
331
332&pwm1 {
333 pinctrl-names = "default";
334 pinctrl-0 = <&pinctrl_pwm1>;
335 status = "okay";
336};
337
275&uart1 { 338&uart1 {
276 pinctrl-names = "default"; 339 pinctrl-names = "default";
277 pinctrl-0 = <&pinctrl_uart1>; 340 pinctrl-0 = <&pinctrl_uart1>;
@@ -314,11 +377,26 @@
314 status = "okay"; 377 status = "okay";
315}; 378};
316 379
380&wdog1 {
381 pinctrl-names = "default";
382 pinctrl-0 = <&pinctrl_wdog>;
383 fsl,ext-reset-output;
384};
385
317&iomuxc { 386&iomuxc {
318 pinctrl-names = "default"; 387 pinctrl-names = "default";
319 pinctrl-0 = <&pinctrl_hog>; 388 pinctrl-0 = <&pinctrl_hog>;
320 389
321 imx7d-sdb { 390 imx7d-sdb {
391 pinctrl_ecspi3: ecspi3grp {
392 fsl,pins = <
393 MX7D_PAD_SAI2_TX_SYNC__ECSPI3_MISO 0x2
394 MX7D_PAD_SAI2_TX_BCLK__ECSPI3_MOSI 0x2
395 MX7D_PAD_SAI2_RX_DATA__ECSPI3_SCLK 0x2
396 MX7D_PAD_SD2_CD_B__GPIO5_IO9 0x59
397 >;
398 };
399
322 pinctrl_enet1: enet1grp { 400 pinctrl_enet1: enet1grp {
323 fsl,pins = < 401 fsl,pins = <
324 MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x3 402 MX7D_PAD_GPIO1_IO10__ENET1_MDIO 0x3
@@ -390,6 +468,52 @@
390 >; 468 >;
391 }; 469 };
392 470
471 pinctrl_lcdif: lcdifgrp {
472 fsl,pins = <
473 MX7D_PAD_LCD_DATA00__LCD_DATA0 0x79
474 MX7D_PAD_LCD_DATA01__LCD_DATA1 0x79
475 MX7D_PAD_LCD_DATA02__LCD_DATA2 0x79
476 MX7D_PAD_LCD_DATA03__LCD_DATA3 0x79
477 MX7D_PAD_LCD_DATA04__LCD_DATA4 0x79
478 MX7D_PAD_LCD_DATA05__LCD_DATA5 0x79
479 MX7D_PAD_LCD_DATA06__LCD_DATA6 0x79
480 MX7D_PAD_LCD_DATA07__LCD_DATA7 0x79
481 MX7D_PAD_LCD_DATA08__LCD_DATA8 0x79
482 MX7D_PAD_LCD_DATA09__LCD_DATA9 0x79
483 MX7D_PAD_LCD_DATA10__LCD_DATA10 0x79
484 MX7D_PAD_LCD_DATA11__LCD_DATA11 0x79
485 MX7D_PAD_LCD_DATA12__LCD_DATA12 0x79
486 MX7D_PAD_LCD_DATA13__LCD_DATA13 0x79
487 MX7D_PAD_LCD_DATA14__LCD_DATA14 0x79
488 MX7D_PAD_LCD_DATA15__LCD_DATA15 0x79
489 MX7D_PAD_LCD_DATA16__LCD_DATA16 0x79
490 MX7D_PAD_LCD_DATA17__LCD_DATA17 0x79
491 MX7D_PAD_LCD_DATA18__LCD_DATA18 0x79
492 MX7D_PAD_LCD_DATA19__LCD_DATA19 0x79
493 MX7D_PAD_LCD_DATA20__LCD_DATA20 0x79
494 MX7D_PAD_LCD_DATA21__LCD_DATA21 0x79
495 MX7D_PAD_LCD_DATA22__LCD_DATA22 0x79
496 MX7D_PAD_LCD_DATA23__LCD_DATA23 0x79
497 MX7D_PAD_LCD_CLK__LCD_CLK 0x79
498 MX7D_PAD_LCD_ENABLE__LCD_ENABLE 0x79
499 MX7D_PAD_LCD_VSYNC__LCD_VSYNC 0x79
500 MX7D_PAD_LCD_HSYNC__LCD_HSYNC 0x79
501 MX7D_PAD_LCD_RESET__LCD_RESET 0x79
502 >;
503 };
504
505 pinctrl_pwm1: pwm1grp {
506 fsl,pins = <
507 MX7D_PAD_GPIO1_IO01__PWM1_OUT 0x110b0
508 >;
509 };
510
511 pinctrl_tsc2046_pendown: tsc2046_pendown {
512 fsl,pins = <
513 MX7D_PAD_EPDC_BDR1__GPIO2_IO29 0x59
514 >;
515 };
516
393 pinctrl_uart1: uart1grp { 517 pinctrl_uart1: uart1grp {
394 fsl,pins = < 518 fsl,pins = <
395 MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79 519 MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX 0x79
@@ -512,5 +636,10 @@
512 >; 636 >;
513 }; 637 };
514 638
639 pinctrl_wdog: wdoggrp {
640 fsl,pins = <
641 MX7D_PAD_GPIO1_IO00__WDOD1_WDOG_B 0x74
642 >;
643 };
515 }; 644 };
516}; 645};
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index 6b3faa298417..51c13cbdffb7 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright 2015 Freescale Semiconductor, Inc. 2 * Copyright 2015 Freescale Semiconductor, Inc.
3 * Copyright 2016 Toradex AG
3 * 4 *
4 * This file is dual-licensed: you can use it either under the terms 5 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual 6 * of the GPL or the X11 license, at your option. Note that this dual
@@ -40,54 +41,10 @@
40 * OTHER DEALINGS IN THE SOFTWARE. 41 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 42 */
42 43
43#include <dt-bindings/clock/imx7d-clock.h> 44#include "imx7s.dtsi"
44#include <dt-bindings/gpio/gpio.h>
45#include <dt-bindings/interrupt-controller/arm-gic.h>
46#include "imx7d-pinfunc.h"
47#include "skeleton.dtsi"
48 45
49/ { 46/ {
50 aliases {
51 gpio0 = &gpio1;
52 gpio1 = &gpio2;
53 gpio2 = &gpio3;
54 gpio3 = &gpio4;
55 gpio4 = &gpio5;
56 gpio5 = &gpio6;
57 gpio6 = &gpio7;
58 i2c0 = &i2c1;
59 i2c1 = &i2c2;
60 i2c2 = &i2c3;
61 i2c3 = &i2c4;
62 mmc0 = &usdhc1;
63 mmc1 = &usdhc2;
64 mmc2 = &usdhc3;
65 serial0 = &uart1;
66 serial1 = &uart2;
67 serial2 = &uart3;
68 serial3 = &uart4;
69 serial4 = &uart5;
70 serial5 = &uart6;
71 serial6 = &uart7;
72 };
73
74 cpus { 47 cpus {
75 #address-cells = <1>;
76 #size-cells = <0>;
77
78 cpu0: cpu@0 {
79 compatible = "arm,cortex-a7";
80 device_type = "cpu";
81 reg = <0>;
82 operating-points = <
83 /* KHz uV */
84 996000 1075000
85 792000 975000
86 >;
87 clock-latency = <61036>; /* two CLK32 periods */
88 clocks = <&clks IMX7D_CLK_ARM>;
89 };
90
91 cpu1: cpu@1 { 48 cpu1: cpu@1 {
92 compatible = "arm,cortex-a7"; 49 compatible = "arm,cortex-a7";
93 device_type = "cpu"; 50 device_type = "cpu";
@@ -95,221 +52,6 @@
95 }; 52 };
96 }; 53 };
97 54
98 intc: interrupt-controller@31001000 {
99 compatible = "arm,cortex-a7-gic";
100 #interrupt-cells = <3>;
101 interrupt-controller;
102 reg = <0x31001000 0x1000>,
103 <0x31002000 0x1000>,
104 <0x31004000 0x2000>,
105 <0x31006000 0x2000>;
106 };
107
108 ckil: clock-cki {
109 compatible = "fixed-clock";
110 #clock-cells = <0>;
111 clock-frequency = <32768>;
112 clock-output-names = "ckil";
113 };
114
115 osc: clock-osc {
116 compatible = "fixed-clock";
117 #clock-cells = <0>;
118 clock-frequency = <24000000>;
119 clock-output-names = "osc";
120 };
121
122 timer {
123 compatible = "arm,armv7-timer";
124 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
125 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
126 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
127 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
128 interrupt-parent = <&intc>;
129 };
130
131 etr@30086000 {
132 compatible = "arm,coresight-tmc", "arm,primecell";
133 reg = <0x30086000 0x1000>;
134 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
135 clock-names = "apb_pclk";
136
137 port {
138 etr_in_port: endpoint {
139 slave-mode;
140 remote-endpoint = <&replicator_out_port1>;
141 };
142 };
143 };
144
145 tpiu@30087000 {
146 compatible = "arm,coresight-tpiu", "arm,primecell";
147 reg = <0x30087000 0x1000>;
148 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
149 clock-names = "apb_pclk";
150
151 port {
152 tpiu_in_port: endpoint {
153 slave-mode;
154 remote-endpoint = <&replicator_out_port1>;
155 };
156 };
157 };
158
159 replicator {
160 /*
161 * non-configurable replicators don't show up on the
162 * AMBA bus. As such no need to add "arm,primecell"
163 */
164 compatible = "arm,coresight-replicator";
165
166 ports {
167 #address-cells = <1>;
168 #size-cells = <0>;
169
170 /* replicator output ports */
171 port@0 {
172 reg = <0>;
173 replicator_out_port0: endpoint {
174 remote-endpoint = <&tpiu_in_port>;
175 };
176 };
177
178 port@1 {
179 reg = <1>;
180 replicator_out_port1: endpoint {
181 remote-endpoint = <&etr_in_port>;
182 };
183 };
184
185 /* replicator input port */
186 port@2 {
187 reg = <0>;
188 replicator_in_port0: endpoint {
189 slave-mode;
190 remote-endpoint = <&etf_out_port>;
191 };
192 };
193 };
194 };
195
196 etf@30084000 {
197 compatible = "arm,coresight-tmc", "arm,primecell";
198 reg = <0x30084000 0x1000>;
199 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
200 clock-names = "apb_pclk";
201
202 ports {
203 #address-cells = <1>;
204 #size-cells = <0>;
205
206 port@0 {
207 reg = <0>;
208 etf_in_port: endpoint {
209 slave-mode;
210 remote-endpoint = <&hugo_funnel_out_port0>;
211 };
212 };
213
214 port@1 {
215 reg = <0>;
216 etf_out_port: endpoint {
217 remote-endpoint = <&replicator_in_port0>;
218 };
219 };
220 };
221 };
222
223 funnel@30083000 {
224 compatible = "arm,coresight-funnel", "arm,primecell";
225 reg = <0x30083000 0x1000>;
226 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
227 clock-names = "apb_pclk";
228
229 ports {
230 #address-cells = <1>;
231 #size-cells = <0>;
232
233 /* funnel input ports */
234 port@0 {
235 reg = <0>;
236 hugo_funnel_in_port0: endpoint {
237 slave-mode;
238 remote-endpoint = <&ca_funnel_out_port0>;
239 };
240 };
241
242 port@1 {
243 reg = <1>;
244 hugo_funnel_in_port1: endpoint {
245 slave-mode; /* M4 input */
246 };
247 };
248
249 port@2 {
250 reg = <0>;
251 hugo_funnel_out_port0: endpoint {
252 remote-endpoint = <&etf_in_port>;
253 };
254 };
255
256 /* the other input ports are not connect to anything */
257 };
258 };
259
260 funnel@30041000 {
261 compatible = "arm,coresight-funnel", "arm,primecell";
262 reg = <0x30041000 0x1000>;
263 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
264 clock-names = "apb_pclk";
265
266 ports {
267 #address-cells = <1>;
268 #size-cells = <0>;
269
270 /* funnel input ports */
271 port@0 {
272 reg = <0>;
273 ca_funnel_in_port0: endpoint {
274 slave-mode;
275 remote-endpoint = <&etm0_out_port>;
276 };
277 };
278
279 port@1 {
280 reg = <1>;
281 ca_funnel_in_port1: endpoint {
282 slave-mode;
283 remote-endpoint = <&etm1_out_port>;
284 };
285 };
286
287 /* funnel output port */
288 port@2 {
289 reg = <0>;
290 ca_funnel_out_port0: endpoint {
291 remote-endpoint = <&hugo_funnel_in_port0>;
292 };
293 };
294
295 /* the other input ports are not connect to anything */
296 };
297 };
298
299 etm@3007c000 {
300 compatible = "arm,coresight-etm3x", "arm,primecell";
301 reg = <0x3007c000 0x1000>;
302 cpu = <&cpu0>;
303 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
304 clock-names = "apb_pclk";
305
306 port {
307 etm0_out_port: endpoint {
308 remote-endpoint = <&ca_funnel_in_port0>;
309 };
310 };
311 };
312
313 etm@3007d000 { 55 etm@3007d000 {
314 compatible = "arm,coresight-etm3x", "arm,primecell"; 56 compatible = "arm,coresight-etm3x", "arm,primecell";
315 reg = <0x3007d000 0x1000>; 57 reg = <0x3007d000 0x1000>;
@@ -330,626 +72,57 @@
330 }; 72 };
331 }; 73 };
332 }; 74 };
75};
333 76
334 soc { 77&aips3 {
335 #address-cells = <1>; 78 usbotg2: usb@30b20000 {
336 #size-cells = <1>; 79 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
337 compatible = "simple-bus"; 80 reg = <0x30b20000 0x200>;
338 interrupt-parent = <&intc>; 81 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
339 ranges; 82 clocks = <&clks IMX7D_USB_CTRL_CLK>;
340 83 fsl,usbphy = <&usbphynop2>;
341 aips1: aips-bus@30000000 { 84 fsl,usbmisc = <&usbmisc2 0>;
342 compatible = "fsl,aips-bus", "simple-bus"; 85 phy-clkgate-delay-us = <400>;
343 #address-cells = <1>; 86 status = "disabled";
344 #size-cells = <1>; 87 };
345 reg = <0x30000000 0x400000>;
346 ranges;
347
348 gpio1: gpio@30200000 {
349 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
350 reg = <0x30200000 0x10000>;
351 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */
352 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */
353 gpio-controller;
354 #gpio-cells = <2>;
355 interrupt-controller;
356 #interrupt-cells = <2>;
357 };
358
359 gpio2: gpio@30210000 {
360 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
361 reg = <0x30210000 0x10000>;
362 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
363 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
364 gpio-controller;
365 #gpio-cells = <2>;
366 interrupt-controller;
367 #interrupt-cells = <2>;
368 };
369
370 gpio3: gpio@30220000 {
371 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
372 reg = <0x30220000 0x10000>;
373 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
374 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
375 gpio-controller;
376 #gpio-cells = <2>;
377 interrupt-controller;
378 #interrupt-cells = <2>;
379 };
380
381 gpio4: gpio@30230000 {
382 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
383 reg = <0x30230000 0x10000>;
384 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
385 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
386 gpio-controller;
387 #gpio-cells = <2>;
388 interrupt-controller;
389 #interrupt-cells = <2>;
390 };
391
392 gpio5: gpio@30240000 {
393 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
394 reg = <0x30240000 0x10000>;
395 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
396 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
397 gpio-controller;
398 #gpio-cells = <2>;
399 interrupt-controller;
400 #interrupt-cells = <2>;
401 };
402
403 gpio6: gpio@30250000 {
404 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
405 reg = <0x30250000 0x10000>;
406 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
407 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
408 gpio-controller;
409 #gpio-cells = <2>;
410 interrupt-controller;
411 #interrupt-cells = <2>;
412 };
413
414 gpio7: gpio@30260000 {
415 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
416 reg = <0x30260000 0x10000>;
417 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
418 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
419 gpio-controller;
420 #gpio-cells = <2>;
421 interrupt-controller;
422 #interrupt-cells = <2>;
423 };
424
425 wdog1: wdog@30280000 {
426 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
427 reg = <0x30280000 0x10000>;
428 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
429 clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
430 };
431
432 wdog2: wdog@30290000 {
433 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
434 reg = <0x30290000 0x10000>;
435 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
436 clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
437 status = "disabled";
438 };
439
440 wdog3: wdog@302a0000 {
441 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
442 reg = <0x302a0000 0x10000>;
443 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
444 clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
445 status = "disabled";
446 };
447
448 wdog4: wdog@302b0000 {
449 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
450 reg = <0x302b0000 0x10000>;
451 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
452 clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
453 status = "disabled";
454 };
455
456 iomuxc_lpsr: iomuxc-lpsr@302c0000 {
457 compatible = "fsl,imx7d-iomuxc-lpsr";
458 reg = <0x302c0000 0x10000>;
459 fsl,input-sel = <&iomuxc>;
460 };
461
462 gpt1: gpt@302d0000 {
463 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
464 reg = <0x302d0000 0x10000>;
465 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
466 clocks = <&clks IMX7D_CLK_DUMMY>,
467 <&clks IMX7D_GPT1_ROOT_CLK>;
468 clock-names = "ipg", "per";
469 };
470
471 gpt2: gpt@302e0000 {
472 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
473 reg = <0x302e0000 0x10000>;
474 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
475 clocks = <&clks IMX7D_CLK_DUMMY>,
476 <&clks IMX7D_GPT2_ROOT_CLK>;
477 clock-names = "ipg", "per";
478 status = "disabled";
479 };
480
481 gpt3: gpt@302f0000 {
482 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
483 reg = <0x302f0000 0x10000>;
484 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
485 clocks = <&clks IMX7D_CLK_DUMMY>,
486 <&clks IMX7D_GPT3_ROOT_CLK>;
487 clock-names = "ipg", "per";
488 status = "disabled";
489 };
490
491 gpt4: gpt@30300000 {
492 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
493 reg = <0x30300000 0x10000>;
494 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
495 clocks = <&clks IMX7D_CLK_DUMMY>,
496 <&clks IMX7D_GPT4_ROOT_CLK>;
497 clock-names = "ipg", "per";
498 status = "disabled";
499 };
500
501 iomuxc: iomuxc@30330000 {
502 compatible = "fsl,imx7d-iomuxc";
503 reg = <0x30330000 0x10000>;
504 };
505
506 gpr: iomuxc-gpr@30340000 {
507 compatible = "fsl,imx7d-iomuxc-gpr", "syscon";
508 reg = <0x30340000 0x10000>;
509 };
510
511 ocotp: ocotp-ctrl@30350000 {
512 compatible = "syscon";
513 reg = <0x30350000 0x10000>;
514 clocks = <&clks IMX7D_CLK_DUMMY>;
515 status = "disabled";
516 };
517
518 anatop: anatop@30360000 {
519 compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
520 "syscon", "simple-bus";
521 reg = <0x30360000 0x10000>;
522 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
523 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
524
525 reg_1p0d: regulator-vdd1p0d@210 {
526 compatible = "fsl,anatop-regulator";
527 regulator-name = "vdd1p0d";
528 regulator-min-microvolt = <800000>;
529 regulator-max-microvolt = <1200000>;
530 anatop-reg-offset = <0x210>;
531 anatop-vol-bit-shift = <8>;
532 anatop-vol-bit-width = <5>;
533 anatop-min-bit-val = <8>;
534 anatop-min-voltage = <800000>;
535 anatop-max-voltage = <1200000>;
536 anatop-enable-bit = <31>;
537 };
538 };
539
540 snvs: snvs@30370000 {
541 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
542 reg = <0x30370000 0x10000>;
543
544 snvs_rtc: snvs-rtc-lp {
545 compatible = "fsl,sec-v4.0-mon-rtc-lp";
546 regmap = <&snvs>;
547 offset = <0x34>;
548 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
549 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
550 };
551
552 snvs_poweroff: snvs-poweroff {
553 compatible = "syscon-poweroff";
554 regmap = <&snvs>;
555 offset = <0x38>;
556 mask = <0x60>;
557 };
558
559 snvs_pwrkey: snvs-powerkey {
560 compatible = "fsl,sec-v4.0-pwrkey";
561 regmap = <&snvs>;
562 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
563 linux,keycode = <KEY_POWER>;
564 wakeup-source;
565 };
566 };
567
568 clks: ccm@30380000 {
569 compatible = "fsl,imx7d-ccm";
570 reg = <0x30380000 0x10000>;
571 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
572 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
573 #clock-cells = <1>;
574 clocks = <&ckil>, <&osc>;
575 clock-names = "ckil", "osc";
576 };
577
578 src: src@30390000 {
579 compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
580 reg = <0x30390000 0x10000>;
581 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
582 #reset-cells = <1>;
583 };
584 };
585
586 aips2: aips-bus@30400000 {
587 compatible = "fsl,aips-bus", "simple-bus";
588 #address-cells = <1>;
589 #size-cells = <1>;
590 reg = <0x30400000 0x400000>;
591 ranges;
592
593 adc1: adc@30610000 {
594 compatible = "fsl,imx7d-adc";
595 reg = <0x30610000 0x10000>;
596 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
597 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
598 clock-names = "adc";
599 status = "disabled";
600 };
601
602 adc2: adc@30620000 {
603 compatible = "fsl,imx7d-adc";
604 reg = <0x30620000 0x10000>;
605 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
606 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
607 clock-names = "adc";
608 status = "disabled";
609 };
610
611 pwm1: pwm@30660000 {
612 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
613 reg = <0x30660000 0x10000>;
614 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
615 clocks = <&clks IMX7D_PWM1_ROOT_CLK>,
616 <&clks IMX7D_PWM1_ROOT_CLK>;
617 clock-names = "ipg", "per";
618 #pwm-cells = <2>;
619 status = "disabled";
620 };
621
622 pwm2: pwm@30670000 {
623 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
624 reg = <0x30670000 0x10000>;
625 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
626 clocks = <&clks IMX7D_PWM2_ROOT_CLK>,
627 <&clks IMX7D_PWM2_ROOT_CLK>;
628 clock-names = "ipg", "per";
629 #pwm-cells = <2>;
630 status = "disabled";
631 };
632
633 pwm3: pwm@30680000 {
634 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
635 reg = <0x30680000 0x10000>;
636 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
637 clocks = <&clks IMX7D_PWM3_ROOT_CLK>,
638 <&clks IMX7D_PWM3_ROOT_CLK>;
639 clock-names = "ipg", "per";
640 #pwm-cells = <2>;
641 status = "disabled";
642 };
643
644 pwm4: pwm@30690000 {
645 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
646 reg = <0x30690000 0x10000>;
647 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
648 clocks = <&clks IMX7D_PWM4_ROOT_CLK>,
649 <&clks IMX7D_PWM4_ROOT_CLK>;
650 clock-names = "ipg", "per";
651 #pwm-cells = <2>;
652 status = "disabled";
653 };
654
655 lcdif: lcdif@30730000 {
656 compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
657 reg = <0x30730000 0x10000>;
658 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
659 clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
660 <&clks IMX7D_CLK_DUMMY>,
661 <&clks IMX7D_CLK_DUMMY>;
662 clock-names = "pix", "axi", "disp_axi";
663 status = "disabled";
664 };
665 };
666
667 aips3: aips-bus@30800000 {
668 compatible = "fsl,aips-bus", "simple-bus";
669 #address-cells = <1>;
670 #size-cells = <1>;
671 reg = <0x30800000 0x400000>;
672 ranges;
673
674 uart1: serial@30860000 {
675 compatible = "fsl,imx7d-uart",
676 "fsl,imx6q-uart";
677 reg = <0x30860000 0x10000>;
678 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
679 clocks = <&clks IMX7D_UART1_ROOT_CLK>,
680 <&clks IMX7D_UART1_ROOT_CLK>;
681 clock-names = "ipg", "per";
682 status = "disabled";
683 };
684
685 uart2: serial@30890000 {
686 compatible = "fsl,imx7d-uart",
687 "fsl,imx6q-uart";
688 reg = <0x30890000 0x10000>;
689 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
690 clocks = <&clks IMX7D_UART2_ROOT_CLK>,
691 <&clks IMX7D_UART2_ROOT_CLK>;
692 clock-names = "ipg", "per";
693 status = "disabled";
694 };
695
696 uart3: serial@30880000 {
697 compatible = "fsl,imx7d-uart",
698 "fsl,imx6q-uart";
699 reg = <0x30880000 0x10000>;
700 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
701 clocks = <&clks IMX7D_UART3_ROOT_CLK>,
702 <&clks IMX7D_UART3_ROOT_CLK>;
703 clock-names = "ipg", "per";
704 status = "disabled";
705 };
706
707 flexcan1: can@30a00000 {
708 compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
709 reg = <0x30a00000 0x10000>;
710 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
711 clocks = <&clks IMX7D_CLK_DUMMY>,
712 <&clks IMX7D_CAN1_ROOT_CLK>;
713 clock-names = "ipg", "per";
714 status = "disabled";
715 };
716
717 flexcan2: can@30a10000 {
718 compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
719 reg = <0x30a10000 0x10000>;
720 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
721 clocks = <&clks IMX7D_CLK_DUMMY>,
722 <&clks IMX7D_CAN2_ROOT_CLK>;
723 clock-names = "ipg", "per";
724 status = "disabled";
725 };
726
727 i2c1: i2c@30a20000 {
728 #address-cells = <1>;
729 #size-cells = <0>;
730 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
731 reg = <0x30a20000 0x10000>;
732 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
733 clocks = <&clks IMX7D_I2C1_ROOT_CLK>;
734 status = "disabled";
735 };
736
737 i2c2: i2c@30a30000 {
738 #address-cells = <1>;
739 #size-cells = <0>;
740 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
741 reg = <0x30a30000 0x10000>;
742 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
743 clocks = <&clks IMX7D_I2C2_ROOT_CLK>;
744 status = "disabled";
745 };
746
747 i2c3: i2c@30a40000 {
748 #address-cells = <1>;
749 #size-cells = <0>;
750 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
751 reg = <0x30a40000 0x10000>;
752 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
753 clocks = <&clks IMX7D_I2C3_ROOT_CLK>;
754 status = "disabled";
755 };
756
757 i2c4: i2c@30a50000 {
758 #address-cells = <1>;
759 #size-cells = <0>;
760 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
761 reg = <0x30a50000 0x10000>;
762 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
763 clocks = <&clks IMX7D_I2C4_ROOT_CLK>;
764 status = "disabled";
765 };
766
767 uart4: serial@30a60000 {
768 compatible = "fsl,imx7d-uart",
769 "fsl,imx6q-uart";
770 reg = <0x30a60000 0x10000>;
771 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
772 clocks = <&clks IMX7D_UART4_ROOT_CLK>,
773 <&clks IMX7D_UART4_ROOT_CLK>;
774 clock-names = "ipg", "per";
775 status = "disabled";
776 };
777
778 uart5: serial@30a70000 {
779 compatible = "fsl,imx7d-uart",
780 "fsl,imx6q-uart";
781 reg = <0x30a70000 0x10000>;
782 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
783 clocks = <&clks IMX7D_UART5_ROOT_CLK>,
784 <&clks IMX7D_UART5_ROOT_CLK>;
785 clock-names = "ipg", "per";
786 status = "disabled";
787 };
788
789 uart6: serial@30a80000 {
790 compatible = "fsl,imx7d-uart",
791 "fsl,imx6q-uart";
792 reg = <0x30a80000 0x10000>;
793 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
794 clocks = <&clks IMX7D_UART6_ROOT_CLK>,
795 <&clks IMX7D_UART6_ROOT_CLK>;
796 clock-names = "ipg", "per";
797 status = "disabled";
798 };
799
800 uart7: serial@30a90000 {
801 compatible = "fsl,imx7d-uart",
802 "fsl,imx6q-uart";
803 reg = <0x30a90000 0x10000>;
804 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
805 clocks = <&clks IMX7D_UART7_ROOT_CLK>,
806 <&clks IMX7D_UART7_ROOT_CLK>;
807 clock-names = "ipg", "per";
808 status = "disabled";
809 };
810
811 usbotg1: usb@30b10000 {
812 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
813 reg = <0x30b10000 0x200>;
814 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
815 clocks = <&clks IMX7D_USB_CTRL_CLK>;
816 fsl,usbphy = <&usbphynop1>;
817 fsl,usbmisc = <&usbmisc1 0>;
818 phy-clkgate-delay-us = <400>;
819 status = "disabled";
820 };
821
822 usbotg2: usb@30b20000 {
823 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
824 reg = <0x30b20000 0x200>;
825 interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
826 clocks = <&clks IMX7D_USB_CTRL_CLK>;
827 fsl,usbphy = <&usbphynop2>;
828 fsl,usbmisc = <&usbmisc2 0>;
829 phy-clkgate-delay-us = <400>;
830 status = "disabled";
831 };
832
833 usbh: usb@30b30000 {
834 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
835 reg = <0x30b30000 0x200>;
836 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
837 clocks = <&clks IMX7D_USB_CTRL_CLK>;
838 fsl,usbphy = <&usbphynop3>;
839 fsl,usbmisc = <&usbmisc3 0>;
840 phy_type = "hsic";
841 dr_mode = "host";
842 phy-clkgate-delay-us = <400>;
843 status = "disabled";
844 };
845
846 usbmisc1: usbmisc@30b10200 {
847 #index-cells = <1>;
848 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
849 reg = <0x30b10200 0x200>;
850 };
851
852 usbmisc2: usbmisc@30b20200 {
853 #index-cells = <1>;
854 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
855 reg = <0x30b20200 0x200>;
856 };
857
858 usbmisc3: usbmisc@30b30200 {
859 #index-cells = <1>;
860 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
861 reg = <0x30b30200 0x200>;
862 };
863
864 usbphynop1: usbphynop1 {
865 compatible = "usb-nop-xceiv";
866 clocks = <&clks IMX7D_USB_PHY1_CLK>;
867 clock-names = "main_clk";
868 };
869
870 usbphynop2: usbphynop2 {
871 compatible = "usb-nop-xceiv";
872 clocks = <&clks IMX7D_USB_PHY2_CLK>;
873 clock-names = "main_clk";
874 };
875
876 usbphynop3: usbphynop3 {
877 compatible = "usb-nop-xceiv";
878 clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>;
879 clock-names = "main_clk";
880 };
881
882 usdhc1: usdhc@30b40000 {
883 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
884 reg = <0x30b40000 0x10000>;
885 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
886 clocks = <&clks IMX7D_CLK_DUMMY>,
887 <&clks IMX7D_CLK_DUMMY>,
888 <&clks IMX7D_USDHC1_ROOT_CLK>;
889 clock-names = "ipg", "ahb", "per";
890 bus-width = <4>;
891 status = "disabled";
892 };
893 88
894 usdhc2: usdhc@30b50000 { 89 usbmisc2: usbmisc@30b20200 {
895 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc"; 90 #index-cells = <1>;
896 reg = <0x30b50000 0x10000>; 91 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
897 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>; 92 reg = <0x30b20200 0x200>;
898 clocks = <&clks IMX7D_CLK_DUMMY>, 93 };
899 <&clks IMX7D_CLK_DUMMY>,
900 <&clks IMX7D_USDHC2_ROOT_CLK>;
901 clock-names = "ipg", "ahb", "per";
902 bus-width = <4>;
903 status = "disabled";
904 };
905 94
906 usdhc3: usdhc@30b60000 { 95 usbphynop2: usbphynop2 {
907 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc"; 96 compatible = "usb-nop-xceiv";
908 reg = <0x30b60000 0x10000>; 97 clocks = <&clks IMX7D_USB_PHY2_CLK>;
909 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; 98 clock-names = "main_clk";
910 clocks = <&clks IMX7D_CLK_DUMMY>, 99 };
911 <&clks IMX7D_CLK_DUMMY>,
912 <&clks IMX7D_USDHC3_ROOT_CLK>;
913 clock-names = "ipg", "ahb", "per";
914 bus-width = <4>;
915 status = "disabled";
916 };
917 100
918 fec1: ethernet@30be0000 { 101 fec2: ethernet@30bf0000 {
919 compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec"; 102 compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
920 reg = <0x30be0000 0x10000>; 103 reg = <0x30bf0000 0x10000>;
921 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>, 104 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
922 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>, 105 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
923 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 106 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
924 clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>, 107 clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
925 <&clks IMX7D_ENET_AXI_ROOT_CLK>, 108 <&clks IMX7D_ENET_AXI_ROOT_CLK>,
926 <&clks IMX7D_ENET1_TIME_ROOT_CLK>, 109 <&clks IMX7D_ENET2_TIME_ROOT_CLK>,
927 <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>, 110 <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
928 <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>; 111 <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
929 clock-names = "ipg", "ahb", "ptp", 112 clock-names = "ipg", "ahb", "ptp",
930 "enet_clk_ref", "enet_out"; 113 "enet_clk_ref", "enet_out";
931 fsl,num-tx-queues=<3>; 114 fsl,num-tx-queues=<3>;
932 fsl,num-rx-queues=<3>; 115 fsl,num-rx-queues=<3>;
933 status = "disabled"; 116 status = "disabled";
934 }; 117 };
118};
935 119
936 fec2: ethernet@30bf0000 { 120&ca_funnel_ports {
937 compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec"; 121 port@1 {
938 reg = <0x30bf0000 0x10000>; 122 reg = <1>;
939 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, 123 ca_funnel_in_port1: endpoint {
940 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, 124 slave-mode;
941 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 125 remote-endpoint = <&etm1_out_port>;
942 clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
943 <&clks IMX7D_ENET_AXI_ROOT_CLK>,
944 <&clks IMX7D_ENET2_TIME_ROOT_CLK>,
945 <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
946 <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
947 clock-names = "ipg", "ahb", "ptp",
948 "enet_clk_ref", "enet_out";
949 fsl,num-tx-queues=<3>;
950 fsl,num-rx-queues=<3>;
951 status = "disabled";
952 };
953 }; 126 };
954 }; 127 };
955}; 128};
diff --git a/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts b/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts
new file mode 100644
index 000000000000..bd2a49c1ade6
--- /dev/null
+++ b/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts
@@ -0,0 +1,51 @@
1/*
2 * Copyright 2016 Toradex AG
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 "imx7s-colibri.dtsi"
45#include "imx7-colibri-eval-v3.dtsi"
46
47/ {
48 model = "Toradex Colibri iMX7S on Colibri Evaluation Board V3";
49 compatible = "toradex,colibri-imx7s-eval-v3", "toradex,colibri-imx7s",
50 "fsl,imx7s";
51};
diff --git a/arch/arm/boot/dts/imx7s-colibri.dtsi b/arch/arm/boot/dts/imx7s-colibri.dtsi
new file mode 100644
index 000000000000..b81013455b21
--- /dev/null
+++ b/arch/arm/boot/dts/imx7s-colibri.dtsi
@@ -0,0 +1,50 @@
1/*
2 * Copyright 2016 Toradex AG
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43#include "imx7s.dtsi"
44#include "imx7-colibri.dtsi"
45
46/ {
47 memory {
48 reg = <0x80000000 0x10000000>;
49 };
50};
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
new file mode 100644
index 000000000000..1e90bdbe3a6e
--- /dev/null
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -0,0 +1,933 @@
1/*
2 * Copyright 2015 Freescale Semiconductor, Inc.
3 * Copyright 2016 Toradex AG
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44#include <dt-bindings/clock/imx7d-clock.h>
45#include <dt-bindings/gpio/gpio.h>
46#include <dt-bindings/input/input.h>
47#include <dt-bindings/interrupt-controller/arm-gic.h>
48#include "imx7d-pinfunc.h"
49#include "skeleton.dtsi"
50
51/ {
52 aliases {
53 gpio0 = &gpio1;
54 gpio1 = &gpio2;
55 gpio2 = &gpio3;
56 gpio3 = &gpio4;
57 gpio4 = &gpio5;
58 gpio5 = &gpio6;
59 gpio6 = &gpio7;
60 i2c0 = &i2c1;
61 i2c1 = &i2c2;
62 i2c2 = &i2c3;
63 i2c3 = &i2c4;
64 mmc0 = &usdhc1;
65 mmc1 = &usdhc2;
66 mmc2 = &usdhc3;
67 serial0 = &uart1;
68 serial1 = &uart2;
69 serial2 = &uart3;
70 serial3 = &uart4;
71 serial4 = &uart5;
72 serial5 = &uart6;
73 serial6 = &uart7;
74 spi0 = &ecspi1;
75 spi1 = &ecspi2;
76 spi2 = &ecspi3;
77 spi3 = &ecspi4;
78 };
79
80 cpus {
81 #address-cells = <1>;
82 #size-cells = <0>;
83
84 cpu0: cpu@0 {
85 compatible = "arm,cortex-a7";
86 device_type = "cpu";
87 reg = <0>;
88 operating-points = <
89 /* KHz uV */
90 996000 1075000
91 792000 975000
92 >;
93 clock-latency = <61036>; /* two CLK32 periods */
94 clocks = <&clks IMX7D_CLK_ARM>;
95 };
96 };
97
98 intc: interrupt-controller@31001000 {
99 compatible = "arm,cortex-a7-gic";
100 #interrupt-cells = <3>;
101 interrupt-controller;
102 reg = <0x31001000 0x1000>,
103 <0x31002000 0x1000>,
104 <0x31004000 0x2000>,
105 <0x31006000 0x2000>;
106 };
107
108 ckil: clock-cki {
109 compatible = "fixed-clock";
110 #clock-cells = <0>;
111 clock-frequency = <32768>;
112 clock-output-names = "ckil";
113 };
114
115 osc: clock-osc {
116 compatible = "fixed-clock";
117 #clock-cells = <0>;
118 clock-frequency = <24000000>;
119 clock-output-names = "osc";
120 };
121
122 timer {
123 compatible = "arm,armv7-timer";
124 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
125 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
126 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
127 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
128 interrupt-parent = <&intc>;
129 };
130
131 etr@30086000 {
132 compatible = "arm,coresight-tmc", "arm,primecell";
133 reg = <0x30086000 0x1000>;
134 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
135 clock-names = "apb_pclk";
136
137 port {
138 etr_in_port: endpoint {
139 slave-mode;
140 remote-endpoint = <&replicator_out_port1>;
141 };
142 };
143 };
144
145 tpiu@30087000 {
146 compatible = "arm,coresight-tpiu", "arm,primecell";
147 reg = <0x30087000 0x1000>;
148 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
149 clock-names = "apb_pclk";
150
151 port {
152 tpiu_in_port: endpoint {
153 slave-mode;
154 remote-endpoint = <&replicator_out_port1>;
155 };
156 };
157 };
158
159 replicator {
160 /*
161 * non-configurable replicators don't show up on the
162 * AMBA bus. As such no need to add "arm,primecell"
163 */
164 compatible = "arm,coresight-replicator";
165
166 ports {
167 #address-cells = <1>;
168 #size-cells = <0>;
169
170 /* replicator output ports */
171 port@0 {
172 reg = <0>;
173 replicator_out_port0: endpoint {
174 remote-endpoint = <&tpiu_in_port>;
175 };
176 };
177
178 port@1 {
179 reg = <1>;
180 replicator_out_port1: endpoint {
181 remote-endpoint = <&etr_in_port>;
182 };
183 };
184
185 /* replicator input port */
186 port@2 {
187 reg = <0>;
188 replicator_in_port0: endpoint {
189 slave-mode;
190 remote-endpoint = <&etf_out_port>;
191 };
192 };
193 };
194 };
195
196 etf@30084000 {
197 compatible = "arm,coresight-tmc", "arm,primecell";
198 reg = <0x30084000 0x1000>;
199 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
200 clock-names = "apb_pclk";
201
202 ports {
203 #address-cells = <1>;
204 #size-cells = <0>;
205
206 port@0 {
207 reg = <0>;
208 etf_in_port: endpoint {
209 slave-mode;
210 remote-endpoint = <&hugo_funnel_out_port0>;
211 };
212 };
213
214 port@1 {
215 reg = <0>;
216 etf_out_port: endpoint {
217 remote-endpoint = <&replicator_in_port0>;
218 };
219 };
220 };
221 };
222
223 funnel@30083000 {
224 compatible = "arm,coresight-funnel", "arm,primecell";
225 reg = <0x30083000 0x1000>;
226 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
227 clock-names = "apb_pclk";
228
229 ports {
230 #address-cells = <1>;
231 #size-cells = <0>;
232
233 /* funnel input ports */
234 port@0 {
235 reg = <0>;
236 hugo_funnel_in_port0: endpoint {
237 slave-mode;
238 remote-endpoint = <&ca_funnel_out_port0>;
239 };
240 };
241
242 port@1 {
243 reg = <1>;
244 hugo_funnel_in_port1: endpoint {
245 slave-mode; /* M4 input */
246 };
247 };
248
249 port@2 {
250 reg = <0>;
251 hugo_funnel_out_port0: endpoint {
252 remote-endpoint = <&etf_in_port>;
253 };
254 };
255
256 /* the other input ports are not connect to anything */
257 };
258 };
259
260 funnel@30041000 {
261 compatible = "arm,coresight-funnel", "arm,primecell";
262 reg = <0x30041000 0x1000>;
263 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
264 clock-names = "apb_pclk";
265
266 ca_funnel_ports: ports {
267 #address-cells = <1>;
268 #size-cells = <0>;
269
270 /* funnel input ports */
271 port@0 {
272 reg = <0>;
273 ca_funnel_in_port0: endpoint {
274 slave-mode;
275 remote-endpoint = <&etm0_out_port>;
276 };
277 };
278
279 /* funnel output port */
280 port@2 {
281 reg = <0>;
282 ca_funnel_out_port0: endpoint {
283 remote-endpoint = <&hugo_funnel_in_port0>;
284 };
285 };
286
287 /* the other input ports are not connect to anything */
288 };
289 };
290
291 etm@3007c000 {
292 compatible = "arm,coresight-etm3x", "arm,primecell";
293 reg = <0x3007c000 0x1000>;
294 cpu = <&cpu0>;
295 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
296 clock-names = "apb_pclk";
297
298 port {
299 etm0_out_port: endpoint {
300 remote-endpoint = <&ca_funnel_in_port0>;
301 };
302 };
303 };
304
305 soc {
306 #address-cells = <1>;
307 #size-cells = <1>;
308 compatible = "simple-bus";
309 interrupt-parent = <&intc>;
310 ranges;
311
312 aips1: aips-bus@30000000 {
313 compatible = "fsl,aips-bus", "simple-bus";
314 #address-cells = <1>;
315 #size-cells = <1>;
316 reg = <0x30000000 0x400000>;
317 ranges;
318
319 gpio1: gpio@30200000 {
320 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
321 reg = <0x30200000 0x10000>;
322 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>, /* GPIO1_INT15_0 */
323 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; /* GPIO1_INT31_16 */
324 gpio-controller;
325 #gpio-cells = <2>;
326 interrupt-controller;
327 #interrupt-cells = <2>;
328 };
329
330 gpio2: gpio@30210000 {
331 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
332 reg = <0x30210000 0x10000>;
333 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
334 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
335 gpio-controller;
336 #gpio-cells = <2>;
337 interrupt-controller;
338 #interrupt-cells = <2>;
339 };
340
341 gpio3: gpio@30220000 {
342 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
343 reg = <0x30220000 0x10000>;
344 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
345 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
346 gpio-controller;
347 #gpio-cells = <2>;
348 interrupt-controller;
349 #interrupt-cells = <2>;
350 };
351
352 gpio4: gpio@30230000 {
353 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
354 reg = <0x30230000 0x10000>;
355 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
356 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
357 gpio-controller;
358 #gpio-cells = <2>;
359 interrupt-controller;
360 #interrupt-cells = <2>;
361 };
362
363 gpio5: gpio@30240000 {
364 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
365 reg = <0x30240000 0x10000>;
366 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
367 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
368 gpio-controller;
369 #gpio-cells = <2>;
370 interrupt-controller;
371 #interrupt-cells = <2>;
372 };
373
374 gpio6: gpio@30250000 {
375 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
376 reg = <0x30250000 0x10000>;
377 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
378 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
379 gpio-controller;
380 #gpio-cells = <2>;
381 interrupt-controller;
382 #interrupt-cells = <2>;
383 };
384
385 gpio7: gpio@30260000 {
386 compatible = "fsl,imx7d-gpio", "fsl,imx35-gpio";
387 reg = <0x30260000 0x10000>;
388 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
390 gpio-controller;
391 #gpio-cells = <2>;
392 interrupt-controller;
393 #interrupt-cells = <2>;
394 };
395
396 wdog1: wdog@30280000 {
397 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
398 reg = <0x30280000 0x10000>;
399 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
400 clocks = <&clks IMX7D_WDOG1_ROOT_CLK>;
401 };
402
403 wdog2: wdog@30290000 {
404 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
405 reg = <0x30290000 0x10000>;
406 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
407 clocks = <&clks IMX7D_WDOG2_ROOT_CLK>;
408 status = "disabled";
409 };
410
411 wdog3: wdog@302a0000 {
412 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
413 reg = <0x302a0000 0x10000>;
414 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
415 clocks = <&clks IMX7D_WDOG3_ROOT_CLK>;
416 status = "disabled";
417 };
418
419 wdog4: wdog@302b0000 {
420 compatible = "fsl,imx7d-wdt", "fsl,imx21-wdt";
421 reg = <0x302b0000 0x10000>;
422 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
423 clocks = <&clks IMX7D_WDOG4_ROOT_CLK>;
424 status = "disabled";
425 };
426
427 iomuxc_lpsr: iomuxc-lpsr@302c0000 {
428 compatible = "fsl,imx7d-iomuxc-lpsr";
429 reg = <0x302c0000 0x10000>;
430 fsl,input-sel = <&iomuxc>;
431 };
432
433 gpt1: gpt@302d0000 {
434 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
435 reg = <0x302d0000 0x10000>;
436 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
437 clocks = <&clks IMX7D_CLK_DUMMY>,
438 <&clks IMX7D_GPT1_ROOT_CLK>;
439 clock-names = "ipg", "per";
440 };
441
442 gpt2: gpt@302e0000 {
443 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
444 reg = <0x302e0000 0x10000>;
445 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
446 clocks = <&clks IMX7D_CLK_DUMMY>,
447 <&clks IMX7D_GPT2_ROOT_CLK>;
448 clock-names = "ipg", "per";
449 status = "disabled";
450 };
451
452 gpt3: gpt@302f0000 {
453 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
454 reg = <0x302f0000 0x10000>;
455 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
456 clocks = <&clks IMX7D_CLK_DUMMY>,
457 <&clks IMX7D_GPT3_ROOT_CLK>;
458 clock-names = "ipg", "per";
459 status = "disabled";
460 };
461
462 gpt4: gpt@30300000 {
463 compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
464 reg = <0x30300000 0x10000>;
465 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
466 clocks = <&clks IMX7D_CLK_DUMMY>,
467 <&clks IMX7D_GPT4_ROOT_CLK>;
468 clock-names = "ipg", "per";
469 status = "disabled";
470 };
471
472 iomuxc: iomuxc@30330000 {
473 compatible = "fsl,imx7d-iomuxc";
474 reg = <0x30330000 0x10000>;
475 };
476
477 gpr: iomuxc-gpr@30340000 {
478 compatible = "fsl,imx7d-iomuxc-gpr", "syscon";
479 reg = <0x30340000 0x10000>;
480 };
481
482 ocotp: ocotp-ctrl@30350000 {
483 compatible = "syscon";
484 reg = <0x30350000 0x10000>;
485 clocks = <&clks IMX7D_CLK_DUMMY>;
486 status = "disabled";
487 };
488
489 anatop: anatop@30360000 {
490 compatible = "fsl,imx7d-anatop", "fsl,imx6q-anatop",
491 "syscon", "simple-bus";
492 reg = <0x30360000 0x10000>;
493 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
494 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
495
496 reg_1p0d: regulator-vdd1p0d {
497 compatible = "fsl,anatop-regulator";
498 regulator-name = "vdd1p0d";
499 regulator-min-microvolt = <800000>;
500 regulator-max-microvolt = <1200000>;
501 anatop-reg-offset = <0x210>;
502 anatop-vol-bit-shift = <8>;
503 anatop-vol-bit-width = <5>;
504 anatop-min-bit-val = <8>;
505 anatop-min-voltage = <800000>;
506 anatop-max-voltage = <1200000>;
507 anatop-enable-bit = <31>;
508 };
509 };
510
511 snvs: snvs@30370000 {
512 compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
513 reg = <0x30370000 0x10000>;
514
515 snvs_rtc: snvs-rtc-lp {
516 compatible = "fsl,sec-v4.0-mon-rtc-lp";
517 regmap = <&snvs>;
518 offset = <0x34>;
519 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
520 <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
521 };
522
523 snvs_poweroff: snvs-poweroff {
524 compatible = "syscon-poweroff";
525 regmap = <&snvs>;
526 offset = <0x38>;
527 mask = <0x60>;
528 };
529
530 snvs_pwrkey: snvs-powerkey {
531 compatible = "fsl,sec-v4.0-pwrkey";
532 regmap = <&snvs>;
533 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
534 linux,keycode = <KEY_POWER>;
535 wakeup-source;
536 };
537 };
538
539 clks: ccm@30380000 {
540 compatible = "fsl,imx7d-ccm";
541 reg = <0x30380000 0x10000>;
542 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
543 <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
544 #clock-cells = <1>;
545 clocks = <&ckil>, <&osc>;
546 clock-names = "ckil", "osc";
547 };
548
549 src: src@30390000 {
550 compatible = "fsl,imx7d-src", "fsl,imx51-src", "syscon";
551 reg = <0x30390000 0x10000>;
552 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
553 #reset-cells = <1>;
554 };
555 };
556
557 aips2: aips-bus@30400000 {
558 compatible = "fsl,aips-bus", "simple-bus";
559 #address-cells = <1>;
560 #size-cells = <1>;
561 reg = <0x30400000 0x400000>;
562 ranges;
563
564 adc1: adc@30610000 {
565 compatible = "fsl,imx7d-adc";
566 reg = <0x30610000 0x10000>;
567 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
568 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
569 clock-names = "adc";
570 status = "disabled";
571 };
572
573 adc2: adc@30620000 {
574 compatible = "fsl,imx7d-adc";
575 reg = <0x30620000 0x10000>;
576 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&clks IMX7D_ADC_ROOT_CLK>;
578 clock-names = "adc";
579 status = "disabled";
580 };
581
582 ecspi4: ecspi@30630000 {
583 #address-cells = <1>;
584 #size-cells = <0>;
585 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
586 reg = <0x30630000 0x10000>;
587 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
588 clocks = <&clks IMX7D_ECSPI4_ROOT_CLK>,
589 <&clks IMX7D_ECSPI4_ROOT_CLK>;
590 clock-names = "ipg", "per";
591 status = "disabled";
592 };
593
594 pwm1: pwm@30660000 {
595 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
596 reg = <0x30660000 0x10000>;
597 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
598 clocks = <&clks IMX7D_PWM1_ROOT_CLK>,
599 <&clks IMX7D_PWM1_ROOT_CLK>;
600 clock-names = "ipg", "per";
601 #pwm-cells = <2>;
602 status = "disabled";
603 };
604
605 pwm2: pwm@30670000 {
606 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
607 reg = <0x30670000 0x10000>;
608 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
609 clocks = <&clks IMX7D_PWM2_ROOT_CLK>,
610 <&clks IMX7D_PWM2_ROOT_CLK>;
611 clock-names = "ipg", "per";
612 #pwm-cells = <2>;
613 status = "disabled";
614 };
615
616 pwm3: pwm@30680000 {
617 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
618 reg = <0x30680000 0x10000>;
619 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
620 clocks = <&clks IMX7D_PWM3_ROOT_CLK>,
621 <&clks IMX7D_PWM3_ROOT_CLK>;
622 clock-names = "ipg", "per";
623 #pwm-cells = <2>;
624 status = "disabled";
625 };
626
627 pwm4: pwm@30690000 {
628 compatible = "fsl,imx7d-pwm", "fsl,imx27-pwm";
629 reg = <0x30690000 0x10000>;
630 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
631 clocks = <&clks IMX7D_PWM4_ROOT_CLK>,
632 <&clks IMX7D_PWM4_ROOT_CLK>;
633 clock-names = "ipg", "per";
634 #pwm-cells = <2>;
635 status = "disabled";
636 };
637
638 lcdif: lcdif@30730000 {
639 compatible = "fsl,imx7d-lcdif", "fsl,imx28-lcdif";
640 reg = <0x30730000 0x10000>;
641 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
642 clocks = <&clks IMX7D_LCDIF_PIXEL_ROOT_CLK>,
643 <&clks IMX7D_CLK_DUMMY>,
644 <&clks IMX7D_CLK_DUMMY>;
645 clock-names = "pix", "axi", "disp_axi";
646 status = "disabled";
647 };
648 };
649
650 aips3: aips-bus@30800000 {
651 compatible = "fsl,aips-bus", "simple-bus";
652 #address-cells = <1>;
653 #size-cells = <1>;
654 reg = <0x30800000 0x400000>;
655 ranges;
656
657 ecspi1: ecspi@30820000 {
658 #address-cells = <1>;
659 #size-cells = <0>;
660 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
661 reg = <0x30820000 0x10000>;
662 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
663 clocks = <&clks IMX7D_ECSPI1_ROOT_CLK>,
664 <&clks IMX7D_ECSPI1_ROOT_CLK>;
665 clock-names = "ipg", "per";
666 status = "disabled";
667 };
668
669 ecspi2: ecspi@30830000 {
670 #address-cells = <1>;
671 #size-cells = <0>;
672 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
673 reg = <0x30830000 0x10000>;
674 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
675 clocks = <&clks IMX7D_ECSPI2_ROOT_CLK>,
676 <&clks IMX7D_ECSPI2_ROOT_CLK>;
677 clock-names = "ipg", "per";
678 status = "disabled";
679 };
680
681 ecspi3: ecspi@30840000 {
682 #address-cells = <1>;
683 #size-cells = <0>;
684 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
685 reg = <0x30840000 0x10000>;
686 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
687 clocks = <&clks IMX7D_ECSPI3_ROOT_CLK>,
688 <&clks IMX7D_ECSPI3_ROOT_CLK>;
689 clock-names = "ipg", "per";
690 status = "disabled";
691 };
692
693 uart1: serial@30860000 {
694 compatible = "fsl,imx7d-uart",
695 "fsl,imx6q-uart";
696 reg = <0x30860000 0x10000>;
697 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
698 clocks = <&clks IMX7D_UART1_ROOT_CLK>,
699 <&clks IMX7D_UART1_ROOT_CLK>;
700 clock-names = "ipg", "per";
701 status = "disabled";
702 };
703
704 uart2: serial@30890000 {
705 compatible = "fsl,imx7d-uart",
706 "fsl,imx6q-uart";
707 reg = <0x30890000 0x10000>;
708 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
709 clocks = <&clks IMX7D_UART2_ROOT_CLK>,
710 <&clks IMX7D_UART2_ROOT_CLK>;
711 clock-names = "ipg", "per";
712 status = "disabled";
713 };
714
715 uart3: serial@30880000 {
716 compatible = "fsl,imx7d-uart",
717 "fsl,imx6q-uart";
718 reg = <0x30880000 0x10000>;
719 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
720 clocks = <&clks IMX7D_UART3_ROOT_CLK>,
721 <&clks IMX7D_UART3_ROOT_CLK>;
722 clock-names = "ipg", "per";
723 status = "disabled";
724 };
725
726 flexcan1: can@30a00000 {
727 compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
728 reg = <0x30a00000 0x10000>;
729 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
730 clocks = <&clks IMX7D_CLK_DUMMY>,
731 <&clks IMX7D_CAN1_ROOT_CLK>;
732 clock-names = "ipg", "per";
733 status = "disabled";
734 };
735
736 flexcan2: can@30a10000 {
737 compatible = "fsl,imx7d-flexcan", "fsl,imx6q-flexcan";
738 reg = <0x30a10000 0x10000>;
739 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
740 clocks = <&clks IMX7D_CLK_DUMMY>,
741 <&clks IMX7D_CAN2_ROOT_CLK>;
742 clock-names = "ipg", "per";
743 status = "disabled";
744 };
745
746 i2c1: i2c@30a20000 {
747 #address-cells = <1>;
748 #size-cells = <0>;
749 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
750 reg = <0x30a20000 0x10000>;
751 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
752 clocks = <&clks IMX7D_I2C1_ROOT_CLK>;
753 status = "disabled";
754 };
755
756 i2c2: i2c@30a30000 {
757 #address-cells = <1>;
758 #size-cells = <0>;
759 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
760 reg = <0x30a30000 0x10000>;
761 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
762 clocks = <&clks IMX7D_I2C2_ROOT_CLK>;
763 status = "disabled";
764 };
765
766 i2c3: i2c@30a40000 {
767 #address-cells = <1>;
768 #size-cells = <0>;
769 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
770 reg = <0x30a40000 0x10000>;
771 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
772 clocks = <&clks IMX7D_I2C3_ROOT_CLK>;
773 status = "disabled";
774 };
775
776 i2c4: i2c@30a50000 {
777 #address-cells = <1>;
778 #size-cells = <0>;
779 compatible = "fsl,imx7d-i2c", "fsl,imx21-i2c";
780 reg = <0x30a50000 0x10000>;
781 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
782 clocks = <&clks IMX7D_I2C4_ROOT_CLK>;
783 status = "disabled";
784 };
785
786 uart4: serial@30a60000 {
787 compatible = "fsl,imx7d-uart",
788 "fsl,imx6q-uart";
789 reg = <0x30a60000 0x10000>;
790 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
791 clocks = <&clks IMX7D_UART4_ROOT_CLK>,
792 <&clks IMX7D_UART4_ROOT_CLK>;
793 clock-names = "ipg", "per";
794 status = "disabled";
795 };
796
797 uart5: serial@30a70000 {
798 compatible = "fsl,imx7d-uart",
799 "fsl,imx6q-uart";
800 reg = <0x30a70000 0x10000>;
801 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
802 clocks = <&clks IMX7D_UART5_ROOT_CLK>,
803 <&clks IMX7D_UART5_ROOT_CLK>;
804 clock-names = "ipg", "per";
805 status = "disabled";
806 };
807
808 uart6: serial@30a80000 {
809 compatible = "fsl,imx7d-uart",
810 "fsl,imx6q-uart";
811 reg = <0x30a80000 0x10000>;
812 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
813 clocks = <&clks IMX7D_UART6_ROOT_CLK>,
814 <&clks IMX7D_UART6_ROOT_CLK>;
815 clock-names = "ipg", "per";
816 status = "disabled";
817 };
818
819 uart7: serial@30a90000 {
820 compatible = "fsl,imx7d-uart",
821 "fsl,imx6q-uart";
822 reg = <0x30a90000 0x10000>;
823 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
824 clocks = <&clks IMX7D_UART7_ROOT_CLK>,
825 <&clks IMX7D_UART7_ROOT_CLK>;
826 clock-names = "ipg", "per";
827 status = "disabled";
828 };
829
830 usbotg1: usb@30b10000 {
831 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
832 reg = <0x30b10000 0x200>;
833 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
834 clocks = <&clks IMX7D_USB_CTRL_CLK>;
835 fsl,usbphy = <&usbphynop1>;
836 fsl,usbmisc = <&usbmisc1 0>;
837 phy-clkgate-delay-us = <400>;
838 status = "disabled";
839 };
840
841 usbh: usb@30b30000 {
842 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
843 reg = <0x30b30000 0x200>;
844 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
845 clocks = <&clks IMX7D_USB_CTRL_CLK>;
846 fsl,usbphy = <&usbphynop3>;
847 fsl,usbmisc = <&usbmisc3 0>;
848 phy_type = "hsic";
849 dr_mode = "host";
850 phy-clkgate-delay-us = <400>;
851 status = "disabled";
852 };
853
854 usbmisc1: usbmisc@30b10200 {
855 #index-cells = <1>;
856 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
857 reg = <0x30b10200 0x200>;
858 };
859
860 usbmisc3: usbmisc@30b30200 {
861 #index-cells = <1>;
862 compatible = "fsl,imx7d-usbmisc", "fsl,imx6q-usbmisc";
863 reg = <0x30b30200 0x200>;
864 };
865
866 usbphynop1: usbphynop1 {
867 compatible = "usb-nop-xceiv";
868 clocks = <&clks IMX7D_USB_PHY1_CLK>;
869 clock-names = "main_clk";
870 };
871
872 usbphynop3: usbphynop3 {
873 compatible = "usb-nop-xceiv";
874 clocks = <&clks IMX7D_USB_HSIC_ROOT_CLK>;
875 clock-names = "main_clk";
876 };
877
878 usdhc1: usdhc@30b40000 {
879 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
880 reg = <0x30b40000 0x10000>;
881 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
882 clocks = <&clks IMX7D_CLK_DUMMY>,
883 <&clks IMX7D_CLK_DUMMY>,
884 <&clks IMX7D_USDHC1_ROOT_CLK>;
885 clock-names = "ipg", "ahb", "per";
886 bus-width = <4>;
887 status = "disabled";
888 };
889
890 usdhc2: usdhc@30b50000 {
891 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
892 reg = <0x30b50000 0x10000>;
893 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
894 clocks = <&clks IMX7D_CLK_DUMMY>,
895 <&clks IMX7D_CLK_DUMMY>,
896 <&clks IMX7D_USDHC2_ROOT_CLK>;
897 clock-names = "ipg", "ahb", "per";
898 bus-width = <4>;
899 status = "disabled";
900 };
901
902 usdhc3: usdhc@30b60000 {
903 compatible = "fsl,imx7d-usdhc", "fsl,imx6sl-usdhc";
904 reg = <0x30b60000 0x10000>;
905 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
906 clocks = <&clks IMX7D_CLK_DUMMY>,
907 <&clks IMX7D_CLK_DUMMY>,
908 <&clks IMX7D_USDHC3_ROOT_CLK>;
909 clock-names = "ipg", "ahb", "per";
910 bus-width = <4>;
911 status = "disabled";
912 };
913
914 fec1: ethernet@30be0000 {
915 compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec";
916 reg = <0x30be0000 0x10000>;
917 interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
918 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
919 <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
920 clocks = <&clks IMX7D_ENET_AXI_ROOT_CLK>,
921 <&clks IMX7D_ENET_AXI_ROOT_CLK>,
922 <&clks IMX7D_ENET1_TIME_ROOT_CLK>,
923 <&clks IMX7D_PLL_ENET_MAIN_125M_CLK>,
924 <&clks IMX7D_ENET_PHY_REF_ROOT_CLK>;
925 clock-names = "ipg", "ahb", "ptp",
926 "enet_clk_ref", "enet_out";
927 fsl,num-tx-queues=<3>;
928 fsl,num-rx-queues=<3>;
929 status = "disabled";
930 };
931 };
932 };
933};
diff --git a/arch/arm/boot/dts/keystone-k2e.dtsi b/arch/arm/boot/dts/keystone-k2e.dtsi
index 96b349fb0430..9a51b8c88581 100644
--- a/arch/arm/boot/dts/keystone-k2e.dtsi
+++ b/arch/arm/boot/dts/keystone-k2e.dtsi
@@ -96,13 +96,16 @@
96 #address-cells = <3>; 96 #address-cells = <3>;
97 #size-cells = <2>; 97 #size-cells = <2>;
98 reg = <0x21021000 0x2000>, <0x21020000 0x1000>, <0x02620128 4>; 98 reg = <0x21021000 0x2000>, <0x21020000 0x1000>, <0x02620128 4>;
99 ranges = <0x81000000 0 0 0x23260000 0x4000 0x4000 99 ranges = <0x82000000 0 0x60000000 0x60000000
100 0x82000000 0 0x60000000 0x60000000 0 0x10000000>; 100 0 0x10000000>;
101 101
102 status = "disabled"; 102 status = "disabled";
103 device_type = "pci"; 103 device_type = "pci";
104 num-lanes = <2>; 104 num-lanes = <2>;
105 bus-range = <0x00 0xff>;
105 106
107 /* error interrupt */
108 interrupts = <GIC_SPI 385 IRQ_TYPE_EDGE_RISING>;
106 #interrupt-cells = <1>; 109 #interrupt-cells = <1>;
107 interrupt-map-mask = <0 0 0 7>; 110 interrupt-map-mask = <0 0 0 7>;
108 interrupt-map = <0 0 0 1 &pcie_intc1 0>, /* INT A */ 111 interrupt-map = <0 0 0 1 &pcie_intc1 0>, /* INT A */
diff --git a/arch/arm/boot/dts/keystone-k2g-evm.dts b/arch/arm/boot/dts/keystone-k2g-evm.dts
index 5bfd9e7845f2..692fcbb1434a 100644
--- a/arch/arm/boot/dts/keystone-k2g-evm.dts
+++ b/arch/arm/boot/dts/keystone-k2g-evm.dts
@@ -27,6 +27,17 @@
27 27
28}; 28};
29 29
30&k2g_pinctrl {
31 uart0_pins: pinmux_uart0_pins {
32 pinctrl-single,pins = <
33 K2G_CORE_IOPAD(0x11cc) (BUFFER_CLASS_B | PULL_DISABLE | MUX_MODE0) /* uart0_rxd.uart0_rxd */
34 K2G_CORE_IOPAD(0x11d0) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
35 >;
36 };
37};
38
30&uart0 { 39&uart0 {
40 pinctrl-names = "default";
41 pinctrl-0 = <&uart0_pins>;
31 status = "okay"; 42 status = "okay";
32}; 43};
diff --git a/arch/arm/boot/dts/keystone-k2g.dtsi b/arch/arm/boot/dts/keystone-k2g.dtsi
index 7ff2796ae925..3372615b885c 100644
--- a/arch/arm/boot/dts/keystone-k2g.dtsi
+++ b/arch/arm/boot/dts/keystone-k2g.dtsi
@@ -14,6 +14,7 @@
14 */ 14 */
15 15
16#include <dt-bindings/interrupt-controller/arm-gic.h> 16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include <dt-bindings/pinctrl/keystone.h>
17#include "skeleton.dtsi" 18#include "skeleton.dtsi"
18 19
19/ { 20/ {
@@ -75,6 +76,13 @@
75 ranges = <0x0 0x0 0x0 0xc0000000>; 76 ranges = <0x0 0x0 0x0 0xc0000000>;
76 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; 77 dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>;
77 78
79 k2g_pinctrl: pinmux@02621000 {
80 compatible = "pinctrl-single";
81 reg = <0x02621000 0x410>;
82 pinctrl-single,register-width = <32>;
83 pinctrl-single,function-mask = <0x001b0007>;
84 };
85
78 uart0: serial@02530c00 { 86 uart0: serial@02530c00 {
79 compatible = "ns16550a"; 87 compatible = "ns16550a";
80 current-speed = <115200>; 88 current-speed = <115200>;
diff --git a/arch/arm/boot/dts/keystone-k2l.dtsi b/arch/arm/boot/dts/keystone-k2l.dtsi
index ff22ffc3dee7..2ee3d0ac2816 100644
--- a/arch/arm/boot/dts/keystone-k2l.dtsi
+++ b/arch/arm/boot/dts/keystone-k2l.dtsi
@@ -54,6 +54,155 @@
54 interrupts = <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>; 54 interrupts = <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>;
55 }; 55 };
56 56
57 k2l_pmx: pinmux@02620690 {
58 compatible = "pinctrl-single";
59 reg = <0x02620690 0xc>;
60 #address-cells = <1>;
61 #size-cells = <0>;
62 pinctrl-single,bit-per-mux;
63 pinctrl-single,register-width = <32>;
64 pinctrl-single,function-mask = <0x1>;
65 status = "disabled";
66
67 uart3_emifa_pins: pinmux_uart3_emifa_pins {
68 pinctrl-single,bits = <
69 /* UART3_EMIFA_SEL */
70 0x0 0x0 0xc0
71 >;
72 };
73
74 uart2_emifa_pins: pinmux_uart2_emifa_pins {
75 pinctrl-single,bits = <
76 /* UART2_EMIFA_SEL */
77 0x0 0x0 0x30
78 >;
79 };
80
81 uart01_spi2_pins: pinmux_uart01_spi2_pins {
82 pinctrl-single,bits = <
83 /* UART01_SPI2_SEL */
84 0x0 0x0 0x4
85 >;
86 };
87
88 dfesync_rp1_pins: pinmux_dfesync_rp1_pins{
89 pinctrl-single,bits = <
90 /* DFESYNC_RP1_SEL */
91 0x0 0x0 0x2
92 >;
93 };
94
95 avsif_pins: pinmux_avsif_pins {
96 pinctrl-single,bits = <
97 /* AVSIF_SEL */
98 0x0 0x0 0x1
99 >;
100 };
101
102 gpio_emu_pins: pinmux_gpio_emu_pins {
103 pinctrl-single,bits = <
104 /*
105 * GPIO_EMU_SEL[31]: 0-GPIO31, 1-EMU33
106 * GPIO_EMU_SEL[30]: 0-GPIO30, 1-EMU32
107 * GPIO_EMU_SEL[29]: 0-GPIO29, 1-EMU31
108 * GPIO_EMU_SEL[28]: 0-GPIO28, 1-EMU30
109 * GPIO_EMU_SEL[27]: 0-GPIO27, 1-EMU29
110 * GPIO_EMU_SEL[26]: 0-GPIO26, 1-EMU28
111 * GPIO_EMU_SEL[25]: 0-GPIO25, 1-EMU27
112 * GPIO_EMU_SEL[24]: 0-GPIO24, 1-EMU26
113 * GPIO_EMU_SEL[23]: 0-GPIO23, 1-EMU25
114 * GPIO_EMU_SEL[22]: 0-GPIO22, 1-EMU24
115 * GPIO_EMU_SEL[21]: 0-GPIO21, 1-EMU23
116 * GPIO_EMU_SEL[20]: 0-GPIO20, 1-EMU22
117 * GPIO_EMU_SEL[19]: 0-GPIO19, 1-EMU21
118 * GPIO_EMU_SEL[18]: 0-GPIO18, 1-EMU20
119 * GPIO_EMU_SEL[17]: 0-GPIO17, 1-EMU19
120 */
121 0x4 0x0000 0xFFFE0000
122 >;
123 };
124
125 gpio_timio_pins: pinmux_gpio_timio_pins {
126 pinctrl-single,bits = <
127 /*
128 * GPIO_TIMIO_SEL[15]: 0-GPIO15, 1-TIMO7
129 * GPIO_TIMIO_SEL[14]: 0-GPIO14, 1-TIMO6
130 * GPIO_TIMIO_SEL[13]: 0-GPIO13, 1-TIMO5
131 * GPIO_TIMIO_SEL[12]: 0-GPIO12, 1-TIMO4
132 * GPIO_TIMIO_SEL[11]: 0-GPIO11, 1-TIMO3
133 * GPIO_TIMIO_SEL[10]: 0-GPIO10, 1-TIMO2
134 * GPIO_TIMIO_SEL[9]: 0-GPIO9, 1-TIMI7
135 * GPIO_TIMIO_SEL[8]: 0-GPIO8, 1-TIMI6
136 * GPIO_TIMIO_SEL[7]: 0-GPIO7, 1-TIMI5
137 * GPIO_TIMIO_SEL[6]: 0-GPIO6, 1-TIMI4
138 * GPIO_TIMIO_SEL[5]: 0-GPIO5, 1-TIMI3
139 * GPIO_TIMIO_SEL[4]: 0-GPIO4, 1-TIMI2
140 */
141 0x4 0x0 0xFFF0
142 >;
143 };
144
145 gpio_spi2cs_pins: pinmux_gpio_spi2cs_pins {
146 pinctrl-single,bits = <
147 /*
148 * GPIO_SPI2CS_SEL[3]: 0-GPIO3, 1-SPI2CS4
149 * GPIO_SPI2CS_SEL[2]: 0-GPIO2, 1-SPI2CS3
150 * GPIO_SPI2CS_SEL[1]: 0-GPIO1, 1-SPI2CS2
151 * GPIO_SPI2CS_SEL[0]: 0-GPIO0, 1-SPI2CS1
152 */
153 0x4 0x0 0xF
154 >;
155 };
156
157 gpio_dfeio_pins: pinmux_gpio_dfeio_pins {
158 pinctrl-single,bits = <
159 /*
160 * GPIO_DFEIO_SEL[31]: 0-DFEIO17, 1-GPIO63
161 * GPIO_DFEIO_SEL[30]: 0-DFEIO16, 1-GPIO62
162 * GPIO_DFEIO_SEL[29]: 0-DFEIO15, 1-GPIO61
163 * GPIO_DFEIO_SEL[28]: 0-DFEIO14, 1-GPIO60
164 * GPIO_DFEIO_SEL[27]: 0-DFEIO13, 1-GPIO59
165 * GPIO_DFEIO_SEL[26]: 0-DFEIO12, 1-GPIO58
166 * GPIO_DFEIO_SEL[25]: 0-DFEIO11, 1-GPIO57
167 * GPIO_DFEIO_SEL[24]: 0-DFEIO10, 1-GPIO56
168 * GPIO_DFEIO_SEL[23]: 0-DFEIO9, 1-GPIO55
169 * GPIO_DFEIO_SEL[22]: 0-DFEIO8, 1-GPIO54
170 * GPIO_DFEIO_SEL[21]: 0-DFEIO7, 1-GPIO53
171 * GPIO_DFEIO_SEL[20]: 0-DFEIO6, 1-GPIO52
172 * GPIO_DFEIO_SEL[19]: 0-DFEIO5, 1-GPIO51
173 * GPIO_DFEIO_SEL[18]: 0-DFEIO4, 1-GPIO50
174 * GPIO_DFEIO_SEL[17]: 0-DFEIO3, 1-GPIO49
175 * GPIO_DFEIO_SEL[16]: 0-DFEIO2, 1-GPIO48
176 */
177 0x8 0x0 0xFFFF0000
178 >;
179 };
180
181 gpio_emifa_pins: pinmux_gpio_emifa_pins {
182 pinctrl-single,bits = <
183 /*
184 * GPIO_EMIFA_SEL[15]: 0-EMIFA17, 1-GPIO47
185 * GPIO_EMIFA_SEL[14]: 0-EMIFA16, 1-GPIO46
186 * GPIO_EMIFA_SEL[13]: 0-EMIFA15, 1-GPIO45
187 * GPIO_EMIFA_SEL[12]: 0-EMIFA14, 1-GPIO44
188 * GPIO_EMIFA_SEL[11]: 0-EMIFA13, 1-GPIO43
189 * GPIO_EMIFA_SEL[10]: 0-EMIFA10, 1-GPIO42
190 * GPIO_EMIFA_SEL[9]: 0-EMIFA9, 1-GPIO41
191 * GPIO_EMIFA_SEL[8]: 0-EMIFA8, 1-GPIO40
192 * GPIO_EMIFA_SEL[7]: 0-EMIFA7, 1-GPIO39
193 * GPIO_EMIFA_SEL[6]: 0-EMIFA6, 1-GPIO38
194 * GPIO_EMIFA_SEL[5]: 0-EMIFA5, 1-GPIO37
195 * GPIO_EMIFA_SEL[4]: 0-EMIFA4, 1-GPIO36
196 * GPIO_EMIFA_SEL[3]: 0-EMIFA3, 1-GPIO35
197 * GPIO_EMIFA_SEL[2]: 0-EMIFA2, 1-GPIO34
198 * GPIO_EMIFA_SEL[1]: 0-EMIFA1, 1-GPIO33
199 * GPIO_EMIFA_SEL[0]: 0-EMIFA0, 1-GPIO32
200 */
201 0x8 0x0 0xFFFF
202 >;
203 };
204 };
205
57 dspgpio0: keystone_dsp_gpio@02620240 { 206 dspgpio0: keystone_dsp_gpio@02620240 {
58 compatible = "ti,keystone-dsp-gpio"; 207 compatible = "ti,keystone-dsp-gpio";
59 gpio-controller; 208 gpio-controller;
diff --git a/arch/arm/boot/dts/keystone.dtsi b/arch/arm/boot/dts/keystone.dtsi
index e34b2265458a..e23f46d15c80 100644
--- a/arch/arm/boot/dts/keystone.dtsi
+++ b/arch/arm/boot/dts/keystone.dtsi
@@ -294,13 +294,16 @@
294 #address-cells = <3>; 294 #address-cells = <3>;
295 #size-cells = <2>; 295 #size-cells = <2>;
296 reg = <0x21801000 0x2000>, <0x21800000 0x1000>, <0x02620128 4>; 296 reg = <0x21801000 0x2000>, <0x21800000 0x1000>, <0x02620128 4>;
297 ranges = <0x81000000 0 0 0x23250000 0 0x4000 297 ranges = <0x82000000 0 0x50000000 0x50000000
298 0x82000000 0 0x50000000 0x50000000 0 0x10000000>; 298 0 0x10000000>;
299 299
300 status = "disabled"; 300 status = "disabled";
301 device_type = "pci"; 301 device_type = "pci";
302 num-lanes = <2>; 302 num-lanes = <2>;
303 bus-range = <0x00 0xff>;
303 304
305 /* error interrupt */
306 interrupts = <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>;
304 #interrupt-cells = <1>; 307 #interrupt-cells = <1>;
305 interrupt-map-mask = <0 0 0 7>; 308 interrupt-map-mask = <0 0 0 7>;
306 interrupt-map = <0 0 0 1 &pcie_intc0 0>, /* INT A */ 309 interrupt-map = <0 0 0 1 &pcie_intc0 0>, /* INT A */
diff --git a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
index 015f795a8d19..08cce17a25a0 100644
--- a/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
+++ b/arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
@@ -72,7 +72,7 @@
72 }; 72 };
73 }; 73 };
74 74
75 pwm10: dmtimer-pwm@10 { 75 pwm10: dmtimer-pwm {
76 compatible = "ti,omap-dmtimer-pwm"; 76 compatible = "ti,omap-dmtimer-pwm";
77 pinctrl-names = "default"; 77 pinctrl-names = "default";
78 pinctrl-0 = <&pwm_pins>; 78 pinctrl-0 = <&pwm_pins>;
@@ -147,7 +147,7 @@
147 gpio = <&gpio5 27 GPIO_ACTIVE_HIGH>; /* gpio155, lcd INI */ 147 gpio = <&gpio5 27 GPIO_ACTIVE_HIGH>; /* gpio155, lcd INI */
148 }; 148 };
149 149
150 lcd0: display@0 { 150 lcd0: display {
151 compatible = "panel-dpi"; 151 compatible = "panel-dpi";
152 label = "15"; 152 label = "15";
153 status = "okay"; 153 status = "okay";
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index 5ae8e9297e9a..368e21934285 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -626,6 +626,7 @@
626 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 626 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
627 dr_mode = "host"; 627 dr_mode = "host";
628 snps,quirk-frame-length-adjustment = <0x20>; 628 snps,quirk-frame-length-adjustment = <0x20>;
629 snps,dis_rxdet_inp3_quirk;
629 }; 630 };
630 631
631 pcie@3400000 { 632 pcie@3400000 {
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
index 2bfe401a4da9..fc4080de4b7b 100644
--- a/arch/arm/boot/dts/meson8b.dtsi
+++ b/arch/arm/boot/dts/meson8b.dtsi
@@ -46,6 +46,7 @@
46 46
47#include <dt-bindings/clock/meson8b-clkc.h> 47#include <dt-bindings/clock/meson8b-clkc.h>
48#include <dt-bindings/gpio/meson8b-gpio.h> 48#include <dt-bindings/gpio/meson8b-gpio.h>
49#include <dt-bindings/reset/amlogic,meson8b-reset.h>
49#include "skeleton.dtsi" 50#include "skeleton.dtsi"
50 51
51/ { 52/ {
@@ -105,6 +106,12 @@
105 #interrupt-cells = <3>; 106 #interrupt-cells = <3>;
106 }; 107 };
107 108
109 reset: reset-controller@c1104404 {
110 compatible = "amlogic,meson8b-reset";
111 reg = <0xc1104404 0x20>;
112 #reset-cells = <1>;
113 };
114
108 wdt: watchdog@c1109900 { 115 wdt: watchdog@c1109900 {
109 compatible = "amlogic,meson8b-wdt"; 116 compatible = "amlogic,meson8b-wdt";
110 reg = <0xc1109900 0x8>; 117 reg = <0xc1109900 0x8>;
diff --git a/arch/arm/boot/dts/mpa1600.dts b/arch/arm/boot/dts/mpa1600.dts
index f0f5e1098928..116ce78bea4f 100644
--- a/arch/arm/boot/dts/mpa1600.dts
+++ b/arch/arm/boot/dts/mpa1600.dts
@@ -17,15 +17,6 @@
17 }; 17 };
18 18
19 clocks { 19 clocks {
20 #address-cells = <1>;
21 #size-cells = <1>;
22 ranges;
23
24 main_clock: clock@0 {
25 compatible = "atmel,osc", "fixed-clock";
26 clock-frequency = <18432000>;
27 };
28
29 slow_xtal { 20 slow_xtal {
30 clock-frequency = <32768>; 21 clock-frequency = <32768>;
31 }; 22 };
@@ -61,7 +52,7 @@
61 }; 52 };
62 }; 53 };
63 54
64 i2c@0 { 55 i2c-gpio-0 {
65 status = "okay"; 56 status = "okay";
66 }; 57 };
67 58
diff --git a/arch/arm/boot/dts/omap24xx-clocks.dtsi b/arch/arm/boot/dts/omap24xx-clocks.dtsi
index ca73722b5ea4..769a346de613 100644
--- a/arch/arm/boot/dts/omap24xx-clocks.dtsi
+++ b/arch/arm/boot/dts/omap24xx-clocks.dtsi
@@ -164,7 +164,7 @@
164 clock-div = <1>; 164 clock-div = <1>;
165 }; 165 };
166 166
167 func_96m_ck: func_96m_ck { 167 func_96m_ck: func_96m_ck@540 {
168 #clock-cells = <0>; 168 #clock-cells = <0>;
169 }; 169 };
170 170
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index 01e1e2d5c735..8ffde06281ad 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -91,7 +91,7 @@
91 vcc-supply = <&hsusb2_power>; 91 vcc-supply = <&hsusb2_power>;
92 }; 92 };
93 93
94 tfp410: encoder@0 { 94 tfp410: encoder0 {
95 compatible = "ti,tfp410"; 95 compatible = "ti,tfp410";
96 powerdown-gpios = <&twl_gpio 2 GPIO_ACTIVE_LOW>; 96 powerdown-gpios = <&twl_gpio 2 GPIO_ACTIVE_LOW>;
97 97
@@ -104,7 +104,7 @@
104 port@0 { 104 port@0 {
105 reg = <0>; 105 reg = <0>;
106 106
107 tfp410_in: endpoint@0 { 107 tfp410_in: endpoint {
108 remote-endpoint = <&dpi_out>; 108 remote-endpoint = <&dpi_out>;
109 }; 109 };
110 }; 110 };
@@ -112,14 +112,14 @@
112 port@1 { 112 port@1 {
113 reg = <1>; 113 reg = <1>;
114 114
115 tfp410_out: endpoint@0 { 115 tfp410_out: endpoint {
116 remote-endpoint = <&dvi_connector_in>; 116 remote-endpoint = <&dvi_connector_in>;
117 }; 117 };
118 }; 118 };
119 }; 119 };
120 }; 120 };
121 121
122 dvi0: connector@0 { 122 dvi0: connector0 {
123 compatible = "dvi-connector"; 123 compatible = "dvi-connector";
124 label = "dvi"; 124 label = "dvi";
125 125
@@ -134,7 +134,7 @@
134 }; 134 };
135 }; 135 };
136 136
137 tv0: connector@1 { 137 tv0: connector1 {
138 compatible = "svideo-connector"; 138 compatible = "svideo-connector";
139 label = "tv"; 139 label = "tv";
140 140
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index a4deff0e2d52..a19d907d4850 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -85,7 +85,7 @@
85 85
86 }; 86 };
87 87
88 tfp410: encoder@0 { 88 tfp410: encoder0 {
89 compatible = "ti,tfp410"; 89 compatible = "ti,tfp410";
90 powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */ 90 powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */
91 91
@@ -99,7 +99,7 @@
99 port@0 { 99 port@0 {
100 reg = <0>; 100 reg = <0>;
101 101
102 tfp410_in: endpoint@0 { 102 tfp410_in: endpoint {
103 remote-endpoint = <&dpi_out>; 103 remote-endpoint = <&dpi_out>;
104 }; 104 };
105 }; 105 };
@@ -107,14 +107,14 @@
107 port@1 { 107 port@1 {
108 reg = <1>; 108 reg = <1>;
109 109
110 tfp410_out: endpoint@0 { 110 tfp410_out: endpoint {
111 remote-endpoint = <&dvi_connector_in>; 111 remote-endpoint = <&dvi_connector_in>;
112 }; 112 };
113 }; 113 };
114 }; 114 };
115 }; 115 };
116 116
117 dvi0: connector@0 { 117 dvi0: connector0 {
118 compatible = "dvi-connector"; 118 compatible = "dvi-connector";
119 label = "dvi"; 119 label = "dvi";
120 120
@@ -129,7 +129,7 @@
129 }; 129 };
130 }; 130 };
131 131
132 tv0: connector@1 { 132 tv0: connector1 {
133 compatible = "svideo-connector"; 133 compatible = "svideo-connector";
134 label = "tv"; 134 label = "tv";
135 135
diff --git a/arch/arm/boot/dts/omap3-cm-t3x.dtsi b/arch/arm/boot/dts/omap3-cm-t3x.dtsi
index a8127bc31fd9..6a0df13fa0f3 100644
--- a/arch/arm/boot/dts/omap3-cm-t3x.dtsi
+++ b/arch/arm/boot/dts/omap3-cm-t3x.dtsi
@@ -57,7 +57,7 @@
57 regulator-max-microvolt = <3300000>; 57 regulator-max-microvolt = <3300000>;
58 }; 58 };
59 59
60 tv0: connector@1 { 60 tv0: connector {
61 compatible = "svideo-connector"; 61 compatible = "svideo-connector";
62 label = "tv"; 62 label = "tv";
63 63
diff --git a/arch/arm/boot/dts/omap3-devkit8000-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
index b1b8ebf90c1c..586010179752 100644
--- a/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
+++ b/arch/arm/boot/dts/omap3-devkit8000-common.dtsi
@@ -68,7 +68,7 @@
68 }; 68 };
69 }; 69 };
70 70
71 tfp410: encoder@0 { 71 tfp410: encoder0 {
72 compatible = "ti,tfp410"; 72 compatible = "ti,tfp410";
73 powerdown-gpios = <&twl_gpio 7 GPIO_ACTIVE_LOW>; 73 powerdown-gpios = <&twl_gpio 7 GPIO_ACTIVE_LOW>;
74 74
@@ -79,7 +79,7 @@
79 port@0 { 79 port@0 {
80 reg = <0>; 80 reg = <0>;
81 81
82 tfp410_in: endpoint@0 { 82 tfp410_in: endpoint {
83 remote-endpoint = <&dpi_dvi_out>; 83 remote-endpoint = <&dpi_dvi_out>;
84 }; 84 };
85 }; 85 };
@@ -87,14 +87,14 @@
87 port@1 { 87 port@1 {
88 reg = <1>; 88 reg = <1>;
89 89
90 tfp410_out: endpoint@0 { 90 tfp410_out: endpoint {
91 remote-endpoint = <&dvi_connector_in>; 91 remote-endpoint = <&dvi_connector_in>;
92 }; 92 };
93 }; 93 };
94 }; 94 };
95 }; 95 };
96 96
97 dvi0: connector@0 { 97 dvi0: connector0 {
98 compatible = "dvi-connector"; 98 compatible = "dvi-connector";
99 label = "dvi"; 99 label = "dvi";
100 100
@@ -109,7 +109,7 @@
109 }; 109 };
110 }; 110 };
111 111
112 tv0: connector@1 { 112 tv0: connector1 {
113 compatible = "svideo-connector"; 113 compatible = "svideo-connector";
114 label = "tv"; 114 label = "tv";
115 115
@@ -352,7 +352,7 @@
352 vdda_dac-supply = <&vdac>; 352 vdda_dac-supply = <&vdac>;
353 353
354 port { 354 port {
355 dpi_dvi_out: endpoint@0 { 355 dpi_dvi_out: endpoint {
356 remote-endpoint = <&tfp410_in>; 356 remote-endpoint = <&tfp410_in>;
357 data-lines = <24>; 357 data-lines = <24>;
358 }; 358 };
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
index 738910db5c0c..2d64bcffaaa8 100644
--- a/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi
@@ -14,7 +14,7 @@
14 display2 = &tv0; 14 display2 = &tv0;
15 }; 15 };
16 16
17 lcd0: display@0 { 17 lcd0: display {
18 compatible = "panel-dpi"; 18 compatible = "panel-dpi";
19 label = "lcd"; 19 label = "lcd";
20 20
@@ -30,7 +30,7 @@
30 30
31&dss { 31&dss {
32 port { 32 port {
33 dpi_lcd_out: endpoint@1 { 33 dpi_lcd_out: endpoint {
34 remote-endpoint = <&lcd_in>; 34 remote-endpoint = <&lcd_in>;
35 data-lines = <24>; 35 data-lines = <24>;
36 }; 36 };
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts b/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts
index d5705356d52c..d8b16398bfb3 100644
--- a/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd43.dts
@@ -16,7 +16,7 @@
16 model = "TimLL OMAP3 Devkit8000 with 4.3'' LCD panel"; 16 model = "TimLL OMAP3 Devkit8000 with 4.3'' LCD panel";
17 compatible = "timll,omap3-devkit8000", "ti,omap3"; 17 compatible = "timll,omap3-devkit8000", "ti,omap3";
18 18
19 lcd0: display@0 { 19 lcd0: display {
20 panel-timing { 20 panel-timing {
21 clock-frequency = <10164705>; 21 clock-frequency = <10164705>;
22 hactive = <480>; 22 hactive = <480>;
diff --git a/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts b/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts
index 4afad4b233ec..edb37ba80498 100644
--- a/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts
+++ b/arch/arm/boot/dts/omap3-devkit8000-lcd70.dts
@@ -16,7 +16,7 @@
16 model = "TimLL OMAP3 Devkit8000 with 7.0'' LCD panel"; 16 model = "TimLL OMAP3 Devkit8000 with 7.0'' LCD panel";
17 compatible = "timll,omap3-devkit8000", "ti,omap3"; 17 compatible = "timll,omap3-devkit8000", "ti,omap3";
18 18
19 lcd0: display@0 { 19 lcd0: display {
20 panel-timing { 20 panel-timing {
21 clock-frequency = <40000000>; 21 clock-frequency = <40000000>;
22 hactive = <800>; 22 hactive = <800>;
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi
index ab9fb8f49ff3..c09a0574af90 100644
--- a/arch/arm/boot/dts/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -100,12 +100,28 @@
100 }; 100 };
101 }; 101 };
102 102
103 backlight {
104 compatible = "pwm-backlight";
105 pwms = <&pwm11 0 2000000 0>;
106 pwm-names = "backlight";
107 brightness-levels = <0 11 20 30 40 50 60 70 80 90 100>;
108 default-brightness-level = <9>; /* => 90 */
109 pinctrl-names = "default";
110 pinctrl-0 = <&backlight_pins>;
111 };
112
113 pwm11: dmtimer-pwm {
114 compatible = "ti,omap-dmtimer-pwm";
115 ti,timers = <&timer11>;
116 #pwm-cells = <3>;
117 };
118
103 hsusb2_phy: hsusb2_phy { 119 hsusb2_phy: hsusb2_phy {
104 compatible = "usb-nop-xceiv"; 120 compatible = "usb-nop-xceiv";
105 reset-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>; 121 reset-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
106 }; 122 };
107 123
108 tv0: connector@1 { 124 tv0: connector {
109 compatible = "svideo-connector"; 125 compatible = "svideo-connector";
110 label = "tv"; 126 label = "tv";
111 127
@@ -126,19 +142,24 @@
126 142
127 port@0 { 143 port@0 {
128 reg = <0>; 144 reg = <0>;
129 opa_in: endpoint@0 { 145 opa_in: endpoint {
130 remote-endpoint = <&venc_out>; 146 remote-endpoint = <&venc_out>;
131 }; 147 };
132 }; 148 };
133 149
134 port@1 { 150 port@1 {
135 reg = <1>; 151 reg = <1>;
136 opa_out: endpoint@0 { 152 opa_out: endpoint {
137 remote-endpoint = <&tv_connector_in>; 153 remote-endpoint = <&tv_connector_in>;
138 }; 154 };
139 }; 155 };
140 }; 156 };
141 }; 157 };
158
159 wifi_pwrseq: wifi_pwrseq {
160 compatible = "mmc-pwrseq-simple";
161 reset-gpios = <&tca6507 0 GPIO_ACTIVE_LOW>; /* W2CBW003 reset through tca6507 */
162 };
142}; 163};
143 164
144&omap3_pmx_core { 165&omap3_pmx_core {
@@ -190,6 +211,12 @@
190 >; 211 >;
191 }; 212 };
192 213
214 backlight_pins: backlight_pins_pimnux {
215 pinctrl-single,pins = <
216 OMAP3_CORE1_IOPAD(0x20ba, MUX_MODE3) /* gpt11/gpio57 */
217 >;
218 };
219
193 dss_dpi_pins: pinmux_dss_dpi_pins { 220 dss_dpi_pins: pinmux_dss_dpi_pins {
194 pinctrl-single,pins = < 221 pinctrl-single,pins = <
195 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */ 222 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
@@ -228,6 +255,24 @@
228 OMAP3_CORE1_IOPAD(0x21c6, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda.hdq */ 255 OMAP3_CORE1_IOPAD(0x21c6, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda.hdq */
229 >; 256 >;
230 }; 257 };
258
259 bma180_pins: pinmux_bma180_pins {
260 pinctrl-single,pins = <
261 OMAP3_CORE1_IOPAD(0x213a, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio115 */
262 >;
263 };
264
265 itg3200_pins: pinmux_itg3200_pins {
266 pinctrl-single,pins = <
267 OMAP3_CORE1_IOPAD(0x20b8, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio56 */
268 >;
269 };
270
271 hmc5843_pins: pinmux_hmc5843_pins {
272 pinctrl-single,pins = <
273 OMAP3_CORE1_IOPAD(0x2134, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio112 */
274 >;
275 };
231}; 276};
232 277
233&omap3_pmx_core2 { 278&omap3_pmx_core2 {
@@ -298,6 +343,8 @@
298 bma180@41 { 343 bma180@41 {
299 compatible = "bosch,bma180"; 344 compatible = "bosch,bma180";
300 reg = <0x41>; 345 reg = <0x41>;
346 pinctrl-names = "default";
347 pintcrl-0 = <&bma180_pins>;
301 interrupt-parent = <&gpio4>; 348 interrupt-parent = <&gpio4>;
302 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */ 349 interrupts = <19 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_115 */
303 }; 350 };
@@ -306,12 +353,14 @@
306 itg3200@68 { 353 itg3200@68 {
307 compatible = "invensense,itg3200"; 354 compatible = "invensense,itg3200";
308 reg = <0x68>; 355 reg = <0x68>;
356 pinctrl-names = "default";
357 pinctrl-0 = <&itg3200_pins>;
309 interrupt-parent = <&gpio2>; 358 interrupt-parent = <&gpio2>;
310 interrupts = <24 0>; /* GPIO_56 */ 359 interrupts = <24 IRQ_TYPE_EDGE_FALLING>; /* GPIO_56 */
311 }; 360 };
312 361
313 /* leds */ 362 /* leds + gpios */
314 tca6507@45 { 363 tca6507: tca6507@45 {
315 compatible = "ti,tca6507"; 364 compatible = "ti,tca6507";
316 #address-cells = <1>; 365 #address-cells = <1>;
317 #size-cells = <0>; 366 #size-cells = <0>;
@@ -351,6 +400,10 @@
351 hmc5843@1e { 400 hmc5843@1e {
352 compatible = "honeywell,hmc5883l"; 401 compatible = "honeywell,hmc5883l";
353 reg = <0x1e>; 402 reg = <0x1e>;
403 pinctrl-names = "default";
404 pinctrl-0 = <&hmc5843_pins>;
405 interrupt-parent = <&gpio4>;
406 interrupts = <16 IRQ_TYPE_EDGE_FALLING>; /* gpio112 */
354 }; 407 };
355 408
356 /* touchscreen */ 409 /* touchscreen */
@@ -362,6 +415,12 @@
362 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; 415 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>;
363 ti,x-plate-ohms = <600>; 416 ti,x-plate-ohms = <600>;
364 }; 417 };
418
419 /* RFID EEPROM */
420 m24lr64@50 {
421 compatible = "at,24c64";
422 reg = <0x50>;
423 };
365}; 424};
366 425
367&i2c3 { 426&i2c3 {
@@ -398,6 +457,7 @@
398 bus-width = <4>; 457 bus-width = <4>;
399 ti,non-removable; 458 ti,non-removable;
400 cap-power-off-card; 459 cap-power-off-card;
460 mmc-pwrseq = <&wifi_pwrseq>;
401}; 461};
402 462
403&mmc3 { 463&mmc3 {
diff --git a/arch/arm/boot/dts/omap3-ha-lcd.dts b/arch/arm/boot/dts/omap3-ha-lcd.dts
index 11aa28d73f3a..60af7c2358a3 100644
--- a/arch/arm/boot/dts/omap3-ha-lcd.dts
+++ b/arch/arm/boot/dts/omap3-ha-lcd.dts
@@ -121,7 +121,7 @@
121 display0 = &lcd0; 121 display0 = &lcd0;
122 }; 122 };
123 123
124 lcd0: display@0 { 124 lcd0: display {
125 compatible = "panel-dpi"; 125 compatible = "panel-dpi";
126 label = "lcd"; 126 label = "lcd";
127 127
diff --git a/arch/arm/boot/dts/omap3-igep0020-common.dtsi b/arch/arm/boot/dts/omap3-igep0020-common.dtsi
index b6971060648a..667f96245729 100644
--- a/arch/arm/boot/dts/omap3-igep0020-common.dtsi
+++ b/arch/arm/boot/dts/omap3-igep0020-common.dtsi
@@ -60,7 +60,7 @@
60 vcc-supply = <&hsusb1_power>; 60 vcc-supply = <&hsusb1_power>;
61 }; 61 };
62 62
63 tfp410: encoder@0 { 63 tfp410: encoder {
64 compatible = "ti,tfp410"; 64 compatible = "ti,tfp410";
65 powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */ 65 powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */
66 66
@@ -71,7 +71,7 @@
71 port@0 { 71 port@0 {
72 reg = <0>; 72 reg = <0>;
73 73
74 tfp410_in: endpoint@0 { 74 tfp410_in: endpoint {
75 remote-endpoint = <&dpi_out>; 75 remote-endpoint = <&dpi_out>;
76 }; 76 };
77 }; 77 };
@@ -79,14 +79,14 @@
79 port@1 { 79 port@1 {
80 reg = <1>; 80 reg = <1>;
81 81
82 tfp410_out: endpoint@0 { 82 tfp410_out: endpoint {
83 remote-endpoint = <&dvi_connector_in>; 83 remote-endpoint = <&dvi_connector_in>;
84 }; 84 };
85 }; 85 };
86 }; 86 };
87 }; 87 };
88 88
89 dvi0: connector@0 { 89 dvi0: connector {
90 compatible = "dvi-connector"; 90 compatible = "dvi-connector";
91 label = "dvi"; 91 label = "dvi";
92 92
diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 2b74a81d1de2..2a6078a8422c 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -143,6 +143,18 @@
143 io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>; 143 io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
144 io-channel-names = "temp", "bsi", "vbat"; 144 io-channel-names = "temp", "bsi", "vbat";
145 }; 145 };
146
147 pwm9: dmtimer-pwm {
148 compatible = "ti,omap-dmtimer-pwm";
149 #pwm-cells = <3>;
150 ti,timers = <&timer9>;
151 ti,clock-source = <0x00>; /* timer_sys_ck */
152 };
153
154 ir: n900-ir {
155 compatible = "nokia,n900-ir";
156 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
157 };
146}; 158};
147 159
148&omap3_pmx_core { 160&omap3_pmx_core {
diff --git a/arch/arm/boot/dts/omap3-overo-common-dvi.dtsi b/arch/arm/boot/dts/omap3-overo-common-dvi.dtsi
index 802f704f67e5..ae5564abbe2f 100644
--- a/arch/arm/boot/dts/omap3-overo-common-dvi.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-common-dvi.dtsi
@@ -69,7 +69,7 @@
69 display0 = &dvi0; 69 display0 = &dvi0;
70 }; 70 };
71 71
72 tfp410: encoder@0 { 72 tfp410: encoder {
73 compatible = "ti,tfp410"; 73 compatible = "ti,tfp410";
74 74
75 ports { 75 ports {
@@ -79,7 +79,7 @@
79 port@0 { 79 port@0 {
80 reg = <0>; 80 reg = <0>;
81 81
82 tfp410_in: endpoint@0 { 82 tfp410_in: endpoint {
83 remote-endpoint = <&dpi_out>; 83 remote-endpoint = <&dpi_out>;
84 }; 84 };
85 }; 85 };
@@ -87,14 +87,14 @@
87 port@1 { 87 port@1 {
88 reg = <1>; 88 reg = <1>;
89 89
90 tfp410_out: endpoint@0 { 90 tfp410_out: endpoint {
91 remote-endpoint = <&dvi_connector_in>; 91 remote-endpoint = <&dvi_connector_in>;
92 }; 92 };
93 }; 93 };
94 }; 94 };
95 }; 95 };
96 96
97 dvi0: connector@0 { 97 dvi0: connector {
98 compatible = "dvi-connector"; 98 compatible = "dvi-connector";
99 label = "dvi"; 99 label = "dvi";
100 100
diff --git a/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi b/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
index 6314da2580f5..ca86da68220c 100644
--- a/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi
@@ -119,7 +119,7 @@
119 pinctrl-names = "default"; 119 pinctrl-names = "default";
120 pinctrl-0 = <&mcspi1_pins>; 120 pinctrl-0 = <&mcspi1_pins>;
121 121
122 lcd0: display@0 { 122 lcd0: display {
123 compatible = "lgphilips,lb035q02"; 123 compatible = "lgphilips,lb035q02";
124 label = "lcd35"; 124 label = "lcd35";
125 125
diff --git a/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi b/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
index 7e3fe85a8ad9..b0753ef8abd4 100644
--- a/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
+++ b/arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi
@@ -96,7 +96,7 @@
96 display0 = &lcd0; 96 display0 = &lcd0;
97 }; 97 };
98 98
99 lcd0: display@0 { 99 lcd0: display {
100 compatible = "samsung,lte430wq-f0c", "panel-dpi"; 100 compatible = "samsung,lte430wq-f0c", "panel-dpi";
101 label = "lcd43"; 101 label = "lcd43";
102 102
diff --git a/arch/arm/boot/dts/omap3-pandora-common.dtsi b/arch/arm/boot/dts/omap3-pandora-common.dtsi
index bcf39d606b65..dbc4dc721cc2 100644
--- a/arch/arm/boot/dts/omap3-pandora-common.dtsi
+++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi
@@ -27,7 +27,7 @@
27 display0 = &lcd; 27 display0 = &lcd;
28 }; 28 };
29 29
30 tv: connector@1 { 30 tv: connector {
31 compatible = "connector-analog-tv"; 31 compatible = "connector-analog-tv";
32 label = "tv"; 32 label = "tv";
33 33
diff --git a/arch/arm/boot/dts/omap3-sb-t35.dtsi b/arch/arm/boot/dts/omap3-sb-t35.dtsi
index 827f614261f6..73643fabde5d 100644
--- a/arch/arm/boot/dts/omap3-sb-t35.dtsi
+++ b/arch/arm/boot/dts/omap3-sb-t35.dtsi
@@ -3,7 +3,7 @@
3 */ 3 */
4 4
5/ { 5/ {
6 tfp410: encoder@0 { 6 tfp410: encoder {
7 compatible = "ti,tfp410"; 7 compatible = "ti,tfp410";
8 8
9 powerdown-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; /* gpio_54 */ 9 powerdown-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; /* gpio_54 */
@@ -18,7 +18,7 @@
18 port@0 { 18 port@0 {
19 reg = <0>; 19 reg = <0>;
20 20
21 tfp410_in: endpoint@0 { 21 tfp410_in: endpoint {
22 remote-endpoint = <&dpi_out>; 22 remote-endpoint = <&dpi_out>;
23 }; 23 };
24 }; 24 };
@@ -26,14 +26,14 @@
26 port@1 { 26 port@1 {
27 reg = <1>; 27 reg = <1>;
28 28
29 tfp410_out: endpoint@0 { 29 tfp410_out: endpoint {
30 remote-endpoint = <&dvi_connector_in>; 30 remote-endpoint = <&dvi_connector_in>;
31 }; 31 };
32 }; 32 };
33 }; 33 };
34 }; 34 };
35 35
36 dvi0: connector@0 { 36 dvi0: connector {
37 compatible = "dvi-connector"; 37 compatible = "dvi-connector";
38 label = "dvi"; 38 label = "dvi";
39 39
diff --git a/arch/arm/boot/dts/omap3-thunder.dts b/arch/arm/boot/dts/omap3-thunder.dts
index d659515ab9b8..9736ba79bb5b 100644
--- a/arch/arm/boot/dts/omap3-thunder.dts
+++ b/arch/arm/boot/dts/omap3-thunder.dts
@@ -85,7 +85,7 @@
85 display0 = &lcd0; 85 display0 = &lcd0;
86 }; 86 };
87 87
88 lcd0: display@0 { 88 lcd0: display {
89 compatible = "samsung,lte430wq-f0c", "panel-dpi"; 89 compatible = "samsung,lte430wq-f0c", "panel-dpi";
90 label = "lcd"; 90 label = "lcd";
91 91
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 9fbda38528dc..4c3c471d2a83 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -493,6 +493,8 @@
493 dmas = <&sdma 31>, 493 dmas = <&sdma 31>,
494 <&sdma 32>; 494 <&sdma 32>;
495 dma-names = "tx", "rx"; 495 dma-names = "tx", "rx";
496 clocks = <&mcbsp1_fck>;
497 clock-names = "fck";
496 status = "disabled"; 498 status = "disabled";
497 }; 499 };
498 500
@@ -511,6 +513,8 @@
511 dmas = <&sdma 33>, 513 dmas = <&sdma 33>,
512 <&sdma 34>; 514 <&sdma 34>;
513 dma-names = "tx", "rx"; 515 dma-names = "tx", "rx";
516 clocks = <&mcbsp2_fck>, <&mcbsp2_ick>;
517 clock-names = "fck", "ick";
514 status = "disabled"; 518 status = "disabled";
515 }; 519 };
516 520
@@ -529,6 +533,8 @@
529 dmas = <&sdma 17>, 533 dmas = <&sdma 17>,
530 <&sdma 18>; 534 <&sdma 18>;
531 dma-names = "tx", "rx"; 535 dma-names = "tx", "rx";
536 clocks = <&mcbsp3_fck>, <&mcbsp3_ick>;
537 clock-names = "fck", "ick";
532 status = "disabled"; 538 status = "disabled";
533 }; 539 };
534 540
@@ -545,6 +551,8 @@
545 dmas = <&sdma 19>, 551 dmas = <&sdma 19>,
546 <&sdma 20>; 552 <&sdma 20>;
547 dma-names = "tx", "rx"; 553 dma-names = "tx", "rx";
554 clocks = <&mcbsp4_fck>;
555 clock-names = "fck";
548 status = "disabled"; 556 status = "disabled";
549 }; 557 };
550 558
@@ -561,6 +569,8 @@
561 dmas = <&sdma 21>, 569 dmas = <&sdma 21>,
562 <&sdma 22>; 570 <&sdma 22>;
563 dma-names = "tx", "rx"; 571 dma-names = "tx", "rx";
572 clocks = <&mcbsp5_fck>;
573 clock-names = "fck";
564 status = "disabled"; 574 status = "disabled";
565 }; 575 };
566 576
diff --git a/arch/arm/boot/dts/omap4-duovero-parlor.dts b/arch/arm/boot/dts/omap4-duovero-parlor.dts
index 06c54822ddc2..6b39808b8313 100644
--- a/arch/arm/boot/dts/omap4-duovero-parlor.dts
+++ b/arch/arm/boot/dts/omap4-duovero-parlor.dts
@@ -40,7 +40,7 @@
40 }; 40 };
41 }; 41 };
42 42
43 hdmi0: connector@0 { 43 hdmi0: connector {
44 compatible = "hdmi-connector"; 44 compatible = "hdmi-connector";
45 label = "hdmi"; 45 label = "hdmi";
46 46
diff --git a/arch/arm/boot/dts/omap4-duovero.dtsi b/arch/arm/boot/dts/omap4-duovero.dtsi
index f2a94fa62552..a90b582e4c3f 100644
--- a/arch/arm/boot/dts/omap4-duovero.dtsi
+++ b/arch/arm/boot/dts/omap4-duovero.dtsi
@@ -177,6 +177,7 @@
177 177
178 twl6040: twl@4b { 178 twl6040: twl@4b {
179 compatible = "ti,twl6040"; 179 compatible = "ti,twl6040";
180 #clock-cells = <0>;
180 reg = <0x4b>; 181 reg = <0x4b>;
181 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */ 182 interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
182 ti,audpwron-gpio = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* gpio_160 */ 183 ti,audpwron-gpio = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* gpio_160 */
@@ -207,6 +208,10 @@
207&mcpdm { 208&mcpdm {
208 pinctrl-names = "default"; 209 pinctrl-names = "default";
209 pinctrl-0 = <&mcpdm_pins>; 210 pinctrl-0 = <&mcpdm_pins>;
211
212 clocks = <&twl6040>;
213 clock-names = "pdmclk";
214
210 status = "okay"; 215 status = "okay";
211}; 216};
212 217
diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
index df2e356ec089..f8f13952cfeb 100644
--- a/arch/arm/boot/dts/omap4-panda-common.dtsi
+++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
@@ -103,7 +103,7 @@
103 enable-active-high; 103 enable-active-high;
104 }; 104 };
105 105
106 tfp410: encoder@0 { 106 tfp410: encoder0 {
107 compatible = "ti,tfp410"; 107 compatible = "ti,tfp410";
108 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; /* gpio_0 */ 108 powerdown-gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; /* gpio_0 */
109 109
@@ -114,7 +114,7 @@
114 port@0 { 114 port@0 {
115 reg = <0>; 115 reg = <0>;
116 116
117 tfp410_in: endpoint@0 { 117 tfp410_in: endpoint {
118 remote-endpoint = <&dpi_out>; 118 remote-endpoint = <&dpi_out>;
119 }; 119 };
120 }; 120 };
@@ -122,14 +122,14 @@
122 port@1 { 122 port@1 {
123 reg = <1>; 123 reg = <1>;
124 124
125 tfp410_out: endpoint@0 { 125 tfp410_out: endpoint {
126 remote-endpoint = <&dvi_connector_in>; 126 remote-endpoint = <&dvi_connector_in>;
127 }; 127 };
128 }; 128 };
129 }; 129 };
130 }; 130 };
131 131
132 dvi0: connector@0 { 132 dvi0: connector0 {
133 compatible = "dvi-connector"; 133 compatible = "dvi-connector";
134 label = "dvi"; 134 label = "dvi";
135 135
@@ -144,7 +144,7 @@
144 }; 144 };
145 }; 145 };
146 146
147 tpd12s015: encoder@1 { 147 tpd12s015: encoder1 {
148 compatible = "ti,tpd12s015"; 148 compatible = "ti,tpd12s015";
149 149
150 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ 150 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */
@@ -158,7 +158,7 @@
158 port@0 { 158 port@0 {
159 reg = <0>; 159 reg = <0>;
160 160
161 tpd12s015_in: endpoint@0 { 161 tpd12s015_in: endpoint {
162 remote-endpoint = <&hdmi_out>; 162 remote-endpoint = <&hdmi_out>;
163 }; 163 };
164 }; 164 };
@@ -166,14 +166,14 @@
166 port@1 { 166 port@1 {
167 reg = <1>; 167 reg = <1>;
168 168
169 tpd12s015_out: endpoint@0 { 169 tpd12s015_out: endpoint {
170 remote-endpoint = <&hdmi_connector_in>; 170 remote-endpoint = <&hdmi_connector_in>;
171 }; 171 };
172 }; 172 };
173 }; 173 };
174 }; 174 };
175 175
176 hdmi0: connector@1 { 176 hdmi0: connector1 {
177 compatible = "hdmi-connector"; 177 compatible = "hdmi-connector";
178 label = "hdmi"; 178 label = "hdmi";
179 179
@@ -376,6 +376,7 @@
376 376
377 twl6040: twl@4b { 377 twl6040: twl@4b {
378 compatible = "ti,twl6040"; 378 compatible = "ti,twl6040";
379 #clock-cells = <0>;
379 reg = <0x4b>; 380 reg = <0x4b>;
380 381
381 pinctrl-names = "default"; 382 pinctrl-names = "default";
@@ -479,6 +480,10 @@
479&mcpdm { 480&mcpdm {
480 pinctrl-names = "default"; 481 pinctrl-names = "default";
481 pinctrl-0 = <&mcpdm_pins>; 482 pinctrl-0 = <&mcpdm_pins>;
483
484 clocks = <&twl6040>;
485 clock-names = "pdmclk";
486
482 status = "okay"; 487 status = "okay";
483}; 488};
484 489
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index aae513265dc2..10d73a784050 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -160,7 +160,7 @@
160 enable-active-high; 160 enable-active-high;
161 }; 161 };
162 162
163 tpd12s015: encoder@0 { 163 tpd12s015: encoder {
164 compatible = "ti,tpd12s015"; 164 compatible = "ti,tpd12s015";
165 165
166 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */ 166 gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>, /* 60, CT CP HPD */
@@ -174,7 +174,7 @@
174 port@0 { 174 port@0 {
175 reg = <0>; 175 reg = <0>;
176 176
177 tpd12s015_in: endpoint@0 { 177 tpd12s015_in: endpoint {
178 remote-endpoint = <&hdmi_out>; 178 remote-endpoint = <&hdmi_out>;
179 }; 179 };
180 }; 180 };
@@ -182,14 +182,14 @@
182 port@1 { 182 port@1 {
183 reg = <1>; 183 reg = <1>;
184 184
185 tpd12s015_out: endpoint@0 { 185 tpd12s015_out: endpoint {
186 remote-endpoint = <&hdmi_connector_in>; 186 remote-endpoint = <&hdmi_connector_in>;
187 }; 187 };
188 }; 188 };
189 }; 189 };
190 }; 190 };
191 191
192 hdmi0: connector@0 { 192 hdmi0: connector {
193 compatible = "hdmi-connector"; 193 compatible = "hdmi-connector";
194 label = "hdmi"; 194 label = "hdmi";
195 195
@@ -367,6 +367,7 @@
367 367
368 twl6040: twl@4b { 368 twl6040: twl@4b {
369 compatible = "ti,twl6040"; 369 compatible = "ti,twl6040";
370 #clock-cells = <0>;
370 reg = <0x4b>; 371 reg = <0x4b>;
371 372
372 pinctrl-names = "default"; 373 pinctrl-names = "default";
@@ -620,6 +621,10 @@
620&mcpdm { 621&mcpdm {
621 pinctrl-names = "default"; 622 pinctrl-names = "default";
622 pinctrl-0 = <&mcpdm_pins>; 623 pinctrl-0 = <&mcpdm_pins>;
624
625 clocks = <&twl6040>;
626 clock-names = "pdmclk";
627
623 status = "okay"; 628 status = "okay";
624}; 629};
625 630
diff --git a/arch/arm/boot/dts/omap4-var-om44customboard.dtsi b/arch/arm/boot/dts/omap4-var-om44customboard.dtsi
index 6e278d7716a5..74940b6d7719 100644
--- a/arch/arm/boot/dts/omap4-var-om44customboard.dtsi
+++ b/arch/arm/boot/dts/omap4-var-om44customboard.dtsi
@@ -45,7 +45,7 @@
45 }; 45 };
46 }; 46 };
47 47
48 hdmi0: connector@0 { 48 hdmi0: connector {
49 compatible = "hdmi-connector"; 49 compatible = "hdmi-connector";
50 pinctrl-names = "default"; 50 pinctrl-names = "default";
51 pinctrl-0 = <&hdmi_hpd_pins>; 51 pinctrl-0 = <&hdmi_hpd_pins>;
diff --git a/arch/arm/boot/dts/omap4-var-som-om44.dtsi b/arch/arm/boot/dts/omap4-var-som-om44.dtsi
index a17997f4e9aa..873cfc87260c 100644
--- a/arch/arm/boot/dts/omap4-var-som-om44.dtsi
+++ b/arch/arm/boot/dts/omap4-var-som-om44.dtsi
@@ -189,6 +189,7 @@
189 189
190 twl6040: twl@4b { 190 twl6040: twl@4b {
191 compatible = "ti,twl6040"; 191 compatible = "ti,twl6040";
192 #clock-cells = <0>;
192 reg = <0x4b>; 193 reg = <0x4b>;
193 194
194 pinctrl-names = "default"; 195 pinctrl-names = "default";
@@ -252,6 +253,10 @@
252&mcpdm { 253&mcpdm {
253 pinctrl-names = "default"; 254 pinctrl-names = "default";
254 pinctrl-0 = <&mcpdm_pins>; 255 pinctrl-0 = <&mcpdm_pins>;
256
257 clocks = <&twl6040>;
258 clock-names = "pdmclk";
259
255 status = "okay"; 260 status = "okay";
256}; 261};
257 262
diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi
index 5d5b620b7d9b..5196113202a2 100644
--- a/arch/arm/boot/dts/omap5-board-common.dtsi
+++ b/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -87,7 +87,7 @@
87 }; 87 };
88 }; 88 };
89 89
90 tpd12s015: encoder@0 { 90 tpd12s015: encoder {
91 compatible = "ti,tpd12s015"; 91 compatible = "ti,tpd12s015";
92 92
93 pinctrl-names = "default"; 93 pinctrl-names = "default";
@@ -102,7 +102,7 @@
102 port@0 { 102 port@0 {
103 reg = <0>; 103 reg = <0>;
104 104
105 tpd12s015_in: endpoint@0 { 105 tpd12s015_in: endpoint {
106 remote-endpoint = <&hdmi_out>; 106 remote-endpoint = <&hdmi_out>;
107 }; 107 };
108 }; 108 };
@@ -110,14 +110,14 @@
110 port@1 { 110 port@1 {
111 reg = <1>; 111 reg = <1>;
112 112
113 tpd12s015_out: endpoint@0 { 113 tpd12s015_out: endpoint {
114 remote-endpoint = <&hdmi_connector_in>; 114 remote-endpoint = <&hdmi_connector_in>;
115 }; 115 };
116 }; 116 };
117 }; 117 };
118 }; 118 };
119 119
120 hdmi0: connector@0 { 120 hdmi0: connector {
121 compatible = "hdmi-connector"; 121 compatible = "hdmi-connector";
122 label = "hdmi"; 122 label = "hdmi";
123 123
@@ -637,6 +637,7 @@
637 637
638 twl6040: twl@4b { 638 twl6040: twl@4b {
639 compatible = "ti,twl6040"; 639 compatible = "ti,twl6040";
640 #clock-cells = <0>;
640 reg = <0x4b>; 641 reg = <0x4b>;
641 642
642 pinctrl-names = "default"; 643 pinctrl-names = "default";
@@ -658,6 +659,10 @@
658&mcpdm { 659&mcpdm {
659 pinctrl-names = "default"; 660 pinctrl-names = "default";
660 pinctrl-0 = <&mcpdm_pins>; 661 pinctrl-0 = <&mcpdm_pins>;
662
663 clocks = <&twl6040>;
664 clock-names = "pdmclk";
665
661 status = "okay"; 666 status = "okay";
662}; 667};
663 668
diff --git a/arch/arm/boot/dts/omap5-cm-t54.dts b/arch/arm/boot/dts/omap5-cm-t54.dts
index 93fdfa96776e..a9765605d53b 100644
--- a/arch/arm/boot/dts/omap5-cm-t54.dts
+++ b/arch/arm/boot/dts/omap5-cm-t54.dts
@@ -112,7 +112,7 @@
112 }; 112 };
113 }; 113 };
114 114
115 hdmi0: connector@0 { 115 hdmi0: connector0 {
116 compatible = "hdmi-connector"; 116 compatible = "hdmi-connector";
117 label = "hdmi"; 117 label = "hdmi";
118 118
@@ -130,7 +130,7 @@
130 }; 130 };
131 }; 131 };
132 132
133 tfp410: encoder@0 { 133 tfp410: encoder0 {
134 compatible = "ti,tfp410"; 134 compatible = "ti,tfp410";
135 135
136 ports { 136 ports {
@@ -140,7 +140,7 @@
140 port@0 { 140 port@0 {
141 reg = <0>; 141 reg = <0>;
142 142
143 tfp410_in: endpoint@0 { 143 tfp410_in: endpoint {
144 remote-endpoint = <&dpi_dvi_out>; 144 remote-endpoint = <&dpi_dvi_out>;
145 }; 145 };
146 }; 146 };
@@ -148,14 +148,14 @@
148 port@1 { 148 port@1 {
149 reg = <1>; 149 reg = <1>;
150 150
151 tfp410_out: endpoint@0 { 151 tfp410_out: endpoint {
152 remote-endpoint = <&dvi_connector_in>; 152 remote-endpoint = <&dvi_connector_in>;
153 }; 153 };
154 }; 154 };
155 }; 155 };
156 }; 156 };
157 157
158 dvi0: connector@1 { 158 dvi0: connector1 {
159 compatible = "dvi-connector"; 159 compatible = "dvi-connector";
160 label = "dvi"; 160 label = "dvi";
161 161
@@ -646,12 +646,17 @@
646 pinctrl-0 = <&dss_dpi_pins>; 646 pinctrl-0 = <&dss_dpi_pins>;
647 647
648 port { 648 port {
649 #address-cells = <1>;
650 #size-cells = <0>;
651
649 dpi_dvi_out: endpoint@0 { 652 dpi_dvi_out: endpoint@0 {
653 reg = <0>;
650 remote-endpoint = <&tfp410_in>; 654 remote-endpoint = <&tfp410_in>;
651 data-lines = <24>; 655 data-lines = <24>;
652 }; 656 };
653 657
654 dpi_lcd_out: endpoint@1 { 658 dpi_lcd_out: endpoint@1 {
659 reg = <1>;
655 remote-endpoint = <&lcd_in>; 660 remote-endpoint = <&lcd_in>;
656 data-lines = <24>; 661 data-lines = <24>;
657 }; 662 };
diff --git a/arch/arm/boot/dts/pm9g45.dts b/arch/arm/boot/dts/pm9g45.dts
index 66afcff67fde..0abd7bf17568 100644
--- a/arch/arm/boot/dts/pm9g45.dts
+++ b/arch/arm/boot/dts/pm9g45.dts
@@ -21,15 +21,6 @@
21 }; 21 };
22 22
23 clocks { 23 clocks {
24 #address-cells = <1>;
25 #size-cells = <1>;
26 ranges;
27
28 main_clock: clock@0 {
29 compatible = "atmel,osc", "fixed-clock";
30 clock-frequency = <12000000>;
31 };
32
33 slow_xtal { 24 slow_xtal {
34 clock-frequency = <32768>; 25 clock-frequency = <32768>;
35 }; 26 };
diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi
index 210192c38df3..9e73dc6b3ed3 100644
--- a/arch/arm/boot/dts/pxa27x.dtsi
+++ b/arch/arm/boot/dts/pxa27x.dtsi
@@ -22,8 +22,15 @@
22 marvell,intc-nr-irqs = <34>; 22 marvell,intc-nr-irqs = <34>;
23 }; 23 };
24 24
25 pinctrl: pinctrl@40e00000 {
26 reg = <0x40e00054 0x20 0x40e0000c 0xc 0x40e0010c 4
27 0x40f00020 0x10>;
28 compatible = "marvell,pxa27x-pinctrl";
29 };
30
25 gpio: gpio@40e00000 { 31 gpio: gpio@40e00000 {
26 compatible = "intel,pxa27x-gpio"; 32 compatible = "intel,pxa27x-gpio";
33 gpio-ranges = <&pinctrl 0 0 128>;
27 clocks = <&clks CLK_NONE>; 34 clocks = <&clks CLK_NONE>;
28 }; 35 };
29 36
diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi
index 5e5af078b9b5..3ff077ca4400 100644
--- a/arch/arm/boot/dts/pxa2xx.dtsi
+++ b/arch/arm/boot/dts/pxa2xx.dtsi
@@ -140,5 +140,13 @@
140 reg = <0x40900000 0x3c>; 140 reg = <0x40900000 0x3c>;
141 interrupts = <30 31>; 141 interrupts = <30 31>;
142 }; 142 };
143
144 lcd-controller@40500000 {
145 compatible = "marvell,pxa2xx-lcdc";
146 reg = <0x44000000 0x10000>;
147 interrupts = <17>;
148 clocks = <&clks CLK_LCD>;
149 status = "disabled";
150 };
143 }; 151 };
144}; 152};
diff --git a/arch/arm/boot/dts/pxa3xx.dtsi b/arch/arm/boot/dts/pxa3xx.dtsi
index fec47bcd8292..9d6f3aacedb7 100644
--- a/arch/arm/boot/dts/pxa3xx.dtsi
+++ b/arch/arm/boot/dts/pxa3xx.dtsi
@@ -1,6 +1,96 @@
1/* The pxa3xx skeleton simply augments the 2xx version */ 1/* The pxa3xx skeleton simply augments the 2xx version */
2#include "pxa2xx.dtsi" 2#include "pxa2xx.dtsi"
3 3
4#define MFP_PIN_PXA300(gpio) \
5 ((gpio <= 2) ? (0x00b4 + 4 * gpio) : \
6 (gpio <= 26) ? (0x027c + 4 * (gpio - 3)) : \
7 (gpio <= 98) ? (0x0400 + 4 * (gpio - 27)) : \
8 (gpio <= 127) ? (0x0600 + 4 * (gpio - 99)) : \
9 0)
10
11#define MFP_PIN_PXA310(gpio) \
12 ((gpio <= 2) ? (0x00b4 + 4 * gpio) : \
13 (gpio <= 26) ? (0x027c + 4 * (gpio - 3)) : \
14 (gpio <= 29) ? (0x0400 + 4 * (gpio - 27)) : \
15 (gpio <= 98) ? (0x0418 + 4 * (gpio - 30)) : \
16 (gpio <= 127) ? (0x0600 + 4 * (gpio - 99)) : \
17 (gpio <= 262) ? 0 : \
18 (gpio <= 268) ? (0x052c + 4 * (gpio - 263)) : \
19 0)
20
21#define MFP_PIN_PXA320(gpio) \
22 ((gpio <= 4) ? (0x0124 + 4 * gpio) : \
23 (gpio <= 9) ? (0x028c + 4 * (gpio - 5)) : \
24 (gpio <= 10) ? (0x0458 + 4 * (gpio - 10)) : \
25 (gpio <= 26) ? (0x02a0 + 4 * (gpio - 11)) : \
26 (gpio <= 48) ? (0x0400 + 4 * (gpio - 27)) : \
27 (gpio <= 62) ? (0x045c + 4 * (gpio - 49)) : \
28 (gpio <= 73) ? (0x04b4 + 4 * (gpio - 63)) : \
29 (gpio <= 98) ? (0x04f0 + 4 * (gpio - 74)) : \
30 (gpio <= 127) ? (0x0600 + 4 * (gpio - 99)) : \
31 0)
32
33/*
34 * MFP Alternate functions for pins having a gpio.
35 * Example of use: pinctrl-single,pins = < MFP_PIN_PXA310(21) MFP_AF1 >
36 */
37#define MFP_AF0 (0 << 0)
38#define MFP_AF1 (1 << 0)
39#define MFP_AF2 (2 << 0)
40#define MFP_AF3 (3 << 0)
41#define MFP_AF4 (4 << 0)
42#define MFP_AF5 (5 << 0)
43#define MFP_AF6 (6 << 0)
44
45/*
46 * MFP drive strength functions for pins.
47 * Example of use: pinctrl-single,drive-strength = MFP_DS03X;
48 */
49#define MFP_DSMSK (0x7 << 10)
50#define MFP_DS01X < (0x0 << 10) MFP_DSMSK >
51#define MFP_DS02X < (0x1 << 10) MFP_DSMSK >
52#define MFP_DS03X < (0x2 << 10) MFP_DSMSK >
53#define MFP_DS04X < (0x3 << 10) MFP_DSMSK >
54#define MFP_DS06X < (0x4 << 10) MFP_DSMSK >
55#define MFP_DS08X < (0x5 << 10) MFP_DSMSK >
56#define MFP_DS10X < (0x6 << 10) MFP_DSMSK >
57#define MFP_DS13X < (0x7 << 10) MFP_DSMSK >
58
59/*
60 * MFP low power mode for pins.
61 * Example of use:
62 * pinctrl-single,low-power-mode = MFP_LPM(MFP_LPM_PULL_LOW|MFP_LPM_EDGE_FALL);
63 *
64 * Table that determines the low power modes outputs, with actual settings
65 * used in parentheses for don't-care values. Except for the float output,
66 * the configured driven and pulled levels match, so if there is a need for
67 * non-LPM pulled output, the same configuration could probably be used.
68 *
69 * Output value sleep_oe_n sleep_data pullup_en pulldown_en pull_sel
70 * (bit 7) (bit 8) (bit 14) (bit 13) (bit 15)
71 *
72 * Input 0 X(0) X(0) X(0) 0
73 * Drive 0 0 0 0 X(1) 0
74 * Drive 1 0 1 X(1) 0 0
75 * Pull hi (1) 1 X(1) 1 0 0
76 * Pull lo (0) 1 X(0) 0 1 0
77 * Z (float) 1 X(0) 0 0 0
78 */
79#define MFP_LPM(x) < (x) MFP_LPM_MSK >
80
81#define MFP_LPM_MSK 0xe1f0
82#define MFP_LPM_INPUT 0x0000
83#define MFP_LPM_DRIVE_LOW 0x2000
84#define MFP_LPM_DRIVE_HIGH 0x4100
85#define MFP_LPM_PULL_LOW 0x2080
86#define MFP_LPM_PULL_HIGH 0x4180
87#define MFP_LPM_FLOAT 0x0080
88
89#define MFP_LPM_EDGE_NONE 0x0000
90#define MFP_LPM_EDGE_RISE 0x0010
91#define MFP_LPM_EDGE_FALL 0x0020
92#define MFP_LPM_EDGE_BOTH 0x0030
93
4/ { 94/ {
5 model = "Marvell PXA3xx familiy SoC"; 95 model = "Marvell PXA3xx familiy SoC";
6 compatible = "marvell,pxa3xx"; 96 compatible = "marvell,pxa3xx";
@@ -43,6 +133,15 @@
43 marvell,intc-nr-irqs = <56>; 133 marvell,intc-nr-irqs = <56>;
44 }; 134 };
45 135
136 pinctrl: pinctrl@40e10000 {
137 compatible = "pinconf-single";
138 reg = <0x40e10000 0xffff>;
139 #address-cells = <1>;
140 #size-cells = <0>;
141 pinctrl-single,register-width = <32>;
142 pinctrl-single,function-mask = <0x7>;
143 };
144
46 gpio: gpio@40e00000 { 145 gpio: gpio@40e00000 {
47 compatible = "intel,pxa3xx-gpio"; 146 compatible = "intel,pxa3xx-gpio";
48 reg = <0x40e00000 0x10000>; 147 reg = <0x40e00000 0x10000>;
@@ -92,7 +191,39 @@
92 compatible = "marvell,pxa-ohci"; 191 compatible = "marvell,pxa-ohci";
93 reg = <0x4c000000 0x10000>; 192 reg = <0x4c000000 0x10000>;
94 interrupts = <3>; 193 interrupts = <3>;
95 clocks = <&clks CLK_USBHOST>; 194 clocks = <&clks CLK_USBH>;
195 status = "disabled";
196 };
197
198 pwm0: pwm@40b00000 {
199 compatible = "marvell,pxa270-pwm";
200 reg = <0x40b00000 0x10>;
201 #pwm-cells = <1>;
202 clocks = <&clks CLK_PWM0>;
203 status = "disabled";
204 };
205
206 pwm1: pwm@40b00010 {
207 compatible = "marvell,pxa270-pwm";
208 reg = <0x40b00010 0x10>;
209 #pwm-cells = <1>;
210 clocks = <&clks CLK_PWM1>;
211 status = "disabled";
212 };
213
214 pwm2: pwm@40c00000 {
215 compatible = "marvell,pxa270-pwm";
216 reg = <0x40c00000 0x10>;
217 #pwm-cells = <1>;
218 clocks = <&clks CLK_PWM0>;
219 status = "disabled";
220 };
221
222 pwm3: pwm@40c00010 {
223 compatible = "marvell,pxa270-pwm";
224 reg = <0x40c00010 0x10>;
225 #pwm-cells = <1>;
226 clocks = <&clks CLK_PWM1>;
96 status = "disabled"; 227 status = "disabled";
97 }; 228 };
98 }; 229 };
diff --git a/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
new file mode 100644
index 000000000000..0abc93e5bb00
--- /dev/null
+++ b/arch/arm/boot/dts/qcom-apq8060-dragonboard.dts
@@ -0,0 +1,626 @@
1/*
2 * Copyright 2016 Linaro Ltd
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#include <dt-bindings/input/input.h>
24#include <dt-bindings/gpio/gpio.h>
25#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
26#include "qcom-msm8660.dtsi"
27
28/ {
29 model = "Qualcomm APQ8060 Dragonboard";
30 compatible = "qcom,apq8060-dragonboard", "qcom,msm8660";
31
32 aliases {
33 serial0 = &gsbi12_serial;
34 };
35
36 chosen {
37 stdout-path = "serial0:115200n8";
38 };
39
40 regulators {
41 compatible = "simple-bus";
42
43 /* Main power of the board: 3.7V */
44 vph: regulator-fixed {
45 compatible = "regulator-fixed";
46 regulator-min-microvolt = <3700000>;
47 regulator-max-microvolt = <3700000>;
48 regulator-name = "VPH";
49 regulator-type = "voltage";
50 regulator-always-on;
51 regulator-boot-on;
52 };
53
54 /* This is a levelshifter for SDCC5 */
55 dragon_vio_txb: txb0104rgyr {
56 compatible = "regulator-fixed";
57 regulator-name = "Dragon SDCC levelshifter";
58 vin-supply = <&pm8058_l14>;
59 regulator-always-on;
60 };
61 };
62
63 soc {
64 pinctrl@800000 {
65 /* eMMMC pins, all 8 data lines connected */
66 dragon_sdcc1_pins: sdcc1 {
67 mux {
68 pins = "gpio159", "gpio160", "gpio161",
69 "gpio162", "gpio163", "gpio164",
70 "gpio165", "gpio166", "gpio167",
71 "gpio168";
72 function = "sdc1";
73 };
74 clk {
75 pins = "gpio167"; /* SDC5 CLK */
76 drive-strength = <16>;
77 bias-disable;
78 };
79 cmd {
80 pins = "gpio168"; /* SDC5 CMD */
81 drive-strength = <10>;
82 bias-pull-up;
83 };
84 data {
85 /* SDC5 D0 to D7 */
86 pins = "gpio159", "gpio160", "gpio161", "gpio162",
87 "gpio163", "gpio164", "gpio165", "gpio166";
88 drive-strength = <10>;
89 bias-pull-up;
90 };
91 };
92
93 /*
94 * The SDCC3 pins are hardcoded (non-muxable) but need some pin
95 * configuration.
96 */
97 dragon_sdcc3_pins: sdcc3 {
98 clk {
99 pins = "sdc3_clk";
100 drive-strength = <8>;
101 bias-disable;
102 };
103 cmd {
104 pins = "sdc3_cmd";
105 drive-strength = <8>;
106 bias-pull-up;
107 };
108 data {
109 pins = "sdc3_data";
110 drive-strength = <8>;
111 bias-pull-up;
112 };
113 };
114
115 /* Second SD card slot pins */
116 dragon_sdcc5_pins: sdcc5 {
117 mux {
118 pins = "gpio95", "gpio96", "gpio97",
119 "gpio98", "gpio99", "gpio100";
120 function = "sdc5";
121 };
122 clk {
123 pins = "gpio97"; /* SDC5 CLK */
124 drive-strength = <16>;
125 bias-disable;
126 };
127 cmd {
128 pins = "gpio95"; /* SDC5 CMD */
129 drive-strength = <10>;
130 bias-pull-up;
131 };
132 data {
133 /* SDC5 D0 to D3 */
134 pins = "gpio96", "gpio98", "gpio99", "gpio100";
135 drive-strength = <10>;
136 bias-pull-up;
137 };
138 };
139
140 dragon_gsbi12_i2c_pins: gsbi12_i2c {
141 mux {
142 pins = "gpio115", "gpio116";
143 function = "gsbi12";
144 };
145 pinconf {
146 pins = "gpio115", "gpio116";
147 drive-strength = <16>;
148 /* These have external pull-up 4.7kOhm to 1.8V */
149 bias-disable;
150 };
151 };
152
153 /* Primary serial port uart 0 pins */
154 dragon_gsbi12_serial_pins: gsbi12_serial {
155 mux {
156 pins = "gpio117", "gpio118";
157 function = "gsbi12";
158 };
159 tx {
160 pins = "gpio117";
161 drive-strength = <8>;
162 bias-disable;
163 };
164 rx {
165 pins = "gpio118";
166 drive-strength = <2>;
167 bias-pull-up;
168 };
169 };
170 };
171
172 qcom,ssbi@500000 {
173 pmic@0 {
174 keypad@148 {
175 linux,keymap = <
176 MATRIX_KEY(0, 0, KEY_MENU)
177 MATRIX_KEY(0, 2, KEY_1)
178 MATRIX_KEY(0, 3, KEY_4)
179 MATRIX_KEY(0, 4, KEY_7)
180 MATRIX_KEY(1, 0, KEY_UP)
181 MATRIX_KEY(1, 1, KEY_LEFT)
182 MATRIX_KEY(1, 2, KEY_DOWN)
183 MATRIX_KEY(1, 3, KEY_5)
184 MATRIX_KEY(1, 3, KEY_8)
185 MATRIX_KEY(2, 0, KEY_HOME)
186 MATRIX_KEY(2, 1, KEY_REPLY)
187 MATRIX_KEY(2, 2, KEY_2)
188 MATRIX_KEY(2, 3, KEY_6)
189 MATRIX_KEY(3, 0, KEY_VOLUMEUP)
190 MATRIX_KEY(3, 1, KEY_RIGHT)
191 MATRIX_KEY(3, 2, KEY_3)
192 MATRIX_KEY(3, 3, KEY_9)
193 MATRIX_KEY(3, 4, KEY_SWITCHVIDEOMODE)
194 MATRIX_KEY(4, 0, KEY_VOLUMEDOWN)
195 MATRIX_KEY(4, 1, KEY_BACK)
196 MATRIX_KEY(4, 2, KEY_CAMERA)
197 MATRIX_KEY(4, 3, KEY_KBDILLUMTOGGLE)
198 >;
199 keypad,num-rows = <6>;
200 keypad,num-columns = <5>;
201 };
202
203 gpio@150 {
204 dragon_bmp085_gpios: bmp085-gpios {
205 pinconf {
206 pins = "gpio16";
207 function = "normal";
208 input-enable;
209 bias-disable;
210 power-source = <PM8058_GPIO_S3>;
211 };
212 };
213 dragon_sdcc3_gpios: sdcc3-gpios {
214 pinconf {
215 pins = "gpio22";
216 function = "normal";
217 input-enable;
218 bias-disable;
219 power-source = <PM8058_GPIO_S3>;
220 };
221 };
222 dragon_sdcc5_gpios: sdcc5-gpios {
223 pinconf {
224 pins = "gpio26";
225 function = "normal";
226 input-enable;
227 bias-pull-up;
228 qcom,pull-up-strength = <PMIC_GPIO_PULL_UP_30>;
229 power-source = <PM8058_GPIO_S3>;
230 };
231 };
232 dragon_ak8975_gpios: ak8975-gpios {
233 pinconf {
234 pins = "gpio33";
235 function = "normal";
236 input-enable;
237 bias-disable;
238 power-source = <PM8058_GPIO_S3>;
239 };
240 };
241 };
242 };
243 };
244
245 gsbi@19c00000 {
246 status = "ok";
247 qcom,mode = <GSBI_PROT_I2C_UART>;
248
249 serial@19c40000 {
250 status = "ok";
251 pinctrl-names = "default";
252 pinctrl-0 = <&dragon_gsbi12_serial_pins>;
253 };
254
255 i2c@19c80000 {
256 status = "ok";
257 pinctrl-names = "default";
258 pinctrl-0 = <&dragon_gsbi12_i2c_pins>;
259
260 ak8975@0c {
261 compatible = "asahi-kasei,ak8975";
262 reg = <0x0c>;
263 /* GPIO33 has interrupt 224 on the PM8058 */
264 interrupt-parent = <&pm8058_gpio>;
265 interrupts = <224 IRQ_TYPE_EDGE_RISING>;
266 pinctrl-names = "default";
267 pinctrl-0 = <&dragon_ak8975_gpios>;
268 vid-supply = <&pm8058_lvs0>; // 1.8V
269 vdd-supply = <&pm8058_l14>; // 2.85V
270 };
271 bmp085@77 {
272 compatible = "bosch,bmp085";
273 reg = <0x77>;
274 /* GPIO16 has interrupt 207 on the PM8058 */
275 interrupt-parent = <&pm8058_gpio>;
276 interrupts = <207 IRQ_TYPE_EDGE_RISING>;
277 reset-gpios = <&tlmm 86 GPIO_ACTIVE_LOW>;
278 pinctrl-names = "default";
279 pinctrl-0 = <&dragon_bmp085_gpios>;
280 vddd-supply = <&pm8058_lvs0>; // 1.8V
281 vdda-supply = <&pm8058_l14>; // 2.85V
282 };
283 };
284 };
285
286 rpm@104000 {
287 /*
288 * Set up of the PMIC RPM regulators for this board
289 * PM8901 supplies "preliminary regulators" whatever
290 * that means
291 */
292 pm8901-regulators {
293 vdd_l0-supply = <&pm8901_s4>;
294 vdd_l1-supply = <&vph>;
295 vdd_l2-supply = <&vph>;
296 vdd_l3-supply = <&vph>;
297 vdd_l4-supply = <&vph>;
298 vdd_l5-supply = <&vph>;
299 vdd_l6-supply = <&vph>;
300 /* vdd_s0-supply, vdd_s1-supply: SAW regulators */
301 vdd_s2-supply = <&vph>;
302 vdd_s3-supply = <&vph>;
303 vdd_s4-supply = <&vph>;
304 lvs0_in-supply = <&pm8058_s3>;
305 lvs1_in-supply = <&pm8901_s4>;
306 lvs2_in-supply = <&pm8058_l0>;
307 lvs3_in-supply = <&pm8058_s2>;
308 mvs_in-supply = <&pm8058_s3>;
309
310 l0 {
311 regulator-min-microvolt = <1200000>;
312 regulator-max-microvolt = <1200000>;
313 bias-pull-down;
314 };
315 l1 {
316 regulator-min-microvolt = <3300000>;
317 regulator-max-microvolt = <3300000>;
318 bias-pull-down;
319 };
320 l2 {
321 regulator-min-microvolt = <2850000>;
322 regulator-max-microvolt = <3300000>;
323 bias-pull-down;
324 };
325 l3 {
326 regulator-min-microvolt = <3300000>;
327 regulator-max-microvolt = <3300000>;
328 bias-pull-down;
329 };
330 l4 {
331 regulator-min-microvolt = <2600000>;
332 regulator-max-microvolt = <2600000>;
333 bias-pull-down;
334 };
335 l5 {
336 regulator-min-microvolt = <2850000>;
337 regulator-max-microvolt = <2850000>;
338 bias-pull-down;
339 };
340 l6 {
341 regulator-min-microvolt = <2200000>;
342 regulator-max-microvolt = <2200000>;
343 bias-pull-down;
344 };
345
346 /* s0 and s1 are SAW regulators controlled over SPM */
347 s2 {
348 regulator-min-microvolt = <1300000>;
349 regulator-max-microvolt = <1300000>;
350 qcom,switch-mode-frequency = <1600000>;
351 bias-pull-down;
352 };
353 s3 {
354 regulator-min-microvolt = <1100000>;
355 regulator-max-microvolt = <1100000>;
356 qcom,switch-mode-frequency = <1600000>;
357 bias-pull-down;
358 };
359 s4 {
360 regulator-min-microvolt = <1225000>;
361 regulator-max-microvolt = <1225000>;
362 qcom,switch-mode-frequency = <1600000>;
363 bias-pull-down;
364 };
365
366 /* LVS0 thru 3 and mvs0 are just switches */
367 lvs0 {
368 regulator-always-on;
369 };
370 lvs1 { };
371 lvs2 { };
372 lvs3 { };
373 mvs0 {};
374
375 };
376
377 pm8058-regulators {
378 vdd_l0_l1_lvs-supply = <&pm8058_s3>;
379 vdd_l2_l11_l12-supply = <&vph>;
380 vdd_l3_l4_l5-supply = <&vph>;
381 vdd_l6_l7-supply = <&vph>;
382 vdd_l8-supply = <&vph>;
383 vdd_l9-supply = <&vph>;
384 vdd_l10-supply = <&vph>;
385 vdd_l13_l16-supply = <&pm8058_s4>;
386 vdd_l14_l15-supply = <&vph>;
387 vdd_l17_l18-supply = <&vph>;
388 vdd_l19_l20-supply = <&vph>;
389 vdd_l21-supply = <&pm8058_s3>;
390 vdd_l22-supply = <&pm8058_s3>;
391 vdd_l23_l24_l25-supply = <&pm8058_s3>;
392 vdd_s0-supply = <&vph>;
393 vdd_s1-supply = <&vph>;
394 vdd_s2-supply = <&vph>;
395 vdd_s3-supply = <&vph>;
396 vdd_s4-supply = <&vph>;
397 vdd_ncp-supply = <&vph>;
398
399 l0 {
400 regulator-min-microvolt = <1200000>;
401 regulator-max-microvolt = <1200000>;
402 bias-pull-down;
403 };
404 l1 {
405 regulator-min-microvolt = <1200000>;
406 regulator-max-microvolt = <1200000>;
407 bias-pull-down;
408 };
409 l2 {
410 regulator-min-microvolt = <1800000>;
411 regulator-max-microvolt = <2600000>;
412 bias-pull-down;
413 };
414 l3 {
415 regulator-min-microvolt = <1800000>;
416 regulator-max-microvolt = <1800000>;
417 bias-pull-down;
418 };
419 l4 {
420 regulator-min-microvolt = <2850000>;
421 regulator-max-microvolt = <2850000>;
422 bias-pull-down;
423 };
424 l5 {
425 regulator-min-microvolt = <2850000>;
426 regulator-max-microvolt = <2850000>;
427 bias-pull-down;
428 };
429 l6 {
430 regulator-min-microvolt = <3000000>;
431 regulator-max-microvolt = <3600000>;
432 bias-pull-down;
433 };
434 l7 {
435 regulator-min-microvolt = <1800000>;
436 regulator-max-microvolt = <1800000>;
437 bias-pull-down;
438 };
439 l8 {
440 regulator-min-microvolt = <2900000>;
441 regulator-max-microvolt = <3050000>;
442 bias-pull-down;
443 };
444 l9 {
445 regulator-min-microvolt = <1800000>;
446 regulator-max-microvolt = <1800000>;
447 bias-pull-down;
448 };
449 l10 {
450 regulator-min-microvolt = <2600000>;
451 regulator-max-microvolt = <2600000>;
452 bias-pull-down;
453 };
454 l11 {
455 regulator-min-microvolt = <1500000>;
456 regulator-max-microvolt = <1500000>;
457 bias-pull-down;
458 };
459 l12 {
460 regulator-min-microvolt = <2900000>;
461 regulator-max-microvolt = <2900000>;
462 bias-pull-down;
463 };
464 l13 {
465 regulator-min-microvolt = <2050000>;
466 regulator-max-microvolt = <2050000>;
467 bias-pull-down;
468 };
469 l14 {
470 regulator-min-microvolt = <2850000>;
471 regulator-max-microvolt = <2850000>;
472 };
473 l15 {
474 regulator-min-microvolt = <2850000>;
475 regulator-max-microvolt = <2850000>;
476 bias-pull-down;
477 };
478 l16 {
479 regulator-min-microvolt = <1800000>;
480 regulator-max-microvolt = <1800000>;
481 bias-pull-down;
482 regulator-always-on;
483 };
484 l17 {
485 // 1.5V according to schematic
486 regulator-min-microvolt = <2600000>;
487 regulator-max-microvolt = <2600000>;
488 bias-pull-down;
489 };
490 l18 {
491 regulator-min-microvolt = <2200000>;
492 regulator-max-microvolt = <2200000>;
493 bias-pull-down;
494 };
495 l19 {
496 regulator-min-microvolt = <2500000>;
497 regulator-max-microvolt = <2500000>;
498 bias-pull-down;
499 };
500 l20 {
501 regulator-min-microvolt = <1800000>;
502 regulator-max-microvolt = <1800000>;
503 bias-pull-down;
504 };
505 l21 {
506 // 1.1 V according to schematic
507 regulator-min-microvolt = <1200000>;
508 regulator-max-microvolt = <1200000>;
509 bias-pull-down;
510 regulator-always-on;
511 };
512 l22 {
513 // 1.2 V according to schematic
514 regulator-min-microvolt = <1150000>;
515 regulator-max-microvolt = <1150000>;
516 bias-pull-down;
517 };
518 l23 {
519 // Unused
520 regulator-min-microvolt = <1200000>;
521 regulator-max-microvolt = <1200000>;
522 bias-pull-down;
523 };
524 l24 {
525 // Unused
526 regulator-min-microvolt = <1200000>;
527 regulator-max-microvolt = <1200000>;
528 bias-pull-down;
529 };
530 l25 {
531 regulator-min-microvolt = <1200000>;
532 regulator-max-microvolt = <1200000>;
533 bias-pull-down;
534 };
535
536 s0 {
537 // regulator-min-microvolt = <500000>;
538 // regulator-max-microvolt = <1325000>;
539 regulator-min-microvolt = <1100000>;
540 regulator-max-microvolt = <1100000>;
541 qcom,switch-mode-frequency = <1600000>;
542 bias-pull-down;
543 };
544 s1 {
545 // regulator-min-microvolt = <500000>;
546 // regulator-max-microvolt = <1250000>;
547 regulator-min-microvolt = <1100000>;
548 regulator-max-microvolt = <1100000>;
549 qcom,switch-mode-frequency = <1600000>;
550 bias-pull-down;
551 };
552 s2 {
553 // 1.3 V according to schematic
554 regulator-min-microvolt = <1200000>;
555 regulator-max-microvolt = <1400000>;
556 qcom,switch-mode-frequency = <1600000>;
557 bias-pull-down;
558 };
559 s3 {
560 regulator-min-microvolt = <1800000>;
561 regulator-max-microvolt = <1800000>;
562 qcom,switch-mode-frequency = <1600000>;
563 regulator-always-on;
564 bias-pull-down;
565 };
566 s4 {
567 regulator-min-microvolt = <2200000>;
568 regulator-max-microvolt = <2200000>;
569 qcom,switch-mode-frequency = <1600000>;
570 regulator-always-on;
571 bias-pull-down;
572 };
573
574 /* LVS0 and LVS1 are just switches */
575 lvs0 {
576 bias-pull-down;
577 };
578 lvs1 {
579 bias-pull-down;
580 };
581
582 ncp {
583 regulator-min-microvolt = <1800000>;
584 regulator-max-microvolt = <1800000>;
585 qcom,switch-mode-frequency = <1600000>;
586 };
587 };
588 };
589 amba {
590 /* Internal 3.69 GiB eMMC */
591 sdcc@12400000 {
592 status = "okay";
593 pinctrl-names = "default";
594 pinctrl-0 = <&dragon_sdcc1_pins>;
595 vmmc-supply = <&pm8901_l5>;
596 vqmmc-supply = <&pm8901_lvs0>;
597 };
598
599 /* External micro SD card, directly connected, pulled up to 2.85 V */
600 sdcc@12180000 {
601 status = "okay";
602 /* Enable SSBI GPIO 22 as input, use for card detect */
603 pinctrl-names = "default";
604 pinctrl-0 = <&dragon_sdcc3_pins>, <&dragon_sdcc3_gpios>;
605 cd-gpios = <&pm8058_gpio 22 GPIO_ACTIVE_LOW>;
606 wp-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
607 vmmc-supply = <&pm8058_l14>;
608 };
609
610 /*
611 * Second external micro SD card, using two TXB104RGYR levelshifters
612 * to lift from 1.8 V to 2.85 V
613 */
614 sdcc@12200000 {
615 status = "okay";
616 /* Enable SSBI GPIO 26 as input, use for card detect */
617 pinctrl-names = "default";
618 pinctrl-0 = <&dragon_sdcc5_pins>, <&dragon_sdcc5_gpios>;
619 cd-gpios = <&pm8058_gpio 26 GPIO_ACTIVE_LOW>;
620 wp-gpios = <&tlmm 106 GPIO_ACTIVE_HIGH>;
621 vmmc-supply = <&pm8058_l14>;
622 vqmmc-supply = <&dragon_vio_txb>;
623 };
624 };
625 };
626};
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi
index a3efb9704fcd..a3efb9704fcd 100644
--- a/arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi
diff --git a/arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
index e01b27ea7fba..39ae2bc8cb08 100644
--- a/arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts
@@ -1,10 +1,11 @@
1#include "qcom-apq8064-v2.0.dtsi" 1#include "qcom-apq8064-v2.0.dtsi"
2#include "qcom-apq8064-arrow-db600c-pins.dtsi" 2#include "qcom-apq8064-arrow-sd-600eval-pins.dtsi"
3#include <dt-bindings/gpio/gpio.h> 3#include <dt-bindings/gpio/gpio.h>
4#include <dt-bindings/mfd/qcom-rpm.h>
4 5
5/ { 6/ {
6 model = "Arrow Electronics, APQ8064 DB600c"; 7 model = "Arrow Electronics, APQ8064 SD_600eval";
7 compatible = "arrow,db600c", "qcom,apq8064"; 8 compatible = "arrow,sd_600eval", "qcom,apq8064";
8 9
9 aliases { 10 aliases {
10 serial0 = &gsbi7_serial; 11 serial0 = &gsbi7_serial;
@@ -82,7 +83,8 @@
82 s4 { 83 s4 {
83 regulator-min-microvolt = <1800000>; 84 regulator-min-microvolt = <1800000>;
84 regulator-max-microvolt = <1800000>; 85 regulator-max-microvolt = <1800000>;
85 qcom,switch-mode-frequency = <3200000>; 86 qcom,switch-mode-frequency = <1600000>;
87 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
86 bias-pull-down; 88 bias-pull-down;
87 regulator-always-on; 89 regulator-always-on;
88 }; 90 };
diff --git a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
index 32fedfa149d0..7b05f072bfc2 100644
--- a/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts
@@ -29,12 +29,6 @@
29 29
30 gpio-keys { 30 gpio-keys {
31 compatible = "gpio-keys"; 31 compatible = "gpio-keys";
32 power {
33 label = "Power";
34 gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
35 linux,code = <KEY_POWER>;
36 gpio-key,wakeup;
37 };
38 volume_up { 32 volume_up {
39 label = "Volume Up"; 33 label = "Volume Up";
40 gpios = <&pm8921_gpio 4 GPIO_ACTIVE_HIGH>; 34 gpios = <&pm8921_gpio 4 GPIO_ACTIVE_HIGH>;
diff --git a/arch/arm/boot/dts/qcom-apq8064-pins.dtsi b/arch/arm/boot/dts/qcom-apq8064-pins.dtsi
index 4102a98f475b..6b801e7e57a2 100644
--- a/arch/arm/boot/dts/qcom-apq8064-pins.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064-pins.dtsi
@@ -7,6 +7,46 @@
7 }; 7 };
8 }; 8 };
9 9
10 sdcc1_pins: sdcc1-pin-active {
11 clk {
12 pins = "sdc1_clk";
13 drive-strengh = <16>;
14 bias-disable;
15 };
16
17 cmd {
18 pins = "sdc1_cmd";
19 drive-strengh = <10>;
20 bias-pull-up;
21 };
22
23 data {
24 pins = "sdc1_data";
25 drive-strengh = <10>;
26 bias-pull-up;
27 };
28 };
29
30 sdcc3_pins: sdcc3-pin-active {
31 clk {
32 pins = "sdc3_clk";
33 drive-strengh = <8>;
34 bias-disable;
35 };
36
37 cmd {
38 pins = "sdc3_cmd";
39 drive-strengh = <8>;
40 bias-pull-up;
41 };
42
43 data {
44 pins = "sdc3_data";
45 drive-strengh = <8>;
46 bias-pull-up;
47 };
48 };
49
10 ps_hold: ps_hold { 50 ps_hold: ps_hold {
11 mux { 51 mux {
12 pins = "gpio78"; 52 pins = "gpio78";
diff --git a/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts b/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
index 06b3c76c3e41..ebd675ca94b4 100644
--- a/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
+++ b/arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts
@@ -70,45 +70,6 @@
70 }; 70 };
71 }; 71 };
72 72
73 sdcc1_pin_a: sdcc1-pin-active {
74 clk {
75 pins = "sdc1_clk";
76 drive-strengh = <16>;
77 bias-disable;
78 };
79
80 cmd {
81 pins = "sdc1_cmd";
82 drive-strengh = <10>;
83 bias-pull-up;
84 };
85
86 data {
87 pins = "sdc1_data";
88 drive-strengh = <10>;
89 bias-pull-up;
90 };
91 };
92
93 sdcc3_pin_a: sdcc3-pin-active {
94 clk {
95 pins = "sdc3_clk";
96 drive-strengh = <8>;
97 bias-disable;
98 };
99
100 cmd {
101 pins = "sdc3_cmd";
102 drive-strengh = <8>;
103 bias-pull-up;
104 };
105
106 data {
107 pins = "sdc3_data";
108 drive-strengh = <8>;
109 bias-pull-up;
110 };
111 };
112 73
113 sdcc3_cd_pin_a: sdcc3-cd-pin-active { 74 sdcc3_cd_pin_a: sdcc3-cd-pin-active {
114 pins = "gpio26"; 75 pins = "gpio26";
@@ -417,9 +378,6 @@
417 378
418 vmmc-supply = <&pm8921_l5>; 379 vmmc-supply = <&pm8921_l5>;
419 vqmmc-supply = <&pm8921_s4>; 380 vqmmc-supply = <&pm8921_s4>;
420
421 pinctrl-names = "default";
422 pinctrl-0 = <&sdcc1_pin_a>;
423 }; 381 };
424 382
425 sdcc3: sdcc@12180000 { 383 sdcc3: sdcc@12180000 {
@@ -429,7 +387,7 @@
429 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>; 387 cd-gpios = <&tlmm_pinmux 26 GPIO_ACTIVE_LOW>;
430 388
431 pinctrl-names = "default"; 389 pinctrl-names = "default";
432 pinctrl-0 = <&sdcc3_pin_a>, <&sdcc3_cd_pin_a>; 390 pinctrl-0 = <&sdcc3_pins>, <&sdcc3_cd_pin_a>;
433 }; 391 };
434 }; 392 };
435 }; 393 };
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index e318d04319a0..74a9b6c394f5 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -177,7 +177,7 @@
177 177
178 apps_smsm: apps@0 { 178 apps_smsm: apps@0 {
179 reg = <0>; 179 reg = <0>;
180 #qcom,state-cells = <1>; 180 #qcom,smem-state-cells = <1>;
181 }; 181 };
182 182
183 modem_smsm: modem@1 { 183 modem_smsm: modem@1 {
@@ -213,6 +213,12 @@
213 }; 213 };
214 }; 214 };
215 215
216 firmware {
217 scm {
218 compatible = "qcom,scm-apq8064";
219 };
220 };
221
216 soc: soc { 222 soc: soc {
217 #address-cells = <1>; 223 #address-cells = <1>;
218 #size-cells = <1>; 224 #size-cells = <1>;
@@ -854,6 +860,8 @@
854 sdcc1: sdcc@12400000 { 860 sdcc1: sdcc@12400000 {
855 status = "disabled"; 861 status = "disabled";
856 compatible = "arm,pl18x", "arm,primecell"; 862 compatible = "arm,pl18x", "arm,primecell";
863 pinctrl-names = "default";
864 pinctrl-0 = <&sdcc1_pins>;
857 arm,primecell-periphid = <0x00051180>; 865 arm,primecell-periphid = <0x00051180>;
858 reg = <0x12400000 0x2000>; 866 reg = <0x12400000 0x2000>;
859 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 867 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts b/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
index c0e205315042..ad51df27dfb7 100644
--- a/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
+++ b/arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
@@ -25,11 +25,23 @@
25 bus-width = <8>; 25 bus-width = <8>;
26 non-removable; 26 non-removable;
27 status = "ok"; 27 status = "ok";
28
29 vmmc-supply = <&pm8941_l20>;
30 vqmmc-supply = <&pm8941_s3>;
31
32 pinctrl-names = "default";
33 pinctrl-0 = <&sdhc1_pin_a>;
28 }; 34 };
29 35
30 sdhci@f98a4900 { 36 sdhci@f98a4900 {
31 cd-gpios = <&msmgpio 62 0x1>; 37 cd-gpios = <&msmgpio 62 0x1>;
38 pinctrl-names = "default";
39 pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
32 bus-width = <4>; 40 bus-width = <4>;
41 status = "ok";
42
43 vmmc-supply = <&pm8941_l21>;
44 vqmmc-supply = <&pm8941_l13>;
33 }; 45 };
34 46
35 47
@@ -59,6 +71,42 @@
59 function = "blsp_spi8"; 71 function = "blsp_spi8";
60 }; 72 };
61 }; 73 };
74
75 sdhc1_pin_a: sdhc1-pin-active {
76 clk {
77 pins = "sdc1_clk";
78 drive-strength = <16>;
79 bias-disable;
80 };
81
82 cmd-data {
83 pins = "sdc1_cmd", "sdc1_data";
84 drive-strength = <10>;
85 bias-pull-up;
86 };
87 };
88
89 sdhc2_cd_pin_a: sdhc2-cd-pin-active {
90 pins = "gpio62";
91 function = "gpio";
92
93 drive-strength = <2>;
94 bias-disable;
95 };
96
97 sdhc2_pin_a: sdhc2-pin-active {
98 clk {
99 pins = "sdc2_clk";
100 drive-strength = <10>;
101 bias-disable;
102 };
103
104 cmd-data {
105 pins = "sdc2_cmd", "sdc2_data";
106 drive-strength = <6>;
107 bias-pull-up;
108 };
109 };
62 }; 110 };
63 111
64 i2c@f9967000 { 112 i2c@f9967000 {
@@ -75,4 +123,203 @@
75 }; 123 };
76 }; 124 };
77 }; 125 };
126
127 smd {
128 rpm {
129 rpm_requests {
130 pm8841-regulators {
131 s1 {
132 regulator-min-microvolt = <675000>;
133 regulator-max-microvolt = <1050000>;
134 };
135
136 s2 {
137 regulator-min-microvolt = <500000>;
138 regulator-max-microvolt = <1050000>;
139 };
140
141 s3 {
142 regulator-min-microvolt = <500000>;
143 regulator-max-microvolt = <1050000>;
144 };
145
146 s4 {
147 regulator-min-microvolt = <500000>;
148 regulator-max-microvolt = <1050000>;
149 };
150 };
151
152 pm8941-regulators {
153 vdd_l1_l3-supply = <&pm8941_s1>;
154 vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
155 vdd_l4_l11-supply = <&pm8941_s1>;
156 vdd_l5_l7-supply = <&pm8941_s2>;
157 vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
158 vin_5vs-supply = <&pm8941_5v>;
159
160 s1 {
161 regulator-min-microvolt = <1300000>;
162 regulator-max-microvolt = <1300000>;
163 regulator-always-on;
164 regulator-boot-on;
165 };
166
167 s2 {
168 regulator-min-microvolt = <2150000>;
169 regulator-max-microvolt = <2150000>;
170 regulator-boot-on;
171 };
172
173 s3 {
174 regulator-min-microvolt = <1800000>;
175 regulator-max-microvolt = <1800000>;
176 regulator-always-on;
177 regulator-boot-on;
178 };
179
180 l1 {
181 regulator-min-microvolt = <1225000>;
182 regulator-max-microvolt = <1225000>;
183
184 regulator-always-on;
185 regulator-boot-on;
186 };
187
188 l2 {
189 regulator-min-microvolt = <1200000>;
190 regulator-max-microvolt = <1200000>;
191 };
192
193 l3 {
194 regulator-min-microvolt = <1225000>;
195 regulator-max-microvolt = <1225000>;
196 };
197
198 l4 {
199 regulator-min-microvolt = <1225000>;
200 regulator-max-microvolt = <1225000>;
201 };
202
203 l5 {
204 regulator-min-microvolt = <1800000>;
205 regulator-max-microvolt = <1800000>;
206 };
207
208 l6 {
209 regulator-min-microvolt = <1800000>;
210 regulator-max-microvolt = <1800000>;
211
212 regulator-boot-on;
213 };
214
215 l7 {
216 regulator-min-microvolt = <1800000>;
217 regulator-max-microvolt = <1800000>;
218
219 regulator-boot-on;
220 };
221
222 l8 {
223 regulator-min-microvolt = <1800000>;
224 regulator-max-microvolt = <1800000>;
225 };
226
227 l9 {
228 regulator-min-microvolt = <1800000>;
229 regulator-max-microvolt = <2950000>;
230 };
231
232 l10 {
233 regulator-min-microvolt = <1800000>;
234 regulator-max-microvolt = <1800000>;
235 regulator-always-on;
236 };
237
238 l11 {
239 regulator-min-microvolt = <1300000>;
240 regulator-max-microvolt = <1300000>;
241 };
242
243 l12 {
244 regulator-min-microvolt = <1800000>;
245 regulator-max-microvolt = <1800000>;
246
247 regulator-always-on;
248 regulator-boot-on;
249 };
250
251 l13 {
252 regulator-min-microvolt = <1800000>;
253 regulator-max-microvolt = <2950000>;
254
255 regulator-boot-on;
256 };
257
258 l14 {
259 regulator-min-microvolt = <1800000>;
260 regulator-max-microvolt = <1800000>;
261 };
262
263 l15 {
264 regulator-min-microvolt = <2050000>;
265 regulator-max-microvolt = <2050000>;
266 };
267
268 l16 {
269 regulator-min-microvolt = <2700000>;
270 regulator-max-microvolt = <2700000>;
271 };
272
273 l17 {
274 regulator-min-microvolt = <2700000>;
275 regulator-max-microvolt = <2700000>;
276 };
277
278 l18 {
279 regulator-min-microvolt = <2850000>;
280 regulator-max-microvolt = <2850000>;
281 };
282
283 l19 {
284 regulator-min-microvolt = <3300000>;
285 regulator-max-microvolt = <3300000>;
286 regulator-always-on;
287 };
288
289 l20 {
290 regulator-min-microvolt = <2950000>;
291 regulator-max-microvolt = <2950000>;
292
293 regulator-allow-set-load;
294 regulator-boot-on;
295 regulator-system-load = <200000>;
296 };
297
298 l21 {
299 regulator-min-microvolt = <2950000>;
300 regulator-max-microvolt = <2950000>;
301
302 regulator-boot-on;
303 };
304
305 l22 {
306 regulator-min-microvolt = <3000000>;
307 regulator-max-microvolt = <3000000>;
308 };
309
310 l23 {
311 regulator-min-microvolt = <3000000>;
312 regulator-max-microvolt = <3000000>;
313 };
314
315 l24 {
316 regulator-min-microvolt = <3075000>;
317 regulator-max-microvolt = <3075000>;
318
319 regulator-boot-on;
320 };
321 };
322 };
323 };
324 };
78}; 325};
diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi
index a33a09f6821e..7c2df062a025 100644
--- a/arch/arm/boot/dts/qcom-apq8084.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8084.dtsi
@@ -86,6 +86,14 @@
86 }; 86 };
87 }; 87 };
88 88
89 firmware {
90 scm {
91 compatible = "qcom,scm";
92 clocks = <&gcc GCC_CE1_CLK> , <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
93 clock-names = "core", "bus", "iface";
94 };
95 };
96
89 cpu-pmu { 97 cpu-pmu {
90 compatible = "qcom,krait-pmu"; 98 compatible = "qcom,krait-pmu";
91 interrupts = <1 7 0xf04>; 99 interrupts = <1 7 0xf04>;
diff --git a/arch/arm/boot/dts/qcom-ipq4019.dtsi b/arch/arm/boot/dts/qcom-ipq4019.dtsi
index e625656a608a..b7a24af8f47b 100644
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
@@ -84,6 +84,12 @@
84 }; 84 };
85 }; 85 };
86 86
87 pmu {
88 compatible = "arm,cortex-a7-pmu";
89 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
90 IRQ_TYPE_LEVEL_HIGH)>;
91 };
92
87 clocks { 93 clocks {
88 sleep_clk: sleep_clk { 94 sleep_clk: sleep_clk {
89 compatible = "fixed-clock"; 95 compatible = "fixed-clock";
diff --git a/arch/arm/boot/dts/qcom-msm8660-surf.dts b/arch/arm/boot/dts/qcom-msm8660-surf.dts
index b17f379e8c2a..23de764558ab 100644
--- a/arch/arm/boot/dts/qcom-msm8660-surf.dts
+++ b/arch/arm/boot/dts/qcom-msm8660-surf.dts
@@ -23,15 +23,26 @@
23 }; 23 };
24 }; 24 };
25 25
26 /* Temporary fixed regulator */
27 vsdcc_fixed: vsdcc-regulator {
28 compatible = "regulator-fixed";
29 regulator-name = "SDCC Power";
30 regulator-min-microvolt = <2700000>;
31 regulator-max-microvolt = <2700000>;
32 regulator-always-on;
33 };
34
26 amba { 35 amba {
27 /* eMMC */ 36 /* eMMC */
28 sdcc1: sdcc@12400000 { 37 sdcc1: sdcc@12400000 {
29 status = "okay"; 38 status = "okay";
39 vmmc-supply = <&vsdcc_fixed>;
30 }; 40 };
31 41
32 /* External micro SD card */ 42 /* External micro SD card */
33 sdcc3: sdcc@12180000 { 43 sdcc3: sdcc@12180000 {
34 status = "okay"; 44 status = "okay";
45 vmmc-supply = <&vsdcc_fixed>;
35 }; 46 };
36 }; 47 };
37 }; 48 };
diff --git a/arch/arm/boot/dts/qcom-msm8660.dtsi b/arch/arm/boot/dts/qcom-msm8660.dtsi
index cd214030b84a..acbe71febe13 100644
--- a/arch/arm/boot/dts/qcom-msm8660.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8660.dtsi
@@ -122,11 +122,22 @@
122 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 122 compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
123 reg = <0x19c40000 0x1000>, 123 reg = <0x19c40000 0x1000>,
124 <0x19c00000 0x1000>; 124 <0x19c00000 0x1000>;
125 interrupts = <0 195 0x0>; 125 interrupts = <0 195 IRQ_TYPE_NONE>;
126 clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>; 126 clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>;
127 clock-names = "core", "iface"; 127 clock-names = "core", "iface";
128 status = "disabled"; 128 status = "disabled";
129 }; 129 };
130
131 gsbi12_i2c: i2c@19c80000 {
132 compatible = "qcom,i2c-qup-v1.1.1";
133 reg = <0x19c80000 0x1000>;
134 interrupts = <0 196 IRQ_TYPE_NONE>;
135 clocks = <&gcc GSBI12_QUP_CLK>, <&gcc GSBI12_H_CLK>;
136 clock-names = "core", "iface";
137 #address-cells = <1>;
138 #size-cells = <0>;
139 status = "disabled";
140 };
130 }; 141 };
131 142
132 qcom,ssbi@500000 { 143 qcom,ssbi@500000 {
@@ -143,6 +154,44 @@
143 #address-cells = <1>; 154 #address-cells = <1>;
144 #size-cells = <0>; 155 #size-cells = <0>;
145 156
157 pm8058_gpio: gpio@150 {
158 compatible = "qcom,pm8058-gpio",
159 "qcom,ssbi-gpio";
160 reg = <0x150>;
161 interrupt-parent = <&pmicintc>;
162 interrupts = <192 1>, <193 1>, <194 1>,
163 <195 1>, <196 1>, <197 1>,
164 <198 1>, <199 1>, <200 1>,
165 <201 1>, <202 1>, <203 1>,
166 <204 1>, <205 1>, <206 1>,
167 <207 1>, <208 1>, <209 1>,
168 <210 1>, <211 1>, <212 1>,
169 <213 1>, <214 1>, <215 1>,
170 <216 1>, <217 1>, <218 1>,
171 <219 1>, <220 1>, <221 1>,
172 <222 1>, <223 1>, <224 1>,
173 <225 1>, <226 1>, <227 1>,
174 <228 1>, <229 1>, <230 1>,
175 <231 1>, <232 1>, <233 1>,
176 <234 1>, <235 1>;
177 gpio-controller;
178 #gpio-cells = <2>;
179
180 };
181
182 pm8058_mpps: mpps@50 {
183 compatible = "qcom,pm8058-mpp",
184 "qcom,ssbi-mpp";
185 reg = <0x50>;
186 gpio-controller;
187 #gpio-cells = <2>;
188 interrupt-parent = <&pmicintc>;
189 interrupts =
190 <128 1>, <129 1>, <130 1>, <131 1>,
191 <132 1>, <133 1>, <134 1>, <135 1>,
192 <136 1>, <137 1>, <138 1>, <139 1>;
193 };
194
146 pwrkey@1c { 195 pwrkey@1c {
147 compatible = "qcom,pm8058-pwrkey"; 196 compatible = "qcom,pm8058-pwrkey";
148 reg = <0x1c>; 197 reg = <0x1c>;
@@ -162,11 +211,11 @@
162 row-hold = <91500>; 211 row-hold = <91500>;
163 }; 212 };
164 213
165 rtc@11d { 214 rtc@1e8 {
166 compatible = "qcom,pm8058-rtc"; 215 compatible = "qcom,pm8058-rtc";
216 reg = <0x1e8>;
167 interrupt-parent = <&pmicintc>; 217 interrupt-parent = <&pmicintc>;
168 interrupts = <39 1>; 218 interrupts = <39 1>;
169 reg = <0x11d>;
170 allow-set-time; 219 allow-set-time;
171 }; 220 };
172 221
@@ -177,13 +226,93 @@
177 }; 226 };
178 }; 227 };
179 228
180 /* Temporary fixed regulator */ 229 l2cc: clock-controller@2082000 {
181 vsdcc_fixed: vsdcc-regulator { 230 compatible = "syscon";
182 compatible = "regulator-fixed"; 231 reg = <0x02082000 0x1000>;
183 regulator-name = "SDCC Power"; 232 };
184 regulator-min-microvolt = <2700000>; 233
185 regulator-max-microvolt = <2700000>; 234 rpm: rpm@104000 {
186 regulator-always-on; 235 compatible = "qcom,rpm-msm8660";
236 reg = <0x00104000 0x1000>;
237 qcom,ipc = <&l2cc 0x8 2>;
238
239 interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
240 <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
241 <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
242 interrupt-names = "ack", "err", "wakeup";
243 clocks = <&gcc RPM_MSG_RAM_H_CLK>;
244 clock-names = "ram";
245
246 rpmcc: clock-controller {
247 compatible = "qcom,rpmcc-apq8660", "qcom,rpmcc";
248 #clock-cells = <1>;
249 };
250
251 pm8901-regulators {
252 compatible = "qcom,rpm-pm8901-regulators";
253
254 pm8901_l0: l0 {};
255 pm8901_l1: l1 {};
256 pm8901_l2: l2 {};
257 pm8901_l3: l3 {};
258 pm8901_l4: l4 {};
259 pm8901_l5: l5 {};
260 pm8901_l6: l6 {};
261
262 /* S0 and S1 Handled as SAW regulators by SPM */
263 pm8901_s2: s2 {};
264 pm8901_s3: s3 {};
265 pm8901_s4: s4 {};
266
267 pm8901_lvs0: lvs0 {};
268 pm8901_lvs1: lvs1 {};
269 pm8901_lvs2: lvs2 {};
270 pm8901_lvs3: lvs3 {};
271
272 pm8901_mvs: mvs {};
273 };
274
275 pm8058-regulators {
276 compatible = "qcom,rpm-pm8058-regulators";
277
278 pm8058_l0: l0 {};
279 pm8058_l1: l1 {};
280 pm8058_l2: l2 {};
281 pm8058_l3: l3 {};
282 pm8058_l4: l4 {};
283 pm8058_l5: l5 {};
284 pm8058_l6: l6 {};
285 pm8058_l7: l7 {};
286 pm8058_l8: l8 {};
287 pm8058_l9: l9 {};
288 pm8058_l10: l10 {};
289 pm8058_l11: l11 {};
290 pm8058_l12: l12 {};
291 pm8058_l13: l13 {};
292 pm8058_l14: l14 {};
293 pm8058_l15: l15 {};
294 pm8058_l16: l16 {};
295 pm8058_l17: l17 {};
296 pm8058_l18: l18 {};
297 pm8058_l19: l19 {};
298 pm8058_l20: l20 {};
299 pm8058_l21: l21 {};
300 pm8058_l22: l22 {};
301 pm8058_l23: l23 {};
302 pm8058_l24: l24 {};
303 pm8058_l25: l25 {};
304
305 pm8058_s0: s0 {};
306 pm8058_s1: s1 {};
307 pm8058_s2: s2 {};
308 pm8058_s3: s3 {};
309 pm8058_s4: s4 {};
310
311 pm8058_lvs0: lvs0 {};
312 pm8058_lvs1: lvs1 {};
313
314 pm8058_ncp: ncp {};
315 };
187 }; 316 };
188 317
189 amba { 318 amba {
@@ -205,7 +334,6 @@
205 non-removable; 334 non-removable;
206 cap-sd-highspeed; 335 cap-sd-highspeed;
207 cap-mmc-highspeed; 336 cap-mmc-highspeed;
208 vmmc-supply = <&vsdcc_fixed>;
209 }; 337 };
210 338
211 sdcc3: sdcc@12180000 { 339 sdcc3: sdcc@12180000 {
@@ -222,7 +350,21 @@
222 cap-mmc-highspeed; 350 cap-mmc-highspeed;
223 max-frequency = <48000000>; 351 max-frequency = <48000000>;
224 no-1-8-v; 352 no-1-8-v;
225 vmmc-supply = <&vsdcc_fixed>; 353 };
354
355 sdcc5: sdcc@12200000 {
356 compatible = "arm,pl18x", "arm,primecell";
357 arm,primecell-periphid = <0x00051180>;
358 status = "disabled";
359 reg = <0x12200000 0x8000>;
360 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
361 interrupt-names = "cmd_irq";
362 clocks = <&gcc SDC5_CLK>, <&gcc SDC5_H_CLK>;
363 clock-names = "mclk", "apb_pclk";
364 bus-width = <4>;
365 cap-sd-highspeed;
366 cap-mmc-highspeed;
367 max-frequency = <48000000>;
226 }; 368 };
227 }; 369 };
228 370
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
index a0398b69f4f2..3fb4dada6b0d 100644
--- a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
@@ -367,6 +367,10 @@
367 }; 367 };
368 368
369 }; 369 };
370
371 dma-controller@f9944000 {
372 qcom,controlled-remotely;
373 };
370}; 374};
371 375
372&spmi_bus { 376&spmi_bus {
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index 6f164266a010..561d4d136762 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -1,6 +1,6 @@
1/dts-v1/; 1/dts-v1/;
2 2
3#include <dt-bindings/interrupt-controller/irq.h> 3#include <dt-bindings/interrupt-controller/arm-gic.h>
4#include <dt-bindings/clock/qcom,gcc-msm8974.h> 4#include <dt-bindings/clock/qcom,gcc-msm8974.h>
5#include "skeleton.dtsi" 5#include "skeleton.dtsi"
6 6
@@ -182,7 +182,7 @@
182 182
183 modem_smp2p_out: master-kernel { 183 modem_smp2p_out: master-kernel {
184 qcom,entry-name = "master-kernel"; 184 qcom,entry-name = "master-kernel";
185 #qcom,state-cells = <1>; 185 #qcom,smem-state-cells = <1>;
186 }; 186 };
187 187
188 modem_smp2p_in: slave-kernel { 188 modem_smp2p_in: slave-kernel {
@@ -208,7 +208,7 @@
208 wcnss_smp2p_out: master-kernel { 208 wcnss_smp2p_out: master-kernel {
209 qcom,entry-name = "master-kernel"; 209 qcom,entry-name = "master-kernel";
210 210
211 #qcom,state-cells = <1>; 211 #qcom,smem-state-cells = <1>;
212 }; 212 };
213 213
214 wcnss_smp2p_in: slave-kernel { 214 wcnss_smp2p_in: slave-kernel {
@@ -232,7 +232,7 @@
232 apps_smsm: apps@0 { 232 apps_smsm: apps@0 {
233 reg = <0>; 233 reg = <0>;
234 234
235 #qcom,state-cells = <1>; 235 #qcom,smem-state-cells = <1>;
236 }; 236 };
237 237
238 modem_smsm: modem@1 { 238 modem_smsm: modem@1 {
@@ -260,6 +260,14 @@
260 }; 260 };
261 }; 261 };
262 262
263 firmware {
264 scm {
265 compatible = "qcom,scm";
266 clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
267 clock-names = "core", "bus", "iface";
268 };
269 };
270
263 soc: soc { 271 soc: soc {
264 #address-cells = <1>; 272 #address-cells = <1>;
265 #size-cells = <1>; 273 #size-cells = <1>;
@@ -501,6 +509,8 @@
501 clock-names = "core", "iface"; 509 clock-names = "core", "iface";
502 #address-cells = <1>; 510 #address-cells = <1>;
503 #size-cells = <0>; 511 #size-cells = <0>;
512 dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
513 dma-names = "tx", "rx";
504 }; 514 };
505 515
506 spmi_bus: spmi@fc4cf000 { 516 spmi_bus: spmi@fc4cf000 {
@@ -518,6 +528,16 @@
518 interrupt-controller; 528 interrupt-controller;
519 #interrupt-cells = <4>; 529 #interrupt-cells = <4>;
520 }; 530 };
531
532 blsp2_dma: dma-controller@f9944000 {
533 compatible = "qcom,bam-v1.4.0";
534 reg = <0xf9944000 0x19000>;
535 interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
536 clocks = <&gcc GCC_BLSP2_AHB_CLK>;
537 clock-names = "bam_clk";
538 #dma-cells = <1>;
539 qcom,ee = <0>;
540 };
521 }; 541 };
522 542
523 smd { 543 smd {
diff --git a/arch/arm/boot/dts/qcom-pma8084.dtsi b/arch/arm/boot/dts/qcom-pma8084.dtsi
index 4e9bd3f88473..82d258094156 100644
--- a/arch/arm/boot/dts/qcom-pma8084.dtsi
+++ b/arch/arm/boot/dts/qcom-pma8084.dtsi
@@ -12,15 +12,23 @@
12 12
13 rtc@6000 { 13 rtc@6000 {
14 compatible = "qcom,pm8941-rtc"; 14 compatible = "qcom,pm8941-rtc";
15 reg = <0x6000 0x100>, 15 reg = <0x6000>,
16 <0x6100 0x100>; 16 <0x6100>;
17 reg-names = "rtc", "alarm"; 17 reg-names = "rtc", "alarm";
18 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 18 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
19 }; 19 };
20 20
21 pwrkey@800 {
22 compatible = "qcom,pm8941-pwrkey";
23 reg = <0x800>;
24 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
25 debounce = <15625>;
26 bias-pull-up;
27 };
28
21 pma8084_gpios: gpios@c000 { 29 pma8084_gpios: gpios@c000 {
22 compatible = "qcom,pma8084-gpio", "qcom,spmi-gpio"; 30 compatible = "qcom,pma8084-gpio", "qcom,spmi-gpio";
23 reg = <0xc000 0x1600>; 31 reg = <0xc000>;
24 gpio-controller; 32 gpio-controller;
25 #gpio-cells = <2>; 33 #gpio-cells = <2>;
26 interrupts = <0 0xc0 0 IRQ_TYPE_NONE>, 34 interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
@@ -49,7 +57,7 @@
49 57
50 pma8084_mpps: mpps@a000 { 58 pma8084_mpps: mpps@a000 {
51 compatible = "qcom,pma8084-mpp", "qcom,spmi-mpp"; 59 compatible = "qcom,pma8084-mpp", "qcom,spmi-mpp";
52 reg = <0xa000 0x800>; 60 reg = <0xa000>;
53 gpio-controller; 61 gpio-controller;
54 #gpio-cells = <2>; 62 #gpio-cells = <2>;
55 interrupts = <0 0xa0 0 IRQ_TYPE_NONE>, 63 interrupts = <0 0xa0 0 IRQ_TYPE_NONE>,
@@ -64,7 +72,7 @@
64 72
65 pma8084_temp: temp-alarm@2400 { 73 pma8084_temp: temp-alarm@2400 {
66 compatible = "qcom,spmi-temp-alarm"; 74 compatible = "qcom,spmi-temp-alarm";
67 reg = <0x2400 0x100>; 75 reg = <0x2400>;
68 interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>; 76 interrupts = <0 0x24 0 IRQ_TYPE_EDGE_RISING>;
69 #thermal-sensor-cells = <0>; 77 #thermal-sensor-cells = <0>;
70 io-channels = <&pma8084_vadc VADC_DIE_TEMP>; 78 io-channels = <&pma8084_vadc VADC_DIE_TEMP>;
@@ -73,7 +81,7 @@
73 81
74 pma8084_vadc: vadc@3100 { 82 pma8084_vadc: vadc@3100 {
75 compatible = "qcom,spmi-vadc"; 83 compatible = "qcom,spmi-vadc";
76 reg = <0x3100 0x100>; 84 reg = <0x3100>;
77 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; 85 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
78 #address-cells = <1>; 86 #address-cells = <1>;
79 #size-cells = <0>; 87 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/r7s72100-genmai.dts b/arch/arm/boot/dts/r7s72100-genmai.dts
index a9da7a89fc4b..118a8e2b86bd 100644
--- a/arch/arm/boot/dts/r7s72100-genmai.dts
+++ b/arch/arm/boot/dts/r7s72100-genmai.dts
@@ -17,15 +17,15 @@
17 compatible = "renesas,genmai", "renesas,r7s72100"; 17 compatible = "renesas,genmai", "renesas,r7s72100";
18 18
19 aliases { 19 aliases {
20 serial2 = &scif2; 20 serial0 = &scif2;
21 }; 21 };
22 22
23 chosen { 23 chosen {
24 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp"; 24 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
25 stdout-path = &scif2; 25 stdout-path = "serial0:115200n8";
26 }; 26 };
27 27
28 memory { 28 memory@8000000 {
29 device_type = "memory"; 29 device_type = "memory";
30 reg = <0x08000000 0x08000000>; 30 reg = <0x08000000 0x08000000>;
31 }; 31 };
diff --git a/arch/arm/boot/dts/r8a73a4-ape6evm.dts b/arch/arm/boot/dts/r8a73a4-ape6evm.dts
index 93ace33e3e36..ec7c86e06538 100644
--- a/arch/arm/boot/dts/r8a73a4-ape6evm.dts
+++ b/arch/arm/boot/dts/r8a73a4-ape6evm.dts
@@ -36,7 +36,7 @@
36 reg = <2 0x00000000 0 0x40000000>; 36 reg = <2 0x00000000 0 0x40000000>;
37 }; 37 };
38 38
39 vcc_mmc0: regulator@0 { 39 vcc_mmc0: regulator-mmc0 {
40 compatible = "regulator-fixed"; 40 compatible = "regulator-fixed";
41 regulator-name = "MMC0 Vcc"; 41 regulator-name = "MMC0 Vcc";
42 regulator-min-microvolt = <2800000>; 42 regulator-min-microvolt = <2800000>;
@@ -44,7 +44,7 @@
44 regulator-always-on; 44 regulator-always-on;
45 }; 45 };
46 46
47 vcc_sdhi0: regulator@1 { 47 vcc_sdhi0: regulator-sdhi0 {
48 compatible = "regulator-fixed"; 48 compatible = "regulator-fixed";
49 49
50 regulator-name = "SDHI0 Vcc"; 50 regulator-name = "SDHI0 Vcc";
@@ -56,7 +56,7 @@
56 }; 56 };
57 57
58 /* Common 1.8V and 3.3V rails, used by several devices on APE6EVM */ 58 /* Common 1.8V and 3.3V rails, used by several devices on APE6EVM */
59 ape6evm_fixed_1v8: regulator@2 { 59 ape6evm_fixed_1v8: regulator-1v8 {
60 compatible = "regulator-fixed"; 60 compatible = "regulator-fixed";
61 regulator-name = "1V8"; 61 regulator-name = "1V8";
62 regulator-min-microvolt = <1800000>; 62 regulator-min-microvolt = <1800000>;
@@ -64,7 +64,7 @@
64 regulator-always-on; 64 regulator-always-on;
65 }; 65 };
66 66
67 ape6evm_fixed_3v3: regulator@3 { 67 ape6evm_fixed_3v3: regulator-3v3 {
68 compatible = "regulator-fixed"; 68 compatible = "regulator-fixed";
69 regulator-name = "3V3"; 69 regulator-name = "3V3";
70 regulator-min-microvolt = <3300000>; 70 regulator-min-microvolt = <3300000>;
@@ -188,12 +188,12 @@
188}; 188};
189 189
190&pfc { 190&pfc {
191 scifa0_pins: serial0 { 191 scifa0_pins: scifa0 {
192 groups = "scifa0_data"; 192 groups = "scifa0_data";
193 function = "scifa0"; 193 function = "scifa0";
194 }; 194 };
195 195
196 mmc0_pins: mmc { 196 mmc0_pins: mmc0 {
197 groups = "mmc0_data8", "mmc0_ctrl"; 197 groups = "mmc0_data8", "mmc0_ctrl";
198 function = "mmc0"; 198 function = "mmc0";
199 }; 199 };
diff --git a/arch/arm/boot/dts/r8a73a4.dtsi b/arch/arm/boot/dts/r8a73a4.dtsi
index 6954912a3753..ca8672778fe0 100644
--- a/arch/arm/boot/dts/r8a73a4.dtsi
+++ b/arch/arm/boot/dts/r8a73a4.dtsi
@@ -31,6 +31,24 @@
31 power-domains = <&pd_a2sl>; 31 power-domains = <&pd_a2sl>;
32 next-level-cache = <&L2_CA15>; 32 next-level-cache = <&L2_CA15>;
33 }; 33 };
34
35 L2_CA15: cache-controller@0 {
36 compatible = "cache";
37 reg = <0>;
38 clocks = <&cpg_clocks R8A73A4_CLK_Z>;
39 power-domains = <&pd_a3sm>;
40 cache-unified;
41 cache-level = <2>;
42 };
43
44 L2_CA7: cache-controller@100 {
45 compatible = "cache";
46 reg = <0x100>;
47 clocks = <&cpg_clocks R8A73A4_CLK_Z2>;
48 power-domains = <&pd_a3km>;
49 cache-unified;
50 cache-level = <2>;
51 };
34 }; 52 };
35 53
36 ptm { 54 ptm {
@@ -46,22 +64,6 @@
46 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 64 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
47 }; 65 };
48 66
49 L2_CA15: cache-controller@0 {
50 compatible = "cache";
51 clocks = <&cpg_clocks R8A73A4_CLK_Z>;
52 power-domains = <&pd_a3sm>;
53 cache-unified;
54 cache-level = <2>;
55 };
56
57 L2_CA7: cache-controller@1 {
58 compatible = "cache";
59 clocks = <&cpg_clocks R8A73A4_CLK_Z2>;
60 power-domains = <&pd_a3km>;
61 cache-unified;
62 cache-level = <2>;
63 };
64
65 dbsc1: memory-controller@e6790000 { 67 dbsc1: memory-controller@e6790000 {
66 compatible = "renesas,dbsc-r8a73a4"; 68 compatible = "renesas,dbsc-r8a73a4";
67 reg = <0 0xe6790000 0 0x10000>; 69 reg = <0 0xe6790000 0 0x10000>;
diff --git a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
index 2c82dab2b6f4..7885075428bb 100644
--- a/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
+++ b/arch/arm/boot/dts/r8a7740-armadillo800eva.dts
@@ -20,20 +20,20 @@
20 compatible = "renesas,armadillo800eva", "renesas,r8a7740"; 20 compatible = "renesas,armadillo800eva", "renesas,r8a7740";
21 21
22 aliases { 22 aliases {
23 serial1 = &scifa1; 23 serial0 = &scifa1;
24 }; 24 };
25 25
26 chosen { 26 chosen {
27 bootargs = "console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp rw"; 27 bootargs = "earlyprintk ignore_loglevel root=/dev/nfs ip=dhcp rw";
28 stdout-path = &scifa1; 28 stdout-path = "serial0:115200n8";
29 }; 29 };
30 30
31 memory { 31 memory@40000000 {
32 device_type = "memory"; 32 device_type = "memory";
33 reg = <0x40000000 0x20000000>; 33 reg = <0x40000000 0x20000000>;
34 }; 34 };
35 35
36 reg_3p3v: regulator@0 { 36 reg_3p3v: regulator-3p3v {
37 compatible = "regulator-fixed"; 37 compatible = "regulator-fixed";
38 regulator-name = "fixed-3.3V"; 38 regulator-name = "fixed-3.3V";
39 regulator-min-microvolt = <3300000>; 39 regulator-min-microvolt = <3300000>;
@@ -42,7 +42,7 @@
42 regulator-boot-on; 42 regulator-boot-on;
43 }; 43 };
44 44
45 vcc_sdhi0: regulator@1 { 45 vcc_sdhi0: regulator-vcc-sdhi0 {
46 compatible = "regulator-fixed"; 46 compatible = "regulator-fixed";
47 47
48 regulator-name = "SDHI0 Vcc"; 48 regulator-name = "SDHI0 Vcc";
@@ -53,7 +53,7 @@
53 enable-active-high; 53 enable-active-high;
54 }; 54 };
55 55
56 vccq_sdhi0: regulator@2 { 56 vccq_sdhi0: regulator-vccq-sdhi0 {
57 compatible = "regulator-gpio"; 57 compatible = "regulator-gpio";
58 58
59 regulator-name = "SDHI0 VccQ"; 59 regulator-name = "SDHI0 VccQ";
@@ -69,7 +69,7 @@
69 enable-active-high; 69 enable-active-high;
70 }; 70 };
71 71
72 reg_5p0v: regulator@3 { 72 reg_5p0v: regulator-5p0v {
73 compatible = "regulator-fixed"; 73 compatible = "regulator-fixed";
74 regulator-name = "fixed-5.0V"; 74 regulator-name = "fixed-5.0V";
75 regulator-min-microvolt = <5000000>; 75 regulator-min-microvolt = <5000000>;
@@ -127,7 +127,7 @@
127 }; 127 };
128 }; 128 };
129 129
130 i2c2: i2c@2 { 130 i2c2: i2c-2 {
131 #address-cells = <1>; 131 #address-cells = <1>;
132 #size-cells = <0>; 132 #size-cells = <0>;
133 compatible = "i2c-gpio"; 133 compatible = "i2c-gpio";
@@ -232,7 +232,7 @@
232 function = "gether"; 232 function = "gether";
233 }; 233 };
234 234
235 scifa1_pins: serial1 { 235 scifa1_pins: scifa1 {
236 groups = "scifa1_data"; 236 groups = "scifa1_data";
237 function = "scifa1"; 237 function = "scifa1";
238 }; 238 };
diff --git a/arch/arm/boot/dts/r8a7740.dtsi b/arch/arm/boot/dts/r8a7740.dtsi
index 39b2f88ad151..159e04eb1b9e 100644
--- a/arch/arm/boot/dts/r8a7740.dtsi
+++ b/arch/arm/boot/dts/r8a7740.dtsi
@@ -39,7 +39,7 @@
39 <0xc2000000 0x1000>; 39 <0xc2000000 0x1000>;
40 }; 40 };
41 41
42 L2: cache-controller { 42 L2: cache-controller@f0100000 {
43 compatible = "arm,pl310-cache"; 43 compatible = "arm,pl310-cache";
44 reg = <0xf0100000 0x1000>; 44 reg = <0xf0100000 0x1000>;
45 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 45 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts
index e0dab1464648..211d239d9041 100644
--- a/arch/arm/boot/dts/r8a7778-bockw.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw.dts
@@ -32,12 +32,12 @@
32 stdout-path = "serial0:115200n8"; 32 stdout-path = "serial0:115200n8";
33 }; 33 };
34 34
35 memory { 35 memory@60000000 {
36 device_type = "memory"; 36 device_type = "memory";
37 reg = <0x60000000 0x10000000>; 37 reg = <0x60000000 0x10000000>;
38 }; 38 };
39 39
40 fixedregulator3v3: fixedregulator@0 { 40 fixedregulator3v3: regulator-3v3 {
41 compatible = "regulator-fixed"; 41 compatible = "regulator-fixed";
42 regulator-name = "fixed-3.3V"; 42 regulator-name = "fixed-3.3V";
43 regulator-min-microvolt = <3300000>; 43 regulator-min-microvolt = <3300000>;
@@ -129,7 +129,7 @@
129 pinctrl-0 = <&scif_clk_pins>; 129 pinctrl-0 = <&scif_clk_pins>;
130 pinctrl-names = "default"; 130 pinctrl-names = "default";
131 131
132 scif0_pins: serial0 { 132 scif0_pins: scif0 {
133 groups = "scif0_data_a", "scif0_ctrl"; 133 groups = "scif0_data_a", "scif0_ctrl";
134 function = "scif0"; 134 function = "scif0";
135 }; 135 };
@@ -223,6 +223,7 @@
223 pinctrl-0 = <&scif0_pins>; 223 pinctrl-0 = <&scif0_pins>;
224 pinctrl-names = "default"; 224 pinctrl-names = "default";
225 225
226 uart-has-rtscts;
226 status = "okay"; 227 status = "okay";
227}; 228};
228 229
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index fe787b4751d2..e571d66ea0fe 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -276,23 +276,23 @@
276 status = "disabled"; 276 status = "disabled";
277 277
278 rcar_sound,src { 278 rcar_sound,src {
279 src3: src@3 { }; 279 src3: src-3 { };
280 src4: src@4 { }; 280 src4: src-4 { };
281 src5: src@5 { }; 281 src5: src-5 { };
282 src6: src@6 { }; 282 src6: src-6 { };
283 src7: src@7 { }; 283 src7: src-7 { };
284 src8: src@8 { }; 284 src8: src-8 { };
285 src9: src@9 { }; 285 src9: src-9 { };
286 }; 286 };
287 287
288 rcar_sound,ssi { 288 rcar_sound,ssi {
289 ssi3: ssi@3 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; }; 289 ssi3: ssi-3 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; };
290 ssi4: ssi@4 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; }; 290 ssi4: ssi-4 { interrupts = <GIC_SPI 0x85 IRQ_TYPE_LEVEL_HIGH>; };
291 ssi5: ssi@5 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; }; 291 ssi5: ssi-5 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
292 ssi6: ssi@6 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; }; 292 ssi6: ssi-6 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
293 ssi7: ssi@7 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; }; 293 ssi7: ssi-7 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
294 ssi8: ssi@8 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; }; 294 ssi8: ssi-8 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
295 ssi9: ssi@9 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; }; 295 ssi9: ssi-9 { interrupts = <GIC_SPI 0x86 IRQ_TYPE_LEVEL_HIGH>; };
296 }; 296 };
297 }; 297 };
298 298
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts
index b795da6f5503..541678df90a9 100644
--- a/arch/arm/boot/dts/r8a7779-marzen.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -25,15 +25,15 @@
25 25
26 chosen { 26 chosen {
27 bootargs = "ignore_loglevel root=/dev/nfs ip=on"; 27 bootargs = "ignore_loglevel root=/dev/nfs ip=on";
28 stdout-path = &scif2; 28 stdout-path = "serial0:115200n8";
29 }; 29 };
30 30
31 memory { 31 memory@60000000 {
32 device_type = "memory"; 32 device_type = "memory";
33 reg = <0x60000000 0x40000000>; 33 reg = <0x60000000 0x40000000>;
34 }; 34 };
35 35
36 fixedregulator3v3: fixedregulator@0 { 36 fixedregulator3v3: regulator-3v3 {
37 compatible = "regulator-fixed"; 37 compatible = "regulator-fixed";
38 regulator-name = "fixed-3.3V"; 38 regulator-name = "fixed-3.3V";
39 regulator-min-microvolt = <3300000>; 39 regulator-min-microvolt = <3300000>;
@@ -195,12 +195,12 @@
195 }; 195 };
196 }; 196 };
197 197
198 scif2_pins: serial2 { 198 scif2_pins: scif2 {
199 groups = "scif2_data_c"; 199 groups = "scif2_data_c";
200 function = "scif2"; 200 function = "scif2";
201 }; 201 };
202 202
203 scif4_pins: serial4 { 203 scif4_pins: scif4 {
204 groups = "scif4_data"; 204 groups = "scif4_data";
205 function = "scif4"; 205 function = "scif4";
206 }; 206 };
diff --git a/arch/arm/boot/dts/r8a7790-lager.dts b/arch/arm/boot/dts/r8a7790-lager.dts
index 749ba02b6a53..52b56fcaddf2 100644
--- a/arch/arm/boot/dts/r8a7790-lager.dts
+++ b/arch/arm/boot/dts/r8a7790-lager.dts
@@ -76,28 +76,28 @@
76 keyboard { 76 keyboard {
77 compatible = "gpio-keys"; 77 compatible = "gpio-keys";
78 78
79 button@1 { 79 one {
80 linux,code = <KEY_1>; 80 linux,code = <KEY_1>;
81 label = "SW2-1"; 81 label = "SW2-1";
82 wakeup-source; 82 wakeup-source;
83 debounce-interval = <20>; 83 debounce-interval = <20>;
84 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>; 84 gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
85 }; 85 };
86 button@2 { 86 two {
87 linux,code = <KEY_2>; 87 linux,code = <KEY_2>;
88 label = "SW2-2"; 88 label = "SW2-2";
89 wakeup-source; 89 wakeup-source;
90 debounce-interval = <20>; 90 debounce-interval = <20>;
91 gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; 91 gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
92 }; 92 };
93 button@3 { 93 three {
94 linux,code = <KEY_3>; 94 linux,code = <KEY_3>;
95 label = "SW2-3"; 95 label = "SW2-3";
96 wakeup-source; 96 wakeup-source;
97 debounce-interval = <20>; 97 debounce-interval = <20>;
98 gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; 98 gpios = <&gpio1 26 GPIO_ACTIVE_LOW>;
99 }; 99 };
100 button@4 { 100 four {
101 linux,code = <KEY_4>; 101 linux,code = <KEY_4>;
102 label = "SW2-4"; 102 label = "SW2-4";
103 wakeup-source; 103 wakeup-source;
@@ -119,7 +119,7 @@
119 }; 119 };
120 }; 120 };
121 121
122 fixedregulator3v3: fixedregulator@0 { 122 fixedregulator3v3: regulator-3v3 {
123 compatible = "regulator-fixed"; 123 compatible = "regulator-fixed";
124 regulator-name = "fixed-3.3V"; 124 regulator-name = "fixed-3.3V";
125 regulator-min-microvolt = <3300000>; 125 regulator-min-microvolt = <3300000>;
@@ -128,7 +128,7 @@
128 regulator-always-on; 128 regulator-always-on;
129 }; 129 };
130 130
131 vcc_sdhi0: regulator@1 { 131 vcc_sdhi0: regulator-vcc-sdhi0 {
132 compatible = "regulator-fixed"; 132 compatible = "regulator-fixed";
133 133
134 regulator-name = "SDHI0 Vcc"; 134 regulator-name = "SDHI0 Vcc";
@@ -139,7 +139,7 @@
139 enable-active-high; 139 enable-active-high;
140 }; 140 };
141 141
142 vccq_sdhi0: regulator@2 { 142 vccq_sdhi0: regulator-vccq-sdhi0 {
143 compatible = "regulator-gpio"; 143 compatible = "regulator-gpio";
144 144
145 regulator-name = "SDHI0 VccQ"; 145 regulator-name = "SDHI0 VccQ";
@@ -152,7 +152,7 @@
152 1800000 0>; 152 1800000 0>;
153 }; 153 };
154 154
155 vcc_sdhi2: regulator@3 { 155 vcc_sdhi2: regulator-vcc-sdhi2 {
156 compatible = "regulator-fixed"; 156 compatible = "regulator-fixed";
157 157
158 regulator-name = "SDHI2 Vcc"; 158 regulator-name = "SDHI2 Vcc";
@@ -163,7 +163,7 @@
163 enable-active-high; 163 enable-active-high;
164 }; 164 };
165 165
166 vccq_sdhi2: regulator@4 { 166 vccq_sdhi2: regulator-vccq-sdhi2 {
167 compatible = "regulator-gpio"; 167 compatible = "regulator-gpio";
168 168
169 regulator-name = "SDHI2 VccQ"; 169 regulator-name = "SDHI2 VccQ";
@@ -263,7 +263,7 @@
263 * instantiate the slave device at runtime according to the documentation. 263 * instantiate the slave device at runtime according to the documentation.
264 * You can then communicate with the slave via IIC3. 264 * You can then communicate with the slave via IIC3.
265 */ 265 */
266 i2cexio: i2c@8 { 266 i2cexio: i2c-8 {
267 compatible = "i2c-demux-pinctrl"; 267 compatible = "i2c-demux-pinctrl";
268 i2c-parent = <&iic0>, <&i2c0>; 268 i2c-parent = <&iic0>, <&i2c0>;
269 i2c-bus-name = "i2c-exio"; 269 i2c-bus-name = "i2c-exio";
@@ -317,7 +317,7 @@
317 function = "du"; 317 function = "du";
318 }; 318 };
319 319
320 scif0_pins: serial0 { 320 scif0_pins: scif0 {
321 groups = "scif0_data"; 321 groups = "scif0_data";
322 function = "scif0"; 322 function = "scif0";
323 }; 323 };
@@ -337,7 +337,7 @@
337 function = "intc"; 337 function = "intc";
338 }; 338 };
339 339
340 scifa1_pins: serial1 { 340 scifa1_pins: scifa1 {
341 groups = "scifa1_data"; 341 groups = "scifa1_data";
342 function = "scifa1"; 342 function = "scifa1";
343 }; 343 };
@@ -371,12 +371,12 @@
371 function = "mmc1"; 371 function = "mmc1";
372 }; 372 };
373 373
374 qspi_pins: spi0 { 374 qspi_pins: qspi {
375 groups = "qspi_ctrl", "qspi_data4"; 375 groups = "qspi_ctrl", "qspi_data4";
376 function = "qspi"; 376 function = "qspi";
377 }; 377 };
378 378
379 msiof1_pins: spi2 { 379 msiof1_pins: msiof1 {
380 groups = "msiof1_clk", "msiof1_sync", "msiof1_rx", 380 groups = "msiof1_clk", "msiof1_sync", "msiof1_rx",
381 "msiof1_tx"; 381 "msiof1_tx";
382 function = "msiof1"; 382 function = "msiof1";
@@ -427,7 +427,7 @@
427 function = "usb2"; 427 function = "usb2";
428 }; 428 };
429 429
430 vin1_pins: vin { 430 vin1_pins: vin1 {
431 groups = "vin1_data8", "vin1_clk"; 431 groups = "vin1_data8", "vin1_clk";
432 function = "vin1"; 432 function = "vin1";
433 }; 433 };
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 83cf23cd26bb..d18558f21102 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -44,6 +44,7 @@
44 cpus { 44 cpus {
45 #address-cells = <1>; 45 #address-cells = <1>;
46 #size-cells = <0>; 46 #size-cells = <0>;
47 enable-method = "renesas,apmu";
47 48
48 cpu0: cpu@0 { 49 cpu0: cpu@0 {
49 device_type = "cpu"; 50 device_type = "cpu";
@@ -92,7 +93,7 @@
92 next-level-cache = <&L2_CA15>; 93 next-level-cache = <&L2_CA15>;
93 }; 94 };
94 95
95 cpu4: cpu@4 { 96 cpu4: cpu@100 {
96 device_type = "cpu"; 97 device_type = "cpu";
97 compatible = "arm,cortex-a7"; 98 compatible = "arm,cortex-a7";
98 reg = <0x100>; 99 reg = <0x100>;
@@ -101,7 +102,7 @@
101 next-level-cache = <&L2_CA7>; 102 next-level-cache = <&L2_CA7>;
102 }; 103 };
103 104
104 cpu5: cpu@5 { 105 cpu5: cpu@101 {
105 device_type = "cpu"; 106 device_type = "cpu";
106 compatible = "arm,cortex-a7"; 107 compatible = "arm,cortex-a7";
107 reg = <0x101>; 108 reg = <0x101>;
@@ -110,7 +111,7 @@
110 next-level-cache = <&L2_CA7>; 111 next-level-cache = <&L2_CA7>;
111 }; 112 };
112 113
113 cpu6: cpu@6 { 114 cpu6: cpu@102 {
114 device_type = "cpu"; 115 device_type = "cpu";
115 compatible = "arm,cortex-a7"; 116 compatible = "arm,cortex-a7";
116 reg = <0x102>; 117 reg = <0x102>;
@@ -119,7 +120,7 @@
119 next-level-cache = <&L2_CA7>; 120 next-level-cache = <&L2_CA7>;
120 }; 121 };
121 122
122 cpu7: cpu@7 { 123 cpu7: cpu@103 {
123 device_type = "cpu"; 124 device_type = "cpu";
124 compatible = "arm,cortex-a7"; 125 compatible = "arm,cortex-a7";
125 reg = <0x103>; 126 reg = <0x103>;
@@ -127,6 +128,22 @@
127 power-domains = <&sysc R8A7790_PD_CA7_CPU3>; 128 power-domains = <&sysc R8A7790_PD_CA7_CPU3>;
128 next-level-cache = <&L2_CA7>; 129 next-level-cache = <&L2_CA7>;
129 }; 130 };
131
132 L2_CA15: cache-controller@0 {
133 compatible = "cache";
134 reg = <0>;
135 power-domains = <&sysc R8A7790_PD_CA15_SCU>;
136 cache-unified;
137 cache-level = <2>;
138 };
139
140 L2_CA7: cache-controller@100 {
141 compatible = "cache";
142 reg = <0x100>;
143 power-domains = <&sysc R8A7790_PD_CA7_SCU>;
144 cache-unified;
145 cache-level = <2>;
146 };
130 }; 147 };
131 148
132 thermal-zones { 149 thermal-zones {
@@ -148,18 +165,16 @@
148 }; 165 };
149 }; 166 };
150 167
151 L2_CA15: cache-controller@0 { 168 apmu@e6151000 {
152 compatible = "cache"; 169 compatible = "renesas,r8a7790-apmu", "renesas,apmu";
153 power-domains = <&sysc R8A7790_PD_CA15_SCU>; 170 reg = <0 0xe6151000 0 0x188>;
154 cache-unified; 171 cpus = <&cpu4 &cpu5 &cpu6 &cpu7>;
155 cache-level = <2>;
156 }; 172 };
157 173
158 L2_CA7: cache-controller@1 { 174 apmu@e6152000 {
159 compatible = "cache"; 175 compatible = "renesas,r8a7790-apmu", "renesas,apmu";
160 power-domains = <&sysc R8A7790_PD_CA7_SCU>; 176 reg = <0 0xe6152000 0 0x188>;
161 cache-unified; 177 cpus = <&cpu0 &cpu1 &cpu2 &cpu3>;
162 cache-level = <2>;
163 }; 178 };
164 179
165 gic: interrupt-controller@f1001000 { 180 gic: interrupt-controller@f1001000 {
@@ -517,8 +532,9 @@
517 reg = <0 0xe6500000 0 0x425>; 532 reg = <0 0xe6500000 0 0x425>;
518 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 533 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
519 clocks = <&mstp3_clks R8A7790_CLK_IIC0>; 534 clocks = <&mstp3_clks R8A7790_CLK_IIC0>;
520 dmas = <&dmac0 0x61>, <&dmac0 0x62>; 535 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
521 dma-names = "tx", "rx"; 536 <&dmac1 0x61>, <&dmac1 0x62>;
537 dma-names = "tx", "rx", "tx", "rx";
522 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 538 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
523 status = "disabled"; 539 status = "disabled";
524 }; 540 };
@@ -530,8 +546,9 @@
530 reg = <0 0xe6510000 0 0x425>; 546 reg = <0 0xe6510000 0 0x425>;
531 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 547 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
532 clocks = <&mstp3_clks R8A7790_CLK_IIC1>; 548 clocks = <&mstp3_clks R8A7790_CLK_IIC1>;
533 dmas = <&dmac0 0x65>, <&dmac0 0x66>; 549 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
534 dma-names = "tx", "rx"; 550 <&dmac1 0x65>, <&dmac1 0x66>;
551 dma-names = "tx", "rx", "tx", "rx";
535 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 552 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
536 status = "disabled"; 553 status = "disabled";
537 }; 554 };
@@ -543,8 +560,9 @@
543 reg = <0 0xe6520000 0 0x425>; 560 reg = <0 0xe6520000 0 0x425>;
544 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>; 561 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
545 clocks = <&mstp3_clks R8A7790_CLK_IIC2>; 562 clocks = <&mstp3_clks R8A7790_CLK_IIC2>;
546 dmas = <&dmac0 0x69>, <&dmac0 0x6a>; 563 dmas = <&dmac0 0x69>, <&dmac0 0x6a>,
547 dma-names = "tx", "rx"; 564 <&dmac1 0x69>, <&dmac1 0x6a>;
565 dma-names = "tx", "rx", "tx", "rx";
548 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 566 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
549 status = "disabled"; 567 status = "disabled";
550 }; 568 };
@@ -556,8 +574,9 @@
556 reg = <0 0xe60b0000 0 0x425>; 574 reg = <0 0xe60b0000 0 0x425>;
557 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 575 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
558 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>; 576 clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>;
559 dmas = <&dmac0 0x77>, <&dmac0 0x78>; 577 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
560 dma-names = "tx", "rx"; 578 <&dmac1 0x77>, <&dmac1 0x78>;
579 dma-names = "tx", "rx", "tx", "rx";
561 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 580 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
562 status = "disabled"; 581 status = "disabled";
563 }; 582 };
@@ -567,8 +586,9 @@
567 reg = <0 0xee200000 0 0x80>; 586 reg = <0 0xee200000 0 0x80>;
568 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 587 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
569 clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>; 588 clocks = <&mstp3_clks R8A7790_CLK_MMCIF0>;
570 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>; 589 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
571 dma-names = "tx", "rx"; 590 <&dmac1 0xd1>, <&dmac1 0xd2>;
591 dma-names = "tx", "rx", "tx", "rx";
572 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 592 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
573 reg-io-width = <4>; 593 reg-io-width = <4>;
574 status = "disabled"; 594 status = "disabled";
@@ -580,8 +600,9 @@
580 reg = <0 0xee220000 0 0x80>; 600 reg = <0 0xee220000 0 0x80>;
581 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>; 601 interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
582 clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>; 602 clocks = <&mstp3_clks R8A7790_CLK_MMCIF1>;
583 dmas = <&dmac0 0xe1>, <&dmac0 0xe2>; 603 dmas = <&dmac0 0xe1>, <&dmac0 0xe2>,
584 dma-names = "tx", "rx"; 604 <&dmac1 0xe1>, <&dmac1 0xe2>;
605 dma-names = "tx", "rx", "tx", "rx";
585 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 606 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
586 reg-io-width = <4>; 607 reg-io-width = <4>;
587 status = "disabled"; 608 status = "disabled";
@@ -598,8 +619,9 @@
598 reg = <0 0xee100000 0 0x328>; 619 reg = <0 0xee100000 0 0x328>;
599 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 620 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
600 clocks = <&mstp3_clks R8A7790_CLK_SDHI0>; 621 clocks = <&mstp3_clks R8A7790_CLK_SDHI0>;
601 dmas = <&dmac1 0xcd>, <&dmac1 0xce>; 622 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
602 dma-names = "tx", "rx"; 623 <&dmac1 0xcd>, <&dmac1 0xce>;
624 dma-names = "tx", "rx", "tx", "rx";
603 max-frequency = <195000000>; 625 max-frequency = <195000000>;
604 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 626 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
605 status = "disabled"; 627 status = "disabled";
@@ -610,8 +632,9 @@
610 reg = <0 0xee120000 0 0x328>; 632 reg = <0 0xee120000 0 0x328>;
611 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>; 633 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
612 clocks = <&mstp3_clks R8A7790_CLK_SDHI1>; 634 clocks = <&mstp3_clks R8A7790_CLK_SDHI1>;
613 dmas = <&dmac1 0xc9>, <&dmac1 0xca>; 635 dmas = <&dmac0 0xc9>, <&dmac0 0xca>,
614 dma-names = "tx", "rx"; 636 <&dmac1 0xc9>, <&dmac1 0xca>;
637 dma-names = "tx", "rx", "tx", "rx";
615 max-frequency = <195000000>; 638 max-frequency = <195000000>;
616 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 639 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
617 status = "disabled"; 640 status = "disabled";
@@ -622,8 +645,9 @@
622 reg = <0 0xee140000 0 0x100>; 645 reg = <0 0xee140000 0 0x100>;
623 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 646 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
624 clocks = <&mstp3_clks R8A7790_CLK_SDHI2>; 647 clocks = <&mstp3_clks R8A7790_CLK_SDHI2>;
625 dmas = <&dmac1 0xc1>, <&dmac1 0xc2>; 648 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
626 dma-names = "tx", "rx"; 649 <&dmac1 0xc1>, <&dmac1 0xc2>;
650 dma-names = "tx", "rx", "tx", "rx";
627 max-frequency = <97500000>; 651 max-frequency = <97500000>;
628 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 652 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
629 status = "disabled"; 653 status = "disabled";
@@ -634,8 +658,9 @@
634 reg = <0 0xee160000 0 0x100>; 658 reg = <0 0xee160000 0 0x100>;
635 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 659 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
636 clocks = <&mstp3_clks R8A7790_CLK_SDHI3>; 660 clocks = <&mstp3_clks R8A7790_CLK_SDHI3>;
637 dmas = <&dmac1 0xd3>, <&dmac1 0xd4>; 661 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
638 dma-names = "tx", "rx"; 662 <&dmac1 0xd3>, <&dmac1 0xd4>;
663 dma-names = "tx", "rx", "tx", "rx";
639 max-frequency = <97500000>; 664 max-frequency = <97500000>;
640 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 665 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
641 status = "disabled"; 666 status = "disabled";
@@ -648,8 +673,9 @@
648 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 673 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
649 clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>; 674 clocks = <&mstp2_clks R8A7790_CLK_SCIFA0>;
650 clock-names = "fck"; 675 clock-names = "fck";
651 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 676 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
652 dma-names = "tx", "rx"; 677 <&dmac1 0x21>, <&dmac1 0x22>;
678 dma-names = "tx", "rx", "tx", "rx";
653 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 679 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
654 status = "disabled"; 680 status = "disabled";
655 }; 681 };
@@ -661,8 +687,9 @@
661 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 687 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
662 clocks = <&mstp2_clks R8A7790_CLK_SCIFA1>; 688 clocks = <&mstp2_clks R8A7790_CLK_SCIFA1>;
663 clock-names = "fck"; 689 clock-names = "fck";
664 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 690 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
665 dma-names = "tx", "rx"; 691 <&dmac1 0x25>, <&dmac1 0x26>;
692 dma-names = "tx", "rx", "tx", "rx";
666 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 693 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
667 status = "disabled"; 694 status = "disabled";
668 }; 695 };
@@ -674,8 +701,9 @@
674 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 701 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
675 clocks = <&mstp2_clks R8A7790_CLK_SCIFA2>; 702 clocks = <&mstp2_clks R8A7790_CLK_SCIFA2>;
676 clock-names = "fck"; 703 clock-names = "fck";
677 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 704 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
678 dma-names = "tx", "rx"; 705 <&dmac1 0x27>, <&dmac1 0x28>;
706 dma-names = "tx", "rx", "tx", "rx";
679 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 707 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
680 status = "disabled"; 708 status = "disabled";
681 }; 709 };
@@ -687,8 +715,9 @@
687 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 715 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
688 clocks = <&mstp2_clks R8A7790_CLK_SCIFB0>; 716 clocks = <&mstp2_clks R8A7790_CLK_SCIFB0>;
689 clock-names = "fck"; 717 clock-names = "fck";
690 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 718 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
691 dma-names = "tx", "rx"; 719 <&dmac1 0x3d>, <&dmac1 0x3e>;
720 dma-names = "tx", "rx", "tx", "rx";
692 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 721 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
693 status = "disabled"; 722 status = "disabled";
694 }; 723 };
@@ -700,8 +729,9 @@
700 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 729 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
701 clocks = <&mstp2_clks R8A7790_CLK_SCIFB1>; 730 clocks = <&mstp2_clks R8A7790_CLK_SCIFB1>;
702 clock-names = "fck"; 731 clock-names = "fck";
703 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 732 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
704 dma-names = "tx", "rx"; 733 <&dmac1 0x19>, <&dmac1 0x1a>;
734 dma-names = "tx", "rx", "tx", "rx";
705 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 735 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
706 status = "disabled"; 736 status = "disabled";
707 }; 737 };
@@ -713,8 +743,9 @@
713 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 743 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
714 clocks = <&mstp2_clks R8A7790_CLK_SCIFB2>; 744 clocks = <&mstp2_clks R8A7790_CLK_SCIFB2>;
715 clock-names = "fck"; 745 clock-names = "fck";
716 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 746 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
717 dma-names = "tx", "rx"; 747 <&dmac1 0x1d>, <&dmac1 0x1e>;
748 dma-names = "tx", "rx", "tx", "rx";
718 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 749 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
719 status = "disabled"; 750 status = "disabled";
720 }; 751 };
@@ -727,8 +758,9 @@
727 clocks = <&mstp7_clks R8A7790_CLK_SCIF0>, <&zs_clk>, 758 clocks = <&mstp7_clks R8A7790_CLK_SCIF0>, <&zs_clk>,
728 <&scif_clk>; 759 <&scif_clk>;
729 clock-names = "fck", "brg_int", "scif_clk"; 760 clock-names = "fck", "brg_int", "scif_clk";
730 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 761 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
731 dma-names = "tx", "rx"; 762 <&dmac1 0x29>, <&dmac1 0x2a>;
763 dma-names = "tx", "rx", "tx", "rx";
732 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 764 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
733 status = "disabled"; 765 status = "disabled";
734 }; 766 };
@@ -741,8 +773,9 @@
741 clocks = <&mstp7_clks R8A7790_CLK_SCIF1>, <&zs_clk>, 773 clocks = <&mstp7_clks R8A7790_CLK_SCIF1>, <&zs_clk>,
742 <&scif_clk>; 774 <&scif_clk>;
743 clock-names = "fck", "brg_int", "scif_clk"; 775 clock-names = "fck", "brg_int", "scif_clk";
744 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 776 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
745 dma-names = "tx", "rx"; 777 <&dmac1 0x2d>, <&dmac1 0x2e>;
778 dma-names = "tx", "rx", "tx", "rx";
746 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 779 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
747 status = "disabled"; 780 status = "disabled";
748 }; 781 };
@@ -755,8 +788,9 @@
755 clocks = <&mstp3_clks R8A7790_CLK_SCIF2>, <&zs_clk>, 788 clocks = <&mstp3_clks R8A7790_CLK_SCIF2>, <&zs_clk>,
756 <&scif_clk>; 789 <&scif_clk>;
757 clock-names = "fck", "brg_int", "scif_clk"; 790 clock-names = "fck", "brg_int", "scif_clk";
758 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>; 791 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
759 dma-names = "tx", "rx"; 792 <&dmac1 0x2b>, <&dmac1 0x2c>;
793 dma-names = "tx", "rx", "tx", "rx";
760 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 794 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
761 status = "disabled"; 795 status = "disabled";
762 }; 796 };
@@ -769,8 +803,9 @@
769 clocks = <&mstp7_clks R8A7790_CLK_HSCIF0>, <&zs_clk>, 803 clocks = <&mstp7_clks R8A7790_CLK_HSCIF0>, <&zs_clk>,
770 <&scif_clk>; 804 <&scif_clk>;
771 clock-names = "fck", "brg_int", "scif_clk"; 805 clock-names = "fck", "brg_int", "scif_clk";
772 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 806 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
773 dma-names = "tx", "rx"; 807 <&dmac1 0x39>, <&dmac1 0x3a>;
808 dma-names = "tx", "rx", "tx", "rx";
774 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 809 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
775 status = "disabled"; 810 status = "disabled";
776 }; 811 };
@@ -783,8 +818,9 @@
783 clocks = <&mstp7_clks R8A7790_CLK_HSCIF1>, <&zs_clk>, 818 clocks = <&mstp7_clks R8A7790_CLK_HSCIF1>, <&zs_clk>,
784 <&scif_clk>; 819 <&scif_clk>;
785 clock-names = "fck", "brg_int", "scif_clk"; 820 clock-names = "fck", "brg_int", "scif_clk";
786 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 821 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
787 dma-names = "tx", "rx"; 822 <&dmac1 0x4d>, <&dmac1 0x4e>;
823 dma-names = "tx", "rx", "tx", "rx";
788 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 824 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
789 status = "disabled"; 825 status = "disabled";
790 }; 826 };
@@ -1469,8 +1505,9 @@
1469 reg = <0 0xe6b10000 0 0x2c>; 1505 reg = <0 0xe6b10000 0 0x2c>;
1470 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 1506 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
1471 clocks = <&mstp9_clks R8A7790_CLK_QSPI_MOD>; 1507 clocks = <&mstp9_clks R8A7790_CLK_QSPI_MOD>;
1472 dmas = <&dmac0 0x17>, <&dmac0 0x18>; 1508 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
1473 dma-names = "tx", "rx"; 1509 <&dmac1 0x17>, <&dmac1 0x18>;
1510 dma-names = "tx", "rx", "tx", "rx";
1474 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1511 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1475 num-cs = <1>; 1512 num-cs = <1>;
1476 #address-cells = <1>; 1513 #address-cells = <1>;
@@ -1483,8 +1520,9 @@
1483 reg = <0 0xe6e20000 0 0x0064>; 1520 reg = <0 0xe6e20000 0 0x0064>;
1484 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1521 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1485 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>; 1522 clocks = <&mstp0_clks R8A7790_CLK_MSIOF0>;
1486 dmas = <&dmac0 0x51>, <&dmac0 0x52>; 1523 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
1487 dma-names = "tx", "rx"; 1524 <&dmac1 0x51>, <&dmac1 0x52>;
1525 dma-names = "tx", "rx", "tx", "rx";
1488 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1526 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1489 #address-cells = <1>; 1527 #address-cells = <1>;
1490 #size-cells = <0>; 1528 #size-cells = <0>;
@@ -1496,8 +1534,9 @@
1496 reg = <0 0xe6e10000 0 0x0064>; 1534 reg = <0 0xe6e10000 0 0x0064>;
1497 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1535 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1498 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>; 1536 clocks = <&mstp2_clks R8A7790_CLK_MSIOF1>;
1499 dmas = <&dmac0 0x55>, <&dmac0 0x56>; 1537 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
1500 dma-names = "tx", "rx"; 1538 <&dmac1 0x55>, <&dmac1 0x56>;
1539 dma-names = "tx", "rx", "tx", "rx";
1501 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1540 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1502 #address-cells = <1>; 1541 #address-cells = <1>;
1503 #size-cells = <0>; 1542 #size-cells = <0>;
@@ -1509,8 +1548,9 @@
1509 reg = <0 0xe6e00000 0 0x0064>; 1548 reg = <0 0xe6e00000 0 0x0064>;
1510 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1549 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1511 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>; 1550 clocks = <&mstp2_clks R8A7790_CLK_MSIOF2>;
1512 dmas = <&dmac0 0x41>, <&dmac0 0x42>; 1551 dmas = <&dmac0 0x41>, <&dmac0 0x42>,
1513 dma-names = "tx", "rx"; 1552 <&dmac1 0x41>, <&dmac1 0x42>;
1553 dma-names = "tx", "rx", "tx", "rx";
1514 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1554 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1515 #address-cells = <1>; 1555 #address-cells = <1>;
1516 #size-cells = <0>; 1556 #size-cells = <0>;
@@ -1522,8 +1562,9 @@
1522 reg = <0 0xe6c90000 0 0x0064>; 1562 reg = <0 0xe6c90000 0 0x0064>;
1523 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 1563 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
1524 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>; 1564 clocks = <&mstp2_clks R8A7790_CLK_MSIOF3>;
1525 dmas = <&dmac0 0x45>, <&dmac0 0x46>; 1565 dmas = <&dmac0 0x45>, <&dmac0 0x46>,
1526 dma-names = "tx", "rx"; 1566 <&dmac1 0x45>, <&dmac1 0x46>;
1567 dma-names = "tx", "rx", "tx", "rx";
1527 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1568 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
1528 #address-cells = <1>; 1569 #address-cells = <1>;
1529 #size-cells = <0>; 1570 #size-cells = <0>;
@@ -1702,79 +1743,79 @@
1702 status = "disabled"; 1743 status = "disabled";
1703 1744
1704 rcar_sound,dvc { 1745 rcar_sound,dvc {
1705 dvc0: dvc@0 { 1746 dvc0: dvc-0 {
1706 dmas = <&audma0 0xbc>; 1747 dmas = <&audma0 0xbc>;
1707 dma-names = "tx"; 1748 dma-names = "tx";
1708 }; 1749 };
1709 dvc1: dvc@1 { 1750 dvc1: dvc-1 {
1710 dmas = <&audma0 0xbe>; 1751 dmas = <&audma0 0xbe>;
1711 dma-names = "tx"; 1752 dma-names = "tx";
1712 }; 1753 };
1713 }; 1754 };
1714 1755
1715 rcar_sound,mix { 1756 rcar_sound,mix {
1716 mix0: mix@0 { }; 1757 mix0: mix-0 { };
1717 mix1: mix@1 { }; 1758 mix1: mix-1 { };
1718 }; 1759 };
1719 1760
1720 rcar_sound,ctu { 1761 rcar_sound,ctu {
1721 ctu00: ctu@0 { }; 1762 ctu00: ctu-0 { };
1722 ctu01: ctu@1 { }; 1763 ctu01: ctu-1 { };
1723 ctu02: ctu@2 { }; 1764 ctu02: ctu-2 { };
1724 ctu03: ctu@3 { }; 1765 ctu03: ctu-3 { };
1725 ctu10: ctu@4 { }; 1766 ctu10: ctu-4 { };
1726 ctu11: ctu@5 { }; 1767 ctu11: ctu-5 { };
1727 ctu12: ctu@6 { }; 1768 ctu12: ctu-6 { };
1728 ctu13: ctu@7 { }; 1769 ctu13: ctu-7 { };
1729 }; 1770 };
1730 1771
1731 rcar_sound,src { 1772 rcar_sound,src {
1732 src0: src@0 { 1773 src0: src-0 {
1733 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; 1774 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1734 dmas = <&audma0 0x85>, <&audma1 0x9a>; 1775 dmas = <&audma0 0x85>, <&audma1 0x9a>;
1735 dma-names = "rx", "tx"; 1776 dma-names = "rx", "tx";
1736 }; 1777 };
1737 src1: src@1 { 1778 src1: src-1 {
1738 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; 1779 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1739 dmas = <&audma0 0x87>, <&audma1 0x9c>; 1780 dmas = <&audma0 0x87>, <&audma1 0x9c>;
1740 dma-names = "rx", "tx"; 1781 dma-names = "rx", "tx";
1741 }; 1782 };
1742 src2: src@2 { 1783 src2: src-2 {
1743 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; 1784 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1744 dmas = <&audma0 0x89>, <&audma1 0x9e>; 1785 dmas = <&audma0 0x89>, <&audma1 0x9e>;
1745 dma-names = "rx", "tx"; 1786 dma-names = "rx", "tx";
1746 }; 1787 };
1747 src3: src@3 { 1788 src3: src-3 {
1748 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 1789 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1749 dmas = <&audma0 0x8b>, <&audma1 0xa0>; 1790 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
1750 dma-names = "rx", "tx"; 1791 dma-names = "rx", "tx";
1751 }; 1792 };
1752 src4: src@4 { 1793 src4: src-4 {
1753 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; 1794 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1754 dmas = <&audma0 0x8d>, <&audma1 0xb0>; 1795 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
1755 dma-names = "rx", "tx"; 1796 dma-names = "rx", "tx";
1756 }; 1797 };
1757 src5: src@5 { 1798 src5: src-5 {
1758 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; 1799 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1759 dmas = <&audma0 0x8f>, <&audma1 0xb2>; 1800 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
1760 dma-names = "rx", "tx"; 1801 dma-names = "rx", "tx";
1761 }; 1802 };
1762 src6: src@6 { 1803 src6: src-6 {
1763 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 1804 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1764 dmas = <&audma0 0x91>, <&audma1 0xb4>; 1805 dmas = <&audma0 0x91>, <&audma1 0xb4>;
1765 dma-names = "rx", "tx"; 1806 dma-names = "rx", "tx";
1766 }; 1807 };
1767 src7: src@7 { 1808 src7: src-7 {
1768 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; 1809 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
1769 dmas = <&audma0 0x93>, <&audma1 0xb6>; 1810 dmas = <&audma0 0x93>, <&audma1 0xb6>;
1770 dma-names = "rx", "tx"; 1811 dma-names = "rx", "tx";
1771 }; 1812 };
1772 src8: src@8 { 1813 src8: src-8 {
1773 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; 1814 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
1774 dmas = <&audma0 0x95>, <&audma1 0xb8>; 1815 dmas = <&audma0 0x95>, <&audma1 0xb8>;
1775 dma-names = "rx", "tx"; 1816 dma-names = "rx", "tx";
1776 }; 1817 };
1777 src9: src@9 { 1818 src9: src-9 {
1778 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; 1819 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
1779 dmas = <&audma0 0x97>, <&audma1 0xba>; 1820 dmas = <&audma0 0x97>, <&audma1 0xba>;
1780 dma-names = "rx", "tx"; 1821 dma-names = "rx", "tx";
@@ -1782,52 +1823,52 @@
1782 }; 1823 };
1783 1824
1784 rcar_sound,ssi { 1825 rcar_sound,ssi {
1785 ssi0: ssi@0 { 1826 ssi0: ssi-0 {
1786 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; 1827 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
1787 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 1828 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
1788 dma-names = "rx", "tx", "rxu", "txu"; 1829 dma-names = "rx", "tx", "rxu", "txu";
1789 }; 1830 };
1790 ssi1: ssi@1 { 1831 ssi1: ssi-1 {
1791 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; 1832 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
1792 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 1833 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
1793 dma-names = "rx", "tx", "rxu", "txu"; 1834 dma-names = "rx", "tx", "rxu", "txu";
1794 }; 1835 };
1795 ssi2: ssi@2 { 1836 ssi2: ssi-2 {
1796 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; 1837 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
1797 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 1838 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
1798 dma-names = "rx", "tx", "rxu", "txu"; 1839 dma-names = "rx", "tx", "rxu", "txu";
1799 }; 1840 };
1800 ssi3: ssi@3 { 1841 ssi3: ssi-3 {
1801 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; 1842 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
1802 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 1843 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
1803 dma-names = "rx", "tx", "rxu", "txu"; 1844 dma-names = "rx", "tx", "rxu", "txu";
1804 }; 1845 };
1805 ssi4: ssi@4 { 1846 ssi4: ssi-4 {
1806 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; 1847 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
1807 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 1848 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
1808 dma-names = "rx", "tx", "rxu", "txu"; 1849 dma-names = "rx", "tx", "rxu", "txu";
1809 }; 1850 };
1810 ssi5: ssi@5 { 1851 ssi5: ssi-5 {
1811 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; 1852 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1812 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 1853 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
1813 dma-names = "rx", "tx", "rxu", "txu"; 1854 dma-names = "rx", "tx", "rxu", "txu";
1814 }; 1855 };
1815 ssi6: ssi@6 { 1856 ssi6: ssi-6 {
1816 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; 1857 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
1817 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 1858 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
1818 dma-names = "rx", "tx", "rxu", "txu"; 1859 dma-names = "rx", "tx", "rxu", "txu";
1819 }; 1860 };
1820 ssi7: ssi@7 { 1861 ssi7: ssi-7 {
1821 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; 1862 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
1822 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 1863 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
1823 dma-names = "rx", "tx", "rxu", "txu"; 1864 dma-names = "rx", "tx", "rxu", "txu";
1824 }; 1865 };
1825 ssi8: ssi@8 { 1866 ssi8: ssi-8 {
1826 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; 1867 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
1827 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 1868 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
1828 dma-names = "rx", "tx", "rxu", "txu"; 1869 dma-names = "rx", "tx", "rxu", "txu";
1829 }; 1870 };
1830 ssi9: ssi@9 { 1871 ssi9: ssi-9 {
1831 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; 1872 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1832 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 1873 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
1833 dma-names = "rx", "tx", "rxu", "txu"; 1874 dma-names = "rx", "tx", "rxu", "txu";
diff --git a/arch/arm/boot/dts/r8a7791-koelsch.dts b/arch/arm/boot/dts/r8a7791-koelsch.dts
index da59c2844b8a..f8a7d090fd01 100644
--- a/arch/arm/boot/dts/r8a7791-koelsch.dts
+++ b/arch/arm/boot/dts/r8a7791-koelsch.dts
@@ -170,7 +170,7 @@
170 }; 170 };
171 }; 171 };
172 172
173 vcc_sdhi0: regulator@0 { 173 vcc_sdhi0: regulator-vcc-sdhi0 {
174 compatible = "regulator-fixed"; 174 compatible = "regulator-fixed";
175 175
176 regulator-name = "SDHI0 Vcc"; 176 regulator-name = "SDHI0 Vcc";
@@ -181,7 +181,7 @@
181 enable-active-high; 181 enable-active-high;
182 }; 182 };
183 183
184 vccq_sdhi0: regulator@1 { 184 vccq_sdhi0: regulator-vccq-sdhi0 {
185 compatible = "regulator-gpio"; 185 compatible = "regulator-gpio";
186 186
187 regulator-name = "SDHI0 VccQ"; 187 regulator-name = "SDHI0 VccQ";
@@ -194,7 +194,7 @@
194 1800000 0>; 194 1800000 0>;
195 }; 195 };
196 196
197 vcc_sdhi1: regulator@2 { 197 vcc_sdhi1: regulator-vcc-sdhi1 {
198 compatible = "regulator-fixed"; 198 compatible = "regulator-fixed";
199 199
200 regulator-name = "SDHI1 Vcc"; 200 regulator-name = "SDHI1 Vcc";
@@ -205,7 +205,7 @@
205 enable-active-high; 205 enable-active-high;
206 }; 206 };
207 207
208 vccq_sdhi1: regulator@3 { 208 vccq_sdhi1: regulator-vccq-sdhi1 {
209 compatible = "regulator-gpio"; 209 compatible = "regulator-gpio";
210 210
211 regulator-name = "SDHI1 VccQ"; 211 regulator-name = "SDHI1 VccQ";
@@ -218,7 +218,7 @@
218 1800000 0>; 218 1800000 0>;
219 }; 219 };
220 220
221 vcc_sdhi2: regulator@4 { 221 vcc_sdhi2: regulator-vcc-sdhi2 {
222 compatible = "regulator-fixed"; 222 compatible = "regulator-fixed";
223 223
224 regulator-name = "SDHI2 Vcc"; 224 regulator-name = "SDHI2 Vcc";
@@ -229,7 +229,7 @@
229 enable-active-high; 229 enable-active-high;
230 }; 230 };
231 231
232 vccq_sdhi2: regulator@5 { 232 vccq_sdhi2: regulator-vccq-sdhi2 {
233 compatible = "regulator-gpio"; 233 compatible = "regulator-gpio";
234 234
235 regulator-name = "SDHI2 VccQ"; 235 regulator-name = "SDHI2 VccQ";
@@ -332,12 +332,12 @@
332 function = "du"; 332 function = "du";
333 }; 333 };
334 334
335 scif0_pins: serial0 { 335 scif0_pins: scif0 {
336 groups = "scif0_data_d"; 336 groups = "scif0_data_d";
337 function = "scif0"; 337 function = "scif0";
338 }; 338 };
339 339
340 scif1_pins: serial1 { 340 scif1_pins: scif1 {
341 groups = "scif1_data_d"; 341 groups = "scif1_data_d";
342 function = "scif1"; 342 function = "scif1";
343 }; 343 };
@@ -372,12 +372,12 @@
372 function = "sdhi2"; 372 function = "sdhi2";
373 }; 373 };
374 374
375 qspi_pins: spi0 { 375 qspi_pins: qspi {
376 groups = "qspi_ctrl", "qspi_data4"; 376 groups = "qspi_ctrl", "qspi_data4";
377 function = "qspi"; 377 function = "qspi";
378 }; 378 };
379 379
380 msiof0_pins: spi1 { 380 msiof0_pins: msiof0 {
381 groups = "msiof0_clk", "msiof0_sync", "msiof0_rx", 381 groups = "msiof0_clk", "msiof0_sync", "msiof0_rx",
382 "msiof0_tx"; 382 "msiof0_tx";
383 function = "msiof0"; 383 function = "msiof0";
diff --git a/arch/arm/boot/dts/r8a7791-porter.dts b/arch/arm/boot/dts/r8a7791-porter.dts
index 6a1bb1a8209b..6761d11d3f9e 100644
--- a/arch/arm/boot/dts/r8a7791-porter.dts
+++ b/arch/arm/boot/dts/r8a7791-porter.dts
@@ -46,7 +46,7 @@
46 reg = <2 0x00000000 0 0x40000000>; 46 reg = <2 0x00000000 0 0x40000000>;
47 }; 47 };
48 48
49 vcc_sdhi0: regulator@0 { 49 vcc_sdhi0: regulator-vcc-sdhi0 {
50 compatible = "regulator-fixed"; 50 compatible = "regulator-fixed";
51 51
52 regulator-name = "SDHI0 Vcc"; 52 regulator-name = "SDHI0 Vcc";
@@ -55,7 +55,7 @@
55 regulator-always-on; 55 regulator-always-on;
56 }; 56 };
57 57
58 vccq_sdhi0: regulator@1 { 58 vccq_sdhi0: regulator-vccq-sdhi0 {
59 compatible = "regulator-gpio"; 59 compatible = "regulator-gpio";
60 60
61 regulator-name = "SDHI0 VccQ"; 61 regulator-name = "SDHI0 VccQ";
@@ -68,7 +68,7 @@
68 1800000 0>; 68 1800000 0>;
69 }; 69 };
70 70
71 vcc_sdhi2: regulator@2 { 71 vcc_sdhi2: regulator-vcc-sdhi2 {
72 compatible = "regulator-fixed"; 72 compatible = "regulator-fixed";
73 73
74 regulator-name = "SDHI2 Vcc"; 74 regulator-name = "SDHI2 Vcc";
@@ -77,7 +77,7 @@
77 regulator-always-on; 77 regulator-always-on;
78 }; 78 };
79 79
80 vccq_sdhi2: regulator@3 { 80 vccq_sdhi2: regulator-vccq-sdhi2 {
81 compatible = "regulator-gpio"; 81 compatible = "regulator-gpio";
82 82
83 regulator-name = "SDHI2 VccQ"; 83 regulator-name = "SDHI2 VccQ";
@@ -142,7 +142,7 @@
142}; 142};
143 143
144&pfc { 144&pfc {
145 scif0_pins: serial0 { 145 scif0_pins: scif0 {
146 groups = "scif0_data_d"; 146 groups = "scif0_data_d";
147 function = "scif0"; 147 function = "scif0";
148 }; 148 };
@@ -167,7 +167,7 @@
167 function = "sdhi2"; 167 function = "sdhi2";
168 }; 168 };
169 169
170 qspi_pins: spi0 { 170 qspi_pins: qspi {
171 groups = "qspi_ctrl", "qspi_data4"; 171 groups = "qspi_ctrl", "qspi_data4";
172 function = "qspi"; 172 function = "qspi";
173 }; 173 };
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index db67e342c585..8f0086bbd96b 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -43,6 +43,7 @@
43 cpus { 43 cpus {
44 #address-cells = <1>; 44 #address-cells = <1>;
45 #size-cells = <0>; 45 #size-cells = <0>;
46 enable-method = "renesas,apmu";
46 47
47 cpu0: cpu@0 { 48 cpu0: cpu@0 {
48 device_type = "cpu"; 49 device_type = "cpu";
@@ -72,6 +73,14 @@
72 power-domains = <&sysc R8A7791_PD_CA15_CPU1>; 73 power-domains = <&sysc R8A7791_PD_CA15_CPU1>;
73 next-level-cache = <&L2_CA15>; 74 next-level-cache = <&L2_CA15>;
74 }; 75 };
76
77 L2_CA15: cache-controller@0 {
78 compatible = "cache";
79 reg = <0>;
80 power-domains = <&sysc R8A7791_PD_CA15_SCU>;
81 cache-unified;
82 cache-level = <2>;
83 };
75 }; 84 };
76 85
77 thermal-zones { 86 thermal-zones {
@@ -93,11 +102,10 @@
93 }; 102 };
94 }; 103 };
95 104
96 L2_CA15: cache-controller@0 { 105 apmu@e6152000 {
97 compatible = "cache"; 106 compatible = "renesas,r8a7791-apmu", "renesas,apmu";
98 power-domains = <&sysc R8A7791_PD_CA15_SCU>; 107 reg = <0 0xe6152000 0 0x188>;
99 cache-unified; 108 cpus = <&cpu0 &cpu1>;
100 cache-level = <2>;
101 }; 109 };
102 110
103 gic: interrupt-controller@f1001000 { 111 gic: interrupt-controller@f1001000 {
@@ -514,8 +522,9 @@
514 reg = <0 0xe60b0000 0 0x425>; 522 reg = <0 0xe60b0000 0 0x425>;
515 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 523 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
516 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>; 524 clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>;
517 dmas = <&dmac0 0x77>, <&dmac0 0x78>; 525 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
518 dma-names = "tx", "rx"; 526 <&dmac1 0x77>, <&dmac1 0x78>;
527 dma-names = "tx", "rx", "tx", "rx";
519 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 528 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
520 status = "disabled"; 529 status = "disabled";
521 }; 530 };
@@ -527,8 +536,9 @@
527 reg = <0 0xe6500000 0 0x425>; 536 reg = <0 0xe6500000 0 0x425>;
528 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 537 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
529 clocks = <&mstp3_clks R8A7791_CLK_IIC0>; 538 clocks = <&mstp3_clks R8A7791_CLK_IIC0>;
530 dmas = <&dmac0 0x61>, <&dmac0 0x62>; 539 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
531 dma-names = "tx", "rx"; 540 <&dmac1 0x61>, <&dmac1 0x62>;
541 dma-names = "tx", "rx", "tx", "rx";
532 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 542 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
533 status = "disabled"; 543 status = "disabled";
534 }; 544 };
@@ -540,8 +550,9 @@
540 reg = <0 0xe6510000 0 0x425>; 550 reg = <0 0xe6510000 0 0x425>;
541 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 551 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
542 clocks = <&mstp3_clks R8A7791_CLK_IIC1>; 552 clocks = <&mstp3_clks R8A7791_CLK_IIC1>;
543 dmas = <&dmac0 0x65>, <&dmac0 0x66>; 553 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
544 dma-names = "tx", "rx"; 554 <&dmac1 0x65>, <&dmac1 0x66>;
555 dma-names = "tx", "rx", "tx", "rx";
545 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 556 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
546 status = "disabled"; 557 status = "disabled";
547 }; 558 };
@@ -556,8 +567,9 @@
556 reg = <0 0xee200000 0 0x80>; 567 reg = <0 0xee200000 0 0x80>;
557 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 568 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
558 clocks = <&mstp3_clks R8A7791_CLK_MMCIF0>; 569 clocks = <&mstp3_clks R8A7791_CLK_MMCIF0>;
559 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>; 570 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
560 dma-names = "tx", "rx"; 571 <&dmac1 0xd1>, <&dmac1 0xd2>;
572 dma-names = "tx", "rx", "tx", "rx";
561 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 573 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
562 reg-io-width = <4>; 574 reg-io-width = <4>;
563 status = "disabled"; 575 status = "disabled";
@@ -569,8 +581,9 @@
569 reg = <0 0xee100000 0 0x328>; 581 reg = <0 0xee100000 0 0x328>;
570 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 582 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
571 clocks = <&mstp3_clks R8A7791_CLK_SDHI0>; 583 clocks = <&mstp3_clks R8A7791_CLK_SDHI0>;
572 dmas = <&dmac1 0xcd>, <&dmac1 0xce>; 584 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
573 dma-names = "tx", "rx"; 585 <&dmac1 0xcd>, <&dmac1 0xce>;
586 dma-names = "tx", "rx", "tx", "rx";
574 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 587 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
575 status = "disabled"; 588 status = "disabled";
576 }; 589 };
@@ -580,8 +593,9 @@
580 reg = <0 0xee140000 0 0x100>; 593 reg = <0 0xee140000 0 0x100>;
581 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 594 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
582 clocks = <&mstp3_clks R8A7791_CLK_SDHI1>; 595 clocks = <&mstp3_clks R8A7791_CLK_SDHI1>;
583 dmas = <&dmac1 0xc1>, <&dmac1 0xc2>; 596 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
584 dma-names = "tx", "rx"; 597 <&dmac1 0xc1>, <&dmac1 0xc2>;
598 dma-names = "tx", "rx", "tx", "rx";
585 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 599 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
586 status = "disabled"; 600 status = "disabled";
587 }; 601 };
@@ -591,8 +605,9 @@
591 reg = <0 0xee160000 0 0x100>; 605 reg = <0 0xee160000 0 0x100>;
592 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 606 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
593 clocks = <&mstp3_clks R8A7791_CLK_SDHI2>; 607 clocks = <&mstp3_clks R8A7791_CLK_SDHI2>;
594 dmas = <&dmac1 0xd3>, <&dmac1 0xd4>; 608 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
595 dma-names = "tx", "rx"; 609 <&dmac1 0xd3>, <&dmac1 0xd4>;
610 dma-names = "tx", "rx", "tx", "rx";
596 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 611 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
597 status = "disabled"; 612 status = "disabled";
598 }; 613 };
@@ -604,8 +619,9 @@
604 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 619 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
605 clocks = <&mstp2_clks R8A7791_CLK_SCIFA0>; 620 clocks = <&mstp2_clks R8A7791_CLK_SCIFA0>;
606 clock-names = "fck"; 621 clock-names = "fck";
607 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 622 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
608 dma-names = "tx", "rx"; 623 <&dmac1 0x21>, <&dmac1 0x22>;
624 dma-names = "tx", "rx", "tx", "rx";
609 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 625 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
610 status = "disabled"; 626 status = "disabled";
611 }; 627 };
@@ -617,8 +633,9 @@
617 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 633 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
618 clocks = <&mstp2_clks R8A7791_CLK_SCIFA1>; 634 clocks = <&mstp2_clks R8A7791_CLK_SCIFA1>;
619 clock-names = "fck"; 635 clock-names = "fck";
620 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 636 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
621 dma-names = "tx", "rx"; 637 <&dmac1 0x25>, <&dmac1 0x26>;
638 dma-names = "tx", "rx", "tx", "rx";
622 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 639 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
623 status = "disabled"; 640 status = "disabled";
624 }; 641 };
@@ -630,8 +647,9 @@
630 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 647 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
631 clocks = <&mstp2_clks R8A7791_CLK_SCIFA2>; 648 clocks = <&mstp2_clks R8A7791_CLK_SCIFA2>;
632 clock-names = "fck"; 649 clock-names = "fck";
633 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 650 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
634 dma-names = "tx", "rx"; 651 <&dmac1 0x27>, <&dmac1 0x28>;
652 dma-names = "tx", "rx", "tx", "rx";
635 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 653 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
636 status = "disabled"; 654 status = "disabled";
637 }; 655 };
@@ -643,8 +661,9 @@
643 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 661 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
644 clocks = <&mstp11_clks R8A7791_CLK_SCIFA3>; 662 clocks = <&mstp11_clks R8A7791_CLK_SCIFA3>;
645 clock-names = "fck"; 663 clock-names = "fck";
646 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>; 664 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
647 dma-names = "tx", "rx"; 665 <&dmac1 0x1b>, <&dmac1 0x1c>;
666 dma-names = "tx", "rx", "tx", "rx";
648 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 667 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
649 status = "disabled"; 668 status = "disabled";
650 }; 669 };
@@ -656,8 +675,9 @@
656 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 675 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
657 clocks = <&mstp11_clks R8A7791_CLK_SCIFA4>; 676 clocks = <&mstp11_clks R8A7791_CLK_SCIFA4>;
658 clock-names = "fck"; 677 clock-names = "fck";
659 dmas = <&dmac0 0x1f>, <&dmac0 0x20>; 678 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
660 dma-names = "tx", "rx"; 679 <&dmac1 0x1f>, <&dmac1 0x20>;
680 dma-names = "tx", "rx", "tx", "rx";
661 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 681 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
662 status = "disabled"; 682 status = "disabled";
663 }; 683 };
@@ -669,8 +689,9 @@
669 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 689 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
670 clocks = <&mstp11_clks R8A7791_CLK_SCIFA5>; 690 clocks = <&mstp11_clks R8A7791_CLK_SCIFA5>;
671 clock-names = "fck"; 691 clock-names = "fck";
672 dmas = <&dmac0 0x23>, <&dmac0 0x24>; 692 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
673 dma-names = "tx", "rx"; 693 <&dmac1 0x23>, <&dmac1 0x24>;
694 dma-names = "tx", "rx", "tx", "rx";
674 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 695 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
675 status = "disabled"; 696 status = "disabled";
676 }; 697 };
@@ -682,8 +703,9 @@
682 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 703 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
683 clocks = <&mstp2_clks R8A7791_CLK_SCIFB0>; 704 clocks = <&mstp2_clks R8A7791_CLK_SCIFB0>;
684 clock-names = "fck"; 705 clock-names = "fck";
685 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 706 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
686 dma-names = "tx", "rx"; 707 <&dmac1 0x3d>, <&dmac1 0x3e>;
708 dma-names = "tx", "rx", "tx", "rx";
687 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 709 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
688 status = "disabled"; 710 status = "disabled";
689 }; 711 };
@@ -695,8 +717,9 @@
695 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 717 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
696 clocks = <&mstp2_clks R8A7791_CLK_SCIFB1>; 718 clocks = <&mstp2_clks R8A7791_CLK_SCIFB1>;
697 clock-names = "fck"; 719 clock-names = "fck";
698 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 720 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
699 dma-names = "tx", "rx"; 721 <&dmac1 0x19>, <&dmac1 0x1a>;
722 dma-names = "tx", "rx", "tx", "rx";
700 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 723 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
701 status = "disabled"; 724 status = "disabled";
702 }; 725 };
@@ -708,8 +731,9 @@
708 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 731 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
709 clocks = <&mstp2_clks R8A7791_CLK_SCIFB2>; 732 clocks = <&mstp2_clks R8A7791_CLK_SCIFB2>;
710 clock-names = "fck"; 733 clock-names = "fck";
711 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 734 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
712 dma-names = "tx", "rx"; 735 <&dmac1 0x1d>, <&dmac1 0x1e>;
736 dma-names = "tx", "rx", "tx", "rx";
713 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 737 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
714 status = "disabled"; 738 status = "disabled";
715 }; 739 };
@@ -722,8 +746,9 @@
722 clocks = <&mstp7_clks R8A7791_CLK_SCIF0>, <&zs_clk>, 746 clocks = <&mstp7_clks R8A7791_CLK_SCIF0>, <&zs_clk>,
723 <&scif_clk>; 747 <&scif_clk>;
724 clock-names = "fck", "brg_int", "scif_clk"; 748 clock-names = "fck", "brg_int", "scif_clk";
725 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 749 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
726 dma-names = "tx", "rx"; 750 <&dmac1 0x29>, <&dmac1 0x2a>;
751 dma-names = "tx", "rx", "tx", "rx";
727 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 752 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
728 status = "disabled"; 753 status = "disabled";
729 }; 754 };
@@ -736,8 +761,9 @@
736 clocks = <&mstp7_clks R8A7791_CLK_SCIF1>, <&zs_clk>, 761 clocks = <&mstp7_clks R8A7791_CLK_SCIF1>, <&zs_clk>,
737 <&scif_clk>; 762 <&scif_clk>;
738 clock-names = "fck", "brg_int", "scif_clk"; 763 clock-names = "fck", "brg_int", "scif_clk";
739 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 764 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
740 dma-names = "tx", "rx"; 765 <&dmac1 0x2d>, <&dmac1 0x2e>;
766 dma-names = "tx", "rx", "tx", "rx";
741 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 767 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
742 status = "disabled"; 768 status = "disabled";
743 }; 769 };
@@ -750,8 +776,9 @@
750 clocks = <&mstp7_clks R8A7791_CLK_SCIF2>, <&zs_clk>, 776 clocks = <&mstp7_clks R8A7791_CLK_SCIF2>, <&zs_clk>,
751 <&scif_clk>; 777 <&scif_clk>;
752 clock-names = "fck", "brg_int", "scif_clk"; 778 clock-names = "fck", "brg_int", "scif_clk";
753 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>; 779 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
754 dma-names = "tx", "rx"; 780 <&dmac1 0x2b>, <&dmac1 0x2c>;
781 dma-names = "tx", "rx", "tx", "rx";
755 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 782 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
756 status = "disabled"; 783 status = "disabled";
757 }; 784 };
@@ -764,8 +791,9 @@
764 clocks = <&mstp7_clks R8A7791_CLK_SCIF3>, <&zs_clk>, 791 clocks = <&mstp7_clks R8A7791_CLK_SCIF3>, <&zs_clk>,
765 <&scif_clk>; 792 <&scif_clk>;
766 clock-names = "fck", "brg_int", "scif_clk"; 793 clock-names = "fck", "brg_int", "scif_clk";
767 dmas = <&dmac0 0x2f>, <&dmac0 0x30>; 794 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
768 dma-names = "tx", "rx"; 795 <&dmac1 0x2f>, <&dmac1 0x30>;
796 dma-names = "tx", "rx", "tx", "rx";
769 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 797 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
770 status = "disabled"; 798 status = "disabled";
771 }; 799 };
@@ -778,8 +806,9 @@
778 clocks = <&mstp7_clks R8A7791_CLK_SCIF4>, <&zs_clk>, 806 clocks = <&mstp7_clks R8A7791_CLK_SCIF4>, <&zs_clk>,
779 <&scif_clk>; 807 <&scif_clk>;
780 clock-names = "fck", "brg_int", "scif_clk"; 808 clock-names = "fck", "brg_int", "scif_clk";
781 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>; 809 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
782 dma-names = "tx", "rx"; 810 <&dmac1 0xfb>, <&dmac1 0xfc>;
811 dma-names = "tx", "rx", "tx", "rx";
783 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 812 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
784 status = "disabled"; 813 status = "disabled";
785 }; 814 };
@@ -792,8 +821,9 @@
792 clocks = <&mstp7_clks R8A7791_CLK_SCIF5>, <&zs_clk>, 821 clocks = <&mstp7_clks R8A7791_CLK_SCIF5>, <&zs_clk>,
793 <&scif_clk>; 822 <&scif_clk>;
794 clock-names = "fck", "brg_int", "scif_clk"; 823 clock-names = "fck", "brg_int", "scif_clk";
795 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>; 824 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
796 dma-names = "tx", "rx"; 825 <&dmac1 0xfd>, <&dmac1 0xfe>;
826 dma-names = "tx", "rx", "tx", "rx";
797 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 827 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
798 status = "disabled"; 828 status = "disabled";
799 }; 829 };
@@ -806,8 +836,9 @@
806 clocks = <&mstp7_clks R8A7791_CLK_HSCIF0>, <&zs_clk>, 836 clocks = <&mstp7_clks R8A7791_CLK_HSCIF0>, <&zs_clk>,
807 <&scif_clk>; 837 <&scif_clk>;
808 clock-names = "fck", "brg_int", "scif_clk"; 838 clock-names = "fck", "brg_int", "scif_clk";
809 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 839 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
810 dma-names = "tx", "rx"; 840 <&dmac1 0x39>, <&dmac1 0x3a>;
841 dma-names = "tx", "rx", "tx", "rx";
811 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 842 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
812 status = "disabled"; 843 status = "disabled";
813 }; 844 };
@@ -820,8 +851,9 @@
820 clocks = <&mstp7_clks R8A7791_CLK_HSCIF1>, <&zs_clk>, 851 clocks = <&mstp7_clks R8A7791_CLK_HSCIF1>, <&zs_clk>,
821 <&scif_clk>; 852 <&scif_clk>;
822 clock-names = "fck", "brg_int", "scif_clk"; 853 clock-names = "fck", "brg_int", "scif_clk";
823 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 854 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
824 dma-names = "tx", "rx"; 855 <&dmac1 0x4d>, <&dmac1 0x4e>;
856 dma-names = "tx", "rx", "tx", "rx";
825 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 857 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
826 status = "disabled"; 858 status = "disabled";
827 }; 859 };
@@ -834,8 +866,9 @@
834 clocks = <&mstp7_clks R8A7791_CLK_HSCIF2>, <&zs_clk>, 866 clocks = <&mstp7_clks R8A7791_CLK_HSCIF2>, <&zs_clk>,
835 <&scif_clk>; 867 <&scif_clk>;
836 clock-names = "fck", "brg_int", "scif_clk"; 868 clock-names = "fck", "brg_int", "scif_clk";
837 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>; 869 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
838 dma-names = "tx", "rx"; 870 <&dmac1 0x3b>, <&dmac1 0x3c>;
871 dma-names = "tx", "rx", "tx", "rx";
839 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 872 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
840 status = "disabled"; 873 status = "disabled";
841 }; 874 };
@@ -1478,8 +1511,9 @@
1478 reg = <0 0xe6b10000 0 0x2c>; 1511 reg = <0 0xe6b10000 0 0x2c>;
1479 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 1512 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
1480 clocks = <&mstp9_clks R8A7791_CLK_QSPI_MOD>; 1513 clocks = <&mstp9_clks R8A7791_CLK_QSPI_MOD>;
1481 dmas = <&dmac0 0x17>, <&dmac0 0x18>; 1514 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
1482 dma-names = "tx", "rx"; 1515 <&dmac1 0x17>, <&dmac1 0x18>;
1516 dma-names = "tx", "rx", "tx", "rx";
1483 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1517 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1484 num-cs = <1>; 1518 num-cs = <1>;
1485 #address-cells = <1>; 1519 #address-cells = <1>;
@@ -1492,8 +1526,9 @@
1492 reg = <0 0xe6e20000 0 0x0064>; 1526 reg = <0 0xe6e20000 0 0x0064>;
1493 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>; 1527 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1494 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>; 1528 clocks = <&mstp0_clks R8A7791_CLK_MSIOF0>;
1495 dmas = <&dmac0 0x51>, <&dmac0 0x52>; 1529 dmas = <&dmac0 0x51>, <&dmac0 0x52>,
1496 dma-names = "tx", "rx"; 1530 <&dmac1 0x51>, <&dmac1 0x52>;
1531 dma-names = "tx", "rx", "tx", "rx";
1497 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1532 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1498 #address-cells = <1>; 1533 #address-cells = <1>;
1499 #size-cells = <0>; 1534 #size-cells = <0>;
@@ -1505,8 +1540,9 @@
1505 reg = <0 0xe6e10000 0 0x0064>; 1540 reg = <0 0xe6e10000 0 0x0064>;
1506 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>; 1541 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1507 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>; 1542 clocks = <&mstp2_clks R8A7791_CLK_MSIOF1>;
1508 dmas = <&dmac0 0x55>, <&dmac0 0x56>; 1543 dmas = <&dmac0 0x55>, <&dmac0 0x56>,
1509 dma-names = "tx", "rx"; 1544 <&dmac1 0x55>, <&dmac1 0x56>;
1545 dma-names = "tx", "rx", "tx", "rx";
1510 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1546 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1511 #address-cells = <1>; 1547 #address-cells = <1>;
1512 #size-cells = <0>; 1548 #size-cells = <0>;
@@ -1518,8 +1554,9 @@
1518 reg = <0 0xe6e00000 0 0x0064>; 1554 reg = <0 0xe6e00000 0 0x0064>;
1519 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>; 1555 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1520 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>; 1556 clocks = <&mstp2_clks R8A7791_CLK_MSIOF2>;
1521 dmas = <&dmac0 0x41>, <&dmac0 0x42>; 1557 dmas = <&dmac0 0x41>, <&dmac0 0x42>,
1522 dma-names = "tx", "rx"; 1558 <&dmac1 0x41>, <&dmac1 0x42>;
1559 dma-names = "tx", "rx", "tx", "rx";
1523 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1560 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
1524 #address-cells = <1>; 1561 #address-cells = <1>;
1525 #size-cells = <0>; 1562 #size-cells = <0>;
@@ -1737,79 +1774,79 @@
1737 status = "disabled"; 1774 status = "disabled";
1738 1775
1739 rcar_sound,dvc { 1776 rcar_sound,dvc {
1740 dvc0: dvc@0 { 1777 dvc0: dvc-0 {
1741 dmas = <&audma0 0xbc>; 1778 dmas = <&audma0 0xbc>;
1742 dma-names = "tx"; 1779 dma-names = "tx";
1743 }; 1780 };
1744 dvc1: dvc@1 { 1781 dvc1: dvc-1 {
1745 dmas = <&audma0 0xbe>; 1782 dmas = <&audma0 0xbe>;
1746 dma-names = "tx"; 1783 dma-names = "tx";
1747 }; 1784 };
1748 }; 1785 };
1749 1786
1750 rcar_sound,mix { 1787 rcar_sound,mix {
1751 mix0: mix@0 { }; 1788 mix0: mix-0 { };
1752 mix1: mix@1 { }; 1789 mix1: mix-1 { };
1753 }; 1790 };
1754 1791
1755 rcar_sound,ctu { 1792 rcar_sound,ctu {
1756 ctu00: ctu@0 { }; 1793 ctu00: ctu-0 { };
1757 ctu01: ctu@1 { }; 1794 ctu01: ctu-1 { };
1758 ctu02: ctu@2 { }; 1795 ctu02: ctu-2 { };
1759 ctu03: ctu@3 { }; 1796 ctu03: ctu-3 { };
1760 ctu10: ctu@4 { }; 1797 ctu10: ctu-4 { };
1761 ctu11: ctu@5 { }; 1798 ctu11: ctu-5 { };
1762 ctu12: ctu@6 { }; 1799 ctu12: ctu-6 { };
1763 ctu13: ctu@7 { }; 1800 ctu13: ctu-7 { };
1764 }; 1801 };
1765 1802
1766 rcar_sound,src { 1803 rcar_sound,src {
1767 src0: src@0 { 1804 src0: src-0 {
1768 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; 1805 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1769 dmas = <&audma0 0x85>, <&audma1 0x9a>; 1806 dmas = <&audma0 0x85>, <&audma1 0x9a>;
1770 dma-names = "rx", "tx"; 1807 dma-names = "rx", "tx";
1771 }; 1808 };
1772 src1: src@1 { 1809 src1: src-1 {
1773 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; 1810 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1774 dmas = <&audma0 0x87>, <&audma1 0x9c>; 1811 dmas = <&audma0 0x87>, <&audma1 0x9c>;
1775 dma-names = "rx", "tx"; 1812 dma-names = "rx", "tx";
1776 }; 1813 };
1777 src2: src@2 { 1814 src2: src-2 {
1778 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; 1815 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1779 dmas = <&audma0 0x89>, <&audma1 0x9e>; 1816 dmas = <&audma0 0x89>, <&audma1 0x9e>;
1780 dma-names = "rx", "tx"; 1817 dma-names = "rx", "tx";
1781 }; 1818 };
1782 src3: src@3 { 1819 src3: src-3 {
1783 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 1820 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1784 dmas = <&audma0 0x8b>, <&audma1 0xa0>; 1821 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
1785 dma-names = "rx", "tx"; 1822 dma-names = "rx", "tx";
1786 }; 1823 };
1787 src4: src@4 { 1824 src4: src-4 {
1788 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; 1825 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1789 dmas = <&audma0 0x8d>, <&audma1 0xb0>; 1826 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
1790 dma-names = "rx", "tx"; 1827 dma-names = "rx", "tx";
1791 }; 1828 };
1792 src5: src@5 { 1829 src5: src-5 {
1793 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; 1830 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1794 dmas = <&audma0 0x8f>, <&audma1 0xb2>; 1831 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
1795 dma-names = "rx", "tx"; 1832 dma-names = "rx", "tx";
1796 }; 1833 };
1797 src6: src@6 { 1834 src6: src-6 {
1798 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 1835 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1799 dmas = <&audma0 0x91>, <&audma1 0xb4>; 1836 dmas = <&audma0 0x91>, <&audma1 0xb4>;
1800 dma-names = "rx", "tx"; 1837 dma-names = "rx", "tx";
1801 }; 1838 };
1802 src7: src@7 { 1839 src7: src-7 {
1803 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; 1840 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
1804 dmas = <&audma0 0x93>, <&audma1 0xb6>; 1841 dmas = <&audma0 0x93>, <&audma1 0xb6>;
1805 dma-names = "rx", "tx"; 1842 dma-names = "rx", "tx";
1806 }; 1843 };
1807 src8: src@8 { 1844 src8: src-8 {
1808 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; 1845 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
1809 dmas = <&audma0 0x95>, <&audma1 0xb8>; 1846 dmas = <&audma0 0x95>, <&audma1 0xb8>;
1810 dma-names = "rx", "tx"; 1847 dma-names = "rx", "tx";
1811 }; 1848 };
1812 src9: src@9 { 1849 src9: src-9 {
1813 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; 1850 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
1814 dmas = <&audma0 0x97>, <&audma1 0xba>; 1851 dmas = <&audma0 0x97>, <&audma1 0xba>;
1815 dma-names = "rx", "tx"; 1852 dma-names = "rx", "tx";
@@ -1817,52 +1854,52 @@
1817 }; 1854 };
1818 1855
1819 rcar_sound,ssi { 1856 rcar_sound,ssi {
1820 ssi0: ssi@0 { 1857 ssi0: ssi-0 {
1821 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; 1858 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
1822 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 1859 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
1823 dma-names = "rx", "tx", "rxu", "txu"; 1860 dma-names = "rx", "tx", "rxu", "txu";
1824 }; 1861 };
1825 ssi1: ssi@1 { 1862 ssi1: ssi-1 {
1826 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; 1863 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
1827 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 1864 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
1828 dma-names = "rx", "tx", "rxu", "txu"; 1865 dma-names = "rx", "tx", "rxu", "txu";
1829 }; 1866 };
1830 ssi2: ssi@2 { 1867 ssi2: ssi-2 {
1831 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; 1868 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
1832 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 1869 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
1833 dma-names = "rx", "tx", "rxu", "txu"; 1870 dma-names = "rx", "tx", "rxu", "txu";
1834 }; 1871 };
1835 ssi3: ssi@3 { 1872 ssi3: ssi-3 {
1836 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; 1873 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
1837 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 1874 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
1838 dma-names = "rx", "tx", "rxu", "txu"; 1875 dma-names = "rx", "tx", "rxu", "txu";
1839 }; 1876 };
1840 ssi4: ssi@4 { 1877 ssi4: ssi-4 {
1841 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; 1878 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
1842 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 1879 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
1843 dma-names = "rx", "tx", "rxu", "txu"; 1880 dma-names = "rx", "tx", "rxu", "txu";
1844 }; 1881 };
1845 ssi5: ssi@5 { 1882 ssi5: ssi-5 {
1846 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; 1883 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1847 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 1884 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
1848 dma-names = "rx", "tx", "rxu", "txu"; 1885 dma-names = "rx", "tx", "rxu", "txu";
1849 }; 1886 };
1850 ssi6: ssi@6 { 1887 ssi6: ssi-6 {
1851 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; 1888 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
1852 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 1889 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
1853 dma-names = "rx", "tx", "rxu", "txu"; 1890 dma-names = "rx", "tx", "rxu", "txu";
1854 }; 1891 };
1855 ssi7: ssi@7 { 1892 ssi7: ssi-7 {
1856 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; 1893 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
1857 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 1894 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
1858 dma-names = "rx", "tx", "rxu", "txu"; 1895 dma-names = "rx", "tx", "rxu", "txu";
1859 }; 1896 };
1860 ssi8: ssi@8 { 1897 ssi8: ssi-8 {
1861 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; 1898 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
1862 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 1899 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
1863 dma-names = "rx", "tx", "rxu", "txu"; 1900 dma-names = "rx", "tx", "rxu", "txu";
1864 }; 1901 };
1865 ssi9: ssi@9 { 1902 ssi9: ssi-9 {
1866 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; 1903 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1867 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 1904 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
1868 dma-names = "rx", "tx", "rxu", "txu"; 1905 dma-names = "rx", "tx", "rxu", "txu";
diff --git a/arch/arm/boot/dts/r8a7792-blanche.dts b/arch/arm/boot/dts/r8a7792-blanche.dts
new file mode 100644
index 000000000000..e7b40f0e7da6
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7792-blanche.dts
@@ -0,0 +1,66 @@
1/*
2 * Device Tree Source for the Blanche board
3 *
4 * Copyright (C) 2014 Renesas Electronics Corporation
5 * Copyright (C) 2016 Cogent Embedded, Inc.
6 *
7 * This file is licensed under the terms of the GNU General Public License
8 * version 2. This program is licensed "as is" without any warranty of any
9 * kind, whether express or implied.
10 */
11
12/dts-v1/;
13#include "r8a7792.dtsi"
14
15/ {
16 model = "Blanche";
17 compatible = "renesas,blanche", "renesas,r8a7792";
18
19 aliases {
20 serial0 = &scif0;
21 serial1 = &scif3;
22 };
23
24 chosen {
25 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
26 stdout-path = "serial0:115200n8";
27 };
28
29 memory@40000000 {
30 device_type = "memory";
31 reg = <0 0x40000000 0 0x40000000>;
32 };
33
34 d3_3v: regulator-3v3 {
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 ethernet@18000000 {
44 compatible = "smsc,lan89218", "smsc,lan9115";
45 reg = <0 0x18000000 0 0x100>;
46 phy-mode = "mii";
47 interrupt-parent = <&irqc>;
48 interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
49 smsc,irq-push-pull;
50 reg-io-width = <4>;
51 vddvario-supply = <&d3_3v>;
52 vdd33a-supply = <&d3_3v>;
53 };
54};
55
56&extal_clk {
57 clock-frequency = <20000000>;
58};
59
60&scif0 {
61 status = "okay";
62};
63
64&scif3 {
65 status = "okay";
66};
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
new file mode 100644
index 000000000000..3fd61d7ab906
--- /dev/null
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -0,0 +1,385 @@
1/*
2 * Device Tree Source for the r8a7792 SoC
3 *
4 * Copyright (C) 2016 Cogent Embedded Inc.
5 *
6 * This file is licensed under the terms of the GNU General Public License
7 * version 2. This program is licensed "as is" without any warranty of any
8 * kind, whether express or implied.
9 */
10
11#include <dt-bindings/clock/r8a7792-clock.h>
12#include <dt-bindings/interrupt-controller/irq.h>
13#include <dt-bindings/interrupt-controller/arm-gic.h>
14#include <dt-bindings/power/r8a7792-sysc.h>
15
16/ {
17 compatible = "renesas,r8a7792";
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24 enable-method = "renesas,apmu";
25
26 cpu0: cpu@0 {
27 device_type = "cpu";
28 compatible = "arm,cortex-a15";
29 reg = <0>;
30 clock-frequency = <1000000000>;
31 clocks = <&cpg_clocks R8A7792_CLK_Z>;
32 power-domains = <&sysc R8A7792_PD_CA15_CPU0>;
33 next-level-cache = <&L2_CA15>;
34 };
35
36 cpu1: cpu@1 {
37 device_type = "cpu";
38 compatible = "arm,cortex-a15";
39 reg = <1>;
40 clock-frequency = <1000000000>;
41 power-domains = <&sysc R8A7792_PD_CA15_CPU1>;
42 next-level-cache = <&L2_CA15>;
43 };
44
45 L2_CA15: cache-controller@0 {
46 compatible = "cache";
47 reg = <0>;
48 cache-unified;
49 cache-level = <2>;
50 power-domains = <&sysc R8A7792_PD_CA15_SCU>;
51 };
52 };
53
54 soc {
55 compatible = "simple-bus";
56 interrupt-parent = <&gic>;
57
58 #address-cells = <2>;
59 #size-cells = <2>;
60 ranges;
61
62 apmu@e6152000 {
63 compatible = "renesas,r8a7792-apmu", "renesas,apmu";
64 reg = <0 0xe6152000 0 0x188>;
65 cpus = <&cpu0 &cpu1>;
66 };
67
68 gic: interrupt-controller@f1001000 {
69 compatible = "arm,gic-400";
70 #interrupt-cells = <3>;
71 interrupt-controller;
72 reg = <0 0xf1001000 0 0x1000>,
73 <0 0xf1002000 0 0x1000>,
74 <0 0xf1004000 0 0x2000>,
75 <0 0xf1006000 0 0x2000>;
76 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) |
77 IRQ_TYPE_LEVEL_HIGH)>;
78 };
79
80 irqc: interrupt-controller@e61c0000 {
81 compatible = "renesas,irqc-r8a7792", "renesas,irqc";
82 #interrupt-cells = <2>;
83 interrupt-controller;
84 reg = <0 0xe61c0000 0 0x200>;
85 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
86 <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
87 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
88 <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
89 clocks = <&mstp4_clks R8A7792_CLK_IRQC>;
90 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
91 };
92
93 timer {
94 compatible = "arm,armv7-timer";
95 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
96 IRQ_TYPE_LEVEL_LOW)>,
97 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
98 IRQ_TYPE_LEVEL_LOW)>,
99 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
100 IRQ_TYPE_LEVEL_LOW)>,
101 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
102 IRQ_TYPE_LEVEL_LOW)>;
103 };
104
105 sysc: system-controller@e6180000 {
106 compatible = "renesas,r8a7792-sysc";
107 reg = <0 0xe6180000 0 0x0200>;
108 #power-domain-cells = <1>;
109 };
110
111 dmac0: dma-controller@e6700000 {
112 compatible = "renesas,dmac-r8a7792",
113 "renesas,rcar-dmac";
114 reg = <0 0xe6700000 0 0x20000>;
115 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH
116 GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH
117 GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH
118 GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH
119 GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH
120 GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH
121 GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH
122 GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH
123 GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH
124 GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH
125 GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH
126 GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH
127 GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH
128 GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH
129 GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH
130 GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>;
131 interrupt-names = "error",
132 "ch0", "ch1", "ch2", "ch3",
133 "ch4", "ch5", "ch6", "ch7",
134 "ch8", "ch9", "ch10", "ch11",
135 "ch12", "ch13", "ch14";
136 clocks = <&mstp2_clks R8A7792_CLK_SYS_DMAC0>;
137 clock-names = "fck";
138 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
139 #dma-cells = <1>;
140 dma-channels = <15>;
141 };
142
143 dmac1: dma-controller@e6720000 {
144 compatible = "renesas,dmac-r8a7792",
145 "renesas,rcar-dmac";
146 reg = <0 0xe6720000 0 0x20000>;
147 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
148 GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
149 GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
150 GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
151 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
152 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
153 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
154 GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
155 GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH
156 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
157 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
158 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
159 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
160 GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
161 GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
162 GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
163 interrupt-names = "error",
164 "ch0", "ch1", "ch2", "ch3",
165 "ch4", "ch5", "ch6", "ch7",
166 "ch8", "ch9", "ch10", "ch11",
167 "ch12", "ch13", "ch14";
168 clocks = <&mstp2_clks R8A7792_CLK_SYS_DMAC1>;
169 clock-names = "fck";
170 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
171 #dma-cells = <1>;
172 dma-channels = <15>;
173 };
174
175 scif0: serial@e6e60000 {
176 compatible = "renesas,scif-r8a7792",
177 "renesas,rcar-gen2-scif", "renesas,scif";
178 reg = <0 0xe6e60000 0 64>;
179 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
180 clocks = <&mstp7_clks R8A7792_CLK_SCIF0>, <&zs_clk>,
181 <&scif_clk>;
182 clock-names = "fck", "brg_int", "scif_clk";
183 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
184 <&dmac1 0x29>, <&dmac1 0x2a>;
185 dma-names = "tx", "rx", "tx", "rx";
186 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
187 status = "disabled";
188 };
189
190 scif1: serial@e6e68000 {
191 compatible = "renesas,scif-r8a7792",
192 "renesas,rcar-gen2-scif", "renesas,scif";
193 reg = <0 0xe6e68000 0 64>;
194 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
195 clocks = <&mstp7_clks R8A7792_CLK_SCIF1>, <&zs_clk>,
196 <&scif_clk>;
197 clock-names = "fck", "brg_int", "scif_clk";
198 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
199 <&dmac1 0x2d>, <&dmac1 0x2e>;
200 dma-names = "tx", "rx", "tx", "rx";
201 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
202 status = "disabled";
203 };
204
205 scif2: serial@e6e58000 {
206 compatible = "renesas,scif-r8a7792",
207 "renesas,rcar-gen2-scif", "renesas,scif";
208 reg = <0 0xe6e58000 0 64>;
209 interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
210 clocks = <&mstp7_clks R8A7792_CLK_SCIF2>, <&zs_clk>,
211 <&scif_clk>;
212 clock-names = "fck", "brg_int", "scif_clk";
213 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
214 <&dmac1 0x2b>, <&dmac1 0x2c>;
215 dma-names = "tx", "rx", "tx", "rx";
216 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
217 status = "disabled";
218 };
219
220 scif3: serial@e6ea8000 {
221 compatible = "renesas,scif-r8a7792",
222 "renesas,rcar-gen2-scif", "renesas,scif";
223 reg = <0 0xe6ea8000 0 64>;
224 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
225 clocks = <&mstp7_clks R8A7792_CLK_SCIF3>, <&zs_clk>,
226 <&scif_clk>;
227 clock-names = "fck", "brg_int", "scif_clk";
228 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
229 <&dmac1 0x2f>, <&dmac1 0x30>;
230 dma-names = "tx", "rx", "tx", "rx";
231 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
232 status = "disabled";
233 };
234
235 hscif0: serial@e62c0000 {
236 compatible = "renesas,hscif-r8a7792",
237 "renesas,rcar-gen2-hscif", "renesas,hscif";
238 reg = <0 0xe62c0000 0 96>;
239 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
240 clocks = <&mstp7_clks R8A7792_CLK_HSCIF0>, <&zs_clk>,
241 <&scif_clk>;
242 clock-names = "fck", "brg_int", "scif_clk";
243 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
244 <&dmac1 0x39>, <&dmac1 0x3a>;
245 dma-names = "tx", "rx", "tx", "rx";
246 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
247 status = "disabled";
248 };
249
250 hscif1: serial@e62c8000 {
251 compatible = "renesas,hscif-r8a7792",
252 "renesas,rcar-gen2-hscif", "renesas,hscif";
253 reg = <0 0xe62c8000 0 96>;
254 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&mstp7_clks R8A7792_CLK_HSCIF1>, <&zs_clk>,
256 <&scif_clk>;
257 clock-names = "fck", "brg_int", "scif_clk";
258 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
259 <&dmac1 0x4d>, <&dmac1 0x4e>;
260 dma-names = "tx", "rx", "tx", "rx";
261 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
262 status = "disabled";
263 };
264
265 jpu: jpeg-codec@fe980000 {
266 compatible = "renesas,jpu-r8a7792",
267 "renesas,rcar-gen2-jpu";
268 reg = <0 0xfe980000 0 0x10300>;
269 interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
270 clocks = <&mstp1_clks R8A7792_CLK_JPU>;
271 power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
272 };
273
274 /* Special CPG clocks */
275 cpg_clocks: cpg_clocks@e6150000 {
276 compatible = "renesas,r8a7792-cpg-clocks",
277 "renesas,rcar-gen2-cpg-clocks";
278 reg = <0 0xe6150000 0 0x1000>;
279 clocks = <&extal_clk>;
280 #clock-cells = <1>;
281 clock-output-names = "main", "pll0", "pll1", "pll3",
282 "lb", "qspi", "z";
283 #power-domain-cells = <0>;
284 };
285
286 /* Fixed factor clocks */
287 pll1_div2_clk: pll1_div2 {
288 compatible = "fixed-factor-clock";
289 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
290 #clock-cells = <0>;
291 clock-div = <2>;
292 clock-mult = <1>;
293 };
294 zs_clk: zs {
295 compatible = "fixed-factor-clock";
296 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
297 #clock-cells = <0>;
298 clock-div = <6>;
299 clock-mult = <1>;
300 };
301 p_clk: p {
302 compatible = "fixed-factor-clock";
303 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
304 #clock-cells = <0>;
305 clock-div = <24>;
306 clock-mult = <1>;
307 };
308 cp_clk: cp {
309 compatible = "fixed-factor-clock";
310 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
311 #clock-cells = <0>;
312 clock-div = <48>;
313 clock-mult = <1>;
314 };
315 m2_clk: m2 {
316 compatible = "fixed-factor-clock";
317 clocks = <&cpg_clocks R8A7792_CLK_PLL1>;
318 #clock-cells = <0>;
319 clock-div = <8>;
320 clock-mult = <1>;
321 };
322
323 /* Gate clocks */
324 mstp1_clks: mstp1_clks@e6150134 {
325 compatible = "renesas,r8a7792-mstp-clocks",
326 "renesas,cpg-mstp-clocks";
327 reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
328 clocks = <&m2_clk>;
329 #clock-cells = <1>;
330 clock-indices = <R8A7792_CLK_JPU>;
331 clock-output-names = "jpu";
332 };
333 mstp2_clks: mstp2_clks@e6150138 {
334 compatible = "renesas,r8a7792-mstp-clocks",
335 "renesas,cpg-mstp-clocks";
336 reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
337 clocks = <&zs_clk>, <&zs_clk>;
338 #clock-cells = <1>;
339 clock-indices = <
340 R8A7792_CLK_SYS_DMAC1 R8A7792_CLK_SYS_DMAC0
341 >;
342 clock-output-names = "sys-dmac1", "sys-dmac0";
343 };
344 mstp4_clks: mstp4_clks@e6150140 {
345 compatible = "renesas,r8a7792-mstp-clocks",
346 "renesas,cpg-mstp-clocks";
347 reg = <0 0xe6150140 0 4>, <0 0xe615004c 0 4>;
348 clocks = <&cp_clk>;
349 #clock-cells = <1>;
350 clock-indices = <R8A7792_CLK_IRQC>;
351 clock-output-names = "irqc";
352 };
353 mstp7_clks: mstp7_clks@e615014c {
354 compatible = "renesas,r8a7792-mstp-clocks",
355 "renesas,cpg-mstp-clocks";
356 reg = <0 0xe615014c 0 4>, <0 0xe61501c4 0 4>;
357 clocks = <&zs_clk>, <&zs_clk>, <&p_clk>, <&p_clk>,
358 <&p_clk>, <&p_clk>;
359 #clock-cells = <1>;
360 clock-indices = <
361 R8A7792_CLK_HSCIF1 R8A7792_CLK_HSCIF0
362 R8A7792_CLK_SCIF3 R8A7792_CLK_SCIF2
363 R8A7792_CLK_SCIF1 R8A7792_CLK_SCIF0
364 >;
365 clock-output-names = "hscif1", "hscif0", "scif3",
366 "scif2", "scif1", "scif0";
367 };
368 };
369
370 /* External root clock */
371 extal_clk: extal {
372 compatible = "fixed-clock";
373 #clock-cells = <0>;
374 /* This value must be overridden by the board. */
375 clock-frequency = <0>;
376 };
377
378 /* External SCIF clock */
379 scif_clk: scif {
380 compatible = "fixed-clock";
381 #clock-cells = <0>;
382 /* This value must be overridden by the board. */
383 clock-frequency = <0>;
384 };
385};
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 0ebc3ee34923..90af18600124 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -158,7 +158,7 @@
158 }; 158 };
159 }; 159 };
160 160
161 vcc_sdhi0: regulator@0 { 161 vcc_sdhi0: regulator-vcc-sdhi0 {
162 compatible = "regulator-fixed"; 162 compatible = "regulator-fixed";
163 163
164 regulator-name = "SDHI0 Vcc"; 164 regulator-name = "SDHI0 Vcc";
@@ -169,7 +169,7 @@
169 enable-active-high; 169 enable-active-high;
170 }; 170 };
171 171
172 vccq_sdhi0: regulator@1 { 172 vccq_sdhi0: regulator-vccq-sdhi0 {
173 compatible = "regulator-gpio"; 173 compatible = "regulator-gpio";
174 174
175 regulator-name = "SDHI0 VccQ"; 175 regulator-name = "SDHI0 VccQ";
@@ -182,7 +182,7 @@
182 1800000 0>; 182 1800000 0>;
183 }; 183 };
184 184
185 vcc_sdhi1: regulator@2 { 185 vcc_sdhi1: regulator-vcc-sdhi1 {
186 compatible = "regulator-fixed"; 186 compatible = "regulator-fixed";
187 187
188 regulator-name = "SDHI1 Vcc"; 188 regulator-name = "SDHI1 Vcc";
@@ -193,7 +193,7 @@
193 enable-active-high; 193 enable-active-high;
194 }; 194 };
195 195
196 vccq_sdhi1: regulator@3 { 196 vccq_sdhi1: regulator-vccq-sdhi1 {
197 compatible = "regulator-gpio"; 197 compatible = "regulator-gpio";
198 198
199 regulator-name = "SDHI1 VccQ"; 199 regulator-name = "SDHI1 VccQ";
@@ -206,7 +206,7 @@
206 1800000 0>; 206 1800000 0>;
207 }; 207 };
208 208
209 vcc_sdhi2: regulator@4 { 209 vcc_sdhi2: regulator-vcc-sdhi2 {
210 compatible = "regulator-fixed"; 210 compatible = "regulator-fixed";
211 211
212 regulator-name = "SDHI2 Vcc"; 212 regulator-name = "SDHI2 Vcc";
@@ -217,7 +217,7 @@
217 enable-active-high; 217 enable-active-high;
218 }; 218 };
219 219
220 vccq_sdhi2: regulator@5 { 220 vccq_sdhi2: regulator-vccq-sdhi2 {
221 compatible = "regulator-gpio"; 221 compatible = "regulator-gpio";
222 222
223 regulator-name = "SDHI2 VccQ"; 223 regulator-name = "SDHI2 VccQ";
@@ -320,12 +320,12 @@
320 function = "du"; 320 function = "du";
321 }; 321 };
322 322
323 scif0_pins: serial0 { 323 scif0_pins: scif0 {
324 groups = "scif0_data_d"; 324 groups = "scif0_data_d";
325 function = "scif0"; 325 function = "scif0";
326 }; 326 };
327 327
328 scif1_pins: serial1 { 328 scif1_pins: scif1 {
329 groups = "scif1_data_d"; 329 groups = "scif1_data_d";
330 function = "scif1"; 330 function = "scif1";
331 }; 331 };
@@ -360,7 +360,7 @@
360 renesas,function = "sdhi2"; 360 renesas,function = "sdhi2";
361 }; 361 };
362 362
363 qspi_pins: spi0 { 363 qspi_pins: qspi {
364 groups = "qspi_ctrl", "qspi_data4"; 364 groups = "qspi_ctrl", "qspi_data4";
365 function = "qspi"; 365 function = "qspi";
366 }; 366 };
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 1dd6d202cd4c..8d02aacf2892 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -35,6 +35,7 @@
35 cpus { 35 cpus {
36 #address-cells = <1>; 36 #address-cells = <1>;
37 #size-cells = <0>; 37 #size-cells = <0>;
38 enable-method = "renesas,apmu";
38 39
39 cpu0: cpu@0 { 40 cpu0: cpu@0 {
40 device_type = "cpu"; 41 device_type = "cpu";
@@ -55,6 +56,28 @@
55 < 375000 1000000>; 56 < 375000 1000000>;
56 next-level-cache = <&L2_CA15>; 57 next-level-cache = <&L2_CA15>;
57 }; 58 };
59
60 cpu1: cpu@1 {
61 device_type = "cpu";
62 compatible = "arm,cortex-a15";
63 reg = <1>;
64 clock-frequency = <1500000000>;
65 power-domains = <&sysc R8A7793_PD_CA15_CPU1>;
66 };
67
68 L2_CA15: cache-controller@0 {
69 compatible = "cache";
70 reg = <0>;
71 power-domains = <&sysc R8A7793_PD_CA15_SCU>;
72 cache-unified;
73 cache-level = <2>;
74 };
75 };
76
77 apmu@e6152000 {
78 compatible = "renesas,r8a7793-apmu", "renesas,apmu";
79 reg = <0 0xe6152000 0 0x188>;
80 cpus = <&cpu0 &cpu1>;
58 }; 81 };
59 82
60 thermal-zones { 83 thermal-zones {
@@ -76,13 +99,6 @@
76 }; 99 };
77 }; 100 };
78 101
79 L2_CA15: cache-controller@0 {
80 compatible = "cache";
81 power-domains = <&sysc R8A7793_PD_CA15_SCU>;
82 cache-unified;
83 cache-level = <2>;
84 };
85
86 gic: interrupt-controller@f1001000 { 102 gic: interrupt-controller@f1001000 {
87 compatible = "arm,gic-400"; 103 compatible = "arm,gic-400";
88 #interrupt-cells = <3>; 104 #interrupt-cells = <3>;
@@ -473,8 +489,9 @@
473 reg = <0 0xe60b0000 0 0x425>; 489 reg = <0 0xe60b0000 0 0x425>;
474 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>; 490 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
475 clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>; 491 clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>;
476 dmas = <&dmac0 0x77>, <&dmac0 0x78>; 492 dmas = <&dmac0 0x77>, <&dmac0 0x78>,
477 dma-names = "tx", "rx"; 493 <&dmac1 0x77>, <&dmac1 0x78>;
494 dma-names = "tx", "rx", "tx", "rx";
478 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 495 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
479 status = "disabled"; 496 status = "disabled";
480 }; 497 };
@@ -486,8 +503,9 @@
486 reg = <0 0xe6500000 0 0x425>; 503 reg = <0 0xe6500000 0 0x425>;
487 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 504 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
488 clocks = <&mstp3_clks R8A7793_CLK_IIC0>; 505 clocks = <&mstp3_clks R8A7793_CLK_IIC0>;
489 dmas = <&dmac0 0x61>, <&dmac0 0x62>; 506 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
490 dma-names = "tx", "rx"; 507 <&dmac1 0x61>, <&dmac1 0x62>;
508 dma-names = "tx", "rx", "tx", "rx";
491 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 509 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
492 status = "disabled"; 510 status = "disabled";
493 }; 511 };
@@ -499,8 +517,9 @@
499 reg = <0 0xe6510000 0 0x425>; 517 reg = <0 0xe6510000 0 0x425>;
500 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 518 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
501 clocks = <&mstp3_clks R8A7793_CLK_IIC1>; 519 clocks = <&mstp3_clks R8A7793_CLK_IIC1>;
502 dmas = <&dmac0 0x65>, <&dmac0 0x66>; 520 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
503 dma-names = "tx", "rx"; 521 <&dmac1 0x65>, <&dmac1 0x66>;
522 dma-names = "tx", "rx", "tx", "rx";
504 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 523 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
505 status = "disabled"; 524 status = "disabled";
506 }; 525 };
@@ -515,8 +534,9 @@
515 reg = <0 0xee100000 0 0x328>; 534 reg = <0 0xee100000 0 0x328>;
516 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 535 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
517 clocks = <&mstp3_clks R8A7793_CLK_SDHI0>; 536 clocks = <&mstp3_clks R8A7793_CLK_SDHI0>;
518 dmas = <&dmac0 0xcd>, <&dmac0 0xce>; 537 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
519 dma-names = "tx", "rx"; 538 <&dmac1 0xcd>, <&dmac1 0xce>;
539 dma-names = "tx", "rx", "tx", "rx";
520 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 540 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
521 status = "disabled"; 541 status = "disabled";
522 }; 542 };
@@ -526,8 +546,9 @@
526 reg = <0 0xee140000 0 0x100>; 546 reg = <0 0xee140000 0 0x100>;
527 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 547 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
528 clocks = <&mstp3_clks R8A7793_CLK_SDHI1>; 548 clocks = <&mstp3_clks R8A7793_CLK_SDHI1>;
529 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>; 549 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
530 dma-names = "tx", "rx"; 550 <&dmac1 0xc1>, <&dmac1 0xc2>;
551 dma-names = "tx", "rx", "tx", "rx";
531 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 552 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
532 status = "disabled"; 553 status = "disabled";
533 }; 554 };
@@ -537,10 +558,25 @@
537 reg = <0 0xee160000 0 0x100>; 558 reg = <0 0xee160000 0 0x100>;
538 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 559 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
539 clocks = <&mstp3_clks R8A7793_CLK_SDHI2>; 560 clocks = <&mstp3_clks R8A7793_CLK_SDHI2>;
540 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>; 561 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
541 dma-names = "tx", "rx"; 562 <&dmac1 0xd3>, <&dmac1 0xd4>;
563 dma-names = "tx", "rx", "tx", "rx";
564 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
565 status = "disabled";
566 };
567
568 mmcif0: mmc@ee200000 {
569 compatible = "renesas,mmcif-r8a7793", "renesas,sh-mmcif";
570 reg = <0 0xee200000 0 0x80>;
571 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
572 clocks = <&mstp3_clks R8A7793_CLK_MMCIF0>;
573 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
574 <&dmac1 0xd1>, <&dmac1 0xd2>;
575 dma-names = "tx", "rx", "tx", "rx";
542 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 576 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
577 reg-io-width = <4>;
543 status = "disabled"; 578 status = "disabled";
579 max-frequency = <97500000>;
544 }; 580 };
545 581
546 scifa0: serial@e6c40000 { 582 scifa0: serial@e6c40000 {
@@ -550,8 +586,9 @@
550 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 586 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
551 clocks = <&mstp2_clks R8A7793_CLK_SCIFA0>; 587 clocks = <&mstp2_clks R8A7793_CLK_SCIFA0>;
552 clock-names = "fck"; 588 clock-names = "fck";
553 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 589 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
554 dma-names = "tx", "rx"; 590 <&dmac1 0x21>, <&dmac1 0x22>;
591 dma-names = "tx", "rx", "tx", "rx";
555 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 592 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
556 status = "disabled"; 593 status = "disabled";
557 }; 594 };
@@ -563,8 +600,9 @@
563 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 600 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
564 clocks = <&mstp2_clks R8A7793_CLK_SCIFA1>; 601 clocks = <&mstp2_clks R8A7793_CLK_SCIFA1>;
565 clock-names = "fck"; 602 clock-names = "fck";
566 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 603 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
567 dma-names = "tx", "rx"; 604 <&dmac1 0x25>, <&dmac1 0x26>;
605 dma-names = "tx", "rx", "tx", "rx";
568 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 606 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
569 status = "disabled"; 607 status = "disabled";
570 }; 608 };
@@ -576,8 +614,9 @@
576 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 614 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
577 clocks = <&mstp2_clks R8A7793_CLK_SCIFA2>; 615 clocks = <&mstp2_clks R8A7793_CLK_SCIFA2>;
578 clock-names = "fck"; 616 clock-names = "fck";
579 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 617 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
580 dma-names = "tx", "rx"; 618 <&dmac1 0x27>, <&dmac1 0x28>;
619 dma-names = "tx", "rx", "tx", "rx";
581 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 620 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
582 status = "disabled"; 621 status = "disabled";
583 }; 622 };
@@ -589,8 +628,9 @@
589 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 628 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&mstp11_clks R8A7793_CLK_SCIFA3>; 629 clocks = <&mstp11_clks R8A7793_CLK_SCIFA3>;
591 clock-names = "fck"; 630 clock-names = "fck";
592 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>; 631 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
593 dma-names = "tx", "rx"; 632 <&dmac1 0x1b>, <&dmac1 0x1c>;
633 dma-names = "tx", "rx", "tx", "rx";
594 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 634 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
595 status = "disabled"; 635 status = "disabled";
596 }; 636 };
@@ -602,8 +642,9 @@
602 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 642 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
603 clocks = <&mstp11_clks R8A7793_CLK_SCIFA4>; 643 clocks = <&mstp11_clks R8A7793_CLK_SCIFA4>;
604 clock-names = "fck"; 644 clock-names = "fck";
605 dmas = <&dmac0 0x1f>, <&dmac0 0x20>; 645 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
606 dma-names = "tx", "rx"; 646 <&dmac1 0x1f>, <&dmac1 0x20>;
647 dma-names = "tx", "rx", "tx", "rx";
607 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 648 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
608 status = "disabled"; 649 status = "disabled";
609 }; 650 };
@@ -615,8 +656,9 @@
615 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 656 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
616 clocks = <&mstp11_clks R8A7793_CLK_SCIFA5>; 657 clocks = <&mstp11_clks R8A7793_CLK_SCIFA5>;
617 clock-names = "fck"; 658 clock-names = "fck";
618 dmas = <&dmac0 0x23>, <&dmac0 0x24>; 659 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
619 dma-names = "tx", "rx"; 660 <&dmac1 0x23>, <&dmac1 0x24>;
661 dma-names = "tx", "rx", "tx", "rx";
620 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 662 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
621 status = "disabled"; 663 status = "disabled";
622 }; 664 };
@@ -628,8 +670,9 @@
628 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 670 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
629 clocks = <&mstp2_clks R8A7793_CLK_SCIFB0>; 671 clocks = <&mstp2_clks R8A7793_CLK_SCIFB0>;
630 clock-names = "fck"; 672 clock-names = "fck";
631 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 673 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
632 dma-names = "tx", "rx"; 674 <&dmac1 0x3d>, <&dmac1 0x3e>;
675 dma-names = "tx", "rx", "tx", "rx";
633 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 676 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
634 status = "disabled"; 677 status = "disabled";
635 }; 678 };
@@ -641,8 +684,9 @@
641 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 684 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
642 clocks = <&mstp2_clks R8A7793_CLK_SCIFB1>; 685 clocks = <&mstp2_clks R8A7793_CLK_SCIFB1>;
643 clock-names = "fck"; 686 clock-names = "fck";
644 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 687 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
645 dma-names = "tx", "rx"; 688 <&dmac1 0x19>, <&dmac1 0x1a>;
689 dma-names = "tx", "rx", "tx", "rx";
646 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 690 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
647 status = "disabled"; 691 status = "disabled";
648 }; 692 };
@@ -654,8 +698,9 @@
654 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 698 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
655 clocks = <&mstp2_clks R8A7793_CLK_SCIFB2>; 699 clocks = <&mstp2_clks R8A7793_CLK_SCIFB2>;
656 clock-names = "fck"; 700 clock-names = "fck";
657 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 701 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
658 dma-names = "tx", "rx"; 702 <&dmac1 0x1d>, <&dmac1 0x1e>;
703 dma-names = "tx", "rx", "tx", "rx";
659 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 704 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
660 status = "disabled"; 705 status = "disabled";
661 }; 706 };
@@ -668,8 +713,9 @@
668 clocks = <&mstp7_clks R8A7793_CLK_SCIF0>, <&zs_clk>, 713 clocks = <&mstp7_clks R8A7793_CLK_SCIF0>, <&zs_clk>,
669 <&scif_clk>; 714 <&scif_clk>;
670 clock-names = "fck", "brg_int", "scif_clk"; 715 clock-names = "fck", "brg_int", "scif_clk";
671 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 716 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
672 dma-names = "tx", "rx"; 717 <&dmac1 0x29>, <&dmac1 0x2a>;
718 dma-names = "tx", "rx", "tx", "rx";
673 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 719 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
674 status = "disabled"; 720 status = "disabled";
675 }; 721 };
@@ -682,8 +728,9 @@
682 clocks = <&mstp7_clks R8A7793_CLK_SCIF1>, <&zs_clk>, 728 clocks = <&mstp7_clks R8A7793_CLK_SCIF1>, <&zs_clk>,
683 <&scif_clk>; 729 <&scif_clk>;
684 clock-names = "fck", "brg_int", "scif_clk"; 730 clock-names = "fck", "brg_int", "scif_clk";
685 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 731 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
686 dma-names = "tx", "rx"; 732 <&dmac1 0x2d>, <&dmac1 0x2e>;
733 dma-names = "tx", "rx", "tx", "rx";
687 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 734 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
688 status = "disabled"; 735 status = "disabled";
689 }; 736 };
@@ -696,8 +743,9 @@
696 clocks = <&mstp7_clks R8A7793_CLK_SCIF2>, <&zs_clk>, 743 clocks = <&mstp7_clks R8A7793_CLK_SCIF2>, <&zs_clk>,
697 <&scif_clk>; 744 <&scif_clk>;
698 clock-names = "fck", "brg_int", "scif_clk"; 745 clock-names = "fck", "brg_int", "scif_clk";
699 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>; 746 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
700 dma-names = "tx", "rx"; 747 <&dmac1 0x2b>, <&dmac1 0x2c>;
748 dma-names = "tx", "rx", "tx", "rx";
701 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 749 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
702 status = "disabled"; 750 status = "disabled";
703 }; 751 };
@@ -710,8 +758,9 @@
710 clocks = <&mstp7_clks R8A7793_CLK_SCIF3>, <&zs_clk>, 758 clocks = <&mstp7_clks R8A7793_CLK_SCIF3>, <&zs_clk>,
711 <&scif_clk>; 759 <&scif_clk>;
712 clock-names = "fck", "brg_int", "scif_clk"; 760 clock-names = "fck", "brg_int", "scif_clk";
713 dmas = <&dmac0 0x2f>, <&dmac0 0x30>; 761 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
714 dma-names = "tx", "rx"; 762 <&dmac1 0x2f>, <&dmac1 0x30>;
763 dma-names = "tx", "rx", "tx", "rx";
715 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 764 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
716 status = "disabled"; 765 status = "disabled";
717 }; 766 };
@@ -724,8 +773,9 @@
724 clocks = <&mstp7_clks R8A7793_CLK_SCIF4>, <&zs_clk>, 773 clocks = <&mstp7_clks R8A7793_CLK_SCIF4>, <&zs_clk>,
725 <&scif_clk>; 774 <&scif_clk>;
726 clock-names = "fck", "brg_int", "scif_clk"; 775 clock-names = "fck", "brg_int", "scif_clk";
727 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>; 776 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
728 dma-names = "tx", "rx"; 777 <&dmac1 0xfb>, <&dmac1 0xfc>;
778 dma-names = "tx", "rx", "tx", "rx";
729 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 779 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
730 status = "disabled"; 780 status = "disabled";
731 }; 781 };
@@ -738,8 +788,9 @@
738 clocks = <&mstp7_clks R8A7793_CLK_SCIF5>, <&zs_clk>, 788 clocks = <&mstp7_clks R8A7793_CLK_SCIF5>, <&zs_clk>,
739 <&scif_clk>; 789 <&scif_clk>;
740 clock-names = "fck", "brg_int", "scif_clk"; 790 clock-names = "fck", "brg_int", "scif_clk";
741 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>; 791 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
742 dma-names = "tx", "rx"; 792 <&dmac1 0xfd>, <&dmac1 0xfe>;
793 dma-names = "tx", "rx", "tx", "rx";
743 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 794 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
744 status = "disabled"; 795 status = "disabled";
745 }; 796 };
@@ -752,8 +803,9 @@
752 clocks = <&mstp7_clks R8A7793_CLK_HSCIF0>, <&zs_clk>, 803 clocks = <&mstp7_clks R8A7793_CLK_HSCIF0>, <&zs_clk>,
753 <&scif_clk>; 804 <&scif_clk>;
754 clock-names = "fck", "brg_int", "scif_clk"; 805 clock-names = "fck", "brg_int", "scif_clk";
755 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 806 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
756 dma-names = "tx", "rx"; 807 <&dmac1 0x39>, <&dmac1 0x3a>;
808 dma-names = "tx", "rx", "tx", "rx";
757 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 809 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
758 status = "disabled"; 810 status = "disabled";
759 }; 811 };
@@ -766,8 +818,9 @@
766 clocks = <&mstp7_clks R8A7793_CLK_HSCIF1>, <&zs_clk>, 818 clocks = <&mstp7_clks R8A7793_CLK_HSCIF1>, <&zs_clk>,
767 <&scif_clk>; 819 <&scif_clk>;
768 clock-names = "fck", "brg_int", "scif_clk"; 820 clock-names = "fck", "brg_int", "scif_clk";
769 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 821 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
770 dma-names = "tx", "rx"; 822 <&dmac1 0x4d>, <&dmac1 0x4e>;
823 dma-names = "tx", "rx", "tx", "rx";
771 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 824 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
772 status = "disabled"; 825 status = "disabled";
773 }; 826 };
@@ -780,8 +833,9 @@
780 clocks = <&mstp7_clks R8A7793_CLK_HSCIF2>, <&zs_clk>, 833 clocks = <&mstp7_clks R8A7793_CLK_HSCIF2>, <&zs_clk>,
781 <&scif_clk>; 834 <&scif_clk>;
782 clock-names = "fck", "brg_int", "scif_clk"; 835 clock-names = "fck", "brg_int", "scif_clk";
783 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>; 836 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
784 dma-names = "tx", "rx"; 837 <&dmac1 0x3b>, <&dmac1 0x3c>;
838 dma-names = "tx", "rx", "tx", "rx";
785 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 839 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
786 status = "disabled"; 840 status = "disabled";
787 }; 841 };
@@ -803,8 +857,9 @@
803 reg = <0 0xe6b10000 0 0x2c>; 857 reg = <0 0xe6b10000 0 0x2c>;
804 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 858 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
805 clocks = <&mstp9_clks R8A7793_CLK_QSPI_MOD>; 859 clocks = <&mstp9_clks R8A7793_CLK_QSPI_MOD>;
806 dmas = <&dmac0 0x17>, <&dmac0 0x18>; 860 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
807 dma-names = "tx", "rx"; 861 <&dmac1 0x17>, <&dmac1 0x18>;
862 dma-names = "tx", "rx", "tx", "rx";
808 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>; 863 power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
809 num-cs = <1>; 864 num-cs = <1>;
810 #address-cells = <1>; 865 #address-cells = <1>;
@@ -1330,63 +1385,63 @@
1330 status = "disabled"; 1385 status = "disabled";
1331 1386
1332 rcar_sound,dvc { 1387 rcar_sound,dvc {
1333 dvc0: dvc@0 { 1388 dvc0: dvc-0 {
1334 dmas = <&audma0 0xbc>; 1389 dmas = <&audma0 0xbc>;
1335 dma-names = "tx"; 1390 dma-names = "tx";
1336 }; 1391 };
1337 dvc1: dvc@1 { 1392 dvc1: dvc-1 {
1338 dmas = <&audma0 0xbe>; 1393 dmas = <&audma0 0xbe>;
1339 dma-names = "tx"; 1394 dma-names = "tx";
1340 }; 1395 };
1341 }; 1396 };
1342 1397
1343 rcar_sound,src { 1398 rcar_sound,src {
1344 src0: src@0 { 1399 src0: src-0 {
1345 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>; 1400 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1346 dmas = <&audma0 0x85>, <&audma1 0x9a>; 1401 dmas = <&audma0 0x85>, <&audma1 0x9a>;
1347 dma-names = "rx", "tx"; 1402 dma-names = "rx", "tx";
1348 }; 1403 };
1349 src1: src@1 { 1404 src1: src-1 {
1350 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>; 1405 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1351 dmas = <&audma0 0x87>, <&audma1 0x9c>; 1406 dmas = <&audma0 0x87>, <&audma1 0x9c>;
1352 dma-names = "rx", "tx"; 1407 dma-names = "rx", "tx";
1353 }; 1408 };
1354 src2: src@2 { 1409 src2: src-2 {
1355 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>; 1410 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1356 dmas = <&audma0 0x89>, <&audma1 0x9e>; 1411 dmas = <&audma0 0x89>, <&audma1 0x9e>;
1357 dma-names = "rx", "tx"; 1412 dma-names = "rx", "tx";
1358 }; 1413 };
1359 src3: src@3 { 1414 src3: src-3 {
1360 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>; 1415 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1361 dmas = <&audma0 0x8b>, <&audma1 0xa0>; 1416 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
1362 dma-names = "rx", "tx"; 1417 dma-names = "rx", "tx";
1363 }; 1418 };
1364 src4: src@4 { 1419 src4: src-4 {
1365 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>; 1420 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1366 dmas = <&audma0 0x8d>, <&audma1 0xb0>; 1421 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
1367 dma-names = "rx", "tx"; 1422 dma-names = "rx", "tx";
1368 }; 1423 };
1369 src5: src@5 { 1424 src5: src-5 {
1370 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>; 1425 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1371 dmas = <&audma0 0x8f>, <&audma1 0xb2>; 1426 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
1372 dma-names = "rx", "tx"; 1427 dma-names = "rx", "tx";
1373 }; 1428 };
1374 src6: src@6 { 1429 src6: src-6 {
1375 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>; 1430 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1376 dmas = <&audma0 0x91>, <&audma1 0xb4>; 1431 dmas = <&audma0 0x91>, <&audma1 0xb4>;
1377 dma-names = "rx", "tx"; 1432 dma-names = "rx", "tx";
1378 }; 1433 };
1379 src7: src@7 { 1434 src7: src-7 {
1380 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>; 1435 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
1381 dmas = <&audma0 0x93>, <&audma1 0xb6>; 1436 dmas = <&audma0 0x93>, <&audma1 0xb6>;
1382 dma-names = "rx", "tx"; 1437 dma-names = "rx", "tx";
1383 }; 1438 };
1384 src8: src@8 { 1439 src8: src-8 {
1385 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>; 1440 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
1386 dmas = <&audma0 0x95>, <&audma1 0xb8>; 1441 dmas = <&audma0 0x95>, <&audma1 0xb8>;
1387 dma-names = "rx", "tx"; 1442 dma-names = "rx", "tx";
1388 }; 1443 };
1389 src9: src@9 { 1444 src9: src-9 {
1390 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>; 1445 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
1391 dmas = <&audma0 0x97>, <&audma1 0xba>; 1446 dmas = <&audma0 0x97>, <&audma1 0xba>;
1392 dma-names = "rx", "tx"; 1447 dma-names = "rx", "tx";
@@ -1394,52 +1449,52 @@
1394 }; 1449 };
1395 1450
1396 rcar_sound,ssi { 1451 rcar_sound,ssi {
1397 ssi0: ssi@0 { 1452 ssi0: ssi-0 {
1398 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>; 1453 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
1399 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>; 1454 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
1400 dma-names = "rx", "tx", "rxu", "txu"; 1455 dma-names = "rx", "tx", "rxu", "txu";
1401 }; 1456 };
1402 ssi1: ssi@1 { 1457 ssi1: ssi-1 {
1403 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>; 1458 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
1404 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>; 1459 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
1405 dma-names = "rx", "tx", "rxu", "txu"; 1460 dma-names = "rx", "tx", "rxu", "txu";
1406 }; 1461 };
1407 ssi2: ssi@2 { 1462 ssi2: ssi-2 {
1408 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>; 1463 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
1409 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>; 1464 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
1410 dma-names = "rx", "tx", "rxu", "txu"; 1465 dma-names = "rx", "tx", "rxu", "txu";
1411 }; 1466 };
1412 ssi3: ssi@3 { 1467 ssi3: ssi-3 {
1413 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>; 1468 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
1414 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>; 1469 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
1415 dma-names = "rx", "tx", "rxu", "txu"; 1470 dma-names = "rx", "tx", "rxu", "txu";
1416 }; 1471 };
1417 ssi4: ssi@4 { 1472 ssi4: ssi-4 {
1418 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>; 1473 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
1419 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>; 1474 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
1420 dma-names = "rx", "tx", "rxu", "txu"; 1475 dma-names = "rx", "tx", "rxu", "txu";
1421 }; 1476 };
1422 ssi5: ssi@5 { 1477 ssi5: ssi-5 {
1423 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; 1478 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1424 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>; 1479 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
1425 dma-names = "rx", "tx", "rxu", "txu"; 1480 dma-names = "rx", "tx", "rxu", "txu";
1426 }; 1481 };
1427 ssi6: ssi@6 { 1482 ssi6: ssi-6 {
1428 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>; 1483 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
1429 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>; 1484 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
1430 dma-names = "rx", "tx", "rxu", "txu"; 1485 dma-names = "rx", "tx", "rxu", "txu";
1431 }; 1486 };
1432 ssi7: ssi@7 { 1487 ssi7: ssi-7 {
1433 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>; 1488 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
1434 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>; 1489 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
1435 dma-names = "rx", "tx", "rxu", "txu"; 1490 dma-names = "rx", "tx", "rxu", "txu";
1436 }; 1491 };
1437 ssi8: ssi@8 { 1492 ssi8: ssi-8 {
1438 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>; 1493 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
1439 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>; 1494 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
1440 dma-names = "rx", "tx", "rxu", "txu"; 1495 dma-names = "rx", "tx", "rxu", "txu";
1441 }; 1496 };
1442 ssi9: ssi@9 { 1497 ssi9: ssi-9 {
1443 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>; 1498 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1444 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>; 1499 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
1445 dma-names = "rx", "tx", "rxu", "txu"; 1500 dma-names = "rx", "tx", "rxu", "txu";
diff --git a/arch/arm/boot/dts/r8a7794-alt.dts b/arch/arm/boot/dts/r8a7794-alt.dts
index 383ad791f1db..1ad37d431a2a 100644
--- a/arch/arm/boot/dts/r8a7794-alt.dts
+++ b/arch/arm/boot/dts/r8a7794-alt.dts
@@ -111,7 +111,7 @@
111 function = "du"; 111 function = "du";
112 }; 112 };
113 113
114 scif2_pins: serial2 { 114 scif2_pins: scif2 {
115 groups = "scif2_data"; 115 groups = "scif2_data";
116 function = "scif2"; 116 function = "scif2";
117 }; 117 };
@@ -147,7 +147,7 @@
147}; 147};
148 148
149&pfc { 149&pfc {
150 qspi_pins: spi0 { 150 qspi_pins: qspi {
151 groups = "qspi_ctrl", "qspi_data4"; 151 groups = "qspi_ctrl", "qspi_data4";
152 function = "qspi"; 152 function = "qspi";
153 }; 153 };
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
index 56d98d5b2185..cf24f45fff22 100644
--- a/arch/arm/boot/dts/r8a7794-silk.dts
+++ b/arch/arm/boot/dts/r8a7794-silk.dts
@@ -32,7 +32,7 @@
32 reg = <0 0x40000000 0 0x40000000>; 32 reg = <0 0x40000000 0 0x40000000>;
33 }; 33 };
34 34
35 d3_3v: regulator@0 { 35 d3_3v: regulator-d3-3v {
36 compatible = "regulator-fixed"; 36 compatible = "regulator-fixed";
37 regulator-name = "D3.3V"; 37 regulator-name = "D3.3V";
38 regulator-min-microvolt = <3300000>; 38 regulator-min-microvolt = <3300000>;
@@ -41,7 +41,7 @@
41 regulator-always-on; 41 regulator-always-on;
42 }; 42 };
43 43
44 vcc_sdhi1: regulator@3 { 44 vcc_sdhi1: regulator-vcc-sdhi1 {
45 compatible = "regulator-fixed"; 45 compatible = "regulator-fixed";
46 46
47 regulator-name = "SDHI1 Vcc"; 47 regulator-name = "SDHI1 Vcc";
@@ -52,7 +52,7 @@
52 enable-active-high; 52 enable-active-high;
53 }; 53 };
54 54
55 vccq_sdhi1: regulator@4 { 55 vccq_sdhi1: regulator-vccq-sdhi1 {
56 compatible = "regulator-gpio"; 56 compatible = "regulator-gpio";
57 57
58 regulator-name = "SDHI1 VccQ"; 58 regulator-name = "SDHI1 VccQ";
@@ -129,7 +129,7 @@
129 pinctrl-0 = <&scif_clk_pins>; 129 pinctrl-0 = <&scif_clk_pins>;
130 pinctrl-names = "default"; 130 pinctrl-names = "default";
131 131
132 scif2_pins: serial2 { 132 scif2_pins: scif2 {
133 groups = "scif2_data"; 133 groups = "scif2_data";
134 function = "scif2"; 134 function = "scif2";
135 }; 135 };
@@ -164,7 +164,7 @@
164 function = "sdhi1"; 164 function = "sdhi1";
165 }; 165 };
166 166
167 qspi_pins: spi0 { 167 qspi_pins: qspi {
168 groups = "qspi_ctrl", "qspi_data4"; 168 groups = "qspi_ctrl", "qspi_data4";
169 function = "qspi"; 169 function = "qspi";
170 }; 170 };
@@ -183,6 +183,16 @@
183 groups = "usb1"; 183 groups = "usb1";
184 function = "usb1"; 184 function = "usb1";
185 }; 185 };
186
187 du0_pins: du0 {
188 groups = "du0_rgb888", "du0_sync", "du0_disp", "du0_clk0_out";
189 function = "du0";
190 };
191
192 du1_pins: du1 {
193 groups = "du1_rgb666", "du1_sync", "du1_disp", "du1_clk0_out";
194 function = "du1";
195 };
186}; 196};
187 197
188&scif2 { 198&scif2 {
@@ -360,6 +370,8 @@
360}; 370};
361 371
362&du { 372&du {
373 pinctrl-0 = <&du0_pins &du1_pins>;
374 pinctrl-names = "default";
363 status = "okay"; 375 status = "okay";
364 376
365 clocks = <&mstp7_clks R8A7794_CLK_DU0>, 377 clocks = <&mstp7_clks R8A7794_CLK_DU0>,
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index f334a3a715f2..685f986cf962 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -55,13 +55,14 @@
55 power-domains = <&sysc R8A7794_PD_CA7_CPU1>; 55 power-domains = <&sysc R8A7794_PD_CA7_CPU1>;
56 next-level-cache = <&L2_CA7>; 56 next-level-cache = <&L2_CA7>;
57 }; 57 };
58 };
59 58
60 L2_CA7: cache-controller@1 { 59 L2_CA7: cache-controller@0 {
61 compatible = "cache"; 60 compatible = "cache";
62 power-domains = <&sysc R8A7794_PD_CA7_SCU>; 61 reg = <0>;
63 cache-unified; 62 power-domains = <&sysc R8A7794_PD_CA7_SCU>;
64 cache-level = <2>; 63 cache-unified;
64 cache-level = <2>;
65 };
65 }; 66 };
66 67
67 gic: interrupt-controller@f1001000 { 68 gic: interrupt-controller@f1001000 {
@@ -302,8 +303,9 @@
302 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; 303 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
303 clocks = <&mstp2_clks R8A7794_CLK_SCIFA0>; 304 clocks = <&mstp2_clks R8A7794_CLK_SCIFA0>;
304 clock-names = "fck"; 305 clock-names = "fck";
305 dmas = <&dmac0 0x21>, <&dmac0 0x22>; 306 dmas = <&dmac0 0x21>, <&dmac0 0x22>,
306 dma-names = "tx", "rx"; 307 <&dmac1 0x21>, <&dmac1 0x22>;
308 dma-names = "tx", "rx", "tx", "rx";
307 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 309 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
308 status = "disabled"; 310 status = "disabled";
309 }; 311 };
@@ -315,8 +317,9 @@
315 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; 317 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
316 clocks = <&mstp2_clks R8A7794_CLK_SCIFA1>; 318 clocks = <&mstp2_clks R8A7794_CLK_SCIFA1>;
317 clock-names = "fck"; 319 clock-names = "fck";
318 dmas = <&dmac0 0x25>, <&dmac0 0x26>; 320 dmas = <&dmac0 0x25>, <&dmac0 0x26>,
319 dma-names = "tx", "rx"; 321 <&dmac1 0x25>, <&dmac1 0x26>;
322 dma-names = "tx", "rx", "tx", "rx";
320 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 323 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
321 status = "disabled"; 324 status = "disabled";
322 }; 325 };
@@ -328,8 +331,9 @@
328 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 331 interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
329 clocks = <&mstp2_clks R8A7794_CLK_SCIFA2>; 332 clocks = <&mstp2_clks R8A7794_CLK_SCIFA2>;
330 clock-names = "fck"; 333 clock-names = "fck";
331 dmas = <&dmac0 0x27>, <&dmac0 0x28>; 334 dmas = <&dmac0 0x27>, <&dmac0 0x28>,
332 dma-names = "tx", "rx"; 335 <&dmac1 0x27>, <&dmac1 0x28>;
336 dma-names = "tx", "rx", "tx", "rx";
333 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 337 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
334 status = "disabled"; 338 status = "disabled";
335 }; 339 };
@@ -341,8 +345,9 @@
341 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 345 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
342 clocks = <&mstp11_clks R8A7794_CLK_SCIFA3>; 346 clocks = <&mstp11_clks R8A7794_CLK_SCIFA3>;
343 clock-names = "fck"; 347 clock-names = "fck";
344 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>; 348 dmas = <&dmac0 0x1b>, <&dmac0 0x1c>,
345 dma-names = "tx", "rx"; 349 <&dmac1 0x1b>, <&dmac1 0x1c>;
350 dma-names = "tx", "rx", "tx", "rx";
346 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 351 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
347 status = "disabled"; 352 status = "disabled";
348 }; 353 };
@@ -354,8 +359,9 @@
354 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 359 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
355 clocks = <&mstp11_clks R8A7794_CLK_SCIFA4>; 360 clocks = <&mstp11_clks R8A7794_CLK_SCIFA4>;
356 clock-names = "fck"; 361 clock-names = "fck";
357 dmas = <&dmac0 0x1f>, <&dmac0 0x20>; 362 dmas = <&dmac0 0x1f>, <&dmac0 0x20>,
358 dma-names = "tx", "rx"; 363 <&dmac1 0x1f>, <&dmac1 0x20>;
364 dma-names = "tx", "rx", "tx", "rx";
359 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 365 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
360 status = "disabled"; 366 status = "disabled";
361 }; 367 };
@@ -367,8 +373,9 @@
367 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 373 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
368 clocks = <&mstp11_clks R8A7794_CLK_SCIFA5>; 374 clocks = <&mstp11_clks R8A7794_CLK_SCIFA5>;
369 clock-names = "fck"; 375 clock-names = "fck";
370 dmas = <&dmac0 0x23>, <&dmac0 0x24>; 376 dmas = <&dmac0 0x23>, <&dmac0 0x24>,
371 dma-names = "tx", "rx"; 377 <&dmac1 0x23>, <&dmac1 0x24>;
378 dma-names = "tx", "rx", "tx", "rx";
372 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 379 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
373 status = "disabled"; 380 status = "disabled";
374 }; 381 };
@@ -380,8 +387,9 @@
380 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 387 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
381 clocks = <&mstp2_clks R8A7794_CLK_SCIFB0>; 388 clocks = <&mstp2_clks R8A7794_CLK_SCIFB0>;
382 clock-names = "fck"; 389 clock-names = "fck";
383 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>; 390 dmas = <&dmac0 0x3d>, <&dmac0 0x3e>,
384 dma-names = "tx", "rx"; 391 <&dmac1 0x3d>, <&dmac1 0x3e>;
392 dma-names = "tx", "rx", "tx", "rx";
385 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 393 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
386 status = "disabled"; 394 status = "disabled";
387 }; 395 };
@@ -393,8 +401,9 @@
393 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; 401 interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
394 clocks = <&mstp2_clks R8A7794_CLK_SCIFB1>; 402 clocks = <&mstp2_clks R8A7794_CLK_SCIFB1>;
395 clock-names = "fck"; 403 clock-names = "fck";
396 dmas = <&dmac0 0x19>, <&dmac0 0x1a>; 404 dmas = <&dmac0 0x19>, <&dmac0 0x1a>,
397 dma-names = "tx", "rx"; 405 <&dmac1 0x19>, <&dmac1 0x1a>;
406 dma-names = "tx", "rx", "tx", "rx";
398 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 407 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
399 status = "disabled"; 408 status = "disabled";
400 }; 409 };
@@ -406,8 +415,9 @@
406 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 415 interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
407 clocks = <&mstp2_clks R8A7794_CLK_SCIFB2>; 416 clocks = <&mstp2_clks R8A7794_CLK_SCIFB2>;
408 clock-names = "fck"; 417 clock-names = "fck";
409 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>; 418 dmas = <&dmac0 0x1d>, <&dmac0 0x1e>,
410 dma-names = "tx", "rx"; 419 <&dmac1 0x1d>, <&dmac1 0x1e>;
420 dma-names = "tx", "rx", "tx", "rx";
411 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 421 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
412 status = "disabled"; 422 status = "disabled";
413 }; 423 };
@@ -420,8 +430,9 @@
420 clocks = <&mstp7_clks R8A7794_CLK_SCIF0>, <&zs_clk>, 430 clocks = <&mstp7_clks R8A7794_CLK_SCIF0>, <&zs_clk>,
421 <&scif_clk>; 431 <&scif_clk>;
422 clock-names = "fck", "brg_int", "scif_clk"; 432 clock-names = "fck", "brg_int", "scif_clk";
423 dmas = <&dmac0 0x29>, <&dmac0 0x2a>; 433 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
424 dma-names = "tx", "rx"; 434 <&dmac1 0x29>, <&dmac1 0x2a>;
435 dma-names = "tx", "rx", "tx", "rx";
425 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 436 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
426 status = "disabled"; 437 status = "disabled";
427 }; 438 };
@@ -434,8 +445,9 @@
434 clocks = <&mstp7_clks R8A7794_CLK_SCIF1>, <&zs_clk>, 445 clocks = <&mstp7_clks R8A7794_CLK_SCIF1>, <&zs_clk>,
435 <&scif_clk>; 446 <&scif_clk>;
436 clock-names = "fck", "brg_int", "scif_clk"; 447 clock-names = "fck", "brg_int", "scif_clk";
437 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>; 448 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
438 dma-names = "tx", "rx"; 449 <&dmac1 0x2d>, <&dmac1 0x2e>;
450 dma-names = "tx", "rx", "tx", "rx";
439 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 451 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
440 status = "disabled"; 452 status = "disabled";
441 }; 453 };
@@ -448,8 +460,9 @@
448 clocks = <&mstp7_clks R8A7794_CLK_SCIF2>, <&zs_clk>, 460 clocks = <&mstp7_clks R8A7794_CLK_SCIF2>, <&zs_clk>,
449 <&scif_clk>; 461 <&scif_clk>;
450 clock-names = "fck", "brg_int", "scif_clk"; 462 clock-names = "fck", "brg_int", "scif_clk";
451 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>; 463 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
452 dma-names = "tx", "rx"; 464 <&dmac1 0x2b>, <&dmac1 0x2c>;
465 dma-names = "tx", "rx", "tx", "rx";
453 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 466 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
454 status = "disabled"; 467 status = "disabled";
455 }; 468 };
@@ -462,8 +475,9 @@
462 clocks = <&mstp7_clks R8A7794_CLK_SCIF3>, <&zs_clk>, 475 clocks = <&mstp7_clks R8A7794_CLK_SCIF3>, <&zs_clk>,
463 <&scif_clk>; 476 <&scif_clk>;
464 clock-names = "fck", "brg_int", "scif_clk"; 477 clock-names = "fck", "brg_int", "scif_clk";
465 dmas = <&dmac0 0x2f>, <&dmac0 0x30>; 478 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
466 dma-names = "tx", "rx"; 479 <&dmac1 0x2f>, <&dmac1 0x30>;
480 dma-names = "tx", "rx", "tx", "rx";
467 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 481 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
468 status = "disabled"; 482 status = "disabled";
469 }; 483 };
@@ -476,8 +490,9 @@
476 clocks = <&mstp7_clks R8A7794_CLK_SCIF4>, <&zs_clk>, 490 clocks = <&mstp7_clks R8A7794_CLK_SCIF4>, <&zs_clk>,
477 <&scif_clk>; 491 <&scif_clk>;
478 clock-names = "fck", "brg_int", "scif_clk"; 492 clock-names = "fck", "brg_int", "scif_clk";
479 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>; 493 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
480 dma-names = "tx", "rx"; 494 <&dmac1 0xfb>, <&dmac1 0xfc>;
495 dma-names = "tx", "rx", "tx", "rx";
481 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 496 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
482 status = "disabled"; 497 status = "disabled";
483 }; 498 };
@@ -490,8 +505,9 @@
490 clocks = <&mstp7_clks R8A7794_CLK_SCIF5>, <&zs_clk>, 505 clocks = <&mstp7_clks R8A7794_CLK_SCIF5>, <&zs_clk>,
491 <&scif_clk>; 506 <&scif_clk>;
492 clock-names = "fck", "brg_int", "scif_clk"; 507 clock-names = "fck", "brg_int", "scif_clk";
493 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>; 508 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
494 dma-names = "tx", "rx"; 509 <&dmac1 0xfd>, <&dmac1 0xfe>;
510 dma-names = "tx", "rx", "tx", "rx";
495 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 511 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
496 status = "disabled"; 512 status = "disabled";
497 }; 513 };
@@ -504,8 +520,9 @@
504 clocks = <&mstp7_clks R8A7794_CLK_HSCIF0>, <&zs_clk>, 520 clocks = <&mstp7_clks R8A7794_CLK_HSCIF0>, <&zs_clk>,
505 <&scif_clk>; 521 <&scif_clk>;
506 clock-names = "fck", "brg_int", "scif_clk"; 522 clock-names = "fck", "brg_int", "scif_clk";
507 dmas = <&dmac0 0x39>, <&dmac0 0x3a>; 523 dmas = <&dmac0 0x39>, <&dmac0 0x3a>,
508 dma-names = "tx", "rx"; 524 <&dmac1 0x39>, <&dmac1 0x3a>;
525 dma-names = "tx", "rx", "tx", "rx";
509 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 526 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
510 status = "disabled"; 527 status = "disabled";
511 }; 528 };
@@ -518,8 +535,9 @@
518 clocks = <&mstp7_clks R8A7794_CLK_HSCIF1>, <&zs_clk>, 535 clocks = <&mstp7_clks R8A7794_CLK_HSCIF1>, <&zs_clk>,
519 <&scif_clk>; 536 <&scif_clk>;
520 clock-names = "fck", "brg_int", "scif_clk"; 537 clock-names = "fck", "brg_int", "scif_clk";
521 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>; 538 dmas = <&dmac0 0x4d>, <&dmac0 0x4e>,
522 dma-names = "tx", "rx"; 539 <&dmac1 0x4d>, <&dmac1 0x4e>;
540 dma-names = "tx", "rx", "tx", "rx";
523 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 541 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
524 status = "disabled"; 542 status = "disabled";
525 }; 543 };
@@ -532,8 +550,9 @@
532 clocks = <&mstp7_clks R8A7794_CLK_HSCIF2>, <&zs_clk>, 550 clocks = <&mstp7_clks R8A7794_CLK_HSCIF2>, <&zs_clk>,
533 <&scif_clk>; 551 <&scif_clk>;
534 clock-names = "fck", "brg_int", "scif_clk"; 552 clock-names = "fck", "brg_int", "scif_clk";
535 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>; 553 dmas = <&dmac0 0x3b>, <&dmac0 0x3c>,
536 dma-names = "tx", "rx"; 554 <&dmac1 0x3b>, <&dmac1 0x3c>;
555 dma-names = "tx", "rx", "tx", "rx";
537 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 556 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
538 status = "disabled"; 557 status = "disabled";
539 }; 558 };
@@ -640,8 +659,9 @@
640 reg = <0 0xe6500000 0 0x425>; 659 reg = <0 0xe6500000 0 0x425>;
641 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>; 660 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
642 clocks = <&mstp3_clks R8A7794_CLK_IIC0>; 661 clocks = <&mstp3_clks R8A7794_CLK_IIC0>;
643 dmas = <&dmac0 0x61>, <&dmac0 0x62>; 662 dmas = <&dmac0 0x61>, <&dmac0 0x62>,
644 dma-names = "tx", "rx"; 663 <&dmac1 0x61>, <&dmac1 0x62>;
664 dma-names = "tx", "rx", "tx", "rx";
645 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 665 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
646 #address-cells = <1>; 666 #address-cells = <1>;
647 #size-cells = <0>; 667 #size-cells = <0>;
@@ -653,8 +673,9 @@
653 reg = <0 0xe6510000 0 0x425>; 673 reg = <0 0xe6510000 0 0x425>;
654 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>; 674 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
655 clocks = <&mstp3_clks R8A7794_CLK_IIC1>; 675 clocks = <&mstp3_clks R8A7794_CLK_IIC1>;
656 dmas = <&dmac0 0x65>, <&dmac0 0x66>; 676 dmas = <&dmac0 0x65>, <&dmac0 0x66>,
657 dma-names = "tx", "rx"; 677 <&dmac1 0x65>, <&dmac1 0x66>;
678 dma-names = "tx", "rx", "tx", "rx";
658 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 679 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
659 #address-cells = <1>; 680 #address-cells = <1>;
660 #size-cells = <0>; 681 #size-cells = <0>;
@@ -666,8 +687,9 @@
666 reg = <0 0xee200000 0 0x80>; 687 reg = <0 0xee200000 0 0x80>;
667 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>; 688 interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
668 clocks = <&mstp3_clks R8A7794_CLK_MMCIF0>; 689 clocks = <&mstp3_clks R8A7794_CLK_MMCIF0>;
669 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>; 690 dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
670 dma-names = "tx", "rx"; 691 <&dmac1 0xd1>, <&dmac1 0xd2>;
692 dma-names = "tx", "rx", "tx", "rx";
671 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 693 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
672 reg-io-width = <4>; 694 reg-io-width = <4>;
673 status = "disabled"; 695 status = "disabled";
@@ -678,6 +700,9 @@
678 reg = <0 0xee100000 0 0x200>; 700 reg = <0 0xee100000 0 0x200>;
679 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>; 701 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
680 clocks = <&mstp3_clks R8A7794_CLK_SDHI0>; 702 clocks = <&mstp3_clks R8A7794_CLK_SDHI0>;
703 dmas = <&dmac0 0xcd>, <&dmac0 0xce>,
704 <&dmac1 0xcd>, <&dmac1 0xce>;
705 dma-names = "tx", "rx", "tx", "rx";
681 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 706 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
682 status = "disabled"; 707 status = "disabled";
683 }; 708 };
@@ -687,6 +712,9 @@
687 reg = <0 0xee140000 0 0x100>; 712 reg = <0 0xee140000 0 0x100>;
688 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>; 713 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
689 clocks = <&mstp3_clks R8A7794_CLK_SDHI1>; 714 clocks = <&mstp3_clks R8A7794_CLK_SDHI1>;
715 dmas = <&dmac0 0xc1>, <&dmac0 0xc2>,
716 <&dmac1 0xc1>, <&dmac1 0xc2>;
717 dma-names = "tx", "rx", "tx", "rx";
690 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 718 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
691 status = "disabled"; 719 status = "disabled";
692 }; 720 };
@@ -696,6 +724,9 @@
696 reg = <0 0xee160000 0 0x100>; 724 reg = <0 0xee160000 0 0x100>;
697 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>; 725 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
698 clocks = <&mstp3_clks R8A7794_CLK_SDHI2>; 726 clocks = <&mstp3_clks R8A7794_CLK_SDHI2>;
727 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
728 <&dmac1 0xd3>, <&dmac1 0xd4>;
729 dma-names = "tx", "rx", "tx", "rx";
699 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 730 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
700 status = "disabled"; 731 status = "disabled";
701 }; 732 };
@@ -705,8 +736,9 @@
705 reg = <0 0xe6b10000 0 0x2c>; 736 reg = <0 0xe6b10000 0 0x2c>;
706 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>; 737 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
707 clocks = <&mstp9_clks R8A7794_CLK_QSPI_MOD>; 738 clocks = <&mstp9_clks R8A7794_CLK_QSPI_MOD>;
708 dmas = <&dmac0 0x17>, <&dmac0 0x18>; 739 dmas = <&dmac0 0x17>, <&dmac0 0x18>,
709 dma-names = "tx", "rx"; 740 <&dmac1 0x17>, <&dmac1 0x18>;
741 dma-names = "tx", "rx", "tx", "rx";
710 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>; 742 power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
711 num-cs = <1>; 743 num-cs = <1>;
712 #address-cells = <1>; 744 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/rk3228-evb.dts b/arch/arm/boot/dts/rk3228-evb.dts
index 5956e8246abe..904668e2e666 100644
--- a/arch/arm/boot/dts/rk3228-evb.dts
+++ b/arch/arm/boot/dts/rk3228-evb.dts
@@ -40,7 +40,7 @@
40 40
41/dts-v1/; 41/dts-v1/;
42 42
43#include "rk3228.dtsi" 43#include "rk322x.dtsi"
44 44
45/ { 45/ {
46 model = "Rockchip RK3228 Evaluation board"; 46 model = "Rockchip RK3228 Evaluation board";
diff --git a/arch/arm/boot/dts/rk3229-evb.dts b/arch/arm/boot/dts/rk3229-evb.dts
new file mode 100644
index 000000000000..b6a12035a6bb
--- /dev/null
+++ b/arch/arm/boot/dts/rk3229-evb.dts
@@ -0,0 +1,90 @@
1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 * a) This file is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation; either version 2 of the
10 * License, or (at your option) any later version.
11 *
12 * This file is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 * b) Permission is hereby granted, free of charge, to any person
20 * obtaining a copy of this software and associated documentation
21 * files (the "Software"), to deal in the Software without
22 * restriction, including without limitation the rights to use,
23 * copy, modify, merge, publish, distribute, sublicense, and/or
24 * sell copies of the Software, and to permit persons to whom the
25 * Software is furnished to do so, subject to the following
26 * conditions:
27 *
28 * The above copyright notice and this permission notice shall be
29 * included in all copies or substantial portions of the Software.
30 *
31 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 * OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41/dts-v1/;
42
43#include "rk322x.dtsi"
44
45/ {
46 model = "Rockchip RK3229 Evaluation board";
47 compatible = "rockchip,rk3229-evb", "rockchip,rk3229";
48
49 memory {
50 device_type = "memory";
51 reg = <0x60000000 0x40000000>;
52 };
53
54 ext_gmac: ext_gmac {
55 compatible = "fixed-clock";
56 clock-frequency = <125000000>;
57 clock-output-names = "ext_gmac";
58 #clock-cells = <0>;
59 };
60
61 vcc_phy: vcc-phy-regulator {
62 compatible = "regulator-fixed";
63 enable-active-high;
64 regulator-name = "vcc_phy";
65 regulator-min-microvolt = <1800000>;
66 regulator-max-microvolt = <1800000>;
67 regulator-always-on;
68 regulator-boot-on;
69 };
70};
71
72&gmac {
73 assigned-clocks = <&cru SCLK_MAC_EXTCLK>, <&cru SCLK_MAC>;
74 assigned-clock-parents = <&ext_gmac>, <&cru SCLK_MAC_EXTCLK>;
75 clock_in_out = "input";
76 phy-supply = <&vcc_phy>;
77 phy-mode = "rgmii";
78 pinctrl-names = "default";
79 pinctrl-0 = <&rgmii_pins>;
80 snps,reset-gpio = <&gpio2 24 GPIO_ACTIVE_LOW>;
81 snps,reset-active-low;
82 snps,reset-delays-us = <0 10000 1000000>;
83 tx_delay = <0x30>;
84 rx_delay = <0x10>;
85 status = "okay";
86};
87
88&uart2 {
89 status = "okay";
90};
diff --git a/arch/arm/boot/dts/rk3228.dtsi b/arch/arm/boot/dts/rk322x.dtsi
index e23a22e29155..9e6bf0e311bb 100644
--- a/arch/arm/boot/dts/rk3228.dtsi
+++ b/arch/arm/boot/dts/rk322x.dtsi
@@ -47,8 +47,6 @@
47#include "skeleton.dtsi" 47#include "skeleton.dtsi"
48 48
49/ { 49/ {
50 compatible = "rockchip,rk3228";
51
52 interrupt-parent = <&gic>; 50 interrupt-parent = <&gic>;
53 51
54 aliases { 52 aliases {
@@ -140,6 +138,47 @@
140 #clock-cells = <0>; 138 #clock-cells = <0>;
141 }; 139 };
142 140
141 i2s1: i2s1@100b0000 {
142 compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
143 reg = <0x100b0000 0x4000>;
144 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
145 #address-cells = <1>;
146 #size-cells = <0>;
147 clock-names = "i2s_clk", "i2s_hclk";
148 clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
149 dmas = <&pdma 14>, <&pdma 15>;
150 dma-names = "tx", "rx";
151 pinctrl-names = "default";
152 pinctrl-0 = <&i2s1_bus>;
153 status = "disabled";
154 };
155
156 i2s0: i2s0@100c0000 {
157 compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
158 reg = <0x100c0000 0x4000>;
159 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
160 #address-cells = <1>;
161 #size-cells = <0>;
162 clock-names = "i2s_clk", "i2s_hclk";
163 clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>;
164 dmas = <&pdma 11>, <&pdma 12>;
165 dma-names = "tx", "rx";
166 status = "disabled";
167 };
168
169 i2s2: i2s2@100e0000 {
170 compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
171 reg = <0x100e0000 0x4000>;
172 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
173 #address-cells = <1>;
174 #size-cells = <0>;
175 clock-names = "i2s_clk", "i2s_hclk";
176 clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>;
177 dmas = <&pdma 0>, <&pdma 1>;
178 dma-names = "tx", "rx";
179 status = "disabled";
180 };
181
143 grf: syscon@11000000 { 182 grf: syscon@11000000 {
144 compatible = "syscon"; 183 compatible = "syscon";
145 reg = <0x11000000 0x1000>; 184 reg = <0x11000000 0x1000>;
@@ -376,6 +415,25 @@
376 status = "disabled"; 415 status = "disabled";
377 }; 416 };
378 417
418 gmac: ethernet@30200000 {
419 compatible = "rockchip,rk3228-gmac";
420 reg = <0x30200000 0x10000>;
421 interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
422 interrupt-names = "macirq";
423 clocks = <&cru SCLK_MAC>, <&cru SCLK_MAC_RX>,
424 <&cru SCLK_MAC_TX>, <&cru SCLK_MAC_REF>,
425 <&cru SCLK_MAC_REFOUT>, <&cru ACLK_GMAC>,
426 <&cru PCLK_GMAC>;
427 clock-names = "stmmaceth", "mac_clk_rx",
428 "mac_clk_tx", "clk_mac_ref",
429 "clk_mac_refout", "aclk_mac",
430 "pclk_mac";
431 resets = <&cru SRST_GMAC>;
432 reset-names = "stmmaceth";
433 rockchip,grf = <&grf>;
434 status = "disabled";
435 };
436
379 gic: interrupt-controller@32010000 { 437 gic: interrupt-controller@32010000 {
380 compatible = "arm,gic-400"; 438 compatible = "arm,gic-400";
381 interrupt-controller; 439 interrupt-controller;
@@ -460,6 +518,10 @@
460 bias-disable; 518 bias-disable;
461 }; 519 };
462 520
521 pcfg_pull_none_drv_12ma: pcfg-pull-none-drv-12ma {
522 drive-strength = <12>;
523 };
524
463 emmc { 525 emmc {
464 emmc_clk: emmc-clk { 526 emmc_clk: emmc-clk {
465 rockchip,pins = <2 7 RK_FUNC_2 &pcfg_pull_none>; 527 rockchip,pins = <2 7 RK_FUNC_2 &pcfg_pull_none>;
@@ -481,6 +543,44 @@
481 }; 543 };
482 }; 544 };
483 545
546 gmac {
547 rgmii_pins: rgmii-pins {
548 rockchip,pins = <2 14 RK_FUNC_1 &pcfg_pull_none>,
549 <2 12 RK_FUNC_1 &pcfg_pull_none>,
550 <2 25 RK_FUNC_1 &pcfg_pull_none>,
551 <2 19 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
552 <2 18 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
553 <2 22 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
554 <2 23 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
555 <2 9 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
556 <2 13 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
557 <2 17 RK_FUNC_1 &pcfg_pull_none>,
558 <2 16 RK_FUNC_1 &pcfg_pull_none>,
559 <2 21 RK_FUNC_2 &pcfg_pull_none>,
560 <2 20 RK_FUNC_2 &pcfg_pull_none>,
561 <2 11 RK_FUNC_1 &pcfg_pull_none>,
562 <2 8 RK_FUNC_1 &pcfg_pull_none>;
563 };
564
565 rmii_pins: rmii-pins {
566 rockchip,pins = <2 14 RK_FUNC_1 &pcfg_pull_none>,
567 <2 12 RK_FUNC_1 &pcfg_pull_none>,
568 <2 25 RK_FUNC_1 &pcfg_pull_none>,
569 <2 19 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
570 <2 18 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
571 <2 13 RK_FUNC_1 &pcfg_pull_none_drv_12ma>,
572 <2 17 RK_FUNC_1 &pcfg_pull_none>,
573 <2 16 RK_FUNC_1 &pcfg_pull_none>,
574 <2 8 RK_FUNC_1 &pcfg_pull_none>,
575 <2 15 RK_FUNC_1 &pcfg_pull_none>;
576 };
577
578 phy_pins: phy-pins {
579 rockchip,pins = <2 14 RK_FUNC_2 &pcfg_pull_none>,
580 <2 8 RK_FUNC_2 &pcfg_pull_none>;
581 };
582 };
583
484 i2c0 { 584 i2c0 {
485 i2c0_xfer: i2c0-xfer { 585 i2c0_xfer: i2c0-xfer {
486 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>, 586 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>,
@@ -509,6 +609,20 @@
509 }; 609 };
510 }; 610 };
511 611
612 i2s1 {
613 i2s1_bus: i2s1-bus {
614 rockchip,pins = <0 8 RK_FUNC_1 &pcfg_pull_none>,
615 <0 9 RK_FUNC_1 &pcfg_pull_none>,
616 <0 11 RK_FUNC_1 &pcfg_pull_none>,
617 <0 12 RK_FUNC_1 &pcfg_pull_none>,
618 <0 13 RK_FUNC_1 &pcfg_pull_none>,
619 <0 14 RK_FUNC_1 &pcfg_pull_none>,
620 <1 2 RK_FUNC_1 &pcfg_pull_none>,
621 <1 4 RK_FUNC_1 &pcfg_pull_none>,
622 <1 5 RK_FUNC_1 &pcfg_pull_none>;
623 };
624 };
625
512 pwm0 { 626 pwm0 {
513 pwm0_pin: pwm0-pin { 627 pwm0_pin: pwm0-pin {
514 rockchip,pins = <3 21 RK_FUNC_1 &pcfg_pull_none>; 628 rockchip,pins = <3 21 RK_FUNC_1 &pcfg_pull_none>;
diff --git a/arch/arm/boot/dts/rk3288-firefly.dtsi b/arch/arm/boot/dts/rk3288-firefly.dtsi
index d6cf9ada13c9..114c90fb65e2 100644
--- a/arch/arm/boot/dts/rk3288-firefly.dtsi
+++ b/arch/arm/boot/dts/rk3288-firefly.dtsi
@@ -64,22 +64,6 @@
64 clock-output-names = "ext_gmac"; 64 clock-output-names = "ext_gmac";
65 }; 65 };
66 66
67 io_domains: io-domains {
68 compatible = "rockchip,rk3288-io-voltage-domain";
69 rockchip,grf = <&grf>;
70
71 audio-supply = <&vcca_33>;
72 bb-supply = <&vcc_io>;
73 dvp-supply = <&dovdd_1v8>;
74 flash0-supply = <&vcc_flash>;
75 flash1-supply = <&vcc_lan>;
76 gpio30-supply = <&vcc_io>;
77 gpio1830-supply = <&vcc_io>;
78 lcdc-supply = <&vcc_io>;
79 sdcard-supply = <&vccio_sd>;
80 wifi-supply = <&vccio_wl>;
81 };
82
83 ir: ir-receiver { 67 ir: ir-receiver {
84 compatible = "gpio-ir-receiver"; 68 compatible = "gpio-ir-receiver";
85 pinctrl-names = "default"; 69 pinctrl-names = "default";
@@ -397,6 +381,21 @@
397 status = "okay"; 381 status = "okay";
398}; 382};
399 383
384&io_domains {
385 status = "okay";
386
387 audio-supply = <&vcca_33>;
388 bb-supply = <&vcc_io>;
389 dvp-supply = <&dovdd_1v8>;
390 flash0-supply = <&vcc_flash>;
391 flash1-supply = <&vcc_lan>;
392 gpio30-supply = <&vcc_io>;
393 gpio1830-supply = <&vcc_io>;
394 lcdc-supply = <&vcc_io>;
395 sdcard-supply = <&vccio_sd>;
396 wifi-supply = <&vccio_wl>;
397};
398
400&pinctrl { 399&pinctrl {
401 pcfg_output_high: pcfg-output-high { 400 pcfg_output_high: pcfg-output-high {
402 output-high; 401 output-high;
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
index 8643103d8cd8..24488421f0f0 100644
--- a/arch/arm/boot/dts/rk3288-miqi.dts
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
@@ -64,19 +64,6 @@
64 clock-output-names = "ext_gmac"; 64 clock-output-names = "ext_gmac";
65 }; 65 };
66 66
67 io_domains: io-domains {
68 compatible = "rockchip,rk3288-io-voltage-domain";
69
70 audio-supply = <&vcca_33>;
71 flash0-supply = <&vcc_flash>;
72 flash1-supply = <&vcc_lan>;
73 gpio30-supply = <&vcc_io>;
74 gpio1830-supply = <&vcc_io>;
75 lcdc-supply = <&vcc_io>;
76 sdcard-supply = <&vccio_sd>;
77 wifi-supply = <&vcc_18>;
78 };
79
80 leds { 67 leds {
81 compatible = "gpio-leds"; 68 compatible = "gpio-leds";
82 69
@@ -321,6 +308,19 @@
321 status = "okay"; 308 status = "okay";
322}; 309};
323 310
311&io_domains {
312 status = "okay";
313
314 audio-supply = <&vcca_33>;
315 flash0-supply = <&vcc_flash>;
316 flash1-supply = <&vcc_lan>;
317 gpio30-supply = <&vcc_io>;
318 gpio1830-supply = <&vcc_io>;
319 lcdc-supply = <&vcc_io>;
320 sdcard-supply = <&vccio_sd>;
321 wifi-supply = <&vcc_18>;
322};
323
324&pinctrl { 324&pinctrl {
325 pcfg_output_high: pcfg-output-high { 325 pcfg_output_high: pcfg-output-high {
326 output-high; 326 output-high;
diff --git a/arch/arm/boot/dts/rk3288-popmetal.dts b/arch/arm/boot/dts/rk3288-popmetal.dts
index 720717bb3614..dda8d259bb6d 100644
--- a/arch/arm/boot/dts/rk3288-popmetal.dts
+++ b/arch/arm/boot/dts/rk3288-popmetal.dts
@@ -77,22 +77,6 @@
77 }; 77 };
78 }; 78 };
79 79
80 io_domains: io-domains {
81 compatible = "rockchip,rk3288-io-voltage-domain";
82 rockchip,grf = <&grf>;
83
84 audio-supply = <&vcca_33>;
85 bb-supply = <&vcc_io>;
86 dvp-supply = <&vcc18_dvp>;
87 flash0-supply = <&vcc_flash>;
88 flash1-supply = <&vcc_lan>;
89 gpio30-supply = <&vcc_io>;
90 gpio1830-supply = <&vcc_io>;
91 lcdc-supply = <&vcc_io>;
92 sdcard-supply = <&vccio_sd>;
93 wifi-supply = <&vccio_wl>;
94 };
95
96 ir: ir-receiver { 80 ir: ir-receiver {
97 compatible = "gpio-ir-receiver"; 81 compatible = "gpio-ir-receiver";
98 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>; 82 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
@@ -437,6 +421,21 @@
437 status = "okay"; 421 status = "okay";
438}; 422};
439 423
424&io_domains {
425 status = "okay";
426
427 audio-supply = <&vcca_33>;
428 bb-supply = <&vcc_io>;
429 dvp-supply = <&vcc18_dvp>;
430 flash0-supply = <&vcc_flash>;
431 flash1-supply = <&vcc_lan>;
432 gpio30-supply = <&vcc_io>;
433 gpio1830-supply = <&vcc_io>;
434 lcdc-supply = <&vcc_io>;
435 sdcard-supply = <&vccio_sd>;
436 wifi-supply = <&vccio_wl>;
437};
438
440&pinctrl { 439&pinctrl {
441 ak8963 { 440 ak8963 {
442 comp_int: comp-int { 441 comp_int: comp-int {
diff --git a/arch/arm/boot/dts/rk3288-rock2-som.dtsi b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
index e1ee9f949035..bb1f01e037ba 100644
--- a/arch/arm/boot/dts/rk3288-rock2-som.dtsi
+++ b/arch/arm/boot/dts/rk3288-rock2-som.dtsi
@@ -61,22 +61,6 @@
61 clock-output-names = "ext_gmac"; 61 clock-output-names = "ext_gmac";
62 }; 62 };
63 63
64 io_domains: io-domains {
65 compatible = "rockchip,rk3288-io-voltage-domain";
66 rockchip,grf = <&grf>;
67
68 audio-supply = <&vcc_io>;
69 bb-supply = <&vcc_io>;
70 dvp-supply = <&vcc_18>;
71 flash0-supply = <&vcc_flash>;
72 flash1-supply = <&vccio_pmu>;
73 gpio30-supply = <&vccio_pmu>;
74 gpio1830 = <&vcc_io>;
75 lcdc-supply = <&vcc_io>;
76 sdcard-supply = <&vccio_sd>;
77 wifi-supply = <&vcc_18>;
78 };
79
80 vcc_flash: flash-regulator { 64 vcc_flash: flash-regulator {
81 compatible = "regulator-fixed"; 65 compatible = "regulator-fixed";
82 regulator-name = "vcc_sys"; 66 regulator-name = "vcc_sys";
@@ -259,6 +243,21 @@
259 }; 243 };
260}; 244};
261 245
246&io_domains {
247 status = "okay";
248
249 audio-supply = <&vcc_io>;
250 bb-supply = <&vcc_io>;
251 dvp-supply = <&vcc_18>;
252 flash0-supply = <&vcc_flash>;
253 flash1-supply = <&vccio_pmu>;
254 gpio30-supply = <&vccio_pmu>;
255 gpio1830 = <&vcc_io>;
256 lcdc-supply = <&vcc_io>;
257 sdcard-supply = <&vccio_sd>;
258 wifi-supply = <&vcc_18>;
259};
260
262&pinctrl { 261&pinctrl {
263 pcfg_output_high: pcfg-output-high { 262 pcfg_output_high: pcfg-output-high {
264 output-high; 263 output-high;
diff --git a/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi b/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
new file mode 100644
index 000000000000..6d105914a4f3
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi
@@ -0,0 +1,101 @@
1/*
2 * Google Veyron (and derivatives) fragment for the max98090 audio
3 * codec and analog headphone jack.
4 *
5 * Copyright 2016 Google, Inc
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 sound {
14 compatible = "rockchip,rockchip-audio-max98090";
15 pinctrl-names = "default";
16 pinctrl-0 = <&mic_det>, <&hp_det>;
17 rockchip,model = "VEYRON-I2S";
18 rockchip,i2s-controller = <&i2s>;
19 rockchip,audio-codec = <&max98090>;
20 rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>;
21 rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
22 rockchip,headset-codec = <&headsetcodec>;
23 };
24};
25
26&i2c2 {
27 max98090: max98090@10 {
28 compatible = "maxim,max98090";
29 reg = <0x10>;
30 interrupt-parent = <&gpio6>;
31 interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
32 clock-names = "mclk";
33 clocks = <&cru SCLK_I2S0_OUT>;
34 pinctrl-names = "default";
35 pinctrl-0 = <&int_codec>;
36 };
37};
38
39&i2c4 {
40 headsetcodec: ts3a227e@3b {
41 compatible = "ti,ts3a227e";
42 reg = <0x3b>;
43 interrupt-parent = <&gpio0>;
44 interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
45 pinctrl-names = "default";
46 pinctrl-0 = <&ts3a227e_int_l>;
47 ti,micbias = <7>; /* MICBIAS = 2.8V */
48 };
49};
50
51&i2s {
52 status = "okay";
53};
54
55&io_domains {
56 audio-supply = <&vcc18_codec>;
57};
58
59&rk808 {
60 vcc10-supply = <&vcc33_sys>;
61
62 regulators {
63 vcc18_codec: LDO_REG6 {
64 regulator-name = "vcc18_codec";
65 regulator-always-on;
66 regulator-boot-on;
67 regulator-min-microvolt = <1800000>;
68 regulator-max-microvolt = <1800000>;
69 regulator-state-mem {
70 regulator-off-in-suspend;
71 };
72 };
73 };
74};
75
76&pinctrl {
77 codec {
78 hp_det: hp-det {
79 rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>;
80 };
81
82 /*
83 * HACK: We're going to _pull down_ this _active low_ interrupt
84 * so that it never fires. We don't need this interrupt because
85 * we've got a ts3a227e chip but the driver requires it.
86 */
87 int_codec: int-codec {
88 rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_down>;
89 };
90
91 mic_det: mic-det {
92 rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>;
93 };
94 };
95
96 headset {
97 ts3a227e_int_l: ts3a227e-int-l {
98 rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>;
99 };
100 };
101};
diff --git a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
index 2958c36d12a0..ce1f87980bcb 100644
--- a/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi
@@ -46,6 +46,7 @@
46#include <dt-bindings/clock/rockchip,rk808.h> 46#include <dt-bindings/clock/rockchip,rk808.h>
47#include <dt-bindings/input/input.h> 47#include <dt-bindings/input/input.h>
48#include "rk3288-veyron.dtsi" 48#include "rk3288-veyron.dtsi"
49#include "rk3288-veyron-analog-audio.dtsi"
49#include "rk3288-veyron-sdmmc.dtsi" 50#include "rk3288-veyron-sdmmc.dtsi"
50 51
51/ { 52/ {
diff --git a/arch/arm/boot/dts/rk3288-veyron.dtsi b/arch/arm/boot/dts/rk3288-veyron.dtsi
index b2557bf5a58f..3dd2cca48c11 100644
--- a/arch/arm/boot/dts/rk3288-veyron.dtsi
+++ b/arch/arm/boot/dts/rk3288-veyron.dtsi
@@ -83,19 +83,6 @@
83 reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>; 83 reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
84 }; 84 };
85 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 { 86 sdio_pwrseq: sdio-pwrseq {
100 compatible = "mmc-pwrseq-simple"; 87 compatible = "mmc-pwrseq-simple";
101 clocks = <&rk808 RK808_CLKOUT1>; 88 clocks = <&rk808 RK808_CLKOUT1>;
@@ -355,6 +342,18 @@
355 i2c-scl-rising-time-ns = <1000>; 342 i2c-scl-rising-time-ns = <1000>;
356}; 343};
357 344
345&io_domains {
346 status = "okay";
347
348 bb-supply = <&vcc33_io>;
349 dvp-supply = <&vcc_18>;
350 flash0-supply = <&vcc18_flashio>;
351 gpio1830-supply = <&vcc33_io>;
352 gpio30-supply = <&vcc33_io>;
353 lcdc-supply = <&vcc33_lcd>;
354 wifi-supply = <&vcc18_wl>;
355};
356
358&pwm1 { 357&pwm1 {
359 status = "okay"; 358 status = "okay";
360}; 359};
@@ -383,6 +382,12 @@
383 status = "okay"; 382 status = "okay";
384 383
385 rx-sample-delay-ns = <12>; 384 rx-sample-delay-ns = <12>;
385
386 flash@0 {
387 compatible = "jedec,spi-nor";
388 spi-max-frequency = <50000000>;
389 reg = <0>;
390 };
386}; 391};
387 392
388&tsadc { 393&tsadc {
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 3ebee530f2b0..cd33f0170890 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -827,6 +827,11 @@
827 #phy-cells = <0>; 827 #phy-cells = <0>;
828 status = "disabled"; 828 status = "disabled";
829 }; 829 };
830
831 io_domains: io-domains {
832 compatible = "rockchip,rk3288-io-voltage-domain";
833 status = "disabled";
834 };
830 }; 835 };
831 836
832 wdt: watchdog@ff800000 { 837 wdt: watchdog@ff800000 {
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 5dd2734e67ba..353d0e5ec83b 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -72,6 +72,11 @@
72 }; 72 };
73 }; 73 };
74 74
75 pmu {
76 compatible = "arm,cortex-a5-pmu";
77 interrupts = <2 IRQ_TYPE_LEVEL_HIGH 0>;
78 };
79
75 memory { 80 memory {
76 reg = <0x20000000 0x20000000>; 81 reg = <0x20000000 0x20000000>;
77 }; 82 };
@@ -112,13 +117,13 @@
112 clock-names = "pclk", "hclk"; 117 clock-names = "pclk", "hclk";
113 status = "disabled"; 118 status = "disabled";
114 119
115 ep0 { 120 ep@0 {
116 reg = <0>; 121 reg = <0>;
117 atmel,fifo-size = <64>; 122 atmel,fifo-size = <64>;
118 atmel,nb-banks = <1>; 123 atmel,nb-banks = <1>;
119 }; 124 };
120 125
121 ep1 { 126 ep@1 {
122 reg = <1>; 127 reg = <1>;
123 atmel,fifo-size = <1024>; 128 atmel,fifo-size = <1024>;
124 atmel,nb-banks = <3>; 129 atmel,nb-banks = <3>;
@@ -126,7 +131,7 @@
126 atmel,can-isoc; 131 atmel,can-isoc;
127 }; 132 };
128 133
129 ep2 { 134 ep@2 {
130 reg = <2>; 135 reg = <2>;
131 atmel,fifo-size = <1024>; 136 atmel,fifo-size = <1024>;
132 atmel,nb-banks = <3>; 137 atmel,nb-banks = <3>;
@@ -134,7 +139,7 @@
134 atmel,can-isoc; 139 atmel,can-isoc;
135 }; 140 };
136 141
137 ep3 { 142 ep@3 {
138 reg = <3>; 143 reg = <3>;
139 atmel,fifo-size = <1024>; 144 atmel,fifo-size = <1024>;
140 atmel,nb-banks = <2>; 145 atmel,nb-banks = <2>;
@@ -142,7 +147,7 @@
142 atmel,can-isoc; 147 atmel,can-isoc;
143 }; 148 };
144 149
145 ep4 { 150 ep@4 {
146 reg = <4>; 151 reg = <4>;
147 atmel,fifo-size = <1024>; 152 atmel,fifo-size = <1024>;
148 atmel,nb-banks = <2>; 153 atmel,nb-banks = <2>;
@@ -150,7 +155,7 @@
150 atmel,can-isoc; 155 atmel,can-isoc;
151 }; 156 };
152 157
153 ep5 { 158 ep@5 {
154 reg = <5>; 159 reg = <5>;
155 atmel,fifo-size = <1024>; 160 atmel,fifo-size = <1024>;
156 atmel,nb-banks = <2>; 161 atmel,nb-banks = <2>;
@@ -158,7 +163,7 @@
158 atmel,can-isoc; 163 atmel,can-isoc;
159 }; 164 };
160 165
161 ep6 { 166 ep@6 {
162 reg = <6>; 167 reg = <6>;
163 atmel,fifo-size = <1024>; 168 atmel,fifo-size = <1024>;
164 atmel,nb-banks = <2>; 169 atmel,nb-banks = <2>;
@@ -166,7 +171,7 @@
166 atmel,can-isoc; 171 atmel,can-isoc;
167 }; 172 };
168 173
169 ep7 { 174 ep@7 {
170 reg = <7>; 175 reg = <7>;
171 atmel,fifo-size = <1024>; 176 atmel,fifo-size = <1024>;
172 atmel,nb-banks = <2>; 177 atmel,nb-banks = <2>;
@@ -174,56 +179,56 @@
174 atmel,can-isoc; 179 atmel,can-isoc;
175 }; 180 };
176 181
177 ep8 { 182 ep@8 {
178 reg = <8>; 183 reg = <8>;
179 atmel,fifo-size = <1024>; 184 atmel,fifo-size = <1024>;
180 atmel,nb-banks = <2>; 185 atmel,nb-banks = <2>;
181 atmel,can-isoc; 186 atmel,can-isoc;
182 }; 187 };
183 188
184 ep9 { 189 ep@9 {
185 reg = <9>; 190 reg = <9>;
186 atmel,fifo-size = <1024>; 191 atmel,fifo-size = <1024>;
187 atmel,nb-banks = <2>; 192 atmel,nb-banks = <2>;
188 atmel,can-isoc; 193 atmel,can-isoc;
189 }; 194 };
190 195
191 ep10 { 196 ep@10 {
192 reg = <10>; 197 reg = <10>;
193 atmel,fifo-size = <1024>; 198 atmel,fifo-size = <1024>;
194 atmel,nb-banks = <2>; 199 atmel,nb-banks = <2>;
195 atmel,can-isoc; 200 atmel,can-isoc;
196 }; 201 };
197 202
198 ep11 { 203 ep@11 {
199 reg = <11>; 204 reg = <11>;
200 atmel,fifo-size = <1024>; 205 atmel,fifo-size = <1024>;
201 atmel,nb-banks = <2>; 206 atmel,nb-banks = <2>;
202 atmel,can-isoc; 207 atmel,can-isoc;
203 }; 208 };
204 209
205 ep12 { 210 ep@12 {
206 reg = <12>; 211 reg = <12>;
207 atmel,fifo-size = <1024>; 212 atmel,fifo-size = <1024>;
208 atmel,nb-banks = <2>; 213 atmel,nb-banks = <2>;
209 atmel,can-isoc; 214 atmel,can-isoc;
210 }; 215 };
211 216
212 ep13 { 217 ep@13 {
213 reg = <13>; 218 reg = <13>;
214 atmel,fifo-size = <1024>; 219 atmel,fifo-size = <1024>;
215 atmel,nb-banks = <2>; 220 atmel,nb-banks = <2>;
216 atmel,can-isoc; 221 atmel,can-isoc;
217 }; 222 };
218 223
219 ep14 { 224 ep@14 {
220 reg = <14>; 225 reg = <14>;
221 atmel,fifo-size = <1024>; 226 atmel,fifo-size = <1024>;
222 atmel,nb-banks = <2>; 227 atmel,nb-banks = <2>;
223 atmel,can-isoc; 228 atmel,can-isoc;
224 }; 229 };
225 230
226 ep15 { 231 ep@15 {
227 reg = <15>; 232 reg = <15>;
228 atmel,fifo-size = <1024>; 233 atmel,fifo-size = <1024>;
229 atmel,nb-banks = <2>; 234 atmel,nb-banks = <2>;
diff --git a/arch/arm/boot/dts/sama5d3.dtsi b/arch/arm/boot/dts/sama5d3.dtsi
index 36301bd9a14a..4c84d333fc7e 100644
--- a/arch/arm/boot/dts/sama5d3.dtsi
+++ b/arch/arm/boot/dts/sama5d3.dtsi
@@ -326,26 +326,22 @@
326 atmel,adc-res-names = "lowres", "highres"; 326 atmel,adc-res-names = "lowres", "highres";
327 status = "disabled"; 327 status = "disabled";
328 328
329 trigger@0 { 329 trigger0 {
330 reg = <0>;
331 trigger-name = "external-rising"; 330 trigger-name = "external-rising";
332 trigger-value = <0x1>; 331 trigger-value = <0x1>;
333 trigger-external; 332 trigger-external;
334 }; 333 };
335 trigger@1 { 334 trigger1 {
336 reg = <1>;
337 trigger-name = "external-falling"; 335 trigger-name = "external-falling";
338 trigger-value = <0x2>; 336 trigger-value = <0x2>;
339 trigger-external; 337 trigger-external;
340 }; 338 };
341 trigger@2 { 339 trigger2 {
342 reg = <2>;
343 trigger-name = "external-any"; 340 trigger-name = "external-any";
344 trigger-value = <0x3>; 341 trigger-value = <0x3>;
345 trigger-external; 342 trigger-external;
346 }; 343 };
347 trigger@3 { 344 trigger3 {
348 reg = <3>;
349 trigger-name = "continuous"; 345 trigger-name = "continuous";
350 trigger-value = <0x6>; 346 trigger-value = <0x6>;
351 }; 347 };
@@ -1341,13 +1337,13 @@
1341 clock-names = "pclk", "hclk"; 1337 clock-names = "pclk", "hclk";
1342 status = "disabled"; 1338 status = "disabled";
1343 1339
1344 ep0 { 1340 ep@0 {
1345 reg = <0>; 1341 reg = <0>;
1346 atmel,fifo-size = <64>; 1342 atmel,fifo-size = <64>;
1347 atmel,nb-banks = <1>; 1343 atmel,nb-banks = <1>;
1348 }; 1344 };
1349 1345
1350 ep1 { 1346 ep@1 {
1351 reg = <1>; 1347 reg = <1>;
1352 atmel,fifo-size = <1024>; 1348 atmel,fifo-size = <1024>;
1353 atmel,nb-banks = <3>; 1349 atmel,nb-banks = <3>;
@@ -1355,7 +1351,7 @@
1355 atmel,can-isoc; 1351 atmel,can-isoc;
1356 }; 1352 };
1357 1353
1358 ep2 { 1354 ep@2 {
1359 reg = <2>; 1355 reg = <2>;
1360 atmel,fifo-size = <1024>; 1356 atmel,fifo-size = <1024>;
1361 atmel,nb-banks = <3>; 1357 atmel,nb-banks = <3>;
@@ -1363,84 +1359,84 @@
1363 atmel,can-isoc; 1359 atmel,can-isoc;
1364 }; 1360 };
1365 1361
1366 ep3 { 1362 ep@3 {
1367 reg = <3>; 1363 reg = <3>;
1368 atmel,fifo-size = <1024>; 1364 atmel,fifo-size = <1024>;
1369 atmel,nb-banks = <2>; 1365 atmel,nb-banks = <2>;
1370 atmel,can-dma; 1366 atmel,can-dma;
1371 }; 1367 };
1372 1368
1373 ep4 { 1369 ep@4 {
1374 reg = <4>; 1370 reg = <4>;
1375 atmel,fifo-size = <1024>; 1371 atmel,fifo-size = <1024>;
1376 atmel,nb-banks = <2>; 1372 atmel,nb-banks = <2>;
1377 atmel,can-dma; 1373 atmel,can-dma;
1378 }; 1374 };
1379 1375
1380 ep5 { 1376 ep@5 {
1381 reg = <5>; 1377 reg = <5>;
1382 atmel,fifo-size = <1024>; 1378 atmel,fifo-size = <1024>;
1383 atmel,nb-banks = <2>; 1379 atmel,nb-banks = <2>;
1384 atmel,can-dma; 1380 atmel,can-dma;
1385 }; 1381 };
1386 1382
1387 ep6 { 1383 ep@6 {
1388 reg = <6>; 1384 reg = <6>;
1389 atmel,fifo-size = <1024>; 1385 atmel,fifo-size = <1024>;
1390 atmel,nb-banks = <2>; 1386 atmel,nb-banks = <2>;
1391 atmel,can-dma; 1387 atmel,can-dma;
1392 }; 1388 };
1393 1389
1394 ep7 { 1390 ep@7 {
1395 reg = <7>; 1391 reg = <7>;
1396 atmel,fifo-size = <1024>; 1392 atmel,fifo-size = <1024>;
1397 atmel,nb-banks = <2>; 1393 atmel,nb-banks = <2>;
1398 atmel,can-dma; 1394 atmel,can-dma;
1399 }; 1395 };
1400 1396
1401 ep8 { 1397 ep@8 {
1402 reg = <8>; 1398 reg = <8>;
1403 atmel,fifo-size = <1024>; 1399 atmel,fifo-size = <1024>;
1404 atmel,nb-banks = <2>; 1400 atmel,nb-banks = <2>;
1405 }; 1401 };
1406 1402
1407 ep9 { 1403 ep@9 {
1408 reg = <9>; 1404 reg = <9>;
1409 atmel,fifo-size = <1024>; 1405 atmel,fifo-size = <1024>;
1410 atmel,nb-banks = <2>; 1406 atmel,nb-banks = <2>;
1411 }; 1407 };
1412 1408
1413 ep10 { 1409 ep@10 {
1414 reg = <10>; 1410 reg = <10>;
1415 atmel,fifo-size = <1024>; 1411 atmel,fifo-size = <1024>;
1416 atmel,nb-banks = <2>; 1412 atmel,nb-banks = <2>;
1417 }; 1413 };
1418 1414
1419 ep11 { 1415 ep@11 {
1420 reg = <11>; 1416 reg = <11>;
1421 atmel,fifo-size = <1024>; 1417 atmel,fifo-size = <1024>;
1422 atmel,nb-banks = <2>; 1418 atmel,nb-banks = <2>;
1423 }; 1419 };
1424 1420
1425 ep12 { 1421 ep@12 {
1426 reg = <12>; 1422 reg = <12>;
1427 atmel,fifo-size = <1024>; 1423 atmel,fifo-size = <1024>;
1428 atmel,nb-banks = <2>; 1424 atmel,nb-banks = <2>;
1429 }; 1425 };
1430 1426
1431 ep13 { 1427 ep@13 {
1432 reg = <13>; 1428 reg = <13>;
1433 atmel,fifo-size = <1024>; 1429 atmel,fifo-size = <1024>;
1434 atmel,nb-banks = <2>; 1430 atmel,nb-banks = <2>;
1435 }; 1431 };
1436 1432
1437 ep14 { 1433 ep@14 {
1438 reg = <14>; 1434 reg = <14>;
1439 atmel,fifo-size = <1024>; 1435 atmel,fifo-size = <1024>;
1440 atmel,nb-banks = <2>; 1436 atmel,nb-banks = <2>;
1441 }; 1437 };
1442 1438
1443 ep15 { 1439 ep@15 {
1444 reg = <15>; 1440 reg = <15>;
1445 atmel,fifo-size = <1024>; 1441 atmel,fifo-size = <1024>;
1446 atmel,nb-banks = <2>; 1442 atmel,nb-banks = <2>;
diff --git a/arch/arm/boot/dts/sama5d31ek.dts b/arch/arm/boot/dts/sama5d31ek.dts
index 04eec0dfcf7d..25e4c0b2d786 100644
--- a/arch/arm/boot/dts/sama5d31ek.dts
+++ b/arch/arm/boot/dts/sama5d31ek.dts
@@ -9,6 +9,7 @@
9/dts-v1/; 9/dts-v1/;
10#include "sama5d31.dtsi" 10#include "sama5d31.dtsi"
11#include "sama5d3xmb.dtsi" 11#include "sama5d3xmb.dtsi"
12#include "sama5d3xmb_emac.dtsi"
12#include "sama5d3xdm.dtsi" 13#include "sama5d3xdm.dtsi"
13 14
14/ { 15/ {
diff --git a/arch/arm/boot/dts/sama5d33ek.dts b/arch/arm/boot/dts/sama5d33ek.dts
index cbd6a3ff1545..c517b87a1de2 100644
--- a/arch/arm/boot/dts/sama5d33ek.dts
+++ b/arch/arm/boot/dts/sama5d33ek.dts
@@ -9,6 +9,7 @@
9/dts-v1/; 9/dts-v1/;
10#include "sama5d33.dtsi" 10#include "sama5d33.dtsi"
11#include "sama5d3xmb.dtsi" 11#include "sama5d3xmb.dtsi"
12#include "sama5d3xmb_gmac.dtsi"
12#include "sama5d3xdm.dtsi" 13#include "sama5d3xdm.dtsi"
13 14
14/ { 15/ {
diff --git a/arch/arm/boot/dts/sama5d34ek.dts b/arch/arm/boot/dts/sama5d34ek.dts
index 878aa164275a..c8b8449fdc3e 100644
--- a/arch/arm/boot/dts/sama5d34ek.dts
+++ b/arch/arm/boot/dts/sama5d34ek.dts
@@ -9,6 +9,7 @@
9/dts-v1/; 9/dts-v1/;
10#include "sama5d34.dtsi" 10#include "sama5d34.dtsi"
11#include "sama5d3xmb.dtsi" 11#include "sama5d3xmb.dtsi"
12#include "sama5d3xmb_gmac.dtsi"
12#include "sama5d3xdm.dtsi" 13#include "sama5d3xdm.dtsi"
13 14
14/ { 15/ {
diff --git a/arch/arm/boot/dts/sama5d35ek.dts b/arch/arm/boot/dts/sama5d35ek.dts
index e812f5c1bf70..6e261fcf576c 100644
--- a/arch/arm/boot/dts/sama5d35ek.dts
+++ b/arch/arm/boot/dts/sama5d35ek.dts
@@ -9,6 +9,8 @@
9/dts-v1/; 9/dts-v1/;
10#include "sama5d35.dtsi" 10#include "sama5d35.dtsi"
11#include "sama5d3xmb.dtsi" 11#include "sama5d3xmb.dtsi"
12#include "sama5d3xmb_emac.dtsi"
13#include "sama5d3xmb_gmac.dtsi"
12 14
13/ { 15/ {
14 model = "Atmel SAMA5D35-EK"; 16 model = "Atmel SAMA5D35-EK";
diff --git a/arch/arm/boot/dts/sama5d36ek.dts b/arch/arm/boot/dts/sama5d36ek.dts
index 59576c6f9826..cd458b85a205 100644
--- a/arch/arm/boot/dts/sama5d36ek.dts
+++ b/arch/arm/boot/dts/sama5d36ek.dts
@@ -10,6 +10,8 @@
10#include "sama5d36.dtsi" 10#include "sama5d36.dtsi"
11#include "sama5d3xmb.dtsi" 11#include "sama5d3xmb.dtsi"
12#include "sama5d3xdm.dtsi" 12#include "sama5d3xdm.dtsi"
13#include "sama5d3xmb_emac.dtsi"
14#include "sama5d3xmb_gmac.dtsi"
13 15
14/ { 16/ {
15 model = "Atmel SAMA5D36-EK"; 17 model = "Atmel SAMA5D36-EK";
diff --git a/arch/arm/boot/dts/sama5d3xcm.dtsi b/arch/arm/boot/dts/sama5d3xcm.dtsi
index 2cf9c3611db6..b5e111b29da1 100644
--- a/arch/arm/boot/dts/sama5d3xcm.dtsi
+++ b/arch/arm/boot/dts/sama5d3xcm.dtsi
@@ -34,40 +34,6 @@
34 spi0: spi@f0004000 { 34 spi0: spi@f0004000 {
35 cs-gpios = <&pioD 13 0>, <0>, <0>, <0>; 35 cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
36 }; 36 };
37
38 macb0: ethernet@f0028000 {
39 phy-mode = "rgmii";
40 #address-cells = <1>;
41 #size-cells = <0>;
42
43 ethernet-phy@1 {
44 reg = <0x1>;
45 interrupt-parent = <&pioB>;
46 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
47 txen-skew-ps = <800>;
48 txc-skew-ps = <3000>;
49 rxdv-skew-ps = <400>;
50 rxc-skew-ps = <3000>;
51 rxd0-skew-ps = <400>;
52 rxd1-skew-ps = <400>;
53 rxd2-skew-ps = <400>;
54 rxd3-skew-ps = <400>;
55 };
56
57 ethernet-phy@7 {
58 reg = <0x7>;
59 interrupt-parent = <&pioB>;
60 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
61 txen-skew-ps = <800>;
62 txc-skew-ps = <3000>;
63 rxdv-skew-ps = <400>;
64 rxc-skew-ps = <3000>;
65 rxd0-skew-ps = <400>;
66 rxd1-skew-ps = <400>;
67 rxd2-skew-ps = <400>;
68 rxd3-skew-ps = <400>;
69 };
70 };
71 }; 37 };
72 38
73 nand0: nand@60000000 { 39 nand0: nand@60000000 {
diff --git a/arch/arm/boot/dts/sama5d3xmb.dtsi b/arch/arm/boot/dts/sama5d3xmb.dtsi
index 89010422812d..6d252ad050f6 100644
--- a/arch/arm/boot/dts/sama5d3xmb.dtsi
+++ b/arch/arm/boot/dts/sama5d3xmb.dtsi
@@ -117,18 +117,6 @@
117 status = "okay"; 117 status = "okay";
118 }; 118 };
119 119
120 macb1: ethernet@f802c000 {
121 phy-mode = "rmii";
122
123 #address-cells = <1>;
124 #size-cells = <0>;
125 phy0: ethernet-phy@1 {
126 interrupt-parent = <&pioE>;
127 interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
128 reg = <1>;
129 };
130 };
131
132 pinctrl@fffff200 { 120 pinctrl@fffff200 {
133 board { 121 board {
134 pinctrl_mmc0_cd: mmc0_cd { 122 pinctrl_mmc0_cd: mmc0_cd {
diff --git a/arch/arm/boot/dts/sama5d3xmb_emac.dtsi b/arch/arm/boot/dts/sama5d3xmb_emac.dtsi
new file mode 100644
index 000000000000..2fd14f371a04
--- /dev/null
+++ b/arch/arm/boot/dts/sama5d3xmb_emac.dtsi
@@ -0,0 +1,26 @@
1/*
2 * sama5d3xmb_emac.dts - Device Tree Include file for SAMA5D3x mother board
3 * Ethernet
4 *
5 * Copyright (C) 2016 Atmel,
6 *
7 * Licensed under GPLv2 or later.
8 */
9
10/ {
11 ahb {
12 apb {
13 macb1: ethernet@f802c000 {
14 phy-mode = "rmii";
15
16 #address-cells = <1>;
17 #size-cells = <0>;
18 phy0: ethernet-phy@1 {
19 interrupt-parent = <&pioE>;
20 interrupts = <30 IRQ_TYPE_EDGE_FALLING>;
21 reg = <1>;
22 };
23 };
24 };
25 };
26};
diff --git a/arch/arm/boot/dts/sama5d3xmb_gmac.dtsi b/arch/arm/boot/dts/sama5d3xmb_gmac.dtsi
new file mode 100644
index 000000000000..65aea7a75b1d
--- /dev/null
+++ b/arch/arm/boot/dts/sama5d3xmb_gmac.dtsi
@@ -0,0 +1,48 @@
1/*
2 * sama5d3xmb_gmac.dtsi - Device Tree Include file for SAMA5D3x motherboard
3 * Gigabit Ethernet
4 *
5 * Copyright (C) 2016 Atmel,
6 *
7 * Licensed under GPLv2 or later.
8 */
9
10/ {
11 ahb {
12 apb {
13 macb0: ethernet@f0028000 {
14 phy-mode = "rgmii";
15 #address-cells = <1>;
16 #size-cells = <0>;
17
18 ethernet-phy@1 {
19 reg = <0x1>;
20 interrupt-parent = <&pioB>;
21 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
22 txen-skew-ps = <800>;
23 txc-skew-ps = <3000>;
24 rxdv-skew-ps = <400>;
25 rxc-skew-ps = <3000>;
26 rxd0-skew-ps = <400>;
27 rxd1-skew-ps = <400>;
28 rxd2-skew-ps = <400>;
29 rxd3-skew-ps = <400>;
30 };
31
32 ethernet-phy@7 {
33 reg = <0x7>;
34 interrupt-parent = <&pioB>;
35 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
36 txen-skew-ps = <800>;
37 txc-skew-ps = <3000>;
38 rxdv-skew-ps = <400>;
39 rxc-skew-ps = <3000>;
40 rxd0-skew-ps = <400>;
41 rxd1-skew-ps = <400>;
42 rxd2-skew-ps = <400>;
43 rxd3-skew-ps = <400>;
44 };
45 };
46 };
47 };
48};
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 4e2cc30d6615..65e725fb5679 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -135,13 +135,13 @@
135 clock-names = "pclk", "hclk"; 135 clock-names = "pclk", "hclk";
136 status = "disabled"; 136 status = "disabled";
137 137
138 ep0 { 138 ep@0 {
139 reg = <0>; 139 reg = <0>;
140 atmel,fifo-size = <64>; 140 atmel,fifo-size = <64>;
141 atmel,nb-banks = <1>; 141 atmel,nb-banks = <1>;
142 }; 142 };
143 143
144 ep1 { 144 ep@1 {
145 reg = <1>; 145 reg = <1>;
146 atmel,fifo-size = <1024>; 146 atmel,fifo-size = <1024>;
147 atmel,nb-banks = <3>; 147 atmel,nb-banks = <3>;
@@ -149,7 +149,7 @@
149 atmel,can-isoc; 149 atmel,can-isoc;
150 }; 150 };
151 151
152 ep2 { 152 ep@2 {
153 reg = <2>; 153 reg = <2>;
154 atmel,fifo-size = <1024>; 154 atmel,fifo-size = <1024>;
155 atmel,nb-banks = <3>; 155 atmel,nb-banks = <3>;
@@ -157,7 +157,7 @@
157 atmel,can-isoc; 157 atmel,can-isoc;
158 }; 158 };
159 159
160 ep3 { 160 ep@3 {
161 reg = <3>; 161 reg = <3>;
162 atmel,fifo-size = <1024>; 162 atmel,fifo-size = <1024>;
163 atmel,nb-banks = <2>; 163 atmel,nb-banks = <2>;
@@ -165,7 +165,7 @@
165 atmel,can-isoc; 165 atmel,can-isoc;
166 }; 166 };
167 167
168 ep4 { 168 ep@4 {
169 reg = <4>; 169 reg = <4>;
170 atmel,fifo-size = <1024>; 170 atmel,fifo-size = <1024>;
171 atmel,nb-banks = <2>; 171 atmel,nb-banks = <2>;
@@ -173,7 +173,7 @@
173 atmel,can-isoc; 173 atmel,can-isoc;
174 }; 174 };
175 175
176 ep5 { 176 ep@5 {
177 reg = <5>; 177 reg = <5>;
178 atmel,fifo-size = <1024>; 178 atmel,fifo-size = <1024>;
179 atmel,nb-banks = <2>; 179 atmel,nb-banks = <2>;
@@ -181,7 +181,7 @@
181 atmel,can-isoc; 181 atmel,can-isoc;
182 }; 182 };
183 183
184 ep6 { 184 ep@6 {
185 reg = <6>; 185 reg = <6>;
186 atmel,fifo-size = <1024>; 186 atmel,fifo-size = <1024>;
187 atmel,nb-banks = <2>; 187 atmel,nb-banks = <2>;
@@ -189,7 +189,7 @@
189 atmel,can-isoc; 189 atmel,can-isoc;
190 }; 190 };
191 191
192 ep7 { 192 ep@7 {
193 reg = <7>; 193 reg = <7>;
194 atmel,fifo-size = <1024>; 194 atmel,fifo-size = <1024>;
195 atmel,nb-banks = <2>; 195 atmel,nb-banks = <2>;
@@ -197,56 +197,56 @@
197 atmel,can-isoc; 197 atmel,can-isoc;
198 }; 198 };
199 199
200 ep8 { 200 ep@8 {
201 reg = <8>; 201 reg = <8>;
202 atmel,fifo-size = <1024>; 202 atmel,fifo-size = <1024>;
203 atmel,nb-banks = <2>; 203 atmel,nb-banks = <2>;
204 atmel,can-isoc; 204 atmel,can-isoc;
205 }; 205 };
206 206
207 ep9 { 207 ep@9 {
208 reg = <9>; 208 reg = <9>;
209 atmel,fifo-size = <1024>; 209 atmel,fifo-size = <1024>;
210 atmel,nb-banks = <2>; 210 atmel,nb-banks = <2>;
211 atmel,can-isoc; 211 atmel,can-isoc;
212 }; 212 };
213 213
214 ep10 { 214 ep@10 {
215 reg = <10>; 215 reg = <10>;
216 atmel,fifo-size = <1024>; 216 atmel,fifo-size = <1024>;
217 atmel,nb-banks = <2>; 217 atmel,nb-banks = <2>;
218 atmel,can-isoc; 218 atmel,can-isoc;
219 }; 219 };
220 220
221 ep11 { 221 ep@11 {
222 reg = <11>; 222 reg = <11>;
223 atmel,fifo-size = <1024>; 223 atmel,fifo-size = <1024>;
224 atmel,nb-banks = <2>; 224 atmel,nb-banks = <2>;
225 atmel,can-isoc; 225 atmel,can-isoc;
226 }; 226 };
227 227
228 ep12 { 228 ep@12 {
229 reg = <12>; 229 reg = <12>;
230 atmel,fifo-size = <1024>; 230 atmel,fifo-size = <1024>;
231 atmel,nb-banks = <2>; 231 atmel,nb-banks = <2>;
232 atmel,can-isoc; 232 atmel,can-isoc;
233 }; 233 };
234 234
235 ep13 { 235 ep@13 {
236 reg = <13>; 236 reg = <13>;
237 atmel,fifo-size = <1024>; 237 atmel,fifo-size = <1024>;
238 atmel,nb-banks = <2>; 238 atmel,nb-banks = <2>;
239 atmel,can-isoc; 239 atmel,can-isoc;
240 }; 240 };
241 241
242 ep14 { 242 ep@14 {
243 reg = <14>; 243 reg = <14>;
244 atmel,fifo-size = <1024>; 244 atmel,fifo-size = <1024>;
245 atmel,nb-banks = <2>; 245 atmel,nb-banks = <2>;
246 atmel,can-isoc; 246 atmel,can-isoc;
247 }; 247 };
248 248
249 ep15 { 249 ep@15 {
250 reg = <15>; 250 reg = <15>;
251 atmel,fifo-size = <1024>; 251 atmel,fifo-size = <1024>;
252 atmel,nb-banks = <2>; 252 atmel,nb-banks = <2>;
@@ -1226,22 +1226,22 @@
1226 atmel,adc-ts-pressure-threshold = <10000>; 1226 atmel,adc-ts-pressure-threshold = <10000>;
1227 status = "disabled"; 1227 status = "disabled";
1228 1228
1229 trigger@0 { 1229 trigger0 {
1230 trigger-name = "external-rising"; 1230 trigger-name = "external-rising";
1231 trigger-value = <0x1>; 1231 trigger-value = <0x1>;
1232 trigger-external; 1232 trigger-external;
1233 }; 1233 };
1234 trigger@1 { 1234 trigger1 {
1235 trigger-name = "external-falling"; 1235 trigger-name = "external-falling";
1236 trigger-value = <0x2>; 1236 trigger-value = <0x2>;
1237 trigger-external; 1237 trigger-external;
1238 }; 1238 };
1239 trigger@2 { 1239 trigger2 {
1240 trigger-name = "external-any"; 1240 trigger-name = "external-any";
1241 trigger-value = <0x3>; 1241 trigger-value = <0x3>;
1242 trigger-external; 1242 trigger-external;
1243 }; 1243 };
1244 trigger@3 { 1244 trigger3 {
1245 trigger-name = "continuous"; 1245 trigger-name = "continuous";
1246 trigger-value = <0x6>; 1246 trigger-value = <0x6>;
1247 }; 1247 };
diff --git a/arch/arm/boot/dts/sh73a0-kzm9g.dts b/arch/arm/boot/dts/sh73a0-kzm9g.dts
index c2d8a080e392..3d65f1f6d78b 100644
--- a/arch/arm/boot/dts/sh73a0-kzm9g.dts
+++ b/arch/arm/boot/dts/sh73a0-kzm9g.dts
@@ -22,7 +22,7 @@
22 compatible = "renesas,kzm9g", "renesas,sh73a0"; 22 compatible = "renesas,kzm9g", "renesas,sh73a0";
23 23
24 aliases { 24 aliases {
25 serial4 = &scifa4; 25 serial0 = &scifa4;
26 }; 26 };
27 27
28 cpus { 28 cpus {
@@ -39,16 +39,16 @@
39 }; 39 };
40 40
41 chosen { 41 chosen {
42 bootargs = "console=tty0 console=ttySC4,115200 root=/dev/nfs ip=dhcp ignore_loglevel rw"; 42 bootargs = "root=/dev/nfs ip=dhcp ignore_loglevel rw";
43 stdout-path = &scifa4; 43 stdout-path = "serial0:115200n8";
44 }; 44 };
45 45
46 memory { 46 memory@40000000 {
47 device_type = "memory"; 47 device_type = "memory";
48 reg = <0x40000000 0x20000000>; 48 reg = <0x40000000 0x20000000>;
49 }; 49 };
50 50
51 reg_1p8v: regulator@0 { 51 reg_1p8v: regulator-1p8v {
52 compatible = "regulator-fixed"; 52 compatible = "regulator-fixed";
53 regulator-name = "fixed-1.8V"; 53 regulator-name = "fixed-1.8V";
54 regulator-min-microvolt = <1800000>; 54 regulator-min-microvolt = <1800000>;
@@ -57,7 +57,7 @@
57 regulator-boot-on; 57 regulator-boot-on;
58 }; 58 };
59 59
60 reg_3p3v: regulator@1 { 60 reg_3p3v: regulator-3p3v {
61 compatible = "regulator-fixed"; 61 compatible = "regulator-fixed";
62 regulator-name = "fixed-3.3V"; 62 regulator-name = "fixed-3.3V";
63 regulator-min-microvolt = <3300000>; 63 regulator-min-microvolt = <3300000>;
@@ -66,7 +66,7 @@
66 regulator-boot-on; 66 regulator-boot-on;
67 }; 67 };
68 68
69 vmmc_sdhi0: regulator@2 { 69 vmmc_sdhi0: regulator-vmmc-sdhi0 {
70 compatible = "regulator-fixed"; 70 compatible = "regulator-fixed";
71 regulator-name = "SDHI0 Vcc"; 71 regulator-name = "SDHI0 Vcc";
72 regulator-min-microvolt = <3300000>; 72 regulator-min-microvolt = <3300000>;
@@ -75,7 +75,7 @@
75 enable-active-high; 75 enable-active-high;
76 }; 76 };
77 77
78 vmmc_sdhi2: regulator@3 { 78 vmmc_sdhi2: regulator-vmmc-sdhi2 {
79 compatible = "regulator-fixed"; 79 compatible = "regulator-fixed";
80 regulator-name = "SDHI2 Vcc"; 80 regulator-name = "SDHI2 Vcc";
81 regulator-min-microvolt = <3300000>; 81 regulator-min-microvolt = <3300000>;
@@ -352,7 +352,7 @@
352 }; 352 };
353 }; 353 };
354 354
355 scifa4_pins: serial4 { 355 scifa4_pins: scifa4 {
356 groups = "scifa4_data", "scifa4_ctrl"; 356 groups = "scifa4_data", "scifa4_ctrl";
357 function = "scifa4"; 357 function = "scifa4";
358 }; 358 };
@@ -378,6 +378,7 @@
378 pinctrl-0 = <&scifa4_pins>; 378 pinctrl-0 = <&scifa4_pins>;
379 pinctrl-names = "default"; 379 pinctrl-names = "default";
380 380
381 uart-has-rtscts;
381 status = "okay"; 382 status = "okay";
382}; 383};
383 384
diff --git a/arch/arm/boot/dts/sh73a0.dtsi b/arch/arm/boot/dts/sh73a0.dtsi
index c4f434cdec60..032fe2f14b16 100644
--- a/arch/arm/boot/dts/sh73a0.dtsi
+++ b/arch/arm/boot/dts/sh73a0.dtsi
@@ -55,7 +55,7 @@
55 <0xf0000100 0x100>; 55 <0xf0000100 0x100>;
56 }; 56 };
57 57
58 L2: cache-controller { 58 L2: cache-controller@f0100000 {
59 compatible = "arm,pl310-cache"; 59 compatible = "arm,pl310-cache";
60 reg = <0xf0100000 0x1000>; 60 reg = <0xf0100000 0x1000>;
61 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 61 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
index 5820b70c95b3..94000cbe576b 100644
--- a/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -22,11 +22,6 @@
22 #address-cells = <1>; 22 #address-cells = <1>;
23 #size-cells = <1>; 23 #size-cells = <1>;
24 24
25 aliases {
26 serial0 = &uart0;
27 serial1 = &uart1;
28 };
29
30 cpus { 25 cpus {
31 #address-cells = <1>; 26 #address-cells = <1>;
32 #size-cells = <0>; 27 #size-cells = <0>;
@@ -572,12 +567,6 @@
572 reg = <0xffcfb100 0x80>; 567 reg = <0xffcfb100 0x80>;
573 }; 568 };
574 569
575 sdramedac {
576 compatible = "altr,sdram-edac-a10";
577 altr,sdr-syscon = <&sdr>;
578 interrupts = <0 2 4>, <0 0 4>;
579 };
580
581 L2: l2-cache@fffff000 { 570 L2: l2-cache@fffff000 {
582 compatible = "arm,pl310-cache"; 571 compatible = "arm,pl310-cache";
583 reg = <0xfffff000 0x1000>; 572 reg = <0xfffff000 0x1000>;
@@ -610,16 +599,29 @@
610 #size-cells = <1>; 599 #size-cells = <1>;
611 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>, 600 interrupts = <0 2 IRQ_TYPE_LEVEL_HIGH>,
612 <0 0 IRQ_TYPE_LEVEL_HIGH>; 601 <0 0 IRQ_TYPE_LEVEL_HIGH>;
602 interrupt-controller;
603 #interrupt-cells = <2>;
613 ranges; 604 ranges;
614 605
606 sdramedac {
607 compatible = "altr,sdram-edac-a10";
608 altr,sdr-syscon = <&sdr>;
609 interrupts = <17 IRQ_TYPE_LEVEL_HIGH>,
610 <49 IRQ_TYPE_LEVEL_HIGH>;
611 };
612
615 l2-ecc@ffd06010 { 613 l2-ecc@ffd06010 {
616 compatible = "altr,socfpga-a10-l2-ecc"; 614 compatible = "altr,socfpga-a10-l2-ecc";
617 reg = <0xffd06010 0x4>; 615 reg = <0xffd06010 0x4>;
616 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>,
617 <32 IRQ_TYPE_LEVEL_HIGH>;
618 }; 618 };
619 619
620 ocram-ecc@ff8c3000 { 620 ocram-ecc@ff8c3000 {
621 compatible = "altr,socfpga-a10-ocram-ecc"; 621 compatible = "altr,socfpga-a10-ocram-ecc";
622 reg = <0xff8c3000 0x400>; 622 reg = <0xff8c3000 0x400>;
623 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>,
624 <33 IRQ_TYPE_LEVEL_HIGH>;
623 }; 625 };
624 626
625 emac0-rx-ecc@ff8c0800 { 627 emac0-rx-ecc@ff8c0800 {
diff --git a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
index 567df98f1bb5..8e3a4adc389f 100644
--- a/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10_socdk.dtsi
@@ -20,9 +20,14 @@
20 model = "Altera SOCFPGA Arria 10"; 20 model = "Altera SOCFPGA Arria 10";
21 compatible = "altr,socfpga-arria10", "altr,socfpga"; 21 compatible = "altr,socfpga-arria10", "altr,socfpga";
22 22
23 aliases {
24 ethernet0 = &gmac0;
25 serial0 = &uart1;
26 };
27
23 chosen { 28 chosen {
24 bootargs = "earlyprintk"; 29 bootargs = "earlyprintk";
25 stdout-path = "serial1:115200n8"; 30 stdout-path = "serial0:115200n8";
26 }; 31 };
27 32
28 memory { 33 memory {
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index 6ae56838bd3a..d309314f3a36 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -604,6 +604,7 @@
604 #interrupt-cells = <2>; 604 #interrupt-cells = <2>;
605 605
606 ab8500_gpio: ab8500-gpio { 606 ab8500_gpio: ab8500-gpio {
607 compatible = "stericsson,ab8500-gpio";
607 gpio-controller; 608 gpio-controller;
608 #gpio-cells = <2>; 609 #gpio-cells = <2>;
609 }; 610 };
diff --git a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
index fc5e8ce700c3..3c9f2f068c2f 100644
--- a/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
+++ b/arch/arm/boot/dts/ste-href-tvk1281618.dtsi
@@ -99,46 +99,69 @@
99 vddio-supply = <&db8500_vsmps2_reg>; 99 vddio-supply = <&db8500_vsmps2_reg>;
100 pinctrl-names = "default"; 100 pinctrl-names = "default";
101 pinctrl-0 = <&accel_tvk_mode>; 101 pinctrl-0 = <&accel_tvk_mode>;
102 interrupt-parent = <&gpio2>;
103 interrupts = <18 IRQ_TYPE_EDGE_FALLING>,
104 <19 IRQ_TYPE_EDGE_FALLING>;
105 };
106 lsm303dlh@1e {
107 /* 102 /*
108 * This magnetometer is packaged with 103 * These interrupts cannot be used: the other component
109 * the accelerometer, and has a DRDY line, 104 * ST-Micro L3D4200D gyro that is connected to the same lines
110 * however it is not connected on this 105 * cannot set its DRDY line to open drain, so it cannot be
111 * board so it can not generate interrupts. 106 * shared with other peripherals. The should be defined for
107 * the falling edge if they could be wired together.
108 *
109 * interrupts-extended =
110 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
111 * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>;
112 */ 112 */
113 };
114 lsm303dlh@1e {
115 /* Magnetometer */
113 compatible = "st,lsm303dlh-magn"; 116 compatible = "st,lsm303dlh-magn";
114 reg = <0x1e>; 117 reg = <0x1e>;
115 vdd-supply = <&ab8500_ldo_aux1_reg>; 118 vdd-supply = <&ab8500_ldo_aux1_reg>;
116 vddio-supply = <&db8500_vsmps2_reg>; 119 vddio-supply = <&db8500_vsmps2_reg>;
120 /*
121 * These interrupts cannot be used: the other component
122 * ST-Micro L3D4200D gyro that is connected to the same lines
123 * cannot set its DRDY line to open drain, so it cannot be
124 * shared with other peripherals. The should be defined for
125 * the falling edge if they could be wired together.
126 *
127 * interrupts-extended =
128 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
129 * <&gpio2 19 IRQ_TYPE_EDGE_FALLING>;
130 */
117 }; 131 };
118 lis331dl@1c { 132 lis331dl@1c {
119 /* Accelerometer */ 133 /* Accelerometer */
120 compatible = "st,lis331dl-accel"; 134 compatible = "st,lis331dl-accel";
121 st,drdy-int-pin = <1>; 135 st,drdy-int-pin = <1>;
122 drive-open-drain;
123 reg = <0x1c>; 136 reg = <0x1c>;
124 vdd-supply = <&ab8500_ldo_aux1_reg>; 137 vdd-supply = <&ab8500_ldo_aux1_reg>;
125 vddio-supply = <&db8500_vsmps2_reg>; 138 vddio-supply = <&db8500_vsmps2_reg>;
126 pinctrl-names = "default"; 139 pinctrl-names = "default";
127 pinctrl-0 = <&accel_tvk_mode>; 140 pinctrl-0 = <&accel_tvk_mode>;
128 interrupt-parent = <&gpio2>; 141 interrupt-parent = <&gpio2>;
129 interrupts = <18 IRQ_TYPE_EDGE_FALLING>, 142 /* INT2 would need to be open drain */
130 <19 IRQ_TYPE_EDGE_FALLING>; 143 interrupts = <18 IRQ_TYPE_EDGE_RISING>,
144 <19 IRQ_TYPE_EDGE_RISING>;
131 }; 145 };
132 ak8974@0f { 146 ak8974@0f {
133 /* Magnetometer */ 147 /* Magnetometer */
134 compatible = "asahi-kasei,ak8974"; 148 compatible = "asahi-kasei,ak8974";
135 reg = <0x0f>; 149 reg = <0x0f>;
136 vdd-supply = <&ab8500_ldo_aux1_reg>; 150 avdd-supply = <&ab8500_ldo_aux1_reg>;
137 vddio-supply = <&db8500_vsmps2_reg>; 151 dvdd-supply = <&db8500_vsmps2_reg>;
138 pinctrl-names = "default"; 152 pinctrl-names = "default";
139 pinctrl-0 = <&gyro_magn_tvk_mode>; 153 pinctrl-0 = <&gyro_magn_tvk_mode>;
140 interrupt-parent = <&gpio1>; 154 /*
141 interrupts = <0 IRQ_TYPE_EDGE_RISING>; 155 * These interrupts cannot be used: the other component
156 * ST-Micro L3D4200D gyro that is connected to the same lines
157 * cannot set its DRDY line to open drain, so it cannot be
158 * shared with other peripherals. The should be defined for
159 * the falling edge if they could be wired together.
160 *
161 * interrupts-extended =
162 * <&gpio1 0 IRQ_TYPE_EDGE_FALLING>,
163 * <&gpio0 31 IRQ_TYPE_EDGE_FALLING>;
164 */
142 }; 165 };
143 l3g4200d@68 { 166 l3g4200d@68 {
144 /* Gyroscope */ 167 /* Gyroscope */
@@ -149,8 +172,9 @@
149 vddio-supply = <&db8500_vsmps2_reg>; 172 vddio-supply = <&db8500_vsmps2_reg>;
150 pinctrl-names = "default"; 173 pinctrl-names = "default";
151 pinctrl-0 = <&gyro_magn_tvk_mode>; 174 pinctrl-0 = <&gyro_magn_tvk_mode>;
152 interrupt-parent = <&gpio1>; 175 interrupts-extended =
153 interrupts = <0 IRQ_TYPE_EDGE_RISING>; 176 <&gpio1 0 IRQ_TYPE_EDGE_RISING>,
177 <&gpio0 31 IRQ_TYPE_EDGE_RISING>;
154 }; 178 };
155 lsp001wm@5c { 179 lsp001wm@5c {
156 /* Barometer/pressure sensor */ 180 /* Barometer/pressure sensor */
@@ -218,7 +242,7 @@
218 /* Accelerometer interrupt lines 1 & 2 */ 242 /* Accelerometer interrupt lines 1 & 2 */
219 tvk_cfg { 243 tvk_cfg {
220 pins = "GPIO82_C1", "GPIO83_D3"; 244 pins = "GPIO82_C1", "GPIO83_D3";
221 ste,config = <&gpio_in_pu>; 245 ste,config = <&gpio_in_pd>;
222 }; 246 };
223 }; 247 };
224 }; 248 };
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi
index 6d8ce154347e..48dc38482633 100644
--- a/arch/arm/boot/dts/ste-href.dtsi
+++ b/arch/arm/boot/dts/ste-href.dtsi
@@ -223,7 +223,6 @@
223 prcmu@80157000 { 223 prcmu@80157000 {
224 ab8500 { 224 ab8500 {
225 ab8500-gpio { 225 ab8500-gpio {
226 compatible = "stericsson,ab8500-gpio";
227 }; 226 };
228 227
229 ab8500-regulators { 228 ab8500-regulators {
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
index 45d7af326718..7187676836be 100644
--- a/arch/arm/boot/dts/ste-hrefv60plus.dtsi
+++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
@@ -18,6 +18,126 @@
18 compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500"; 18 compatible = "st-ericsson,hrefv60+", "st-ericsson,u8500";
19 19
20 soc { 20 soc {
21 /* Name the GPIO muxed rails on the HREF boards */
22 gpio@8012e000 {
23 /* GPIOs 0 - 31 */
24 gpio-line-names =
25 /* GPIO0,1 used for UART0 BT RX/TX */
26 "", "",
27 "UART_WAKE",
28 "BT_WAKE",
29 "",
30 "SDMMC_1V8_3V_SEL",
31 "FLASH_LED_SYNC (FLASH_CTRL_0)",
32 "XENON_READY (FLASH_CTRL_1)",
33 "", "", "", "", "", "", "", "",
34 "", "", "", "",
35 "",
36 "FLASH_LED_EN (FLASH_CTRL_3)",
37 "", "",
38 "", "", "", "", "",
39 /* Used by UART2 (console) */
40 "", "",
41 "MAGNETOMETER_INT";
42 };
43
44 gpio@8012e080 {
45 /* GPIOs 32 - 63 */
46 gpio-line-names =
47 "MAGNETOMETER_DRDY",
48 "", "", "", "", "", "", "",
49 "", "", "", "", "", "", "", "",
50 "", "", "", "", "", "", "", "",
51 "", "", "", "", "", "", "", "";
52 };
53
54 gpio@8000e000 {
55 /* GPIOs 64 - 95 */
56 gpio-line-names = "XENON_EN2 (FLASH_CTRL_4)",
57 "DISP1_RST",
58 "DISP2_RST",
59 "TOUCH_INT2",
60 "LCD_VSI0_A",
61 "LCD_VSI1_A",
62 /* GPIO 70-77 used for ETM */
63 "", "", "", "", "", "", "", "",
64 /* GPIO 78-81 used for YCBCR */
65 "", "", "", "",
66 "ACCELEROMETER_INT1_RDY",
67 "ACCELEROMETER_INT2",
68 "TOUCH_INT",
69 "WLAN_ENA",
70 "", "", "", "", "",
71 "FORCE_SENSING_INT",
72 "FORCE_SENSING_RESET",
73 "", "",
74 "SDMMC_CD";
75 };
76
77 gpio@8000e080 {
78 /* GPIOs 96 - 127 */
79 gpio-line-names = "",
80 "FORCE_SENSING_WU",
81 "", "", "", "", "", "",
82 "", "", "", "", "", "", "", "",
83 "", "", "", "", "", "", "", "",
84 "", "", "", "", "", "", "", "";
85 };
86
87 gpio@8000e100 {
88 /* GPIOs 128 - 159 */
89 gpio-line-names = "", "", "", "", "", "", "", "",
90 "", "", "",
91 "DIPRO_INT", /* GPIO139 */
92 "XSHUTDOWN_SECONDARY_SENSOR",
93 "XSHUTDOWN_PRIMARY_SENSOR",
94 "NFC_RST (NFC_CTRL_",
95 "TOUCH_RST",
96 "NFC_IRQ (NFC_CTRL_1)",
97 "HAL_SW",
98 "TOUCH_RST2",
99 "", "",
100 "VAUDIO_HF_EN", /* GPIO149 */
101 "", "", "", "", "", "", "", "", "", "";
102 };
103
104 gpio@8000e180 {
105 /* GPIOs 160 - 191 */
106 gpio-line-names = "", "", "", "", "", "", "", "",
107 "",
108 "SDMMC_EN",
109 "XENON_CHARGE (FLASH_CONTROL_5)",
110 "GBF_ENA_RESET",
111 "", "", "", "",
112 "", "", "", "", "", "", "", "",
113 "", "", "", "", "", "", "", "";
114 };
115
116 gpio@8011e000 {
117 /* GPIOs 192 - 223 */
118 gpio-line-names = "HDTV_INTN",
119 "", "", "",
120 "HDTV_RSTN",
121 "", "", "",
122 "", /* GPIO200 */
123 "", "", "", "", "", "", "",
124 /* GPIO208-216 used for WGBF_MC1 */
125 "", "", "", "", "", "", "", "", "",
126 "SW_FRONT_PROXIMITY", /* GPIO217 */
127 "KPD_CTRL_INT", /* Keypad controller */
128 "", "", "", "", "";
129 };
130
131 gpio@8011e080 {
132 /* GPIOs 224 - 255 */
133 gpio-line-names = "", "",
134 "HSIT_ACWAKE0",
135 "", "", "", "", "",
136 "", "", "", "", "", "", "", "",
137 "", "", "", "", "", "", "", "",
138 "", "", "", "", "", "", "", "";
139 };
140
21 // External Micro SD slot 141 // External Micro SD slot
22 sdi0_per1@80126000 { 142 sdi0_per1@80126000 {
23 cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95 143 cd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; // 95
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index 36e84efc401c..b3df1c60d465 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -95,6 +95,70 @@
95 }; 95 };
96 96
97 soc { 97 soc {
98 /* Name the GPIO muxed rails on the Snowball board */
99 gpio@8012e000 {
100 /* GPIOs 0 - 31 */
101 gpio-line-names = "", "", "", "", "", "", "", "",
102 "", "", "", "", "", "", "", "",
103 "", "", "", "", "", "", "", "",
104 "", "", "", "", "", "", "",
105 "AP_GPIO31";
106 };
107
108 gpio@8012e080 {
109 /* GPIOs 32 - 63 */
110 gpio-line-names = "USR PB", "", "", "", "", "", "", "",
111 "", "", "", "", "", "", "", "",
112 "", "", "", "", "", "", "", "",
113 "", "", "", "", "", "", "", "";
114 };
115
116 gpio@8000e000 {
117 /* GPIOs 64 - 95 */
118 gpio-line-names = "", "", "", "", "AP_GPIO68", "", "", "",
119 "", "", "", "", "", "", "", "",
120 "", "", "", "", "", "", "", "",
121 "", "", "", "", "", "", "", "";
122 };
123
124 gpio@8000e100 {
125 /* GPIOs 128 - 159 */
126 gpio-line-names = "", "", "", "", "", "", "", "",
127 "", "", "", "", "IRQ_LAN", "RSTn_LAN",
128 "USR_LED", "", "", "", "", "", "",
129 "", "", "AP_GPIO151", "AP_GPIO152",
130 "", "", "", "", "", "", "";
131 };
132
133 gpio@8000e180 {
134 /* GPIOs 160 - 191 */
135 gpio-line-names = "", "AP_GPIO161", "AP_GPIO162",
136 "ACCELEROMETER_INT1_RDY",
137 "ACCELEROMETER_INT2", "MAG_DRDY",
138 "GYRO_DRDY", "RSTn_MLC", "RSTn_SLC",
139 "GYRO_INT", "UART_WAKE", "GBF_RESET",
140 "", "", "", "",
141 "", "", "", "", "", "", "", "",
142 "", "", "", "", "", "", "", "";
143 };
144
145 gpio@8011e000 {
146 /* GPIOs 192 - 223 */
147 gpio-line-names = "HDTV_INTn", "", "", "", "HDTV_RST",
148 "", "", "", "", "", "", "", "", "",
149 "", "", "", "", "", "", "", "", "",
150 "WLAN_RESETN", "WLAN_IRQ", "MMC_EN",
151 "MMC_CD", "", "", "", "", "";
152 };
153
154 gpio@8011e080 {
155 /* GPIOs 224 - 255 */
156 gpio-line-names = "", "", "", "", "SD_SEL", "", "", "",
157 "", "", "", "", "", "", "", "",
158 "", "", "", "", "", "", "", "",
159 "", "", "", "", "", "", "", "";
160 };
161
98 usb_per5@a03e0000 { 162 usb_per5@a03e0000 {
99 pinctrl-names = "default", "sleep"; 163 pinctrl-names = "default", "sleep";
100 pinctrl-0 = <&musb_default_mode>; 164 pinctrl-0 = <&musb_default_mode>;
@@ -352,7 +416,25 @@
352 416
353 ab8500 { 417 ab8500 {
354 ab8500-gpio { 418 ab8500-gpio {
355 compatible = "stericsson,ab8500-gpio"; 419 /*
420 * AB8500 GPIOs are numbered starting from 1, so the first
421 * index 0 is what in the datasheet is called "GPIO1", and
422 * the second is "GPIO2" and so forth. Confusingly, the
423 * Snowball schematic then names the "GPIO2" line "PM_GPIO1".
424 * while later naming "GPIO4" as "PM_GPIO4".
425 */
426 gpio-line-names = "", /* AB8500 GPIO1 */
427 "PM_GPIO1", /* AB8500 GPIO2 */
428 "WLAN_CLK_REQ", /* AB8500 GPIO3 */
429 "PM_GPIO4", /* AB8500 GPIO4 */
430 "", "", "", "", "", "", "", "", "", "", "",
431 "EN_3V6", /* AB8500 GPIO16 */
432 "", "", "", "" ,"", "", "", "", "",
433 "EN_3V3", /* AB8500 GPIO26 */
434 "", "", "", "", "", "", "", "", "", "", "", "", "",
435 "PM_GPIO40", /* AB8500 GPIO40 */
436 "PM_GPIO41", /* AB8500 GPIO41 */
437 "PM_GPIO42"; /* AB8500 GPIO42 */
356 }; 438 };
357 439
358 ext_regulators: ab8500-ext-regulators { 440 ext_regulators: ab8500-ext-regulators {
diff --git a/arch/arm/boot/dts/stih410-clock.dtsi b/arch/arm/boot/dts/stih410-clock.dtsi
index d1f2acafc9b6..fd5049682181 100644
--- a/arch/arm/boot/dts/stih410-clock.dtsi
+++ b/arch/arm/boot/dts/stih410-clock.dtsi
@@ -103,6 +103,7 @@
103 clocks = <&clk_sysin>; 103 clocks = <&clk_sysin>;
104 104
105 clock-output-names = "clk-s-a0-pll-ofd-0"; 105 clock-output-names = "clk-s-a0-pll-ofd-0";
106 clock-critical = <0>; /* clk-s-a0-pll-ofd-0 */
106 }; 107 };
107 108
108 clk_s_a0_flexgen: clk-s-a0-flexgen { 109 clk_s_a0_flexgen: clk-s-a0-flexgen {
@@ -115,6 +116,7 @@
115 116
116 clock-output-names = "clk-ic-lmi0", 117 clock-output-names = "clk-ic-lmi0",
117 "clk-ic-lmi1"; 118 "clk-ic-lmi1";
119 clock-critical = <CLK_IC_LMI0>;
118 }; 120 };
119 }; 121 };
120 122
@@ -129,6 +131,7 @@
129 "clk-s-c0-fs0-ch1", 131 "clk-s-c0-fs0-ch1",
130 "clk-s-c0-fs0-ch2", 132 "clk-s-c0-fs0-ch2",
131 "clk-s-c0-fs0-ch3"; 133 "clk-s-c0-fs0-ch3";
134 clock-critical = <0>; /* clk-s-c0-fs0-ch0 */
132 }; 135 };
133 136
134 clk_s_c0: clockgen-c@09103000 { 137 clk_s_c0: clockgen-c@09103000 {
@@ -142,6 +145,7 @@
142 clocks = <&clk_sysin>; 145 clocks = <&clk_sysin>;
143 146
144 clock-output-names = "clk-s-c0-pll0-odf-0"; 147 clock-output-names = "clk-s-c0-pll0-odf-0";
148 clock-critical = <0>; /* clk-s-c0-pll0-odf-0 */
145 }; 149 };
146 150
147 clk_s_c0_pll1: clk-s-c0-pll1 { 151 clk_s_c0_pll1: clk-s-c0-pll1 {
@@ -204,6 +208,11 @@
204 "clk-clust-hades", 208 "clk-clust-hades",
205 "clk-hwpe-hades", 209 "clk-hwpe-hades",
206 "clk-fc-hades"; 210 "clk-fc-hades";
211 clock-critical = <CLK_ICN_CPU>,
212 <CLK_TX_ICN_DMU>,
213 <CLK_EXT2F_A9>,
214 <CLK_ICN_LMI>,
215 <CLK_ICN_SBC>;
207 }; 216 };
208 }; 217 };
209 218
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
index c92a1ae33a1e..39e368ec3428 100644
--- a/arch/arm/boot/dts/sun4i-a10-a1000.dts
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -72,8 +72,9 @@
72 }; 72 };
73 73
74 blue { 74 blue {
75 label = "a1000:blue:usr"; 75 label = "a1000:blue:pwr";
76 gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>; 76 gpios = <&pio 7 20 GPIO_ACTIVE_HIGH>;
77 default-state = "on";
77 }; 78 };
78 }; 79 };
79 80
@@ -84,6 +85,7 @@
84 regulator-name = "emac-3v3"; 85 regulator-name = "emac-3v3";
85 regulator-min-microvolt = <3300000>; 86 regulator-min-microvolt = <3300000>;
86 regulator-max-microvolt = <3300000>; 87 regulator-max-microvolt = <3300000>;
88 startup-delay-us = <20000>;
87 enable-active-high; 89 enable-active-high;
88 gpio = <&pio 7 15 GPIO_ACTIVE_HIGH>; 90 gpio = <&pio 7 15 GPIO_ACTIVE_HIGH>;
89 }; 91 };
diff --git a/arch/arm/boot/dts/sun4i-a10-hackberry.dts b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
index 2b17c5199151..6de83a6187d0 100644
--- a/arch/arm/boot/dts/sun4i-a10-hackberry.dts
+++ b/arch/arm/boot/dts/sun4i-a10-hackberry.dts
@@ -66,6 +66,7 @@
66 regulator-name = "emac-3v3"; 66 regulator-name = "emac-3v3";
67 regulator-min-microvolt = <3300000>; 67 regulator-min-microvolt = <3300000>;
68 regulator-max-microvolt = <3300000>; 68 regulator-max-microvolt = <3300000>;
69 startup-delay-us = <20000>;
69 enable-active-high; 70 enable-active-high;
70 gpio = <&pio 7 19 GPIO_ACTIVE_HIGH>; 71 gpio = <&pio 7 19 GPIO_ACTIVE_HIGH>;
71 }; 72 };
diff --git a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
index 7afc7a64eef1..e28f080b1fd5 100644
--- a/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
+++ b/arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts
@@ -80,6 +80,7 @@
80 regulator-name = "emac-3v3"; 80 regulator-name = "emac-3v3";
81 regulator-min-microvolt = <3300000>; 81 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>; 82 regulator-max-microvolt = <3300000>;
83 startup-delay-us = <20000>;
83 enable-active-high; 84 enable-active-high;
84 gpio = <&pio 7 19 GPIO_ACTIVE_HIGH>; /* PH19 */ 85 gpio = <&pio 7 19 GPIO_ACTIVE_HIGH>; /* PH19 */
85 }; 86 };
diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi
index ca58eb279d55..7e7dfc2b43db 100644
--- a/arch/arm/boot/dts/sun4i-a10.dtsi
+++ b/arch/arm/boot/dts/sun4i-a10.dtsi
@@ -65,9 +65,9 @@
65 compatible = "allwinner,simple-framebuffer", 65 compatible = "allwinner,simple-framebuffer",
66 "simple-framebuffer"; 66 "simple-framebuffer";
67 allwinner,pipeline = "de_be0-lcd0-hdmi"; 67 allwinner,pipeline = "de_be0-lcd0-hdmi";
68 clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>, 68 clocks = <&ahb_gates 36>, <&ahb_gates 43>,
69 <&ahb_gates 43>, <&ahb_gates 44>, 69 <&ahb_gates 44>, <&de_be0_clk>,
70 <&dram_gates 26>; 70 <&tcon0_ch1_clk>, <&dram_gates 26>;
71 status = "disabled"; 71 status = "disabled";
72 }; 72 };
73 73
@@ -75,9 +75,9 @@
75 compatible = "allwinner,simple-framebuffer", 75 compatible = "allwinner,simple-framebuffer",
76 "simple-framebuffer"; 76 "simple-framebuffer";
77 allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi"; 77 allwinner,pipeline = "de_fe0-de_be0-lcd0-hdmi";
78 clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>, 78 clocks = <&ahb_gates 36>, <&ahb_gates 43>,
79 <&ahb_gates 43>, <&ahb_gates 44>, 79 <&ahb_gates 44>, <&ahb_gates 46>,
80 <&ahb_gates 46>, 80 <&de_be0_clk>, <&de_fe0_clk>, <&tcon0_ch1_clk>,
81 <&dram_gates 25>, <&dram_gates 26>; 81 <&dram_gates 25>, <&dram_gates 26>;
82 status = "disabled"; 82 status = "disabled";
83 }; 83 };
@@ -86,8 +86,8 @@
86 compatible = "allwinner,simple-framebuffer", 86 compatible = "allwinner,simple-framebuffer",
87 "simple-framebuffer"; 87 "simple-framebuffer";
88 allwinner,pipeline = "de_fe0-de_be0-lcd0"; 88 allwinner,pipeline = "de_fe0-de_be0-lcd0";
89 clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>, 89 clocks = <&ahb_gates 36>, <&ahb_gates 44>, <&ahb_gates 46>,
90 <&ahb_gates 44>, <&ahb_gates 46>, 90 <&de_be0_clk>, <&de_fe0_clk>, <&tcon0_ch0_clk>,
91 <&dram_gates 25>, <&dram_gates 26>; 91 <&dram_gates 25>, <&dram_gates 26>;
92 status = "disabled"; 92 status = "disabled";
93 }; 93 };
@@ -96,10 +96,11 @@
96 compatible = "allwinner,simple-framebuffer", 96 compatible = "allwinner,simple-framebuffer",
97 "simple-framebuffer"; 97 "simple-framebuffer";
98 allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0"; 98 allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0";
99 clocks = <&pll3>, <&pll5 1>, <&ahb_gates 34>, 99 clocks = <&ahb_gates 34>, <&ahb_gates 36>,
100 <&ahb_gates 36>, <&ahb_gates 44>, 100 <&ahb_gates 44>, <&ahb_gates 46>,
101 <&ahb_gates 46>, 101 <&de_be0_clk>, <&de_fe0_clk>,
102 <&dram_gates 5>, <&dram_gates 25>, <&dram_gates 26>; 102 <&tcon0_ch1_clk>, <&dram_gates 5>,
103 <&dram_gates 25>, <&dram_gates 26>;
103 status = "disabled"; 104 status = "disabled";
104 }; 105 };
105 }; 106 };
@@ -577,6 +578,81 @@
577 "dram_de_mp", "dram_ace"; 578 "dram_de_mp", "dram_ace";
578 }; 579 };
579 580
581 de_be0_clk: clk@01c20104 {
582 #clock-cells = <0>;
583 #reset-cells = <0>;
584 compatible = "allwinner,sun4i-a10-display-clk";
585 reg = <0x01c20104 0x4>;
586 clocks = <&pll3>, <&pll7>, <&pll5 1>;
587 clock-output-names = "de-be0";
588 };
589
590 de_be1_clk: clk@01c20108 {
591 #clock-cells = <0>;
592 #reset-cells = <0>;
593 compatible = "allwinner,sun4i-a10-display-clk";
594 reg = <0x01c20108 0x4>;
595 clocks = <&pll3>, <&pll7>, <&pll5 1>;
596 clock-output-names = "de-be1";
597 };
598
599 de_fe0_clk: clk@01c2010c {
600 #clock-cells = <0>;
601 #reset-cells = <0>;
602 compatible = "allwinner,sun4i-a10-display-clk";
603 reg = <0x01c2010c 0x4>;
604 clocks = <&pll3>, <&pll7>, <&pll5 1>;
605 clock-output-names = "de-fe0";
606 };
607
608 de_fe1_clk: clk@01c20110 {
609 #clock-cells = <0>;
610 #reset-cells = <0>;
611 compatible = "allwinner,sun4i-a10-display-clk";
612 reg = <0x01c20110 0x4>;
613 clocks = <&pll3>, <&pll7>, <&pll5 1>;
614 clock-output-names = "de-fe1";
615 };
616
617
618 tcon0_ch0_clk: clk@01c20118 {
619 #clock-cells = <0>;
620 #reset-cells = <1>;
621 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
622 reg = <0x01c20118 0x4>;
623 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
624 clock-output-names = "tcon0-ch0-sclk";
625
626 };
627
628 tcon1_ch0_clk: clk@01c2011c {
629 #clock-cells = <0>;
630 #reset-cells = <1>;
631 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
632 reg = <0x01c2011c 0x4>;
633 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
634 clock-output-names = "tcon1-ch0-sclk";
635
636 };
637
638 tcon0_ch1_clk: clk@01c2012c {
639 #clock-cells = <0>;
640 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
641 reg = <0x01c2012c 0x4>;
642 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
643 clock-output-names = "tcon0-ch1-sclk";
644
645 };
646
647 tcon1_ch1_clk: clk@01c20130 {
648 #clock-cells = <0>;
649 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
650 reg = <0x01c20130 0x4>;
651 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
652 clock-output-names = "tcon1-ch1-sclk";
653
654 };
655
580 ve_clk: clk@01c2013c { 656 ve_clk: clk@01c2013c {
581 #clock-cells = <0>; 657 #clock-cells = <0>;
582 #reset-cells = <0>; 658 #reset-cells = <0>;
@@ -645,6 +721,19 @@
645 #dma-cells = <2>; 721 #dma-cells = <2>;
646 }; 722 };
647 723
724 nfc: nand@01c03000 {
725 compatible = "allwinner,sun4i-a10-nand";
726 reg = <0x01c03000 0x1000>;
727 interrupts = <37>;
728 clocks = <&ahb_gates 13>, <&nand_clk>;
729 clock-names = "ahb", "mod";
730 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
731 dma-names = "rxtx";
732 status = "disabled";
733 #address-cells = <1>;
734 #size-cells = <0>;
735 };
736
648 spi0: spi@01c05000 { 737 spi0: spi@01c05000 {
649 compatible = "allwinner,sun4i-a10-spi"; 738 compatible = "allwinner,sun4i-a10-spi";
650 reg = <0x01c05000 0x1000>; 739 reg = <0x01c05000 0x1000>;
@@ -884,69 +973,62 @@
884 #interrupt-cells = <3>; 973 #interrupt-cells = <3>;
885 #gpio-cells = <3>; 974 #gpio-cells = <3>;
886 975
887 pwm0_pins_a: pwm0@0 { 976 emac_pins_a: emac0@0 {
888 allwinner,pins = "PB2"; 977 allwinner,pins = "PA0", "PA1", "PA2",
889 allwinner,function = "pwm"; 978 "PA3", "PA4", "PA5", "PA6",
890 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 979 "PA7", "PA8", "PA9", "PA10",
891 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 980 "PA11", "PA12", "PA13", "PA14",
892 }; 981 "PA15", "PA16";
893 982 allwinner,function = "emac";
894 pwm1_pins_a: pwm1@0 {
895 allwinner,pins = "PI3";
896 allwinner,function = "pwm";
897 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 983 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
898 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 984 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
899 }; 985 };
900 986
901 uart0_pins_a: uart0@0 { 987 i2c0_pins_a: i2c0@0 {
902 allwinner,pins = "PB22", "PB23"; 988 allwinner,pins = "PB0", "PB1";
903 allwinner,function = "uart0"; 989 allwinner,function = "i2c0";
904 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 990 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
905 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 991 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
906 }; 992 };
907 993
908 uart0_pins_b: uart0@1 { 994 i2c1_pins_a: i2c1@0 {
909 allwinner,pins = "PF2", "PF4"; 995 allwinner,pins = "PB18", "PB19";
910 allwinner,function = "uart0"; 996 allwinner,function = "i2c1";
911 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 997 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
912 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 998 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
913 }; 999 };
914 1000
915 uart1_pins_a: uart1@0 { 1001 i2c2_pins_a: i2c2@0 {
916 allwinner,pins = "PA10", "PA11"; 1002 allwinner,pins = "PB20", "PB21";
917 allwinner,function = "uart1"; 1003 allwinner,function = "i2c2";
918 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1004 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
919 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1005 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
920 }; 1006 };
921 1007
922 i2c0_pins_a: i2c0@0 { 1008 ir0_rx_pins_a: ir0@0 {
923 allwinner,pins = "PB0", "PB1"; 1009 allwinner,pins = "PB4";
924 allwinner,function = "i2c0"; 1010 allwinner,function = "ir0";
925 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1011 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
926 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1012 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
927 }; 1013 };
928 1014
929 i2c1_pins_a: i2c1@0 { 1015 ir0_tx_pins_a: ir0@1 {
930 allwinner,pins = "PB18", "PB19"; 1016 allwinner,pins = "PB3";
931 allwinner,function = "i2c1"; 1017 allwinner,function = "ir0";
932 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1018 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
933 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1019 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
934 }; 1020 };
935 1021
936 i2c2_pins_a: i2c2@0 { 1022 ir1_rx_pins_a: ir1@0 {
937 allwinner,pins = "PB20", "PB21"; 1023 allwinner,pins = "PB23";
938 allwinner,function = "i2c2"; 1024 allwinner,function = "ir1";
939 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1025 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
940 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1026 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
941 }; 1027 };
942 1028
943 emac_pins_a: emac0@0 { 1029 ir1_tx_pins_a: ir1@1 {
944 allwinner,pins = "PA0", "PA1", "PA2", 1030 allwinner,pins = "PB22";
945 "PA3", "PA4", "PA5", "PA6", 1031 allwinner,function = "ir1";
946 "PA7", "PA8", "PA9", "PA10",
947 "PA11", "PA12", "PA13", "PA14",
948 "PA15", "PA16";
949 allwinner,function = "emac";
950 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1032 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
951 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1033 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
952 }; 1034 };
@@ -966,34 +1048,41 @@
966 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 1048 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
967 }; 1049 };
968 1050
969 ir0_rx_pins_a: ir0@0 { 1051 ps20_pins_a: ps20@0 {
970 allwinner,pins = "PB4"; 1052 allwinner,pins = "PI20", "PI21";
971 allwinner,function = "ir0"; 1053 allwinner,function = "ps2";
972 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1054 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
973 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1055 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
974 }; 1056 };
975 1057
976 ir0_tx_pins_a: ir0@1 { 1058 ps21_pins_a: ps21@0 {
977 allwinner,pins = "PB3"; 1059 allwinner,pins = "PH12", "PH13";
978 allwinner,function = "ir0"; 1060 allwinner,function = "ps2";
979 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1061 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
980 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1062 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
981 }; 1063 };
982 1064
983 ir1_rx_pins_a: ir1@0 { 1065 pwm0_pins_a: pwm0@0 {
984 allwinner,pins = "PB23"; 1066 allwinner,pins = "PB2";
985 allwinner,function = "ir1"; 1067 allwinner,function = "pwm";
986 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1068 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
987 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1069 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
988 }; 1070 };
989 1071
990 ir1_tx_pins_a: ir1@1 { 1072 pwm1_pins_a: pwm1@0 {
991 allwinner,pins = "PB22"; 1073 allwinner,pins = "PI3";
992 allwinner,function = "ir1"; 1074 allwinner,function = "pwm";
993 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1075 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
994 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1076 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
995 }; 1077 };
996 1078
1079 spdif_tx_pins_a: spdif@0 {
1080 allwinner,pins = "PB13";
1081 allwinner,function = "spdif";
1082 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1083 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1084 };
1085
997 spi0_pins_a: spi0@0 { 1086 spi0_pins_a: spi0@0 {
998 allwinner,pins = "PI11", "PI12", "PI13"; 1087 allwinner,pins = "PI11", "PI12", "PI13";
999 allwinner,function = "spi0"; 1088 allwinner,function = "spi0";
@@ -1050,25 +1139,25 @@
1050 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1139 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1051 }; 1140 };
1052 1141
1053 ps20_pins_a: ps20@0 { 1142 uart0_pins_a: uart0@0 {
1054 allwinner,pins = "PI20", "PI21"; 1143 allwinner,pins = "PB22", "PB23";
1055 allwinner,function = "ps2"; 1144 allwinner,function = "uart0";
1056 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1145 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1057 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1146 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1058 }; 1147 };
1059 1148
1060 ps21_pins_a: ps21@0 { 1149 uart0_pins_b: uart0@1 {
1061 allwinner,pins = "PH12", "PH13"; 1150 allwinner,pins = "PF2", "PF4";
1062 allwinner,function = "ps2"; 1151 allwinner,function = "uart0";
1063 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1152 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1064 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1153 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1065 }; 1154 };
1066 1155
1067 spdif_tx_pins_a: spdif@0 { 1156 uart1_pins_a: uart1@0 {
1068 allwinner,pins = "PB13"; 1157 allwinner,pins = "PA10", "PA11";
1069 allwinner,function = "spdif"; 1158 allwinner,function = "uart1";
1070 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1159 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1071 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 1160 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1072 }; 1161 };
1073 }; 1162 };
1074 1163
diff --git a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
index a790ec8adb75..2150e15e115a 100644
--- a/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts
@@ -124,7 +124,18 @@
124 status = "okay"; 124 status = "okay";
125}; 125};
126 126
127&otg_sram {
128 status = "okay";
129};
130
127&pio { 131&pio {
132 usb0_id_detect_pin: usb0_id_detect_pin@0 {
133 allwinner,pins = "PG12";
134 allwinner,function = "gpio_in";
135 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
136 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
137 };
138
128 mmc0_cd_pin_t004: mmc0_cd_pin@0 { 139 mmc0_cd_pin_t004: mmc0_cd_pin@0 {
129 allwinner,pins = "PG1"; 140 allwinner,pins = "PG1";
130 allwinner,function = "gpio_in"; 141 allwinner,function = "gpio_in";
@@ -158,11 +169,19 @@
158 status = "okay"; 169 status = "okay";
159}; 170};
160 171
172&usb_otg {
173 dr_mode = "otg";
174 status = "okay";
175};
176
161&usb1_vbus_pin_a { 177&usb1_vbus_pin_a {
162 allwinner,pins = "PG13"; 178 allwinner,pins = "PG13";
163}; 179};
164 180
165&usbphy { 181&usbphy {
182 pinctrl-names = "default";
183 pinctrl-0 = <&usb0_id_detect_pin>;
184 usb0_id_det-gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
166 usb1_vbus-supply = <&reg_usb1_vbus>; 185 usb1_vbus-supply = <&reg_usb1_vbus>;
167 status = "okay"; 186 status = "okay";
168}; 187};
diff --git a/arch/arm/boot/dts/sun5i-a10s-mk802.dts b/arch/arm/boot/dts/sun5i-a10s-mk802.dts
index 46ff9407826d..c84ac005342e 100644
--- a/arch/arm/boot/dts/sun5i-a10s-mk802.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-mk802.dts
@@ -73,6 +73,20 @@
73 status = "okay"; 73 status = "okay";
74}; 74};
75 75
76&i2c0 {
77 pinctrl-names = "default";
78 pinctrl-0 = <&i2c0_pins_a>;
79 status = "okay";
80
81 axp152: pmic@30 {
82 compatible = "x-powers,axp152";
83 reg = <0x30>;
84 interrupts = <0>;
85 interrupt-controller;
86 #interrupt-cells = <1>;
87 };
88};
89
76&mmc0 { 90&mmc0 {
77 pinctrl-names = "default"; 91 pinctrl-names = "default";
78 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_mk802>; 92 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_mk802>;
@@ -83,10 +97,23 @@
83 status = "okay"; 97 status = "okay";
84}; 98};
85 99
100&mmc1 {
101 pinctrl-names = "default";
102 pinctrl-0 = <&mmc1_pins_a>;
103 vmmc-supply = <&reg_vcc3v3>;
104 bus-width = <4>;
105 non-removable;
106 status = "okay";
107};
108
86&ohci0 { 109&ohci0 {
87 status = "okay"; 110 status = "okay";
88}; 111};
89 112
113&otg_sram {
114 status = "okay";
115};
116
90&pio { 117&pio {
91 led_pins_mk802: led_pins@0 { 118 led_pins_mk802: led_pins@0 {
92 allwinner,pins = "PB2"; 119 allwinner,pins = "PB2";
@@ -122,6 +149,11 @@
122 status = "okay"; 149 status = "okay";
123}; 150};
124 151
152&usb_otg {
153 dr_mode = "peripheral";
154 status = "okay";
155};
156
125&usbphy { 157&usbphy {
126 usb1_vbus-supply = <&reg_usb1_vbus>; 158 usb1_vbus-supply = <&reg_usb1_vbus>;
127 status = "okay"; 159 status = "okay";
diff --git a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
index 86d046a502e6..aef91476f9ae 100644
--- a/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts
@@ -248,6 +248,13 @@
248 status = "okay"; 248 status = "okay";
249}; 249};
250 250
251&spi2 {
252 pinctrl-names = "default";
253 pinctrl-0 = <&spi2_pins_a>,
254 <&spi2_cs0_pins_a>;
255 status = "okay";
256};
257
251&uart0 { 258&uart0 {
252 pinctrl-names = "default"; 259 pinctrl-names = "default";
253 pinctrl-0 = <&uart0_pins_a>; 260 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
index 9fea918f949e..b5de75f4c710 100644
--- a/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
+++ b/arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts
@@ -79,6 +79,7 @@
79 regulator-name = "emac-3v3"; 79 regulator-name = "emac-3v3";
80 regulator-min-microvolt = <3300000>; 80 regulator-min-microvolt = <3300000>;
81 regulator-max-microvolt = <3300000>; 81 regulator-max-microvolt = <3300000>;
82 startup-delay-us = <20000>;
82 enable-active-high; 83 enable-active-high;
83 gpio = <&pio 0 2 GPIO_ACTIVE_HIGH>; 84 gpio = <&pio 0 2 GPIO_ACTIVE_HIGH>;
84 }; 85 };
@@ -195,7 +196,14 @@
195 regulator-always-on; 196 regulator-always-on;
196 regulator-min-microvolt = <3300000>; 197 regulator-min-microvolt = <3300000>;
197 regulator-max-microvolt = <3300000>; 198 regulator-max-microvolt = <3300000>;
198 regulator-name = "vcc-wifi"; 199 regulator-name = "vcc-wifi1";
200};
201
202&reg_ldo4 {
203 regulator-always-on;
204 regulator-min-microvolt = <3300000>;
205 regulator-max-microvolt = <3300000>;
206 regulator-name = "vcc-wifi2";
199}; 207};
200 208
201&reg_usb1_vbus { 209&reg_usb1_vbus {
diff --git a/arch/arm/boot/dts/sun5i-a10s.dtsi b/arch/arm/boot/dts/sun5i-a10s.dtsi
index 367f33012493..c41a2ba34dde 100644
--- a/arch/arm/boot/dts/sun5i-a10s.dtsi
+++ b/arch/arm/boot/dts/sun5i-a10s.dtsi
@@ -242,6 +242,20 @@
242 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 242 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
244 }; 244 };
245
246 spi2_pins_a: spi2@0 {
247 allwinner,pins = "PB12", "PB13", "PB14";
248 allwinner,function = "spi2";
249 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
250 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
251 };
252
253 spi2_cs0_pins_a: spi2_cs0@0 {
254 allwinner,pins = "PB11";
255 allwinner,function = "spi2";
256 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
257 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
258 };
245}; 259};
246 260
247&sram_a { 261&sram_a {
diff --git a/arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts b/arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts
index 6546fa02901d..894c4c4f9a1f 100644
--- a/arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts
+++ b/arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts
@@ -42,185 +42,9 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun5i-a13.dtsi" 44#include "sun5i-a13.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun5i-reference-design-tablet.dtsi"
46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
51 46
52/ { 47/ {
53 model = "Difrnce DIT4350"; 48 model = "Difrnce DIT4350";
54 compatible = "difrnce,dit4350", "allwinner,sun5i-a13"; 49 compatible = "difrnce,dit4350", "allwinner,sun5i-a13";
55
56 aliases {
57 serial0 = &uart1;
58 };
59
60 backlight: backlight {
61 compatible = "pwm-backlight";
62 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
63 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
64 default-brightness-level = <8>;
65 /* TODO: backlight uses axp gpio1 as enable pin */
66 };
67
68 chosen {
69 stdout-path = "serial0:115200n8";
70 };
71};
72
73&cpu0 {
74 cpu-supply = <&reg_dcdc2>;
75};
76
77&ehci0 {
78 status = "okay";
79};
80
81&i2c0 {
82 pinctrl-names = "default";
83 pinctrl-0 = <&i2c0_pins_a>;
84 status = "okay";
85
86 axp209: pmic@34 {
87 reg = <0x34>;
88 interrupts = <0>;
89 };
90};
91
92#include "axp209.dtsi"
93
94&i2c1 {
95 pinctrl-names = "default";
96 pinctrl-0 = <&i2c1_pins_a>;
97 status = "okay";
98
99 pcf8563: rtc@51 {
100 compatible = "nxp,pcf8563";
101 reg = <0x51>;
102 };
103};
104
105&lradc {
106 vref-supply = <&reg_ldo2>;
107 status = "okay";
108
109 button@200 {
110 label = "Volume Up";
111 linux,code = <KEY_VOLUMEUP>;
112 channel = <0>;
113 voltage = <200000>;
114 };
115
116 button@400 {
117 label = "Volume Down";
118 linux,code = <KEY_VOLUMEDOWN>;
119 channel = <0>;
120 voltage = <400000>;
121 };
122};
123
124&mmc0 {
125 pinctrl-names = "default";
126 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_d709>;
127 vmmc-supply = <&reg_vcc3v3>;
128 bus-width = <4>;
129 cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
130 cd-inverted;
131 status = "okay";
132};
133
134&otg_sram {
135 status = "okay";
136};
137
138&pio {
139 mmc0_cd_pin_d709: mmc0_cd_pin@0 {
140 allwinner,pins = "PG0";
141 allwinner,function = "gpio_in";
142 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
143 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
144 };
145
146 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
147 allwinner,pins = "PG1";
148 allwinner,function = "gpio_in";
149 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
150 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
151 };
152
153 usb0_id_detect_pin: usb0_id_detect_pin@0 {
154 allwinner,pins = "PG2";
155 allwinner,function = "gpio_in";
156 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
157 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
158 };
159};
160
161&pwm {
162 pinctrl-names = "default";
163 pinctrl-0 = <&pwm0_pins>;
164 status = "okay";
165};
166
167&reg_dcdc2 {
168 regulator-always-on;
169 regulator-min-microvolt = <1000000>;
170 regulator-max-microvolt = <1400000>;
171 regulator-name = "vdd-cpu";
172};
173
174&reg_dcdc3 {
175 regulator-always-on;
176 regulator-min-microvolt = <1250000>;
177 regulator-max-microvolt = <1250000>;
178 regulator-name = "vdd-int-pll";
179};
180
181&reg_ldo1 {
182 regulator-name = "vdd-rtc";
183};
184
185&reg_ldo2 {
186 regulator-always-on;
187 regulator-min-microvolt = <3000000>;
188 regulator-max-microvolt = <3000000>;
189 regulator-name = "avcc";
190};
191
192&reg_ldo3 {
193 regulator-min-microvolt = <3300000>;
194 regulator-max-microvolt = <3300000>;
195 regulator-name = "vcc-wifi";
196};
197
198&reg_usb0_vbus {
199 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
200 status = "okay";
201};
202
203&uart1 {
204 pinctrl-names = "default";
205 pinctrl-0 = <&uart1_pins_b>;
206 status = "okay";
207};
208
209&usb_otg {
210 dr_mode = "otg";
211 status = "okay";
212};
213
214&usb0_vbus_pin_a {
215 allwinner,pins = "PG12";
216};
217
218&usbphy {
219 pinctrl-names = "default";
220 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
221 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
222 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
223 usb0_vbus-supply = <&reg_usb0_vbus>;
224 usb1_vbus-supply = <&reg_ldo3>;
225 status = "okay";
226}; 50};
diff --git a/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts b/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts
index 72e93acb5a9e..a89f29fa3e40 100644
--- a/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts
+++ b/arch/arm/boot/dts/sun5i-a13-q8-tablet.dts
@@ -42,19 +42,45 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun5i-a13.dtsi" 44#include "sun5i-a13.dtsi"
45#include "sun5i-q8-common.dtsi" 45#include "sun5i-reference-design-tablet.dtsi"
46 46
47/ { 47/ {
48 model = "Q8 A13 Tablet"; 48 model = "Q8 A13 Tablet";
49 compatible = "allwinner,q8-a13", "allwinner,sun5i-a13"; 49 compatible = "allwinner,q8-a13", "allwinner,sun5i-a13";
50
51 panel: panel {
52 compatible = "urt,umsh-8596md-t", "simple-panel";
53 #address-cells = <1>;
54 #size-cells = <0>;
55
56 port@0 {
57 reg = <0>;
58 /* TODO: lcd panel uses axp gpio0 as enable pin */
59 backlight = <&backlight>;
60 #address-cells = <1>;
61 #size-cells = <0>;
62
63 panel_input: endpoint@0 {
64 reg = <0>;
65 remote-endpoint = <&tcon0_out_lcd>;
66 };
67 };
68 };
69};
70
71&be0 {
72 status = "okay";
50}; 73};
51 74
52&reg_ldo3 { 75&tcon0 {
53 regulator-min-microvolt = <3300000>; 76 pinctrl-names = "default";
54 regulator-max-microvolt = <3300000>; 77 pinctrl-0 = <&lcd_rgb666_pins>;
55 regulator-name = "vcc-wifi"; 78 status = "okay";
56}; 79};
57 80
58&usbphy { 81&tcon0_out {
59 usb1_vbus-supply = <&reg_ldo3>; 82 tcon0_out_lcd: endpoint@0 {
83 reg = <0>;
84 remote-endpoint = <&panel_input>;
85 };
60}; 86};
diff --git a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
index fa9ddfdcfe96..a8b0bcc04514 100644
--- a/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
+++ b/arch/arm/boot/dts/sun5i-a13-utoo-p66.dts
@@ -42,24 +42,20 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun5i-a13.dtsi" 44#include "sun5i-a13.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun5i-reference-design-tablet.dtsi"
46#include <dt-bindings/gpio/gpio.h>
47#include <dt-bindings/input/input.h>
48#include <dt-bindings/interrupt-controller/irq.h> 46#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50#include <dt-bindings/pwm/pwm.h>
51 47
52/ { 48/ {
53 model = "Utoo P66"; 49 model = "Utoo P66";
54 compatible = "utoo,p66", "allwinner,sun5i-a13"; 50 compatible = "utoo,p66", "allwinner,sun5i-a13";
55 51
56 backlight: backlight { 52 /* The P66 uses the uart pins as gpios */
57 compatible = "pwm-backlight"; 53 aliases {
58 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>; 54 /delete-property/serial0;
59 /* Note levels of 10 / 20% result in backlight off */ 55 };
60 brightness-levels = <0 30 40 50 60 70 80 90 100>; 56
61 default-brightness-level = <6>; 57 chosen {
62 /* TODO: backlight uses axp gpio1 as enable pin */ 58 /delete-property/stdout-path;
63 }; 59 };
64 60
65 i2c_lcd: i2c@0 { 61 i2c_lcd: i2c@0 {
@@ -73,39 +69,21 @@
73 }; 69 };
74}; 70};
75 71
76&codec { 72&backlight {
77 pinctrl-names = "default"; 73 /* Note levels of 10 / 20% result in backlight off */
78 pinctrl-0 = <&codec_pa_pin>; 74 brightness-levels = <0 30 40 50 60 70 80 90 100>;
79 allwinner,pa-gpios = <&pio 6 3 GPIO_ACTIVE_HIGH>; /* PG3 */ 75 default-brightness-level = <6>;
80 status = "okay";
81};
82
83&cpu0 {
84 cpu-supply = <&reg_dcdc2>;
85}; 76};
86 77
87&ehci0 { 78&codec {
88 status = "okay"; 79 allwinner,pa-gpios = <&pio 6 3 GPIO_ACTIVE_HIGH>; /* PG3 */
89}; 80};
90 81
91&i2c0 { 82&codec_pa_pin {
92 pinctrl-names = "default"; 83 allwinner,pins = "PG3";
93 pinctrl-0 = <&i2c0_pins_a>;
94 status = "okay";
95
96 axp209: pmic@34 {
97 reg = <0x34>;
98 interrupts = <0>;
99 };
100}; 84};
101 85
102#include "axp209.dtsi"
103
104&i2c1 { 86&i2c1 {
105 pinctrl-names = "default";
106 pinctrl-0 = <&i2c1_pins_a>;
107 status = "okay";
108
109 icn8318: touchscreen@40 { 87 icn8318: touchscreen@40 {
110 compatible = "chipone,icn8318"; 88 compatible = "chipone,icn8318";
111 reg = <0x40>; 89 reg = <0x40>;
@@ -119,40 +97,6 @@
119 touchscreen-inverted-x; 97 touchscreen-inverted-x;
120 touchscreen-swapped-x-y; 98 touchscreen-swapped-x-y;
121 }; 99 };
122
123 pcf8563: rtc@51 {
124 compatible = "nxp,pcf8563";
125 reg = <0x51>;
126 };
127};
128
129&lradc {
130 vref-supply = <&reg_ldo2>;
131 status = "okay";
132
133 button@200 {
134 label = "Volume Up";
135 linux,code = <KEY_VOLUMEUP>;
136 channel = <0>;
137 voltage = <200000>;
138 };
139
140 button@400 {
141 label = "Volume Down";
142 linux,code = <KEY_VOLUMEDOWN>;
143 channel = <0>;
144 voltage = <400000>;
145 };
146};
147
148&mmc0 {
149 pinctrl-names = "default";
150 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_p66>;
151 vmmc-supply = <&reg_vcc3v3>;
152 bus-width = <4>;
153 cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
154 cd-inverted;
155 status = "okay";
156}; 100};
157 101
158&mmc2 { 102&mmc2 {
@@ -170,39 +114,7 @@
170 }; 114 };
171}; 115};
172 116
173&otg_sram {
174 status = "okay";
175};
176
177&pio { 117&pio {
178 codec_pa_pin: codec_pa_pin@0 {
179 allwinner,pins = "PG3";
180 allwinner,function = "gpio_out";
181 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
182 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
183 };
184
185 mmc0_cd_pin_p66: mmc0_cd_pin@0 {
186 allwinner,pins = "PG0";
187 allwinner,function = "gpio_in";
188 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
189 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
190 };
191
192 usb0_vbus_detect_pin: usb0_vbus_detect_pin@0 {
193 allwinner,pins = "PG1";
194 allwinner,function = "gpio_in";
195 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
196 allwinner,pull = <SUN4I_PINCTRL_PULL_DOWN>;
197 };
198
199 usb0_id_detect_pin: usb0_id_detect_pin@0 {
200 allwinner,pins = "PG2";
201 allwinner,function = "gpio_in";
202 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
203 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
204 };
205
206 i2c_lcd_pins: i2c_lcd_pin@0 { 118 i2c_lcd_pins: i2c_lcd_pin@0 {
207 allwinner,pins = "PG10", "PG12"; 119 allwinner,pins = "PG10", "PG12";
208 allwinner,function = "gpio_out"; 120 allwinner,function = "gpio_out";
@@ -217,67 +129,17 @@
217 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 129 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
218 }; 130 };
219 131
220 usb0_vbus_pin_a: usb0_vbus_pin@0 {
221 allwinner,pins = "PB4";
222 allwinner,function = "gpio_out";
223 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
224 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
225 };
226};
227
228&pwm {
229 pinctrl-names = "default";
230 pinctrl-0 = <&pwm0_pins>;
231 status = "okay";
232};
233
234&reg_dcdc2 {
235 regulator-always-on;
236 regulator-min-microvolt = <1000000>;
237 regulator-max-microvolt = <1500000>;
238 regulator-name = "vdd-cpu";
239};
240
241&reg_dcdc3 {
242 regulator-always-on;
243 regulator-min-microvolt = <1000000>;
244 regulator-max-microvolt = <1400000>;
245 regulator-name = "vdd-int-pll";
246};
247
248&reg_ldo1 {
249 regulator-name = "vdd-rtc";
250};
251
252&reg_ldo2 {
253 regulator-always-on;
254 regulator-min-microvolt = <3000000>;
255 regulator-max-microvolt = <3000000>;
256 regulator-name = "avcc";
257};
258
259&reg_ldo3 {
260 regulator-min-microvolt = <3300000>;
261 regulator-max-microvolt = <3300000>;
262 regulator-name = "vcc-wifi";
263}; 132};
264 133
265&reg_usb0_vbus { 134&reg_usb0_vbus {
266 gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */ 135 gpio = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
267 status = "okay";
268}; 136};
269 137
270&usb_otg { 138&uart1 {
271 dr_mode = "otg"; 139 /* The P66 uses the uart pins as gpios */
272 status = "okay"; 140 status = "disabled";
273}; 141};
274 142
275&usbphy { 143&usb0_vbus_pin_a {
276 pinctrl-names = "default"; 144 allwinner,pins = "PB4";
277 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
278 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
279 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
280 usb0_vbus-supply = <&reg_usb0_vbus>;
281 usb1_vbus-supply = <&reg_ldo3>;
282 status = "okay";
283}; 145};
diff --git a/arch/arm/boot/dts/sun5i-a13.dtsi b/arch/arm/boot/dts/sun5i-a13.dtsi
index 263d46dbc7e6..e012890e0cf2 100644
--- a/arch/arm/boot/dts/sun5i-a13.dtsi
+++ b/arch/arm/boot/dts/sun5i-a13.dtsi
@@ -207,7 +207,50 @@
207 }; 207 };
208 }; 208 };
209 209
210 display-engine {
211 compatible = "allwinner,sun5i-a13-display-engine";
212 allwinner,pipelines = <&fe0>;
213 };
214
210 soc@01c00000 { 215 soc@01c00000 {
216 tcon0: lcd-controller@01c0c000 {
217 compatible = "allwinner,sun5i-a13-tcon";
218 reg = <0x01c0c000 0x1000>;
219 interrupts = <44>;
220 resets = <&tcon_ch0_clk 1>;
221 reset-names = "lcd";
222 clocks = <&ahb_gates 36>,
223 <&tcon_ch0_clk>,
224 <&tcon_ch1_clk>;
225 clock-names = "ahb",
226 "tcon-ch0",
227 "tcon-ch1";
228 clock-output-names = "tcon-pixel-clock";
229 status = "disabled";
230
231 ports {
232 #address-cells = <1>;
233 #size-cells = <0>;
234
235 tcon0_in: port@0 {
236 #address-cells = <1>;
237 #size-cells = <0>;
238 reg = <0>;
239
240 tcon0_in_be0: endpoint@0 {
241 reg = <0>;
242 remote-endpoint = <&be0_out_tcon0>;
243 };
244 };
245
246 tcon0_out: port@1 {
247 #address-cells = <1>;
248 #size-cells = <0>;
249 reg = <1>;
250 };
251 };
252 };
253
211 pwm: pwm@01c20e00 { 254 pwm: pwm@01c20e00 {
212 compatible = "allwinner,sun5i-a13-pwm"; 255 compatible = "allwinner,sun5i-a13-pwm";
213 reg = <0x01c20e00 0xc>; 256 reg = <0x01c20e00 0xc>;
@@ -215,6 +258,75 @@
215 #pwm-cells = <3>; 258 #pwm-cells = <3>;
216 status = "disabled"; 259 status = "disabled";
217 }; 260 };
261
262 fe0: display-frontend@01e00000 {
263 compatible = "allwinner,sun5i-a13-display-frontend";
264 reg = <0x01e00000 0x20000>;
265 interrupts = <47>;
266 clocks = <&ahb_gates 46>, <&de_fe_clk>,
267 <&dram_gates 25>;
268 clock-names = "ahb", "mod",
269 "ram";
270 resets = <&de_fe_clk>;
271 status = "disabled";
272
273 ports {
274 #address-cells = <1>;
275 #size-cells = <0>;
276
277 fe0_out: port@1 {
278 #address-cells = <1>;
279 #size-cells = <0>;
280 reg = <1>;
281
282 fe0_out_be0: endpoint@0 {
283 reg = <0>;
284 remote-endpoint = <&be0_in_fe0>;
285 };
286 };
287 };
288 };
289
290 be0: display-backend@01e60000 {
291 compatible = "allwinner,sun5i-a13-display-backend";
292 reg = <0x01e60000 0x10000>;
293 clocks = <&ahb_gates 44>, <&de_be_clk>,
294 <&dram_gates 26>;
295 clock-names = "ahb", "mod",
296 "ram";
297 resets = <&de_be_clk>;
298 status = "disabled";
299
300 assigned-clocks = <&de_be_clk>;
301 assigned-clock-rates = <300000000>;
302
303 ports {
304 #address-cells = <1>;
305 #size-cells = <0>;
306
307 be0_in: port@0 {
308 #address-cells = <1>;
309 #size-cells = <0>;
310 reg = <0>;
311
312 be0_in_fe0: endpoint@0 {
313 reg = <0>;
314 remote-endpoint = <&fe0_out_be0>;
315 };
316 };
317
318 be0_out: port@1 {
319 #address-cells = <1>;
320 #size-cells = <0>;
321 reg = <1>;
322
323 be0_out_tcon0: endpoint@0 {
324 reg = <0>;
325 remote-endpoint = <&tcon0_in_be0>;
326 };
327 };
328 };
329 };
218 }; 330 };
219}; 331};
220 332
@@ -237,6 +349,16 @@
237&pio { 349&pio {
238 compatible = "allwinner,sun5i-a13-pinctrl"; 350 compatible = "allwinner,sun5i-a13-pinctrl";
239 351
352 lcd_rgb666_pins: lcd_rgb666@0 {
353 allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7",
354 "PD10", "PD11", "PD12", "PD13", "PD14", "PD15",
355 "PD18", "PD19", "PD20", "PD21", "PD22", "PD23",
356 "PD24", "PD25", "PD26", "PD27";
357 allwinner,function = "lcd0";
358 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
359 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
360 };
361
240 uart1_pins_a: uart1@0 { 362 uart1_pins_a: uart1@0 {
241 allwinner,pins = "PE10", "PE11"; 363 allwinner,pins = "PE10", "PE11";
242 allwinner,function = "uart1"; 364 allwinner,function = "uart1";
diff --git a/arch/arm/boot/dts/sun5i-r8.dtsi b/arch/arm/boot/dts/sun5i-r8.dtsi
index c04cf690b858..8b058f53b7dc 100644
--- a/arch/arm/boot/dts/sun5i-r8.dtsi
+++ b/arch/arm/boot/dts/sun5i-r8.dtsi
@@ -76,122 +76,12 @@
76 }; 76 };
77 }; 77 };
78 }; 78 };
79
80 tcon0: lcd-controller@01c0c000 {
81 compatible = "allwinner,sun5i-a13-tcon";
82 reg = <0x01c0c000 0x1000>;
83 interrupts = <44>;
84 resets = <&tcon_ch0_clk 1>;
85 reset-names = "lcd";
86 clocks = <&ahb_gates 36>,
87 <&tcon_ch0_clk>,
88 <&tcon_ch1_clk>;
89 clock-names = "ahb",
90 "tcon-ch0",
91 "tcon-ch1";
92 clock-output-names = "tcon-pixel-clock";
93 status = "disabled";
94
95 ports {
96 #address-cells = <1>;
97 #size-cells = <0>;
98
99 tcon0_in: port@0 {
100 #address-cells = <1>;
101 #size-cells = <0>;
102 reg = <0>;
103
104 tcon0_in_be0: endpoint@0 {
105 reg = <0>;
106 remote-endpoint = <&be0_out_tcon0>;
107 };
108 };
109
110 tcon0_out: port@1 {
111 #address-cells = <1>;
112 #size-cells = <0>;
113 reg = <1>;
114
115 tcon0_out_tve0: endpoint@1 {
116 reg = <1>;
117 remote-endpoint = <&tve0_in_tcon0>;
118 };
119 };
120 };
121 };
122
123 fe0: display-frontend@01e00000 {
124 compatible = "allwinner,sun5i-a13-display-frontend";
125 reg = <0x01e00000 0x20000>;
126 interrupts = <47>;
127 clocks = <&ahb_gates 46>, <&de_fe_clk>,
128 <&dram_gates 25>;
129 clock-names = "ahb", "mod",
130 "ram";
131 resets = <&de_fe_clk>;
132 status = "disabled";
133
134 ports {
135 #address-cells = <1>;
136 #size-cells = <0>;
137
138 fe0_out: port@1 {
139 #address-cells = <1>;
140 #size-cells = <0>;
141 reg = <1>;
142
143 fe0_out_be0: endpoint@0 {
144 reg = <0>;
145 remote-endpoint = <&be0_in_fe0>;
146 };
147 };
148 };
149 };
150
151 be0: display-backend@01e60000 {
152 compatible = "allwinner,sun5i-a13-display-backend";
153 reg = <0x01e60000 0x10000>;
154 clocks = <&ahb_gates 44>, <&de_be_clk>,
155 <&dram_gates 26>;
156 clock-names = "ahb", "mod",
157 "ram";
158 resets = <&de_be_clk>;
159 status = "disabled";
160
161 assigned-clocks = <&de_be_clk>;
162 assigned-clock-rates = <300000000>;
163
164 ports {
165 #address-cells = <1>;
166 #size-cells = <0>;
167
168 be0_in: port@0 {
169 #address-cells = <1>;
170 #size-cells = <0>;
171 reg = <0>;
172
173 be0_in_fe0: endpoint@0 {
174 reg = <0>;
175 remote-endpoint = <&fe0_out_be0>;
176 };
177 };
178
179 be0_out: port@1 {
180 #address-cells = <1>;
181 #size-cells = <0>;
182 reg = <1>;
183
184 be0_out_tcon0: endpoint@0 {
185 reg = <0>;
186 remote-endpoint = <&tcon0_in_be0>;
187 };
188 };
189 };
190 };
191 }; 79 };
80};
192 81
193 display-engine { 82&tcon0_out {
194 compatible = "allwinner,sun5i-a13-display-engine"; 83 tcon0_out_tve0: endpoint@1 {
195 allwinner,pipelines = <&fe0>; 84 reg = <1>;
85 remote-endpoint = <&tve0_in_tcon0>;
196 }; 86 };
197}; 87};
diff --git a/arch/arm/boot/dts/sun5i-q8-common.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
index a78e189f6653..20cc940f5f91 100644
--- a/arch/arm/boot/dts/sun5i-q8-common.dtsi
+++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
@@ -39,7 +39,7 @@
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 41 */
42#include "sunxi-q8-common.dtsi" 42#include "sunxi-reference-design-tablet.dtsi"
43 43
44#include <dt-bindings/pwm/pwm.h> 44#include <dt-bindings/pwm/pwm.h>
45 45
@@ -61,6 +61,13 @@
61 }; 61 };
62}; 62};
63 63
64&codec {
65 pinctrl-names = "default";
66 pinctrl-0 = <&codec_pa_pin>;
67 allwinner,pa-gpios = <&pio 6 10 GPIO_ACTIVE_HIGH>; /* PG10 */
68 status = "okay";
69};
70
64&cpu0 { 71&cpu0 {
65 cpu-supply = <&reg_dcdc2>; 72 cpu-supply = <&reg_dcdc2>;
66}; 73};
@@ -85,9 +92,13 @@
85 92
86#include "axp209.dtsi" 93#include "axp209.dtsi"
87 94
95&lradc {
96 vref-supply = <&reg_ldo2>;
97};
98
88&mmc0 { 99&mmc0 {
89 pinctrl-names = "default"; 100 pinctrl-names = "default";
90 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8>; 101 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
91 vmmc-supply = <&reg_vcc3v0>; 102 vmmc-supply = <&reg_vcc3v0>;
92 bus-width = <4>; 103 bus-width = <4>;
93 cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */ 104 cd-gpios = <&pio 6 0 GPIO_ACTIVE_HIGH>; /* PG0 */
@@ -100,7 +111,14 @@
100}; 111};
101 112
102&pio { 113&pio {
103 mmc0_cd_pin_q8: mmc0_cd_pin@0 { 114 codec_pa_pin: codec_pa_pin@0 {
115 allwinner,pins = "PG10";
116 allwinner,function = "gpio_out";
117 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
118 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
119 };
120
121 mmc0_cd_pin: mmc0_cd_pin@0 {
104 allwinner,pins = "PG0"; 122 allwinner,pins = "PG0";
105 allwinner,function = "gpio_in"; 123 allwinner,function = "gpio_in";
106 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 124 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
@@ -154,6 +172,12 @@
154 regulator-name = "avcc"; 172 regulator-name = "avcc";
155}; 173};
156 174
175&reg_ldo3 {
176 regulator-min-microvolt = <3300000>;
177 regulator-max-microvolt = <3300000>;
178 regulator-name = "vcc-wifi";
179};
180
157&reg_usb0_vbus { 181&reg_usb0_vbus {
158 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */ 182 gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
159 status = "okay"; 183 status = "okay";
@@ -170,11 +194,17 @@
170 status = "okay"; 194 status = "okay";
171}; 195};
172 196
197&usb_power_supply {
198 status = "okay";
199};
200
173&usbphy { 201&usbphy {
174 pinctrl-names = "default"; 202 pinctrl-names = "default";
175 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>; 203 pinctrl-0 = <&usb0_id_detect_pin>, <&usb0_vbus_detect_pin>;
176 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */ 204 usb0_id_det-gpio = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
177 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */ 205 usb0_vbus_det-gpio = <&pio 6 1 GPIO_ACTIVE_HIGH>; /* PG1 */
206 usb0_vbus_power-supply = <&usb_power_supply>;
178 usb0_vbus-supply = <&reg_usb0_vbus>; 207 usb0_vbus-supply = <&reg_usb0_vbus>;
208 usb1_vbus-supply = <&reg_ldo3>;
179 status = "okay"; 209 status = "okay";
180}; 210};
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index 0840612b5ed6..e374f4fc8073 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -130,7 +130,7 @@
130 }; 130 };
131 131
132 pll3x2: pll3x2_clk { 132 pll3x2: pll3x2_clk {
133 compatible = "fixed-factor-clock"; 133 compatible = "allwinner,sun4i-a10-pll3-2x-clk", "fixed-factor-clock";
134 #clock-cells = <0>; 134 #clock-cells = <0>;
135 clock-div = <1>; 135 clock-div = <1>;
136 clock-mult = <2>; 136 clock-mult = <2>;
diff --git a/arch/arm/boot/dts/sun6i-a31-m9.dts b/arch/arm/boot/dts/sun6i-a31-m9.dts
index 6e0e5687a09c..29016a13a2c1 100644
--- a/arch/arm/boot/dts/sun6i-a31-m9.dts
+++ b/arch/arm/boot/dts/sun6i-a31-m9.dts
@@ -65,12 +65,17 @@
65 pinctrl-0 = <&led_pins_m9>; 65 pinctrl-0 = <&led_pins_m9>;
66 66
67 blue { 67 blue {
68 label = "m9:blue:usr"; 68 label = "m9:blue:pwr";
69 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; 69 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
70 default-state = "on";
70 }; 71 };
71 }; 72 };
72}; 73};
73 74
75&cpu0 {
76 cpu-supply = <&reg_dcdc3>;
77};
78
74&ehci0 { 79&ehci0 {
75 status = "okay"; 80 status = "okay";
76}; 81};
@@ -84,6 +89,7 @@
84 pinctrl-0 = <&gmac_pins_mii_a>; 89 pinctrl-0 = <&gmac_pins_mii_a>;
85 phy = <&phy1>; 90 phy = <&phy1>;
86 phy-mode = "mii"; 91 phy-mode = "mii";
92 phy-supply = <&reg_dldo1>;
87 status = "okay"; 93 status = "okay";
88 94
89 phy1: ethernet-phy@1 { 95 phy1: ethernet-phy@1 {
@@ -100,13 +106,26 @@
100&mmc0 { 106&mmc0 {
101 pinctrl-names = "default"; 107 pinctrl-names = "default";
102 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>; 108 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>;
103 vmmc-supply = <&reg_vcc3v3>; 109 vmmc-supply = <&reg_dcdc1>;
104 bus-width = <4>; 110 bus-width = <4>;
105 cd-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */ 111 cd-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
106 cd-inverted; 112 cd-inverted;
107 status = "okay"; 113 status = "okay";
108}; 114};
109 115
116&p2wi {
117 status = "okay";
118
119 axp22x: pmic@68 {
120 compatible = "x-powers,axp221";
121 reg = <0x68>;
122 interrupt-parent = <&nmi_intc>;
123 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
124 };
125};
126
127#include "axp22x.dtsi"
128
110&pio { 129&pio {
111 led_pins_m9: led_pins@0 { 130 led_pins_m9: led_pins@0 {
112 allwinner,pins = "PH13"; 131 allwinner,pins = "PH13";
@@ -130,6 +149,78 @@
130 }; 149 };
131}; 150};
132 151
152&reg_aldo1 {
153 regulator-min-microvolt = <3300000>;
154 regulator-max-microvolt = <3300000>;
155 regulator-name = "vcc-wifi";
156};
157
158&reg_aldo3 {
159 regulator-always-on;
160 regulator-min-microvolt = <2700000>;
161 regulator-max-microvolt = <3300000>;
162 regulator-name = "avcc";
163};
164
165&reg_dc5ldo {
166 regulator-always-on;
167 regulator-min-microvolt = <700000>;
168 regulator-max-microvolt = <1320000>;
169 regulator-name = "vdd-cpus"; /* This is an educated guess */
170};
171
172&reg_dcdc1 {
173 regulator-always-on;
174 regulator-min-microvolt = <3300000>;
175 regulator-max-microvolt = <3300000>;
176 regulator-name = "vcc-3v3";
177};
178
179&reg_dcdc2 {
180 regulator-min-microvolt = <700000>;
181 regulator-max-microvolt = <1320000>;
182 regulator-name = "vdd-gpu";
183};
184
185&reg_dcdc3 {
186 regulator-always-on;
187 regulator-min-microvolt = <700000>;
188 regulator-max-microvolt = <1320000>;
189 regulator-name = "vdd-cpu";
190};
191
192&reg_dcdc4 {
193 regulator-always-on;
194 regulator-min-microvolt = <700000>;
195 regulator-max-microvolt = <1320000>;
196 regulator-name = "vdd-sys-dll";
197};
198
199&reg_dcdc5 {
200 regulator-always-on;
201 regulator-min-microvolt = <1500000>;
202 regulator-max-microvolt = <1500000>;
203 regulator-name = "vcc-dram";
204};
205
206&reg_dldo1 {
207 regulator-min-microvolt = <3300000>;
208 regulator-max-microvolt = <3300000>;
209 regulator-name = "vcc-ethernet-phy";
210};
211
212/*
213 * Both reg_usb1_vbus and reg_dldo4 need to be on for the hub attached
214 * to usb1 to work, and we can list only one usb1_vbus-supply, so dldo4 is
215 * marked as regulator-always-on.
216 */
217&reg_dldo4 {
218 regulator-always-on;
219 regulator-min-microvolt = <3300000>;
220 regulator-max-microvolt = <3300000>;
221 regulator-name = "vcc-usb-hub";
222};
223
133&reg_usb1_vbus { 224&reg_usb1_vbus {
134 pinctrl-names = "default"; 225 pinctrl-names = "default";
135 pinctrl-0 = <&usb1_vbus_pin_m9>; 226 pinctrl-0 = <&usb1_vbus_pin_m9>;
@@ -145,5 +236,6 @@
145 236
146&usbphy { 237&usbphy {
147 usb1_vbus-supply = <&reg_usb1_vbus>; 238 usb1_vbus-supply = <&reg_usb1_vbus>;
239 usb2_vbus-supply = <&reg_aldo1>;
148 status = "okay"; 240 status = "okay";
149}; 241};
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 4dd70cce2127..5faeae429e2a 100644
--- a/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
+++ b/arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts
@@ -65,12 +65,17 @@
65 pinctrl-0 = <&led_pins_m9>; 65 pinctrl-0 = <&led_pins_m9>;
66 66
67 blue { 67 blue {
68 label = "m9:blue:usr"; 68 label = "a1000g:blue:pwr";
69 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; 69 gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>;
70 default-state = "on";
70 }; 71 };
71 }; 72 };
72}; 73};
73 74
75&cpu0 {
76 cpu-supply = <&reg_dcdc3>;
77};
78
74&ehci0 { 79&ehci0 {
75 status = "okay"; 80 status = "okay";
76}; 81};
@@ -84,6 +89,7 @@
84 pinctrl-0 = <&gmac_pins_mii_a>; 89 pinctrl-0 = <&gmac_pins_mii_a>;
85 phy = <&phy1>; 90 phy = <&phy1>;
86 phy-mode = "mii"; 91 phy-mode = "mii";
92 phy-supply = <&reg_dldo1>;
87 status = "okay"; 93 status = "okay";
88 94
89 phy1: ethernet-phy@1 { 95 phy1: ethernet-phy@1 {
@@ -100,13 +106,26 @@
100&mmc0 { 106&mmc0 {
101 pinctrl-names = "default"; 107 pinctrl-names = "default";
102 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>; 108 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_m9>;
103 vmmc-supply = <&reg_vcc3v3>; 109 vmmc-supply = <&reg_dcdc1>;
104 bus-width = <4>; 110 bus-width = <4>;
105 cd-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */ 111 cd-gpios = <&pio 7 22 GPIO_ACTIVE_HIGH>; /* PH22 */
106 cd-inverted; 112 cd-inverted;
107 status = "okay"; 113 status = "okay";
108}; 114};
109 115
116&p2wi {
117 status = "okay";
118
119 axp22x: pmic@68 {
120 compatible = "x-powers,axp221";
121 reg = <0x68>;
122 interrupt-parent = <&nmi_intc>;
123 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
124 };
125};
126
127#include "axp22x.dtsi"
128
110&pio { 129&pio {
111 led_pins_m9: led_pins@0 { 130 led_pins_m9: led_pins@0 {
112 allwinner,pins = "PH13"; 131 allwinner,pins = "PH13";
@@ -130,6 +149,78 @@
130 }; 149 };
131}; 150};
132 151
152&reg_aldo1 {
153 regulator-min-microvolt = <3300000>;
154 regulator-max-microvolt = <3300000>;
155 regulator-name = "vcc-wifi";
156};
157
158&reg_aldo3 {
159 regulator-always-on;
160 regulator-min-microvolt = <2700000>;
161 regulator-max-microvolt = <3300000>;
162 regulator-name = "avcc";
163};
164
165&reg_dc5ldo {
166 regulator-always-on;
167 regulator-min-microvolt = <700000>;
168 regulator-max-microvolt = <1320000>;
169 regulator-name = "vdd-cpus"; /* This is an educated guess */
170};
171
172&reg_dcdc1 {
173 regulator-always-on;
174 regulator-min-microvolt = <3300000>;
175 regulator-max-microvolt = <3300000>;
176 regulator-name = "vcc-3v3";
177};
178
179&reg_dcdc2 {
180 regulator-min-microvolt = <700000>;
181 regulator-max-microvolt = <1320000>;
182 regulator-name = "vdd-gpu";
183};
184
185&reg_dcdc3 {
186 regulator-always-on;
187 regulator-min-microvolt = <700000>;
188 regulator-max-microvolt = <1320000>;
189 regulator-name = "vdd-cpu";
190};
191
192&reg_dcdc4 {
193 regulator-always-on;
194 regulator-min-microvolt = <700000>;
195 regulator-max-microvolt = <1320000>;
196 regulator-name = "vdd-sys-dll";
197};
198
199&reg_dcdc5 {
200 regulator-always-on;
201 regulator-min-microvolt = <1500000>;
202 regulator-max-microvolt = <1500000>;
203 regulator-name = "vcc-dram";
204};
205
206&reg_dldo1 {
207 regulator-min-microvolt = <3300000>;
208 regulator-max-microvolt = <3300000>;
209 regulator-name = "vcc-ethernet-phy";
210};
211
212/*
213 * Both reg_usb1_vbus and reg_dldo4 need to be on for the hub attached
214 * to usb1 to work, and we can list only one usb1_vbus-supply, so dldo4 is
215 * marked as regulator-always-on.
216 */
217&reg_dldo4 {
218 regulator-always-on;
219 regulator-min-microvolt = <3300000>;
220 regulator-max-microvolt = <3300000>;
221 regulator-name = "vcc-usb-hub";
222};
223
133&reg_usb1_vbus { 224&reg_usb1_vbus {
134 pinctrl-names = "default"; 225 pinctrl-names = "default";
135 pinctrl-0 = <&usb1_vbus_pin_m9>; 226 pinctrl-0 = <&usb1_vbus_pin_m9>;
@@ -150,5 +241,6 @@
150 241
151&usbphy { 242&usbphy {
152 usb1_vbus-supply = <&reg_usb1_vbus>; 243 usb1_vbus-supply = <&reg_usb1_vbus>;
244 usb2_vbus-supply = <&reg_aldo1>;
153 status = "okay"; 245 status = "okay";
154}; 246};
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
new file mode 100644
index 000000000000..ba5bca0fe997
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts
@@ -0,0 +1,229 @@
1/*
2 * Copyright 2016 Luo Yi <luoyi.ly@gmail.com>
3 *
4 * Thanks to the original work by Hans de Goede <hdegoede@redhat.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 "sun7i-a20.dtsi"
47#include "sunxi-common-regulators.dtsi"
48#include <dt-bindings/gpio/gpio.h>
49#include <dt-bindings/interrupt-controller/arm-gic.h>
50
51/ {
52 model = "Banana Pi BPI-M1-Plus";
53 compatible = "sinovoip,bpi-m1-plus", "allwinner,sun7i-a20";
54
55 aliases {
56 serial0 = &uart0;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62
63 leds {
64 compatible = "gpio-leds";
65 pinctrl-names = "default";
66 pinctrl-0 = <&led_pins_bpi_m1p>;
67
68 green {
69 label = "bananapi-m1-plus:green:usr";
70 gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
71 };
72
73 pwr {
74 label = "bananapi-m1-plus:pwr:usr";
75 gpios = <&pio 7 25 GPIO_ACTIVE_HIGH>;
76 default-state = "on";
77 };
78 };
79
80 mmc3_pwrseq: mmc3_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 pinctrl-names = "default";
83 pinctrl-0 = <&mmc3_pwrseq_pin_bpi_m1p>;
84 reset-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 WL-PMU-EN */
85 };
86
87 reg_gmac_3v3: gmac-3v3 {
88 compatible = "regulator-fixed";
89 pinctrl-names = "default";
90 pinctrl-0 = <&gmac_power_pin_bpi_m1p>;
91 regulator-name = "gmac-3v3";
92 regulator-min-microvolt = <3300000>;
93 regulator-max-microvolt = <3300000>;
94 startup-delay-us = <100000>;
95 enable-active-high;
96 gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>;
97 };
98};
99
100&ahci {
101 status = "okay";
102};
103
104&codec {
105 status = "okay";
106};
107
108&ehci0 {
109 status = "okay";
110};
111
112&ehci1 {
113 status = "okay";
114};
115
116&gmac {
117 pinctrl-names = "default";
118 pinctrl-0 = <&gmac_pins_rgmii_a>;
119 phy = <&phy1>;
120 phy-mode = "rgmii";
121 phy-supply = <&reg_gmac_3v3>;
122 status = "okay";
123
124 phy1: ethernet-phy@1 {
125 reg = <1>;
126 };
127};
128
129&i2c0 {
130 pinctrl-names = "default";
131 pinctrl-0 = <&i2c0_pins_a>;
132 status = "okay";
133
134 axp209: pmic@34 {
135 compatible = "x-powers,axp209";
136 reg = <0x34>;
137 interrupt-parent = <&nmi_intc>;
138 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
139
140 interrupt-controller;
141 #interrupt-cells = <1>;
142 };
143};
144
145&ir0 {
146 pinctrl-names = "default";
147 pinctrl-0 = <&ir0_rx_pins_a>;
148 status = "okay";
149};
150
151&mmc0 {
152 pinctrl-names = "default";
153 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_bpi_m1p>;
154 vmmc-supply = <&reg_vcc3v3>;
155 bus-width = <4>;
156 cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
157 cd-inverted;
158 status = "okay";
159};
160
161&mmc3 {
162 #address-cells = <1>;
163 #size-cells = <0>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&mmc3_pins_a>;
166 vmmc-supply = <&reg_vcc3v3>;
167 mmc-pwrseq = <&mmc3_pwrseq>;
168 bus-width = <4>;
169 non-removable;
170 enable-sdio-wakeup;
171 status = "okay";
172
173 brcmf: bcrmf@1 {
174 reg = <1>;
175 compatible = "brcm,bcm4329-fmac";
176 interrupt-parent = <&pio>;
177 interrupts = <7 15 IRQ_TYPE_LEVEL_LOW>;
178 interrupt-names = "host-wake";
179 };
180};
181
182&mmc3_pins_a {
183 /* AP6210 requires pull-up */
184 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
185};
186
187&ohci0 {
188 status = "okay";
189};
190
191&ohci1 {
192 status = "okay";
193};
194
195&pio {
196 gmac_power_pin_bpi_m1p: gmac_power_pin@0 {
197 allwinner,pins = "PH23";
198 allwinner,function = "gpio_out";
199 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
200 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
201 };
202
203 led_pins_bpi_m1p: led_pins@0 {
204 allwinner,pins = "PH24", "PH25";
205 allwinner,function = "gpio_out";
206 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
207 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
208 };
209
210 mmc0_cd_pin_bpi_m1p: mmc0_cd_pin@0 {
211 allwinner,pins = "PH10";
212 allwinner,function = "gpio_in";
213 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
214 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
215 };
216
217 mmc3_pwrseq_pin_bpi_m1p: mmc3_pwrseq_pin@0 {
218 allwinner,pins = "PH22";
219 allwinner,function = "gpio_out";
220 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
221 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
222 };
223};
224
225&uart0 {
226 pinctrl-names = "default";
227 pinctrl-0 = <&uart0_pins_a>;
228 status = "okay";
229};
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
index 5ee43d8bf174..73c05dab0a69 100644
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
@@ -95,6 +95,10 @@
95 status = "okay"; 95 status = "okay";
96}; 96};
97 97
98&codec {
99 status = "okay";
100};
101
98&cpu0 { 102&cpu0 {
99 cpu-supply = <&reg_dcdc2>; 103 cpu-supply = <&reg_dcdc2>;
100}; 104};
@@ -110,13 +114,67 @@
110&gmac { 114&gmac {
111 pinctrl-names = "default"; 115 pinctrl-names = "default";
112 pinctrl-0 = <&gmac_pins_rgmii_a>; 116 pinctrl-0 = <&gmac_pins_rgmii_a>;
113 phy = <&phy1>;
114 phy-mode = "rgmii"; 117 phy-mode = "rgmii";
115 phy-supply = <&reg_gmac_3v3>; 118 phy-supply = <&reg_gmac_3v3>;
116 status = "okay"; 119 status = "okay";
117 120
118 phy1: ethernet-phy@1 { 121 fixed-link {
119 reg = <1>; 122 speed = <1000>;
123 full-duplex;
124 };
125
126 mdio {
127 compatible = "snps,dwmac-mdio";
128 #address-cells = <1>;
129 #size-cells = <0>;
130
131 switch: ethernet-switch@1e {
132 compatible = "brcm,bcm53125";
133 reg = <30>;
134 #address-cells = <1>;
135 #size-cells = <0>;
136
137 ports {
138 #address-cells = <1>;
139 #size-cells = <0>;
140
141 port0: port@0 {
142 reg = <0>;
143 label = "lan2";
144 };
145
146 port1: port@1 {
147 reg = <1>;
148 label = "lan3";
149 };
150
151 port2: port@2 {
152 reg = <2>;
153 label = "lan4";
154 };
155
156 port3: port@3 {
157 reg = <3>;
158 label = "wan";
159 };
160
161 port4: port@4 {
162 reg = <4>;
163 label = "lan1";
164 };
165
166 port8: port@8 {
167 reg = <8>;
168 label = "cpu";
169 ethernet = <&gmac>;
170 phy-mode = "rgmii";
171 fixed-link {
172 speed = <1000>;
173 full-duplex;
174 };
175 };
176 };
177 };
120 }; 178 };
121}; 179};
122 180
@@ -158,10 +216,6 @@
158 status = "okay"; 216 status = "okay";
159}; 217};
160 218
161&ohci1 {
162 status = "okay";
163};
164
165&otg_sram { 219&otg_sram {
166 status = "okay"; 220 status = "okay";
167}; 221};
@@ -199,7 +253,7 @@
199#include "axp209.dtsi" 253#include "axp209.dtsi"
200 254
201&reg_ahci_5v { 255&reg_ahci_5v {
202 gpio = <&pio 1 3 0>; /* PB3 */ 256 gpio = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
203 status = "okay"; 257 status = "okay";
204}; 258};
205 259
@@ -232,11 +286,8 @@
232 status = "okay"; 286 status = "okay";
233}; 287};
234 288
235&reg_usb1_vbus {
236 status = "okay";
237};
238
239&reg_usb2_vbus { 289&reg_usb2_vbus {
290 gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
240 status = "okay"; 291 status = "okay";
241}; 292};
242 293
@@ -275,13 +326,16 @@
275 status = "okay"; 326 status = "okay";
276}; 327};
277 328
329&usb2_vbus_pin_a {
330 allwinner,pins = "PH12";
331};
332
278&usbphy { 333&usbphy {
279 pinctrl-names = "default"; 334 pinctrl-names = "default";
280 pinctrl-0 = <&usb0_id_detect_pin>; 335 pinctrl-0 = <&usb0_id_detect_pin>;
281 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 336 usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
282 usb0_vbus_power-supply = <&usb_power_supply>; 337 usb0_vbus_power-supply = <&usb_power_supply>;
283 usb0_vbus-supply = <&reg_usb0_vbus>; 338 usb0_vbus-supply = <&reg_usb0_vbus>;
284 usb1_vbus-supply = <&reg_usb1_vbus>;
285 usb2_vbus-supply = <&reg_usb2_vbus>; 339 usb2_vbus-supply = <&reg_usb2_vbus>;
286 status = "okay"; 340 status = "okay";
287}; 341};
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 2c34bbbb9570..bd0c47660243 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -67,9 +67,9 @@
67 compatible = "allwinner,simple-framebuffer", 67 compatible = "allwinner,simple-framebuffer",
68 "simple-framebuffer"; 68 "simple-framebuffer";
69 allwinner,pipeline = "de_be0-lcd0-hdmi"; 69 allwinner,pipeline = "de_be0-lcd0-hdmi";
70 clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>, 70 clocks = <&ahb_gates 36>, <&ahb_gates 43>,
71 <&ahb_gates 43>, <&ahb_gates 44>, 71 <&ahb_gates 44>, <&de_be0_clk>,
72 <&dram_gates 26>; 72 <&tcon0_ch1_clk>, <&dram_gates 26>;
73 status = "disabled"; 73 status = "disabled";
74 }; 74 };
75 75
@@ -77,8 +77,9 @@
77 compatible = "allwinner,simple-framebuffer", 77 compatible = "allwinner,simple-framebuffer",
78 "simple-framebuffer"; 78 "simple-framebuffer";
79 allwinner,pipeline = "de_be0-lcd0"; 79 allwinner,pipeline = "de_be0-lcd0";
80 clocks = <&pll3>, <&pll5 1>, <&ahb_gates 36>, 80 clocks = <&ahb_gates 36>, <&ahb_gates 44>,
81 <&ahb_gates 44>, <&dram_gates 26>; 81 <&de_be0_clk>, <&tcon0_ch0_clk>,
82 <&dram_gates 26>;
82 status = "disabled"; 83 status = "disabled";
83 }; 84 };
84 85
@@ -86,8 +87,9 @@
86 compatible = "allwinner,simple-framebuffer", 87 compatible = "allwinner,simple-framebuffer",
87 "simple-framebuffer"; 88 "simple-framebuffer";
88 allwinner,pipeline = "de_be0-lcd0-tve0"; 89 allwinner,pipeline = "de_be0-lcd0-tve0";
89 clocks = <&pll3>, <&pll5 1>, 90 clocks = <&ahb_gates 34>, <&ahb_gates 36>,
90 <&ahb_gates 34>, <&ahb_gates 36>, <&ahb_gates 44>, 91 <&ahb_gates 44>,
92 <&de_be0_clk>, <&tcon0_ch1_clk>,
91 <&dram_gates 5>, <&dram_gates 26>; 93 <&dram_gates 5>, <&dram_gates 26>;
92 status = "disabled"; 94 status = "disabled";
93 }; 95 };
@@ -369,9 +371,9 @@
369 <5>, <6>, <7>, 371 <5>, <6>, <7>,
370 <8>, <10>; 372 <8>, <10>;
371 clock-output-names = "apb0_codec", "apb0_spdif", 373 clock-output-names = "apb0_codec", "apb0_spdif",
372 "apb0_ac97", "apb0_iis0", "apb0_iis1", 374 "apb0_ac97", "apb0_i2s0", "apb0_i2s1",
373 "apb0_pio", "apb0_ir0", "apb0_ir1", 375 "apb0_pio", "apb0_ir0", "apb0_ir1",
374 "apb0_iis2", "apb0_keypad"; 376 "apb0_i2s2", "apb0_keypad";
375 }; 377 };
376 378
377 apb1: clk@01c20058 { 379 apb1: clk@01c20058 {
@@ -521,6 +523,28 @@
521 clock-output-names = "ir1"; 523 clock-output-names = "ir1";
522 }; 524 };
523 525
526 i2s0_clk: clk@01c200b8 {
527 #clock-cells = <0>;
528 compatible = "allwinner,sun4i-a10-mod1-clk";
529 reg = <0x01c200b8 0x4>;
530 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
531 <&pll2 SUN4I_A10_PLL2_4X>,
532 <&pll2 SUN4I_A10_PLL2_2X>,
533 <&pll2 SUN4I_A10_PLL2_1X>;
534 clock-output-names = "i2s0";
535 };
536
537 ac97_clk: clk@01c200bc {
538 #clock-cells = <0>;
539 compatible = "allwinner,sun4i-a10-mod1-clk";
540 reg = <0x01c200bc 0x4>;
541 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
542 <&pll2 SUN4I_A10_PLL2_4X>,
543 <&pll2 SUN4I_A10_PLL2_2X>,
544 <&pll2 SUN4I_A10_PLL2_1X>;
545 clock-output-names = "ac97";
546 };
547
524 spdif_clk: clk@01c200c0 { 548 spdif_clk: clk@01c200c0 {
525 #clock-cells = <0>; 549 #clock-cells = <0>;
526 compatible = "allwinner,sun4i-a10-mod1-clk"; 550 compatible = "allwinner,sun4i-a10-mod1-clk";
@@ -558,6 +582,28 @@
558 clock-output-names = "spi3"; 582 clock-output-names = "spi3";
559 }; 583 };
560 584
585 i2s1_clk: clk@01c200d8 {
586 #clock-cells = <0>;
587 compatible = "allwinner,sun4i-a10-mod1-clk";
588 reg = <0x01c200d8 0x4>;
589 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
590 <&pll2 SUN4I_A10_PLL2_4X>,
591 <&pll2 SUN4I_A10_PLL2_2X>,
592 <&pll2 SUN4I_A10_PLL2_1X>;
593 clock-output-names = "i2s1";
594 };
595
596 i2s2_clk: clk@01c200dc {
597 #clock-cells = <0>;
598 compatible = "allwinner,sun4i-a10-mod1-clk";
599 reg = <0x01c200dc 0x4>;
600 clocks = <&pll2 SUN4I_A10_PLL2_8X>,
601 <&pll2 SUN4I_A10_PLL2_4X>,
602 <&pll2 SUN4I_A10_PLL2_2X>,
603 <&pll2 SUN4I_A10_PLL2_1X>;
604 clock-output-names = "i2s2";
605 };
606
561 dram_gates: clk@01c20100 { 607 dram_gates: clk@01c20100 {
562 #clock-cells = <1>; 608 #clock-cells = <1>;
563 compatible = "allwinner,sun4i-a10-dram-gates-clk"; 609 compatible = "allwinner,sun4i-a10-dram-gates-clk";
@@ -583,6 +629,80 @@
583 "dram_de_mp", "dram_ace"; 629 "dram_de_mp", "dram_ace";
584 }; 630 };
585 631
632 de_be0_clk: clk@01c20104 {
633 #clock-cells = <0>;
634 #reset-cells = <0>;
635 compatible = "allwinner,sun4i-a10-display-clk";
636 reg = <0x01c20104 0x4>;
637 clocks = <&pll3>, <&pll7>, <&pll5 1>;
638 clock-output-names = "de-be0";
639 };
640
641 de_be1_clk: clk@01c20108 {
642 #clock-cells = <0>;
643 #reset-cells = <0>;
644 compatible = "allwinner,sun4i-a10-display-clk";
645 reg = <0x01c20108 0x4>;
646 clocks = <&pll3>, <&pll7>, <&pll5 1>;
647 clock-output-names = "de-be1";
648 };
649
650 de_fe0_clk: clk@01c2010c {
651 #clock-cells = <0>;
652 #reset-cells = <0>;
653 compatible = "allwinner,sun4i-a10-display-clk";
654 reg = <0x01c2010c 0x4>;
655 clocks = <&pll3>, <&pll7>, <&pll5 1>;
656 clock-output-names = "de-fe0";
657 };
658
659 de_fe1_clk: clk@01c20110 {
660 #clock-cells = <0>;
661 #reset-cells = <0>;
662 compatible = "allwinner,sun4i-a10-display-clk";
663 reg = <0x01c20110 0x4>;
664 clocks = <&pll3>, <&pll7>, <&pll5 1>;
665 clock-output-names = "de-fe1";
666 };
667
668 tcon0_ch0_clk: clk@01c20118 {
669 #clock-cells = <0>;
670 #reset-cells = <1>;
671 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
672 reg = <0x01c20118 0x4>;
673 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
674 clock-output-names = "tcon0-ch0-sclk";
675
676 };
677
678 tcon1_ch0_clk: clk@01c2011c {
679 #clock-cells = <0>;
680 #reset-cells = <1>;
681 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
682 reg = <0x01c2011c 0x4>;
683 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
684 clock-output-names = "tcon1-ch0-sclk";
685
686 };
687
688 tcon0_ch1_clk: clk@01c2012c {
689 #clock-cells = <0>;
690 compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
691 reg = <0x01c2012c 0x4>;
692 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
693 clock-output-names = "tcon0-ch1-sclk";
694
695 };
696
697 tcon1_ch1_clk: clk@01c20130 {
698 #clock-cells = <0>;
699 compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
700 reg = <0x01c20130 0x4>;
701 clocks = <&pll3>, <&pll7>, <&pll3x2>, <&pll7x2>;
702 clock-output-names = "tcon1-ch1-sclk";
703
704 };
705
586 ve_clk: clk@01c2013c { 706 ve_clk: clk@01c2013c {
587 #clock-cells = <0>; 707 #clock-cells = <0>;
588 #reset-cells = <0>; 708 #reset-cells = <0>;
@@ -726,6 +846,19 @@
726 #dma-cells = <2>; 846 #dma-cells = <2>;
727 }; 847 };
728 848
849 nfc: nand@01c03000 {
850 compatible = "allwinner,sun4i-a10-nand";
851 reg = <0x01c03000 0x1000>;
852 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
853 clocks = <&ahb_gates 13>, <&nand_clk>;
854 clock-names = "ahb", "mod";
855 dmas = <&dma SUN4I_DMA_DEDICATED 3>;
856 dma-names = "rxtx";
857 status = "disabled";
858 #address-cells = <1>;
859 #size-cells = <0>;
860 };
861
729 spi0: spi@01c05000 { 862 spi0: spi@01c05000 {
730 compatible = "allwinner,sun4i-a10-spi"; 863 compatible = "allwinner,sun4i-a10-spi";
731 reg = <0x01c05000 0x1000>; 864 reg = <0x01c05000 0x1000>;
@@ -958,160 +1091,177 @@
958 #interrupt-cells = <3>; 1091 #interrupt-cells = <3>;
959 #gpio-cells = <3>; 1092 #gpio-cells = <3>;
960 1093
961 pwm0_pins_a: pwm0@0 { 1094 clk_out_a_pins_a: clk_out_a@0 {
962 allwinner,pins = "PB2"; 1095 allwinner,pins = "PI12";
963 allwinner,function = "pwm"; 1096 allwinner,function = "clk_out_a";
964 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1097 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
965 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1098 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
966 }; 1099 };
967 1100
968 pwm1_pins_a: pwm1@0 { 1101 clk_out_b_pins_a: clk_out_b@0 {
969 allwinner,pins = "PI3"; 1102 allwinner,pins = "PI13";
970 allwinner,function = "pwm"; 1103 allwinner,function = "clk_out_b";
971 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1104 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
972 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1105 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
973 }; 1106 };
974 1107
975 uart0_pins_a: uart0@0 { 1108 emac_pins_a: emac0@0 {
976 allwinner,pins = "PB22", "PB23"; 1109 allwinner,pins = "PA0", "PA1", "PA2",
977 allwinner,function = "uart0"; 1110 "PA3", "PA4", "PA5", "PA6",
1111 "PA7", "PA8", "PA9", "PA10",
1112 "PA11", "PA12", "PA13", "PA14",
1113 "PA15", "PA16";
1114 allwinner,function = "emac";
978 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1115 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
979 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1116 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
980 }; 1117 };
981 1118
982 uart2_pins_a: uart2@0 { 1119 gmac_pins_mii_a: gmac_mii@0 {
983 allwinner,pins = "PI16", "PI17", "PI18", "PI19"; 1120 allwinner,pins = "PA0", "PA1", "PA2",
984 allwinner,function = "uart2"; 1121 "PA3", "PA4", "PA5", "PA6",
1122 "PA7", "PA8", "PA9", "PA10",
1123 "PA11", "PA12", "PA13", "PA14",
1124 "PA15", "PA16";
1125 allwinner,function = "gmac";
985 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1126 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
986 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1127 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
987 }; 1128 };
988 1129
989 uart3_pins_a: uart3@0 { 1130 gmac_pins_rgmii_a: gmac_rgmii@0 {
990 allwinner,pins = "PG6", "PG7", "PG8", "PG9"; 1131 allwinner,pins = "PA0", "PA1", "PA2",
991 allwinner,function = "uart3"; 1132 "PA3", "PA4", "PA5", "PA6",
992 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1133 "PA7", "PA8", "PA10",
1134 "PA11", "PA12", "PA13",
1135 "PA15", "PA16";
1136 allwinner,function = "gmac";
1137 /*
1138 * data lines in RGMII mode use DDR mode
1139 * and need a higher signal drive strength
1140 */
1141 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
993 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1142 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
994 }; 1143 };
995 1144
996 uart3_pins_b: uart3@1 { 1145 i2c0_pins_a: i2c0@0 {
997 allwinner,pins = "PH0", "PH1"; 1146 allwinner,pins = "PB0", "PB1";
998 allwinner,function = "uart3"; 1147 allwinner,function = "i2c0";
999 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1148 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1000 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1149 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1001 }; 1150 };
1002 1151
1003 uart4_pins_a: uart4@0 { 1152 i2c1_pins_a: i2c1@0 {
1004 allwinner,pins = "PG10", "PG11"; 1153 allwinner,pins = "PB18", "PB19";
1005 allwinner,function = "uart4"; 1154 allwinner,function = "i2c1";
1006 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1155 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1007 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1156 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1008 }; 1157 };
1009 1158
1010 uart4_pins_b: uart4@1 { 1159 i2c2_pins_a: i2c2@0 {
1011 allwinner,pins = "PH4", "PH5"; 1160 allwinner,pins = "PB20", "PB21";
1012 allwinner,function = "uart4"; 1161 allwinner,function = "i2c2";
1013 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1162 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1014 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1163 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1015 }; 1164 };
1016 1165
1017 uart5_pins_a: uart5@0 { 1166 i2c3_pins_a: i2c3@0 {
1018 allwinner,pins = "PI10", "PI11"; 1167 allwinner,pins = "PI0", "PI1";
1019 allwinner,function = "uart5"; 1168 allwinner,function = "i2c3";
1020 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1169 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1021 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1170 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1022 }; 1171 };
1023 1172
1024 uart6_pins_a: uart6@0 { 1173 ir0_rx_pins_a: ir0@0 {
1025 allwinner,pins = "PI12", "PI13"; 1174 allwinner,pins = "PB4";
1026 allwinner,function = "uart6"; 1175 allwinner,function = "ir0";
1027 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1176 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1028 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1177 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1029 }; 1178 };
1030 1179
1031 uart7_pins_a: uart7@0 { 1180 ir0_tx_pins_a: ir0@1 {
1032 allwinner,pins = "PI20", "PI21"; 1181 allwinner,pins = "PB3";
1033 allwinner,function = "uart7"; 1182 allwinner,function = "ir0";
1034 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1183 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1035 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1184 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1036 }; 1185 };
1037 1186
1038 i2c0_pins_a: i2c0@0 { 1187 ir1_rx_pins_a: ir1@0 {
1039 allwinner,pins = "PB0", "PB1"; 1188 allwinner,pins = "PB23";
1040 allwinner,function = "i2c0"; 1189 allwinner,function = "ir1";
1041 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1190 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1042 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1191 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1043 }; 1192 };
1044 1193
1045 i2c1_pins_a: i2c1@0 { 1194 ir1_tx_pins_a: ir1@1 {
1046 allwinner,pins = "PB18", "PB19"; 1195 allwinner,pins = "PB22";
1047 allwinner,function = "i2c1"; 1196 allwinner,function = "ir1";
1048 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1197 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1049 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1198 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1050 }; 1199 };
1051 1200
1052 i2c2_pins_a: i2c2@0 { 1201 mmc0_pins_a: mmc0@0 {
1053 allwinner,pins = "PB20", "PB21"; 1202 allwinner,pins = "PF0", "PF1", "PF2",
1054 allwinner,function = "i2c2"; 1203 "PF3", "PF4", "PF5";
1055 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1204 allwinner,function = "mmc0";
1205 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1056 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1206 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1057 }; 1207 };
1058 1208
1059 i2c3_pins_a: i2c3@0 { 1209 mmc0_cd_pin_reference_design: mmc0_cd_pin@0 {
1060 allwinner,pins = "PI0", "PI1"; 1210 allwinner,pins = "PH1";
1061 allwinner,function = "i2c3"; 1211 allwinner,function = "gpio_in";
1062 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1212 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1213 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1214 };
1215
1216 mmc2_pins_a: mmc2@0 {
1217 allwinner,pins = "PC6", "PC7", "PC8",
1218 "PC9", "PC10", "PC11";
1219 allwinner,function = "mmc2";
1220 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1221 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1222 };
1223
1224 mmc3_pins_a: mmc3@0 {
1225 allwinner,pins = "PI4", "PI5", "PI6",
1226 "PI7", "PI8", "PI9";
1227 allwinner,function = "mmc3";
1228 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1063 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1229 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1064 }; 1230 };
1065 1231
1066 emac_pins_a: emac0@0 { 1232 ps20_pins_a: ps20@0 {
1067 allwinner,pins = "PA0", "PA1", "PA2", 1233 allwinner,pins = "PI20", "PI21";
1068 "PA3", "PA4", "PA5", "PA6", 1234 allwinner,function = "ps2";
1069 "PA7", "PA8", "PA9", "PA10",
1070 "PA11", "PA12", "PA13", "PA14",
1071 "PA15", "PA16";
1072 allwinner,function = "emac";
1073 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1235 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1074 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1236 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1075 }; 1237 };
1076 1238
1077 clk_out_a_pins_a: clk_out_a@0 { 1239 ps21_pins_a: ps21@0 {
1078 allwinner,pins = "PI12"; 1240 allwinner,pins = "PH12", "PH13";
1079 allwinner,function = "clk_out_a"; 1241 allwinner,function = "ps2";
1080 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1242 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1081 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1082 }; 1244 };
1083 1245
1084 clk_out_b_pins_a: clk_out_b@0 { 1246 pwm0_pins_a: pwm0@0 {
1085 allwinner,pins = "PI13"; 1247 allwinner,pins = "PB2";
1086 allwinner,function = "clk_out_b"; 1248 allwinner,function = "pwm";
1087 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1249 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1088 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1250 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1089 }; 1251 };
1090 1252
1091 gmac_pins_mii_a: gmac_mii@0 { 1253 pwm1_pins_a: pwm1@0 {
1092 allwinner,pins = "PA0", "PA1", "PA2", 1254 allwinner,pins = "PI3";
1093 "PA3", "PA4", "PA5", "PA6", 1255 allwinner,function = "pwm";
1094 "PA7", "PA8", "PA9", "PA10",
1095 "PA11", "PA12", "PA13", "PA14",
1096 "PA15", "PA16";
1097 allwinner,function = "gmac";
1098 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1256 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1099 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1257 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1100 }; 1258 };
1101 1259
1102 gmac_pins_rgmii_a: gmac_rgmii@0 { 1260 spdif_tx_pins_a: spdif@0 {
1103 allwinner,pins = "PA0", "PA1", "PA2", 1261 allwinner,pins = "PB13";
1104 "PA3", "PA4", "PA5", "PA6", 1262 allwinner,function = "spdif";
1105 "PA7", "PA8", "PA10", 1263 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1106 "PA11", "PA12", "PA13", 1264 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1107 "PA15", "PA16";
1108 allwinner,function = "gmac";
1109 /*
1110 * data lines in RGMII mode use DDR mode
1111 * and need a higher signal drive strength
1112 */
1113 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
1114 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1115 }; 1265 };
1116 1266
1117 spi0_pins_a: spi0@0 { 1267 spi0_pins_a: spi0@0 {
@@ -1177,84 +1327,67 @@
1177 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1327 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1178 }; 1328 };
1179 1329
1180 mmc0_pins_a: mmc0@0 { 1330 uart0_pins_a: uart0@0 {
1181 allwinner,pins = "PF0", "PF1", "PF2", 1331 allwinner,pins = "PB22", "PB23";
1182 "PF3", "PF4", "PF5"; 1332 allwinner,function = "uart0";
1183 allwinner,function = "mmc0"; 1333 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1184 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1185 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1334 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1186 }; 1335 };
1187 1336
1188 mmc0_cd_pin_reference_design: mmc0_cd_pin@0 { 1337 uart2_pins_a: uart2@0 {
1189 allwinner,pins = "PH1"; 1338 allwinner,pins = "PI16", "PI17", "PI18", "PI19";
1190 allwinner,function = "gpio_in"; 1339 allwinner,function = "uart2";
1191 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1340 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1192 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1193 };
1194
1195 mmc2_pins_a: mmc2@0 {
1196 allwinner,pins = "PC6", "PC7", "PC8",
1197 "PC9", "PC10", "PC11";
1198 allwinner,function = "mmc2";
1199 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1200 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
1201 };
1202
1203 mmc3_pins_a: mmc3@0 {
1204 allwinner,pins = "PI4", "PI5", "PI6",
1205 "PI7", "PI8", "PI9";
1206 allwinner,function = "mmc3";
1207 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
1208 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1341 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1209 }; 1342 };
1210 1343
1211 ir0_rx_pins_a: ir0@0 { 1344 uart3_pins_a: uart3@0 {
1212 allwinner,pins = "PB4"; 1345 allwinner,pins = "PG6", "PG7", "PG8", "PG9";
1213 allwinner,function = "ir0"; 1346 allwinner,function = "uart3";
1214 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1347 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1215 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1348 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1216 }; 1349 };
1217 1350
1218 ir0_tx_pins_a: ir0@1 { 1351 uart3_pins_b: uart3@1 {
1219 allwinner,pins = "PB3"; 1352 allwinner,pins = "PH0", "PH1";
1220 allwinner,function = "ir0"; 1353 allwinner,function = "uart3";
1221 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1354 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1222 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1355 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1223 }; 1356 };
1224 1357
1225 ir1_rx_pins_a: ir1@0 { 1358 uart4_pins_a: uart4@0 {
1226 allwinner,pins = "PB23"; 1359 allwinner,pins = "PG10", "PG11";
1227 allwinner,function = "ir1"; 1360 allwinner,function = "uart4";
1228 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1361 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1229 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1362 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1230 }; 1363 };
1231 1364
1232 ir1_tx_pins_a: ir1@1 { 1365 uart4_pins_b: uart4@1 {
1233 allwinner,pins = "PB22"; 1366 allwinner,pins = "PH4", "PH5";
1234 allwinner,function = "ir1"; 1367 allwinner,function = "uart4";
1235 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1368 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1236 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1369 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1237 }; 1370 };
1238 1371
1239 ps20_pins_a: ps20@0 { 1372 uart5_pins_a: uart5@0 {
1240 allwinner,pins = "PI20", "PI21"; 1373 allwinner,pins = "PI10", "PI11";
1241 allwinner,function = "ps2"; 1374 allwinner,function = "uart5";
1242 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1375 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1243 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1376 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1244 }; 1377 };
1245 1378
1246 ps21_pins_a: ps21@0 { 1379 uart6_pins_a: uart6@0 {
1247 allwinner,pins = "PH12", "PH13"; 1380 allwinner,pins = "PI12", "PI13";
1248 allwinner,function = "ps2"; 1381 allwinner,function = "uart6";
1249 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1382 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1250 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 1383 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1251 }; 1384 };
1252 1385
1253 spdif_tx_pins_a: spdif@0 { 1386 uart7_pins_a: uart7@0 {
1254 allwinner,pins = "PB13"; 1387 allwinner,pins = "PI20", "PI21";
1255 allwinner,function = "spdif"; 1388 allwinner,function = "uart7";
1256 allwinner,drive = <SUN4I_PINCTRL_10_MA>; 1389 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
1257 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>; 1390 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
1258 }; 1391 };
1259 }; 1392 };
1260 1393
@@ -1320,6 +1453,32 @@
1320 status = "disabled"; 1453 status = "disabled";
1321 }; 1454 };
1322 1455
1456 i2s1: i2s@01c22000 {
1457 #sound-dai-cells = <0>;
1458 compatible = "allwinner,sun4i-a10-i2s";
1459 reg = <0x01c22000 0x400>;
1460 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
1461 clocks = <&apb0_gates 4>, <&i2s1_clk>;
1462 clock-names = "apb", "mod";
1463 dmas = <&dma SUN4I_DMA_NORMAL 4>,
1464 <&dma SUN4I_DMA_NORMAL 4>;
1465 dma-names = "rx", "tx";
1466 status = "disabled";
1467 };
1468
1469 i2s0: i2s@01c22400 {
1470 #sound-dai-cells = <0>;
1471 compatible = "allwinner,sun4i-a10-i2s";
1472 reg = <0x01c22400 0x400>;
1473 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1474 clocks = <&apb0_gates 3>, <&i2s0_clk>;
1475 clock-names = "apb", "mod";
1476 dmas = <&dma SUN4I_DMA_NORMAL 3>,
1477 <&dma SUN4I_DMA_NORMAL 3>;
1478 dma-names = "rx", "tx";
1479 status = "disabled";
1480 };
1481
1323 lradc: lradc@01c22800 { 1482 lradc: lradc@01c22800 {
1324 compatible = "allwinner,sun4i-a10-lradc-keys"; 1483 compatible = "allwinner,sun4i-a10-lradc-keys";
1325 reg = <0x01c22800 0x100>; 1484 reg = <0x01c22800 0x100>;
@@ -1345,6 +1504,19 @@
1345 reg = <0x01c23800 0x200>; 1504 reg = <0x01c23800 0x200>;
1346 }; 1505 };
1347 1506
1507 i2s2: i2s@01c24400 {
1508 #sound-dai-cells = <0>;
1509 compatible = "allwinner,sun4i-a10-i2s";
1510 reg = <0x01c24400 0x400>;
1511 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
1512 clocks = <&apb0_gates 8>, <&i2s2_clk>;
1513 clock-names = "apb", "mod";
1514 dmas = <&dma SUN4I_DMA_NORMAL 6>,
1515 <&dma SUN4I_DMA_NORMAL 6>;
1516 dma-names = "rx", "tx";
1517 status = "disabled";
1518 };
1519
1348 rtp: rtp@01c25000 { 1520 rtp: rtp@01c25000 {
1349 compatible = "allwinner,sun5i-a13-ts"; 1521 compatible = "allwinner,sun5i-a13-ts";
1350 reg = <0x01c25000 0x100>; 1522 reg = <0x01c25000 0x100>;
diff --git a/arch/arm/boot/dts/sun8i-a23-inet86dz.dts b/arch/arm/boot/dts/sun8i-a23-inet86dz.dts
new file mode 100644
index 000000000000..0f9f71b14047
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-a23-inet86dz.dts
@@ -0,0 +1,58 @@
1/*
2 * Copyright 2016 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-a23.dtsi"
45#include "sun8i-reference-design-tablet.dtsi"
46
47/ {
48 model = "INet-86DZ Rev 01";
49 compatible = "primux,inet86dz", "allwinner,sun8i-a23";
50};
51
52&ehci0 {
53 status = "okay";
54};
55
56&usbphy {
57 usb1_vbus-supply = <&reg_dldo1>;
58};
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
new file mode 100644
index 000000000000..e3004428e7a7
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts
@@ -0,0 +1,50 @@
1/*
2 * Copyright 2016 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-a23.dtsi"
45#include "sun8i-reference-design-tablet.dtsi"
46
47/ {
48 model = "Polaroid MID2407PXE03 tablet";
49 compatible = "polaroid,mid2407pxe03", "allwinner,sun8i-a23";
50};
diff --git a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
index cb5daafcb7c2..6d06e24d446b 100644
--- a/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
+++ b/arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts
@@ -42,202 +42,9 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun8i-a23.dtsi" 44#include "sun8i-a23.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun8i-reference-design-tablet.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#include <dt-bindings/pwm/pwm.h>
51 46
52/ { 47/ {
53 model = "Polaroid MID2809PXE04 tablet"; 48 model = "Polaroid MID2809PXE04 tablet";
54 compatible = "polaroid,mid2809pxe04", "allwinner,sun8i-a23"; 49 compatible = "polaroid,mid2809pxe04", "allwinner,sun8i-a23";
55
56 aliases {
57 serial0 = &r_uart;
58 };
59
60 backlight: backlight {
61 compatible = "pwm-backlight";
62 pinctrl-names = "default";
63 pinctrl-0 = <&bl_en_pin_mid2809>;
64 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
65 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
66 default-brightness-level = <8>;
67 enable-gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
68 };
69
70 chosen {
71 stdout-path = "serial0:115200n8";
72 };
73};
74
75&ehci0 {
76 status = "okay";
77};
78
79&i2c0 {
80 pinctrl-names = "default";
81 pinctrl-0 = <&i2c0_pins_a>;
82 status = "okay";
83};
84
85&i2c1 {
86 pinctrl-names = "default";
87 pinctrl-0 = <&i2c1_pins_a>;
88 status = "okay";
89};
90
91&lradc {
92 vref-supply = <&reg_vcc3v0>;
93 status = "okay";
94
95 button@200 {
96 label = "Volume Up";
97 linux,code = <KEY_VOLUMEUP>;
98 channel = <0>;
99 voltage = <200000>;
100 };
101
102 button@400 {
103 label = "Volume Down";
104 linux,code = <KEY_VOLUMEDOWN>;
105 channel = <0>;
106 voltage = <400000>;
107 };
108};
109
110&mmc0 {
111 pinctrl-names = "default";
112 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_mid2809>;
113 vmmc-supply = <&reg_dcdc1>;
114 bus-width = <4>;
115 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
116 cd-inverted;
117 status = "okay";
118};
119
120&pio {
121 bl_en_pin_mid2809: bl_en_pin@0 {
122 allwinner,pins = "PH6";
123 allwinner,function = "gpio_in";
124 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
125 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
126 };
127
128 mmc0_cd_pin_mid2809: mmc0_cd_pin@0 {
129 allwinner,pins = "PB4";
130 allwinner,function = "gpio_in";
131 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
132 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
133 };
134};
135
136&pwm {
137 pinctrl-names = "default";
138 pinctrl-0 = <&pwm0_pins>;
139 status = "okay";
140};
141
142&r_rsb {
143 status = "okay";
144
145 axp22x: pmic@3a3 {
146 compatible = "x-powers,axp223";
147 reg = <0x3a3>;
148 interrupt-parent = <&nmi_intc>;
149 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
150 eldoin-supply = <&reg_dcdc1>;
151 };
152};
153
154&r_uart {
155 pinctrl-names = "default";
156 pinctrl-0 = <&r_uart_pins_a>;
157 status = "okay";
158};
159
160#include "axp22x.dtsi"
161
162&reg_aldo1 {
163 regulator-always-on;
164 regulator-min-microvolt = <3000000>;
165 regulator-max-microvolt = <3000000>;
166 regulator-name = "vcc-io";
167};
168
169&reg_aldo2 {
170 regulator-always-on;
171 regulator-min-microvolt = <2350000>;
172 regulator-max-microvolt = <2650000>;
173 regulator-name = "vdd-dll";
174};
175
176&reg_aldo3 {
177 regulator-always-on;
178 regulator-min-microvolt = <2700000>;
179 regulator-max-microvolt = <3300000>;
180 regulator-name = "vcc-pll-avcc";
181};
182
183&reg_dc1sw {
184 regulator-name = "vcc-lcd";
185};
186
187&reg_dc5ldo {
188 regulator-always-on;
189 regulator-min-microvolt = <900000>;
190 regulator-max-microvolt = <1400000>;
191 regulator-name = "vdd-cpus";
192};
193
194&reg_dcdc1 {
195 regulator-always-on;
196 regulator-min-microvolt = <3000000>;
197 regulator-max-microvolt = <3000000>;
198 regulator-name = "vcc-3v0";
199};
200
201&reg_dcdc2 {
202 regulator-always-on;
203 regulator-min-microvolt = <900000>;
204 regulator-max-microvolt = <1400000>;
205 regulator-name = "vdd-sys";
206};
207
208&reg_dcdc3 {
209 regulator-always-on;
210 regulator-min-microvolt = <900000>;
211 regulator-max-microvolt = <1400000>;
212 regulator-name = "vdd-cpu";
213};
214
215&reg_dcdc5 {
216 regulator-always-on;
217 regulator-min-microvolt = <1500000>;
218 regulator-max-microvolt = <1500000>;
219 regulator-name = "vcc-dram";
220};
221
222&reg_rtc_ldo {
223 regulator-name = "vcc-rtc";
224};
225
226&simplefb_lcd {
227 vcc-lcd-supply = <&reg_dc1sw>;
228};
229
230/*
231 * FIXME for now we only support host mode and rely on u-boot to have
232 * turned on Vbus which is controlled by the axp223 pmic on the board.
233 *
234 * Once we have axp223 support we should switch to fully supporting otg.
235 */
236&usb_otg {
237 dr_mode = "host";
238 status = "okay";
239};
240
241&usbphy {
242 status = "okay";
243}; 50};
diff --git a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
index 6062ea7a9903..956320a6cc78 100644
--- a/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
+++ b/arch/arm/boot/dts/sun8i-a23-q8-tablet.dts
@@ -48,18 +48,3 @@
48 model = "Q8 A23 Tablet"; 48 model = "Q8 A23 Tablet";
49 compatible = "allwinner,q8-a23", "allwinner,sun8i-a23"; 49 compatible = "allwinner,q8-a23", "allwinner,sun8i-a23";
50}; 50};
51
52/*
53 * FIXME for now we only support host mode and rely on u-boot to have
54 * turned on Vbus which is controlled by the axp223 pmic on the board.
55 *
56 * Once we have axp223 support we should switch to fully supporting otg.
57 */
58&usb_otg {
59 dr_mode = "host";
60 status = "okay";
61};
62
63&usbphy {
64 status = "okay";
65};
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 1aefc6793e25..65660324005c 100644
--- a/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
+++ b/arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts
@@ -42,59 +42,18 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun8i-a33.dtsi" 44#include "sun8i-a33.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sun8i-reference-design-tablet.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 46
51/ { 47/ {
52 model = "Allwinner GA10H Quad Core Tablet (v1.1)"; 48 model = "Allwinner GA10H Quad Core Tablet (v1.1)";
53 compatible = "allwinner,ga10h-v1.1", "allwinner,sun8i-a33"; 49 compatible = "allwinner,ga10h-v1.1", "allwinner,sun8i-a33";
54
55 aliases {
56 serial0 = &r_uart;
57 };
58
59 chosen {
60 stdout-path = "serial0:115200n8";
61 };
62}; 50};
63 51
64&ehci0 { 52&ehci0 {
65 status = "okay"; 53 status = "okay";
66}; 54};
67 55
68&i2c0 {
69 pinctrl-names = "default";
70 pinctrl-0 = <&i2c0_pins_a>;
71 status = "okay";
72};
73
74&i2c1 {
75 pinctrl-names = "default";
76 pinctrl-0 = <&i2c1_pins_a>;
77 status = "okay";
78};
79
80&lradc { 56&lradc {
81 vref-supply = <&reg_vcc3v0>;
82 status = "okay";
83
84 button@200 {
85 label = "Volume Up";
86 linux,code = <KEY_VOLUMEUP>;
87 channel = <0>;
88 voltage = <200000>;
89 };
90
91 button@400 {
92 label = "Volume Down";
93 linux,code = <KEY_VOLUMEDOWN>;
94 channel = <0>;
95 voltage = <400000>;
96 };
97
98 button@600 { 57 button@600 {
99 label = "Back"; 58 label = "Back";
100 linux,code = <KEY_BACK>; 59 linux,code = <KEY_BACK>;
@@ -103,40 +62,6 @@
103 }; 62 };
104}; 63};
105 64
106&mmc0 {
107 pinctrl-names = "default";
108 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8h>;
109 vmmc-supply = <&reg_vcc3v0>;
110 bus-width = <4>;
111 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
112 cd-inverted;
113 status = "okay";
114};
115
116&ohci0 { 65&ohci0 {
117 status = "okay"; 66 status = "okay";
118}; 67};
119
120&pio {
121 mmc0_cd_pin_q8h: mmc0_cd_pin@0 {
122 allwinner,pins = "PB4";
123 allwinner,function = "gpio_in";
124 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
125 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
126 };
127};
128
129&r_uart {
130 pinctrl-names = "default";
131 pinctrl-0 = <&r_uart_pins_a>;
132 status = "okay";
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-q8-tablet.dts b/arch/arm/boot/dts/sun8i-a33-q8-tablet.dts
index 44b32296a025..b0bc2360f8c4 100644
--- a/arch/arm/boot/dts/sun8i-a33-q8-tablet.dts
+++ b/arch/arm/boot/dts/sun8i-a33-q8-tablet.dts
@@ -48,18 +48,3 @@
48 model = "Q8 A33 Tablet"; 48 model = "Q8 A33 Tablet";
49 compatible = "allwinner,q8-a33", "allwinner,sun8i-a33"; 49 compatible = "allwinner,q8-a33", "allwinner,sun8i-a33";
50}; 50};
51
52/*
53 * FIXME for now we only support host mode and rely on u-boot to have
54 * turned on Vbus which is controlled by the axp223 pmic on the board.
55 *
56 * Once we have axp223 support we should switch to fully supporting otg.
57 */
58&usb_otg {
59 dr_mode = "host";
60 status = "okay";
61};
62
63&usbphy {
64 status = "okay";
65};
diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
new file mode 100644
index 000000000000..f3b1d5f6dbd2
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -0,0 +1,195 @@
1/*
2 * Copyright (C) 2016 Chen-Yu Tsai <wens@csie.org>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49#include <dt-bindings/pinctrl/sun4i-a10.h>
50
51/ {
52 model = "Banana Pi BPI-M2-Plus";
53 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun8i-h3";
54
55 aliases {
56 serial0 = &uart0;
57 serial1 = &uart1;
58 };
59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
64 leds {
65 compatible = "gpio-leds";
66 pinctrl-names = "default";
67 pinctrl-0 = <&pwr_led_bpi_m2p>;
68
69 pwr_led {
70 label = "bananapi-m2-plus:red:pwr";
71 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
72 default-state = "on";
73 };
74 };
75
76 gpio_keys {
77 compatible = "gpio-keys";
78 pinctrl-names = "default";
79 pinctrl-0 = <&sw_r_bpi_m2p>;
80
81 sw4 {
82 label = "power";
83 linux,code = <BTN_0>;
84 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
85 };
86 };
87
88 wifi_pwrseq: wifi_pwrseq {
89 compatible = "mmc-pwrseq-simple";
90 pinctrl-names = "default";
91 pinctrl-0 = <&wifi_en_bpi_m2p>;
92 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
93 };
94};
95
96&ehci1 {
97 status = "okay";
98};
99
100&ehci2 {
101 status = "okay";
102};
103
104&ir {
105 pinctrl-names = "default";
106 pinctrl-0 = <&ir_pins_a>;
107 status = "okay";
108};
109
110&mmc0 {
111 pinctrl-names = "default";
112 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
113 vmmc-supply = <&reg_vcc3v3>;
114 bus-width = <4>;
115 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
116 cd-inverted;
117 status = "okay";
118};
119
120&mmc1 {
121 pinctrl-names = "default";
122 pinctrl-0 = <&mmc1_pins_a>;
123 vmmc-supply = <&reg_vcc3v3>;
124 vqmmc-supply = <&reg_vcc3v3>;
125 mmc-pwrseq = <&wifi_pwrseq>;
126 bus-width = <4>;
127 non-removable;
128 status = "okay";
129
130 brcmf: bcrmf@1 {
131 reg = <1>;
132 compatible = "brcm,bcm4329-fmac";
133 interrupt-parent = <&pio>;
134 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
135 interrupt-names = "host-wake";
136 };
137};
138
139&mmc2 {
140 pinctrl-names = "default";
141 pinctrl-0 = <&mmc2_8bit_pins>;
142 vmmc-supply = <&reg_vcc3v3>;
143 vqmmc-supply = <&reg_vcc3v3>;
144 bus-width = <8>;
145 non-removable;
146 status = "okay";
147};
148
149&ohci1 {
150 status = "okay";
151};
152
153&ohci2 {
154 status = "okay";
155};
156
157&r_pio {
158 pwr_led_bpi_m2p: led_pins@0 {
159 allwinner,pins = "PL10";
160 allwinner,function = "gpio_out";
161 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
162 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
163 };
164
165 sw_r_bpi_m2p: key_pins@0 {
166 allwinner,pins = "PL3";
167 allwinner,function = "gpio_in";
168 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
169 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
170 };
171
172 wifi_en_bpi_m2p: wifi_en_pin {
173 allwinner,pins = "PL7";
174 allwinner,function = "gpio_out";
175 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
176 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
177 };
178};
179
180&uart0 {
181 pinctrl-names = "default";
182 pinctrl-0 = <&uart0_pins_a>;
183 status = "okay";
184};
185
186&uart1 {
187 pinctrl-names = "default";
188 pinctrl-0 = <&uart1_pins_a>;
189 status = "okay";
190};
191
192&usbphy {
193 /* USB VBUS is on as long as VCC-IO is on */
194 status = "okay";
195};
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index 9871bad34742..fdf9fdbda267 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -327,13 +327,6 @@
327 interrupt-controller; 327 interrupt-controller;
328 #interrupt-cells = <3>; 328 #interrupt-cells = <3>;
329 329
330 uart0_pins_a: uart0@0 {
331 allwinner,pins = "PA4", "PA5";
332 allwinner,function = "uart0";
333 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
334 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
335 };
336
337 mmc0_pins_a: mmc0@0 { 330 mmc0_pins_a: mmc0@0 {
338 allwinner,pins = "PF0", "PF1", "PF2", "PF3", 331 allwinner,pins = "PF0", "PF1", "PF2", "PF3",
339 "PF4", "PF5"; 332 "PF4", "PF5";
@@ -366,6 +359,20 @@
366 allwinner,drive = <SUN4I_PINCTRL_30_MA>; 359 allwinner,drive = <SUN4I_PINCTRL_30_MA>;
367 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>; 360 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
368 }; 361 };
362
363 uart0_pins_a: uart0@0 {
364 allwinner,pins = "PA4", "PA5";
365 allwinner,function = "uart0";
366 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
367 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
368 };
369
370 uart1_pins_a: uart1@0 {
371 allwinner,pins = "PG6", "PG7", "PG8", "PG9";
372 allwinner,function = "uart1";
373 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
374 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
375 };
369 }; 376 };
370 377
371 timer@01c20c00 { 378 timer@01c20c00 {
diff --git a/arch/arm/boot/dts/sun8i-q8-common.dtsi b/arch/arm/boot/dts/sun8i-q8-common.dtsi
index 346a49d805a7..60fa9585022b 100644
--- a/arch/arm/boot/dts/sun8i-q8-common.dtsi
+++ b/arch/arm/boot/dts/sun8i-q8-common.dtsi
@@ -39,140 +39,13 @@
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE. 40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 41 */
42#include "sunxi-q8-common.dtsi" 42#include "sunxi-reference-design-tablet.dtsi"
43#include "sun8i-reference-design-tablet.dtsi"
43 44
44#include <dt-bindings/pwm/pwm.h> 45&ehci0 {
45 46 status = "okay";
46/ {
47 aliases {
48 serial0 = &r_uart;
49 };
50
51 backlight: backlight {
52 compatible = "pwm-backlight";
53 pinctrl-names = "default";
54 pinctrl-0 = <&bl_en_pin_q8>;
55 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
56 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
57 default-brightness-level = <8>;
58 enable-gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
59 };
60
61 chosen {
62 stdout-path = "serial0:115200n8";
63 };
64};
65
66&mmc0 {
67 pinctrl-names = "default";
68 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_q8>;
69 vmmc-supply = <&reg_dcdc1>;
70 bus-width = <4>;
71 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
72 cd-inverted;
73 status = "okay";
74};
75
76&pio {
77 bl_en_pin_q8: bl_en_pin@0 {
78 allwinner,pins = "PH6";
79 allwinner,function = "gpio_in";
80 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
81 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
82 };
83
84 mmc0_cd_pin_q8: mmc0_cd_pin@0 {
85 allwinner,pins = "PB4";
86 allwinner,function = "gpio_in";
87 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
88 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
89 };
90};
91
92&r_rsb {
93 status = "okay";
94
95 axp22x: pmic@3a3 {
96 compatible = "x-powers,axp223";
97 reg = <0x3a3>;
98 interrupt-parent = <&nmi_intc>;
99 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
100 eldoin-supply = <&reg_dcdc1>;
101 };
102};
103
104#include "axp22x.dtsi"
105
106&reg_aldo1 {
107 regulator-always-on;
108 regulator-min-microvolt = <3000000>;
109 regulator-max-microvolt = <3000000>;
110 regulator-name = "vcc-io";
111};
112
113&reg_aldo2 {
114 regulator-always-on;
115 regulator-min-microvolt = <2350000>;
116 regulator-max-microvolt = <2650000>;
117 regulator-name = "vdd-dll";
118};
119
120&reg_aldo3 {
121 regulator-always-on;
122 regulator-min-microvolt = <2700000>;
123 regulator-max-microvolt = <3300000>;
124 regulator-name = "vcc-pll-avcc";
125};
126
127&reg_dc1sw {
128 regulator-name = "vcc-lcd";
129};
130
131&reg_dc5ldo {
132 regulator-always-on;
133 regulator-min-microvolt = <900000>;
134 regulator-max-microvolt = <1400000>;
135 regulator-name = "vdd-cpus";
136};
137
138&reg_dcdc1 {
139 regulator-always-on;
140 regulator-min-microvolt = <3000000>;
141 regulator-max-microvolt = <3000000>;
142 regulator-name = "vcc-3v0";
143};
144
145&reg_dcdc2 {
146 regulator-always-on;
147 regulator-min-microvolt = <900000>;
148 regulator-max-microvolt = <1400000>;
149 regulator-name = "vdd-sys";
150};
151
152&reg_dcdc3 {
153 regulator-always-on;
154 regulator-min-microvolt = <900000>;
155 regulator-max-microvolt = <1400000>;
156 regulator-name = "vdd-cpu";
157};
158
159&reg_dcdc5 {
160 regulator-always-on;
161 regulator-min-microvolt = <1500000>;
162 regulator-max-microvolt = <1500000>;
163 regulator-name = "vcc-dram";
164};
165
166&reg_rtc_ldo {
167 regulator-name = "vcc-rtc";
168};
169
170&r_uart {
171 pinctrl-names = "default";
172 pinctrl-0 = <&r_uart_pins_a>;
173 status = "okay";
174}; 47};
175 48
176&simplefb_lcd { 49&usbphy {
177 vcc-lcd-supply = <&reg_dc1sw>; 50 usb1_vbus-supply = <&reg_dldo1>;
178}; 51};
diff --git a/arch/arm/boot/dts/sun8i-r16-parrot.dts b/arch/arm/boot/dts/sun8i-r16-parrot.dts
new file mode 100644
index 000000000000..47553e522982
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-r16-parrot.dts
@@ -0,0 +1,351 @@
1/*
2 * Copyright 2016 Quentin Schulz
3 *
4 * Quentin Schulz <quentin.schulz@free-electrons.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 "sun8i-a33.dtsi"
47#include "sunxi-common-regulators.dtsi"
48
49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h>
51
52/ {
53 model = "Allwinner R16 EVB (Parrot)";
54 compatible = "allwinner,parrot", "allwinner,sun8i-a33";
55
56 aliases {
57 serial0 = &uart0;
58 };
59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
64 leds {
65 compatible = "gpio-leds";
66 pinctrl-names = "default";
67 pinctrl-0 = <&led_pins_parrot>;
68
69 led1 {
70 label = "parrot:led1:usr";
71 gpio = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
72 };
73
74 led2 {
75 label = "parrot:led2:usr";
76 gpio = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
77 };
78 };
79
80 wifi_pwrseq: wifi_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
83 };
84
85};
86
87&ehci0 {
88 status = "okay";
89};
90
91&i2c1 {
92 pinctrl-names = "default";
93 pinctrl-0 = <&i2c1_pins_a>;
94 status = "okay";
95
96 /*
97 * FIXME: An as-yet-unknown accelerometer is connected to this
98 * i2c bus.
99 */
100};
101
102&lradc {
103 vref-supply = <&reg_aldo3>;
104 status = "okay";
105
106 button@0 {
107 label = "V+";
108 linux,code = <KEY_VOLUMEUP>;
109 channel = <0>;
110 voltage = <190000>;
111 };
112
113 button@1 {
114 label = "V-";
115 linux,code = <KEY_VOLUMEDOWN>;
116 channel = <0>;
117 voltage = <390000>;
118 };
119
120};
121
122&mmc0 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_parrot>;
125 vmmc-supply = <&reg_dcdc1>;
126 cd-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */
127 bus-width = <4>;
128 status = "okay";
129};
130
131&mmc1 {
132 pinctrl-names = "default";
133 pinctrl-0 = <&mmc1_pins_a>, <&wifi_reset_pin_parrot>;
134 vmmc-supply = <&reg_aldo1>;
135 mmc-pwrseq = <&wifi_pwrseq>;
136 bus-width = <4>;
137 non-removable;
138 status = "okay";
139};
140
141&mmc2 {
142 pinctrl-names = "default";
143 pinctrl-0 = <&mmc2_8bit_pins>;
144 vmmc-supply = <&reg_dcdc1>;
145 bus-width = <8>;
146 non-removable;
147 cap-mmc-hw-reset;
148 status = "okay";
149};
150
151&mmc2_8bit_pins {
152 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
153 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
154};
155
156&ohci0 {
157 status = "okay";
158};
159
160&pio {
161 mmc0_cd_pin_parrot: mmc0_cd_pin@0 {
162 allwinner,pins = "PD14";
163 allwinner,function = "gpio_in";
164 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
165 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
166 };
167
168 led_pins_parrot: led_pins@0 {
169 allwinner,pins = "PE16", "PE17";
170 allwinner,function = "gpio_out";
171 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
172 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
173 };
174
175 usb0_id_det: usb0_id_detect_pin@0 {
176 allwinner,pins = "PD10";
177 allwinner,function = "gpio_in";
178 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
179 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
180 };
181
182 usb1_vbus_pin_parrot: usb1_vbus_pin@0 {
183 allwinner,pins = "PD12";
184 allwinner,function = "gpio_out";
185 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
186 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
187 };
188};
189
190&r_pio {
191 wifi_reset_pin_parrot: wifi_reset_pin@0 {
192 allwinner,pins = "PL6";
193 allwinner,function = "gpio_out";
194 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
195 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
196 };
197};
198
199&r_rsb {
200 status = "okay";
201
202 axp22x: pmic@3a3 {
203 compatible = "x-powers,axp223";
204 reg = <0x3a3>;
205 interrupt-parent = <&nmi_intc>;
206 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
207 drivevbus-supply = <&reg_vcc5v0>;
208 x-powers,drive-vbus-en;
209 };
210};
211
212#include "axp22x.dtsi"
213
214&reg_aldo1 {
215 regulator-always-on;
216 regulator-min-microvolt = <3000000>;
217 regulator-max-microvolt = <3000000>;
218 regulator-name = "vcc-io";
219};
220
221&reg_aldo2 {
222 regulator-always-on;
223 regulator-min-microvolt = <2350000>;
224 regulator-max-microvolt = <2650000>;
225 regulator-name = "vdd-dll";
226};
227
228&reg_aldo3 {
229 regulator-always-on;
230 regulator-min-microvolt = <2700000>;
231 regulator-max-microvolt = <3300000>;
232 regulator-name = "vcc-pll-avcc";
233};
234
235&reg_dc5ldo {
236 regulator-always-on;
237 regulator-min-microvolt = <900000>;
238 regulator-max-microvolt = <1400000>;
239 regulator-name = "vdd-cpus";
240};
241
242&reg_dcdc1 {
243 regulator-always-on;
244 regulator-min-microvolt = <3000000>;
245 regulator-max-microvolt = <3000000>;
246 regulator-name = "vcc-3v0";
247};
248
249&reg_dcdc2 {
250 regulator-always-on;
251 regulator-min-microvolt = <900000>;
252 regulator-max-microvolt = <1400000>;
253 regulator-name = "vdd-sys";
254};
255
256&reg_dcdc3 {
257 regulator-always-on;
258 regulator-min-microvolt = <900000>;
259 regulator-max-microvolt = <1400000>;
260 regulator-name = "vdd-cpu";
261};
262
263&reg_dcdc5 {
264 regulator-always-on;
265 regulator-min-microvolt = <1500000>;
266 regulator-max-microvolt = <1500000>;
267 regulator-name = "vcc-dram";
268};
269
270&reg_dldo1 {
271 /*
272 * TODO: WiFi chip needs dldo1 AND dldo2 to be on to be powered.
273 * Remove next line once it is possible to sync two regulators.
274 */
275 regulator-always-on;
276 regulator-min-microvolt = <3300000>;
277 regulator-max-microvolt = <3300000>;
278 regulator-name = "vcc-wifi0";
279};
280
281&reg_dldo2 {
282 /*
283 * TODO: WiFi chip needs dldo1 AND dldo2 to be on to be powered.
284 * Remove next line once it is possible to sync two regulators.
285 */
286 regulator-always-on;
287 regulator-min-microvolt = <3300000>;
288 regulator-max-microvolt = <3300000>;
289 regulator-name = "vcc-wifi1";
290};
291
292&reg_dldo3 {
293 regulator-min-microvolt = <3000000>;
294 regulator-max-microvolt = <3000000>;
295 regulator-name = "vcc-3v0-csi";
296};
297
298&reg_drivevbus {
299 regulator-name = "usb0-vbus";
300 status = "okay";
301};
302
303&reg_eldo1 {
304 regulator-min-microvolt = <1200000>;
305 regulator-max-microvolt = <1200000>;
306 regulator-name = "vcc-1v2-hsic";
307};
308
309&reg_eldo2 {
310 regulator-min-microvolt = <3000000>;
311 regulator-max-microvolt = <3000000>;
312 regulator-name = "vcc-dsp";
313};
314
315&reg_eldo3 {
316 regulator-min-microvolt = <3000000>;
317 regulator-max-microvolt = <3000000>;
318 regulator-name = "eldo3";
319};
320
321&reg_usb1_vbus {
322 pinctrl-names = "default";
323 pinctrl-0 = <&usb1_vbus_pin_parrot>;
324 gpio = <&pio 3 12 GPIO_ACTIVE_HIGH>; /* PD12 */
325 status = "okay";
326};
327
328&uart0 {
329 pinctrl-names = "default";
330 pinctrl-0 = <&uart0_pins_b>;
331 status = "okay";
332};
333
334&usb_otg {
335 dr_mode = "otg";
336 status = "okay";
337};
338
339&usb_power_supply {
340 status = "okay";
341};
342
343&usbphy {
344 status = "okay";
345 pinctrl-names = "default";
346 pinctrl-0 = <&usb0_id_det>;
347 usb0_vbus-supply = <&reg_drivevbus>;
348 usb0_id_det-gpios = <&pio 3 10 GPIO_ACTIVE_HIGH>; /* PD10 */
349 usb0_vbus_power-supply = <&usb_power_supply>;
350 usb1_vbus-supply = <&reg_usb1_vbus>;
351};
diff --git a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
new file mode 100644
index 000000000000..9d9036140511
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
@@ -0,0 +1,216 @@
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#include "sunxi-reference-design-tablet.dtsi"
43
44#include <dt-bindings/pwm/pwm.h>
45
46/ {
47 aliases {
48 serial0 = &r_uart;
49 };
50
51 backlight: backlight {
52 compatible = "pwm-backlight";
53 pinctrl-names = "default";
54 pinctrl-0 = <&bl_en_pin>;
55 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
56 brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
57 default-brightness-level = <8>;
58 enable-gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
59 };
60
61 chosen {
62 stdout-path = "serial0:115200n8";
63 };
64};
65
66&mmc0 {
67 pinctrl-names = "default";
68 pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin>;
69 vmmc-supply = <&reg_dcdc1>;
70 bus-width = <4>;
71 cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
72 cd-inverted;
73 status = "okay";
74};
75
76&pio {
77 bl_en_pin: bl_en_pin@0 {
78 allwinner,pins = "PH6";
79 allwinner,function = "gpio_in";
80 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
81 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
82 };
83
84 mmc0_cd_pin: mmc0_cd_pin@0 {
85 allwinner,pins = "PB4";
86 allwinner,function = "gpio_in";
87 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
88 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
89 };
90
91 usb0_id_detect_pin: usb0_id_detect_pin@0 {
92 allwinner,pins = "PH8";
93 allwinner,function = "gpio_in";
94 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
95 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
96 };
97};
98
99&r_rsb {
100 status = "okay";
101
102 axp22x: pmic@3a3 {
103 compatible = "x-powers,axp223";
104 reg = <0x3a3>;
105 interrupt-parent = <&nmi_intc>;
106 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
107 eldoin-supply = <&reg_dcdc1>;
108 drivevbus-supply = <&reg_vcc5v0>;
109 x-powers,drive-vbus-en;
110 };
111};
112
113#include "axp22x.dtsi"
114
115&reg_aldo1 {
116 regulator-always-on;
117 regulator-min-microvolt = <3000000>;
118 regulator-max-microvolt = <3000000>;
119 regulator-name = "vcc-io";
120};
121
122&reg_aldo2 {
123 regulator-always-on;
124 regulator-min-microvolt = <2350000>;
125 regulator-max-microvolt = <2650000>;
126 regulator-name = "vdd-dll";
127};
128
129&reg_aldo3 {
130 regulator-always-on;
131 regulator-min-microvolt = <2700000>;
132 regulator-max-microvolt = <3300000>;
133 regulator-name = "vcc-pll-avcc";
134};
135
136&reg_dc1sw {
137 regulator-name = "vcc-lcd";
138};
139
140&reg_dc5ldo {
141 regulator-always-on;
142 regulator-min-microvolt = <900000>;
143 regulator-max-microvolt = <1400000>;
144 regulator-name = "vdd-cpus";
145};
146
147&reg_dcdc1 {
148 regulator-always-on;
149 regulator-min-microvolt = <3000000>;
150 regulator-max-microvolt = <3000000>;
151 regulator-name = "vcc-3v0";
152};
153
154&reg_dcdc2 {
155 regulator-always-on;
156 regulator-min-microvolt = <900000>;
157 regulator-max-microvolt = <1400000>;
158 regulator-name = "vdd-sys";
159};
160
161&reg_dcdc3 {
162 regulator-always-on;
163 regulator-min-microvolt = <900000>;
164 regulator-max-microvolt = <1400000>;
165 regulator-name = "vdd-cpu";
166};
167
168&reg_dcdc5 {
169 regulator-always-on;
170 regulator-min-microvolt = <1500000>;
171 regulator-max-microvolt = <1500000>;
172 regulator-name = "vcc-dram";
173};
174
175&reg_dldo1 {
176 regulator-min-microvolt = <3300000>;
177 regulator-max-microvolt = <3300000>;
178 regulator-name = "vcc-wifi";
179};
180
181&reg_drivevbus {
182 regulator-name = "usb0-vbus";
183 status = "okay";
184};
185
186&reg_rtc_ldo {
187 regulator-name = "vcc-rtc";
188};
189
190&r_uart {
191 pinctrl-names = "default";
192 pinctrl-0 = <&r_uart_pins_a>;
193 status = "okay";
194};
195
196&simplefb_lcd {
197 vcc-lcd-supply = <&reg_dc1sw>;
198};
199
200&usb_otg {
201 dr_mode = "otg";
202 status = "okay";
203};
204
205&usb_power_supply {
206 status = "okay";
207};
208
209&usbphy {
210 pinctrl-names = "default";
211 pinctrl-0 = <&usb0_id_detect_pin>;
212 usb0_id_det-gpio = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */
213 usb0_vbus_power-supply = <&usb_power_supply>;
214 usb0_vbus-supply = <&reg_drivevbus>;
215 status = "okay";
216};
diff --git a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
index eb2ccd0a3bd5..1526b41c70f1 100644
--- a/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
+++ b/arch/arm/boot/dts/sun9i-a80-cubieboard4.dts
@@ -45,7 +45,6 @@
45 45
46/dts-v1/; 46/dts-v1/;
47#include "sun9i-a80.dtsi" 47#include "sun9i-a80.dtsi"
48#include "sunxi-common-regulators.dtsi"
49 48
50#include <dt-bindings/gpio/gpio.h> 49#include <dt-bindings/gpio/gpio.h>
51#include <dt-bindings/pinctrl/sun4i-a10.h> 50#include <dt-bindings/pinctrl/sun4i-a10.h>
@@ -79,26 +78,10 @@
79 }; 78 };
80}; 79};
81 80
82&pio {
83 led_pins_cubieboard4: led-pins@0 {
84 allwinner,pins = "PH6", "PH17";
85 allwinner,function = "gpio_out";
86 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
87 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
88 };
89
90 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 {
91 allwinner,pins = "PH18";
92 allwinner,function = "gpio_in";
93 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
94 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
95 };
96};
97
98&mmc0 { 81&mmc0 {
99 pinctrl-names = "default"; 82 pinctrl-names = "default";
100 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>; 83 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>;
101 vmmc-supply = <&reg_vcc3v0>; 84 vmmc-supply = <&reg_dcdc1>;
102 bus-width = <4>; 85 bus-width = <4>;
103 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */ 86 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */
104 cd-inverted; 87 cd-inverted;
@@ -108,7 +91,7 @@
108&mmc2 { 91&mmc2 {
109 pinctrl-names = "default"; 92 pinctrl-names = "default";
110 pinctrl-0 = <&mmc2_8bit_pins>; 93 pinctrl-0 = <&mmc2_8bit_pins>;
111 vmmc-supply = <&reg_vcc3v0>; 94 vmmc-supply = <&reg_dcdc1>;
112 bus-width = <8>; 95 bus-width = <8>;
113 non-removable; 96 non-removable;
114 cap-mmc-hw-reset; 97 cap-mmc-hw-reset;
@@ -120,14 +103,157 @@
120 allwinner,drive = <SUN4I_PINCTRL_40_MA>; 103 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
121}; 104};
122 105
106&pio {
107 led_pins_cubieboard4: led-pins@0 {
108 allwinner,pins = "PH6", "PH17";
109 allwinner,function = "gpio_out";
110 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
111 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
112 };
113
114 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 {
115 allwinner,pins = "PH18";
116 allwinner,function = "gpio_in";
117 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
118 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
119 };
120};
121
123&r_ir { 122&r_ir {
124 status = "okay"; 123 status = "okay";
125}; 124};
126 125
127&r_rsb { 126&r_rsb {
128 status = "okay"; 127 status = "okay";
128
129 axp809: pmic@3a3 {
130 reg = <0x3a3>;
131 interrupt-parent = <&nmi_intc>;
132 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
133
134 regulators {
135 reg_aldo1: aldo1 {
136 /*
137 * TODO: This should be handled by the
138 * USB PHY driver.
139 */
140 regulator-always-on;
141 regulator-min-microvolt = <3000000>;
142 regulator-max-microvolt = <3000000>;
143 regulator-name = "vcc33-usbh";
144 };
145
146 reg_aldo2: aldo2 {
147 regulator-min-microvolt = <1800000>;
148 regulator-max-microvolt = <1800000>;
149 regulator-name = "vcc-pb-io-cam";
150 };
151
152 aldo3 {
153 /* unused */
154 };
155
156 reg_dc5ldo: dc5ldo {
157 regulator-always-on;
158 regulator-min-microvolt = <800000>;
159 regulator-max-microvolt = <1100000>;
160 regulator-name = "vdd-cpus-09-usbh";
161 };
162
163 reg_dcdc1: dcdc1 {
164 regulator-always-on;
165 regulator-min-microvolt = <3000000>;
166 regulator-max-microvolt = <3000000>;
167 regulator-name = "vcc-3v";
168 };
169
170 reg_dcdc2: dcdc2 {
171 regulator-min-microvolt = <800000>;
172 regulator-max-microvolt = <1100000>;
173 regulator-name = "vdd-gpu";
174 };
175
176 reg_dcdc3: dcdc3 {
177 regulator-always-on;
178 regulator-min-microvolt = <800000>;
179 regulator-max-microvolt = <1100000>;
180 regulator-name = "vdd-cpua";
181 };
182
183 reg_dcdc4: dcdc4 {
184 regulator-always-on;
185 regulator-min-microvolt = <800000>;
186 regulator-max-microvolt = <1100000>;
187 regulator-name = "vdd-sys-usb0-hdmi";
188 };
189
190 reg_dcdc5: dcdc5 {
191 regulator-always-on;
192 regulator-min-microvolt = <1425000>;
193 regulator-max-microvolt = <1575000>;
194 regulator-name = "vcc-dram";
195 };
196
197 reg_dldo1: dldo1 {
198 /*
199 * The WiFi chip supports a wide range
200 * (3.0 ~ 4.8V) of voltages, and so does
201 * this regulator (3.0 ~ 4.2V), but
202 * Allwinner SDK always sets it to 3.3V.
203 */
204 regulator-min-microvolt = <3300000>;
205 regulator-max-microvolt = <3300000>;
206 regulator-name = "vcc-wifi";
207 };
208
209 reg_dldo2: dldo2 {
210 regulator-always-on;
211 regulator-min-microvolt = <3000000>;
212 regulator-max-microvolt = <3000000>;
213 regulator-name = "vcc-pl";
214 };
215
216 reg_eldo1: eldo1 {
217 regulator-min-microvolt = <1200000>;
218 regulator-max-microvolt = <1200000>;
219 regulator-name = "vcc-dvdd-cam";
220 };
221
222 reg_eldo2: eldo2 {
223 regulator-min-microvolt = <1800000>;
224 regulator-max-microvolt = <1800000>;
225 regulator-name = "vcc-pe";
226 };
227
228 reg_eldo3: eldo3 {
229 regulator-always-on;
230 regulator-min-microvolt = <3000000>;
231 regulator-max-microvolt = <3000000>;
232 regulator-name = "vcc-pm-codec-io1";
233 };
234
235 reg_ldo_io0: ldo_io0 {
236 regulator-always-on;
237 regulator-min-microvolt = <3000000>;
238 regulator-max-microvolt = <3000000>;
239 regulator-name = "vcc-pg";
240 };
241
242 reg_ldo_io1: ldo_io1 {
243 regulator-min-microvolt = <2500000>;
244 regulator-max-microvolt = <2500000>;
245 regulator-name = "vcc-pa-gmac-2v5";
246 };
247
248 reg_rtc_ldo: rtc_ldo {
249 regulator-name = "vcc-rtc-vdd1v8-io";
250 };
251 };
252 };
129}; 253};
130 254
255#include "axp809.dtsi"
256
131&uart0 { 257&uart0 {
132 pinctrl-names = "default"; 258 pinctrl-names = "default";
133 pinctrl-0 = <&uart0_pins_a>; 259 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index d7a20d92b114..7fd22e888602 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -44,7 +44,6 @@
44 44
45/dts-v1/; 45/dts-v1/;
46#include "sun9i-a80.dtsi" 46#include "sun9i-a80.dtsi"
47#include "sunxi-common-regulators.dtsi"
48 47
49#include <dt-bindings/gpio/gpio.h> 48#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h> 49#include <dt-bindings/pinctrl/sun4i-a10.h>
@@ -85,6 +84,17 @@
85 }; 84 };
86 }; 85 };
87 86
87 reg_usb1_vbus: usb1-vbus {
88 compatible = "regulator-fixed";
89 pinctrl-names = "default";
90 pinctrl-0 = <&usb1_vbus_pin_optimus>;
91 regulator-name = "usb1-vbus";
92 regulator-min-microvolt = <5000000>;
93 regulator-max-microvolt = <5000000>;
94 enable-active-high;
95 gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
96 };
97
88 reg_usb3_vbus: usb3-vbus { 98 reg_usb3_vbus: usb3-vbus {
89 compatible = "regulator-fixed"; 99 compatible = "regulator-fixed";
90 pinctrl-names = "default"; 100 pinctrl-names = "default";
@@ -109,6 +119,31 @@
109 status = "okay"; 119 status = "okay";
110}; 120};
111 121
122&mmc0 {
123 pinctrl-names = "default";
124 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_optimus>;
125 vmmc-supply = <&reg_dcdc1>;
126 bus-width = <4>;
127 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH8 */
128 cd-inverted;
129 status = "okay";
130};
131
132&mmc2 {
133 pinctrl-names = "default";
134 pinctrl-0 = <&mmc2_8bit_pins>;
135 vmmc-supply = <&reg_dcdc1>;
136 bus-width = <8>;
137 non-removable;
138 cap-mmc-hw-reset;
139 status = "okay";
140};
141
142&mmc2_8bit_pins {
143 /* Increase drive strength for DDR modes */
144 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
145};
146
112&ohci0 { 147&ohci0 {
113 status = "okay"; 148 status = "okay";
114}; 149};
@@ -147,37 +182,6 @@
147 }; 182 };
148}; 183};
149 184
150&mmc0 {
151 pinctrl-names = "default";
152 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_optimus>;
153 vmmc-supply = <&reg_vcc3v0>;
154 bus-width = <4>;
155 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH8 */
156 cd-inverted;
157 status = "okay";
158};
159
160&mmc2 {
161 pinctrl-names = "default";
162 pinctrl-0 = <&mmc2_8bit_pins>;
163 vmmc-supply = <&reg_vcc3v0>;
164 bus-width = <8>;
165 non-removable;
166 cap-mmc-hw-reset;
167 status = "okay";
168};
169
170&mmc2_8bit_pins {
171 /* Increase drive strength for DDR modes */
172 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
173};
174
175&reg_usb1_vbus {
176 pinctrl-0 = <&usb1_vbus_pin_optimus>;
177 gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
178 status = "okay";
179};
180
181&r_ir { 185&r_ir {
182 status = "okay"; 186 status = "okay";
183}; 187};
@@ -193,8 +197,135 @@
193 197
194&r_rsb { 198&r_rsb {
195 status = "okay"; 199 status = "okay";
200
201 axp809: pmic@3a3 {
202 reg = <0x3a3>;
203 interrupt-parent = <&nmi_intc>;
204 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
205
206 regulators {
207 reg_aldo1: aldo1 {
208 /*
209 * TODO: This should be handled by the
210 * USB PHY driver.
211 */
212 regulator-always-on;
213 regulator-min-microvolt = <3000000>;
214 regulator-max-microvolt = <3000000>;
215 regulator-name = "vcc33-usbh";
216 };
217
218 reg_aldo2: aldo2 {
219 regulator-min-microvolt = <1800000>;
220 regulator-max-microvolt = <1800000>;
221 regulator-name = "vcc-pb-io-cam";
222 };
223
224 aldo3 {
225 /* unused */
226 };
227
228 reg_dc5ldo: dc5ldo {
229 regulator-always-on;
230 regulator-min-microvolt = <800000>;
231 regulator-max-microvolt = <1100000>;
232 regulator-name = "vdd-cpus-09-usbh";
233 };
234
235 reg_dcdc1: dcdc1 {
236 regulator-always-on;
237 regulator-min-microvolt = <3000000>;
238 regulator-max-microvolt = <3000000>;
239 regulator-name = "vcc-3v";
240 };
241
242 reg_dcdc2: dcdc2 {
243 regulator-min-microvolt = <800000>;
244 regulator-max-microvolt = <1100000>;
245 regulator-name = "vdd-gpu";
246 };
247
248 reg_dcdc3: dcdc3 {
249 regulator-always-on;
250 regulator-min-microvolt = <800000>;
251 regulator-max-microvolt = <1100000>;
252 regulator-name = "vdd-cpua";
253 };
254
255 reg_dcdc4: dcdc4 {
256 regulator-always-on;
257 regulator-min-microvolt = <800000>;
258 regulator-max-microvolt = <1100000>;
259 regulator-name = "vdd-sys-usb0-hdmi";
260 };
261
262 reg_dcdc5: dcdc5 {
263 regulator-always-on;
264 regulator-min-microvolt = <1425000>;
265 regulator-max-microvolt = <1575000>;
266 regulator-name = "vcc-dram";
267 };
268
269 reg_dldo1: dldo1 {
270 /*
271 * The WiFi chip supports a wide range
272 * (3.0 ~ 4.8V) of voltages, and so does
273 * this regulator (3.0 ~ 4.2V), but
274 * Allwinner SDK always sets it to 3.3V.
275 */
276 regulator-min-microvolt = <3300000>;
277 regulator-max-microvolt = <3300000>;
278 regulator-name = "vcc-wifi";
279 };
280
281 reg_dldo2: dldo2 {
282 regulator-always-on;
283 regulator-min-microvolt = <3000000>;
284 regulator-max-microvolt = <3000000>;
285 regulator-name = "vcc-pl";
286 };
287
288 reg_eldo1: eldo1 {
289 regulator-min-microvolt = <1200000>;
290 regulator-max-microvolt = <1200000>;
291 regulator-name = "vcc-dvdd-cam";
292 };
293
294 reg_eldo2: eldo2 {
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <1800000>;
297 regulator-name = "vcc-pe";
298 };
299
300 reg_eldo3: eldo3 {
301 regulator-always-on;
302 regulator-min-microvolt = <3000000>;
303 regulator-max-microvolt = <3000000>;
304 regulator-name = "vcc-pm-codec-io1";
305 };
306
307 reg_ldo_io0: ldo_io0 {
308 regulator-always-on;
309 regulator-min-microvolt = <3000000>;
310 regulator-max-microvolt = <3000000>;
311 regulator-name = "vcc-pg";
312 };
313
314 reg_ldo_io1: ldo_io1 {
315 regulator-min-microvolt = <2500000>;
316 regulator-max-microvolt = <2500000>;
317 regulator-name = "vcc-pa-gmac-2v5";
318 };
319
320 reg_rtc_ldo: rtc_ldo {
321 regulator-name = "vcc-rtc-vdd1v8-io";
322 };
323 };
324 };
196}; 325};
197 326
327#include "axp809.dtsi"
328
198&uart0 { 329&uart0 {
199 pinctrl-names = "default"; 330 pinctrl-names = "default";
200 pinctrl-0 = <&uart0_pins_a>; 331 pinctrl-0 = <&uart0_pins_a>;
diff --git a/arch/arm/boot/dts/sunxi-q8-common.dtsi b/arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi
index b8241462fcea..b8241462fcea 100644
--- a/arch/arm/boot/dts/sunxi-q8-common.dtsi
+++ b/arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi
diff --git a/arch/arm/boot/dts/tegra114-dalmore.dts b/arch/arm/boot/dts/tegra114-dalmore.dts
index c970bf65c74c..1dfc492cc004 100644
--- a/arch/arm/boot/dts/tegra114-dalmore.dts
+++ b/arch/arm/boot/dts/tegra114-dalmore.dts
@@ -1149,7 +1149,7 @@
1149 1149
1150 clk32k_in: clock@0 { 1150 clk32k_in: clock@0 {
1151 compatible = "fixed-clock"; 1151 compatible = "fixed-clock";
1152 reg=<0>; 1152 reg = <0>;
1153 #clock-cells = <0>; 1153 #clock-cells = <0>;
1154 clock-frequency = <32768>; 1154 clock-frequency = <32768>;
1155 }; 1155 };
diff --git a/arch/arm/boot/dts/tegra114-roth.dts b/arch/arm/boot/dts/tegra114-roth.dts
index 9d868af97b8e..70cf40996c3f 100644
--- a/arch/arm/boot/dts/tegra114-roth.dts
+++ b/arch/arm/boot/dts/tegra114-roth.dts
@@ -1020,9 +1020,9 @@
1020 #address-cells = <1>; 1020 #address-cells = <1>;
1021 #size-cells = <0>; 1021 #size-cells = <0>;
1022 1022
1023 clk32k_in: clock { 1023 clk32k_in: clock@0 {
1024 compatible = "fixed-clock"; 1024 compatible = "fixed-clock";
1025 reg=<0>; 1025 reg = <0>;
1026 #clock-cells = <0>; 1026 #clock-cells = <0>;
1027 clock-frequency = <32768>; 1027 clock-frequency = <32768>;
1028 }; 1028 };
diff --git a/arch/arm/boot/dts/tegra114-tn7.dts b/arch/arm/boot/dts/tegra114-tn7.dts
index 89047edb5c5f..17dd14545862 100644
--- a/arch/arm/boot/dts/tegra114-tn7.dts
+++ b/arch/arm/boot/dts/tegra114-tn7.dts
@@ -277,7 +277,7 @@
277 #address-cells = <1>; 277 #address-cells = <1>;
278 #size-cells = <0>; 278 #size-cells = <0>;
279 279
280 clk32k_in: clock { 280 clk32k_in: clock@0 {
281 compatible = "fixed-clock"; 281 compatible = "fixed-clock";
282 reg = <0>; 282 reg = <0>;
283 #clock-cells = <0>; 283 #clock-cells = <0>;
diff --git a/arch/arm/boot/dts/tegra124-apalis-emc.dtsi b/arch/arm/boot/dts/tegra124-apalis-emc.dtsi
new file mode 100644
index 000000000000..ca2c3a557895
--- /dev/null
+++ b/arch/arm/boot/dts/tegra124-apalis-emc.dtsi
@@ -0,0 +1,1502 @@
1/*
2 * Copyright 2016 Toradex AG
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/ {
43 clock@60006000 {
44 emc-timings-1 {
45 nvidia,ram-code = <1>;
46
47 timing-12750000 {
48 clock-frequency = <12750000>;
49 nvidia,parent-clock-frequency = <408000000>;
50 clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
51 clock-names = "emc-parent";
52 };
53 timing-20400000 {
54 clock-frequency = <20400000>;
55 nvidia,parent-clock-frequency = <408000000>;
56 clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
57 clock-names = "emc-parent";
58 };
59 timing-40800000 {
60 clock-frequency = <40800000>;
61 nvidia,parent-clock-frequency = <408000000>;
62 clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
63 clock-names = "emc-parent";
64 };
65 timing-68000000 {
66 clock-frequency = <68000000>;
67 nvidia,parent-clock-frequency = <408000000>;
68 clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
69 clock-names = "emc-parent";
70 };
71 timing-102000000 {
72 clock-frequency = <102000000>;
73 nvidia,parent-clock-frequency = <408000000>;
74 clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
75 clock-names = "emc-parent";
76 };
77 timing-204000000 {
78 clock-frequency = <204000000>;
79 nvidia,parent-clock-frequency = <408000000>;
80 clocks = <&tegra_car TEGRA124_CLK_PLL_P>;
81 clock-names = "emc-parent";
82 };
83 timing-300000000 {
84 clock-frequency = <300000000>;
85 nvidia,parent-clock-frequency = <600000000>;
86 clocks = <&tegra_car TEGRA124_CLK_PLL_C>;
87 clock-names = "emc-parent";
88 };
89 timing-396000000 {
90 clock-frequency = <396000000>;
91 nvidia,parent-clock-frequency = <792000000>;
92 clocks = <&tegra_car TEGRA124_CLK_PLL_M>;
93 clock-names = "emc-parent";
94 };
95 timing-528000000 {
96 clock-frequency = <528000000>;
97 nvidia,parent-clock-frequency = <528000000>;
98 clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
99 clock-names = "emc-parent";
100 };
101 timing-600000000 {
102 clock-frequency = <600000000>;
103 nvidia,parent-clock-frequency = <600000000>;
104 clocks = <&tegra_car TEGRA124_CLK_PLL_C_UD>;
105 clock-names = "emc-parent";
106 };
107 timing-792000000 {
108 clock-frequency = <792000000>;
109 nvidia,parent-clock-frequency = <792000000>;
110 clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
111 clock-names = "emc-parent";
112 };
113 timing-924000000 {
114 clock-frequency = <924000000>;
115 nvidia,parent-clock-frequency = <924000000>;
116 clocks = <&tegra_car TEGRA124_CLK_PLL_M_UD>;
117 clock-names = "emc-parent";
118 };
119 };
120 };
121
122 emc@7001b000 {
123 emc-timings-1 {
124 nvidia,ram-code = <1>;
125
126 timing-12750000 {
127 clock-frequency = <12750000>;
128
129 nvidia,emc-auto-cal-config = <0xa1430000>;
130 nvidia,emc-auto-cal-config2 = <0x00000000>;
131 nvidia,emc-auto-cal-config3 = <0x00000000>;
132 nvidia,emc-auto-cal-interval = <0x001fffff>;
133 nvidia,emc-bgbias-ctl0 = <0x00000008>;
134 nvidia,emc-cfg = <0x73240000>;
135 nvidia,emc-cfg-2 = <0x000008c5>;
136 nvidia,emc-ctt-term-ctrl = <0x00000802>;
137 nvidia,emc-mode-1 = <0x80100003>;
138 nvidia,emc-mode-2 = <0x80200008>;
139 nvidia,emc-mode-4 = <0x00000000>;
140 nvidia,emc-mode-reset = <0x80001221>;
141 nvidia,emc-mrs-wait-cnt = <0x000e000e>;
142 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
143 nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
144 nvidia,emc-zcal-cnt-long = <0x00000042>;
145 nvidia,emc-zcal-interval = <0x00000000>;
146
147 nvidia,emc-configuration = <
148 0x00000000 0x00000003
149 0x00000000 0x00000000
150 0x00000000 0x00000004
151 0x0000000a 0x00000005
152 0x0000000b 0x00000000
153 0x00000000 0x00000003
154 0x00000003 0x00000000
155 0x00000006 0x00000006
156 0x00000006 0x00000002
157 0x00000000 0x00000005
158 0x00000005 0x00010000
159 0x00000003 0x00000000
160 0x00000000 0x00000000
161 0x00000000 0x00000004
162 0x0000000c 0x0000000d
163 0x0000000f 0x00000060
164 0x00000000 0x00000018
165 0x00000002 0x00000002
166 0x00000001 0x00000000
167 0x00000007 0x0000000f
168 0x00000005 0x00000005
169 0x00000004 0x00000005
170 0x00000004 0x00000000
171 0x00000000 0x00000005
172 0x00000005 0x00000064
173 0x00000000 0x00000000
174 0x00000000 0x106aa298
175 0x002c00a0 0x00008000
176 0x00080000 0x00080000
177 0x00080000 0x00080000
178 0x00080000 0x00080000
179 0x00080000 0x00080000
180 0x00080000 0x00080000
181 0x00080000 0x00080000
182 0x00080000 0x00080000
183 0x00080000 0x00080000
184 0x00000000 0x00000000
185 0x00000000 0x00000000
186 0x00000000 0x00000000
187 0x00000000 0x00000000
188 0x00000000 0x00000000
189 0x00000000 0x00000000
190 0x00000000 0x00000000
191 0x00000000 0x00000000
192 0x00000000 0x00000000
193 0x00000000 0x00000000
194 0x00000000 0x00000000
195 0x00000000 0x00000000
196 0x00000000 0x00000000
197 0x00000000 0x00000000
198 0x00000000 0x00000000
199 0x00000000 0x00000000
200 0x00000000 0x00000000
201 0x00000000 0x00000000
202 0x00000000 0x00000000
203 0x000fc000 0x000fc000
204 0x000fc000 0x000fc000
205 0x0000fc00 0x0000fc00
206 0x0000fc00 0x0000fc00
207 0x10000280 0x00000000
208 0x00111111 0x00000000
209 0x00000000 0x77ffc081
210 0x00000e0e 0x81f1f108
211 0x07070004 0x0000003f
212 0x016eeeee 0x51451400
213 0x00514514 0x00514514
214 0x51451400 0x0000003f
215 0x00000007 0x00000000
216 0x00000042 0x000e000e
217 0x00000000 0x00000003
218 0x0000f2f3 0x800001c5
219 0x0000000a
220 >;
221 };
222
223 timing-20400000 {
224 clock-frequency = <20400000>;
225
226 nvidia,emc-auto-cal-config = <0xa1430000>;
227 nvidia,emc-auto-cal-config2 = <0x00000000>;
228 nvidia,emc-auto-cal-config3 = <0x00000000>;
229 nvidia,emc-auto-cal-interval = <0x001fffff>;
230 nvidia,emc-bgbias-ctl0 = <0x00000008>;
231 nvidia,emc-cfg = <0x73240000>;
232 nvidia,emc-cfg-2 = <0x000008c5>;
233 nvidia,emc-ctt-term-ctrl = <0x00000802>;
234 nvidia,emc-mode-1 = <0x80100003>;
235 nvidia,emc-mode-2 = <0x80200008>;
236 nvidia,emc-mode-4 = <0x00000000>;
237 nvidia,emc-mode-reset = <0x80001221>;
238 nvidia,emc-mrs-wait-cnt = <0x000e000e>;
239 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
240 nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
241 nvidia,emc-zcal-cnt-long = <0x00000042>;
242 nvidia,emc-zcal-interval = <0x00000000>;
243
244 nvidia,emc-configuration = <
245 0x00000000 0x00000005
246 0x00000000 0x00000000
247 0x00000000 0x00000004
248 0x0000000a 0x00000005
249 0x0000000b 0x00000000
250 0x00000000 0x00000003
251 0x00000003 0x00000000
252 0x00000006 0x00000006
253 0x00000006 0x00000002
254 0x00000000 0x00000005
255 0x00000005 0x00010000
256 0x00000003 0x00000000
257 0x00000000 0x00000000
258 0x00000000 0x00000004
259 0x0000000c 0x0000000d
260 0x0000000f 0x0000009a
261 0x00000000 0x00000026
262 0x00000002 0x00000002
263 0x00000001 0x00000000
264 0x00000007 0x0000000f
265 0x00000006 0x00000006
266 0x00000004 0x00000005
267 0x00000004 0x00000000
268 0x00000000 0x00000005
269 0x00000005 0x000000a0
270 0x00000000 0x00000000
271 0x00000000 0x106aa298
272 0x002c00a0 0x00008000
273 0x00080000 0x00080000
274 0x00080000 0x00080000
275 0x00080000 0x00080000
276 0x00080000 0x00080000
277 0x00080000 0x00080000
278 0x00080000 0x00080000
279 0x00080000 0x00080000
280 0x00080000 0x00080000
281 0x00000000 0x00000000
282 0x00000000 0x00000000
283 0x00000000 0x00000000
284 0x00000000 0x00000000
285 0x00000000 0x00000000
286 0x00000000 0x00000000
287 0x00000000 0x00000000
288 0x00000000 0x00000000
289 0x00000000 0x00000000
290 0x00000000 0x00000000
291 0x00000000 0x00000000
292 0x00000000 0x00000000
293 0x00000000 0x00000000
294 0x00000000 0x00000000
295 0x00000000 0x00000000
296 0x00000000 0x00000000
297 0x00000000 0x00000000
298 0x00000000 0x00000000
299 0x00000000 0x00000000
300 0x000fc000 0x000fc000
301 0x000fc000 0x000fc000
302 0x0000fc00 0x0000fc00
303 0x0000fc00 0x0000fc00
304 0x10000280 0x00000000
305 0x00111111 0x00000000
306 0x00000000 0x77ffc081
307 0x00000e0e 0x81f1f108
308 0x07070004 0x0000003f
309 0x016eeeee 0x51451400
310 0x00514514 0x00514514
311 0x51451400 0x0000003f
312 0x0000000b 0x00000000
313 0x00000042 0x000e000e
314 0x00000000 0x00000003
315 0x0000f2f3 0x8000023a
316 0x0000000a
317 >;
318 };
319
320 timing-40800000 {
321 clock-frequency = <40800000>;
322
323 nvidia,emc-auto-cal-config = <0xa1430000>;
324 nvidia,emc-auto-cal-config2 = <0x00000000>;
325 nvidia,emc-auto-cal-config3 = <0x00000000>;
326 nvidia,emc-auto-cal-interval = <0x001fffff>;
327 nvidia,emc-bgbias-ctl0 = <0x00000008>;
328 nvidia,emc-cfg = <0x73240000>;
329 nvidia,emc-cfg-2 = <0x000008c5>;
330 nvidia,emc-ctt-term-ctrl = <0x00000802>;
331 nvidia,emc-mode-1 = <0x80100003>;
332 nvidia,emc-mode-2 = <0x80200008>;
333 nvidia,emc-mode-4 = <0x00000000>;
334 nvidia,emc-mode-reset = <0x80001221>;
335 nvidia,emc-mrs-wait-cnt = <0x000e000e>;
336 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
337 nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
338 nvidia,emc-zcal-cnt-long = <0x00000042>;
339 nvidia,emc-zcal-interval = <0x00000000>;
340
341 nvidia,emc-configuration = <
342 0x00000001 0x0000000a
343 0x00000000 0x00000001
344 0x00000000 0x00000004
345 0x0000000a 0x00000005
346 0x0000000b 0x00000000
347 0x00000000 0x00000003
348 0x00000003 0x00000000
349 0x00000006 0x00000006
350 0x00000006 0x00000002
351 0x00000000 0x00000005
352 0x00000005 0x00010000
353 0x00000003 0x00000000
354 0x00000000 0x00000000
355 0x00000000 0x00000004
356 0x0000000c 0x0000000d
357 0x0000000f 0x00000134
358 0x00000000 0x0000004d
359 0x00000002 0x00000002
360 0x00000001 0x00000000
361 0x00000008 0x0000000f
362 0x0000000c 0x0000000c
363 0x00000004 0x00000005
364 0x00000004 0x00000000
365 0x00000000 0x00000005
366 0x00000005 0x0000013f
367 0x00000000 0x00000000
368 0x00000000 0x106aa298
369 0x002c00a0 0x00008000
370 0x00080000 0x00080000
371 0x00080000 0x00080000
372 0x00080000 0x00080000
373 0x00080000 0x00080000
374 0x00080000 0x00080000
375 0x00080000 0x00080000
376 0x00080000 0x00080000
377 0x00080000 0x00080000
378 0x00000000 0x00000000
379 0x00000000 0x00000000
380 0x00000000 0x00000000
381 0x00000000 0x00000000
382 0x00000000 0x00000000
383 0x00000000 0x00000000
384 0x00000000 0x00000000
385 0x00000000 0x00000000
386 0x00000000 0x00000000
387 0x00000000 0x00000000
388 0x00000000 0x00000000
389 0x00000000 0x00000000
390 0x00000000 0x00000000
391 0x00000000 0x00000000
392 0x00000000 0x00000000
393 0x00000000 0x00000000
394 0x00000000 0x00000000
395 0x00000000 0x00000000
396 0x00000000 0x00000000
397 0x000fc000 0x000fc000
398 0x000fc000 0x000fc000
399 0x0000fc00 0x0000fc00
400 0x0000fc00 0x0000fc00
401 0x10000280 0x00000000
402 0x00111111 0x00000000
403 0x00000000 0x77ffc081
404 0x00000e0e 0x81f1f108
405 0x07070004 0x0000003f
406 0x016eeeee 0x51451400
407 0x00514514 0x00514514
408 0x51451400 0x0000003f
409 0x00000015 0x00000000
410 0x00000042 0x000e000e
411 0x00000000 0x00000003
412 0x0000f2f3 0x80000370
413 0x0000000a
414 >;
415 };
416
417 timing-68000000 {
418 clock-frequency = <68000000>;
419
420 nvidia,emc-auto-cal-config = <0xa1430000>;
421 nvidia,emc-auto-cal-config2 = <0x00000000>;
422 nvidia,emc-auto-cal-config3 = <0x00000000>;
423 nvidia,emc-auto-cal-interval = <0x001fffff>;
424 nvidia,emc-bgbias-ctl0 = <0x00000008>;
425 nvidia,emc-cfg = <0x73240000>;
426 nvidia,emc-cfg-2 = <0x000008c5>;
427 nvidia,emc-ctt-term-ctrl = <0x00000802>;
428 nvidia,emc-mode-1 = <0x80100003>;
429 nvidia,emc-mode-2 = <0x80200008>;
430 nvidia,emc-mode-4 = <0x00000000>;
431 nvidia,emc-mode-reset = <0x80001221>;
432 nvidia,emc-mrs-wait-cnt = <0x000e000e>;
433 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
434 nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
435 nvidia,emc-zcal-cnt-long = <0x00000042>;
436 nvidia,emc-zcal-interval = <0x00000000>;
437
438 nvidia,emc-configuration = <
439 0x00000003 0x00000011
440 0x00000000 0x00000002
441 0x00000000 0x00000004
442 0x0000000a 0x00000005
443 0x0000000b 0x00000000
444 0x00000000 0x00000003
445 0x00000003 0x00000000
446 0x00000006 0x00000006
447 0x00000006 0x00000002
448 0x00000000 0x00000005
449 0x00000005 0x00010000
450 0x00000003 0x00000000
451 0x00000000 0x00000000
452 0x00000000 0x00000004
453 0x0000000c 0x0000000d
454 0x0000000f 0x00000202
455 0x00000000 0x00000080
456 0x00000002 0x00000002
457 0x00000001 0x00000000
458 0x0000000f 0x0000000f
459 0x00000013 0x00000013
460 0x00000004 0x00000005
461 0x00000004 0x00000001
462 0x00000000 0x00000005
463 0x00000005 0x00000213
464 0x00000000 0x00000000
465 0x00000000 0x106aa298
466 0x002c00a0 0x00008000
467 0x00080000 0x00080000
468 0x00080000 0x00080000
469 0x00080000 0x00080000
470 0x00080000 0x00080000
471 0x00080000 0x00080000
472 0x00080000 0x00080000
473 0x00080000 0x00080000
474 0x00080000 0x00080000
475 0x00000000 0x00000000
476 0x00000000 0x00000000
477 0x00000000 0x00000000
478 0x00000000 0x00000000
479 0x00000000 0x00000000
480 0x00000000 0x00000000
481 0x00000000 0x00000000
482 0x00000000 0x00000000
483 0x00000000 0x00000000
484 0x00000000 0x00000000
485 0x00000000 0x00000000
486 0x00000000 0x00000000
487 0x00000000 0x00000000
488 0x00000000 0x00000000
489 0x00000000 0x00000000
490 0x00000000 0x00000000
491 0x00000000 0x00000000
492 0x00000000 0x00000000
493 0x00000000 0x00000000
494 0x000fc000 0x000fc000
495 0x000fc000 0x000fc000
496 0x0000fc00 0x0000fc00
497 0x0000fc00 0x0000fc00
498 0x10000280 0x00000000
499 0x00111111 0x00000000
500 0x00000000 0x77ffc081
501 0x00000e0e 0x81f1f108
502 0x07070004 0x0000003f
503 0x016eeeee 0x51451400
504 0x00514514 0x00514514
505 0x51451400 0x0000003f
506 0x00000022 0x00000000
507 0x00000042 0x000e000e
508 0x00000000 0x00000003
509 0x0000f2f3 0x8000050e
510 0x0000000a
511 >;
512 };
513
514 timing-102000000 {
515 clock-frequency = <102000000>;
516
517 nvidia,emc-auto-cal-config = <0xa1430000>;
518 nvidia,emc-auto-cal-config2 = <0x00000000>;
519 nvidia,emc-auto-cal-config3 = <0x00000000>;
520 nvidia,emc-auto-cal-interval = <0x001fffff>;
521 nvidia,emc-bgbias-ctl0 = <0x00000008>;
522 nvidia,emc-cfg = <0x73240000>;
523 nvidia,emc-cfg-2 = <0x000008c5>;
524 nvidia,emc-ctt-term-ctrl = <0x00000802>;
525 nvidia,emc-mode-1 = <0x80100003>;
526 nvidia,emc-mode-2 = <0x80200008>;
527 nvidia,emc-mode-4 = <0x00000000>;
528 nvidia,emc-mode-reset = <0x80001221>;
529 nvidia,emc-mrs-wait-cnt = <0x000e000e>;
530 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
531 nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
532 nvidia,emc-zcal-cnt-long = <0x00000042>;
533 nvidia,emc-zcal-interval = <0x00000000>;
534
535 nvidia,emc-configuration = <
536 0x00000004 0x0000001a
537 0x00000000 0x00000003
538 0x00000001 0x00000004
539 0x0000000a 0x00000005
540 0x0000000b 0x00000001
541 0x00000001 0x00000003
542 0x00000003 0x00000000
543 0x00000006 0x00000006
544 0x00000006 0x00000002
545 0x00000000 0x00000005
546 0x00000005 0x00010000
547 0x00000003 0x00000000
548 0x00000000 0x00000000
549 0x00000000 0x00000004
550 0x0000000c 0x0000000d
551 0x0000000f 0x00000304
552 0x00000000 0x000000c1
553 0x00000002 0x00000002
554 0x00000001 0x00000000
555 0x00000018 0x0000000f
556 0x0000001c 0x0000001c
557 0x00000004 0x00000005
558 0x00000004 0x00000002
559 0x00000000 0x00000005
560 0x00000005 0x0000031c
561 0x00000000 0x00000000
562 0x00000000 0x106aa298
563 0x002c00a0 0x00008000
564 0x00080000 0x00080000
565 0x00080000 0x00080000
566 0x00080000 0x00080000
567 0x00080000 0x00080000
568 0x00080000 0x00080000
569 0x00080000 0x00080000
570 0x00080000 0x00080000
571 0x00080000 0x00080000
572 0x00000000 0x00000000
573 0x00000000 0x00000000
574 0x00000000 0x00000000
575 0x00000000 0x00000000
576 0x00000000 0x00000000
577 0x00000000 0x00000000
578 0x00000000 0x00000000
579 0x00000000 0x00000000
580 0x00000000 0x00000000
581 0x00000000 0x00000000
582 0x00000000 0x00000000
583 0x00000000 0x00000000
584 0x00000000 0x00000000
585 0x00000000 0x00000000
586 0x00000000 0x00000000
587 0x00000000 0x00000000
588 0x00000000 0x00000000
589 0x00000000 0x00000000
590 0x00000000 0x00000000
591 0x000fc000 0x000fc000
592 0x000fc000 0x000fc000
593 0x0000fc00 0x0000fc00
594 0x0000fc00 0x0000fc00
595 0x10000280 0x00000000
596 0x00111111 0x00000000
597 0x00000000 0x77ffc081
598 0x00000e0e 0x81f1f108
599 0x07070004 0x0000003f
600 0x016eeeee 0x51451400
601 0x00514514 0x00514514
602 0x51451400 0x0000003f
603 0x00000033 0x00000000
604 0x00000042 0x000e000e
605 0x00000000 0x00000003
606 0x0000f2f3 0x80000713
607 0x0000000a
608 >;
609 };
610
611 timing-204000000 {
612 clock-frequency = <204000000>;
613
614 nvidia,emc-auto-cal-config = <0xa1430000>;
615 nvidia,emc-auto-cal-config2 = <0x00000000>;
616 nvidia,emc-auto-cal-config3 = <0x00000000>;
617 nvidia,emc-auto-cal-interval = <0x001fffff>;
618 nvidia,emc-bgbias-ctl0 = <0x00000008>;
619 nvidia,emc-cfg = <0x73240000>;
620 nvidia,emc-cfg-2 = <0x000008cd>;
621 nvidia,emc-ctt-term-ctrl = <0x00000802>;
622 nvidia,emc-mode-1 = <0x80100003>;
623 nvidia,emc-mode-2 = <0x80200008>;
624 nvidia,emc-mode-4 = <0x00000000>;
625 nvidia,emc-mode-reset = <0x80001221>;
626 nvidia,emc-mrs-wait-cnt = <0x000e000e>;
627 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
628 nvidia,emc-xm2dqspadctrl2 = <0x0130b118>;
629 nvidia,emc-zcal-cnt-long = <0x00000042>;
630 nvidia,emc-zcal-interval = <0x00020000>;
631
632 nvidia,emc-configuration = <
633 0x00000009 0x00000035
634 0x00000000 0x00000006
635 0x00000002 0x00000005
636 0x0000000a 0x00000005
637 0x0000000b 0x00000002
638 0x00000002 0x00000003
639 0x00000003 0x00000000
640 0x00000005 0x00000005
641 0x00000006 0x00000002
642 0x00000000 0x00000004
643 0x00000006 0x00010000
644 0x00000003 0x00000000
645 0x00000000 0x00000000
646 0x00000000 0x00000003
647 0x0000000d 0x0000000f
648 0x00000011 0x00000607
649 0x00000000 0x00000181
650 0x00000002 0x00000002
651 0x00000001 0x00000000
652 0x00000032 0x0000000f
653 0x00000038 0x00000038
654 0x00000004 0x00000005
655 0x00000004 0x00000006
656 0x00000000 0x00000005
657 0x00000005 0x00000638
658 0x00000000 0x00000000
659 0x00000000 0x106aa298
660 0x002c00a0 0x00008000
661 0x00080000 0x00080000
662 0x00080000 0x00080000
663 0x00080000 0x00080000
664 0x00080000 0x00080000
665 0x00080000 0x00080000
666 0x00080000 0x00080000
667 0x00080000 0x00080000
668 0x00080000 0x00080000
669 0x00000000 0x00000000
670 0x00000000 0x00000000
671 0x00000000 0x00000000
672 0x00000000 0x00000000
673 0x00000000 0x00000000
674 0x00008000 0x00000000
675 0x00000000 0x00008000
676 0x00000000 0x00000000
677 0x00000000 0x00000000
678 0x00000000 0x00000000
679 0x00000000 0x00000000
680 0x00000000 0x00000000
681 0x00000000 0x00000000
682 0x00000000 0x00000000
683 0x00000000 0x00000000
684 0x00000000 0x00000000
685 0x00000000 0x00000000
686 0x00000000 0x00000000
687 0x00000000 0x00000000
688 0x00090000 0x00090000
689 0x00090000 0x00090000
690 0x00009000 0x00009000
691 0x00009000 0x00009000
692 0x10000280 0x00000000
693 0x00111111 0x00000000
694 0x00000000 0x77ffc081
695 0x00000707 0x81f1f108
696 0x07070004 0x0000003f
697 0x016eeeee 0x51451400
698 0x00514514 0x00514514
699 0x51451400 0x0000003f
700 0x00000066 0x00000000
701 0x00000100 0x000e000e
702 0x00000000 0x00000003
703 0x0000d2b3 0x80000d22
704 0x0000000a
705 >;
706 };
707
708 timing-300000000 {
709 clock-frequency = <300000000>;
710
711 nvidia,emc-auto-cal-config = <0xa1430000>;
712 nvidia,emc-auto-cal-config2 = <0x00000000>;
713 nvidia,emc-auto-cal-config3 = <0x00000000>;
714 nvidia,emc-auto-cal-interval = <0x001fffff>;
715 nvidia,emc-bgbias-ctl0 = <0x00000000>;
716 nvidia,emc-cfg = <0x73340000>;
717 nvidia,emc-cfg-2 = <0x000008d5>;
718 nvidia,emc-ctt-term-ctrl = <0x00000802>;
719 nvidia,emc-mode-1 = <0x80100002>;
720 nvidia,emc-mode-2 = <0x80200000>;
721 nvidia,emc-mode-4 = <0x00000000>;
722 nvidia,emc-mode-reset = <0x80000321>;
723 nvidia,emc-mrs-wait-cnt = <0x0173000e>;
724 nvidia,emc-sel-dpd-ctrl = <0x00040128>;
725 nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
726 nvidia,emc-zcal-cnt-long = <0x00000042>;
727 nvidia,emc-zcal-interval = <0x00020000>;
728
729 nvidia,emc-configuration = <
730 0x0000000d 0x0000004d
731 0x00000000 0x00000009
732 0x00000003 0x00000004
733 0x00000008 0x00000002
734 0x00000009 0x00000003
735 0x00000003 0x00000002
736 0x00000002 0x00000000
737 0x00000003 0x00000003
738 0x00000005 0x00000002
739 0x00000000 0x00000002
740 0x00000007 0x00020000
741 0x00000003 0x00000000
742 0x00000000 0x00000000
743 0x00000000 0x00000001
744 0x0000000e 0x00000010
745 0x00000012 0x000008e4
746 0x00000000 0x00000239
747 0x00000001 0x00000008
748 0x00000001 0x00000000
749 0x0000004b 0x0000000e
750 0x00000052 0x00000200
751 0x00000004 0x00000005
752 0x00000004 0x00000008
753 0x00000000 0x00000005
754 0x00000005 0x00000924
755 0x00000000 0x00000000
756 0x00000000 0x104ab098
757 0x002c00a0 0x00008000
758 0x00030000 0x00030000
759 0x00030000 0x00030000
760 0x00030000 0x00030000
761 0x00030000 0x00030000
762 0x00030000 0x00030000
763 0x00030000 0x00030000
764 0x00030000 0x00030000
765 0x00030000 0x00030000
766 0x00000000 0x00000000
767 0x00000000 0x00000000
768 0x00000000 0x00000000
769 0x00000000 0x00000000
770 0x00098000 0x00098000
771 0x00000000 0x00098000
772 0x00098000 0x00000000
773 0x00000000 0x00000000
774 0x00000000 0x00000000
775 0x00000000 0x00000000
776 0x00000000 0x00000000
777 0x00000000 0x00000000
778 0x00000000 0x00000000
779 0x00000000 0x00000000
780 0x00000000 0x00000000
781 0x00000000 0x00000000
782 0x00000000 0x00000000
783 0x00000000 0x00000000
784 0x00000000 0x00000000
785 0x00050000 0x00050000
786 0x00050000 0x00050000
787 0x00005000 0x00005000
788 0x00005000 0x00005000
789 0x10000280 0x00000000
790 0x00111111 0x00000000
791 0x00000000 0x77ffc081
792 0x00000505 0x81f1f108
793 0x07070004 0x00000000
794 0x016eeeee 0x51451420
795 0x00514514 0x00514514
796 0x51451400 0x0000003f
797 0x00000096 0x00000000
798 0x00000100 0x0173000e
799 0x00000000 0x00000003
800 0x000052a3 0x800012d7
801 0x00000009
802 >;
803 };
804
805 timing-396000000 {
806 clock-frequency = <396000000>;
807
808 nvidia,emc-auto-cal-config = <0xa1430000>;
809 nvidia,emc-auto-cal-config2 = <0x00000000>;
810 nvidia,emc-auto-cal-config3 = <0x00000000>;
811 nvidia,emc-auto-cal-interval = <0x001fffff>;
812 nvidia,emc-bgbias-ctl0 = <0x00000000>;
813 nvidia,emc-cfg = <0x73340000>;
814 nvidia,emc-cfg-2 = <0x00000895>;
815 nvidia,emc-ctt-term-ctrl = <0x00000802>;
816 nvidia,emc-mode-1 = <0x80100002>;
817 nvidia,emc-mode-2 = <0x80200000>;
818 nvidia,emc-mode-4 = <0x00000000>;
819 nvidia,emc-mode-reset = <0x80000521>;
820 nvidia,emc-mrs-wait-cnt = <0x015b000e>;
821 nvidia,emc-sel-dpd-ctrl = <0x00040008>;
822 nvidia,emc-xm2dqspadctrl2 = <0x01231339>;
823 nvidia,emc-zcal-cnt-long = <0x00000042>;
824 nvidia,emc-zcal-interval = <0x00020000>;
825
826 nvidia,emc-configuration = <
827 0x00000011 0x00000066
828 0x00000000 0x0000000c
829 0x00000004 0x00000004
830 0x00000008 0x00000002
831 0x0000000a 0x00000004
832 0x00000004 0x00000002
833 0x00000002 0x00000000
834 0x00000003 0x00000003
835 0x00000005 0x00000002
836 0x00000000 0x00000001
837 0x00000008 0x00020000
838 0x00000003 0x00000000
839 0x00000000 0x00000000
840 0x00000000 0x00000000
841 0x0000000f 0x00000010
842 0x00000012 0x00000bd1
843 0x00000000 0x000002f4
844 0x00000001 0x00000008
845 0x00000001 0x00000000
846 0x00000063 0x0000000f
847 0x0000006c 0x00000200
848 0x00000004 0x00000005
849 0x00000004 0x0000000b
850 0x00000000 0x00000005
851 0x00000005 0x00000c11
852 0x00000000 0x00000000
853 0x00000000 0x104ab098
854 0x002c00a0 0x00008000
855 0x00030000 0x00030000
856 0x00030000 0x00030000
857 0x00030000 0x00030000
858 0x00030000 0x00030000
859 0x00030000 0x00030000
860 0x00030000 0x00030000
861 0x00030000 0x00030000
862 0x00030000 0x00030000
863 0x00000000 0x00000000
864 0x00000000 0x00000000
865 0x00000000 0x00000000
866 0x00000000 0x00000000
867 0x00070000 0x00070000
868 0x00000000 0x00070000
869 0x00070000 0x00000000
870 0x00000000 0x00000000
871 0x00000000 0x00000000
872 0x00000000 0x00000000
873 0x00000000 0x00000000
874 0x00000000 0x00000000
875 0x00000000 0x00000000
876 0x00000000 0x00000000
877 0x00000000 0x00000000
878 0x00000000 0x00000000
879 0x00000000 0x00000000
880 0x00000000 0x00000000
881 0x00000000 0x00000000
882 0x00038000 0x00038000
883 0x00038000 0x00038000
884 0x00003800 0x00003800
885 0x00003800 0x00003800
886 0x10000280 0x00000000
887 0x00111111 0x00000000
888 0x00000000 0x77ffc081
889 0x00000505 0x81f1f108
890 0x07070004 0x00000000
891 0x016eeeee 0x51451420
892 0x00514514 0x00514514
893 0x51451400 0x0000003f
894 0x000000c6 0x00000000
895 0x00000100 0x015b000e
896 0x00000000 0x00000003
897 0x000052a3 0x8000188b
898 0x00000009
899 >;
900 };
901
902 timing-528000000 {
903 clock-frequency = <528000000>;
904
905 nvidia,emc-auto-cal-config = <0xa1430000>;
906 nvidia,emc-auto-cal-config2 = <0x00000000>;
907 nvidia,emc-auto-cal-config3 = <0x00000000>;
908 nvidia,emc-auto-cal-interval = <0x001fffff>;
909 nvidia,emc-bgbias-ctl0 = <0x00000000>;
910 nvidia,emc-cfg = <0x73300000>;
911 nvidia,emc-cfg-2 = <0x0000089d>;
912 nvidia,emc-ctt-term-ctrl = <0x00000802>;
913 nvidia,emc-mode-1 = <0x80100002>;
914 nvidia,emc-mode-2 = <0x80200008>;
915 nvidia,emc-mode-4 = <0x00000000>;
916 nvidia,emc-mode-reset = <0x80000941>;
917 nvidia,emc-mrs-wait-cnt = <0x0139000e>;
918 nvidia,emc-sel-dpd-ctrl = <0x00040008>;
919 nvidia,emc-xm2dqspadctrl2 = <0x0123133d>;
920 nvidia,emc-zcal-cnt-long = <0x00000042>;
921 nvidia,emc-zcal-interval = <0x00020000>;
922
923 nvidia,emc-configuration = <
924 0x00000018 0x00000088
925 0x00000000 0x00000010
926 0x00000006 0x00000006
927 0x00000009 0x00000002
928 0x0000000d 0x00000006
929 0x00000006 0x00000002
930 0x00000002 0x00000000
931 0x00000003 0x00000003
932 0x00000006 0x00000002
933 0x00000000 0x00000001
934 0x00000009 0x00030000
935 0x00000003 0x00000000
936 0x00000000 0x00000000
937 0x00000000 0x00000000
938 0x00000010 0x00000012
939 0x00000014 0x00000fd6
940 0x00000000 0x000003f5
941 0x00000002 0x0000000b
942 0x00000001 0x00000000
943 0x00000085 0x00000012
944 0x00000090 0x00000200
945 0x00000004 0x00000005
946 0x00000004 0x00000010
947 0x00000000 0x00000006
948 0x00000006 0x00001017
949 0x00000000 0x00000000
950 0x00000000 0x104ab098
951 0xe01200b1 0x00008000
952 0x0000000a 0x0000000a
953 0x0000000a 0x0000000a
954 0x0000000a 0x0000000a
955 0x0000000a 0x0000000a
956 0x0000000a 0x0000000a
957 0x0000000a 0x0000000a
958 0x0000000a 0x0000000a
959 0x0000000a 0x0000000a
960 0x00000000 0x00000000
961 0x00000000 0x00000000
962 0x00000000 0x00000000
963 0x00000000 0x00000000
964 0x00054000 0x00054000
965 0x00000000 0x00054000
966 0x00054000 0x00000000
967 0x00000000 0x00000000
968 0x00000000 0x00000000
969 0x00000000 0x00000000
970 0x00000000 0x00000000
971 0x00000000 0x00000000
972 0x00000000 0x00000000
973 0x00000000 0x00000000
974 0x00000000 0x00000000
975 0x00000000 0x00000000
976 0x00000000 0x00000000
977 0x00000000 0x00000000
978 0x00000000 0x00000000
979 0x0000000c 0x0000000c
980 0x0000000c 0x0000000c
981 0x0000000c 0x0000000c
982 0x0000000c 0x0000000c
983 0x100002a0 0x00000000
984 0x00111111 0x00000000
985 0x00000000 0x77ffc085
986 0x00000505 0x81f1f108
987 0x07070004 0x00000000
988 0x016eeeee 0x51451420
989 0x00514514 0x00514514
990 0x51451400 0x0606003f
991 0x00000000 0x00000000
992 0x00000100 0x0139000e
993 0x00000000 0x00000003
994 0x000042a0 0x80002062
995 0x0000000a
996 >;
997 };
998
999 timing-600000000 {
1000 clock-frequency = <600000000>;
1001
1002 nvidia,emc-auto-cal-config = <0xa1430000>;
1003 nvidia,emc-auto-cal-config2 = <0x00000000>;
1004 nvidia,emc-auto-cal-config3 = <0x00000000>;
1005 nvidia,emc-auto-cal-interval = <0x001fffff>;
1006 nvidia,emc-bgbias-ctl0 = <0x00000000>;
1007 nvidia,emc-cfg = <0x73300000>;
1008 nvidia,emc-cfg-2 = <0x0000089d>;
1009 nvidia,emc-ctt-term-ctrl = <0x00000802>;
1010 nvidia,emc-mode-1 = <0x80100002>;
1011 nvidia,emc-mode-2 = <0x80200010>;
1012 nvidia,emc-mode-4 = <0x00000000>;
1013 nvidia,emc-mode-reset = <0x80000b61>;
1014 nvidia,emc-mrs-wait-cnt = <0x0127000e>;
1015 nvidia,emc-sel-dpd-ctrl = <0x00040008>;
1016 nvidia,emc-xm2dqspadctrl2 = <0x0121113d>;
1017 nvidia,emc-zcal-cnt-long = <0x00000042>;
1018 nvidia,emc-zcal-interval = <0x00020000>;
1019
1020 nvidia,emc-configuration = <
1021 0x0000001b 0x0000009b
1022 0x00000000 0x00000013
1023 0x00000007 0x00000007
1024 0x0000000b 0x00000003
1025 0x00000010 0x00000007
1026 0x00000007 0x00000002
1027 0x00000002 0x00000000
1028 0x00000005 0x00000005
1029 0x0000000a 0x00000002
1030 0x00000000 0x00000003
1031 0x0000000b 0x00070000
1032 0x00000003 0x00000000
1033 0x00000000 0x00000000
1034 0x00000000 0x00000002
1035 0x00000012 0x00000016
1036 0x00000018 0x00001208
1037 0x00000000 0x00000482
1038 0x00000002 0x0000000d
1039 0x00000001 0x00000000
1040 0x00000097 0x00000015
1041 0x000000a3 0x00000200
1042 0x00000004 0x00000005
1043 0x00000004 0x00000013
1044 0x00000000 0x00000006
1045 0x00000006 0x00001248
1046 0x00000000 0x00000000
1047 0x00000000 0x104ab098
1048 0xe00e00b1 0x00008000
1049 0x0000000a 0x0000000a
1050 0x0000000a 0x0000000a
1051 0x0000000a 0x0000000a
1052 0x0000000a 0x0000000a
1053 0x0000000a 0x0000000a
1054 0x0000000a 0x0000000a
1055 0x0000000a 0x0000000a
1056 0x0000000a 0x0000000a
1057 0x00000000 0x00000000
1058 0x00000000 0x00000000
1059 0x00000000 0x00000000
1060 0x00000000 0x00000000
1061 0x00048000 0x00048000
1062 0x00000000 0x00048000
1063 0x00048000 0x00000000
1064 0x00000000 0x00000000
1065 0x00000000 0x00000000
1066 0x00000000 0x00000000
1067 0x00000000 0x00000000
1068 0x00000000 0x00000000
1069 0x00000000 0x00000000
1070 0x00000000 0x00000000
1071 0x00000000 0x00000000
1072 0x00000000 0x00000000
1073 0x00000000 0x00000000
1074 0x00000000 0x00000000
1075 0x00000000 0x00000000
1076 0x0000000d 0x0000000d
1077 0x0000000d 0x0000000d
1078 0x0000000d 0x0000000d
1079 0x0000000d 0x0000000d
1080 0x100002a0 0x00000000
1081 0x00111111 0x00000000
1082 0x00000000 0x77ffc085
1083 0x00000505 0x81f1f108
1084 0x07070004 0x00000000
1085 0x016eeeee 0x51451420
1086 0x00514514 0x00514514
1087 0x51451400 0x0606003f
1088 0x00000000 0x00000000
1089 0x00000100 0x0127000e
1090 0x00000000 0x00000003
1091 0x000040a0 0x800024aa
1092 0x0000000e
1093 >;
1094 };
1095
1096 timing-792000000 {
1097 clock-frequency = <792000000>;
1098
1099 nvidia,emc-auto-cal-config = <0xa1430000>;
1100 nvidia,emc-auto-cal-config2 = <0x00000000>;
1101 nvidia,emc-auto-cal-config3 = <0x00000000>;
1102 nvidia,emc-auto-cal-interval = <0x001fffff>;
1103 nvidia,emc-bgbias-ctl0 = <0x00000000>;
1104 nvidia,emc-cfg = <0x73300000>;
1105 nvidia,emc-cfg-2 = <0x0000089d>;
1106 nvidia,emc-ctt-term-ctrl = <0x00000802>;
1107 nvidia,emc-mode-1 = <0x80100002>;
1108 nvidia,emc-mode-2 = <0x80200018>;
1109 nvidia,emc-mode-4 = <0x00000000>;
1110 nvidia,emc-mode-reset = <0x80000d71>;
1111 nvidia,emc-mrs-wait-cnt = <0x00f7000e>;
1112 nvidia,emc-sel-dpd-ctrl = <0x00040000>;
1113 nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
1114 nvidia,emc-zcal-cnt-long = <0x00000042>;
1115 nvidia,emc-zcal-interval = <0x00020000>;
1116
1117 nvidia,emc-configuration = <
1118 0x00000024 0x000000cd
1119 0x00000000 0x00000019
1120 0x0000000a 0x00000008
1121 0x0000000d 0x00000004
1122 0x00000013 0x0000000a
1123 0x0000000a 0x00000004
1124 0x00000002 0x00000000
1125 0x00000006 0x00000006
1126 0x0000000b 0x00000002
1127 0x00000000 0x00000002
1128 0x0000000d 0x00080000
1129 0x00000004 0x00000000
1130 0x00000000 0x00000000
1131 0x00000000 0x00000001
1132 0x00000014 0x00000018
1133 0x0000001a 0x000017e2
1134 0x00000000 0x000005f8
1135 0x00000003 0x00000011
1136 0x00000001 0x00000000
1137 0x000000c7 0x00000018
1138 0x000000d7 0x00000200
1139 0x00000005 0x00000006
1140 0x00000005 0x00000019
1141 0x00000000 0x00000008
1142 0x00000008 0x00001822
1143 0x00000000 0x00000000
1144 0x00000000 0x104ab098
1145 0xe00700b1 0x00008000
1146 0x007fc008 0x007fc008
1147 0x007fc008 0x007fc008
1148 0x007fc008 0x007fc008
1149 0x007fc008 0x007fc008
1150 0x007fc008 0x007fc008
1151 0x007fc008 0x007fc008
1152 0x007fc008 0x007fc008
1153 0x007fc008 0x007fc008
1154 0x00000000 0x00000000
1155 0x00000000 0x00000000
1156 0x00000000 0x00000000
1157 0x00000000 0x00000000
1158 0x00034000 0x00034000
1159 0x00000000 0x00034000
1160 0x00034000 0x00000000
1161 0x00000000 0x00000000
1162 0x00000000 0x00000000
1163 0x00000000 0x00000000
1164 0x00000000 0x00000000
1165 0x00000005 0x00000005
1166 0x00000005 0x00000005
1167 0x00000005 0x00000005
1168 0x00000005 0x00000005
1169 0x00000005 0x00000005
1170 0x00000005 0x00000005
1171 0x00000005 0x00000005
1172 0x00000005 0x00000005
1173 0x0000000a 0x0000000a
1174 0x0000000a 0x0000000a
1175 0x0000000a 0x0000000a
1176 0x0000000a 0x0000000a
1177 0x100002a0 0x00000000
1178 0x00111111 0x00000000
1179 0x00000000 0x77ffc085
1180 0x00000000 0x81f1f108
1181 0x07070004 0x00000000
1182 0x016eeeee 0x61861820
1183 0x00514514 0x00514514
1184 0x61861800 0x0606003f
1185 0x00000000 0x00000000
1186 0x00000100 0x00f7000e
1187 0x00000000 0x00000004
1188 0x00004080 0x80003012
1189 0x0000000f
1190 >;
1191 };
1192
1193 timing-924000000 {
1194 clock-frequency = <924000000>;
1195
1196 nvidia,emc-auto-cal-config = <0xa1430303>;
1197 nvidia,emc-auto-cal-config2 = <0x00000000>;
1198 nvidia,emc-auto-cal-config3 = <0x00000000>;
1199 nvidia,emc-auto-cal-interval = <0x001fffff>;
1200 nvidia,emc-bgbias-ctl0 = <0x00000000>;
1201 nvidia,emc-cfg = <0x73300000>;
1202 nvidia,emc-cfg-2 = <0x0000089d>;
1203 nvidia,emc-ctt-term-ctrl = <0x00000802>;
1204 nvidia,emc-mode-1 = <0x80100002>;
1205 nvidia,emc-mode-2 = <0x80200020>;
1206 nvidia,emc-mode-4 = <0x00000000>;
1207 nvidia,emc-mode-reset = <0x80000f15>;
1208 nvidia,emc-mrs-wait-cnt = <0x00cd000e>;
1209 nvidia,emc-sel-dpd-ctrl = <0x00040000>;
1210 nvidia,emc-xm2dqspadctrl2 = <0x0120113d>;
1211 nvidia,emc-zcal-cnt-long = <0x0000004c>;
1212 nvidia,emc-zcal-interval = <0x00020000>;
1213
1214 nvidia,emc-configuration = <
1215 0x0000002b 0x000000f0
1216 0x00000000 0x0000001e
1217 0x0000000b 0x00000009
1218 0x0000000f 0x00000005
1219 0x00000016 0x0000000b
1220 0x0000000b 0x00000004
1221 0x00000002 0x00000000
1222 0x00000007 0x00000007
1223 0x0000000d 0x00000002
1224 0x00000000 0x00000002
1225 0x0000000f 0x000a0000
1226 0x00000004 0x00000000
1227 0x00000000 0x00000000
1228 0x00000000 0x00000001
1229 0x00000016 0x0000001a
1230 0x0000001c 0x00001be7
1231 0x00000000 0x000006f9
1232 0x00000004 0x00000015
1233 0x00000001 0x00000000
1234 0x000000e7 0x0000001b
1235 0x000000fb 0x00000200
1236 0x00000006 0x00000007
1237 0x00000006 0x0000001e
1238 0x00000000 0x0000000a
1239 0x0000000a 0x00001c28
1240 0x00000000 0x00000000
1241 0x00000000 0x104ab898
1242 0xe00400b1 0x00008000
1243 0x007f800a 0x007f800a
1244 0x007f800a 0x007f800a
1245 0x007f800a 0x007f800a
1246 0x007f800a 0x007f800a
1247 0x007f800a 0x007f800a
1248 0x007f800a 0x007f800a
1249 0x007f800a 0x007f800a
1250 0x007f800a 0x007f800a
1251 0x00000000 0x00000000
1252 0x00000000 0x00000000
1253 0x00000000 0x00000000
1254 0x00000000 0x00000000
1255 0x0002c000 0x0002c000
1256 0x00000000 0x0002c000
1257 0x0002c000 0x00000000
1258 0x00000000 0x00000000
1259 0x00000000 0x00000000
1260 0x00000000 0x00000000
1261 0x00000000 0x00000000
1262 0x00000004 0x00000004
1263 0x00000004 0x00000004
1264 0x00000004 0x00000004
1265 0x00000004 0x00000004
1266 0x00000004 0x00000004
1267 0x00000004 0x00000004
1268 0x00000004 0x00000004
1269 0x00000004 0x00000004
1270 0x00000008 0x00000008
1271 0x00000008 0x00000008
1272 0x00000008 0x00000008
1273 0x00000008 0x00000008
1274 0x100002a0 0x00000000
1275 0x00111111 0x00000000
1276 0x00000000 0x77ffc085
1277 0x00000000 0x81f1f108
1278 0x07070004 0x00000000
1279 0x016eeeee 0x5d75d720
1280 0x00514514 0x00514514
1281 0x5d75d700 0x0606003f
1282 0x00000000 0x00000000
1283 0x00000128 0x00cd000e
1284 0x00000000 0x00000004
1285 0x00004080 0x800037ea
1286 0x00000011
1287 >;
1288 };
1289
1290 };
1291 };
1292
1293 memory-controller@70019000 {
1294 emc-timings-1 {
1295 nvidia,ram-code = <1>;
1296
1297 timing-12750000 {
1298 clock-frequency = <12750000>;
1299
1300 nvidia,emem-configuration = <
1301 0x40040001 0x8000000a
1302 0x00000001 0x00000001
1303 0x00000002 0x00000000
1304 0x00000002 0x00000001
1305 0x00000003 0x00000008
1306 0x00000003 0x00000002
1307 0x00000003 0x00000006
1308 0x06030203 0x000a0502
1309 0x77e30303 0x70000f03
1310 0x001f0000
1311 >;
1312 };
1313
1314 timing-20400000 {
1315 clock-frequency = <20400000>;
1316
1317 nvidia,emem-configuration = <
1318 0x40020001 0x80000012
1319 0x00000001 0x00000001
1320 0x00000002 0x00000000
1321 0x00000002 0x00000001
1322 0x00000003 0x00000008
1323 0x00000003 0x00000002
1324 0x00000003 0x00000006
1325 0x06030203 0x000a0502
1326 0x76230303 0x70000f03
1327 0x001f0000
1328 >;
1329 };
1330
1331 timing-40800000 {
1332 clock-frequency = <40800000>;
1333
1334 nvidia,emem-configuration = <
1335 0xa0000001 0x80000017
1336 0x00000001 0x00000001
1337 0x00000002 0x00000000
1338 0x00000002 0x00000001
1339 0x00000003 0x00000008
1340 0x00000003 0x00000002
1341 0x00000003 0x00000006
1342 0x06030203 0x000a0502
1343 0x74a30303 0x70000f03
1344 0x001f0000
1345 >;
1346 };
1347
1348 timing-68000000 {
1349 clock-frequency = <68000000>;
1350
1351 nvidia,emem-configuration = <
1352 0x00000001 0x8000001e
1353 0x00000001 0x00000001
1354 0x00000002 0x00000000
1355 0x00000002 0x00000001
1356 0x00000003 0x00000008
1357 0x00000003 0x00000002
1358 0x00000003 0x00000006
1359 0x06030203 0x000a0502
1360 0x74230403 0x70000f03
1361 0x001f0000
1362 >;
1363 };
1364
1365 timing-102000000 {
1366 clock-frequency = <102000000>;
1367
1368 nvidia,emem-configuration = <
1369 0x08000001 0x80000026
1370 0x00000001 0x00000001
1371 0x00000003 0x00000000
1372 0x00000002 0x00000001
1373 0x00000003 0x00000008
1374 0x00000003 0x00000002
1375 0x00000003 0x00000006
1376 0x06030203 0x000a0503
1377 0x73c30504 0x70000f03
1378 0x001f0000
1379 >;
1380 };
1381
1382 timing-204000000 {
1383 clock-frequency = <204000000>;
1384
1385 nvidia,emem-configuration = <
1386 0x01000003 0x80000040
1387 0x00000001 0x00000001
1388 0x00000004 0x00000002
1389 0x00000003 0x00000001
1390 0x00000003 0x00000008
1391 0x00000003 0x00000002
1392 0x00000004 0x00000006
1393 0x06040203 0x000a0504
1394 0x73840a05 0x70000f03
1395 0x001f0000
1396 >;
1397 };
1398
1399 timing-300000000 {
1400 clock-frequency = <300000000>;
1401
1402 nvidia,emem-configuration = <
1403 0x08000004 0x80000040
1404 0x00000001 0x00000002
1405 0x00000007 0x00000004
1406 0x00000004 0x00000001
1407 0x00000002 0x00000007
1408 0x00000002 0x00000002
1409 0x00000004 0x00000006
1410 0x06040202 0x000b0607
1411 0x77450e08 0x70000f03
1412 0x001f0000
1413 >;
1414 };
1415
1416 timing-396000000 {
1417 clock-frequency = <396000000>;
1418
1419 nvidia,emem-configuration = <
1420 0x0f000005 0x80000040
1421 0x00000001 0x00000002
1422 0x00000009 0x00000005
1423 0x00000006 0x00000001
1424 0x00000002 0x00000008
1425 0x00000002 0x00000002
1426 0x00000004 0x00000006
1427 0x06040202 0x000d0709
1428 0x7586120a 0x70000f03
1429 0x001f0000
1430 >;
1431 };
1432
1433 timing-528000000 {
1434 clock-frequency = <528000000>;
1435
1436 nvidia,emem-configuration = <
1437 0x0f000007 0x80000040
1438 0x00000002 0x00000003
1439 0x0000000c 0x00000007
1440 0x00000008 0x00000001
1441 0x00000002 0x00000009
1442 0x00000002 0x00000002
1443 0x00000005 0x00000006
1444 0x06050202 0x0010090c
1445 0x7428180d 0x70000f03
1446 0x001f0000
1447 >;
1448 };
1449
1450 timing-600000000 {
1451 clock-frequency = <600000000>;
1452
1453 nvidia,emem-configuration = <
1454 0x00000009 0x80000040
1455 0x00000003 0x00000004
1456 0x0000000e 0x00000009
1457 0x0000000a 0x00000001
1458 0x00000003 0x0000000b
1459 0x00000002 0x00000002
1460 0x00000005 0x00000007
1461 0x07050202 0x00130b0e
1462 0x73a91b0f 0x70000f03
1463 0x001f0000
1464 >;
1465 };
1466
1467 timing-792000000 {
1468 clock-frequency = <792000000>;
1469
1470 nvidia,emem-configuration = <
1471 0x0e00000b 0x80000040
1472 0x00000004 0x00000005
1473 0x00000013 0x0000000c
1474 0x0000000d 0x00000002
1475 0x00000003 0x0000000c
1476 0x00000002 0x00000002
1477 0x00000006 0x00000008
1478 0x08060202 0x00170e13
1479 0x736c2414 0x70000f02
1480 0x001f0000
1481 >;
1482 };
1483
1484 timing-924000000 {
1485 clock-frequency = <924000000>;
1486
1487 nvidia,emem-configuration = <
1488 0x0e00000d 0x80000040
1489 0x00000005 0x00000006
1490 0x00000016 0x0000000e
1491 0x0000000f 0x00000002
1492 0x00000004 0x0000000e
1493 0x00000002 0x00000002
1494 0x00000006 0x00000009
1495 0x09060202 0x001a1016
1496 0x734e2a17 0x70000f02
1497 0x001f0000
1498 >;
1499 };
1500 };
1501 };
1502};
diff --git a/arch/arm/boot/dts/tegra124-apalis-eval.dts b/arch/arm/boot/dts/tegra124-apalis-eval.dts
new file mode 100644
index 000000000000..653044a44f0d
--- /dev/null
+++ b/arch/arm/boot/dts/tegra124-apalis-eval.dts
@@ -0,0 +1,284 @@
1/*
2 * Copyright 2016 Toradex AG
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42/dts-v1/;
43
44#include <dt-bindings/input/input.h>
45#include "tegra124-apalis.dtsi"
46
47/ {
48 model = "Toradex Apalis TK1 on Apalis Evaluation Board";
49 compatible = "toradex,apalis-tk1-eval", "toradex,apalis-tk1",
50 "nvidia,tegra124";
51
52 aliases {
53 rtc0 = "/i2c@7000c000/rtc@68";
54 rtc1 = "/i2c@7000d000/pmic@40";
55 rtc2 = "/rtc@7000e000";
56 serial0 = &uarta;
57 serial1 = &uartb;
58 serial2 = &uartc;
59 serial3 = &uartd;
60 };
61
62 chosen {
63 stdout-path = "serial0:115200n8";
64 };
65
66 pcie-controller@01003000 {
67 pci@1,0 {
68 status = "okay";
69 };
70 };
71
72 host1x@50000000 {
73 hdmi@54280000 {
74 status = "okay";
75 };
76 };
77
78 /* Apalis UART1 */
79 serial@70006000 {
80 status = "okay";
81 };
82
83 /* Apalis UART2 */
84 serial@70006040 {
85 status = "okay";
86 };
87
88 /* Apalis UART3 */
89 serial@70006200 {
90 status = "okay";
91 };
92
93 /* Apalis UART4 */
94 serial@70006300 {
95 status = "okay";
96 };
97
98 pwm@7000a000 {
99 status = "okay";
100 };
101
102 /*
103 * GEN1_I2C: I2C1_SDA/SCL on MXM3 pin 209/211 (e.g. RTC on carrier
104 * board)
105 */
106 i2c@7000c000 {
107 status = "okay";
108 clock-frequency = <100000>;
109
110 pcie-switch@58 {
111 compatible = "plx,pex8605";
112 reg = <0x58>;
113 };
114
115 /* M41T0M6 real time clock on carrier board */
116 rtc@68 {
117 compatible = "st,m41t00";
118 reg = <0x68>;
119 };
120 };
121
122 /*
123 * GEN2_I2C: I2C2_SDA/SCL (DDC) on MXM3 pin 205/207 (e.g. display EDID)
124 */
125 hdmi_ddc: i2c@7000c400 {
126 status = "okay";
127 clock-frequency = <100000>;
128 };
129
130 /*
131 * CAM_I2C: I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor
132 * on carrier board)
133 */
134 i2c@7000c500 {
135 status = "okay";
136 clock-frequency = <100000>;
137 };
138
139 /* I2C4 (DDC): unused */
140
141 /* SPI1: Apalis SPI1 */
142 spi@7000d400 {
143 status = "okay";
144 spi-max-frequency = <50000000>;
145
146 spidev0: spidev@0 {
147 compatible = "spidev";
148 reg = <0>;
149 spi-max-frequency = <50000000>;
150 };
151 };
152
153 /* SPI4: Apalis SPI2 */
154 spi@7000da00 {
155 status = "okay";
156 spi-max-frequency = <50000000>;
157
158 spidev1: spidev@0 {
159 compatible = "spidev";
160 reg = <0>;
161 spi-max-frequency = <50000000>;
162 };
163 };
164
165 /* Apalis Serial ATA */
166 sata@70020000 {
167 status = "okay";
168 };
169
170 hda@70030000 {
171 status = "okay";
172 };
173
174 usb@70090000 {
175 status = "okay";
176 };
177
178 /* Apalis MMC1 */
179 sdhci@700b0000 {
180 status = "okay";
181 /* MMC1_CD# */
182 cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
183 bus-width = <4>;
184 vqmmc-supply = <&vddio_sdmmc1>;
185 };
186
187 /* Apalis SD1 */
188 sdhci@700b0400 {
189 status = "okay";
190 /*
191 * Don't use SD1_CD# aka SDMMC3_CLK_LB_OUT for now as it
192 * features some magic properties even though the external
193 * loopback is disabled and the internal loopback used as per
194 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits being
195 * set to 0xfffd according to the TRM!
196 * cd-gpios = <&gpio TEGRA_GPIO(EE, 4) GPIO_ACTIVE_LOW>;
197 */
198 bus-width = <4>;
199 vqmmc-supply = <&vddio_sdmmc3>;
200 };
201
202 /* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
203 usb@7d000000 {
204 status = "okay";
205 dr_mode = "otg";
206 };
207
208 usb-phy@7d000000 {
209 status = "okay";
210 vbus-supply = <&reg_usbo1_vbus>;
211 };
212
213 /* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
214 usb@7d004000 {
215 status = "okay";
216 };
217
218 usb-phy@7d004000 {
219 status = "okay";
220 vbus-supply = <&reg_usbh_vbus>;
221 };
222
223 /* EHCI instance 2: USB3_DP/N -> USBH4_DP/N */
224 usb@7d008000 {
225 status = "okay";
226 };
227
228 usb-phy@7d008000 {
229 status = "okay";
230 vbus-supply = <&reg_usbh_vbus>;
231 };
232
233 backlight: backlight {
234 compatible = "pwm-backlight";
235
236 /* BKL1_PWM */
237 pwms = <&pwm 3 5000000>;
238 brightness-levels = <255 231 223 207 191 159 127 0>;
239 default-brightness-level = <6>;
240 /* BKL1_ON */
241 enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
242 };
243
244 gpio-keys {
245 compatible = "gpio-keys";
246
247 wakeup {
248 label = "WAKE1_MICO";
249 gpios = <&gpio TEGRA_GPIO(DD, 3) GPIO_ACTIVE_LOW>;
250 linux,code = <KEY_WAKEUP>;
251 debounce-interval = <10>;
252 wakeup-source;
253 };
254 };
255
256 reg_5v0: regulator-5v0 {
257 compatible = "regulator-fixed";
258 regulator-name = "5V_SW";
259 regulator-min-microvolt = <5000000>;
260 regulator-max-microvolt = <5000000>;
261 };
262
263 /* USBO1_EN */
264 reg_usbo1_vbus: regulator-usbo1-vbus {
265 compatible = "regulator-fixed";
266 regulator-name = "VCC_USBO1";
267 regulator-min-microvolt = <5000000>;
268 regulator-max-microvolt = <5000000>;
269 gpio = <&gpio TEGRA_GPIO(N, 4) GPIO_ACTIVE_HIGH>;
270 enable-active-high;
271 vin-supply = <&reg_5v0>;
272 };
273
274 /* USBH_EN */
275 reg_usbh_vbus: regulator-usbh-vbus {
276 compatible = "regulator-fixed";
277 regulator-name = "VCC_USBH(2A|2C|2D|3|4)";
278 regulator-min-microvolt = <5000000>;
279 regulator-max-microvolt = <5000000>;
280 gpio = <&gpio TEGRA_GPIO(N, 5) GPIO_ACTIVE_HIGH>;
281 enable-active-high;
282 vin-supply = <&reg_5v0>;
283 };
284};
diff --git a/arch/arm/boot/dts/tegra124-apalis.dtsi b/arch/arm/boot/dts/tegra124-apalis.dtsi
new file mode 100644
index 000000000000..e7a73db17613
--- /dev/null
+++ b/arch/arm/boot/dts/tegra124-apalis.dtsi
@@ -0,0 +1,2100 @@
1/*
2 * Copyright 2016 Toradex AG
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * version 2 as published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * Or, alternatively
19 *
20 * b) Permission is hereby granted, free of charge, to any person
21 * obtaining a copy of this software and associated documentation
22 * files (the "Software"), to deal in the Software without
23 * restriction, including without limitation the rights to use
24 * copy, modify, merge, publish, distribute, sublicense, and/or
25 * sell copies of the Software, and to permit persons to whom the
26 * Software is furnished to do so, subject to the following
27 * conditions:
28 *
29 * The above copyright notice and this permission notice shall be
30 * included in all copies or substantial portions of the Software.
31 *
32 * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
33 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
34 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
35 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
36 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
37 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
38 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
39 * OTHER DEALINGS IN THE SOFTWARE.
40 */
41
42#include "tegra124.dtsi"
43#include "tegra124-apalis-emc.dtsi"
44
45/*
46 * Toradex Apalis TK1 Module Device Tree
47 * Compatible for Revisions 2GB: V1.0A
48 */
49/ {
50 model = "Toradex Apalis TK1";
51 compatible = "toradex,apalis-tk1", "nvidia,tegra124";
52
53 memory {
54 reg = <0x0 0x80000000 0x0 0x80000000>;
55 };
56
57 pcie-controller@01003000 {
58 status = "okay";
59
60 avddio-pex-supply = <&vdd_1v05>;
61 avdd-pex-pll-supply = <&vdd_1v05>;
62 avdd-pll-erefe-supply = <&avdd_1v05>;
63 dvddio-pex-supply = <&vdd_1v05>;
64 hvdd-pex-pll-e-supply = <&reg_3v3>;
65 hvdd-pex-supply = <&reg_3v3>;
66 vddio-pex-ctl-supply = <&reg_3v3>;
67
68 /* Apalis PCIe (additional lane Apalis type specific) */
69 pci@1,0 {
70 /* PCIE1_RX/TX and TS_DIFF1/2 */
71 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>,
72 <&{/padctl@7009f000/pads/pcie/lanes/pcie-3}>;
73 phy-names = "pcie-0", "pcie-1";
74 };
75
76 /* I210 Gigabit Ethernet Controller (On-module) */
77 pci@2,0 {
78 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
79 phy-names = "pcie-0";
80 status = "okay";
81 };
82 };
83
84 host1x@50000000 {
85 hdmi@54280000 {
86 pll-supply = <&reg_1v05_avdd_hdmi_pll>;
87 vdd-supply = <&reg_3v3_avdd_hdmi>;
88
89 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
90 nvidia,hpd-gpio =
91 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
92 };
93 };
94
95 gpu@0,57000000 {
96 /*
97 * Node left disabled on purpose - the bootloader will enable
98 * it after having set the VPR up
99 */
100 vdd-supply = <&vdd_gpu>;
101 };
102
103 pinmux: pinmux@70000868 {
104 pinctrl-names = "default";
105 pinctrl-0 = <&state_default>;
106
107 state_default: pinmux {
108 /* Analogue Audio (On-module) */
109 dap3_fs_pp0 {
110 nvidia,pins = "dap3_fs_pp0";
111 nvidia,function = "i2s2";
112 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
113 nvidia,tristate = <TEGRA_PIN_DISABLE>;
114 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
115 };
116 dap3_din_pp1 {
117 nvidia,pins = "dap3_din_pp1";
118 nvidia,function = "i2s2";
119 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
120 nvidia,tristate = <TEGRA_PIN_ENABLE>;
121 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
122 };
123 dap3_dout_pp2 {
124 nvidia,pins = "dap3_dout_pp2";
125 nvidia,function = "i2s2";
126 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
127 nvidia,tristate = <TEGRA_PIN_DISABLE>;
128 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
129 };
130 dap3_sclk_pp3 {
131 nvidia,pins = "dap3_sclk_pp3";
132 nvidia,function = "i2s2";
133 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
134 nvidia,tristate = <TEGRA_PIN_DISABLE>;
135 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
136 };
137 dap_mclk1_pw4 {
138 nvidia,pins = "dap_mclk1_pw4";
139 nvidia,function = "extperiph1";
140 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
141 nvidia,tristate = <TEGRA_PIN_DISABLE>;
142 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
143 };
144
145 /* Apalis BKL1_ON */
146 pbb5 {
147 nvidia,pins = "pbb5";
148 nvidia,function = "vgp5";
149 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
150 nvidia,tristate = <TEGRA_PIN_DISABLE>;
151 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
152 };
153
154 /* Apalis BKL1_PWM */
155 pu6 {
156 nvidia,pins = "pu6";
157 nvidia,function = "pwm3";
158 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
159 nvidia,tristate = <TEGRA_PIN_DISABLE>;
160 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
161 };
162
163 /* Apalis CAM1_MCLK */
164 cam_mclk_pcc0 {
165 nvidia,pins = "cam_mclk_pcc0";
166 nvidia,function = "vi_alt3";
167 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
168 nvidia,tristate = <TEGRA_PIN_DISABLE>;
169 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
170 };
171
172 /* Apalis Digital Audio */
173 dap2_fs_pa2 {
174 nvidia,pins = "dap2_fs_pa2";
175 nvidia,function = "hda";
176 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
177 nvidia,tristate = <TEGRA_PIN_DISABLE>;
178 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
179 };
180 dap2_sclk_pa3 {
181 nvidia,pins = "dap2_sclk_pa3";
182 nvidia,function = "hda";
183 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
184 nvidia,tristate = <TEGRA_PIN_DISABLE>;
185 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
186 };
187 dap2_din_pa4 {
188 nvidia,pins = "dap2_din_pa4";
189 nvidia,function = "hda";
190 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
191 nvidia,tristate = <TEGRA_PIN_ENABLE>;
192 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
193 };
194 dap2_dout_pa5 {
195 nvidia,pins = "dap2_dout_pa5";
196 nvidia,function = "hda";
197 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
198 nvidia,tristate = <TEGRA_PIN_DISABLE>;
199 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
200 };
201 pbb3 { /* DAP1_RESET */
202 nvidia,pins = "pbb3";
203 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
204 nvidia,tristate = <TEGRA_PIN_DISABLE>;
205 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
206 };
207 clk3_out_pee0 {
208 nvidia,pins = "clk3_out_pee0";
209 nvidia,function = "extperiph3";
210 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
211 nvidia,tristate = <TEGRA_PIN_DISABLE>;
212 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
213 };
214
215 /* Apalis GPIO */
216 ddc_scl_pv4 {
217 nvidia,pins = "ddc_scl_pv4";
218 nvidia,function = "rsvd2";
219 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
220 nvidia,tristate = <TEGRA_PIN_DISABLE>;
221 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
222 };
223 ddc_sda_pv5 {
224 nvidia,pins = "ddc_sda_pv5";
225 nvidia,function = "rsvd2";
226 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
227 nvidia,tristate = <TEGRA_PIN_DISABLE>;
228 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
229 };
230 pex_l0_rst_n_pdd1 {
231 nvidia,pins = "pex_l0_rst_n_pdd1";
232 nvidia,function = "rsvd2";
233 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
234 nvidia,tristate = <TEGRA_PIN_DISABLE>;
235 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
236 };
237 pex_l0_clkreq_n_pdd2 {
238 nvidia,pins = "pex_l0_clkreq_n_pdd2";
239 nvidia,function = "rsvd2";
240 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
241 nvidia,tristate = <TEGRA_PIN_DISABLE>;
242 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
243 };
244 pex_l1_rst_n_pdd5 {
245 nvidia,pins = "pex_l1_rst_n_pdd5";
246 nvidia,function = "rsvd2";
247 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
248 nvidia,tristate = <TEGRA_PIN_DISABLE>;
249 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
250 };
251 pex_l1_clkreq_n_pdd6 {
252 nvidia,pins = "pex_l1_clkreq_n_pdd6";
253 nvidia,function = "rsvd2";
254 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
255 nvidia,tristate = <TEGRA_PIN_DISABLE>;
256 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
257 };
258 dp_hpd_pff0 {
259 nvidia,pins = "dp_hpd_pff0";
260 nvidia,function = "rsvd2";
261 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
262 nvidia,tristate = <TEGRA_PIN_DISABLE>;
263 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
264 };
265 pff2 {
266 nvidia,pins = "pff2";
267 nvidia,function = "rsvd2";
268 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
269 nvidia,tristate = <TEGRA_PIN_DISABLE>;
270 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
271 };
272 owr { /* PEX_L1_CLKREQ_N multiplexed GPIO6 */
273 nvidia,pins = "owr";
274 nvidia,function = "rsvd2";
275 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
276 nvidia,tristate = <TEGRA_PIN_ENABLE>;
277 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
278 nvidia,rcv-sel = <TEGRA_PIN_DISABLE>;
279 };
280
281 /* Apalis HDMI1_CEC */
282 hdmi_cec_pee3 {
283 nvidia,pins = "hdmi_cec_pee3";
284 nvidia,function = "cec";
285 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
286 nvidia,tristate = <TEGRA_PIN_DISABLE>;
287 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
288 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
289 };
290
291 /* Apalis HDMI1_HPD */
292 hdmi_int_pn7 {
293 nvidia,pins = "hdmi_int_pn7";
294 nvidia,function = "rsvd1";
295 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
296 nvidia,tristate = <TEGRA_PIN_ENABLE>;
297 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
298 nvidia,rcv-sel = <TEGRA_PIN_DISABLE>;
299 };
300
301 /* Apalis I2C1 */
302 gen1_i2c_scl_pc4 {
303 nvidia,pins = "gen1_i2c_scl_pc4";
304 nvidia,function = "i2c1";
305 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
306 nvidia,tristate = <TEGRA_PIN_DISABLE>;
307 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
308 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
309 };
310 gen1_i2c_sda_pc5 {
311 nvidia,pins = "gen1_i2c_sda_pc5";
312 nvidia,function = "i2c1";
313 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
314 nvidia,tristate = <TEGRA_PIN_DISABLE>;
315 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
316 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
317 };
318
319 /* Apalis I2C2 (DDC) */
320 gen2_i2c_scl_pt5 {
321 nvidia,pins = "gen2_i2c_scl_pt5";
322 nvidia,function = "i2c2";
323 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
324 nvidia,tristate = <TEGRA_PIN_DISABLE>;
325 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
326 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
327 };
328 gen2_i2c_sda_pt6 {
329 nvidia,pins = "gen2_i2c_sda_pt6";
330 nvidia,function = "i2c2";
331 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
332 nvidia,tristate = <TEGRA_PIN_DISABLE>;
333 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
334 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
335 };
336
337 /* Apalis I2C3 (CAM) */
338 cam_i2c_scl_pbb1 {
339 nvidia,pins = "cam_i2c_scl_pbb1";
340 nvidia,function = "i2c3";
341 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
342 nvidia,tristate = <TEGRA_PIN_DISABLE>;
343 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
344 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
345 };
346 cam_i2c_sda_pbb2 {
347 nvidia,pins = "cam_i2c_sda_pbb2";
348 nvidia,function = "i2c3";
349 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
350 nvidia,tristate = <TEGRA_PIN_DISABLE>;
351 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
352 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
353 };
354
355 /* Apalis MMC1 */
356 sdmmc1_cd_n_pv3 { /* CD# GPIO */
357 nvidia,pins = "sdmmc1_wp_n_pv3";
358 nvidia,function = "sdmmc1";
359 nvidia,pull = <TEGRA_PIN_PULL_UP>;
360 nvidia,tristate = <TEGRA_PIN_ENABLE>;
361 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
362 };
363 clk2_out_pw5 { /* D5 GPIO */
364 nvidia,pins = "clk2_out_pw5";
365 nvidia,function = "rsvd2";
366 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
367 nvidia,tristate = <TEGRA_PIN_DISABLE>;
368 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
369 };
370 sdmmc1_dat3_py4 {
371 nvidia,pins = "sdmmc1_dat3_py4";
372 nvidia,function = "sdmmc1";
373 nvidia,pull = <TEGRA_PIN_PULL_UP>;
374 nvidia,tristate = <TEGRA_PIN_DISABLE>;
375 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
376 };
377 sdmmc1_dat2_py5 {
378 nvidia,pins = "sdmmc1_dat2_py5";
379 nvidia,function = "sdmmc1";
380 nvidia,pull = <TEGRA_PIN_PULL_UP>;
381 nvidia,tristate = <TEGRA_PIN_DISABLE>;
382 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
383 };
384 sdmmc1_dat1_py6 {
385 nvidia,pins = "sdmmc1_dat1_py6";
386 nvidia,function = "sdmmc1";
387 nvidia,pull = <TEGRA_PIN_PULL_UP>;
388 nvidia,tristate = <TEGRA_PIN_DISABLE>;
389 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
390 };
391 sdmmc1_dat0_py7 {
392 nvidia,pins = "sdmmc1_dat0_py7";
393 nvidia,function = "sdmmc1";
394 nvidia,pull = <TEGRA_PIN_PULL_UP>;
395 nvidia,tristate = <TEGRA_PIN_DISABLE>;
396 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
397 };
398 sdmmc1_clk_pz0 {
399 nvidia,pins = "sdmmc1_clk_pz0";
400 nvidia,function = "sdmmc1";
401 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
402 nvidia,tristate = <TEGRA_PIN_DISABLE>;
403 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
404 };
405 sdmmc1_cmd_pz1 {
406 nvidia,pins = "sdmmc1_cmd_pz1";
407 nvidia,function = "sdmmc1";
408 nvidia,pull = <TEGRA_PIN_PULL_UP>;
409 nvidia,tristate = <TEGRA_PIN_DISABLE>;
410 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
411 };
412 clk2_req_pcc5 { /* D4 GPIO */
413 nvidia,pins = "clk2_req_pcc5";
414 nvidia,function = "rsvd2";
415 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
416 nvidia,tristate = <TEGRA_PIN_DISABLE>;
417 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
418 };
419 /*
420 * Don't use MMC1_D6 aka SDMMC3_CLK_LB_IN for now as it
421 * features some magic properties even though the
422 * external loopback is disabled and the internal
423 * loopback used as per SDMMC_VENDOR_MISC_CNTRL_0
424 * register's SDMMC_SPARE1 bits being set to 0xfffd
425 * according to the TRM!
426 */
427 sdmmc3_clk_lb_in_pee5 { /* D6 GPIO */
428 nvidia,pins = "sdmmc3_clk_lb_in_pee5";
429 nvidia,function = "sdmmc3";
430 nvidia,pull = <TEGRA_PIN_PULL_UP>;
431 nvidia,tristate = <TEGRA_PIN_DISABLE>;
432 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
433 };
434 usb_vbus_en2_pff1 { /* D7 GPIO */
435 nvidia,pins = "usb_vbus_en2_pff1";
436 nvidia,function = "rsvd2";
437 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
438 nvidia,tristate = <TEGRA_PIN_DISABLE>;
439 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
440 };
441
442 /* Apalis PWM */
443 ph0 {
444 nvidia,pins = "ph0";
445 nvidia,function = "pwm0";
446 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
447 nvidia,tristate = <TEGRA_PIN_DISABLE>;
448 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
449 };
450 ph1 {
451 nvidia,pins = "ph1";
452 nvidia,function = "pwm1";
453 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
454 nvidia,tristate = <TEGRA_PIN_DISABLE>;
455 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
456 };
457 ph2 {
458 nvidia,pins = "ph2";
459 nvidia,function = "pwm2";
460 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
461 nvidia,tristate = <TEGRA_PIN_DISABLE>;
462 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
463 };
464 /* PWM3 active on pu6 being Apalis BKL1_PWM */
465 ph3 {
466 nvidia,pins = "ph3";
467 nvidia,function = "gmi";
468 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
469 nvidia,tristate = <TEGRA_PIN_ENABLE>;
470 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
471 };
472
473 /* Apalis SATA1_ACT# */
474 dap1_dout_pn2 {
475 nvidia,pins = "dap1_dout_pn2";
476 nvidia,function = "gmi";
477 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
478 nvidia,tristate = <TEGRA_PIN_DISABLE>;
479 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
480 };
481
482 /* Apalis SD1 */
483 sdmmc3_clk_pa6 {
484 nvidia,pins = "sdmmc3_clk_pa6";
485 nvidia,function = "sdmmc3";
486 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
487 nvidia,tristate = <TEGRA_PIN_DISABLE>;
488 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
489 };
490 sdmmc3_cmd_pa7 {
491 nvidia,pins = "sdmmc3_cmd_pa7";
492 nvidia,function = "sdmmc3";
493 nvidia,pull = <TEGRA_PIN_PULL_UP>;
494 nvidia,tristate = <TEGRA_PIN_DISABLE>;
495 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
496 };
497 sdmmc3_dat3_pb4 {
498 nvidia,pins = "sdmmc3_dat3_pb4";
499 nvidia,function = "sdmmc3";
500 nvidia,pull = <TEGRA_PIN_PULL_UP>;
501 nvidia,tristate = <TEGRA_PIN_DISABLE>;
502 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
503 };
504 sdmmc3_dat2_pb5 {
505 nvidia,pins = "sdmmc3_dat2_pb5";
506 nvidia,function = "sdmmc3";
507 nvidia,pull = <TEGRA_PIN_PULL_UP>;
508 nvidia,tristate = <TEGRA_PIN_DISABLE>;
509 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
510 };
511 sdmmc3_dat1_pb6 {
512 nvidia,pins = "sdmmc3_dat1_pb6";
513 nvidia,function = "sdmmc3";
514 nvidia,pull = <TEGRA_PIN_PULL_UP>;
515 nvidia,tristate = <TEGRA_PIN_DISABLE>;
516 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
517 };
518 sdmmc3_dat0_pb7 {
519 nvidia,pins = "sdmmc3_dat0_pb7";
520 nvidia,function = "sdmmc3";
521 nvidia,pull = <TEGRA_PIN_PULL_UP>;
522 nvidia,tristate = <TEGRA_PIN_DISABLE>;
523 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
524 };
525 /*
526 * Don't use SD1_CD# aka SDMMC3_CLK_LB_OUT for now as it
527 * features some magic properties even though the
528 * external loopback is disabled and the internal
529 * loopback used as per SDMMC_VENDOR_MISC_CNTRL_0
530 * register's SDMMC_SPARE1 bits being set to 0xfffd
531 * according to the TRM!
532 */
533 sdmmc3_clk_lb_out_pee4 { /* CD# GPIO */
534 nvidia,pins = "sdmmc3_clk_lb_out_pee4";
535 nvidia,function = "rsvd2";
536 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
537 nvidia,tristate = <TEGRA_PIN_ENABLE>;
538 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
539 };
540
541 /* Apalis SPDIF */
542 spdif_out_pk5 {
543 nvidia,pins = "spdif_out_pk5";
544 nvidia,function = "spdif";
545 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
546 nvidia,tristate = <TEGRA_PIN_DISABLE>;
547 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
548 };
549 spdif_in_pk6 {
550 nvidia,pins = "spdif_in_pk6";
551 nvidia,function = "spdif";
552 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
553 nvidia,tristate = <TEGRA_PIN_ENABLE>;
554 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
555 };
556
557 /* Apalis SPI1 */
558 ulpi_clk_py0 {
559 nvidia,pins = "ulpi_clk_py0";
560 nvidia,function = "spi1";
561 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
562 nvidia,tristate = <TEGRA_PIN_DISABLE>;
563 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
564 };
565 ulpi_dir_py1 {
566 nvidia,pins = "ulpi_dir_py1";
567 nvidia,function = "spi1";
568 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
569 nvidia,tristate = <TEGRA_PIN_ENABLE>;
570 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
571 };
572 ulpi_nxt_py2 {
573 nvidia,pins = "ulpi_nxt_py2";
574 nvidia,function = "spi1";
575 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
576 nvidia,tristate = <TEGRA_PIN_DISABLE>;
577 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
578 };
579 ulpi_stp_py3 {
580 nvidia,pins = "ulpi_stp_py3";
581 nvidia,function = "spi1";
582 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
583 nvidia,tristate = <TEGRA_PIN_DISABLE>;
584 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
585 };
586
587 /* Apalis SPI2 */
588 pg5 {
589 nvidia,pins = "pg5";
590 nvidia,function = "spi4";
591 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
592 nvidia,tristate = <TEGRA_PIN_DISABLE>;
593 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
594 };
595 pg6 {
596 nvidia,pins = "pg6";
597 nvidia,function = "spi4";
598 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
599 nvidia,tristate = <TEGRA_PIN_DISABLE>;
600 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
601 };
602 pg7 {
603 nvidia,pins = "pg7";
604 nvidia,function = "spi4";
605 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
606 nvidia,tristate = <TEGRA_PIN_ENABLE>;
607 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
608 };
609 pi3 {
610 nvidia,pins = "pi3";
611 nvidia,function = "spi4";
612 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
613 nvidia,tristate = <TEGRA_PIN_DISABLE>;
614 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
615 };
616
617 /* Apalis UART1 */
618 pb1 { /* DCD GPIO */
619 nvidia,pins = "pb1";
620 nvidia,function = "rsvd2";
621 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
622 nvidia,tristate = <TEGRA_PIN_ENABLE>;
623 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
624 };
625 pk7 { /* RI GPIO */
626 nvidia,pins = "pk7";
627 nvidia,function = "rsvd2";
628 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
629 nvidia,tristate = <TEGRA_PIN_ENABLE>;
630 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
631 };
632 uart1_txd_pu0 {
633 nvidia,pins = "pu0";
634 nvidia,function = "uarta";
635 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
636 nvidia,tristate = <TEGRA_PIN_DISABLE>;
637 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
638 };
639 uart1_rxd_pu1 {
640 nvidia,pins = "pu1";
641 nvidia,function = "uarta";
642 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
643 nvidia,tristate = <TEGRA_PIN_ENABLE>;
644 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
645 };
646 uart1_cts_n_pu2 {
647 nvidia,pins = "pu2";
648 nvidia,function = "uarta";
649 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
650 nvidia,tristate = <TEGRA_PIN_ENABLE>;
651 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
652 };
653 uart1_rts_n_pu3 {
654 nvidia,pins = "pu3";
655 nvidia,function = "uarta";
656 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
657 nvidia,tristate = <TEGRA_PIN_DISABLE>;
658 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
659 };
660 uart3_cts_n_pa1 { /* DSR GPIO */
661 nvidia,pins = "uart3_cts_n_pa1";
662 nvidia,function = "gmi";
663 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
664 nvidia,tristate = <TEGRA_PIN_ENABLE>;
665 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
666 };
667 uart3_rts_n_pc0 { /* DTR GPIO */
668 nvidia,pins = "uart3_rts_n_pc0";
669 nvidia,function = "gmi";
670 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
671 nvidia,tristate = <TEGRA_PIN_DISABLE>;
672 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
673 };
674
675 /* Apalis UART2 */
676 uart2_txd_pc2 {
677 nvidia,pins = "uart2_txd_pc2";
678 nvidia,function = "irda";
679 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
680 nvidia,tristate = <TEGRA_PIN_DISABLE>;
681 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
682 };
683 uart2_rxd_pc3 {
684 nvidia,pins = "uart2_rxd_pc3";
685 nvidia,function = "irda";
686 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
687 nvidia,tristate = <TEGRA_PIN_ENABLE>;
688 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
689 };
690 uart2_cts_n_pj5 {
691 nvidia,pins = "uart2_cts_n_pj5";
692 nvidia,function = "uartb";
693 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
694 nvidia,tristate = <TEGRA_PIN_ENABLE>;
695 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
696 };
697 uart2_rts_n_pj6 {
698 nvidia,pins = "uart2_rts_n_pj6";
699 nvidia,function = "uartb";
700 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
701 nvidia,tristate = <TEGRA_PIN_DISABLE>;
702 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
703 };
704
705 /* Apalis UART3 */
706 uart3_txd_pw6 {
707 nvidia,pins = "uart3_txd_pw6";
708 nvidia,function = "uartc";
709 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
710 nvidia,tristate = <TEGRA_PIN_DISABLE>;
711 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
712 };
713 uart3_rxd_pw7 {
714 nvidia,pins = "uart3_rxd_pw7";
715 nvidia,function = "uartc";
716 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
717 nvidia,tristate = <TEGRA_PIN_ENABLE>;
718 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
719 };
720
721 /* Apalis UART4 */
722 uart4_rxd_pb0 {
723 nvidia,pins = "pb0";
724 nvidia,function = "uartd";
725 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
726 nvidia,tristate = <TEGRA_PIN_ENABLE>;
727 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
728 };
729 uart4_txd_pj7 {
730 nvidia,pins = "pj7";
731 nvidia,function = "uartd";
732 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
733 nvidia,tristate = <TEGRA_PIN_DISABLE>;
734 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
735 };
736
737 /* Apalis USBH_EN */
738 usb_vbus_en1_pn5 {
739 nvidia,pins = "usb_vbus_en1_pn5";
740 nvidia,function = "rsvd2";
741 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
742 nvidia,tristate = <TEGRA_PIN_DISABLE>;
743 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
744 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
745 };
746
747 /* Apalis USBH_OC# */
748 pbb0 {
749 nvidia,pins = "pbb0";
750 nvidia,function = "vgp6";
751 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
752 nvidia,tristate = <TEGRA_PIN_ENABLE>;
753 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
754 };
755
756 /* Apalis USBO1_EN */
757 usb_vbus_en0_pn4 {
758 nvidia,pins = "usb_vbus_en0_pn4";
759 nvidia,function = "rsvd2";
760 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
761 nvidia,tristate = <TEGRA_PIN_DISABLE>;
762 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
763 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
764 };
765
766 /* Apalis USBO1_OC# */
767 pbb4 {
768 nvidia,pins = "pbb4";
769 nvidia,function = "vgp4";
770 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
771 nvidia,tristate = <TEGRA_PIN_ENABLE>;
772 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
773 };
774
775 /* Apalis WAKE1_MICO */
776 pex_wake_n_pdd3 {
777 nvidia,pins = "pex_wake_n_pdd3";
778 nvidia,function = "rsvd2";
779 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
780 nvidia,tristate = <TEGRA_PIN_ENABLE>;
781 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
782 };
783
784 /* CORE_PWR_REQ */
785 core_pwr_req {
786 nvidia,pins = "core_pwr_req";
787 nvidia,function = "pwron";
788 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
789 nvidia,tristate = <TEGRA_PIN_DISABLE>;
790 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
791 };
792
793 /* CPU_PWR_REQ */
794 cpu_pwr_req {
795 nvidia,pins = "cpu_pwr_req";
796 nvidia,function = "cpu";
797 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
798 nvidia,tristate = <TEGRA_PIN_DISABLE>;
799 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
800 };
801
802 /* DVFS */
803 dvfs_pwm_px0 {
804 nvidia,pins = "dvfs_pwm_px0";
805 nvidia,function = "cldvfs";
806 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
807 nvidia,tristate = <TEGRA_PIN_DISABLE>;
808 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
809 };
810 dvfs_clk_px2 {
811 nvidia,pins = "dvfs_clk_px2";
812 nvidia,function = "cldvfs";
813 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
814 nvidia,tristate = <TEGRA_PIN_DISABLE>;
815 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
816 };
817
818 /* eMMC */
819 sdmmc4_dat0_paa0 {
820 nvidia,pins = "sdmmc4_dat0_paa0";
821 nvidia,function = "sdmmc4";
822 nvidia,pull = <TEGRA_PIN_PULL_UP>;
823 nvidia,tristate = <TEGRA_PIN_DISABLE>;
824 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
825 };
826 sdmmc4_dat1_paa1 {
827 nvidia,pins = "sdmmc4_dat1_paa1";
828 nvidia,function = "sdmmc4";
829 nvidia,pull = <TEGRA_PIN_PULL_UP>;
830 nvidia,tristate = <TEGRA_PIN_DISABLE>;
831 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
832 };
833 sdmmc4_dat2_paa2 {
834 nvidia,pins = "sdmmc4_dat2_paa2";
835 nvidia,function = "sdmmc4";
836 nvidia,pull = <TEGRA_PIN_PULL_UP>;
837 nvidia,tristate = <TEGRA_PIN_DISABLE>;
838 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
839 };
840 sdmmc4_dat3_paa3 {
841 nvidia,pins = "sdmmc4_dat3_paa3";
842 nvidia,function = "sdmmc4";
843 nvidia,pull = <TEGRA_PIN_PULL_UP>;
844 nvidia,tristate = <TEGRA_PIN_DISABLE>;
845 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
846 };
847 sdmmc4_dat4_paa4 {
848 nvidia,pins = "sdmmc4_dat4_paa4";
849 nvidia,function = "sdmmc4";
850 nvidia,pull = <TEGRA_PIN_PULL_UP>;
851 nvidia,tristate = <TEGRA_PIN_DISABLE>;
852 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
853 };
854 sdmmc4_dat5_paa5 {
855 nvidia,pins = "sdmmc4_dat5_paa5";
856 nvidia,function = "sdmmc4";
857 nvidia,pull = <TEGRA_PIN_PULL_UP>;
858 nvidia,tristate = <TEGRA_PIN_DISABLE>;
859 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
860 };
861 sdmmc4_dat6_paa6 {
862 nvidia,pins = "sdmmc4_dat6_paa6";
863 nvidia,function = "sdmmc4";
864 nvidia,pull = <TEGRA_PIN_PULL_UP>;
865 nvidia,tristate = <TEGRA_PIN_DISABLE>;
866 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
867 };
868 sdmmc4_dat7_paa7 {
869 nvidia,pins = "sdmmc4_dat7_paa7";
870 nvidia,function = "sdmmc4";
871 nvidia,pull = <TEGRA_PIN_PULL_UP>;
872 nvidia,tristate = <TEGRA_PIN_DISABLE>;
873 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
874 };
875 sdmmc4_clk_pcc4 {
876 nvidia,pins = "sdmmc4_clk_pcc4";
877 nvidia,function = "sdmmc4";
878 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
879 nvidia,tristate = <TEGRA_PIN_DISABLE>;
880 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
881 };
882 sdmmc4_cmd_pt7 {
883 nvidia,pins = "sdmmc4_cmd_pt7";
884 nvidia,function = "sdmmc4";
885 nvidia,pull = <TEGRA_PIN_PULL_UP>;
886 nvidia,tristate = <TEGRA_PIN_DISABLE>;
887 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
888 };
889
890 /* JTAG_RTCK */
891 jtag_rtck {
892 nvidia,pins = "jtag_rtck";
893 nvidia,function = "rtck";
894 nvidia,pull = <TEGRA_PIN_PULL_UP>;
895 nvidia,tristate = <TEGRA_PIN_DISABLE>;
896 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
897 };
898
899 /* LAN_DEV_OFF# */
900 ulpi_data5_po6 {
901 nvidia,pins = "ulpi_data5_po6";
902 nvidia,function = "ulpi";
903 nvidia,pull = <TEGRA_PIN_PULL_UP>;
904 nvidia,tristate = <TEGRA_PIN_DISABLE>;
905 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
906 };
907
908 /* LAN_RESET# */
909 kb_row10_ps2 {
910 nvidia,pins = "kb_row10_ps2";
911 nvidia,function = "rsvd2";
912 nvidia,pull = <TEGRA_PIN_PULL_UP>;
913 nvidia,tristate = <TEGRA_PIN_DISABLE>;
914 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
915 };
916
917 /* LAN_WAKE# */
918 ulpi_data4_po5 {
919 nvidia,pins = "ulpi_data4_po5";
920 nvidia,function = "ulpi";
921 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
922 nvidia,tristate = <TEGRA_PIN_ENABLE>;
923 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
924 };
925
926 /* MCU_INT1# */
927 pk2 {
928 nvidia,pins = "pk2";
929 nvidia,function = "rsvd1";
930 nvidia,pull = <TEGRA_PIN_PULL_UP>;
931 nvidia,tristate = <TEGRA_PIN_ENABLE>;
932 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
933 };
934
935 /* MCU_INT2# */
936 pj2 {
937 nvidia,pins = "pj2";
938 nvidia,function = "rsvd1";
939 nvidia,pull = <TEGRA_PIN_PULL_UP>;
940 nvidia,tristate = <TEGRA_PIN_ENABLE>;
941 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
942 };
943
944 /* MCU_INT3# */
945 pi5 {
946 nvidia,pins = "pi5";
947 nvidia,function = "rsvd2";
948 nvidia,pull = <TEGRA_PIN_PULL_UP>;
949 nvidia,tristate = <TEGRA_PIN_ENABLE>;
950 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
951 };
952
953 /* MCU_INT4# */
954 pj0 {
955 nvidia,pins = "pj0";
956 nvidia,function = "rsvd1";
957 nvidia,pull = <TEGRA_PIN_PULL_UP>;
958 nvidia,tristate = <TEGRA_PIN_ENABLE>;
959 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
960 };
961
962 /* MCU_RESET */
963 pbb6 {
964 nvidia,pins = "pbb6";
965 nvidia,function = "rsvd2";
966 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
967 nvidia,tristate = <TEGRA_PIN_DISABLE>;
968 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
969 };
970
971 /* MCU SPI */
972 gpio_x4_aud_px4 {
973 nvidia,pins = "gpio_x4_aud_px4";
974 nvidia,function = "spi2";
975 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
976 nvidia,tristate = <TEGRA_PIN_DISABLE>;
977 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
978 };
979 gpio_x5_aud_px5 {
980 nvidia,pins = "gpio_x5_aud_px5";
981 nvidia,function = "spi2";
982 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
983 nvidia,tristate = <TEGRA_PIN_DISABLE>;
984 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
985 };
986 gpio_x6_aud_px6 { /* MCU_CS */
987 nvidia,pins = "gpio_x6_aud_px6";
988 nvidia,function = "spi2";
989 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
990 nvidia,tristate = <TEGRA_PIN_DISABLE>;
991 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
992 };
993 gpio_x7_aud_px7 {
994 nvidia,pins = "gpio_x7_aud_px7";
995 nvidia,function = "spi2";
996 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
997 nvidia,tristate = <TEGRA_PIN_ENABLE>;
998 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
999 };
1000 gpio_w2_aud_pw2 { /* MCU_CSEZP */
1001 nvidia,pins = "gpio_w2_aud_pw2";
1002 nvidia,function = "spi2";
1003 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1004 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1005 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1006 };
1007
1008 /* PMIC_CLK_32K */
1009 clk_32k_in {
1010 nvidia,pins = "clk_32k_in";
1011 nvidia,function = "clk";
1012 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1013 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1014 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1015 };
1016
1017 /* PMIC_CPU_OC_INT */
1018 clk_32k_out_pa0 {
1019 nvidia,pins = "clk_32k_out_pa0";
1020 nvidia,function = "soc";
1021 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1022 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1023 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1024 };
1025
1026 /* PWR_I2C */
1027 pwr_i2c_scl_pz6 {
1028 nvidia,pins = "pwr_i2c_scl_pz6";
1029 nvidia,function = "i2cpwr";
1030 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1031 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1032 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1033 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1034 };
1035 pwr_i2c_sda_pz7 {
1036 nvidia,pins = "pwr_i2c_sda_pz7";
1037 nvidia,function = "i2cpwr";
1038 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1039 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1040 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1041 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1042 };
1043
1044 /* PWR_INT_N */
1045 pwr_int_n {
1046 nvidia,pins = "pwr_int_n";
1047 nvidia,function = "pmi";
1048 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1049 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1050 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1051 };
1052
1053 /* RESET_MOCI_CTRL */
1054 pu4 {
1055 nvidia,pins = "pu4";
1056 nvidia,function = "gmi";
1057 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1058 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1059 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1060 };
1061
1062 /* RESET_OUT_N */
1063 reset_out_n {
1064 nvidia,pins = "reset_out_n";
1065 nvidia,function = "reset_out_n";
1066 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1067 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1068 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1069 };
1070
1071 /* SHIFT_CTRL_DIR_IN */
1072 kb_row0_pr0 {
1073 nvidia,pins = "kb_row0_pr0";
1074 nvidia,function = "rsvd2";
1075 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1076 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1077 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1078 };
1079 kb_row1_pr1 {
1080 nvidia,pins = "kb_row1_pr1";
1081 nvidia,function = "rsvd2";
1082 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1083 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1084 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1085 };
1086
1087 /* Configure level-shifter as output for HDA */
1088 kb_row11_ps3 {
1089 nvidia,pins = "kb_row11_ps3";
1090 nvidia,function = "rsvd2";
1091 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1092 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1093 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1094 };
1095
1096 /* SHIFT_CTRL_DIR_OUT */
1097 kb_col5_pq5 {
1098 nvidia,pins = "kb_col5_pq5";
1099 nvidia,function = "rsvd2";
1100 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1101 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1102 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1103 };
1104 kb_col6_pq6 {
1105 nvidia,pins = "kb_col6_pq6";
1106 nvidia,function = "rsvd2";
1107 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1108 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1109 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1110 };
1111 kb_col7_pq7 {
1112 nvidia,pins = "kb_col7_pq7";
1113 nvidia,function = "rsvd2";
1114 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1115 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1116 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1117 };
1118
1119 /* SHIFT_CTRL_OE */
1120 kb_col0_pq0 {
1121 nvidia,pins = "kb_col0_pq0";
1122 nvidia,function = "rsvd2";
1123 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1124 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1125 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1126 };
1127 kb_col1_pq1 {
1128 nvidia,pins = "kb_col1_pq1";
1129 nvidia,function = "rsvd2";
1130 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1131 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1132 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1133 };
1134 kb_col2_pq2 {
1135 nvidia,pins = "kb_col2_pq2";
1136 nvidia,function = "rsvd2";
1137 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1138 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1139 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1140 };
1141 kb_col4_pq4 {
1142 nvidia,pins = "kb_col4_pq4";
1143 nvidia,function = "kbc";
1144 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1145 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1146 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1147 };
1148 kb_row2_pr2 {
1149 nvidia,pins = "kb_row2_pr2";
1150 nvidia,function = "rsvd2";
1151 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1152 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1153 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1154 };
1155
1156 /* GPIO_PI6 aka TEMP_ALERT_L */
1157 pi6 {
1158 nvidia,pins = "pi6";
1159 nvidia,function = "rsvd1";
1160 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1161 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1162 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1163 };
1164
1165 /* TOUCH_INT */
1166 gpio_w3_aud_pw3 {
1167 nvidia,pins = "gpio_w3_aud_pw3";
1168 nvidia,function = "spi6";
1169 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
1170 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1171 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1172 };
1173
1174 pc7 { /* NC */
1175 nvidia,pins = "pc7";
1176 nvidia,function = "rsvd1";
1177 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1178 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1179 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1180 };
1181 pg0 { /* NC */
1182 nvidia,pins = "pg0";
1183 nvidia,function = "rsvd1";
1184 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1185 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1186 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1187 };
1188 pg1 { /* NC */
1189 nvidia,pins = "pg1";
1190 nvidia,function = "rsvd1";
1191 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1192 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1193 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1194 };
1195 pg2 { /* NC */
1196 nvidia,pins = "pg2";
1197 nvidia,function = "rsvd1";
1198 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1199 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1200 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1201 };
1202 pg3 { /* NC */
1203 nvidia,pins = "pg3";
1204 nvidia,function = "rsvd1";
1205 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1206 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1207 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1208 };
1209 pg4 { /* NC */
1210 nvidia,pins = "pg4";
1211 nvidia,function = "rsvd1";
1212 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1213 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1214 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1215 };
1216 ph4 { /* NC */
1217 nvidia,pins = "ph4";
1218 nvidia,function = "rsvd2";
1219 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1220 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1221 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1222 };
1223 ph5 { /* NC */
1224 nvidia,pins = "ph5";
1225 nvidia,function = "rsvd2";
1226 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1227 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1228 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1229 };
1230 ph6 { /* NC */
1231 nvidia,pins = "ph6";
1232 nvidia,function = "gmi";
1233 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1234 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1235 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1236 };
1237 ph7 { /* NC */
1238 nvidia,pins = "ph7";
1239 nvidia,function = "gmi";
1240 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1241 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1242 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1243 };
1244 pi0 { /* NC */
1245 nvidia,pins = "pi0";
1246 nvidia,function = "rsvd1";
1247 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1248 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1249 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1250 };
1251 pi1 { /* NC */
1252 nvidia,pins = "pi1";
1253 nvidia,function = "rsvd1";
1254 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1255 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1256 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1257 };
1258 pi2 { /* NC */
1259 nvidia,pins = "pi2";
1260 nvidia,function = "rsvd4";
1261 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1262 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1263 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1264 };
1265 pi4 { /* NC */
1266 nvidia,pins = "pi4";
1267 nvidia,function = "gmi";
1268 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1269 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1270 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1271 };
1272 pi7 { /* NC */
1273 nvidia,pins = "pi7";
1274 nvidia,function = "rsvd1";
1275 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1276 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1277 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1278 };
1279 pk0 { /* NC */
1280 nvidia,pins = "pk0";
1281 nvidia,function = "rsvd1";
1282 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1283 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1284 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1285 };
1286 pk1 { /* NC */
1287 nvidia,pins = "pk1";
1288 nvidia,function = "rsvd4";
1289 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1290 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1291 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1292 };
1293 pk3 { /* NC */
1294 nvidia,pins = "pk3";
1295 nvidia,function = "gmi";
1296 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1297 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1298 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1299 };
1300 pk4 { /* NC */
1301 nvidia,pins = "pk4";
1302 nvidia,function = "rsvd2";
1303 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1304 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1305 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1306 };
1307 dap1_fs_pn0 { /* NC */
1308 nvidia,pins = "dap1_fs_pn0";
1309 nvidia,function = "rsvd4";
1310 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1311 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1312 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1313 };
1314 dap1_din_pn1 { /* NC */
1315 nvidia,pins = "dap1_din_pn1";
1316 nvidia,function = "rsvd4";
1317 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1318 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1319 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1320 };
1321 dap1_sclk_pn3 { /* NC */
1322 nvidia,pins = "dap1_sclk_pn3";
1323 nvidia,function = "rsvd4";
1324 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1325 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1326 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1327 };
1328 ulpi_data7_po0 { /* NC */
1329 nvidia,pins = "ulpi_data7_po0";
1330 nvidia,function = "ulpi";
1331 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1332 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1333 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1334 };
1335 ulpi_data0_po1 { /* NC */
1336 nvidia,pins = "ulpi_data0_po1";
1337 nvidia,function = "ulpi";
1338 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1339 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1340 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1341 };
1342 ulpi_data1_po2 { /* NC */
1343 nvidia,pins = "ulpi_data1_po2";
1344 nvidia,function = "ulpi";
1345 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1346 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1347 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1348 };
1349 ulpi_data2_po3 { /* NC */
1350 nvidia,pins = "ulpi_data2_po3";
1351 nvidia,function = "ulpi";
1352 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1353 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1354 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1355 };
1356 ulpi_data3_po4 { /* NC */
1357 nvidia,pins = "ulpi_data3_po4";
1358 nvidia,function = "ulpi";
1359 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1360 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1361 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1362 };
1363 ulpi_data6_po7 { /* NC */
1364 nvidia,pins = "ulpi_data6_po7";
1365 nvidia,function = "ulpi";
1366 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1367 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1368 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1369 };
1370 dap4_fs_pp4 { /* NC */
1371 nvidia,pins = "dap4_fs_pp4";
1372 nvidia,function = "rsvd4";
1373 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1374 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1375 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1376 };
1377 dap4_din_pp5 { /* NC */
1378 nvidia,pins = "dap4_din_pp5";
1379 nvidia,function = "rsvd3";
1380 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1381 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1382 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1383 };
1384 dap4_dout_pp6 { /* NC */
1385 nvidia,pins = "dap4_dout_pp6";
1386 nvidia,function = "rsvd4";
1387 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1388 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1389 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1390 };
1391 dap4_sclk_pp7 { /* NC */
1392 nvidia,pins = "dap4_sclk_pp7";
1393 nvidia,function = "rsvd3";
1394 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1395 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1396 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1397 };
1398 kb_col3_pq3 { /* NC */
1399 nvidia,pins = "kb_col3_pq3";
1400 nvidia,function = "kbc";
1401 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1402 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1403 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1404 };
1405 kb_row3_pr3 { /* NC */
1406 nvidia,pins = "kb_row3_pr3";
1407 nvidia,function = "kbc";
1408 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1409 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1410 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1411 };
1412 kb_row4_pr4 { /* NC */
1413 nvidia,pins = "kb_row4_pr4";
1414 nvidia,function = "rsvd3";
1415 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1416 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1417 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1418 };
1419 kb_row5_pr5 { /* NC */
1420 nvidia,pins = "kb_row5_pr5";
1421 nvidia,function = "rsvd3";
1422 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1423 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1424 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1425 };
1426 kb_row6_pr6 { /* NC */
1427 nvidia,pins = "kb_row6_pr6";
1428 nvidia,function = "kbc";
1429 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1430 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1431 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1432 };
1433 kb_row7_pr7 { /* NC */
1434 nvidia,pins = "kb_row7_pr7";
1435 nvidia,function = "rsvd2";
1436 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1437 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1438 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1439 };
1440 kb_row8_ps0 { /* NC */
1441 nvidia,pins = "kb_row8_ps0";
1442 nvidia,function = "rsvd2";
1443 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1444 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1445 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1446 };
1447 kb_row9_ps1 { /* NC */
1448 nvidia,pins = "kb_row9_ps1";
1449 nvidia,function = "rsvd2";
1450 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1451 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1452 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1453 };
1454 kb_row12_ps4 { /* NC */
1455 nvidia,pins = "kb_row12_ps4";
1456 nvidia,function = "rsvd2";
1457 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1458 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1459 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1460 };
1461 kb_row13_ps5 { /* NC */
1462 nvidia,pins = "kb_row13_ps5";
1463 nvidia,function = "rsvd2";
1464 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1465 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1466 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1467 };
1468 kb_row14_ps6 { /* NC */
1469 nvidia,pins = "kb_row14_ps6";
1470 nvidia,function = "rsvd2";
1471 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1472 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1473 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1474 };
1475 kb_row15_ps7 { /* NC */
1476 nvidia,pins = "kb_row15_ps7";
1477 nvidia,function = "rsvd3";
1478 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1479 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1480 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1481 };
1482 kb_row16_pt0 { /* NC */
1483 nvidia,pins = "kb_row16_pt0";
1484 nvidia,function = "rsvd2";
1485 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1486 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1487 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1488 };
1489 kb_row17_pt1 { /* NC */
1490 nvidia,pins = "kb_row17_pt1";
1491 nvidia,function = "rsvd2";
1492 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1493 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1494 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1495 };
1496 pu5 { /* NC */
1497 nvidia,pins = "pu5";
1498 nvidia,function = "gmi";
1499 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1500 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1501 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1502 };
1503 pv0 { /* NC */
1504 nvidia,pins = "pv0";
1505 nvidia,function = "rsvd1";
1506 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1507 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1508 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1509 };
1510 pv1 { /* NC */
1511 nvidia,pins = "pv1";
1512 nvidia,function = "rsvd1";
1513 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1514 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1515 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1516 };
1517 sdmmc3_cd_n_pv2 { /* NC */
1518 nvidia,pins = "sdmmc3_cd_n_pv2";
1519 nvidia,function = "rsvd3";
1520 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1521 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1522 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1523 };
1524 gpio_x1_aud_px1 { /* NC */
1525 nvidia,pins = "gpio_x1_aud_px1";
1526 nvidia,function = "rsvd2";
1527 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1528 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1529 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1530 };
1531 gpio_x3_aud_px3 { /* NC */
1532 nvidia,pins = "gpio_x3_aud_px3";
1533 nvidia,function = "rsvd4";
1534 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1535 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1536 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1537 };
1538 pbb7 { /* NC */
1539 nvidia,pins = "pbb7";
1540 nvidia,function = "rsvd2";
1541 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1542 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1543 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1544 };
1545 pcc1 { /* NC */
1546 nvidia,pins = "pcc1";
1547 nvidia,function = "rsvd2";
1548 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1549 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1550 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1551 };
1552 pcc2 { /* NC */
1553 nvidia,pins = "pcc2";
1554 nvidia,function = "rsvd2";
1555 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1556 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1557 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1558 };
1559 clk3_req_pee1 { /* NC */
1560 nvidia,pins = "clk3_req_pee1";
1561 nvidia,function = "rsvd2";
1562 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1563 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1564 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1565 };
1566 dap_mclk1_req_pee2 { /* NC */
1567 nvidia,pins = "dap_mclk1_req_pee2";
1568 nvidia,function = "rsvd4";
1569 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1570 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1571 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1572 };
1573 };
1574 };
1575
1576 serial@70006040 {
1577 compatible = "nvidia,tegra124-hsuart";
1578 };
1579
1580 serial@70006200 {
1581 compatible = "nvidia,tegra124-hsuart";
1582 };
1583
1584 serial@70006300 {
1585 compatible = "nvidia,tegra124-hsuart";
1586 };
1587
1588 hdmi_ddc: i2c@7000c400 {
1589 clock-frequency = <100000>;
1590 };
1591
1592 /* PWR_I2C: power I2C to audio codec, PMIC and temperature sensor */
1593 i2c@7000d000 {
1594 status = "okay";
1595 clock-frequency = <400000>;
1596
1597 /* SGTL5000 audio codec */
1598 sgtl5000: codec@0a {
1599 compatible = "fsl,sgtl5000";
1600 reg = <0x0a>;
1601 VDDA-supply = <&reg_3v3>;
1602 VDDIO-supply = <&vddio_1v8>;
1603 clocks = <&tegra_car TEGRA124_CLK_EXTERN1>;
1604 };
1605
1606 pmic: pmic@40 {
1607 compatible = "ams,as3722";
1608 reg = <0x40>;
1609 interrupts = <0 86 IRQ_TYPE_LEVEL_HIGH>;
1610
1611 ams,system-power-controller;
1612
1613 #interrupt-cells = <2>;
1614 interrupt-controller;
1615
1616 gpio-controller;
1617 #gpio-cells = <2>;
1618
1619 pinctrl-names = "default";
1620 pinctrl-0 = <&as3722_default>;
1621
1622 as3722_default: pinmux {
1623 gpio2_7 {
1624 pins = "gpio2", /* PWR_EN_+V3.3 */
1625 "gpio7"; /* +V1.6_LPO */
1626 function = "gpio";
1627 bias-pull-up;
1628 };
1629
1630 gpio1_3_4_5_6 {
1631 pins = "gpio1", "gpio3", "gpio4",
1632 "gpio5", "gpio6";
1633 bias-high-impedance;
1634 };
1635 };
1636
1637 regulators {
1638 vsup-sd2-supply = <&reg_3v3>;
1639 vsup-sd3-supply = <&reg_3v3>;
1640 vsup-sd4-supply = <&reg_3v3>;
1641 vsup-sd5-supply = <&reg_3v3>;
1642 vin-ldo0-supply = <&vddio_ddr_1v35>;
1643 vin-ldo1-6-supply = <&reg_3v3>;
1644 vin-ldo2-5-7-supply = <&vddio_1v8>;
1645 vin-ldo3-4-supply = <&reg_3v3>;
1646 vin-ldo9-10-supply = <&reg_3v3>;
1647 vin-ldo11-supply = <&reg_3v3>;
1648
1649 vdd_cpu: sd0 {
1650 regulator-name = "+VDD_CPU_AP";
1651 regulator-min-microvolt = <700000>;
1652 regulator-max-microvolt = <1400000>;
1653 regulator-min-microamp = <3500000>;
1654 regulator-max-microamp = <3500000>;
1655 regulator-always-on;
1656 regulator-boot-on;
1657 ams,ext-control = <2>;
1658 };
1659
1660 sd1 {
1661 regulator-name = "+VDD_CORE";
1662 regulator-min-microvolt = <700000>;
1663 regulator-max-microvolt = <1350000>;
1664 regulator-min-microamp = <2500000>;
1665 regulator-max-microamp = <4000000>;
1666 regulator-always-on;
1667 regulator-boot-on;
1668 ams,ext-control = <1>;
1669 };
1670
1671 vddio_ddr_1v35: sd2 {
1672 regulator-name =
1673 "+V1.35_VDDIO_DDR(sd2)";
1674 regulator-min-microvolt = <1350000>;
1675 regulator-max-microvolt = <1350000>;
1676 regulator-always-on;
1677 regulator-boot-on;
1678 };
1679
1680 sd3 {
1681 regulator-name =
1682 "+V1.35_VDDIO_DDR(sd3)";
1683 regulator-min-microvolt = <1350000>;
1684 regulator-max-microvolt = <1350000>;
1685 regulator-always-on;
1686 regulator-boot-on;
1687 };
1688
1689 vdd_1v05: sd4 {
1690 regulator-name = "+V1.05";
1691 regulator-min-microvolt = <1050000>;
1692 regulator-max-microvolt = <1050000>;
1693 };
1694
1695 vddio_1v8: sd5 {
1696 regulator-name = "+V1.8";
1697 regulator-min-microvolt = <1800000>;
1698 regulator-max-microvolt = <1800000>;
1699 regulator-boot-on;
1700 regulator-always-on;
1701 };
1702
1703 vdd_gpu: sd6 {
1704 regulator-name = "+VDD_GPU_AP";
1705 regulator-min-microvolt = <650000>;
1706 regulator-max-microvolt = <1200000>;
1707 regulator-min-microamp = <3500000>;
1708 regulator-max-microamp = <3500000>;
1709 regulator-boot-on;
1710 regulator-always-on;
1711 };
1712
1713 avdd_1v05: ldo0 {
1714 regulator-name = "+V1.05_AVDD";
1715 regulator-min-microvolt = <1050000>;
1716 regulator-max-microvolt = <1050000>;
1717 regulator-boot-on;
1718 regulator-always-on;
1719 ams,ext-control = <1>;
1720 };
1721
1722 vddio_sdmmc1: ldo1 {
1723 regulator-name = "VDDIO_SDMMC1";
1724 regulator-min-microvolt = <1800000>;
1725 regulator-max-microvolt = <3300000>;
1726 };
1727
1728 ldo2 {
1729 regulator-name = "+V1.2";
1730 regulator-min-microvolt = <1200000>;
1731 regulator-max-microvolt = <1200000>;
1732 regulator-boot-on;
1733 regulator-always-on;
1734 };
1735
1736 ldo3 {
1737 regulator-name = "+V1.05_RTC";
1738 regulator-min-microvolt = <1000000>;
1739 regulator-max-microvolt = <1000000>;
1740 regulator-boot-on;
1741 regulator-always-on;
1742 ams,enable-tracking;
1743 };
1744
1745 /* 1.8V for LVDS, 3.3V for eDP */
1746 ldo4 {
1747 regulator-name = "AVDD_LVDS0_PLL";
1748 regulator-min-microvolt = <1800000>;
1749 regulator-max-microvolt = <1800000>;
1750 };
1751
1752 /* LDO5 not used */
1753
1754 vddio_sdmmc3: ldo6 {
1755 regulator-name = "VDDIO_SDMMC3";
1756 regulator-min-microvolt = <1800000>;
1757 regulator-max-microvolt = <3300000>;
1758 };
1759
1760 /* LDO7 not used */
1761
1762 ldo9 {
1763 regulator-name = "+V3.3_ETH(ldo9)";
1764 regulator-min-microvolt = <3300000>;
1765 regulator-max-microvolt = <3300000>;
1766 regulator-always-on;
1767 };
1768
1769 ldo10 {
1770 regulator-name = "+V3.3_ETH(ldo10)";
1771 regulator-min-microvolt = <3300000>;
1772 regulator-max-microvolt = <3300000>;
1773 regulator-always-on;
1774 };
1775
1776 ldo11 {
1777 regulator-name = "+V1.8_VPP_FUSE";
1778 regulator-min-microvolt = <1800000>;
1779 regulator-max-microvolt = <1800000>;
1780 };
1781 };
1782 };
1783
1784 /*
1785 * TMP451 temperature sensor
1786 * Note: THERM_N directly connected to AS3722 PMIC THERM
1787 */
1788 temperature-sensor@4c {
1789 compatible = "ti,tmp451";
1790 reg = <0x4c>;
1791 interrupt-parent = <&gpio>;
1792 interrupts = <TEGRA_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
1793
1794 #thermal-sensor-cells = <1>;
1795 };
1796 };
1797
1798 /* SPI2: MCU SPI */
1799 spi@7000d600 {
1800 status = "okay";
1801 spi-max-frequency = <25000000>;
1802 };
1803
1804 pmc@7000e400 {
1805 nvidia,invert-interrupt;
1806 nvidia,suspend-mode = <1>;
1807 nvidia,cpu-pwr-good-time = <500>;
1808 nvidia,cpu-pwr-off-time = <300>;
1809 nvidia,core-pwr-good-time = <641 3845>;
1810 nvidia,core-pwr-off-time = <61036>;
1811 nvidia,core-power-req-active-high;
1812 nvidia,sys-clock-req-active-high;
1813
1814 /* Set power_off bit in ResetControl register of AS3722 PMIC */
1815 i2c-thermtrip {
1816 nvidia,i2c-controller-id = <4>;
1817 nvidia,bus-addr = <0x40>;
1818 nvidia,reg-addr = <0x36>;
1819 nvidia,reg-data = <0x2>;
1820 };
1821 };
1822
1823 sata@70020000 {
1824 phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>;
1825 phy-names = "sata-0";
1826
1827 avdd-supply = <&vdd_1v05>;
1828 hvdd-supply = <&reg_3v3>;
1829 vddio-supply = <&vdd_1v05>;
1830 };
1831
1832 usb@70090000 {
1833 /* USBO1, USBO1 (SS), USBH2, USBH4 and USBH4 (SS) */
1834 phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>,
1835 <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>,
1836 <&{/padctl@7009f000/pads/usb2/lanes/usb2-1}>,
1837 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>,
1838 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>;
1839 phy-names = "usb2-0", "usb3-1", "usb2-1", "usb2-2", "usb3-0";
1840
1841 avddio-pex-supply = <&vdd_1v05>;
1842 avdd-pll-erefe-supply = <&avdd_1v05>;
1843 avdd-pll-utmip-supply = <&vddio_1v8>;
1844 avdd-usb-ss-pll-supply = <&vdd_1v05>;
1845 avdd-usb-supply = <&reg_3v3>;
1846 dvddio-pex-supply = <&vdd_1v05>;
1847 hvdd-usb-ss-pll-e-supply = <&reg_3v3>;
1848 hvdd-usb-ss-supply = <&reg_3v3>;
1849 };
1850
1851 padctl@7009f000 {
1852 pads {
1853 usb2 {
1854 status = "okay";
1855
1856 lanes {
1857 usb2-0 {
1858 nvidia,function = "xusb";
1859 status = "okay";
1860 };
1861
1862 usb2-1 {
1863 nvidia,function = "xusb";
1864 status = "okay";
1865 };
1866
1867 usb2-2 {
1868 nvidia,function = "xusb";
1869 status = "okay";
1870 };
1871 };
1872 };
1873
1874 pcie {
1875 status = "okay";
1876
1877 lanes {
1878 pcie-0 {
1879 nvidia,function = "usb3-ss";
1880 status = "okay";
1881 };
1882
1883 pcie-1 {
1884 nvidia,function = "usb3-ss";
1885 status = "okay";
1886 };
1887
1888 pcie-2 {
1889 nvidia,function = "pcie";
1890 status = "okay";
1891 };
1892
1893 pcie-3 {
1894 nvidia,function = "pcie";
1895 status = "okay";
1896 };
1897
1898 pcie-4 {
1899 nvidia,function = "pcie";
1900 status = "okay";
1901 };
1902 };
1903 };
1904
1905 sata {
1906 status = "okay";
1907
1908 lanes {
1909 sata-0 {
1910 nvidia,function = "sata";
1911 status = "okay";
1912 };
1913 };
1914 };
1915 };
1916
1917 ports {
1918 /* USBO1 */
1919 usb2-0 {
1920 status = "okay";
1921 mode = "otg";
1922
1923 vbus-supply = <&reg_usbo1_vbus>;
1924 };
1925
1926 /* USBH2 */
1927 usb2-1 {
1928 status = "okay";
1929 mode = "host";
1930
1931 vbus-supply = <&reg_usbh_vbus>;
1932 };
1933
1934 /* USBH4 */
1935 usb2-2 {
1936 status = "okay";
1937 mode = "host";
1938
1939 vbus-supply = <&reg_usbh_vbus>;
1940 };
1941
1942 usb3-0 {
1943 nvidia,usb2-companion = <2>;
1944 status = "okay";
1945 };
1946
1947 usb3-1 {
1948 nvidia,usb2-companion = <0>;
1949 status = "okay";
1950 };
1951 };
1952 };
1953
1954 /* eMMC */
1955 sdhci@700b0600 {
1956 status = "okay";
1957 bus-width = <8>;
1958 non-removable;
1959 };
1960
1961 /* CPU DFLL clock */
1962 clock@70110000 {
1963 status = "okay";
1964 vdd-cpu-supply = <&vdd_cpu>;
1965 nvidia,i2c-fs-rate = <400000>;
1966 };
1967
1968 ahub@70300000 {
1969 i2s@70301200 {
1970 status = "okay";
1971 };
1972 };
1973
1974 clocks {
1975 compatible = "simple-bus";
1976 #address-cells = <1>;
1977 #size-cells = <0>;
1978
1979 clk32k_in: clock@0 {
1980 compatible = "fixed-clock";
1981 reg = <0>;
1982 #clock-cells = <0>;
1983 clock-frequency = <32768>;
1984 };
1985 };
1986
1987 cpus {
1988 cpu@0 {
1989 vdd-cpu-supply = <&vdd_cpu>;
1990 };
1991 };
1992
1993 reg_1v05_avdd_hdmi_pll: regulator-1v05-avdd-hdmi-pll {
1994 compatible = "regulator-fixed";
1995 regulator-name = "+V1.05_AVDD_HDMI_PLL";
1996 regulator-min-microvolt = <1050000>;
1997 regulator-max-microvolt = <1050000>;
1998 gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>;
1999 vin-supply = <&vdd_1v05>;
2000 };
2001
2002 reg_3v3_mxm: regulator-3v3-mxm {
2003 compatible = "regulator-fixed";
2004 regulator-name = "+V3.3_MXM";
2005 regulator-min-microvolt = <3300000>;
2006 regulator-max-microvolt = <3300000>;
2007 regulator-always-on;
2008 regulator-boot-on;
2009 };
2010
2011 reg_3v3: regulator-3v3 {
2012 compatible = "regulator-fixed";
2013 regulator-name = "+V3.3";
2014 regulator-min-microvolt = <3300000>;
2015 regulator-max-microvolt = <3300000>;
2016 regulator-always-on;
2017 regulator-boot-on;
2018 /* PWR_EN_+V3.3 */
2019 gpio = <&pmic 2 GPIO_ACTIVE_HIGH>;
2020 enable-active-high;
2021 vin-supply = <&reg_3v3_mxm>;
2022 };
2023
2024 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
2025 compatible = "regulator-fixed";
2026 regulator-name = "+V3.3_AVDD_HDMI";
2027 regulator-min-microvolt = <3300000>;
2028 regulator-max-microvolt = <3300000>;
2029 vin-supply = <&vdd_1v05>;
2030 };
2031
2032 sound {
2033 compatible = "toradex,tegra-audio-sgtl5000-apalis_tk1",
2034 "nvidia,tegra-audio-sgtl5000";
2035 nvidia,model = "Toradex Apalis TK1";
2036 nvidia,audio-routing =
2037 "Headphone Jack", "HP_OUT",
2038 "LINE_IN", "Line In Jack",
2039 "MIC_IN", "Mic Jack";
2040 nvidia,i2s-controller = <&tegra_i2s2>;
2041 nvidia,audio-codec = <&sgtl5000>;
2042 clocks = <&tegra_car TEGRA124_CLK_PLL_A>,
2043 <&tegra_car TEGRA124_CLK_PLL_A_OUT0>,
2044 <&tegra_car TEGRA124_CLK_EXTERN1>;
2045 clock-names = "pll_a", "pll_a_out0", "mclk";
2046 };
2047
2048 thermal-zones {
2049 cpu {
2050 trips {
2051 trip@0 {
2052 temperature = <101000>;
2053 hysteresis = <0>;
2054 type = "critical";
2055 };
2056 };
2057
2058 cooling-maps {
2059 /*
2060 * There are currently no cooling maps because
2061 * there are no cooling devices
2062 */
2063 };
2064 };
2065
2066 mem {
2067 trips {
2068 trip@0 {
2069 temperature = <101000>;
2070 hysteresis = <0>;
2071 type = "critical";
2072 };
2073 };
2074
2075 cooling-maps {
2076 /*
2077 * There are currently no cooling maps because
2078 * there are no cooling devices
2079 */
2080 };
2081 };
2082
2083 gpu {
2084 trips {
2085 trip@0 {
2086 temperature = <101000>;
2087 hysteresis = <0>;
2088 type = "critical";
2089 };
2090 };
2091
2092 cooling-maps {
2093 /*
2094 * There are currently no cooling maps because
2095 * there are no cooling devices
2096 */
2097 };
2098 };
2099 };
2100};
diff --git a/arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi b/arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi
index 2c5cede686dc..accb7055165a 100644
--- a/arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi
+++ b/arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi
@@ -1,5 +1,5 @@
1/ { 1/ {
2 clock@0,60006000 { 2 clock@60006000 {
3 emc-timings-3 { 3 emc-timings-3 {
4 nvidia,ram-code = <3>; 4 nvidia,ram-code = <3>;
5 5
@@ -78,7 +78,7 @@
78 }; 78 };
79 }; 79 };
80 80
81 emc@0,7001b000 { 81 emc@7001b000 {
82 emc-timings-3 { 82 emc-timings-3 {
83 nvidia,ram-code = <3>; 83 nvidia,ram-code = <3>;
84 84
@@ -2101,7 +2101,7 @@
2101 }; 2101 };
2102 }; 2102 };
2103 2103
2104 memory-controller@0,70019000 { 2104 memory-controller@70019000 {
2105 emc-timings-3 { 2105 emc-timings-3 {
2106 nvidia,ram-code = <3>; 2106 nvidia,ram-code = <3>;
2107 2107
diff --git a/arch/arm/boot/dts/tegra124-jetson-tk1.dts b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
index 941f36263c8f..e52b82449a79 100644
--- a/arch/arm/boot/dts/tegra124-jetson-tk1.dts
+++ b/arch/arm/boot/dts/tegra124-jetson-tk1.dts
@@ -10,8 +10,8 @@
10 compatible = "nvidia,jetson-tk1", "nvidia,tegra124"; 10 compatible = "nvidia,jetson-tk1", "nvidia,tegra124";
11 11
12 aliases { 12 aliases {
13 rtc0 = "/i2c@0,7000d000/pmic@40"; 13 rtc0 = "/i2c@7000d000/pmic@40";
14 rtc1 = "/rtc@0,7000e000"; 14 rtc1 = "/rtc@7000e000";
15 15
16 /* This order keeps the mapping DB9 connector <-> ttyS0 */ 16 /* This order keeps the mapping DB9 connector <-> ttyS0 */
17 serial0 = &uartd; 17 serial0 = &uartd;
@@ -27,7 +27,7 @@
27 reg = <0x0 0x80000000 0x0 0x80000000>; 27 reg = <0x0 0x80000000 0x0 0x80000000>;
28 }; 28 };
29 29
30 pcie-controller@0,01003000 { 30 pcie-controller@01003000 {
31 status = "okay"; 31 status = "okay";
32 32
33 avddio-pex-supply = <&vdd_1v05_run>; 33 avddio-pex-supply = <&vdd_1v05_run>;
@@ -40,21 +40,21 @@
40 40
41 /* Mini PCIe */ 41 /* Mini PCIe */
42 pci@1,0 { 42 pci@1,0 {
43 phys = <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-4}>; 43 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-4}>;
44 phy-names = "pcie-0"; 44 phy-names = "pcie-0";
45 status = "okay"; 45 status = "okay";
46 }; 46 };
47 47
48 /* Gigabit Ethernet */ 48 /* Gigabit Ethernet */
49 pci@2,0 { 49 pci@2,0 {
50 phys = <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-2}>; 50 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
51 phy-names = "pcie-0"; 51 phy-names = "pcie-0";
52 status = "okay"; 52 status = "okay";
53 }; 53 };
54 }; 54 };
55 55
56 host1x@0,50000000 { 56 host1x@50000000 {
57 hdmi@0,54280000 { 57 hdmi@54280000 {
58 status = "okay"; 58 status = "okay";
59 59
60 hdmi-supply = <&vdd_5v0_hdmi>; 60 hdmi-supply = <&vdd_5v0_hdmi>;
@@ -75,7 +75,7 @@
75 vdd-supply = <&vdd_gpu>; 75 vdd-supply = <&vdd_gpu>;
76 }; 76 };
77 77
78 pinmux: pinmux@0,70000868 { 78 pinmux: pinmux@70000868 {
79 pinctrl-names = "boot"; 79 pinctrl-names = "boot";
80 pinctrl-0 = <&state_boot>; 80 pinctrl-0 = <&state_boot>;
81 81
@@ -1356,14 +1356,6 @@
1356 nvidia,tristate = <TEGRA_PIN_DISABLE>; 1356 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1357 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1357 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1358 }; 1358 };
1359 owr {
1360 nvidia,pins = "owr";
1361 nvidia,function = "rsvd2";
1362 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1363 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1364 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1365 nvidia,rcv-sel = <TEGRA_PIN_DISABLE>;
1366 };
1367 clk_32k_in { 1359 clk_32k_in {
1368 nvidia,pins = "clk_32k_in"; 1360 nvidia,pins = "clk_32k_in";
1369 nvidia,function = "clk"; 1361 nvidia,function = "clk";
@@ -1378,6 +1370,10 @@
1378 nvidia,tristate = <TEGRA_PIN_DISABLE>; 1370 nvidia,tristate = <TEGRA_PIN_DISABLE>;
1379 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1371 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1380 }; 1372 };
1373 dsi_b {
1374 nvidia,pins = "mipi_pad_ctrl_dsi_b";
1375 nvidia,function = "dsi_b";
1376 };
1381 }; 1377 };
1382 }; 1378 };
1383 1379
@@ -1404,12 +1400,12 @@
1404 }; 1400 };
1405 1401
1406 /* DB9 serial port */ 1402 /* DB9 serial port */
1407 serial@0,70006300 { 1403 serial@70006300 {
1408 status = "okay"; 1404 status = "okay";
1409 }; 1405 };
1410 1406
1411 /* Expansion GEN1_I2C_*, mini-PCIe I2C, on-board components */ 1407 /* Expansion GEN1_I2C_*, mini-PCIe I2C, on-board components */
1412 i2c@0,7000c000 { 1408 i2c@7000c000 {
1413 status = "okay"; 1409 status = "okay";
1414 clock-frequency = <100000>; 1410 clock-frequency = <100000>;
1415 1411
@@ -1437,25 +1433,25 @@
1437 }; 1433 };
1438 1434
1439 /* Expansion GEN2_I2C_* */ 1435 /* Expansion GEN2_I2C_* */
1440 i2c@0,7000c400 { 1436 i2c@7000c400 {
1441 status = "okay"; 1437 status = "okay";
1442 clock-frequency = <100000>; 1438 clock-frequency = <100000>;
1443 }; 1439 };
1444 1440
1445 /* Expansion CAM_I2C_* */ 1441 /* Expansion CAM_I2C_* */
1446 i2c@0,7000c500 { 1442 i2c@7000c500 {
1447 status = "okay"; 1443 status = "okay";
1448 clock-frequency = <100000>; 1444 clock-frequency = <100000>;
1449 }; 1445 };
1450 1446
1451 /* HDMI DDC */ 1447 /* HDMI DDC */
1452 hdmi_ddc: i2c@0,7000c700 { 1448 hdmi_ddc: i2c@7000c700 {
1453 status = "okay"; 1449 status = "okay";
1454 clock-frequency = <100000>; 1450 clock-frequency = <100000>;
1455 }; 1451 };
1456 1452
1457 /* Expansion PWR_I2C_*, on-board components */ 1453 /* Expansion PWR_I2C_*, on-board components */
1458 i2c@0,7000d000 { 1454 i2c@7000d000 {
1459 status = "okay"; 1455 status = "okay";
1460 clock-frequency = <400000>; 1456 clock-frequency = <400000>;
1461 1457
@@ -1646,12 +1642,12 @@
1646 }; 1642 };
1647 1643
1648 /* Expansion TS_SPI_* */ 1644 /* Expansion TS_SPI_* */
1649 spi@0,7000d400 { 1645 spi@7000d400 {
1650 status = "okay"; 1646 status = "okay";
1651 }; 1647 };
1652 1648
1653 /* Internal SPI */ 1649 /* Internal SPI */
1654 spi@0,7000da00 { 1650 spi@7000da00 {
1655 status = "okay"; 1651 status = "okay";
1656 spi-max-frequency = <25000000>; 1652 spi-max-frequency = <25000000>;
1657 spi-flash@0 { 1653 spi-flash@0 {
@@ -1661,7 +1657,7 @@
1661 }; 1657 };
1662 }; 1658 };
1663 1659
1664 pmc@0,7000e400 { 1660 pmc@7000e400 {
1665 nvidia,invert-interrupt; 1661 nvidia,invert-interrupt;
1666 nvidia,suspend-mode = <1>; 1662 nvidia,suspend-mode = <1>;
1667 nvidia,cpu-pwr-good-time = <500>; 1663 nvidia,cpu-pwr-good-time = <500>;
@@ -1680,10 +1676,10 @@
1680 }; 1676 };
1681 1677
1682 /* Serial ATA */ 1678 /* Serial ATA */
1683 sata@0,70020000 { 1679 sata@70020000 {
1684 status = "okay"; 1680 status = "okay";
1685 1681
1686 phys = <&{/padctl@0,7009f000/pads/sata/lanes/sata-0}>; 1682 phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>;
1687 phy-names = "sata-0"; 1683 phy-names = "sata-0";
1688 1684
1689 hvdd-supply = <&vdd_3v3_lp0>; 1685 hvdd-supply = <&vdd_3v3_lp0>;
@@ -1694,15 +1690,15 @@
1694 target-12v-supply = <&vdd_12v0_sata>; 1690 target-12v-supply = <&vdd_12v0_sata>;
1695 }; 1691 };
1696 1692
1697 hda@0,70030000 { 1693 hda@70030000 {
1698 status = "okay"; 1694 status = "okay";
1699 }; 1695 };
1700 1696
1701 usb@0,70090000 { 1697 usb@70090000 {
1702 phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-0}>, /* Micro A/B */ 1698 phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>, /* Micro A/B */
1703 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* Mini PCIe */ 1699 <&{/padctl@7009f000/pads/usb2/lanes/usb2-1}>, /* Mini PCIe */
1704 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* USB3 */ 1700 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>, /* USB3 */
1705 <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>; /* USB3 */ 1701 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>; /* USB3 */
1706 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0"; 1702 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0";
1707 1703
1708 avddio-pex-supply = <&vdd_1v05_run>; 1704 avddio-pex-supply = <&vdd_1v05_run>;
@@ -1717,7 +1713,7 @@
1717 status = "okay"; 1713 status = "okay";
1718 }; 1714 };
1719 1715
1720 padctl@0,7009f000 { 1716 padctl@7009f000 {
1721 status = "okay"; 1717 status = "okay";
1722 1718
1723 pads { 1719 pads {
@@ -1804,7 +1800,7 @@
1804 }; 1800 };
1805 1801
1806 /* SD card */ 1802 /* SD card */
1807 sdhci@0,700b0400 { 1803 sdhci@700b0400 {
1808 status = "okay"; 1804 status = "okay";
1809 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 1805 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
1810 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>; 1806 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
@@ -1814,40 +1810,40 @@
1814 }; 1810 };
1815 1811
1816 /* eMMC */ 1812 /* eMMC */
1817 sdhci@0,700b0600 { 1813 sdhci@700b0600 {
1818 status = "okay"; 1814 status = "okay";
1819 bus-width = <8>; 1815 bus-width = <8>;
1820 non-removable; 1816 non-removable;
1821 }; 1817 };
1822 1818
1823 /* CPU DFLL clock */ 1819 /* CPU DFLL clock */
1824 clock@0,70110000 { 1820 clock@70110000 {
1825 status = "okay"; 1821 status = "okay";
1826 vdd-cpu-supply = <&vdd_cpu>; 1822 vdd-cpu-supply = <&vdd_cpu>;
1827 nvidia,i2c-fs-rate = <400000>; 1823 nvidia,i2c-fs-rate = <400000>;
1828 }; 1824 };
1829 1825
1830 ahub@0,70300000 { 1826 ahub@70300000 {
1831 i2s@0,70301100 { 1827 i2s@70301100 {
1832 status = "okay"; 1828 status = "okay";
1833 }; 1829 };
1834 }; 1830 };
1835 1831
1836 /* mini-PCIe USB */ 1832 /* mini-PCIe USB */
1837 usb@0,7d004000 { 1833 usb@7d004000 {
1838 status = "okay"; 1834 status = "okay";
1839 }; 1835 };
1840 1836
1841 usb-phy@0,7d004000 { 1837 usb-phy@7d004000 {
1842 status = "okay"; 1838 status = "okay";
1843 }; 1839 };
1844 1840
1845 /* USB A connector */ 1841 /* USB A connector */
1846 usb@0,7d008000 { 1842 usb@7d008000 {
1847 status = "okay"; 1843 status = "okay";
1848 }; 1844 };
1849 1845
1850 usb-phy@0,7d008000 { 1846 usb-phy@7d008000 {
1851 status = "okay"; 1847 status = "okay";
1852 vbus-supply = <&vdd_usb3_vbus>; 1848 vbus-supply = <&vdd_usb3_vbus>;
1853 }; 1849 };
@@ -2049,7 +2045,7 @@
2049 thermal-zones { 2045 thermal-zones {
2050 cpu { 2046 cpu {
2051 trips { 2047 trips {
2052 trip@0 { 2048 trip {
2053 temperature = <101000>; 2049 temperature = <101000>;
2054 hysteresis = <0>; 2050 hysteresis = <0>;
2055 type = "critical"; 2051 type = "critical";
@@ -2063,7 +2059,7 @@
2063 2059
2064 mem { 2060 mem {
2065 trips { 2061 trips {
2066 trip@0 { 2062 trip {
2067 temperature = <101000>; 2063 temperature = <101000>;
2068 hysteresis = <0>; 2064 hysteresis = <0>;
2069 type = "critical"; 2065 type = "critical";
@@ -2077,7 +2073,7 @@
2077 2073
2078 gpu { 2074 gpu {
2079 trips { 2075 trips {
2080 trip@0 { 2076 trip {
2081 temperature = <101000>; 2077 temperature = <101000>;
2082 hysteresis = <0>; 2078 hysteresis = <0>;
2083 type = "critical"; 2079 type = "critical";
diff --git a/arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi b/arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi
index 1a5748d05dda..4458e86b2769 100644
--- a/arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi
+++ b/arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi
@@ -1,5 +1,5 @@
1/ { 1/ {
2 clock@0,60006000 { 2 clock@60006000 {
3 emc-timings-1 { 3 emc-timings-1 {
4 nvidia,ram-code = <1>; 4 nvidia,ram-code = <1>;
5 5
@@ -67,7 +67,7 @@
67 }; 67 };
68 }; 68 };
69 69
70 emc@0,7001b000 { 70 emc@7001b000 {
71 emc-timings-1 { 71 emc-timings-1 {
72 nvidia,ram-code = <1>; 72 nvidia,ram-code = <1>;
73 73
@@ -1754,7 +1754,7 @@
1754 }; 1754 };
1755 }; 1755 };
1756 1756
1757 memory-controller@0,70019000 { 1757 memory-controller@70019000 {
1758 emc-timings-1 { 1758 emc-timings-1 {
1759 nvidia,ram-code = <1>; 1759 nvidia,ram-code = <1>;
1760 1760
diff --git a/arch/arm/boot/dts/tegra124-nyan-big.dts b/arch/arm/boot/dts/tegra124-nyan-big.dts
index 2d21253ea4e3..67d7cfb32541 100644
--- a/arch/arm/boot/dts/tegra124-nyan-big.dts
+++ b/arch/arm/boot/dts/tegra124-nyan-big.dts
@@ -15,7 +15,7 @@
15 ddc-i2c-bus = <&dpaux>; 15 ddc-i2c-bus = <&dpaux>;
16 }; 16 };
17 17
18 sdhci@0,700b0400 { /* SD Card on this bus */ 18 sdhci@700b0400 { /* SD Card on this bus */
19 wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>; 19 wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>;
20 }; 20 };
21 21
@@ -26,7 +26,7 @@
26 nvidia,model = "GoogleNyanBig"; 26 nvidia,model = "GoogleNyanBig";
27 }; 27 };
28 28
29 pinmux@0,70000868 { 29 pinmux@70000868 {
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
31 pinctrl-0 = <&pinmux_default>; 31 pinctrl-0 = <&pinmux_default>;
32 32
diff --git a/arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi b/arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi
index 9ecd108f56cf..4e7b59e25728 100644
--- a/arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi
+++ b/arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi
@@ -1,5 +1,5 @@
1/ { 1/ {
2 clock@0,60006000 { 2 clock@60006000 {
3 emc-timings-1 { 3 emc-timings-1 {
4 nvidia,ram-code = <1>; 4 nvidia,ram-code = <1>;
5 5
@@ -67,7 +67,7 @@
67 }; 67 };
68 }; 68 };
69 69
70 emc@0,7001b000 { 70 emc@7001b000 {
71 emc-timings-1 { 71 emc-timings-1 {
72 nvidia,ram-code = <1>; 72 nvidia,ram-code = <1>;
73 73
@@ -1754,7 +1754,7 @@
1754 }; 1754 };
1755 }; 1755 };
1756 1756
1757 memory-controller@0,70019000 { 1757 memory-controller@70019000 {
1758 emc-timings-1 { 1758 emc-timings-1 {
1759 nvidia,ram-code = <1>; 1759 nvidia,ram-code = <1>;
1760 1760
diff --git a/arch/arm/boot/dts/tegra124-nyan-blaze.dts b/arch/arm/boot/dts/tegra124-nyan-blaze.dts
index 0d30c514ffad..c9582361c26e 100644
--- a/arch/arm/boot/dts/tegra124-nyan-blaze.dts
+++ b/arch/arm/boot/dts/tegra124-nyan-blaze.dts
@@ -22,7 +22,7 @@
22 nvidia,model = "GoogleNyanBlaze"; 22 nvidia,model = "GoogleNyanBlaze";
23 }; 23 };
24 24
25 pinmux@0,70000868 { 25 pinmux@70000868 {
26 pinctrl-names = "default"; 26 pinctrl-names = "default";
27 pinctrl-0 = <&pinmux_default>; 27 pinctrl-0 = <&pinmux_default>;
28 28
diff --git a/arch/arm/boot/dts/tegra124-nyan.dtsi b/arch/arm/boot/dts/tegra124-nyan.dtsi
index 0710a600cc69..271505e0715f 100644
--- a/arch/arm/boot/dts/tegra124-nyan.dtsi
+++ b/arch/arm/boot/dts/tegra124-nyan.dtsi
@@ -3,8 +3,8 @@
3 3
4/ { 4/ {
5 aliases { 5 aliases {
6 rtc0 = "/i2c@0,7000d000/pmic@40"; 6 rtc0 = "/i2c@7000d000/pmic@40";
7 rtc1 = "/rtc@0,7000e000"; 7 rtc1 = "/rtc@7000e000";
8 serial0 = &uarta; 8 serial0 = &uarta;
9 }; 9 };
10 10
@@ -16,8 +16,8 @@
16 reg = <0x0 0x80000000 0x0 0x80000000>; 16 reg = <0x0 0x80000000 0x0 0x80000000>;
17 }; 17 };
18 18
19 host1x@0,50000000 { 19 host1x@50000000 {
20 hdmi@0,54280000 { 20 hdmi@54280000 {
21 status = "okay"; 21 status = "okay";
22 22
23 vdd-supply = <&vdd_3v3_hdmi>; 23 vdd-supply = <&vdd_3v3_hdmi>;
@@ -29,29 +29,29 @@
29 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 29 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
30 }; 30 };
31 31
32 sor@0,54540000 { 32 sor@54540000 {
33 status = "okay"; 33 status = "okay";
34 34
35 nvidia,dpaux = <&dpaux>; 35 nvidia,dpaux = <&dpaux>;
36 nvidia,panel = <&panel>; 36 nvidia,panel = <&panel>;
37 }; 37 };
38 38
39 dpaux@0,545c0000 { 39 dpaux@545c0000 {
40 vdd-supply = <&vdd_3v3_panel>; 40 vdd-supply = <&vdd_3v3_panel>;
41 status = "okay"; 41 status = "okay";
42 }; 42 };
43 }; 43 };
44 44
45 serial@0,70006000 { 45 serial@70006000 {
46 /* Debug connector on the bottom of the board near SD card. */ 46 /* Debug connector on the bottom of the board near SD card. */
47 status = "okay"; 47 status = "okay";
48 }; 48 };
49 49
50 pwm@0,7000a000 { 50 pwm@7000a000 {
51 status = "okay"; 51 status = "okay";
52 }; 52 };
53 53
54 i2c@0,7000c000 { 54 i2c@7000c000 {
55 status = "okay"; 55 status = "okay";
56 clock-frequency = <100000>; 56 clock-frequency = <100000>;
57 57
@@ -72,7 +72,7 @@
72 }; 72 };
73 }; 73 };
74 74
75 i2c@0,7000c400 { 75 i2c@7000c400 {
76 status = "okay"; 76 status = "okay";
77 clock-frequency = <100000>; 77 clock-frequency = <100000>;
78 78
@@ -85,7 +85,7 @@
85 }; 85 };
86 }; 86 };
87 87
88 i2c@0,7000c500 { 88 i2c@7000c500 {
89 status = "okay"; 89 status = "okay";
90 clock-frequency = <400000>; 90 clock-frequency = <400000>;
91 91
@@ -95,12 +95,12 @@
95 }; 95 };
96 }; 96 };
97 97
98 hdmi_ddc: i2c@0,7000c700 { 98 hdmi_ddc: i2c@7000c700 {
99 status = "okay"; 99 status = "okay";
100 clock-frequency = <100000>; 100 clock-frequency = <100000>;
101 }; 101 };
102 102
103 i2c@0,7000d000 { 103 i2c@7000d000 {
104 status = "okay"; 104 status = "okay";
105 clock-frequency = <400000>; 105 clock-frequency = <400000>;
106 106
@@ -301,7 +301,7 @@
301 }; 301 };
302 }; 302 };
303 303
304 spi@0,7000d400 { 304 spi@7000d400 {
305 status = "okay"; 305 status = "okay";
306 306
307 cros_ec: cros-ec@0 { 307 cros_ec: cros-ec@0 {
@@ -342,7 +342,7 @@
342 }; 342 };
343 }; 343 };
344 344
345 spi@0,7000da00 { 345 spi@7000da00 {
346 status = "okay"; 346 status = "okay";
347 spi-max-frequency = <25000000>; 347 spi-max-frequency = <25000000>;
348 348
@@ -353,7 +353,7 @@
353 }; 353 };
354 }; 354 };
355 355
356 pmc@0,7000e400 { 356 pmc@7000e400 {
357 nvidia,invert-interrupt; 357 nvidia,invert-interrupt;
358 nvidia,suspend-mode = <0>; 358 nvidia,suspend-mode = <0>;
359 nvidia,cpu-pwr-good-time = <500>; 359 nvidia,cpu-pwr-good-time = <500>;
@@ -364,16 +364,16 @@
364 nvidia,sys-clock-req-active-high; 364 nvidia,sys-clock-req-active-high;
365 }; 365 };
366 366
367 hda@0,70030000 { 367 hda@70030000 {
368 status = "okay"; 368 status = "okay";
369 }; 369 };
370 370
371 usb@0,70090000 { 371 usb@70090000 {
372 phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-0}>, /* 1st USB A */ 372 phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>, /* 1st USB A */
373 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* Internal USB */ 373 <&{/padctl@7009f000/pads/usb2/lanes/usb2-1}>, /* Internal USB */
374 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* 2nd USB A */ 374 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>, /* 2nd USB A */
375 <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>, /* 1st USB A */ 375 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>, /* 1st USB A */
376 <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-1}>; /* 2nd USB A */ 376 <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>; /* 2nd USB A */
377 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1"; 377 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1";
378 378
379 avddio-pex-supply = <&vdd_1v05_run>; 379 avddio-pex-supply = <&vdd_1v05_run>;
@@ -388,7 +388,7 @@
388 status = "okay"; 388 status = "okay";
389 }; 389 };
390 390
391 padctl@0,7009f000 { 391 padctl@7009f000 {
392 status = "okay"; 392 status = "okay";
393 393
394 pads { 394 pads {
@@ -467,7 +467,7 @@
467 reset-gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>; 467 reset-gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>;
468 }; 468 };
469 469
470 sdhci@0,700b0000 { /* WiFi/BT on this bus */ 470 sdhci@700b0000 { /* WiFi/BT on this bus */
471 status = "okay"; 471 status = "okay";
472 bus-width = <4>; 472 bus-width = <4>;
473 no-1-8-v; 473 no-1-8-v;
@@ -478,7 +478,7 @@
478 keep-power-in-suspend; 478 keep-power-in-suspend;
479 }; 479 };
480 480
481 sdhci@0,700b0400 { /* SD Card on this bus */ 481 sdhci@700b0400 { /* SD Card on this bus */
482 status = "okay"; 482 status = "okay";
483 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 483 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
484 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>; 484 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
@@ -487,7 +487,7 @@
487 vqmmc-supply = <&vddio_sdmmc3>; 487 vqmmc-supply = <&vddio_sdmmc3>;
488 }; 488 };
489 489
490 sdhci@0,700b0600 { /* eMMC on this bus */ 490 sdhci@700b0600 { /* eMMC on this bus */
491 status = "okay"; 491 status = "okay";
492 bus-width = <8>; 492 bus-width = <8>;
493 no-1-8-v; 493 no-1-8-v;
@@ -495,14 +495,14 @@
495 }; 495 };
496 496
497 /* CPU DFLL clock */ 497 /* CPU DFLL clock */
498 clock@0,70110000 { 498 clock@70110000 {
499 status = "disabled"; 499 status = "disabled";
500 vdd-cpu-supply = <&vdd_cpu>; 500 vdd-cpu-supply = <&vdd_cpu>;
501 nvidia,i2c-fs-rate = <400000>; 501 nvidia,i2c-fs-rate = <400000>;
502 }; 502 };
503 503
504 ahub@0,70300000 { 504 ahub@70300000 {
505 i2s@0,70301100 { 505 i2s@70301100 {
506 status = "okay"; 506 status = "okay";
507 }; 507 };
508 }; 508 };
diff --git a/arch/arm/boot/dts/tegra124-venice2.dts b/arch/arm/boot/dts/tegra124-venice2.dts
index 973446d07182..6e59cec0962b 100644
--- a/arch/arm/boot/dts/tegra124-venice2.dts
+++ b/arch/arm/boot/dts/tegra124-venice2.dts
@@ -8,8 +8,8 @@
8 compatible = "nvidia,venice2", "nvidia,tegra124"; 8 compatible = "nvidia,venice2", "nvidia,tegra124";
9 9
10 aliases { 10 aliases {
11 rtc0 = "/i2c@0,7000d000/pmic@40"; 11 rtc0 = "/i2c@7000d000/pmic@40";
12 rtc1 = "/rtc@0,7000e000"; 12 rtc1 = "/rtc@7000e000";
13 serial0 = &uarta; 13 serial0 = &uarta;
14 }; 14 };
15 15
@@ -21,8 +21,8 @@
21 reg = <0x0 0x80000000 0x0 0x80000000>; 21 reg = <0x0 0x80000000 0x0 0x80000000>;
22 }; 22 };
23 23
24 host1x@0,50000000 { 24 host1x@50000000 {
25 hdmi@0,54280000 { 25 hdmi@54280000 {
26 status = "okay"; 26 status = "okay";
27 27
28 vdd-supply = <&vdd_3v3_hdmi>; 28 vdd-supply = <&vdd_3v3_hdmi>;
@@ -34,14 +34,14 @@
34 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 34 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
35 }; 35 };
36 36
37 sor@0,54540000 { 37 sor@54540000 {
38 status = "okay"; 38 status = "okay";
39 39
40 nvidia,dpaux = <&dpaux>; 40 nvidia,dpaux = <&dpaux>;
41 nvidia,panel = <&panel>; 41 nvidia,panel = <&panel>;
42 }; 42 };
43 43
44 dpaux@0,545c0000 { 44 dpaux@545c0000 {
45 vdd-supply = <&vdd_3v3_panel>; 45 vdd-supply = <&vdd_3v3_panel>;
46 status = "okay"; 46 status = "okay";
47 }; 47 };
@@ -55,7 +55,7 @@
55 vdd-supply = <&vdd_gpu>; 55 vdd-supply = <&vdd_gpu>;
56 }; 56 };
57 57
58 pinmux: pinmux@0,70000868 { 58 pinmux: pinmux@70000868 {
59 pinctrl-names = "boot"; 59 pinctrl-names = "boot";
60 pinctrl-0 = <&pinmux_boot>; 60 pinctrl-0 = <&pinmux_boot>;
61 61
@@ -596,15 +596,15 @@
596 }; 596 };
597 }; 597 };
598 598
599 serial@0,70006000 { 599 serial@70006000 {
600 status = "okay"; 600 status = "okay";
601 }; 601 };
602 602
603 pwm@0,7000a000 { 603 pwm@7000a000 {
604 status = "okay"; 604 status = "okay";
605 }; 605 };
606 606
607 i2c@0,7000c000 { 607 i2c@7000c000 {
608 status = "okay"; 608 status = "okay";
609 clock-frequency = <100000>; 609 clock-frequency = <100000>;
610 610
@@ -616,7 +616,7 @@
616 }; 616 };
617 }; 617 };
618 618
619 i2c@0,7000c400 { 619 i2c@7000c400 {
620 status = "okay"; 620 status = "okay";
621 clock-frequency = <100000>; 621 clock-frequency = <100000>;
622 622
@@ -629,17 +629,17 @@
629 }; 629 };
630 }; 630 };
631 631
632 i2c@0,7000c500 { 632 i2c@7000c500 {
633 status = "okay"; 633 status = "okay";
634 clock-frequency = <100000>; 634 clock-frequency = <100000>;
635 }; 635 };
636 636
637 hdmi_ddc: i2c@0,7000c700 { 637 hdmi_ddc: i2c@7000c700 {
638 status = "okay"; 638 status = "okay";
639 clock-frequency = <100000>; 639 clock-frequency = <100000>;
640 }; 640 };
641 641
642 i2c@0,7000d000 { 642 i2c@7000d000 {
643 status = "okay"; 643 status = "okay";
644 clock-frequency = <400000>; 644 clock-frequency = <400000>;
645 645
@@ -834,7 +834,7 @@
834 }; 834 };
835 }; 835 };
836 836
837 spi@0,7000d400 { 837 spi@7000d400 {
838 status = "okay"; 838 status = "okay";
839 839
840 cros_ec: cros-ec@0 { 840 cros_ec: cros-ec@0 {
@@ -874,7 +874,7 @@
874 }; 874 };
875 }; 875 };
876 876
877 spi@0,7000da00 { 877 spi@7000da00 {
878 status = "okay"; 878 status = "okay";
879 spi-max-frequency = <25000000>; 879 spi-max-frequency = <25000000>;
880 spi-flash@0 { 880 spi-flash@0 {
@@ -884,7 +884,7 @@
884 }; 884 };
885 }; 885 };
886 886
887 pmc@0,7000e400 { 887 pmc@7000e400 {
888 nvidia,invert-interrupt; 888 nvidia,invert-interrupt;
889 nvidia,suspend-mode = <1>; 889 nvidia,suspend-mode = <1>;
890 nvidia,cpu-pwr-good-time = <500>; 890 nvidia,cpu-pwr-good-time = <500>;
@@ -895,16 +895,16 @@
895 nvidia,sys-clock-req-active-high; 895 nvidia,sys-clock-req-active-high;
896 }; 896 };
897 897
898 hda@0,70030000 { 898 hda@70030000 {
899 status = "okay"; 899 status = "okay";
900 }; 900 };
901 901
902 usb@0,70090000 { 902 usb@70090000 {
903 phys = <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-0}>, /* 1st USB A */ 903 phys = <&{/padctl@7009f000/pads/usb2/lanes/usb2-0}>, /* 1st USB A */
904 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-1}>, /* Internal USB */ 904 <&{/padctl@7009f000/pads/usb2/lanes/usb2-1}>, /* Internal USB */
905 <&{/padctl@0,7009f000/pads/usb2/lanes/usb2-2}>, /* 2nd USB A */ 905 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>, /* 2nd USB A */
906 <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-0}>, /* 1st USB A */ 906 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>, /* 1st USB A */
907 <&{/padctl@0,7009f000/pads/pcie/lanes/pcie-1}>; /* 2nd USB A */ 907 <&{/padctl@7009f000/pads/pcie/lanes/pcie-1}>; /* 2nd USB A */
908 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1"; 908 phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1";
909 909
910 avddio-pex-supply = <&vdd_1v05_run>; 910 avddio-pex-supply = <&vdd_1v05_run>;
@@ -919,7 +919,7 @@
919 status = "okay"; 919 status = "okay";
920 }; 920 };
921 921
922 padctl@0,7009f000 { 922 padctl@7009f000 {
923 pads { 923 pads {
924 usb2 { 924 usb2 {
925 status = "okay"; 925 status = "okay";
@@ -998,7 +998,7 @@
998 }; 998 };
999 }; 999 };
1000 1000
1001 sdhci@0,700b0400 { 1001 sdhci@700b0400 {
1002 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; 1002 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
1003 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>; 1003 power-gpios = <&gpio TEGRA_GPIO(R, 0) GPIO_ACTIVE_HIGH>;
1004 wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>; 1004 wp-gpios = <&gpio TEGRA_GPIO(Q, 4) GPIO_ACTIVE_LOW>;
@@ -1007,41 +1007,41 @@
1007 vqmmc-supply = <&vddio_sdmmc3>; 1007 vqmmc-supply = <&vddio_sdmmc3>;
1008 }; 1008 };
1009 1009
1010 sdhci@0,700b0600 { 1010 sdhci@700b0600 {
1011 status = "okay"; 1011 status = "okay";
1012 bus-width = <8>; 1012 bus-width = <8>;
1013 non-removable; 1013 non-removable;
1014 }; 1014 };
1015 1015
1016 ahub@0,70300000 { 1016 ahub@70300000 {
1017 i2s@0,70301100 { 1017 i2s@70301100 {
1018 status = "okay"; 1018 status = "okay";
1019 }; 1019 };
1020 }; 1020 };
1021 1021
1022 usb@0,7d000000 { 1022 usb@7d000000 {
1023 status = "okay"; 1023 status = "okay";
1024 }; 1024 };
1025 1025
1026 usb-phy@0,7d000000 { 1026 usb-phy@7d000000 {
1027 status = "okay"; 1027 status = "okay";
1028 vbus-supply = <&vdd_usb1_vbus>; 1028 vbus-supply = <&vdd_usb1_vbus>;
1029 }; 1029 };
1030 1030
1031 usb@0,7d004000 { 1031 usb@7d004000 {
1032 status = "okay"; 1032 status = "okay";
1033 }; 1033 };
1034 1034
1035 usb-phy@0,7d004000 { 1035 usb-phy@7d004000 {
1036 status = "okay"; 1036 status = "okay";
1037 vbus-supply = <&vdd_run_cam>; 1037 vbus-supply = <&vdd_run_cam>;
1038 }; 1038 };
1039 1039
1040 usb@0,7d008000 { 1040 usb@7d008000 {
1041 status = "okay"; 1041 status = "okay";
1042 }; 1042 };
1043 1043
1044 usb-phy@0,7d008000 { 1044 usb-phy@7d008000 {
1045 status = "okay"; 1045 status = "okay";
1046 vbus-supply = <&vdd_usb3_vbus>; 1046 vbus-supply = <&vdd_usb3_vbus>;
1047 }; 1047 };
diff --git a/arch/arm/boot/dts/tegra124.dtsi b/arch/arm/boot/dts/tegra124.dtsi
index ea4811870de2..ea340f9de448 100644
--- a/arch/arm/boot/dts/tegra124.dtsi
+++ b/arch/arm/boot/dts/tegra124.dtsi
@@ -14,7 +14,7 @@
14 #address-cells = <2>; 14 #address-cells = <2>;
15 #size-cells = <2>; 15 #size-cells = <2>;
16 16
17 pcie-controller@0,01003000 { 17 pcie-controller@01003000 {
18 compatible = "nvidia,tegra124-pcie"; 18 compatible = "nvidia,tegra124-pcie";
19 device_type = "pci"; 19 device_type = "pci";
20 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */ 20 reg = <0x0 0x01003000 0x0 0x00000800 /* PADS registers */
@@ -77,7 +77,7 @@
77 }; 77 };
78 }; 78 };
79 79
80 host1x@0,50000000 { 80 host1x@50000000 {
81 compatible = "nvidia,tegra124-host1x", "simple-bus"; 81 compatible = "nvidia,tegra124-host1x", "simple-bus";
82 reg = <0x0 0x50000000 0x0 0x00034000>; 82 reg = <0x0 0x50000000 0x0 0x00034000>;
83 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ 83 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
@@ -91,7 +91,7 @@
91 91
92 ranges = <0 0x54000000 0 0x54000000 0 0x01000000>; 92 ranges = <0 0x54000000 0 0x54000000 0 0x01000000>;
93 93
94 dc@0,54200000 { 94 dc@54200000 {
95 compatible = "nvidia,tegra124-dc"; 95 compatible = "nvidia,tegra124-dc";
96 reg = <0x0 0x54200000 0x0 0x00040000>; 96 reg = <0x0 0x54200000 0x0 0x00040000>;
97 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 97 interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
@@ -106,7 +106,7 @@
106 nvidia,head = <0>; 106 nvidia,head = <0>;
107 }; 107 };
108 108
109 dc@0,54240000 { 109 dc@54240000 {
110 compatible = "nvidia,tegra124-dc"; 110 compatible = "nvidia,tegra124-dc";
111 reg = <0x0 0x54240000 0x0 0x00040000>; 111 reg = <0x0 0x54240000 0x0 0x00040000>;
112 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>; 112 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
@@ -121,7 +121,7 @@
121 nvidia,head = <1>; 121 nvidia,head = <1>;
122 }; 122 };
123 123
124 hdmi@0,54280000 { 124 hdmi@54280000 {
125 compatible = "nvidia,tegra124-hdmi"; 125 compatible = "nvidia,tegra124-hdmi";
126 reg = <0x0 0x54280000 0x0 0x00040000>; 126 reg = <0x0 0x54280000 0x0 0x00040000>;
127 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 127 interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
@@ -133,7 +133,7 @@
133 status = "disabled"; 133 status = "disabled";
134 }; 134 };
135 135
136 sor@0,54540000 { 136 sor@54540000 {
137 compatible = "nvidia,tegra124-sor"; 137 compatible = "nvidia,tegra124-sor";
138 reg = <0x0 0x54540000 0x0 0x00040000>; 138 reg = <0x0 0x54540000 0x0 0x00040000>;
139 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>; 139 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
@@ -147,7 +147,7 @@
147 status = "disabled"; 147 status = "disabled";
148 }; 148 };
149 149
150 dpaux: dpaux@0,545c0000 { 150 dpaux: dpaux@545c0000 {
151 compatible = "nvidia,tegra124-dpaux"; 151 compatible = "nvidia,tegra124-dpaux";
152 reg = <0x0 0x545c0000 0x0 0x00040000>; 152 reg = <0x0 0x545c0000 0x0 0x00040000>;
153 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>; 153 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
@@ -160,7 +160,7 @@
160 }; 160 };
161 }; 161 };
162 162
163 gic: interrupt-controller@0,50041000 { 163 gic: interrupt-controller@50041000 {
164 compatible = "arm,cortex-a15-gic"; 164 compatible = "arm,cortex-a15-gic";
165 #interrupt-cells = <3>; 165 #interrupt-cells = <3>;
166 interrupt-controller; 166 interrupt-controller;
@@ -173,6 +173,11 @@
173 interrupt-parent = <&gic>; 173 interrupt-parent = <&gic>;
174 }; 174 };
175 175
176 /*
177 * Please keep the following 0, notation in place as a former mainline
178 * U-Boot version was looking for that particular notation in order to
179 * perform required fix-ups on that GPU node.
180 */
176 gpu@0,57000000 { 181 gpu@0,57000000 {
177 compatible = "nvidia,gk20a"; 182 compatible = "nvidia,gk20a";
178 reg = <0x0 0x57000000 0x0 0x01000000>, 183 reg = <0x0 0x57000000 0x0 0x01000000>,
@@ -203,7 +208,7 @@
203 interrupt-parent = <&gic>; 208 interrupt-parent = <&gic>;
204 }; 209 };
205 210
206 timer@0,60005000 { 211 timer@60005000 {
207 compatible = "nvidia,tegra124-timer", "nvidia,tegra30-timer", "nvidia,tegra20-timer"; 212 compatible = "nvidia,tegra124-timer", "nvidia,tegra30-timer", "nvidia,tegra20-timer";
208 reg = <0x0 0x60005000 0x0 0x400>; 213 reg = <0x0 0x60005000 0x0 0x400>;
209 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>, 214 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
@@ -215,7 +220,7 @@
215 clocks = <&tegra_car TEGRA124_CLK_TIMER>; 220 clocks = <&tegra_car TEGRA124_CLK_TIMER>;
216 }; 221 };
217 222
218 tegra_car: clock@0,60006000 { 223 tegra_car: clock@60006000 {
219 compatible = "nvidia,tegra124-car"; 224 compatible = "nvidia,tegra124-car";
220 reg = <0x0 0x60006000 0x0 0x1000>; 225 reg = <0x0 0x60006000 0x0 0x1000>;
221 #clock-cells = <1>; 226 #clock-cells = <1>;
@@ -223,12 +228,12 @@
223 nvidia,external-memory-controller = <&emc>; 228 nvidia,external-memory-controller = <&emc>;
224 }; 229 };
225 230
226 flow-controller@0,60007000 { 231 flow-controller@60007000 {
227 compatible = "nvidia,tegra124-flowctrl"; 232 compatible = "nvidia,tegra124-flowctrl";
228 reg = <0x0 0x60007000 0x0 0x1000>; 233 reg = <0x0 0x60007000 0x0 0x1000>;
229 }; 234 };
230 235
231 actmon@0,6000c800 { 236 actmon@6000c800 {
232 compatible = "nvidia,tegra124-actmon"; 237 compatible = "nvidia,tegra124-actmon";
233 reg = <0x0 0x6000c800 0x0 0x400>; 238 reg = <0x0 0x6000c800 0x0 0x400>;
234 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>; 239 interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
@@ -239,7 +244,7 @@
239 reset-names = "actmon"; 244 reset-names = "actmon";
240 }; 245 };
241 246
242 gpio: gpio@0,6000d000 { 247 gpio: gpio@6000d000 {
243 compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio"; 248 compatible = "nvidia,tegra124-gpio", "nvidia,tegra30-gpio";
244 reg = <0x0 0x6000d000 0x0 0x1000>; 249 reg = <0x0 0x6000d000 0x0 0x1000>;
245 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>, 250 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
@@ -259,7 +264,7 @@
259 */ 264 */
260 }; 265 };
261 266
262 apbdma: dma@0,60020000 { 267 apbdma: dma@60020000 {
263 compatible = "nvidia,tegra124-apbdma", "nvidia,tegra148-apbdma"; 268 compatible = "nvidia,tegra124-apbdma", "nvidia,tegra148-apbdma";
264 reg = <0x0 0x60020000 0x0 0x1400>; 269 reg = <0x0 0x60020000 0x0 0x1400>;
265 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>, 270 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
@@ -300,13 +305,13 @@
300 #dma-cells = <1>; 305 #dma-cells = <1>;
301 }; 306 };
302 307
303 apbmisc@0,70000800 { 308 apbmisc@70000800 {
304 compatible = "nvidia,tegra124-apbmisc", "nvidia,tegra20-apbmisc"; 309 compatible = "nvidia,tegra124-apbmisc", "nvidia,tegra20-apbmisc";
305 reg = <0x0 0x70000800 0x0 0x64>, /* Chip revision */ 310 reg = <0x0 0x70000800 0x0 0x64>, /* Chip revision */
306 <0x0 0x7000e864 0x0 0x04>; /* Strapping options */ 311 <0x0 0x7000e864 0x0 0x04>; /* Strapping options */
307 }; 312 };
308 313
309 pinmux: pinmux@0,70000868 { 314 pinmux: pinmux@70000868 {
310 compatible = "nvidia,tegra124-pinmux"; 315 compatible = "nvidia,tegra124-pinmux";
311 reg = <0x0 0x70000868 0x0 0x164>, /* Pad control registers */ 316 reg = <0x0 0x70000868 0x0 0x164>, /* Pad control registers */
312 <0x0 0x70003000 0x0 0x434>, /* Mux registers */ 317 <0x0 0x70003000 0x0 0x434>, /* Mux registers */
@@ -321,7 +326,7 @@
321 * the APB DMA based serial driver, the compatible is 326 * the APB DMA based serial driver, the compatible is
322 * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart". 327 * "nvidia,tegra124-hsuart", "nvidia,tegra30-hsuart".
323 */ 328 */
324 uarta: serial@0,70006000 { 329 uarta: serial@70006000 {
325 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 330 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
326 reg = <0x0 0x70006000 0x0 0x40>; 331 reg = <0x0 0x70006000 0x0 0x40>;
327 reg-shift = <2>; 332 reg-shift = <2>;
@@ -334,7 +339,7 @@
334 status = "disabled"; 339 status = "disabled";
335 }; 340 };
336 341
337 uartb: serial@0,70006040 { 342 uartb: serial@70006040 {
338 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 343 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
339 reg = <0x0 0x70006040 0x0 0x40>; 344 reg = <0x0 0x70006040 0x0 0x40>;
340 reg-shift = <2>; 345 reg-shift = <2>;
@@ -347,7 +352,7 @@
347 status = "disabled"; 352 status = "disabled";
348 }; 353 };
349 354
350 uartc: serial@0,70006200 { 355 uartc: serial@70006200 {
351 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 356 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
352 reg = <0x0 0x70006200 0x0 0x40>; 357 reg = <0x0 0x70006200 0x0 0x40>;
353 reg-shift = <2>; 358 reg-shift = <2>;
@@ -360,7 +365,7 @@
360 status = "disabled"; 365 status = "disabled";
361 }; 366 };
362 367
363 uartd: serial@0,70006300 { 368 uartd: serial@70006300 {
364 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; 369 compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart";
365 reg = <0x0 0x70006300 0x0 0x40>; 370 reg = <0x0 0x70006300 0x0 0x40>;
366 reg-shift = <2>; 371 reg-shift = <2>;
@@ -373,7 +378,7 @@
373 status = "disabled"; 378 status = "disabled";
374 }; 379 };
375 380
376 pwm: pwm@0,7000a000 { 381 pwm: pwm@7000a000 {
377 compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm"; 382 compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
378 reg = <0x0 0x7000a000 0x0 0x100>; 383 reg = <0x0 0x7000a000 0x0 0x100>;
379 #pwm-cells = <2>; 384 #pwm-cells = <2>;
@@ -383,7 +388,7 @@
383 status = "disabled"; 388 status = "disabled";
384 }; 389 };
385 390
386 i2c@0,7000c000 { 391 i2c@7000c000 {
387 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 392 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
388 reg = <0x0 0x7000c000 0x0 0x100>; 393 reg = <0x0 0x7000c000 0x0 0x100>;
389 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>; 394 interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
@@ -398,7 +403,7 @@
398 status = "disabled"; 403 status = "disabled";
399 }; 404 };
400 405
401 i2c@0,7000c400 { 406 i2c@7000c400 {
402 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 407 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
403 reg = <0x0 0x7000c400 0x0 0x100>; 408 reg = <0x0 0x7000c400 0x0 0x100>;
404 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>; 409 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
@@ -413,7 +418,7 @@
413 status = "disabled"; 418 status = "disabled";
414 }; 419 };
415 420
416 i2c@0,7000c500 { 421 i2c@7000c500 {
417 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 422 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
418 reg = <0x0 0x7000c500 0x0 0x100>; 423 reg = <0x0 0x7000c500 0x0 0x100>;
419 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; 424 interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
@@ -428,7 +433,7 @@
428 status = "disabled"; 433 status = "disabled";
429 }; 434 };
430 435
431 i2c@0,7000c700 { 436 i2c@7000c700 {
432 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 437 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
433 reg = <0x0 0x7000c700 0x0 0x100>; 438 reg = <0x0 0x7000c700 0x0 0x100>;
434 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; 439 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
@@ -443,7 +448,7 @@
443 status = "disabled"; 448 status = "disabled";
444 }; 449 };
445 450
446 i2c@0,7000d000 { 451 i2c@7000d000 {
447 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 452 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
448 reg = <0x0 0x7000d000 0x0 0x100>; 453 reg = <0x0 0x7000d000 0x0 0x100>;
449 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; 454 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
@@ -458,7 +463,7 @@
458 status = "disabled"; 463 status = "disabled";
459 }; 464 };
460 465
461 i2c@0,7000d100 { 466 i2c@7000d100 {
462 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c"; 467 compatible = "nvidia,tegra124-i2c", "nvidia,tegra114-i2c";
463 reg = <0x0 0x7000d100 0x0 0x100>; 468 reg = <0x0 0x7000d100 0x0 0x100>;
464 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; 469 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
@@ -473,7 +478,7 @@
473 status = "disabled"; 478 status = "disabled";
474 }; 479 };
475 480
476 spi@0,7000d400 { 481 spi@7000d400 {
477 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 482 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
478 reg = <0x0 0x7000d400 0x0 0x200>; 483 reg = <0x0 0x7000d400 0x0 0x200>;
479 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; 484 interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
@@ -488,7 +493,7 @@
488 status = "disabled"; 493 status = "disabled";
489 }; 494 };
490 495
491 spi@0,7000d600 { 496 spi@7000d600 {
492 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 497 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
493 reg = <0x0 0x7000d600 0x0 0x200>; 498 reg = <0x0 0x7000d600 0x0 0x200>;
494 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 499 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
@@ -503,7 +508,7 @@
503 status = "disabled"; 508 status = "disabled";
504 }; 509 };
505 510
506 spi@0,7000d800 { 511 spi@7000d800 {
507 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 512 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
508 reg = <0x0 0x7000d800 0x0 0x200>; 513 reg = <0x0 0x7000d800 0x0 0x200>;
509 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 514 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
@@ -518,7 +523,7 @@
518 status = "disabled"; 523 status = "disabled";
519 }; 524 };
520 525
521 spi@0,7000da00 { 526 spi@7000da00 {
522 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 527 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
523 reg = <0x0 0x7000da00 0x0 0x200>; 528 reg = <0x0 0x7000da00 0x0 0x200>;
524 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 529 interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
@@ -533,7 +538,7 @@
533 status = "disabled"; 538 status = "disabled";
534 }; 539 };
535 540
536 spi@0,7000dc00 { 541 spi@7000dc00 {
537 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 542 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
538 reg = <0x0 0x7000dc00 0x0 0x200>; 543 reg = <0x0 0x7000dc00 0x0 0x200>;
539 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 544 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
@@ -548,7 +553,7 @@
548 status = "disabled"; 553 status = "disabled";
549 }; 554 };
550 555
551 spi@0,7000de00 { 556 spi@7000de00 {
552 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi"; 557 compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
553 reg = <0x0 0x7000de00 0x0 0x200>; 558 reg = <0x0 0x7000de00 0x0 0x200>;
554 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>; 559 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
@@ -563,21 +568,21 @@
563 status = "disabled"; 568 status = "disabled";
564 }; 569 };
565 570
566 rtc@0,7000e000 { 571 rtc@7000e000 {
567 compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; 572 compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
568 reg = <0x0 0x7000e000 0x0 0x100>; 573 reg = <0x0 0x7000e000 0x0 0x100>;
569 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; 574 interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
570 clocks = <&tegra_car TEGRA124_CLK_RTC>; 575 clocks = <&tegra_car TEGRA124_CLK_RTC>;
571 }; 576 };
572 577
573 pmc@0,7000e400 { 578 pmc@7000e400 {
574 compatible = "nvidia,tegra124-pmc"; 579 compatible = "nvidia,tegra124-pmc";
575 reg = <0x0 0x7000e400 0x0 0x400>; 580 reg = <0x0 0x7000e400 0x0 0x400>;
576 clocks = <&tegra_car TEGRA124_CLK_PCLK>, <&clk32k_in>; 581 clocks = <&tegra_car TEGRA124_CLK_PCLK>, <&clk32k_in>;
577 clock-names = "pclk", "clk32k_in"; 582 clock-names = "pclk", "clk32k_in";
578 }; 583 };
579 584
580 fuse@0,7000f800 { 585 fuse@7000f800 {
581 compatible = "nvidia,tegra124-efuse"; 586 compatible = "nvidia,tegra124-efuse";
582 reg = <0x0 0x7000f800 0x0 0x400>; 587 reg = <0x0 0x7000f800 0x0 0x400>;
583 clocks = <&tegra_car TEGRA124_CLK_FUSE>; 588 clocks = <&tegra_car TEGRA124_CLK_FUSE>;
@@ -586,7 +591,7 @@
586 reset-names = "fuse"; 591 reset-names = "fuse";
587 }; 592 };
588 593
589 mc: memory-controller@0,70019000 { 594 mc: memory-controller@70019000 {
590 compatible = "nvidia,tegra124-mc"; 595 compatible = "nvidia,tegra124-mc";
591 reg = <0x0 0x70019000 0x0 0x1000>; 596 reg = <0x0 0x70019000 0x0 0x1000>;
592 clocks = <&tegra_car TEGRA124_CLK_MC>; 597 clocks = <&tegra_car TEGRA124_CLK_MC>;
@@ -597,14 +602,14 @@
597 #iommu-cells = <1>; 602 #iommu-cells = <1>;
598 }; 603 };
599 604
600 emc: emc@0,7001b000 { 605 emc: emc@7001b000 {
601 compatible = "nvidia,tegra124-emc"; 606 compatible = "nvidia,tegra124-emc";
602 reg = <0x0 0x7001b000 0x0 0x1000>; 607 reg = <0x0 0x7001b000 0x0 0x1000>;
603 608
604 nvidia,memory-controller = <&mc>; 609 nvidia,memory-controller = <&mc>;
605 }; 610 };
606 611
607 sata@0,70020000 { 612 sata@70020000 {
608 compatible = "nvidia,tegra124-ahci"; 613 compatible = "nvidia,tegra124-ahci";
609 reg = <0x0 0x70027000 0x0 0x2000>, /* AHCI */ 614 reg = <0x0 0x70027000 0x0 0x2000>, /* AHCI */
610 <0x0 0x70020000 0x0 0x7000>; /* SATA */ 615 <0x0 0x70020000 0x0 0x7000>; /* SATA */
@@ -621,7 +626,7 @@
621 status = "disabled"; 626 status = "disabled";
622 }; 627 };
623 628
624 hda@0,70030000 { 629 hda@70030000 {
625 compatible = "nvidia,tegra124-hda", "nvidia,tegra30-hda"; 630 compatible = "nvidia,tegra124-hda", "nvidia,tegra30-hda";
626 reg = <0x0 0x70030000 0x0 0x10000>; 631 reg = <0x0 0x70030000 0x0 0x10000>;
627 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>; 632 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
@@ -636,7 +641,7 @@
636 status = "disabled"; 641 status = "disabled";
637 }; 642 };
638 643
639 usb@0,70090000 { 644 usb@70090000 {
640 compatible = "nvidia,tegra124-xusb"; 645 compatible = "nvidia,tegra124-xusb";
641 reg = <0x0 0x70090000 0x0 0x8000>, 646 reg = <0x0 0x70090000 0x0 0x8000>,
642 <0x0 0x70098000 0x0 0x1000>, 647 <0x0 0x70098000 0x0 0x1000>,
@@ -671,7 +676,7 @@
671 status = "disabled"; 676 status = "disabled";
672 }; 677 };
673 678
674 padctl: padctl@0,7009f000 { 679 padctl: padctl@7009f000 {
675 compatible = "nvidia,tegra124-xusb-padctl"; 680 compatible = "nvidia,tegra124-xusb-padctl";
676 reg = <0x0 0x7009f000 0x0 0x1000>; 681 reg = <0x0 0x7009f000 0x0 0x1000>;
677 resets = <&tegra_car 142>; 682 resets = <&tegra_car 142>;
@@ -804,7 +809,7 @@
804 }; 809 };
805 }; 810 };
806 811
807 sdhci@0,700b0000 { 812 sdhci@700b0000 {
808 compatible = "nvidia,tegra124-sdhci"; 813 compatible = "nvidia,tegra124-sdhci";
809 reg = <0x0 0x700b0000 0x0 0x200>; 814 reg = <0x0 0x700b0000 0x0 0x200>;
810 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 815 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
@@ -814,7 +819,7 @@
814 status = "disabled"; 819 status = "disabled";
815 }; 820 };
816 821
817 sdhci@0,700b0200 { 822 sdhci@700b0200 {
818 compatible = "nvidia,tegra124-sdhci"; 823 compatible = "nvidia,tegra124-sdhci";
819 reg = <0x0 0x700b0200 0x0 0x200>; 824 reg = <0x0 0x700b0200 0x0 0x200>;
820 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 825 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
@@ -824,7 +829,7 @@
824 status = "disabled"; 829 status = "disabled";
825 }; 830 };
826 831
827 sdhci@0,700b0400 { 832 sdhci@700b0400 {
828 compatible = "nvidia,tegra124-sdhci"; 833 compatible = "nvidia,tegra124-sdhci";
829 reg = <0x0 0x700b0400 0x0 0x200>; 834 reg = <0x0 0x700b0400 0x0 0x200>;
830 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 835 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
@@ -834,7 +839,7 @@
834 status = "disabled"; 839 status = "disabled";
835 }; 840 };
836 841
837 sdhci@0,700b0600 { 842 sdhci@700b0600 {
838 compatible = "nvidia,tegra124-sdhci"; 843 compatible = "nvidia,tegra124-sdhci";
839 reg = <0x0 0x700b0600 0x0 0x200>; 844 reg = <0x0 0x700b0600 0x0 0x200>;
840 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 845 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
@@ -844,7 +849,7 @@
844 status = "disabled"; 849 status = "disabled";
845 }; 850 };
846 851
847 soctherm: thermal-sensor@0,700e2000 { 852 soctherm: thermal-sensor@700e2000 {
848 compatible = "nvidia,tegra124-soctherm"; 853 compatible = "nvidia,tegra124-soctherm";
849 reg = <0x0 0x700e2000 0x0 0x1000>; 854 reg = <0x0 0x700e2000 0x0 0x1000>;
850 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 855 interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
@@ -856,7 +861,7 @@
856 #thermal-sensor-cells = <1>; 861 #thermal-sensor-cells = <1>;
857 }; 862 };
858 863
859 dfll: clock@0,70110000 { 864 dfll: clock@70110000 {
860 compatible = "nvidia,tegra124-dfll"; 865 compatible = "nvidia,tegra124-dfll";
861 reg = <0 0x70110000 0 0x100>, /* DFLL control */ 866 reg = <0 0x70110000 0 0x100>, /* DFLL control */
862 <0 0x70110000 0 0x100>, /* I2C output control */ 867 <0 0x70110000 0 0x100>, /* I2C output control */
@@ -880,7 +885,7 @@
880 status = "disabled"; 885 status = "disabled";
881 }; 886 };
882 887
883 ahub@0,70300000 { 888 ahub@70300000 {
884 compatible = "nvidia,tegra124-ahub"; 889 compatible = "nvidia,tegra124-ahub";
885 reg = <0x0 0x70300000 0x0 0x200>, 890 reg = <0x0 0x70300000 0x0 0x200>,
886 <0x0 0x70300800 0x0 0x800>, 891 <0x0 0x70300800 0x0 0x800>,
@@ -932,7 +937,7 @@
932 #address-cells = <2>; 937 #address-cells = <2>;
933 #size-cells = <2>; 938 #size-cells = <2>;
934 939
935 tegra_i2s0: i2s@0,70301000 { 940 tegra_i2s0: i2s@70301000 {
936 compatible = "nvidia,tegra124-i2s"; 941 compatible = "nvidia,tegra124-i2s";
937 reg = <0x0 0x70301000 0x0 0x100>; 942 reg = <0x0 0x70301000 0x0 0x100>;
938 nvidia,ahub-cif-ids = <4 4>; 943 nvidia,ahub-cif-ids = <4 4>;
@@ -942,7 +947,7 @@
942 status = "disabled"; 947 status = "disabled";
943 }; 948 };
944 949
945 tegra_i2s1: i2s@0,70301100 { 950 tegra_i2s1: i2s@70301100 {
946 compatible = "nvidia,tegra124-i2s"; 951 compatible = "nvidia,tegra124-i2s";
947 reg = <0x0 0x70301100 0x0 0x100>; 952 reg = <0x0 0x70301100 0x0 0x100>;
948 nvidia,ahub-cif-ids = <5 5>; 953 nvidia,ahub-cif-ids = <5 5>;
@@ -952,7 +957,7 @@
952 status = "disabled"; 957 status = "disabled";
953 }; 958 };
954 959
955 tegra_i2s2: i2s@0,70301200 { 960 tegra_i2s2: i2s@70301200 {
956 compatible = "nvidia,tegra124-i2s"; 961 compatible = "nvidia,tegra124-i2s";
957 reg = <0x0 0x70301200 0x0 0x100>; 962 reg = <0x0 0x70301200 0x0 0x100>;
958 nvidia,ahub-cif-ids = <6 6>; 963 nvidia,ahub-cif-ids = <6 6>;
@@ -962,7 +967,7 @@
962 status = "disabled"; 967 status = "disabled";
963 }; 968 };
964 969
965 tegra_i2s3: i2s@0,70301300 { 970 tegra_i2s3: i2s@70301300 {
966 compatible = "nvidia,tegra124-i2s"; 971 compatible = "nvidia,tegra124-i2s";
967 reg = <0x0 0x70301300 0x0 0x100>; 972 reg = <0x0 0x70301300 0x0 0x100>;
968 nvidia,ahub-cif-ids = <7 7>; 973 nvidia,ahub-cif-ids = <7 7>;
@@ -972,7 +977,7 @@
972 status = "disabled"; 977 status = "disabled";
973 }; 978 };
974 979
975 tegra_i2s4: i2s@0,70301400 { 980 tegra_i2s4: i2s@70301400 {
976 compatible = "nvidia,tegra124-i2s"; 981 compatible = "nvidia,tegra124-i2s";
977 reg = <0x0 0x70301400 0x0 0x100>; 982 reg = <0x0 0x70301400 0x0 0x100>;
978 nvidia,ahub-cif-ids = <8 8>; 983 nvidia,ahub-cif-ids = <8 8>;
@@ -983,7 +988,7 @@
983 }; 988 };
984 }; 989 };
985 990
986 usb@0,7d000000 { 991 usb@7d000000 {
987 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 992 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
988 reg = <0x0 0x7d000000 0x0 0x4000>; 993 reg = <0x0 0x7d000000 0x0 0x4000>;
989 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 994 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
@@ -995,7 +1000,7 @@
995 status = "disabled"; 1000 status = "disabled";
996 }; 1001 };
997 1002
998 phy1: usb-phy@0,7d000000 { 1003 phy1: usb-phy@7d000000 {
999 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy"; 1004 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
1000 reg = <0x0 0x7d000000 0x0 0x4000>, 1005 reg = <0x0 0x7d000000 0x0 0x4000>,
1001 <0x0 0x7d000000 0x0 0x4000>; 1006 <0x0 0x7d000000 0x0 0x4000>;
@@ -1020,7 +1025,7 @@
1020 status = "disabled"; 1025 status = "disabled";
1021 }; 1026 };
1022 1027
1023 usb@0,7d004000 { 1028 usb@7d004000 {
1024 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 1029 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
1025 reg = <0x0 0x7d004000 0x0 0x4000>; 1030 reg = <0x0 0x7d004000 0x0 0x4000>;
1026 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 1031 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
@@ -1032,7 +1037,7 @@
1032 status = "disabled"; 1037 status = "disabled";
1033 }; 1038 };
1034 1039
1035 phy2: usb-phy@0,7d004000 { 1040 phy2: usb-phy@7d004000 {
1036 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy"; 1041 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
1037 reg = <0x0 0x7d004000 0x0 0x4000>, 1042 reg = <0x0 0x7d004000 0x0 0x4000>,
1038 <0x0 0x7d000000 0x0 0x4000>; 1043 <0x0 0x7d000000 0x0 0x4000>;
@@ -1056,7 +1061,7 @@
1056 status = "disabled"; 1061 status = "disabled";
1057 }; 1062 };
1058 1063
1059 usb@0,7d008000 { 1064 usb@7d008000 {
1060 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci"; 1065 compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci", "usb-ehci";
1061 reg = <0x0 0x7d008000 0x0 0x4000>; 1066 reg = <0x0 0x7d008000 0x0 0x4000>;
1062 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>; 1067 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
@@ -1068,7 +1073,7 @@
1068 status = "disabled"; 1073 status = "disabled";
1069 }; 1074 };
1070 1075
1071 phy3: usb-phy@0,7d008000 { 1076 phy3: usb-phy@7d008000 {
1072 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy"; 1077 compatible = "nvidia,tegra124-usb-phy", "nvidia,tegra30-usb-phy";
1073 reg = <0x0 0x7d008000 0x0 0x4000>, 1078 reg = <0x0 0x7d008000 0x0 0x4000>,
1074 <0x0 0x7d000000 0x0 0x4000>; 1079 <0x0 0x7d000000 0x0 0x4000>;
diff --git a/arch/arm/boot/dts/tegra20-colibri-512.dtsi b/arch/arm/boot/dts/tegra20-colibri-512.dtsi
index 8e0066ad9628..1242b841f147 100644
--- a/arch/arm/boot/dts/tegra20-colibri-512.dtsi
+++ b/arch/arm/boot/dts/tegra20-colibri-512.dtsi
@@ -478,7 +478,7 @@
478 478
479 clk32k_in: clock@0 { 479 clk32k_in: clock@0 {
480 compatible = "fixed-clock"; 480 compatible = "fixed-clock";
481 reg=<0>; 481 reg = <0>;
482 #clock-cells = <0>; 482 #clock-cells = <0>;
483 clock-frequency = <32768>; 483 clock-frequency = <32768>;
484 }; 484 };
diff --git a/arch/arm/boot/dts/tegra20-harmony.dts b/arch/arm/boot/dts/tegra20-harmony.dts
index d2e960cbc001..d4fb4d39ede7 100644
--- a/arch/arm/boot/dts/tegra20-harmony.dts
+++ b/arch/arm/boot/dts/tegra20-harmony.dts
@@ -646,7 +646,7 @@
646 646
647 clk32k_in: clock@0 { 647 clk32k_in: clock@0 {
648 compatible = "fixed-clock"; 648 compatible = "fixed-clock";
649 reg=<0>; 649 reg = <0>;
650 #clock-cells = <0>; 650 #clock-cells = <0>;
651 clock-frequency = <32768>; 651 clock-frequency = <32768>;
652 }; 652 };
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts
index 33ed2b23026b..4e361a8c167e 100644
--- a/arch/arm/boot/dts/tegra20-paz00.dts
+++ b/arch/arm/boot/dts/tegra20-paz00.dts
@@ -512,7 +512,7 @@
512 512
513 clk32k_in: clock@0 { 513 clk32k_in: clock@0 {
514 compatible = "fixed-clock"; 514 compatible = "fixed-clock";
515 reg=<0>; 515 reg = <0>;
516 #clock-cells = <0>; 516 #clock-cells = <0>;
517 clock-frequency = <32768>; 517 clock-frequency = <32768>;
518 }; 518 };
diff --git a/arch/arm/boot/dts/tegra20-seaboard.dts b/arch/arm/boot/dts/tegra20-seaboard.dts
index 94b60a710dd8..2017acacc00c 100644
--- a/arch/arm/boot/dts/tegra20-seaboard.dts
+++ b/arch/arm/boot/dts/tegra20-seaboard.dts
@@ -798,7 +798,7 @@
798 798
799 clk32k_in: clock@0 { 799 clk32k_in: clock@0 {
800 compatible = "fixed-clock"; 800 compatible = "fixed-clock";
801 reg=<0>; 801 reg = <0>;
802 #clock-cells = <0>; 802 #clock-cells = <0>;
803 clock-frequency = <32768>; 803 clock-frequency = <32768>;
804 }; 804 };
diff --git a/arch/arm/boot/dts/tegra20-tamonten.dtsi b/arch/arm/boot/dts/tegra20-tamonten.dtsi
index 025e9e8037da..27d2bbbf1eae 100644
--- a/arch/arm/boot/dts/tegra20-tamonten.dtsi
+++ b/arch/arm/boot/dts/tegra20-tamonten.dtsi
@@ -508,7 +508,7 @@
508 508
509 clk32k_in: clock@0 { 509 clk32k_in: clock@0 {
510 compatible = "fixed-clock"; 510 compatible = "fixed-clock";
511 reg=<0>; 511 reg = <0>;
512 #clock-cells = <0>; 512 #clock-cells = <0>;
513 clock-frequency = <32768>; 513 clock-frequency = <32768>;
514 }; 514 };
diff --git a/arch/arm/boot/dts/tegra20-trimslice.dts b/arch/arm/boot/dts/tegra20-trimslice.dts
index 4a035f74043a..381747f114a9 100644
--- a/arch/arm/boot/dts/tegra20-trimslice.dts
+++ b/arch/arm/boot/dts/tegra20-trimslice.dts
@@ -383,7 +383,7 @@
383 383
384 clk32k_in: clock@0 { 384 clk32k_in: clock@0 {
385 compatible = "fixed-clock"; 385 compatible = "fixed-clock";
386 reg=<0>; 386 reg = <0>;
387 #clock-cells = <0>; 387 #clock-cells = <0>;
388 clock-frequency = <32768>; 388 clock-frequency = <32768>;
389 }; 389 };
diff --git a/arch/arm/boot/dts/tegra20-ventana.dts b/arch/arm/boot/dts/tegra20-ventana.dts
index a28c060a839b..8f0aaabf7e28 100644
--- a/arch/arm/boot/dts/tegra20-ventana.dts
+++ b/arch/arm/boot/dts/tegra20-ventana.dts
@@ -592,7 +592,7 @@
592 592
593 clk32k_in: clock@0 { 593 clk32k_in: clock@0 {
594 compatible = "fixed-clock"; 594 compatible = "fixed-clock";
595 reg=<0>; 595 reg = <0>;
596 #clock-cells = <0>; 596 #clock-cells = <0>;
597 clock-frequency = <32768>; 597 clock-frequency = <32768>;
598 }; 598 };
diff --git a/arch/arm/boot/dts/tegra20-whistler.dts b/arch/arm/boot/dts/tegra20-whistler.dts
index 073806d07b2b..1e06f854c8b4 100644
--- a/arch/arm/boot/dts/tegra20-whistler.dts
+++ b/arch/arm/boot/dts/tegra20-whistler.dts
@@ -569,7 +569,7 @@
569 569
570 clk32k_in: clock@0 { 570 clk32k_in: clock@0 {
571 compatible = "fixed-clock"; 571 compatible = "fixed-clock";
572 reg=<0>; 572 reg = <0>;
573 #clock-cells = <0>; 573 #clock-cells = <0>;
574 clock-frequency = <32768>; 574 clock-frequency = <32768>;
575 }; 575 };
diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi
index bf361277fe10..192b95177aac 100644
--- a/arch/arm/boot/dts/tegra30-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
@@ -567,7 +567,7 @@
567 blocks = <0x5>; 567 blocks = <0x5>;
568 irq-trigger = <0x1>; 568 irq-trigger = <0x1>;
569 569
570 stmpe_touchscreen { 570 stmpe_touchscreen@0 {
571 compatible = "st,stmpe-ts"; 571 compatible = "st,stmpe-ts";
572 reg = <0>; 572 reg = <0>;
573 /* 3.25 MHz ADC clock speed */ 573 /* 3.25 MHz ADC clock speed */
@@ -674,13 +674,14 @@
674 674
675 clk32k_in: clk@0 { 675 clk32k_in: clk@0 {
676 compatible = "fixed-clock"; 676 compatible = "fixed-clock";
677 reg=<0>; 677 reg = <0>;
678 #clock-cells = <0>; 678 #clock-cells = <0>;
679 clock-frequency = <32768>; 679 clock-frequency = <32768>;
680 }; 680 };
681
681 clk16m: clk@1 { 682 clk16m: clk@1 {
682 compatible = "fixed-clock"; 683 compatible = "fixed-clock";
683 reg=<1>; 684 reg = <1>;
684 #clock-cells = <0>; 685 #clock-cells = <0>;
685 clock-frequency = <16000000>; 686 clock-frequency = <16000000>;
686 clock-output-names = "clk16m"; 687 clock-output-names = "clk16m";
diff --git a/arch/arm/boot/dts/tegra30-beaver.dts b/arch/arm/boot/dts/tegra30-beaver.dts
index b6da15d823a6..0350002849d5 100644
--- a/arch/arm/boot/dts/tegra30-beaver.dts
+++ b/arch/arm/boot/dts/tegra30-beaver.dts
@@ -1952,7 +1952,7 @@
1952 1952
1953 clk32k_in: clock@0 { 1953 clk32k_in: clock@0 {
1954 compatible = "fixed-clock"; 1954 compatible = "fixed-clock";
1955 reg=<0>; 1955 reg = <0>;
1956 #clock-cells = <0>; 1956 #clock-cells = <0>;
1957 clock-frequency = <32768>; 1957 clock-frequency = <32768>;
1958 }; 1958 };
diff --git a/arch/arm/boot/dts/tegra30-cardhu.dtsi b/arch/arm/boot/dts/tegra30-cardhu.dtsi
index 4721c1c9c780..f11012bb58cc 100644
--- a/arch/arm/boot/dts/tegra30-cardhu.dtsi
+++ b/arch/arm/boot/dts/tegra30-cardhu.dtsi
@@ -423,7 +423,7 @@
423 423
424 clk32k_in: clock@0 { 424 clk32k_in: clock@0 {
425 compatible = "fixed-clock"; 425 compatible = "fixed-clock";
426 reg=<0>; 426 reg = <0>;
427 #clock-cells = <0>; 427 #clock-cells = <0>;
428 clock-frequency = <32768>; 428 clock-frequency = <32768>;
429 }; 429 };
diff --git a/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts b/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
index 76875c3160fe..a8c0318743b6 100644
--- a/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
@@ -131,7 +131,7 @@
131 clocks { 131 clocks {
132 clk16m: clk@1 { 132 clk16m: clk@1 {
133 compatible = "fixed-clock"; 133 compatible = "fixed-clock";
134 reg=<1>; 134 reg = <1>;
135 #clock-cells = <0>; 135 #clock-cells = <0>;
136 clock-frequency = <16000000>; 136 clock-frequency = <16000000>;
137 clock-output-names = "clk16m"; 137 clock-output-names = "clk16m";
diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi
index 2d8c58fd9357..a265534cd314 100644
--- a/arch/arm/boot/dts/tegra30-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
@@ -420,7 +420,7 @@
420 420
421 clk32k_in: clk@0 { 421 clk32k_in: clk@0 {
422 compatible = "fixed-clock"; 422 compatible = "fixed-clock";
423 reg=<0>; 423 reg = <0>;
424 #clock-cells = <0>; 424 #clock-cells = <0>;
425 clock-frequency = <32768>; 425 clock-frequency = <32768>;
426 }; 426 };
diff --git a/arch/arm/boot/dts/tny_a9260_common.dtsi b/arch/arm/boot/dts/tny_a9260_common.dtsi
index ce7138c3af1b..f9dc463b9e48 100644
--- a/arch/arm/boot/dts/tny_a9260_common.dtsi
+++ b/arch/arm/boot/dts/tny_a9260_common.dtsi
@@ -16,15 +16,6 @@
16 }; 16 };
17 17
18 clocks { 18 clocks {
19 #address-cells = <1>;
20 #size-cells = <1>;
21 ranges;
22
23 main_clock: clock@0 {
24 compatible = "atmel,osc", "fixed-clock";
25 clock-frequency = <12000000>;
26 };
27
28 slow_xtal { 19 slow_xtal {
29 clock-frequency = <32768>; 20 clock-frequency = <32768>;
30 }; 21 };
diff --git a/arch/arm/boot/dts/tny_a9263.dts b/arch/arm/boot/dts/tny_a9263.dts
index 3043296345b7..9161cd9889b4 100644
--- a/arch/arm/boot/dts/tny_a9263.dts
+++ b/arch/arm/boot/dts/tny_a9263.dts
@@ -21,15 +21,6 @@
21 }; 21 };
22 22
23 clocks { 23 clocks {
24 #address-cells = <1>;
25 #size-cells = <1>;
26 ranges;
27
28 main_clock: clock@0 {
29 compatible = "atmel,osc", "fixed-clock";
30 clock-frequency = <12000000>;
31 };
32
33 slow_xtal { 24 slow_xtal {
34 clock-frequency = <32768>; 25 clock-frequency = <32768>;
35 }; 26 };
@@ -99,7 +90,7 @@
99 }; 90 };
100 }; 91 };
101 92
102 i2c@0 { 93 i2c-gpio-0 {
103 status = "okay"; 94 status = "okay";
104 }; 95 };
105}; 96};
diff --git a/arch/arm/boot/dts/uniphier-common32.dtsi b/arch/arm/boot/dts/uniphier-common32.dtsi
index 61a095598206..03f60ec340b5 100644
--- a/arch/arm/boot/dts/uniphier-common32.dtsi
+++ b/arch/arm/boot/dts/uniphier-common32.dtsi
@@ -105,6 +105,8 @@
105 reg = <0x58c00000 0x400>; 105 reg = <0x58c00000 0x400>;
106 #address-cells = <2>; 106 #address-cells = <2>;
107 #size-cells = <1>; 107 #size-cells = <1>;
108 pinctrl-names = "default";
109 pinctrl-0 = <&pinctrl_system_bus>;
108 }; 110 };
109 111
110 smpctrl@59800000 { 112 smpctrl@59800000 {
@@ -134,9 +136,13 @@
134 interrupt-controller; 136 interrupt-controller;
135 }; 137 };
136 138
137 pinctrl: pinctrl@5f801000 { 139 soc-glue@5f800000 {
138 /* specify compatible in each SoC DTSI */ 140 compatible = "simple-mfd", "syscon";
139 reg = <0x5f801000 0xe00>; 141 reg = <0x5f800000 0x2000>;
142
143 pinctrl: pinctrl {
144 /* specify compatible in each SoC DTSI */
145 };
140 }; 146 };
141 }; 147 };
142}; 148};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
index dadd86070c98..debad7ffef05 100644
--- a/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-ld4.dtsi
@@ -182,5 +182,5 @@
182}; 182};
183 183
184&pinctrl { 184&pinctrl {
185 compatible = "socionext,ph1-ld4-pinctrl", "syscon"; 185 compatible = "socionext,uniphier-ld4-pinctrl";
186}; 186};
diff --git a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
index 532115234025..19c107c66bae 100644
--- a/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi
@@ -63,5 +63,5 @@
63 * which makes the pinctrl driver unshareable. 63 * which makes the pinctrl driver unshareable.
64 */ 64 */
65&pinctrl { 65&pinctrl {
66 compatible = "socionext,ph1-ld6b-pinctrl", "syscon"; 66 compatible = "socionext,uniphier-ld6b-pinctrl";
67}; 67};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
index 20f3f2ae7fa4..7b9da0852005 100644
--- a/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-pro4.dtsi
@@ -200,5 +200,5 @@
200}; 200};
201 201
202&pinctrl { 202&pinctrl {
203 compatible = "socionext,ph1-pro4-pinctrl", "syscon"; 203 compatible = "socionext,uniphier-pro4-pinctrl";
204}; 204};
diff --git a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
index 24f6f664b269..7e4aa2fde719 100644
--- a/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-pro5.dtsi
@@ -194,5 +194,5 @@
194}; 194};
195 195
196&pinctrl { 196&pinctrl {
197 compatible = "socionext,ph1-pro5-pinctrl", "syscon"; 197 compatible = "socionext,uniphier-pro5-pinctrl";
198}; 198};
diff --git a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
index 6bfd29a05575..467f9d8e9873 100644
--- a/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-ph1-sld8.dtsi
@@ -181,5 +181,5 @@
181}; 181};
182 182
183&pinctrl { 183&pinctrl {
184 compatible = "socionext,ph1-sld8-pinctrl", "syscon"; 184 compatible = "socionext,uniphier-sld8-pinctrl";
185}; 185};
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
index f2f3fbe2d517..10a711041b4a 100644
--- a/arch/arm/boot/dts/uniphier-pinctrl.dtsi
+++ b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
@@ -78,6 +78,11 @@
78 function = "nand"; 78 function = "nand";
79 }; 79 };
80 80
81 pinctrl_system_bus: system_bus_grp {
82 groups = "system_bus", "system_bus_cs1";
83 function = "system_bus";
84 };
85
81 pinctrl_uart0: uart0_grp { 86 pinctrl_uart0: uart0_grp {
82 groups = "uart0"; 87 groups = "uart0";
83 function = "uart0"; 88 function = "uart0";
diff --git a/arch/arm/boot/dts/uniphier-proxstream2-gentil.dts b/arch/arm/boot/dts/uniphier-proxstream2-gentil.dts
index bf2619e4d489..98d895b7af1d 100644
--- a/arch/arm/boot/dts/uniphier-proxstream2-gentil.dts
+++ b/arch/arm/boot/dts/uniphier-proxstream2-gentil.dts
@@ -55,13 +55,13 @@
55 }; 55 };
56 56
57 chosen { 57 chosen {
58 stdout-path = "serial2:115200n8"; 58 stdout-path = "serial0:115200n8";
59 }; 59 };
60 60
61 aliases { 61 aliases {
62 serial0 = &serial0; 62 serial0 = &serial2;
63 serial1 = &serial1; 63 serial1 = &serial0;
64 serial2 = &serial2; 64 serial2 = &serial1;
65 i2c0 = &i2c0; 65 i2c0 = &i2c0;
66 i2c2 = &i2c2; 66 i2c2 = &i2c2;
67 i2c4 = &i2c4; 67 i2c4 = &i2c4;
diff --git a/arch/arm/boot/dts/uniphier-proxstream2-vodka.dts b/arch/arm/boot/dts/uniphier-proxstream2-vodka.dts
index 498acac3d95d..1fb8bd7bb686 100644
--- a/arch/arm/boot/dts/uniphier-proxstream2-vodka.dts
+++ b/arch/arm/boot/dts/uniphier-proxstream2-vodka.dts
@@ -55,13 +55,13 @@
55 }; 55 };
56 56
57 chosen { 57 chosen {
58 stdout-path = "serial2:115200n8"; 58 stdout-path = "serial0:115200n8";
59 }; 59 };
60 60
61 aliases { 61 aliases {
62 serial0 = &serial0; 62 serial0 = &serial2;
63 serial1 = &serial1; 63 serial1 = &serial0;
64 serial2 = &serial2; 64 serial2 = &serial1;
65 i2c0 = &i2c0; 65 i2c0 = &i2c0;
66 i2c4 = &i2c4; 66 i2c4 = &i2c4;
67 i2c5 = &i2c5; 67 i2c5 = &i2c5;
diff --git a/arch/arm/boot/dts/uniphier-proxstream2.dtsi b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
index 4ac484c6ce4e..d00d6f5c2668 100644
--- a/arch/arm/boot/dts/uniphier-proxstream2.dtsi
+++ b/arch/arm/boot/dts/uniphier-proxstream2.dtsi
@@ -205,5 +205,5 @@
205}; 205};
206 206
207&pinctrl { 207&pinctrl {
208 compatible = "socionext,proxstream2-pinctrl", "syscon"; 208 compatible = "socionext,uniphier-pxs2-pinctrl";
209}; 209};
diff --git a/arch/arm/boot/dts/usb_a9260_common.dtsi b/arch/arm/boot/dts/usb_a9260_common.dtsi
index 9beea8976584..7514b347cdd2 100644
--- a/arch/arm/boot/dts/usb_a9260_common.dtsi
+++ b/arch/arm/boot/dts/usb_a9260_common.dtsi
@@ -8,15 +8,6 @@
8 8
9/ { 9/ {
10 clocks { 10 clocks {
11 #address-cells = <1>;
12 #size-cells = <1>;
13 ranges;
14
15 main_clock: clock@0 {
16 compatible = "atmel,osc", "fixed-clock";
17 clock-frequency = <12000000>;
18 };
19
20 slow_xtal { 11 slow_xtal {
21 clock-frequency = <32768>; 12 clock-frequency = <32768>;
22 }; 13 };
@@ -90,7 +81,7 @@
90 }; 81 };
91 }; 82 };
92 83
93 usb0: ohci@00500000 { 84 usb0: ohci@500000 {
94 num-ports = <2>; 85 num-ports = <2>;
95 status = "okay"; 86 status = "okay";
96 }; 87 };
@@ -119,7 +110,7 @@
119 }; 110 };
120 }; 111 };
121 112
122 i2c@0 { 113 i2c-gpio-0 {
123 status = "okay"; 114 status = "okay";
124 }; 115 };
125}; 116};
diff --git a/arch/arm/boot/dts/usb_a9263.dts b/arch/arm/boot/dts/usb_a9263.dts
index 8cc6edb29694..bfc48a272417 100644
--- a/arch/arm/boot/dts/usb_a9263.dts
+++ b/arch/arm/boot/dts/usb_a9263.dts
@@ -21,15 +21,6 @@
21 }; 21 };
22 22
23 clocks { 23 clocks {
24 #address-cells = <1>;
25 #size-cells = <1>;
26 ranges;
27
28 main_clock: clock@0 {
29 compatible = "atmel,osc", "fixed-clock";
30 clock-frequency = <12000000>;
31 };
32
33 slow_xtal { 24 slow_xtal {
34 clock-frequency = <32768>; 25 clock-frequency = <32768>;
35 }; 26 };
@@ -147,7 +138,7 @@
147 }; 138 };
148 }; 139 };
149 140
150 i2c@0 { 141 i2c-gpio-0 {
151 status = "okay"; 142 status = "okay";
152 }; 143 };
153}; 144};
diff --git a/arch/arm/boot/dts/usb_a9g20_common.dtsi b/arch/arm/boot/dts/usb_a9g20_common.dtsi
index 0b3b36182fe5..088c2c3685ab 100644
--- a/arch/arm/boot/dts/usb_a9g20_common.dtsi
+++ b/arch/arm/boot/dts/usb_a9g20_common.dtsi
@@ -11,14 +11,15 @@
11 11
12/ { 12/ {
13 chosen { 13 chosen {
14 bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock5 rw rootfstype=ubifs"; 14 bootargs = "mem=64M root=/dev/mtdblock5 rw rootfstype=ubifs";
15 stdout-path = "serial0:115200n8";
15 }; 16 };
16 17
17 memory { 18 memory {
18 reg = <0x20000000 0x4000000>; 19 reg = <0x20000000 0x4000000>;
19 }; 20 };
20 21
21 i2c@0 { 22 i2c-gpio-0 {
22 rv3029c2@56 { 23 rv3029c2@56 {
23 compatible = "rv3029c2"; 24 compatible = "rv3029c2";
24 reg = <0x56>; 25 reg = <0x56>;
diff --git a/arch/arm/mach-bcm/platsmp.c b/arch/arm/mach-bcm/platsmp.c
index 33c4d8349f95..3ac3a9bc663c 100644
--- a/arch/arm/mach-bcm/platsmp.c
+++ b/arch/arm/mach-bcm/platsmp.c
@@ -38,9 +38,6 @@
38#define OF_SECONDARY_BOOT "secondary-boot-reg" 38#define OF_SECONDARY_BOOT "secondary-boot-reg"
39#define MPIDR_CPUID_BITMASK 0x3 39#define MPIDR_CPUID_BITMASK 0x3
40 40
41/* I/O address of register used to coordinate secondary core startup */
42static u32 secondary_boot_addr;
43
44/* 41/*
45 * Enable the Cortex A9 Snoop Control Unit 42 * Enable the Cortex A9 Snoop Control Unit
46 * 43 *
@@ -82,20 +79,40 @@ static int __init scu_a9_enable(void)
82 return 0; 79 return 0;
83} 80}
84 81
85static int nsp_write_lut(void) 82static u32 secondary_boot_addr_for(unsigned int cpu)
83{
84 u32 secondary_boot_addr = 0;
85 struct device_node *cpu_node = of_get_cpu_node(cpu, NULL);
86
87 if (!cpu_node) {
88 pr_err("Failed to find device tree node for CPU%u\n", cpu);
89 return 0;
90 }
91
92 if (of_property_read_u32(cpu_node,
93 OF_SECONDARY_BOOT,
94 &secondary_boot_addr))
95 pr_err("required secondary boot register not specified for CPU%u\n",
96 cpu);
97
98 of_node_put(cpu_node);
99
100 return secondary_boot_addr;
101}
102
103static int nsp_write_lut(unsigned int cpu)
86{ 104{
87 void __iomem *sku_rom_lut; 105 void __iomem *sku_rom_lut;
88 phys_addr_t secondary_startup_phy; 106 phys_addr_t secondary_startup_phy;
107 const u32 secondary_boot_addr = secondary_boot_addr_for(cpu);
89 108
90 if (!secondary_boot_addr) { 109 if (!secondary_boot_addr)
91 pr_warn("required secondary boot register not specified\n");
92 return -EINVAL; 110 return -EINVAL;
93 }
94 111
95 sku_rom_lut = ioremap_nocache((phys_addr_t)secondary_boot_addr, 112 sku_rom_lut = ioremap_nocache((phys_addr_t)secondary_boot_addr,
96 sizeof(secondary_boot_addr)); 113 sizeof(phys_addr_t));
97 if (!sku_rom_lut) { 114 if (!sku_rom_lut) {
98 pr_warn("unable to ioremap SKU-ROM LUT register\n"); 115 pr_warn("unable to ioremap SKU-ROM LUT register for cpu %u\n", cpu);
99 return -ENOMEM; 116 return -ENOMEM;
100 } 117 }
101 118
@@ -114,70 +131,12 @@ static int nsp_write_lut(void)
114 131
115static void __init bcm_smp_prepare_cpus(unsigned int max_cpus) 132static void __init bcm_smp_prepare_cpus(unsigned int max_cpus)
116{ 133{
117 static cpumask_t only_cpu_0 = { CPU_BITS_CPU0 }; 134 const cpumask_t only_cpu_0 = { CPU_BITS_CPU0 };
118 struct device_node *cpus_node = NULL;
119 struct device_node *cpu_node = NULL;
120 int ret;
121
122 /*
123 * This function is only called via smp_ops->smp_prepare_cpu().
124 * That only happens if a "/cpus" device tree node exists
125 * and has an "enable-method" property that selects the SMP
126 * operations defined herein.
127 */
128 cpus_node = of_find_node_by_path("/cpus");
129 if (!cpus_node)
130 return;
131
132 for_each_child_of_node(cpus_node, cpu_node) {
133 u32 cpuid;
134
135 if (of_node_cmp(cpu_node->type, "cpu"))
136 continue;
137
138 if (of_property_read_u32(cpu_node, "reg", &cpuid)) {
139 pr_debug("%s: missing reg property\n",
140 cpu_node->full_name);
141 ret = -ENOENT;
142 goto out;
143 }
144
145 /*
146 * "secondary-boot-reg" property should be defined only
147 * for secondary cpu
148 */
149 if ((cpuid & MPIDR_CPUID_BITMASK) == 1) {
150 /*
151 * Our secondary enable method requires a
152 * "secondary-boot-reg" property to specify a register
153 * address used to request the ROM code boot a secondary
154 * core. If we have any trouble getting this we fall
155 * back to uniprocessor mode.
156 */
157 if (of_property_read_u32(cpu_node,
158 OF_SECONDARY_BOOT,
159 &secondary_boot_addr)) {
160 pr_warn("%s: no" OF_SECONDARY_BOOT "property\n",
161 cpu_node->name);
162 ret = -ENOENT;
163 goto out;
164 }
165 }
166 }
167
168 /*
169 * Enable the SCU on Cortex A9 based SoCs. If -ENOENT is
170 * returned, the SoC reported a uniprocessor configuration.
171 * We bail on any other error.
172 */
173 ret = scu_a9_enable();
174out:
175 of_node_put(cpu_node);
176 of_node_put(cpus_node);
177 135
178 if (ret) { 136 /* Enable the SCU on Cortex A9 based SoCs */
137 if (scu_a9_enable()) {
179 /* Update the CPU present map to reflect uniprocessor mode */ 138 /* Update the CPU present map to reflect uniprocessor mode */
180 pr_warn("disabling SMP\n"); 139 pr_warn("failed to enable A9 SCU - disabling SMP\n");
181 init_cpu_present(&only_cpu_0); 140 init_cpu_present(&only_cpu_0);
182 } 141 }
183} 142}
@@ -208,6 +167,7 @@ static int kona_boot_secondary(unsigned int cpu, struct task_struct *idle)
208 u32 cpu_id; 167 u32 cpu_id;
209 u32 boot_val; 168 u32 boot_val;
210 bool timeout = false; 169 bool timeout = false;
170 const u32 secondary_boot_addr = secondary_boot_addr_for(cpu);
211 171
212 cpu_id = cpu_logical_map(cpu); 172 cpu_id = cpu_logical_map(cpu);
213 if (cpu_id & ~BOOT_ADDR_CPUID_MASK) { 173 if (cpu_id & ~BOOT_ADDR_CPUID_MASK) {
@@ -215,13 +175,11 @@ static int kona_boot_secondary(unsigned int cpu, struct task_struct *idle)
215 return -EINVAL; 175 return -EINVAL;
216 } 176 }
217 177
218 if (!secondary_boot_addr) { 178 if (!secondary_boot_addr)
219 pr_err("required secondary boot register not specified\n");
220 return -EINVAL; 179 return -EINVAL;
221 }
222 180
223 boot_reg = ioremap_nocache( 181 boot_reg = ioremap_nocache((phys_addr_t)secondary_boot_addr,
224 (phys_addr_t)secondary_boot_addr, sizeof(u32)); 182 sizeof(phys_addr_t));
225 if (!boot_reg) { 183 if (!boot_reg) {
226 pr_err("unable to map boot register for cpu %u\n", cpu_id); 184 pr_err("unable to map boot register for cpu %u\n", cpu_id);
227 return -ENOMEM; 185 return -ENOMEM;
@@ -315,7 +273,7 @@ static int nsp_boot_secondary(unsigned int cpu, struct task_struct *idle)
315 * After wake up, secondary core branches to the startup 273 * After wake up, secondary core branches to the startup
316 * address programmed at SKU ROM LUT location. 274 * address programmed at SKU ROM LUT location.
317 */ 275 */
318 ret = nsp_write_lut(); 276 ret = nsp_write_lut(cpu);
319 if (ret) { 277 if (ret) {
320 pr_err("unable to write startup addr to SKU ROM LUT\n"); 278 pr_err("unable to write startup addr to SKU ROM LUT\n");
321 goto out; 279 goto out;
@@ -328,12 +286,12 @@ out:
328 return ret; 286 return ret;
329} 287}
330 288
331static const struct smp_operations bcm_smp_ops __initconst = { 289static const struct smp_operations kona_smp_ops __initconst = {
332 .smp_prepare_cpus = bcm_smp_prepare_cpus, 290 .smp_prepare_cpus = bcm_smp_prepare_cpus,
333 .smp_boot_secondary = kona_boot_secondary, 291 .smp_boot_secondary = kona_boot_secondary,
334}; 292};
335CPU_METHOD_OF_DECLARE(bcm_smp_bcm281xx, "brcm,bcm11351-cpu-method", 293CPU_METHOD_OF_DECLARE(bcm_smp_bcm281xx, "brcm,bcm11351-cpu-method",
336 &bcm_smp_ops); 294 &kona_smp_ops);
337 295
338static const struct smp_operations bcm23550_smp_ops __initconst = { 296static const struct smp_operations bcm23550_smp_ops __initconst = {
339 .smp_boot_secondary = bcm23550_boot_secondary, 297 .smp_boot_secondary = bcm23550_boot_secondary,
diff --git a/drivers/clk/ti/clk-43xx.c b/drivers/clk/ti/clk-43xx.c
index 7255aa818b1f..e816a7500e43 100644
--- a/drivers/clk/ti/clk-43xx.c
+++ b/drivers/clk/ti/clk-43xx.c
@@ -58,6 +58,7 @@ static struct ti_dt_clk am43xx_clks[] = {
58 DT_CLK(NULL, "smartreflex1_fck", "smartreflex1_fck"), 58 DT_CLK(NULL, "smartreflex1_fck", "smartreflex1_fck"),
59 DT_CLK(NULL, "sha0_fck", "sha0_fck"), 59 DT_CLK(NULL, "sha0_fck", "sha0_fck"),
60 DT_CLK(NULL, "aes0_fck", "aes0_fck"), 60 DT_CLK(NULL, "aes0_fck", "aes0_fck"),
61 DT_CLK(NULL, "rng_fck", "rng_fck"),
61 DT_CLK(NULL, "timer1_fck", "timer1_fck"), 62 DT_CLK(NULL, "timer1_fck", "timer1_fck"),
62 DT_CLK(NULL, "timer2_fck", "timer2_fck"), 63 DT_CLK(NULL, "timer2_fck", "timer2_fck"),
63 DT_CLK(NULL, "timer3_fck", "timer3_fck"), 64 DT_CLK(NULL, "timer3_fck", "timer3_fck"),
diff --git a/drivers/spi/spi-st-ssc4.c b/drivers/spi/spi-st-ssc4.c
index d5adf9f31602..a56eca0e95a6 100644
--- a/drivers/spi/spi-st-ssc4.c
+++ b/drivers/spi/spi-st-ssc4.c
@@ -68,32 +68,6 @@ struct spi_st {
68 struct completion done; 68 struct completion done;
69}; 69};
70 70
71static int spi_st_clk_enable(struct spi_st *spi_st)
72{
73 /*
74 * Current platforms use one of the core clocks for SPI and I2C.
75 * If we attempt to disable the clock, the system will hang.
76 *
77 * TODO: Remove this when platform supports power domains.
78 */
79 return 0;
80
81 return clk_prepare_enable(spi_st->clk);
82}
83
84static void spi_st_clk_disable(struct spi_st *spi_st)
85{
86 /*
87 * Current platforms use one of the core clocks for SPI and I2C.
88 * If we attempt to disable the clock, the system will hang.
89 *
90 * TODO: Remove this when platform supports power domains.
91 */
92 return;
93
94 clk_disable_unprepare(spi_st->clk);
95}
96
97/* Load the TX FIFO */ 71/* Load the TX FIFO */
98static void ssc_write_tx_fifo(struct spi_st *spi_st) 72static void ssc_write_tx_fifo(struct spi_st *spi_st)
99{ 73{
@@ -349,7 +323,7 @@ static int spi_st_probe(struct platform_device *pdev)
349 goto put_master; 323 goto put_master;
350 } 324 }
351 325
352 ret = spi_st_clk_enable(spi_st); 326 ret = clk_prepare_enable(spi_st->clk);
353 if (ret) 327 if (ret)
354 goto put_master; 328 goto put_master;
355 329
@@ -408,7 +382,7 @@ static int spi_st_probe(struct platform_device *pdev)
408 return 0; 382 return 0;
409 383
410clk_disable: 384clk_disable:
411 spi_st_clk_disable(spi_st); 385 clk_disable_unprepare(spi_st->clk);
412put_master: 386put_master:
413 spi_master_put(master); 387 spi_master_put(master);
414 return ret; 388 return ret;
@@ -419,7 +393,7 @@ static int spi_st_remove(struct platform_device *pdev)
419 struct spi_master *master = platform_get_drvdata(pdev); 393 struct spi_master *master = platform_get_drvdata(pdev);
420 struct spi_st *spi_st = spi_master_get_devdata(master); 394 struct spi_st *spi_st = spi_master_get_devdata(master);
421 395
422 spi_st_clk_disable(spi_st); 396 clk_disable_unprepare(spi_st->clk);
423 397
424 pinctrl_pm_select_sleep_state(&pdev->dev); 398 pinctrl_pm_select_sleep_state(&pdev->dev);
425 399
@@ -435,7 +409,7 @@ static int spi_st_runtime_suspend(struct device *dev)
435 writel_relaxed(0, spi_st->base + SSC_IEN); 409 writel_relaxed(0, spi_st->base + SSC_IEN);
436 pinctrl_pm_select_sleep_state(dev); 410 pinctrl_pm_select_sleep_state(dev);
437 411
438 spi_st_clk_disable(spi_st); 412 clk_disable_unprepare(spi_st->clk);
439 413
440 return 0; 414 return 0;
441} 415}
@@ -446,7 +420,7 @@ static int spi_st_runtime_resume(struct device *dev)
446 struct spi_st *spi_st = spi_master_get_devdata(master); 420 struct spi_st *spi_st = spi_master_get_devdata(master);
447 int ret; 421 int ret;
448 422
449 ret = spi_st_clk_enable(spi_st); 423 ret = clk_prepare_enable(spi_st->clk);
450 pinctrl_pm_select_default_state(dev); 424 pinctrl_pm_select_default_state(dev);
451 425
452 return ret; 426 return ret;
diff --git a/include/dt-bindings/clock/r8a7792-clock.h b/include/dt-bindings/clock/r8a7792-clock.h
new file mode 100644
index 000000000000..9a8b392ceb00
--- /dev/null
+++ b/include/dt-bindings/clock/r8a7792-clock.h
@@ -0,0 +1,102 @@
1/*
2 * Copyright (C) 2016 Cogent Embedded, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 */
9
10#ifndef __DT_BINDINGS_CLOCK_R8A7792_H__
11#define __DT_BINDINGS_CLOCK_R8A7792_H__
12
13/* CPG */
14#define R8A7792_CLK_MAIN 0
15#define R8A7792_CLK_PLL0 1
16#define R8A7792_CLK_PLL1 2
17#define R8A7792_CLK_PLL3 3
18#define R8A7792_CLK_LB 4
19#define R8A7792_CLK_QSPI 5
20#define R8A7792_CLK_Z 6
21
22/* MSTP0 */
23#define R8A7792_CLK_MSIOF0 0
24
25/* MSTP1 */
26#define R8A7792_CLK_JPU 6
27#define R8A7792_CLK_TMU1 11
28#define R8A7792_CLK_TMU3 21
29#define R8A7792_CLK_TMU2 22
30#define R8A7792_CLK_CMT0 24
31#define R8A7792_CLK_TMU0 25
32#define R8A7792_CLK_VSP1DU1 27
33#define R8A7792_CLK_VSP1DU0 28
34#define R8A7792_CLK_VSP1_SY 31
35
36/* MSTP2 */
37#define R8A7792_CLK_MSIOF1 8
38#define R8A7792_CLK_SYS_DMAC1 18
39#define R8A7792_CLK_SYS_DMAC0 19
40
41/* MSTP3 */
42#define R8A7792_CLK_TPU0 4
43#define R8A7792_CLK_SDHI0 14
44#define R8A7792_CLK_CMT1 29
45
46/* MSTP4 */
47#define R8A7792_CLK_IRQC 7
48
49/* MSTP5 */
50#define R8A7792_CLK_AUDIO_DMAC0 2
51#define R8A7792_CLK_THERMAL 22
52#define R8A7792_CLK_PWM 23
53
54/* MSTP7 */
55#define R8A7792_CLK_HSCIF1 16
56#define R8A7792_CLK_HSCIF0 17
57#define R8A7792_CLK_SCIF3 18
58#define R8A7792_CLK_SCIF2 19
59#define R8A7792_CLK_SCIF1 20
60#define R8A7792_CLK_SCIF0 21
61#define R8A7792_CLK_DU1 23
62#define R8A7792_CLK_DU0 24
63
64/* MSTP8 */
65#define R8A7792_CLK_VIN5 4
66#define R8A7792_CLK_VIN4 5
67#define R8A7792_CLK_VIN3 8
68#define R8A7792_CLK_VIN2 9
69#define R8A7792_CLK_VIN1 10
70#define R8A7792_CLK_VIN0 11
71#define R8A7792_CLK_ETHERAVB 12
72
73/* MSTP9 */
74#define R8A7792_CLK_GPIO7 4
75#define R8A7792_CLK_GPIO6 5
76#define R8A7792_CLK_GPIO5 7
77#define R8A7792_CLK_GPIO4 8
78#define R8A7792_CLK_GPIO3 9
79#define R8A7792_CLK_GPIO2 10
80#define R8A7792_CLK_GPIO1 11
81#define R8A7792_CLK_GPIO0 12
82#define R8A7792_CLK_GPIO11 13
83#define R8A7792_CLK_GPIO10 14
84#define R8A7792_CLK_CAN1 15
85#define R8A7792_CLK_CAN0 16
86#define R8A7792_CLK_QSPI_MOD 17
87#define R8A7792_CLK_GPIO9 19
88#define R8A7792_CLK_GPIO8 21
89#define R8A7792_CLK_I2C5 25
90#define R8A7792_CLK_IICDVFS 26
91#define R8A7792_CLK_I2C4 27
92#define R8A7792_CLK_I2C3 28
93#define R8A7792_CLK_I2C2 29
94#define R8A7792_CLK_I2C1 30
95#define R8A7792_CLK_I2C0 31
96
97/* MSTP10 */
98#define R8A7792_CLK_SSI_ALL 5
99#define R8A7792_CLK_SSI4 11
100#define R8A7792_CLK_SSI3 12
101
102#endif /* __DT_BINDINGS_CLOCK_R8A7792_H__ */
diff --git a/include/dt-bindings/clock/r8a7794-clock.h b/include/dt-bindings/clock/r8a7794-clock.h
index 4d3ecd626c1f..a3491ba2f6ec 100644
--- a/include/dt-bindings/clock/r8a7794-clock.h
+++ b/include/dt-bindings/clock/r8a7794-clock.h
@@ -67,7 +67,6 @@
67#define R8A7794_CLK_IRQC 7 67#define R8A7794_CLK_IRQC 7
68 68
69/* MSTP5 */ 69/* MSTP5 */
70#define R8A7794_CLK_THERMAL 22
71#define R8A7794_CLK_PWM 23 70#define R8A7794_CLK_PWM 23
72 71
73/* MSTP7 */ 72/* MSTP7 */
diff --git a/include/dt-bindings/clock/stih407-clks.h b/include/dt-bindings/clock/stih407-clks.h
index 7af2b717b3b2..082edd9badfa 100644
--- a/include/dt-bindings/clock/stih407-clks.h
+++ b/include/dt-bindings/clock/stih407-clks.h
@@ -5,6 +5,10 @@
5#ifndef _DT_BINDINGS_CLK_STIH407 5#ifndef _DT_BINDINGS_CLK_STIH407
6#define _DT_BINDINGS_CLK_STIH407 6#define _DT_BINDINGS_CLK_STIH407
7 7
8/* CLOCKGEN A0 */
9#define CLK_IC_LMI0 0
10#define CLK_IC_LMI1 1
11
8/* CLOCKGEN C0 */ 12/* CLOCKGEN C0 */
9#define CLK_ICN_GPU 0 13#define CLK_ICN_GPU 0
10#define CLK_FDMA 1 14#define CLK_FDMA 1
diff --git a/include/dt-bindings/pinctrl/keystone.h b/include/dt-bindings/pinctrl/keystone.h
new file mode 100644
index 000000000000..7f97d776a8ff
--- /dev/null
+++ b/include/dt-bindings/pinctrl/keystone.h
@@ -0,0 +1,39 @@
1/*
2 * This header provides constants for Keystone pinctrl bindings.
3 *
4 * Copyright (C) 2016 Texas Instruments Incorporated - http://www.ti.com/
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
11 * kind, whether express or implied; without even the implied warranty
12 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16#ifndef _DT_BINDINGS_PINCTRL_KEYSTONE_H
17#define _DT_BINDINGS_PINCTRL_KEYSTONE_H
18
19#define MUX_MODE0 0
20#define MUX_MODE1 1
21#define MUX_MODE2 2
22#define MUX_MODE3 3
23#define MUX_MODE4 4
24#define MUX_MODE5 5
25
26#define BUFFER_CLASS_B (0 << 19)
27#define BUFFER_CLASS_C (1 << 19)
28#define BUFFER_CLASS_D (2 << 19)
29#define BUFFER_CLASS_E (3 << 19)
30
31#define PULL_DISABLE (1 << 16)
32#define PIN_PULLUP (1 << 17)
33#define PIN_PULLDOWN (0 << 17)
34
35#define KEYSTONE_IOPAD_OFFSET(pa, offset) (((pa) & 0xffff) - (offset))
36
37#define K2G_CORE_IOPAD(pa) KEYSTONE_IOPAD_OFFSET((pa), 0x1000)
38
39#endif
diff --git a/include/dt-bindings/power/r8a7792-sysc.h b/include/dt-bindings/power/r8a7792-sysc.h
new file mode 100644
index 000000000000..74f4a78e29aa
--- /dev/null
+++ b/include/dt-bindings/power/r8a7792-sysc.h
@@ -0,0 +1,26 @@
1/*
2 * Copyright (C) 2016 Cogent Embedded Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
7 */
8#ifndef __DT_BINDINGS_POWER_R8A7792_SYSC_H__
9#define __DT_BINDINGS_POWER_R8A7792_SYSC_H__
10
11/*
12 * These power domain indices match the numbers of the interrupt bits
13 * representing the power areas in the various Interrupt Registers
14 * (e.g. SYSCISR, Interrupt Status Register)
15 */
16
17#define R8A7792_PD_CA15_CPU0 0
18#define R8A7792_PD_CA15_CPU1 1
19#define R8A7792_PD_CA15_SCU 12
20#define R8A7792_PD_SGX 20
21#define R8A7792_PD_IMP 24
22
23/* Always-on power area */
24#define R8A7792_PD_ALWAYS_ON 32
25
26#endif /* __DT_BINDINGS_POWER_R8A7792_SYSC_H__ */