aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/arm/Samsung/Bootloader-interface.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/amlogic.txt7
-rw-r--r--Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt8
-rw-r--r--Documentation/devicetree/bindings/arm/fsl.txt44
-rw-r--r--Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt8
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt1
-rw-r--r--Documentation/devicetree/bindings/arm/rockchip.txt20
-rw-r--r--Documentation/devicetree/bindings/arm/scu.txt2
-rw-r--r--Documentation/devicetree/bindings/arm/shmobile.txt16
-rw-r--r--Documentation/devicetree/bindings/arm/syna.txt (renamed from Documentation/devicetree/bindings/arm/marvell/marvell,berlin.txt)11
-rw-r--r--Documentation/devicetree/bindings/arm/tegra.txt9
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt93
-rw-r--r--Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt103
-rw-r--r--Documentation/devicetree/bindings/arm/ux500/boards.txt2
-rw-r--r--Documentation/devicetree/bindings/clock/imx6q-clock.txt8
-rw-r--r--Documentation/devicetree/bindings/iommu/mediatek,iommu.txt4
-rw-r--r--Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt1
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt1
-rw-r--r--Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt3
-rw-r--r--Documentation/devicetree/bindings/net/dsa/b53.txt36
-rw-r--r--Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt1
-rw-r--r--Documentation/devicetree/bindings/power/actions,owl-sps.txt2
-rw-r--r--Documentation/devicetree/bindings/soc/rockchip/grf.txt2
-rw-r--r--Documentation/devicetree/bindings/usb/dwc2.txt1
-rw-r--r--Documentation/devicetree/bindings/vendor-prefixes.txt2
-rw-r--r--arch/arm/boot/dts/Makefile18
-rw-r--r--arch/arm/boot/dts/am335x-bone-common.dtsi6
-rw-r--r--arch/arm/boot/dts/am335x-boneblack-common.dtsi5
-rw-r--r--arch/arm/boot/dts/am335x-chiliboard.dts6
-rw-r--r--arch/arm/boot/dts/am335x-cm-t335.dts6
-rw-r--r--arch/arm/boot/dts/am335x-evm.dts12
-rw-r--r--arch/arm/boot/dts/am335x-evmsk.dts12
-rw-r--r--arch/arm/boot/dts/am335x-igep0033.dtsi13
-rw-r--r--arch/arm/boot/dts/am335x-lxm.dts12
-rw-r--r--arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi249
-rw-r--r--arch/arm/boot/dts/am335x-moxa-uc-2101.dts69
-rw-r--r--arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts12
-rw-r--r--arch/arm/boot/dts/am335x-nano.dts12
-rw-r--r--arch/arm/boot/dts/am335x-osd3358-sm-red.dts8
-rw-r--r--arch/arm/boot/dts/am335x-pdu001.dts14
-rw-r--r--arch/arm/boot/dts/am335x-pepper.dts12
-rw-r--r--arch/arm/boot/dts/am335x-sancloud-bbe.dts6
-rw-r--r--arch/arm/boot/dts/am335x-shc.dts1
-rw-r--r--arch/arm/boot/dts/am3517-evm-ui.dtsi220
-rw-r--r--arch/arm/boot/dts/am3517-evm.dts1
-rw-r--r--arch/arm/boot/dts/am4372.dtsi2
-rw-r--r--arch/arm/boot/dts/am437x-cm-t43.dts12
-rw-r--r--arch/arm/boot/dts/am437x-gp-evm.dts6
-rw-r--r--arch/arm/boot/dts/am437x-idk-evm.dts6
-rw-r--r--arch/arm/boot/dts/am437x-sk-evm.dts12
-rw-r--r--arch/arm/boot/dts/am43x-epos-evm.dts6
-rw-r--r--arch/arm/boot/dts/am571x-idk.dts84
-rw-r--r--arch/arm/boot/dts/am572x-idk-common.dtsi76
-rw-r--r--arch/arm/boot/dts/am572x-idk.dts4
-rw-r--r--arch/arm/boot/dts/am57xx-cl-som-am57x.dts14
-rw-r--r--arch/arm/boot/dts/am57xx-idk-common.dtsi18
-rw-r--r--arch/arm/boot/dts/arm-realview-eb.dtsi2
-rw-r--r--arch/arm/boot/dts/arm-realview-pb1176.dts2
-rw-r--r--arch/arm/boot/dts/arm-realview-pb11mp.dts2
-rw-r--r--arch/arm/boot/dts/arm-realview-pbx.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-385-db-88f6820-amc.dts155
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3236.dtsi4
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx3336.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-98dx4251.dtsi2
-rw-r--r--arch/arm/boot/dts/armada-xp-db-dxbc2.dts18
-rw-r--r--arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts18
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts207
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts146
-rw-r--r--arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts47
-rw-r--r--arch/arm/boot/dts/aspeed-g4.dtsi2
-rw-r--r--arch/arm/boot/dts/aspeed-g5.dtsi2
-rw-r--r--arch/arm/boot/dts/at91-dvk_su60_somc.dtsi4
-rw-r--r--arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi4
-rw-r--r--arch/arm/boot/dts/at91-nattis-2-natte-2.dts103
-rw-r--r--arch/arm/boot/dts/at91-sama5d27_som1_ek.dts42
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts8
-rw-r--r--arch/arm/boot/dts/at91-sama5d2_xplained.dts30
-rw-r--r--arch/arm/boot/dts/at91-sama5d3_xplained.dts11
-rw-r--r--arch/arm/boot/dts/at91-sama5d4_xplained.dts13
-rw-r--r--arch/arm/boot/dts/at91-tse850-3.dts32
-rw-r--r--arch/arm/boot/dts/at91-vinco.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9260ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9261ek.dts2
-rw-r--r--arch/arm/boot/dts/at91sam9g20ek_common.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi2
-rw-r--r--arch/arm/boot/dts/at91sam9x5cm.dtsi18
-rw-r--r--arch/arm/boot/dts/bcm-hr2.dtsi2
-rw-r--r--arch/arm/boot/dts/bcm-nsp.dtsi33
-rw-r--r--arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts87
-rw-r--r--arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi52
-rw-r--r--arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi14
-rw-r--r--arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts28
-rw-r--r--arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts31
-rw-r--r--arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts28
-rw-r--r--arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi4
-rw-r--r--arch/arm/boot/dts/bcm5301x.dtsi5
-rw-r--r--arch/arm/boot/dts/bcm958625hr.dts26
-rw-r--r--arch/arm/boot/dts/da850-evm.dts6
-rw-r--r--arch/arm/boot/dts/da850-lego-ev3.dts3
-rw-r--r--arch/arm/boot/dts/dm8148-evm.dts14
-rw-r--r--arch/arm/boot/dts/dm8148-t410.dts14
-rw-r--r--arch/arm/boot/dts/dove-cubox.dts2
-rw-r--r--arch/arm/boot/dts/dove.dtsi6
-rw-r--r--arch/arm/boot/dts/dra62x-j5eco-evm.dts14
-rw-r--r--arch/arm/boot/dts/dra7-evm.dts14
-rw-r--r--arch/arm/boot/dts/dra7.dtsi6
-rw-r--r--arch/arm/boot/dts/dra71-evm.dts4
-rw-r--r--arch/arm/boot/dts/dra72-evm-revc.dts4
-rw-r--r--arch/arm/boot/dts/dra72-evm.dts8
-rw-r--r--arch/arm/boot/dts/dra76-evm.dts4
-rw-r--r--arch/arm/boot/dts/exynos3250-artik5.dtsi7
-rw-r--r--arch/arm/boot/dts/exynos4210-origen.dts9
-rw-r--r--arch/arm/boot/dts/exynos4210-trats.dts15
-rw-r--r--arch/arm/boot/dts/exynos4210-universal_c210.dts11
-rw-r--r--arch/arm/boot/dts/exynos4412-midas.dtsi3
-rw-r--r--arch/arm/boot/dts/exynos4412-odroid-common.dtsi3
-rw-r--r--arch/arm/boot/dts/exynos5250-arndale.dts102
-rw-r--r--arch/arm/boot/dts/exynos5250-pinctrl.dtsi11
-rw-r--r--arch/arm/boot/dts/exynos5250-snow-rev5.dts11
-rw-r--r--arch/arm/boot/dts/exynos5250.dtsi152
-rw-r--r--arch/arm/boot/dts/exynos5410-odroidxu.dts10
-rw-r--r--arch/arm/boot/dts/exynos5420-peach-pit.dts5
-rw-r--r--arch/arm/boot/dts/exynos5422-odroid-core.dtsi157
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi6
-rw-r--r--arch/arm/boot/dts/exynos5422-odroidxu3.dts6
-rw-r--r--arch/arm/boot/dts/exynos5800-peach-pi.dts5
-rw-r--r--arch/arm/boot/dts/hip04.dtsi346
-rw-r--r--arch/arm/boot/dts/imx1.dtsi4
-rw-r--r--arch/arm/boot/dts/imx23-evk.dts2
-rw-r--r--arch/arm/boot/dts/imx23-olinuxino.dts4
-rw-r--r--arch/arm/boot/dts/imx23-sansa.dts4
-rw-r--r--arch/arm/boot/dts/imx23-stmp378x_devb.dts2
-rw-r--r--arch/arm/boot/dts/imx23-xfi3.dts4
-rw-r--r--arch/arm/boot/dts/imx23.dtsi4
-rw-r--r--arch/arm/boot/dts/imx25.dtsi6
-rw-r--r--arch/arm/boot/dts/imx27.dtsi6
-rw-r--r--arch/arm/boot/dts/imx28-apf28dev.dts4
-rw-r--r--arch/arm/boot/dts/imx28-apx4devkit.dts4
-rw-r--r--arch/arm/boot/dts/imx28-cfa10036.dts2
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2-485.dts4
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2-enocean.dts4
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2-spi.dts4
-rw-r--r--arch/arm/boot/dts/imx28-duckbill-2.dts4
-rw-r--r--arch/arm/boot/dts/imx28-duckbill.dts4
-rw-r--r--arch/arm/boot/dts/imx28-evk.dts6
-rw-r--r--arch/arm/boot/dts/imx28-m28cu3.dts4
-rw-r--r--arch/arm/boot/dts/imx28-m28evk.dts4
-rw-r--r--arch/arm/boot/dts/imx28-sps1.dts4
-rw-r--r--arch/arm/boot/dts/imx28-ts4600.dts2
-rw-r--r--arch/arm/boot/dts/imx28.dtsi8
-rw-r--r--arch/arm/boot/dts/imx31.dtsi4
-rw-r--r--arch/arm/boot/dts/imx35.dtsi4
-rw-r--r--arch/arm/boot/dts/imx50.dtsi6
-rw-r--r--arch/arm/boot/dts/imx51-babbage.dts1
-rw-r--r--arch/arm/boot/dts/imx51-zii-rdu1.dts2
-rw-r--r--arch/arm/boot/dts/imx51-zii-scu2-mezz.dts8
-rw-r--r--arch/arm/boot/dts/imx51-zii-scu3-esb.dts4
-rw-r--r--arch/arm/boot/dts/imx51.dtsi8
-rw-r--r--arch/arm/boot/dts/imx53-ppd.dts1
-rw-r--r--arch/arm/boot/dts/imx53.dtsi6
-rw-r--r--arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-icore-mipi.dts2
-rw-r--r--arch/arm/boot/dts/imx6dl-icore-rqs.dts38
-rw-r--r--arch/arm/boot/dts/imx6dl-icore.dts38
-rw-r--r--arch/arm/boot/dts/imx6dl-riotboard.dts5
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-eval.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-apalis-ixora.dts2
-rw-r--r--arch/arm/boot/dts/imx6q-icore-mipi.dts6
-rw-r--r--arch/arm/boot/dts/imx6q-icore-ofcap10.dts38
-rw-r--r--arch/arm/boot/dts/imx6q-icore-ofcap12.dts38
-rw-r--r--arch/arm/boot/dts/imx6q-icore-rqs.dts39
-rw-r--r--arch/arm/boot/dts/imx6q-icore.dts38
-rw-r--r--arch/arm/boot/dts/imx6q.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6qdl-apalis.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore-1.5.dtsi34
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi41
-rw-r--r--arch/arm/boot/dts/imx6qdl-icore.dtsi42
-rw-r--r--arch/arm/boot/dts/imx6qdl-sabreauto.dtsi67
-rw-r--r--arch/arm/boot/dts/imx6qdl-wandboard.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi4
-rw-r--r--arch/arm/boot/dts/imx6qdl.dtsi8
-rw-r--r--arch/arm/boot/dts/imx6sl.dtsi8
-rw-r--r--arch/arm/boot/dts/imx6sll.dtsi31
-rw-r--r--arch/arm/boot/dts/imx6sx-sdb.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6sx.dtsi14
-rw-r--r--arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts390
-rw-r--r--arch/arm/boot/dts/imx6ul-geam.dts40
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-emmc.dts61
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot-nand.dts63
-rw-r--r--arch/arm/boot/dts/imx6ul-isiot.dtsi90
-rw-r--r--arch/arm/boot/dts/imx6ul.dtsi28
-rw-r--r--arch/arm/boot/dts/imx6ull-14x14-evk.dts2
-rw-r--r--arch/arm/boot/dts/imx6ull-pinfunc.h39
-rw-r--r--arch/arm/boot/dts/imx6ull.dtsi2
-rw-r--r--arch/arm/boot/dts/imx6ulz-14x14-evk.dts20
-rw-r--r--arch/arm/boot/dts/imx6ulz.dtsi38
-rw-r--r--arch/arm/boot/dts/imx7d-sdb.dts2
-rw-r--r--arch/arm/boot/dts/imx7d.dtsi15
-rw-r--r--arch/arm/boot/dts/imx7s-warp.dts53
-rw-r--r--arch/arm/boot/dts/imx7s.dtsi131
-rw-r--r--arch/arm/boot/dts/imx7ulp-pinfunc.h16
-rw-r--r--arch/arm/boot/dts/iwg20d-q7-common.dtsi4
-rw-r--r--arch/arm/boot/dts/keystone-k2g.dtsi2
-rw-r--r--arch/arm/boot/dts/lpc32xx.dtsi4
-rw-r--r--arch/arm/boot/dts/ls1021a-qds.dts2
-rw-r--r--arch/arm/boot/dts/ls1021a-twr.dts2
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi12
-rw-r--r--arch/arm/boot/dts/meson8.dtsi2
-rw-r--r--arch/arm/boot/dts/meson8b-ec100.dts248
-rw-r--r--arch/arm/boot/dts/meson8b-odroidc1.dts109
-rw-r--r--arch/arm/boot/dts/meson8b.dtsi47
-rw-r--r--arch/arm/boot/dts/mt7623.dtsi124
-rw-r--r--arch/arm/boot/dts/omap2.dtsi4
-rw-r--r--arch/arm/boot/dts/omap2430.dtsi2
-rw-r--r--arch/arm/boot/dts/omap3-beagle-xm.dts17
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts17
-rw-r--r--arch/arm/boot/dts/omap3-gta04.dtsi262
-rw-r--r--arch/arm/boot/dts/omap3-gta04a3.dts2
-rw-r--r--arch/arm/boot/dts/omap3-gta04a4.dts2
-rw-r--r--arch/arm/boot/dts/omap3-gta04a5.dts129
-rw-r--r--arch/arm/boot/dts/omap3-gta04a5one.dts114
-rw-r--r--arch/arm/boot/dts/omap3-n9.dts2
-rw-r--r--arch/arm/boot/dts/omap5-board-common.dtsi4
-rw-r--r--arch/arm/boot/dts/orion5x-linkstation.dtsi2
-rw-r--r--arch/arm/boot/dts/owl-s500-cubieboard6.dts3
-rw-r--r--arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts3
-rw-r--r--arch/arm/boot/dts/owl-s500-guitar.dtsi3
-rw-r--r--arch/arm/boot/dts/owl-s500.dtsi3
-rw-r--r--arch/arm/boot/dts/pxa25x.dtsi4
-rw-r--r--arch/arm/boot/dts/pxa27x.dtsi6
-rw-r--r--arch/arm/boot/dts/pxa2xx.dtsi27
-rw-r--r--arch/arm/boot/dts/qcom-apq8064.dtsi71
-rw-r--r--arch/arm/boot/dts/qcom-ipq4019.dtsi143
-rw-r--r--arch/arm/boot/dts/qcom-ipq8064-ap148.dts83
-rw-r--r--arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi125
-rw-r--r--arch/arm/boot/dts/qcom-ipq8064.dtsi286
-rw-r--r--arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts83
-rw-r--r--arch/arm/boot/dts/qcom-msm8974.dtsi198
-rw-r--r--arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts4
-rw-r--r--arch/arm/boot/dts/r8a7743-iwg20d-q7.dts4
-rw-r--r--arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts12
-rw-r--r--arch/arm/boot/dts/r8a77470.dtsi168
-rw-r--r--arch/arm/boot/dts/r8a7778-bockw.dts2
-rw-r--r--arch/arm/boot/dts/r8a7778.dtsi2
-rw-r--r--arch/arm/boot/dts/r8a7779-marzen.dts2
-rw-r--r--arch/arm/boot/dts/r8a7779.dtsi4
-rw-r--r--arch/arm/boot/dts/r8a7790-stout.dts4
-rw-r--r--arch/arm/boot/dts/r8a7790.dtsi6
-rw-r--r--arch/arm/boot/dts/r8a7791.dtsi6
-rw-r--r--arch/arm/boot/dts/r8a7792.dtsi3
-rw-r--r--arch/arm/boot/dts/r8a7793-gose.dts16
-rw-r--r--arch/arm/boot/dts/r8a7793.dtsi2
-rw-r--r--arch/arm/boot/dts/r8a7794-silk.dts25
-rw-r--r--arch/arm/boot/dts/r8a7794.dtsi3
-rw-r--r--arch/arm/boot/dts/r9a06g032.dtsi88
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi2
-rw-r--r--arch/arm/boot/dts/rk3188-radxarock.dts8
-rw-r--r--arch/arm/boot/dts/rk3188.dtsi82
-rw-r--r--arch/arm/boot/dts/rk3288-tinker-s.dts26
-rw-r--r--arch/arm/boot/dts/rk3288-tinker.dts498
-rw-r--r--arch/arm/boot/dts/rk3288-tinker.dtsi502
-rw-r--r--arch/arm/boot/dts/s5pv210.dtsi2
-rw-r--r--arch/arm/boot/dts/sama5d2.dtsi123
-rw-r--r--arch/arm/boot/dts/sama5d4.dtsi8
-rw-r--r--arch/arm/boot/dts/socfpga.dtsi22
-rw-r--r--arch/arm/boot/dts/socfpga_arria10.dtsi32
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts (renamed from arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts)2
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_socrates.dts7
-rw-r--r--arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts3
-rw-r--r--arch/arm/boot/dts/ste-dbx5x0.dtsi80
-rw-r--r--arch/arm/boot/dts/ste-href-family-pinctrl.dtsi8
-rw-r--r--arch/arm/boot/dts/ste-href.dtsi1
-rw-r--r--arch/arm/boot/dts/ste-hrefprev60.dtsi2
-rw-r--r--arch/arm/boot/dts/ste-snowball.dts3
-rw-r--r--arch/arm/boot/dts/ste-u300.dts2
-rw-r--r--arch/arm/boot/dts/stih410-b2260.dts5
-rw-r--r--arch/arm/boot/dts/stihxxx-b2120.dtsi11
-rw-r--r--arch/arm/boot/dts/stm32429i-eval.dts3
-rw-r--r--arch/arm/boot/dts/stm32f429.dtsi2
-rw-r--r--arch/arm/boot/dts/stm32f469-disco.dts3
-rw-r--r--arch/arm/boot/dts/stm32f746-disco.dts3
-rw-r--r--arch/arm/boot/dts/stm32f769-disco.dts3
-rw-r--r--arch/arm/boot/dts/stm32h743.dtsi2
-rw-r--r--arch/arm/boot/dts/stm32mp157c-ev1.dts73
-rw-r--r--arch/arm/boot/dts/stm32mp157c.dtsi2
-rw-r--r--arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi3
-rw-r--r--arch/arm/boot/dts/sun5i.dtsi26
-rw-r--r--arch/arm/boot/dts/sun7i-a20.dtsi26
-rw-r--r--arch/arm/boot/dts/sun8i-a33.dtsi26
-rw-r--r--arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts5
-rw-r--r--arch/arm/boot/dts/sun8i-a83t.dtsi18
-rw-r--r--arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus-v1.2.dts13
-rw-r--r--arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts190
-rw-r--r--arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts140
-rw-r--r--arch/arm/boot/dts/sun8i-h3.dtsi25
-rw-r--r--arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts21
-rw-r--r--arch/arm/boot/dts/sun8i-r40.dtsi13
-rw-r--r--arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi3
-rw-r--r--arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts2
-rw-r--r--arch/arm/boot/dts/sun9i-a80.dtsi2
-rw-r--r--arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi31
-rw-r--r--arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi231
-rw-r--r--arch/arm/boot/dts/sunxi-h3-h5.dtsi2
-rw-r--r--arch/arm/boot/dts/tegra124-apalis-eval.dts40
-rw-r--r--arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts43
-rw-r--r--arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi452
-rw-r--r--arch/arm/boot/dts/tegra124-apalis.dtsi451
-rw-r--r--arch/arm/boot/dts/tegra20-colibri-eval-v3.dts262
-rw-r--r--arch/arm/boot/dts/tegra20-colibri-iris.dts200
-rw-r--r--arch/arm/boot/dts/tegra20-colibri.dtsi657
-rw-r--r--arch/arm/boot/dts/tegra20-paz00.dts12
-rw-r--r--arch/arm/boot/dts/tegra20.dtsi28
-rw-r--r--arch/arm/boot/dts/tegra30-apalis-eval.dts148
-rw-r--r--arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts266
-rw-r--r--arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi1189
-rw-r--r--arch/arm/boot/dts/tegra30-apalis.dtsi705
-rw-r--r--arch/arm/boot/dts/tegra30-colibri-eval-v3.dts130
-rw-r--r--arch/arm/boot/dts/tegra30-colibri.dtsi780
-rw-r--r--arch/arm/boot/dts/tegra30.dtsi10
-rw-r--r--arch/arm/boot/dts/uniphier-ld4-ref.dts4
-rw-r--r--arch/arm/boot/dts/uniphier-ld4.dtsi48
-rw-r--r--arch/arm/boot/dts/uniphier-ld6b-ref.dts12
-rw-r--r--arch/arm/boot/dts/uniphier-pinctrl.dtsi25
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-ace.dts12
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-ref.dts12
-rw-r--r--arch/arm/boot/dts/uniphier-pro4-sanji.dts12
-rw-r--r--arch/arm/boot/dts/uniphier-pro4.dtsi189
-rw-r--r--arch/arm/boot/dts/uniphier-pro5.dtsi59
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2-gentil.dts12
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2-vodka.dts8
-rw-r--r--arch/arm/boot/dts/uniphier-pxs2.dtsi239
-rw-r--r--arch/arm/boot/dts/uniphier-sld8-ref.dts4
-rw-r--r--arch/arm/boot/dts/uniphier-sld8.dtsi48
-rw-r--r--arch/arm/boot/dts/versatile-ab.dts2
-rw-r--r--arch/arm/boot/dts/vf500.dtsi43
-rw-r--r--arch/arm/boot/dts/vf610-twr.dts43
-rw-r--r--arch/arm/boot/dts/vf610-zii-cfu1.dts30
-rw-r--r--arch/arm/boot/dts/vf610-zii-dev-rev-c.dts44
-rw-r--r--arch/arm/boot/dts/vf610.dtsi44
-rw-r--r--arch/arm/boot/dts/vfxxx.dtsi55
-rw-r--r--arch/arm/boot/dts/zynq-zc702.dts12
-rw-r--r--arch/arm/boot/dts/zynq-zc770-xm010.dts2
-rw-r--r--arch/arm/boot/dts/zynq-zc770-xm013.dts2
-rw-r--r--arch/arm/mach-exynos/common.h1
-rw-r--r--arch/arm/mach-exynos/firmware.c14
-rw-r--r--arch/arm/mach-exynos/suspend.c34
-rw-r--r--arch/arm/mach-s3c24xx/mach-gta02.c42
-rw-r--r--arch/arm/mach-s3c24xx/mach-mini2440.c113
-rw-r--r--arch/arm64/boot/dts/actions/Makefile2
-rw-r--r--arch/arm64/boot/dts/actions/s700-cubieboard7.dts7
-rw-r--r--arch/arm64/boot/dts/actions/s700.dtsi21
-rw-r--r--arch/arm64/boot/dts/actions/s900-bubblegum-96.dts224
-rw-r--r--arch/arm64/boot/dts/actions/s900.dtsi118
-rw-r--r--arch/arm64/boot/dts/allwinner/Makefile4
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts2
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts30
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts85
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts99
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts175
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts13
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts28
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts9
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts28
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts2
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi193
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus-v1.2.dts11
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus.dts11
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi43
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts150
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi23
-rw-r--r--arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi2
-rw-r--r--arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts5
-rw-r--r--arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi4
-rw-r--r--arch/arm64/boot/dts/amlogic/Makefile1
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-axg-s400.dts370
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-axg.dtsi1575
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts29
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-g12a.dtsi172
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gx.dtsi19
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl.dtsi2
-rw-r--r--arch/arm64/boot/dts/arm/juno-base.dtsi162
-rw-r--r--arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi52
-rw-r--r--arch/arm64/boot/dts/arm/juno.dts13
-rw-r--r--arch/arm64/boot/dts/broadcom/Makefile3
-rw-r--r--arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts2
-rw-r--r--arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi4
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi2
-rw-r--r--arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi4
-rw-r--r--arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi18
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi2
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts2
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts2
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi8
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts2
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts4
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi6
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi20
-rw-r--r--arch/arm64/boot/dts/hisilicon/Makefile1
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts35
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi3670.dtsi162
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi181
-rw-r--r--arch/arm64/boot/dts/hisilicon/hi6220.dtsi7
-rw-r--r--arch/arm64/boot/dts/lg/lg1312.dtsi4
-rw-r--r--arch/arm64/boot/dts/lg/lg1313.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/Makefile1
-rw-r--r--arch/arm64/boot/dts/marvell/armada-372x.dtsi2
-rw-r--r--arch/arm64/boot/dts/marvell/armada-37xx.dtsi15
-rw-r--r--arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts441
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi4
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi12
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap806.dtsi110
-rw-r--r--arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi16
-rw-r--r--arch/arm64/boot/dts/marvell/armada-common.dtsi1
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110.dtsi189
-rw-r--r--arch/arm64/boot/dts/mediatek/Makefile1
-rw-r--r--arch/arm64/boot/dts/mediatek/mt2712e.dtsi11
-rw-r--r--arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts530
-rw-r--r--arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts196
-rw-r--r--arch/arm64/boot/dts/mediatek/mt7622.dtsi62
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra186.dtsi76
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra194.dtsi16
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi12
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi1
-rw-r--r--arch/arm64/boot/dts/nvidia/tegra210.dtsi57
-rw-r--r--arch/arm64/boot/dts/qcom/Makefile1
-rw-r--r--arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi14
-rw-r--r--arch/arm64/boot/dts/qcom/apq8096-db820c.dts2
-rw-r--r--arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi14
-rw-r--r--arch/arm64/boot/dts/qcom/msm8916.dtsi98
-rw-r--r--arch/arm64/boot/dts/qcom/msm8996.dtsi15
-rw-r--r--arch/arm64/boot/dts/qcom/msm8998-mtp.dts13
-rw-r--r--arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi243
-rw-r--r--arch/arm64/boot/dts/qcom/msm8998.dtsi690
-rw-r--r--arch/arm64/boot/dts/qcom/pm8916.dtsi18
-rw-r--r--arch/arm64/boot/dts/qcom/pm8994.dtsi18
-rw-r--r--arch/arm64/boot/dts/qcom/pm8998.dtsi75
-rw-r--r--arch/arm64/boot/dts/qcom/pmi8998.dtsi40
-rw-r--r--arch/arm64/boot/dts/qcom/sdm845-mtp.dts382
-rw-r--r--arch/arm64/boot/dts/qcom/sdm845.dtsi300
-rw-r--r--arch/arm64/boot/dts/renesas/Makefile2
-rw-r--r--arch/arm64/boot/dts/renesas/r8a774a1.dtsi1663
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts3
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi18
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts3
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts3
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts17
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7795.dtsi137
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts3
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts3
-rw-r--r--arch/arm64/boot/dts/renesas/r8a7796.dtsi103
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77965-m3nulcb-kf.dts16
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77965-m3nulcb.dts33
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts14
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77965.dtsi417
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts26
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77970.dtsi116
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77980-condor.dts123
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts134
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77980.dtsi677
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts272
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77990.dtsi681
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77995-draak.dts362
-rw-r--r--arch/arm64/boot/dts/renesas/r8a77995.dtsi82
-rw-r--r--arch/arm64/boot/dts/renesas/salvator-common.dtsi9
-rw-r--r--arch/arm64/boot/dts/renesas/ulcb-kf.dtsi2
-rw-r--r--arch/arm64/boot/dts/renesas/ulcb.dtsi4
-rw-r--r--arch/arm64/boot/dts/rockchip/Makefile4
-rw-r--r--arch/arm64/boot/dts/rockchip/px30-evb.dts235
-rw-r--r--arch/arm64/boot/dts/rockchip/px30.dtsi2047
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts30
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3328-rock64.dts61
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3328.dtsi74
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-ficus.dts524
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-firefly.dts36
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts2
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts680
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-rock960.dts52
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi542
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts692
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi68
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399.dtsi32
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi52
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts4
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts4
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi255
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts12
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi283
-rw-r--r--arch/arm64/boot/dts/synaptics/as370.dtsi173
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-main.dtsi51
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi18
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi46
-rw-r--r--arch/arm64/boot/dts/ti/k3-am65.dtsi54
-rw-r--r--arch/arm64/boot/dts/ti/k3-am654-base-board.dts5
-rw-r--r--include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h18
-rw-r--r--include/dt-bindings/power/owl-s900-powergate.h23
509 files changed, 29079 insertions, 6220 deletions
diff --git a/Documentation/arm/Samsung/Bootloader-interface.txt b/Documentation/arm/Samsung/Bootloader-interface.txt
index ed494ac0beb2..d17ed518a7ea 100644
--- a/Documentation/arm/Samsung/Bootloader-interface.txt
+++ b/Documentation/arm/Samsung/Bootloader-interface.txt
@@ -26,6 +26,7 @@ Offset Value Purpose
260x20 0xfcba0d10 (Magic cookie) AFTR 260x20 0xfcba0d10 (Magic cookie) AFTR
270x24 exynos_cpu_resume_ns AFTR 270x24 exynos_cpu_resume_ns AFTR
280x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR 280x28 + 4*cpu 0x8 (Magic cookie, Exynos3250) AFTR
290x28 0x0 or last value during resume (Exynos542x) System suspend
29 30
30 31
312. Secure mode 322. Secure mode
diff --git a/Documentation/devicetree/bindings/arm/amlogic.txt b/Documentation/devicetree/bindings/arm/amlogic.txt
index b5c2b5c35766..4498292b833d 100644
--- a/Documentation/devicetree/bindings/arm/amlogic.txt
+++ b/Documentation/devicetree/bindings/arm/amlogic.txt
@@ -57,12 +57,17 @@ Boards with the Amlogic Meson AXG A113D SoC shall have the following properties:
57 Required root node property: 57 Required root node property:
58 compatible: "amlogic,a113d", "amlogic,meson-axg"; 58 compatible: "amlogic,a113d", "amlogic,meson-axg";
59 59
60Boards with the Amlogic Meson G12A S905D2 SoC shall have the following properties:
61 Required root node property:
62 compatible: "amlogic,g12a";
63
60Board compatible values (alphabetically, grouped by SoC): 64Board compatible values (alphabetically, grouped by SoC):
61 65
62 - "geniatech,atv1200" (Meson6) 66 - "geniatech,atv1200" (Meson6)
63 67
64 - "minix,neo-x8" (Meson8) 68 - "minix,neo-x8" (Meson8)
65 69
70 - "endless,ec100" (Meson8b)
66 - "hardkernel,odroid-c1" (Meson8b) 71 - "hardkernel,odroid-c1" (Meson8b)
67 - "tronfy,mxq" (Meson8b) 72 - "tronfy,mxq" (Meson8b)
68 73
@@ -101,6 +106,8 @@ Board compatible values (alphabetically, grouped by SoC):
101 106
102 - "amlogic,s400" (Meson axg a113d) 107 - "amlogic,s400" (Meson axg a113d)
103 108
109 - "amlogic,u200" (Meson g12a s905d2)
110
104Amlogic Meson Firmware registers Interface 111Amlogic Meson Firmware registers Interface
105------------------------------------------ 112------------------------------------------
106 113
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
index 1e3e29a545e2..0dcc3ea5adff 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
@@ -42,6 +42,14 @@ Raspberry Pi Compute Module
42Required root node properties: 42Required root node properties:
43compatible = "raspberrypi,compute-module", "brcm,bcm2835"; 43compatible = "raspberrypi,compute-module", "brcm,bcm2835";
44 44
45Raspberry Pi Compute Module 3
46Required root node properties:
47compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
48
49Raspberry Pi Compute Module 3 Lite
50Required root node properties:
51compatible = "raspberrypi,3-compute-module-lite", "brcm,bcm2837";
52
45Raspberry Pi Zero 53Raspberry Pi Zero
46Required root node properties: 54Required root node properties:
47compatible = "raspberrypi,model-zero", "brcm,bcm2835"; 55compatible = "raspberrypi,model-zero", "brcm,bcm2835";
diff --git a/Documentation/devicetree/bindings/arm/fsl.txt b/Documentation/devicetree/bindings/arm/fsl.txt
index 1e775aaa5c5b..5074aeecd327 100644
--- a/Documentation/devicetree/bindings/arm/fsl.txt
+++ b/Documentation/devicetree/bindings/arm/fsl.txt
@@ -57,6 +57,50 @@ i.MX6SLL EVK board
57Required root node properties: 57Required root node properties:
58 - compatible = "fsl,imx6sll-evk", "fsl,imx6sll"; 58 - compatible = "fsl,imx6sll-evk", "fsl,imx6sll";
59 59
60i.MX6 Quad Plus SABRE Smart Device Board
61Required root node properties:
62 - compatible = "fsl,imx6qp-sabresd", "fsl,imx6qp";
63
64i.MX6 Quad Plus SABRE Automotive Board
65Required root node properties:
66 - compatible = "fsl,imx6qp-sabreauto", "fsl,imx6qp";
67
68i.MX6 DualLite SABRE Smart Device Board
69Required root node properties:
70 - compatible = "fsl,imx6dl-sabresd", "fsl,imx6dl";
71
72i.MX6 DualLite/Solo SABRE Automotive Board
73Required root node properties:
74 - compatible = "fsl,imx6dl-sabreauto", "fsl,imx6dl";
75
76i.MX6 SoloLite EVK Board
77Required root node properties:
78 - compatible = "fsl,imx6sl-evk", "fsl,imx6sl";
79
80i.MX6 UltraLite 14x14 EVK Board
81Required root node properties:
82 - compatible = "fsl,imx6ul-14x14-evk", "fsl,imx6ul";
83
84i.MX6 UltraLiteLite 14x14 EVK Board
85Required root node properties:
86 - compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
87
88i.MX6 ULZ 14x14 EVK Board
89Required root node properties:
90 - compatible = "fsl,imx6ulz-14x14-evk", "fsl,imx6ull", "fsl,imx6ulz";
91
92i.MX6 SoloX SDB Board
93Required root node properties:
94 - compatible = "fsl,imx6sx-sdb", "fsl,imx6sx";
95
96i.MX6 SoloX Sabre Auto Board
97Required root node properties:
98 - compatible = "fsl,imx6sx-sabreauto", "fsl,imx6sx";
99
100i.MX7 SabreSD Board
101Required root node properties:
102 - compatible = "fsl,imx7d-sdb", "fsl,imx7d";
103
60Generic i.MX boards 104Generic i.MX boards
61------------------- 105-------------------
62 106
diff --git a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
index 199cd36fe1ba..a97f643e7d1c 100644
--- a/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
+++ b/Documentation/devicetree/bindings/arm/hisilicon/hisilicon.txt
@@ -8,6 +8,14 @@ HiKey960 Board
8Required root node properties: 8Required root node properties:
9 - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660"; 9 - compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
10 10
11Hi3670 SoC
12Required root node properties:
13 - compatible = "hisilicon,hi3670";
14
15HiKey970 Board
16Required root node properties:
17 - compatible = "hisilicon,hi3670-hikey970", "hisilicon,hi3670";
18
11Hi3798cv200 SoC 19Hi3798cv200 SoC
12Required root node properties: 20Required root node properties:
13 - compatible = "hisilicon,hi3798cv200"; 21 - compatible = "hisilicon,hi3798cv200";
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
index b404d592ce58..4e4a3c0ab9ab 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,apmixedsys.txt
@@ -10,6 +10,7 @@ Required Properties:
10 - "mediatek,mt2712-apmixedsys", "syscon" 10 - "mediatek,mt2712-apmixedsys", "syscon"
11 - "mediatek,mt6797-apmixedsys" 11 - "mediatek,mt6797-apmixedsys"
12 - "mediatek,mt7622-apmixedsys" 12 - "mediatek,mt7622-apmixedsys"
13 - "mediatek,mt7623-apmixedsys", "mediatek,mt2701-apmixedsys"
13 - "mediatek,mt8135-apmixedsys" 14 - "mediatek,mt8135-apmixedsys"
14 - "mediatek,mt8173-apmixedsys" 15 - "mediatek,mt8173-apmixedsys"
15- #clock-cells: Must be 1 16- #clock-cells: Must be 1
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt
index 34a69ba67f13..d1606b2c3e63 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,audsys.txt
@@ -8,6 +8,7 @@ Required Properties:
8- compatible: Should be one of: 8- compatible: Should be one of:
9 - "mediatek,mt2701-audsys", "syscon" 9 - "mediatek,mt2701-audsys", "syscon"
10 - "mediatek,mt7622-audsys", "syscon" 10 - "mediatek,mt7622-audsys", "syscon"
11 - "mediatek,mt7623-audsys", "mediatek,mt2701-audsys", "syscon"
11- #clock-cells: Must be 1 12- #clock-cells: Must be 1
12 13
13The AUDSYS controller uses the common clk binding from 14The AUDSYS controller uses the common clk binding from
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
index 4010e37c53a0..149567a38215 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,bdpsys.txt
@@ -8,6 +8,7 @@ Required Properties:
8- compatible: Should be: 8- compatible: Should be:
9 - "mediatek,mt2701-bdpsys", "syscon" 9 - "mediatek,mt2701-bdpsys", "syscon"
10 - "mediatek,mt2712-bdpsys", "syscon" 10 - "mediatek,mt2712-bdpsys", "syscon"
11 - "mediatek,mt7623-bdpsys", "mediatek,mt2701-bdpsys", "syscon"
11- #clock-cells: Must be 1 12- #clock-cells: Must be 1
12 13
13The bdpsys controller uses the common clk binding from 14The bdpsys controller uses the common clk binding from
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
index 8f5335b480ac..f17cfe64255d 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,ethsys.txt
@@ -8,6 +8,7 @@ Required Properties:
8- compatible: Should be: 8- compatible: Should be:
9 - "mediatek,mt2701-ethsys", "syscon" 9 - "mediatek,mt2701-ethsys", "syscon"
10 - "mediatek,mt7622-ethsys", "syscon" 10 - "mediatek,mt7622-ethsys", "syscon"
11 - "mediatek,mt7623-ethsys", "mediatek,mt2701-ethsys", "syscon"
11- #clock-cells: Must be 1 12- #clock-cells: Must be 1
12- #reset-cells: Must be 1 13- #reset-cells: Must be 1
13 14
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
index f5629d64cef2..323905af82c3 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,hifsys.txt
@@ -9,6 +9,7 @@ Required Properties:
9- compatible: Should be: 9- compatible: Should be:
10 - "mediatek,mt2701-hifsys", "syscon" 10 - "mediatek,mt2701-hifsys", "syscon"
11 - "mediatek,mt7622-hifsys", "syscon" 11 - "mediatek,mt7622-hifsys", "syscon"
12 - "mediatek,mt7623-hifsys", "mediatek,mt2701-hifsys", "syscon"
12- #clock-cells: Must be 1 13- #clock-cells: Must be 1
13 14
14The hifsys controller uses the common clk binding from 15The hifsys controller uses the common clk binding from
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
index 868bd51a98be..3f99672163e3 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,imgsys.txt
@@ -9,6 +9,7 @@ Required Properties:
9 - "mediatek,mt2701-imgsys", "syscon" 9 - "mediatek,mt2701-imgsys", "syscon"
10 - "mediatek,mt2712-imgsys", "syscon" 10 - "mediatek,mt2712-imgsys", "syscon"
11 - "mediatek,mt6797-imgsys", "syscon" 11 - "mediatek,mt6797-imgsys", "syscon"
12 - "mediatek,mt7623-imgsys", "mediatek,mt2701-imgsys", "syscon"
12 - "mediatek,mt8173-imgsys", "syscon" 13 - "mediatek,mt8173-imgsys", "syscon"
13- #clock-cells: Must be 1 14- #clock-cells: Must be 1
14 15
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
index 566f153f9f83..89f4272a1441 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,infracfg.txt
@@ -11,6 +11,7 @@ Required Properties:
11 - "mediatek,mt2712-infracfg", "syscon" 11 - "mediatek,mt2712-infracfg", "syscon"
12 - "mediatek,mt6797-infracfg", "syscon" 12 - "mediatek,mt6797-infracfg", "syscon"
13 - "mediatek,mt7622-infracfg", "syscon" 13 - "mediatek,mt7622-infracfg", "syscon"
14 - "mediatek,mt7623-infracfg", "mediatek,mt2701-infracfg", "syscon"
14 - "mediatek,mt8135-infracfg", "syscon" 15 - "mediatek,mt8135-infracfg", "syscon"
15 - "mediatek,mt8173-infracfg", "syscon" 16 - "mediatek,mt8173-infracfg", "syscon"
16- #clock-cells: Must be 1 17- #clock-cells: Must be 1
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
index 4eb8bbe15c01..15d977afad31 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.txt
@@ -9,6 +9,7 @@ Required Properties:
9 - "mediatek,mt2701-mmsys", "syscon" 9 - "mediatek,mt2701-mmsys", "syscon"
10 - "mediatek,mt2712-mmsys", "syscon" 10 - "mediatek,mt2712-mmsys", "syscon"
11 - "mediatek,mt6797-mmsys", "syscon" 11 - "mediatek,mt6797-mmsys", "syscon"
12 - "mediatek,mt7623-mmsys", "mediatek,mt2701-mmsys", "syscon"
12 - "mediatek,mt8173-mmsys", "syscon" 13 - "mediatek,mt8173-mmsys", "syscon"
13- #clock-cells: Must be 1 14- #clock-cells: Must be 1
14 15
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
index fb58ca8c2770..6755514deb80 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.txt
@@ -10,6 +10,7 @@ Required Properties:
10 - "mediatek,mt2701-pericfg", "syscon" 10 - "mediatek,mt2701-pericfg", "syscon"
11 - "mediatek,mt2712-pericfg", "syscon" 11 - "mediatek,mt2712-pericfg", "syscon"
12 - "mediatek,mt7622-pericfg", "syscon" 12 - "mediatek,mt7622-pericfg", "syscon"
13 - "mediatek,mt7623-pericfg", "mediatek,mt2701-pericfg", "syscon"
13 - "mediatek,mt8135-pericfg", "syscon" 14 - "mediatek,mt8135-pericfg", "syscon"
14 - "mediatek,mt8173-pericfg", "syscon" 15 - "mediatek,mt8173-pericfg", "syscon"
15- #clock-cells: Must be 1 16- #clock-cells: Must be 1
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
index 24014a7e2332..d849465b8c99 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,topckgen.txt
@@ -10,6 +10,7 @@ Required Properties:
10 - "mediatek,mt2712-topckgen", "syscon" 10 - "mediatek,mt2712-topckgen", "syscon"
11 - "mediatek,mt6797-topckgen" 11 - "mediatek,mt6797-topckgen"
12 - "mediatek,mt7622-topckgen" 12 - "mediatek,mt7622-topckgen"
13 - "mediatek,mt7623-topckgen", "mediatek,mt2701-topckgen"
13 - "mediatek,mt8135-topckgen" 14 - "mediatek,mt8135-topckgen"
14 - "mediatek,mt8173-topckgen" 15 - "mediatek,mt8173-topckgen"
15- #clock-cells: Must be 1 16- #clock-cells: Must be 1
diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
index ea40d05089f8..3212afc753c8 100644
--- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
+++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,vdecsys.txt
@@ -9,6 +9,7 @@ Required Properties:
9 - "mediatek,mt2701-vdecsys", "syscon" 9 - "mediatek,mt2701-vdecsys", "syscon"
10 - "mediatek,mt2712-vdecsys", "syscon" 10 - "mediatek,mt2712-vdecsys", "syscon"
11 - "mediatek,mt6797-vdecsys", "syscon" 11 - "mediatek,mt6797-vdecsys", "syscon"
12 - "mediatek,mt7623-vdecsys", "mediatek,mt2701-vdecsys", "syscon"
12 - "mediatek,mt8173-vdecsys", "syscon" 13 - "mediatek,mt8173-vdecsys", "syscon"
13- #clock-cells: Must be 1 14- #clock-cells: Must be 1
14 15
diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt
index acfd3c773dd0..0cc71236d639 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.txt
+++ b/Documentation/devicetree/bindings/arm/rockchip.txt
@@ -5,6 +5,10 @@ Rockchip platforms device tree bindings
5 Required root node properties: 5 Required root node properties:
6 - compatible = "vamrs,ficus", "rockchip,rk3399"; 6 - compatible = "vamrs,ficus", "rockchip,rk3399";
7 7
8- 96boards RK3399 Rock960 (ROCK960 Consumer Edition)
9 Required root node properties:
10 - compatible = "vamrs,rock960", "rockchip,rk3399";
11
8- Amarula Vyasa RK3288 board 12- Amarula Vyasa RK3288 board
9 Required root node properties: 13 Required root node properties:
10 - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288"; 14 - compatible = "amarula,vyasa-rk3288", "rockchip,rk3288";
@@ -13,6 +17,10 @@ Rockchip platforms device tree bindings
13 Required root node properties: 17 Required root node properties:
14 - compatible = "asus,rk3288-tinker", "rockchip,rk3288"; 18 - compatible = "asus,rk3288-tinker", "rockchip,rk3288";
15 19
20- Asus Tinker board S
21 Required root node properties:
22 - compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";
23
16- Kylin RK3036 board: 24- Kylin RK3036 board:
17 Required root node properties: 25 Required root node properties:
18 - compatible = "rockchip,kylin-rk3036", "rockchip,rk3036"; 26 - compatible = "rockchip,kylin-rk3036", "rockchip,rk3036";
@@ -59,6 +67,10 @@ Rockchip platforms device tree bindings
59 Required root node properties: 67 Required root node properties:
60 - compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328"; 68 - compatible = "firefly,roc-rk3328-cc", "rockchip,rk3328";
61 69
70- Firefly ROC-RK3399-PC board:
71 Required root node properties:
72 - compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
73
62- ChipSPARK PopMetal-RK3288 board: 74- ChipSPARK PopMetal-RK3288 board:
63 Required root node properties: 75 Required root node properties:
64 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288"; 76 - compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
@@ -160,6 +172,10 @@ Rockchip platforms device tree bindings
160 Required root node properties: 172 Required root node properties:
161 - compatible = "pine64,rock64", "rockchip,rk3328"; 173 - compatible = "pine64,rock64", "rockchip,rk3328";
162 174
175- Pine64 RockPro64 board:
176 Required root node properties:
177 - compatible = "pine64,rockpro64", "rockchip,rk3399";
178
163- Rockchip PX3 Evaluation board: 179- Rockchip PX3 Evaluation board:
164 Required root node properties: 180 Required root node properties:
165 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188"; 181 - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
@@ -168,6 +184,10 @@ Rockchip platforms device tree bindings
168 Required root node properties: 184 Required root node properties:
169 - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368"; 185 - compatible = "rockchip,px5-evb", "rockchip,px5", "rockchip,rk3368";
170 186
187- Rockchip PX30 Evaluation board:
188 Required root node properties:
189 - compatible = "rockchip,px30-evb", "rockchip,px30";
190
171- Rockchip RV1108 Evaluation board 191- Rockchip RV1108 Evaluation board
172 Required root node properties: 192 Required root node properties:
173 - compatible = "rockchip,rv1108-evb", "rockchip,rv1108"; 193 - compatible = "rockchip,rv1108-evb", "rockchip,rv1108";
diff --git a/Documentation/devicetree/bindings/arm/scu.txt b/Documentation/devicetree/bindings/arm/scu.txt
index 08a587875996..74d0a780ce51 100644
--- a/Documentation/devicetree/bindings/arm/scu.txt
+++ b/Documentation/devicetree/bindings/arm/scu.txt
@@ -22,7 +22,7 @@ References:
22 22
23Example: 23Example:
24 24
25scu@a04100000 { 25scu@a0410000 {
26 compatible = "arm,cortex-a9-scu"; 26 compatible = "arm,cortex-a9-scu";
27 reg = <0xa0410000 0x100>; 27 reg = <0xa0410000 0x100>;
28}; 28};
diff --git a/Documentation/devicetree/bindings/arm/shmobile.txt b/Documentation/devicetree/bindings/arm/shmobile.txt
index 89b4a389fbc7..f5e0f82fd503 100644
--- a/Documentation/devicetree/bindings/arm/shmobile.txt
+++ b/Documentation/devicetree/bindings/arm/shmobile.txt
@@ -7,6 +7,8 @@ SoCs:
7 compatible = "renesas,emev2" 7 compatible = "renesas,emev2"
8 - RZ/A1H (R7S72100) 8 - RZ/A1H (R7S72100)
9 compatible = "renesas,r7s72100" 9 compatible = "renesas,r7s72100"
10 - RZ/A2 (R7S9210)
11 compatible = "renesas,r7s9210"
10 - SH-Mobile AG5 (R8A73A00/SH73A0) 12 - SH-Mobile AG5 (R8A73A00/SH73A0)
11 compatible = "renesas,sh73a0" 13 compatible = "renesas,sh73a0"
12 - R-Mobile APE6 (R8A73A40) 14 - R-Mobile APE6 (R8A73A40)
@@ -23,6 +25,10 @@ SoCs:
23 compatible = "renesas,r8a7745" 25 compatible = "renesas,r8a7745"
24 - RZ/G1C (R8A77470) 26 - RZ/G1C (R8A77470)
25 compatible = "renesas,r8a77470" 27 compatible = "renesas,r8a77470"
28 - RZ/G2M (R8A774A1)
29 compatible = "renesas,r8a774a1"
30 - RZ/G2E (RA8774C0)
31 compatible = "renesas,r8a774c0"
26 - R-Car M1A (R8A77781) 32 - R-Car M1A (R8A77781)
27 compatible = "renesas,r8a7778" 33 compatible = "renesas,r8a7778"
28 - R-Car H1 (R8A77790) 34 - R-Car H1 (R8A77790)
@@ -107,6 +113,8 @@ Boards:
107 compatible = "renesas,lager", "renesas,r8a7790" 113 compatible = "renesas,lager", "renesas,r8a7790"
108 - M3ULCB (R-Car Starter Kit Pro, RTP0RC7796SKBX0010SA09 (M3 ES1.0)) 114 - M3ULCB (R-Car Starter Kit Pro, RTP0RC7796SKBX0010SA09 (M3 ES1.0))
109 compatible = "renesas,m3ulcb", "renesas,r8a7796" 115 compatible = "renesas,m3ulcb", "renesas,r8a7796"
116 - M3NULCB (R-Car Starter Kit Pro, RTP0RC77965SKBX010SA00 (M3-N ES1.1))
117 compatible = "renesas,m3nulcb", "renesas,r8a77965"
110 - Marzen (R0P7779A00010S) 118 - Marzen (R0P7779A00010S)
111 compatible = "renesas,marzen", "renesas,r8a7779" 119 compatible = "renesas,marzen", "renesas,r8a7779"
112 - Porter (M2-LCDP) 120 - Porter (M2-LCDP)
@@ -143,12 +151,12 @@ Boards:
143 compatible = "renesas,wheat", "renesas,r8a7792" 151 compatible = "renesas,wheat", "renesas,r8a7792"
144 152
145 153
146Most Renesas ARM SoCs have a Product Register that allows to retrieve SoC 154Most Renesas ARM SoCs have a Product Register or Boundary Scan ID Register that
147product and revision information. If present, a device node for this register 155allows to retrieve SoC product and revision information. If present, a device
148should be added. 156node for this register should be added.
149 157
150Required properties: 158Required properties:
151 - compatible: Must be "renesas,prr". 159 - compatible: Must be "renesas,prr" or "renesas,bsid"
152 - reg: Base address and length of the register block. 160 - reg: Base address and length of the register block.
153 161
154 162
diff --git a/Documentation/devicetree/bindings/arm/marvell/marvell,berlin.txt b/Documentation/devicetree/bindings/arm/syna.txt
index 3bab18409b7a..2face46a5f64 100644
--- a/Documentation/devicetree/bindings/arm/marvell/marvell,berlin.txt
+++ b/Documentation/devicetree/bindings/arm/syna.txt
@@ -1,4 +1,9 @@
1Marvell Berlin SoC Family Device Tree Bindings 1Synaptics SoC Device Tree Bindings
2
3According to https://www.synaptics.com/company/news/conexant-marvell
4Synaptics has acquired the Multimedia Solutions Business of Marvell, so
5berlin SoCs are now Synaptics' SoCs now.
6
2--------------------------------------------------------------- 7---------------------------------------------------------------
3 8
4Work in progress statement: 9Work in progress statement:
@@ -13,6 +18,10 @@ stable binding/ABI.
13 18
14--------------------------------------------------------------- 19---------------------------------------------------------------
15 20
21Boards with the Synaptics AS370 SoC shall have the following properties:
22 Required root node property:
23 compatible: "syna,as370"
24
16Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500 25Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
17shall have the following properties: 26shall have the following properties:
18 27
diff --git a/Documentation/devicetree/bindings/arm/tegra.txt b/Documentation/devicetree/bindings/arm/tegra.txt
index 32f62bb7006d..c59b15f64346 100644
--- a/Documentation/devicetree/bindings/arm/tegra.txt
+++ b/Documentation/devicetree/bindings/arm/tegra.txt
@@ -47,12 +47,17 @@ board-specific compatible values:
47 nvidia,ventana 47 nvidia,ventana
48 toradex,apalis_t30 48 toradex,apalis_t30
49 toradex,apalis_t30-eval 49 toradex,apalis_t30-eval
50 toradex,apalis_t30-v1.1
51 toradex,apalis_t30-v1.1-eval
50 toradex,apalis-tk1 52 toradex,apalis-tk1
51 toradex,apalis-tk1-eval 53 toradex,apalis-tk1-eval
52 toradex,colibri_t20-512 54 toradex,apalis-tk1-v1.2
55 toradex,apalis-tk1-v1.2-eval
56 toradex,colibri_t20
57 toradex,colibri_t20-eval-v3
58 toradex,colibri_t20-iris
53 toradex,colibri_t30 59 toradex,colibri_t30
54 toradex,colibri_t30-eval-v3 60 toradex,colibri_t30-eval-v3
55 toradex,iris
56 61
57Trusted Foundations 62Trusted Foundations
58------------------------------------------- 63-------------------------------------------
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt
index 5a3bf7c5a7a0..c9fd6d1de57e 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt
@@ -34,3 +34,96 @@ Board DTS:
34 pmc@c360000 { 34 pmc@c360000 {
35 nvidia,invert-interrupt; 35 nvidia,invert-interrupt;
36 }; 36 };
37
38== Pad Control ==
39
40On Tegra SoCs a pad is a set of pins which are configured as a group.
41The pin grouping is a fixed attribute of the hardware. The PMC can be
42used to set pad power state and signaling voltage. A pad can be either
43in active or power down mode. The support for power state and signaling
44voltage configuration varies depending on the pad in question. 3.3 V and
451.8 V signaling voltages are supported on pins where software
46controllable signaling voltage switching is available.
47
48Pad configurations are described with pin configuration nodes which
49are placed under the pmc node and they are referred to by the pinctrl
50client properties. For more information see
51Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
52
53The following pads are present on Tegra186:
54csia csib dsi mipi-bias
55pex-clk-bias pex-clk3 pex-clk2 pex-clk1
56usb0 usb1 usb2 usb-bias
57uart audio hsic dbg
58hdmi-dp0 hdmi-dp1 pex-cntrl sdmmc2-hv
59sdmmc4 cam dsib dsic
60dsid csic csid csie
61dsif spi ufs dmic-hv
62edp sdmmc1-hv sdmmc3-hv conn
63audio-hv ao-hv
64
65Required pin configuration properties:
66 - pins: A list of strings, each of which contains the name of a pad
67 to be configured.
68
69Optional pin configuration properties:
70 - low-power-enable: Configure the pad into power down mode
71 - low-power-disable: Configure the pad into active mode
72 - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
73 TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
74 The values are defined in
75 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
76
77Note: The power state can be configured on all of the above pads except
78 for ao-hv. Following pads have software configurable signaling
79 voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv, audio-hv,
80 ao-hv.
81
82Pad configuration state example:
83 pmc: pmc@7000e400 {
84 compatible = "nvidia,tegra186-pmc";
85 reg = <0 0x0c360000 0 0x10000>,
86 <0 0x0c370000 0 0x10000>,
87 <0 0x0c380000 0 0x10000>,
88 <0 0x0c390000 0 0x10000>;
89 reg-names = "pmc", "wake", "aotag", "scratch";
90
91 ...
92
93 sdmmc1_3v3: sdmmc1-3v3 {
94 pins = "sdmmc1-hv";
95 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
96 };
97
98 sdmmc1_1v8: sdmmc1-1v8 {
99 pins = "sdmmc1-hv";
100 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
101 };
102
103 hdmi_off: hdmi-off {
104 pins = "hdmi";
105 low-power-enable;
106 }
107
108 hdmi_on: hdmi-on {
109 pins = "hdmi";
110 low-power-disable;
111 }
112 };
113
114Pinctrl client example:
115 sdmmc1: sdhci@3400000 {
116 ...
117 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
118 pinctrl-0 = <&sdmmc1_3v3>;
119 pinctrl-1 = <&sdmmc1_1v8>;
120 };
121
122 ...
123
124 sor0: sor@15540000 {
125 ...
126 pinctrl-0 = <&hdmi_off>;
127 pinctrl-1 = <&hdmi_on>;
128 pinctrl-names = "hdmi-on", "hdmi-off";
129 };
diff --git a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt
index a74b37b07e5c..cb12f33a247f 100644
--- a/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt
+++ b/Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt
@@ -195,3 +195,106 @@ Example:
195 power-domains = <&pd_audio>; 195 power-domains = <&pd_audio>;
196 ... 196 ...
197 }; 197 };
198
199== Pad Control ==
200
201On Tegra SoCs a pad is a set of pins which are configured as a group.
202The pin grouping is a fixed attribute of the hardware. The PMC can be
203used to set pad power state and signaling voltage. A pad can be either
204in active or power down mode. The support for power state and signaling
205voltage configuration varies depending on the pad in question. 3.3 V and
2061.8 V signaling voltages are supported on pins where software
207controllable signaling voltage switching is available.
208
209The pad configuration state nodes are placed under the pmc node and they
210are referred to by the pinctrl client properties. For more information
211see Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
212The pad name should be used as the value of the pins property in pin
213configuration nodes.
214
215The following pads are present on Tegra124 and Tegra132:
216audio bb cam comp
217csia csb cse dsi
218dsib dsic dsid hdmi
219hsic hv lvds mipi-bias
220nand pex-bias pex-clk1 pex-clk2
221pex-cntrl sdmmc1 sdmmc3 sdmmc4
222sys_ddc uart usb0 usb1
223usb2 usb_bias
224
225The following pads are present on Tegra210:
226audio audio-hv cam csia
227csib csic csid csie
228csif dbg debug-nonao dmic
229dp dsi dsib dsic
230dsid emmc emmc2 gpio
231hdmi hsic lvds mipi-bias
232pex-bias pex-clk1 pex-clk2 pex-cntrl
233sdmmc1 sdmmc3 spi spi-hv
234uart usb0 usb1 usb2
235usb3 usb-bias
236
237Required pin configuration properties:
238 - pins: Must contain name of the pad(s) to be configured.
239
240Optional pin configuration properties:
241 - low-power-enable: Configure the pad into power down mode
242 - low-power-disable: Configure the pad into active mode
243 - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8
244 or TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
245 The values are defined in
246 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
247
248Note: The power state can be configured on all of the Tegra124 and
249 Tegra132 pads. None of the Tegra124 or Tegra132 pads support
250 signaling voltage switching.
251
252Note: All of the listed Tegra210 pads except pex-cntrl support power
253 state configuration. Signaling voltage switching is supported on
254 following Tegra210 pads: audio, audio-hv, cam, dbg, dmic, gpio,
255 pex-cntrl, sdmmc1, sdmmc3, spi, spi-hv, and uart.
256
257Pad configuration state example:
258 pmc: pmc@7000e400 {
259 compatible = "nvidia,tegra210-pmc";
260 reg = <0x0 0x7000e400 0x0 0x400>;
261 clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
262 clock-names = "pclk", "clk32k_in";
263
264 ...
265
266 sdmmc1_3v3: sdmmc1-3v3 {
267 pins = "sdmmc1";
268 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
269 };
270
271 sdmmc1_1v8: sdmmc1-1v8 {
272 pins = "sdmmc1";
273 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
274 };
275
276 hdmi_off: hdmi-off {
277 pins = "hdmi";
278 low-power-enable;
279 }
280
281 hdmi_on: hdmi-on {
282 pins = "hdmi";
283 low-power-disable;
284 }
285 };
286
287Pinctrl client example:
288 sdmmc1: sdhci@700b0000 {
289 ...
290 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
291 pinctrl-0 = <&sdmmc1_3v3>;
292 pinctrl-1 = <&sdmmc1_1v8>;
293 };
294 ...
295 sor@54540000 {
296 ...
297 pinctrl-0 = <&hdmi_off>;
298 pinctrl-1 = <&hdmi_on>;
299 pinctrl-names = "hdmi-on", "hdmi-off";
300 };
diff --git a/Documentation/devicetree/bindings/arm/ux500/boards.txt b/Documentation/devicetree/bindings/arm/ux500/boards.txt
index 0fa429534f49..89408de55bfd 100644
--- a/Documentation/devicetree/bindings/arm/ux500/boards.txt
+++ b/Documentation/devicetree/bindings/arm/ux500/boards.txt
@@ -60,7 +60,7 @@ Example:
60 <0xa0410100 0x100>; 60 <0xa0410100 0x100>;
61 }; 61 };
62 62
63 scu@a04100000 { 63 scu@a0410000 {
64 compatible = "arm,cortex-a9-scu"; 64 compatible = "arm,cortex-a9-scu";
65 reg = <0xa0410000 0x100>; 65 reg = <0xa0410000 0x100>;
66 }; 66 };
diff --git a/Documentation/devicetree/bindings/clock/imx6q-clock.txt b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
index a45ca67a9d5f..e1308346e00d 100644
--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt
+++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt
@@ -6,6 +6,14 @@ Required properties:
6- interrupts: Should contain CCM interrupt 6- interrupts: Should contain CCM interrupt
7- #clock-cells: Should be <1> 7- #clock-cells: Should be <1>
8 8
9Optional properties:
10- fsl,pmic-stby-poweroff: Configure CCM to assert PMIC_STBY_REQ signal
11 on power off.
12 Use this property if the SoC should be powered off by external power
13 management IC (PMIC) triggered via PMIC_STBY_REQ signal.
14 Boards that are designed to initiate poweroff on PMIC_ON_REQ signal should
15 be using "syscon-poweroff" driver instead.
16
9The clock consumer should specify the desired clock by having the clock 17The clock consumer should specify the desired clock by having the clock
10ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h 18ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx6qdl-clock.h
11for the full list of i.MX6 Quad and DualLite clock IDs. 19for the full list of i.MX6 Quad and DualLite clock IDs.
diff --git a/Documentation/devicetree/bindings/iommu/mediatek,iommu.txt b/Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
index df5db732138d..6922db598def 100644
--- a/Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
+++ b/Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
@@ -41,6 +41,8 @@ Required properties:
41- compatible : must be one of the following string: 41- compatible : must be one of the following string:
42 "mediatek,mt2701-m4u" for mt2701 which uses generation one m4u HW. 42 "mediatek,mt2701-m4u" for mt2701 which uses generation one m4u HW.
43 "mediatek,mt2712-m4u" for mt2712 which uses generation two m4u HW. 43 "mediatek,mt2712-m4u" for mt2712 which uses generation two m4u HW.
44 "mediatek,mt7623-m4u", "mediatek,mt2701-m4u" for mt7623 which uses
45 generation one m4u HW.
44 "mediatek,mt8173-m4u" for mt8173 which uses generation two m4u HW. 46 "mediatek,mt8173-m4u" for mt8173 which uses generation two m4u HW.
45- reg : m4u register base and size. 47- reg : m4u register base and size.
46- interrupts : the interrupt of m4u. 48- interrupts : the interrupt of m4u.
@@ -51,7 +53,7 @@ Required properties:
51 according to the local arbiter index, like larb0, larb1, larb2... 53 according to the local arbiter index, like larb0, larb1, larb2...
52- iommu-cells : must be 1. This is the mtk_m4u_id according to the HW. 54- iommu-cells : must be 1. This is the mtk_m4u_id according to the HW.
53 Specifies the mtk_m4u_id as defined in 55 Specifies the mtk_m4u_id as defined in
54 dt-binding/memory/mt2701-larb-port.h for mt2701, 56 dt-binding/memory/mt2701-larb-port.h for mt2701, mt7623
55 dt-binding/memory/mt2712-larb-port.h for mt2712, and 57 dt-binding/memory/mt2712-larb-port.h for mt2712, and
56 dt-binding/memory/mt8173-larb-port.h for mt8173. 58 dt-binding/memory/mt8173-larb-port.h for mt8173.
57 59
diff --git a/Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt b/Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
index 3813947b4d4f..044b11913c49 100644
--- a/Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
+++ b/Documentation/devicetree/bindings/media/mediatek-jpeg-decoder.txt
@@ -5,6 +5,7 @@ Mediatek JPEG Decoder is the JPEG decode hardware present in Mediatek SoCs
5Required properties: 5Required properties:
6- compatible : must be one of the following string: 6- compatible : must be one of the following string:
7 "mediatek,mt8173-jpgdec" 7 "mediatek,mt8173-jpgdec"
8 "mediatek,mt7623-jpgdec", "mediatek,mt2701-jpgdec"
8 "mediatek,mt2701-jpgdec" 9 "mediatek,mt2701-jpgdec"
9- reg : physical base address of the jpeg decoder registers and length of 10- reg : physical base address of the jpeg decoder registers and length of
10 memory mapped region. 11 memory mapped region.
diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt
index 615abdd0eb0d..e937ddd871a6 100644
--- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt
+++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt
@@ -17,6 +17,7 @@ Required properties:
17- compatible : must be one of : 17- compatible : must be one of :
18 "mediatek,mt2701-smi-common" 18 "mediatek,mt2701-smi-common"
19 "mediatek,mt2712-smi-common" 19 "mediatek,mt2712-smi-common"
20 "mediatek,mt7623-smi-common", "mediatek,mt2701-smi-common"
20 "mediatek,mt8173-smi-common" 21 "mediatek,mt8173-smi-common"
21- reg : the register and size of the SMI block. 22- reg : the register and size of the SMI block.
22- power-domains : a phandle to the power domain of this local arbiter. 23- power-domains : a phandle to the power domain of this local arbiter.
diff --git a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
index 083155cdc2a0..94eddcae77ab 100644
--- a/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
+++ b/Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
@@ -6,6 +6,7 @@ Required properties:
6- compatible : must be one of : 6- compatible : must be one of :
7 "mediatek,mt2701-smi-larb" 7 "mediatek,mt2701-smi-larb"
8 "mediatek,mt2712-smi-larb" 8 "mediatek,mt2712-smi-larb"
9 "mediatek,mt7623-smi-larb", "mediatek,mt2701-smi-larb"
9 "mediatek,mt8173-smi-larb" 10 "mediatek,mt8173-smi-larb"
10- reg : the register and size of this local arbiter. 11- reg : the register and size of this local arbiter.
11- mediatek,smi : a phandle to the smi_common node. 12- mediatek,smi : a phandle to the smi_common node.
@@ -16,7 +17,7 @@ Required properties:
16 the register. 17 the register.
17 - "smi" : It's the clock for transfer data and command. 18 - "smi" : It's the clock for transfer data and command.
18 19
19Required property for mt2701 and mt2712: 20Required property for mt2701, mt2712 and mt7623:
20- mediatek,larb-id :the hardware id of this larb. 21- mediatek,larb-id :the hardware id of this larb.
21 22
22Example: 23Example:
diff --git a/Documentation/devicetree/bindings/net/dsa/b53.txt b/Documentation/devicetree/bindings/net/dsa/b53.txt
index 1811e1972a7a..5201bc15fdd6 100644
--- a/Documentation/devicetree/bindings/net/dsa/b53.txt
+++ b/Documentation/devicetree/bindings/net/dsa/b53.txt
@@ -46,6 +46,42 @@ Required properties:
46 "brcm,bcm6328-switch" 46 "brcm,bcm6328-switch"
47 "brcm,bcm6368-switch" and the mandatory "brcm,bcm63xx-switch" 47 "brcm,bcm6368-switch" and the mandatory "brcm,bcm63xx-switch"
48 48
49Required properties for BCM585xx/586xx/88312 SoCs:
50
51 - reg: a total of 3 register base addresses, the first one must be the
52 Switch Register Access block base, the second is the port 5/4 mux
53 configuration register and the third one is the SGMII configuration
54 and status register base address.
55
56 - interrupts: a total of 13 interrupts must be specified, in the following
57 order: port 0-5, 7-8 link status change, then the integrated PHY interrupt,
58 then the timestamping interrupt and the sleep timer interrupts for ports
59 5,7,8.
60
61Optional properties for BCM585xx/586xx/88312 SoCs:
62
63 - reg-names: a total of 3 names matching the 3 base register address, must
64 be in the following order:
65 "srab"
66 "mux_config"
67 "sgmii_config"
68
69 - interrupt-names: a total of 13 names matching the 13 interrupts specified
70 must be in the following order:
71 "link_state_p0"
72 "link_state_p1"
73 "link_state_p2"
74 "link_state_p3"
75 "link_state_p4"
76 "link_state_p5"
77 "link_state_p7"
78 "link_state_p8"
79 "phy"
80 "ts"
81 "imp_sleep_timer_p5"
82 "imp_sleep_timer_p7"
83 "imp_sleep_timer_p8"
84
49See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional 85See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
50required and optional properties. 86required and optional properties.
51 87
diff --git a/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt b/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt
index e319fe5e205a..99c4ba6a3f61 100644
--- a/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt
+++ b/Documentation/devicetree/bindings/nvmem/allwinner,sunxi-sid.txt
@@ -7,6 +7,7 @@ Required properties:
7 "allwinner,sun8i-a83t-sid" 7 "allwinner,sun8i-a83t-sid"
8 "allwinner,sun8i-h3-sid" 8 "allwinner,sun8i-h3-sid"
9 "allwinner,sun50i-a64-sid" 9 "allwinner,sun50i-a64-sid"
10 "allwinner,sun50i-h5-sid"
10 11
11- reg: Should contain registers location and length 12- reg: Should contain registers location and length
12 13
diff --git a/Documentation/devicetree/bindings/power/actions,owl-sps.txt b/Documentation/devicetree/bindings/power/actions,owl-sps.txt
index 78edd63641e8..a3571937b019 100644
--- a/Documentation/devicetree/bindings/power/actions,owl-sps.txt
+++ b/Documentation/devicetree/bindings/power/actions,owl-sps.txt
@@ -3,11 +3,13 @@ Actions Semi Owl Smart Power System (SPS)
3Required properties: 3Required properties:
4- compatible : "actions,s500-sps" for S500 4- compatible : "actions,s500-sps" for S500
5 "actions,s700-sps" for S700 5 "actions,s700-sps" for S700
6 "actions,s900-sps" for S900
6- reg : Offset and length of the register set for the device. 7- reg : Offset and length of the register set for the device.
7- #power-domain-cells : Must be 1. 8- #power-domain-cells : Must be 1.
8 See macros in: 9 See macros in:
9 include/dt-bindings/power/owl-s500-powergate.h for S500 10 include/dt-bindings/power/owl-s500-powergate.h for S500
10 include/dt-bindings/power/owl-s700-powergate.h for S700 11 include/dt-bindings/power/owl-s700-powergate.h for S700
12 include/dt-bindings/power/owl-s900-powergate.h for S900
11 13
12 14
13Example: 15Example:
diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.txt b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
index 7dc5ce858a0e..46e27cd69f18 100644
--- a/Documentation/devicetree/bindings/soc/rockchip/grf.txt
+++ b/Documentation/devicetree/bindings/soc/rockchip/grf.txt
@@ -13,6 +13,7 @@ On RK3328 SoCs, the GRF adds a section for USB2PHYGRF,
13Required Properties: 13Required Properties:
14 14
15- compatible: GRF should be one of the following: 15- compatible: GRF should be one of the following:
16 - "rockchip,px30-grf", "syscon": for px30
16 - "rockchip,rk3036-grf", "syscon": for rk3036 17 - "rockchip,rk3036-grf", "syscon": for rk3036
17 - "rockchip,rk3066-grf", "syscon": for rk3066 18 - "rockchip,rk3066-grf", "syscon": for rk3066
18 - "rockchip,rk3188-grf", "syscon": for rk3188 19 - "rockchip,rk3188-grf", "syscon": for rk3188
@@ -23,6 +24,7 @@ Required Properties:
23 - "rockchip,rk3399-grf", "syscon": for rk3399 24 - "rockchip,rk3399-grf", "syscon": for rk3399
24 - "rockchip,rv1108-grf", "syscon": for rv1108 25 - "rockchip,rv1108-grf", "syscon": for rv1108
25- compatible: PMUGRF should be one of the following: 26- compatible: PMUGRF should be one of the following:
27 - "rockchip,px30-pmugrf", "syscon": for px30
26 - "rockchip,rk3368-pmugrf", "syscon": for rk3368 28 - "rockchip,rk3368-pmugrf", "syscon": for rk3368
27 - "rockchip,rk3399-pmugrf", "syscon": for rk3399 29 - "rockchip,rk3399-pmugrf", "syscon": for rk3399
28- compatible: SGRF should be one of the following 30- compatible: SGRF should be one of the following
diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
index 46da5f184460..6dc3c4a34483 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.txt
+++ b/Documentation/devicetree/bindings/usb/dwc2.txt
@@ -6,6 +6,7 @@ Required properties:
6 - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC. 6 - brcm,bcm2835-usb: The DWC2 USB controller instance in the BCM2835 SoC.
7 - hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC. 7 - hisilicon,hi6220-usb: The DWC2 USB controller instance in the hi6220 SoC.
8 - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc; 8 - rockchip,rk3066-usb: The DWC2 USB controller instance in the rk3066 Soc;
9 - "rockchip,px30-usb", "rockchip,rk3066-usb", "snps,dwc2": for px30 Soc;
9 - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc; 10 - "rockchip,rk3188-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3188 Soc;
10 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc; 11 - "rockchip,rk3288-usb", "rockchip,rk3066-usb", "snps,dwc2": for rk3288 Soc;
11 - "lantiq,arx100-usb": The DWC2 USB controller instance in Lantiq ARX SoCs; 12 - "lantiq,arx100-usb": The DWC2 USB controller instance in Lantiq ARX SoCs;
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index 14818137a029..4b1a2a8fcc16 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -115,6 +115,7 @@ elan Elan Microelectronic Corp.
115embest Shenzhen Embest Technology Co., Ltd. 115embest Shenzhen Embest Technology Co., Ltd.
116emmicro EM Microelectronic 116emmicro EM Microelectronic
117emtrion emtrion GmbH 117emtrion emtrion GmbH
118endless Endless Mobile, Inc.
118energymicro Silicon Laboratories (formerly Energy Micro AS) 119energymicro Silicon Laboratories (formerly Energy Micro AS)
119engicam Engicam S.r.l. 120engicam Engicam S.r.l.
120epcos EPCOS AG 121epcos EPCOS AG
@@ -301,6 +302,7 @@ pine64 Pine64
301pixcir PIXCIR MICROELECTRONICS Co., Ltd 302pixcir PIXCIR MICROELECTRONICS Co., Ltd
302plathome Plat'Home Co., Ltd. 303plathome Plat'Home Co., Ltd.
303plda PLDA 304plda PLDA
305plx Broadcom Corporation (formerly PLX Technology)
304portwell Portwell Inc. 306portwell Portwell Inc.
305poslab Poslab Technology Co., Ltd. 307poslab Poslab Technology Co., Ltd.
306powervr PowerVR (deprecated, use img) 308powervr PowerVR (deprecated, use img)
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b5bd3de87c33..b0e966d625b9 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -81,6 +81,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
81 bcm2836-rpi-2-b.dtb \ 81 bcm2836-rpi-2-b.dtb \
82 bcm2837-rpi-3-b.dtb \ 82 bcm2837-rpi-3-b.dtb \
83 bcm2837-rpi-3-b-plus.dtb \ 83 bcm2837-rpi-3-b-plus.dtb \
84 bcm2837-rpi-cm3-io3.dtb \
84 bcm2835-rpi-zero.dtb \ 85 bcm2835-rpi-zero.dtb \
85 bcm2835-rpi-zero-w.dtb 86 bcm2835-rpi-zero-w.dtb
86dtb-$(CONFIG_ARCH_BCM_5301X) += \ 87dtb-$(CONFIG_ARCH_BCM_5301X) += \
@@ -321,6 +322,7 @@ dtb-$(CONFIG_MACH_MESON6) += \
321 meson6-atv1200.dtb 322 meson6-atv1200.dtb
322dtb-$(CONFIG_MACH_MESON8) += \ 323dtb-$(CONFIG_MACH_MESON8) += \
323 meson8-minix-neo-x8.dtb \ 324 meson8-minix-neo-x8.dtb \
325 meson8b-ec100.dtb \
324 meson8b-mxq.dtb \ 326 meson8b-mxq.dtb \
325 meson8b-odroidc1.dtb \ 327 meson8b-odroidc1.dtb \
326 meson8m2-mxiii-plus.dtb 328 meson8m2-mxiii-plus.dtb
@@ -548,6 +550,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
548dtb-$(CONFIG_SOC_IMX6UL) += \ 550dtb-$(CONFIG_SOC_IMX6UL) += \
549 imx6ul-14x14-evk.dtb \ 551 imx6ul-14x14-evk.dtb \
550 imx6ul-ccimx6ulsbcexpress.dtb \ 552 imx6ul-ccimx6ulsbcexpress.dtb \
553 imx6ul-ccimx6ulsbcpro.dtb \
551 imx6ul-geam.dtb \ 554 imx6ul-geam.dtb \
552 imx6ul-isiot-emmc.dtb \ 555 imx6ul-isiot-emmc.dtb \
553 imx6ul-isiot-nand.dtb \ 556 imx6ul-isiot-nand.dtb \
@@ -559,7 +562,8 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
559 imx6ul-tx6ul-mainboard.dtb \ 562 imx6ul-tx6ul-mainboard.dtb \
560 imx6ull-14x14-evk.dtb \ 563 imx6ull-14x14-evk.dtb \
561 imx6ull-colibri-eval-v3.dtb \ 564 imx6ull-colibri-eval-v3.dtb \
562 imx6ull-colibri-wifi-eval-v3.dtb 565 imx6ull-colibri-wifi-eval-v3.dtb \
566 imx6ulz-14x14-evk.dtb
563dtb-$(CONFIG_SOC_IMX7D) += \ 567dtb-$(CONFIG_SOC_IMX7D) += \
564 imx7d-cl-som-imx7.dtb \ 568 imx7d-cl-som-imx7.dtb \
565 imx7d-colibri-emmc-eval-v3.dtb \ 569 imx7d-colibri-emmc-eval-v3.dtb \
@@ -649,6 +653,7 @@ dtb-$(CONFIG_ARCH_OMAP3) += \
649 omap3-gta04a3.dtb \ 653 omap3-gta04a3.dtb \
650 omap3-gta04a4.dtb \ 654 omap3-gta04a4.dtb \
651 omap3-gta04a5.dtb \ 655 omap3-gta04a5.dtb \
656 omap3-gta04a5one.dtb \
652 omap3-ha.dtb \ 657 omap3-ha.dtb \
653 omap3-ha-lcd.dtb \ 658 omap3-ha-lcd.dtb \
654 omap3-igep0020.dtb \ 659 omap3-igep0020.dtb \
@@ -706,6 +711,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
706 am335x-evmsk.dtb \ 711 am335x-evmsk.dtb \
707 am335x-icev2.dtb \ 712 am335x-icev2.dtb \
708 am335x-lxm.dtb \ 713 am335x-lxm.dtb \
714 am335x-moxa-uc-2101.dtb \
709 am335x-moxa-uc-8100-me-t.dtb \ 715 am335x-moxa-uc-8100-me-t.dtb \
710 am335x-nano.dtb \ 716 am335x-nano.dtb \
711 am335x-pdu001.dtb \ 717 am335x-pdu001.dtb \
@@ -864,6 +870,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += \
864 rk3288-r89.dtb \ 870 rk3288-r89.dtb \
865 rk3288-rock2-square.dtb \ 871 rk3288-rock2-square.dtb \
866 rk3288-tinker.dtb \ 872 rk3288-tinker.dtb \
873 rk3288-tinker-s.dtb \
867 rk3288-veyron-brain.dtb \ 874 rk3288-veyron-brain.dtb \
868 rk3288-veyron-jaq.dtb \ 875 rk3288-veyron-jaq.dtb \
869 rk3288-veyron-jerry.dtb \ 876 rk3288-veyron-jerry.dtb \
@@ -892,7 +899,7 @@ dtb-$(CONFIG_ARCH_SOCFPGA) += \
892 socfpga_arria10_socdk_sdmmc.dtb \ 899 socfpga_arria10_socdk_sdmmc.dtb \
893 socfpga_cyclone5_mcvevk.dtb \ 900 socfpga_cyclone5_mcvevk.dtb \
894 socfpga_cyclone5_socdk.dtb \ 901 socfpga_cyclone5_socdk.dtb \
895 socfpga_cyclone5_de0_sockit.dtb \ 902 socfpga_cyclone5_de0_nano_soc.dtb \
896 socfpga_cyclone5_sockit.dtb \ 903 socfpga_cyclone5_sockit.dtb \
897 socfpga_cyclone5_socrates.dtb \ 904 socfpga_cyclone5_socrates.dtb \
898 socfpga_cyclone5_sodia.dtb \ 905 socfpga_cyclone5_sodia.dtb \
@@ -1033,6 +1040,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
1033 sun8i-h2-plus-orangepi-r1.dtb \ 1040 sun8i-h2-plus-orangepi-r1.dtb \
1034 sun8i-h2-plus-orangepi-zero.dtb \ 1041 sun8i-h2-plus-orangepi-zero.dtb \
1035 sun8i-h3-bananapi-m2-plus.dtb \ 1042 sun8i-h3-bananapi-m2-plus.dtb \
1043 sun8i-h3-bananapi-m2-plus-v1.2.dtb \
1036 sun8i-h3-beelink-x2.dtb \ 1044 sun8i-h3-beelink-x2.dtb \
1037 sun8i-h3-libretech-all-h3-cc.dtb \ 1045 sun8i-h3-libretech-all-h3-cc.dtb \
1038 sun8i-h3-nanopi-m1.dtb \ 1046 sun8i-h3-nanopi-m1.dtb \
@@ -1046,6 +1054,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
1046 sun8i-h3-orangepi-pc-plus.dtb \ 1054 sun8i-h3-orangepi-pc-plus.dtb \
1047 sun8i-h3-orangepi-plus.dtb \ 1055 sun8i-h3-orangepi-plus.dtb \
1048 sun8i-h3-orangepi-plus2e.dtb \ 1056 sun8i-h3-orangepi-plus2e.dtb \
1057 sun8i-h3-orangepi-zero-plus2.dtb \
1049 sun8i-r16-bananapi-m2m.dtb \ 1058 sun8i-r16-bananapi-m2m.dtb \
1050 sun8i-r16-nintendo-nes-classic.dtb \ 1059 sun8i-r16-nintendo-nes-classic.dtb \
1051 sun8i-r16-nintendo-super-nes-classic.dtb \ 1060 sun8i-r16-nintendo-super-nes-classic.dtb \
@@ -1061,6 +1070,7 @@ dtb-$(CONFIG_ARCH_TANGO) += \
1061 tango4-vantage-1172.dtb 1070 tango4-vantage-1172.dtb
1062dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \ 1071dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
1063 tegra20-harmony.dtb \ 1072 tegra20-harmony.dtb \
1073 tegra20-colibri-eval-v3.dtb \
1064 tegra20-colibri-iris.dtb \ 1074 tegra20-colibri-iris.dtb \
1065 tegra20-medcom-wide.dtb \ 1075 tegra20-medcom-wide.dtb \
1066 tegra20-paz00.dtb \ 1076 tegra20-paz00.dtb \
@@ -1071,6 +1081,7 @@ dtb-$(CONFIG_ARCH_TEGRA_2x_SOC) += \
1071 tegra20-ventana.dtb 1081 tegra20-ventana.dtb
1072dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += \ 1082dtb-$(CONFIG_ARCH_TEGRA_3x_SOC) += \
1073 tegra30-apalis-eval.dtb \ 1083 tegra30-apalis-eval.dtb \
1084 tegra30-apalis-v1.1-eval.dtb \
1074 tegra30-beaver.dtb \ 1085 tegra30-beaver.dtb \
1075 tegra30-cardhu-a02.dtb \ 1086 tegra30-cardhu-a02.dtb \
1076 tegra30-cardhu-a04.dtb \ 1087 tegra30-cardhu-a04.dtb \
@@ -1149,6 +1160,7 @@ dtb-$(CONFIG_MACH_ARMADA_370) += \
1149dtb-$(CONFIG_MACH_ARMADA_375) += \ 1160dtb-$(CONFIG_MACH_ARMADA_375) += \
1150 armada-375-db.dtb 1161 armada-375-db.dtb
1151dtb-$(CONFIG_MACH_ARMADA_38X) += \ 1162dtb-$(CONFIG_MACH_ARMADA_38X) += \
1163 armada-385-db-88f6820-amc.dtb \
1152 armada-385-db-ap.dtb \ 1164 armada-385-db-ap.dtb \
1153 armada-385-linksys-caiman.dtb \ 1165 armada-385-linksys-caiman.dtb \
1154 armada-385-linksys-cobra.dtb \ 1166 armada-385-linksys-cobra.dtb \
@@ -1199,6 +1211,8 @@ dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
1199dtb-$(CONFIG_ARCH_ASPEED) += \ 1211dtb-$(CONFIG_ARCH_ASPEED) += \
1200 aspeed-ast2500-evb.dtb \ 1212 aspeed-ast2500-evb.dtb \
1201 aspeed-bmc-arm-centriq2400-rep.dtb \ 1213 aspeed-bmc-arm-centriq2400-rep.dtb \
1214 aspeed-bmc-arm-stardragon4800-rep2.dtb \
1215 aspeed-bmc-facebook-tiogapass.dtb \
1202 aspeed-bmc-intel-s2600wf.dtb \ 1216 aspeed-bmc-intel-s2600wf.dtb \
1203 aspeed-bmc-opp-lanyang.dtb \ 1217 aspeed-bmc-opp-lanyang.dtb \
1204 aspeed-bmc-opp-palmetto.dtb \ 1218 aspeed-bmc-opp-palmetto.dtb \
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 73b514dddf65..9e5e75ea87f5 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -379,7 +379,7 @@
379}; 379};
380 380
381&cpsw_emac0 { 381&cpsw_emac0 {
382 phy_id = <&davinci_mdio>, <0>; 382 phy-handle = <&ethphy0>;
383 phy-mode = "mii"; 383 phy-mode = "mii";
384}; 384};
385 385
@@ -396,6 +396,10 @@
396 pinctrl-0 = <&davinci_mdio_default>; 396 pinctrl-0 = <&davinci_mdio_default>;
397 pinctrl-1 = <&davinci_mdio_sleep>; 397 pinctrl-1 = <&davinci_mdio_sleep>;
398 status = "okay"; 398 status = "okay";
399
400 ethphy0: ethernet-phy@0 {
401 reg = <0>;
402 };
399}; 403};
400 404
401&mmc1 { 405&mmc1 {
diff --git a/arch/arm/boot/dts/am335x-boneblack-common.dtsi b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
index 325daae40278..e543c2bee8c2 100644
--- a/arch/arm/boot/dts/am335x-boneblack-common.dtsi
+++ b/arch/arm/boot/dts/am335x-boneblack-common.dtsi
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include <dt-bindings/display/tda998x.h> 9#include <dt-bindings/display/tda998x.h>
10#include <dt-bindings/interrupt-controller/irq.h>
10 11
11&ldo3_reg { 12&ldo3_reg {
12 regulator-min-microvolt = <1800000>; 13 regulator-min-microvolt = <1800000>;
@@ -88,9 +89,11 @@
88}; 89};
89 90
90&i2c0 { 91&i2c0 {
91 tda19988: tda19988 { 92 tda19988: tda19988@70 {
92 compatible = "nxp,tda998x"; 93 compatible = "nxp,tda998x";
93 reg = <0x70>; 94 reg = <0x70>;
95 nxp,calib-gpios = <&gpio1 25 0>;
96 interrupts-extended = <&gpio1 25 IRQ_TYPE_LEVEL_LOW>;
94 97
95 pinctrl-names = "default", "off"; 98 pinctrl-names = "default", "off";
96 pinctrl-0 = <&nxp_hdmi_bonelt_pins>; 99 pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
diff --git a/arch/arm/boot/dts/am335x-chiliboard.dts b/arch/arm/boot/dts/am335x-chiliboard.dts
index 59431b235944..9c2a947aacf5 100644
--- a/arch/arm/boot/dts/am335x-chiliboard.dts
+++ b/arch/arm/boot/dts/am335x-chiliboard.dts
@@ -140,10 +140,14 @@
140 pinctrl-0 = <&davinci_mdio_default>; 140 pinctrl-0 = <&davinci_mdio_default>;
141 pinctrl-1 = <&davinci_mdio_sleep>; 141 pinctrl-1 = <&davinci_mdio_sleep>;
142 status = "okay"; 142 status = "okay";
143
144 ethphy0: ethernet-phy@0 {
145 reg = <0>;
146 };
143}; 147};
144 148
145&cpsw_emac0 { 149&cpsw_emac0 {
146 phy_id = <&davinci_mdio>, <0>; 150 phy-handle = <&ethphy0>;
147 phy-mode = "rmii"; 151 phy-mode = "rmii";
148}; 152};
149 153
diff --git a/arch/arm/boot/dts/am335x-cm-t335.dts b/arch/arm/boot/dts/am335x-cm-t335.dts
index 947c81b7aaaf..c4d3e1f1a95e 100644
--- a/arch/arm/boot/dts/am335x-cm-t335.dts
+++ b/arch/arm/boot/dts/am335x-cm-t335.dts
@@ -486,10 +486,14 @@ status = "okay";
486 pinctrl-0 = <&davinci_mdio_default>; 486 pinctrl-0 = <&davinci_mdio_default>;
487 pinctrl-1 = <&davinci_mdio_sleep>; 487 pinctrl-1 = <&davinci_mdio_sleep>;
488 status = "okay"; 488 status = "okay";
489
490 ethphy0: ethernet-phy@0 {
491 reg = <0>;
492 };
489}; 493};
490 494
491&cpsw_emac0 { 495&cpsw_emac0 {
492 phy_id = <&davinci_mdio>, <0>; 496 phy-handle = <&ethphy0>;
493 phy-mode = "rgmii-txid"; 497 phy-mode = "rgmii-txid";
494}; 498};
495 499
diff --git a/arch/arm/boot/dts/am335x-evm.dts b/arch/arm/boot/dts/am335x-evm.dts
index c87d01297a01..98ec9c3e49ba 100644
--- a/arch/arm/boot/dts/am335x-evm.dts
+++ b/arch/arm/boot/dts/am335x-evm.dts
@@ -713,6 +713,7 @@
713 pinctrl-0 = <&cpsw_default>; 713 pinctrl-0 = <&cpsw_default>;
714 pinctrl-1 = <&cpsw_sleep>; 714 pinctrl-1 = <&cpsw_sleep>;
715 status = "okay"; 715 status = "okay";
716 slaves = <1>;
716}; 717};
717 718
718&davinci_mdio { 719&davinci_mdio {
@@ -720,15 +721,14 @@
720 pinctrl-0 = <&davinci_mdio_default>; 721 pinctrl-0 = <&davinci_mdio_default>;
721 pinctrl-1 = <&davinci_mdio_sleep>; 722 pinctrl-1 = <&davinci_mdio_sleep>;
722 status = "okay"; 723 status = "okay";
723};
724 724
725&cpsw_emac0 { 725 ethphy0: ethernet-phy@0 {
726 phy_id = <&davinci_mdio>, <0>; 726 reg = <0>;
727 phy-mode = "rgmii-txid"; 727 };
728}; 728};
729 729
730&cpsw_emac1 { 730&cpsw_emac0 {
731 phy_id = <&davinci_mdio>, <1>; 731 phy-handle = <&ethphy0>;
732 phy-mode = "rgmii-txid"; 732 phy-mode = "rgmii-txid";
733}; 733};
734 734
diff --git a/arch/arm/boot/dts/am335x-evmsk.dts b/arch/arm/boot/dts/am335x-evmsk.dts
index bf1a40e45c97..245868f58fe3 100644
--- a/arch/arm/boot/dts/am335x-evmsk.dts
+++ b/arch/arm/boot/dts/am335x-evmsk.dts
@@ -639,16 +639,24 @@
639 pinctrl-0 = <&davinci_mdio_default>; 639 pinctrl-0 = <&davinci_mdio_default>;
640 pinctrl-1 = <&davinci_mdio_sleep>; 640 pinctrl-1 = <&davinci_mdio_sleep>;
641 status = "okay"; 641 status = "okay";
642
643 ethphy0: ethernet-phy@0 {
644 reg = <0>;
645 };
646
647 ethphy1: ethernet-phy@1 {
648 reg = <1>;
649 };
642}; 650};
643 651
644&cpsw_emac0 { 652&cpsw_emac0 {
645 phy_id = <&davinci_mdio>, <0>; 653 phy-handle = <&ethphy0>;
646 phy-mode = "rgmii-txid"; 654 phy-mode = "rgmii-txid";
647 dual_emac_res_vlan = <1>; 655 dual_emac_res_vlan = <1>;
648}; 656};
649 657
650&cpsw_emac1 { 658&cpsw_emac1 {
651 phy_id = <&davinci_mdio>, <1>; 659 phy-handle = <&ethphy1>;
652 phy-mode = "rgmii-txid"; 660 phy-mode = "rgmii-txid";
653 dual_emac_res_vlan = <2>; 661 dual_emac_res_vlan = <2>;
654}; 662};
diff --git a/arch/arm/boot/dts/am335x-igep0033.dtsi b/arch/arm/boot/dts/am335x-igep0033.dtsi
index a5769a8f5fc8..55b4c94cfafb 100644
--- a/arch/arm/boot/dts/am335x-igep0033.dtsi
+++ b/arch/arm/boot/dts/am335x-igep0033.dtsi
@@ -102,15 +102,24 @@
102 102
103&davinci_mdio { 103&davinci_mdio {
104 status = "okay"; 104 status = "okay";
105
106 ethphy0: ethernet-phy@0 {
107 reg = <0>;
108 };
109
110 ethphy1: ethernet-phy@1 {
111 reg = <1>;
112 };
105}; 113};
106 114
107&cpsw_emac0 { 115&cpsw_emac0 {
108 phy_id = <&davinci_mdio>, <0>; 116 phy-handle = <&ethphy0>;
109 phy-mode = "rmii"; 117 phy-mode = "rmii";
118
110}; 119};
111 120
112&cpsw_emac1 { 121&cpsw_emac1 {
113 phy_id = <&davinci_mdio>, <1>; 122 phy-handle = <&ethphy1>;
114 phy-mode = "rmii"; 123 phy-mode = "rmii";
115}; 124};
116 125
diff --git a/arch/arm/boot/dts/am335x-lxm.dts b/arch/arm/boot/dts/am335x-lxm.dts
index 1d6c6fa703e4..481edcfaf121 100644
--- a/arch/arm/boot/dts/am335x-lxm.dts
+++ b/arch/arm/boot/dts/am335x-lxm.dts
@@ -317,13 +317,13 @@
317}; 317};
318 318
319&cpsw_emac0 { 319&cpsw_emac0 {
320 phy_id = <&davinci_mdio>, <5>; 320 phy-handle = <&ethphy0>;
321 phy-mode = "rmii"; 321 phy-mode = "rmii";
322 dual_emac_res_vlan = <2>; 322 dual_emac_res_vlan = <2>;
323}; 323};
324 324
325&cpsw_emac1 { 325&cpsw_emac1 {
326 phy_id = <&davinci_mdio>, <4>; 326 phy-handle = <&ethphy1>;
327 phy-mode = "rmii"; 327 phy-mode = "rmii";
328 dual_emac_res_vlan = <3>; 328 dual_emac_res_vlan = <3>;
329}; 329};
@@ -345,6 +345,14 @@
345 pinctrl-0 = <&davinci_mdio_default>; 345 pinctrl-0 = <&davinci_mdio_default>;
346 pinctrl-1 = <&davinci_mdio_sleep>; 346 pinctrl-1 = <&davinci_mdio_sleep>;
347 status = "okay"; 347 status = "okay";
348
349 ethphy0: ethernet-phy@5 {
350 reg = <5>;
351 };
352
353 ethphy1: ethernet-phy@4 {
354 reg = <4>;
355 };
348}; 356};
349 357
350&mmc1 { 358&mmc1 {
diff --git a/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
new file mode 100644
index 000000000000..14f781953475
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
@@ -0,0 +1,249 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2018 MOXA Inc. - https://www.moxa.com/
4 *
5 * Authors: SZ Lin (林上智) <sz.lin@moxa.com>
6 * Wes Huang (黃淵河) <wes.huang@moxa.com>
7 * Fero JD Zhou (周俊達) <FeroJD.Zhou@moxa.com>
8 */
9
10#include "am33xx.dtsi"
11
12/ {
13 vbat: vbat-regulator {
14 compatible = "regulator-fixed";
15 };
16
17 /* Power supply provides a fixed 3.3V @3A */
18 vmmcsd_fixed: vmmcsd-regulator {
19 compatible = "regulator-fixed";
20 regulator-name = "vmmcsd_fixed";
21 regulator-min-microvolt = <3300000>;
22 regulator-max-microvolt = <3300000>;
23 regulator-boot-on;
24 };
25
26 buttons: push_button {
27 compatible = "gpio-keys";
28 };
29};
30
31&am33xx_pinmux {
32 pinctrl-names = "default";
33
34 i2c0_pins: pinmux_i2c0_pins {
35 pinctrl-single,pins = <
36 AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
37 AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
38 >;
39 };
40
41 push_button_pins: pinmux_push_button {
42 pinctrl-single,pins = <
43 AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | MUX_MODE7) /* lcd_hsync.gpio2_23 */
44 >;
45 };
46
47 uart0_pins: pinmux_uart0_pins {
48 pinctrl-single,pins = <
49 AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
50 AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
51 >;
52 };
53
54 davinci_mdio_default: davinci_mdio_default {
55 pinctrl-single,pins = <
56 /* MDIO */
57 AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
58 AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
59 >;
60 };
61
62 mmc1_pins_default: pinmux_mmc1_pins {
63 pinctrl-single,pins = <
64 /* eMMC */
65 AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad12.mmc1_dat0 */
66 AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad13.mmc1_dat1 */
67 AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad14.mmc1_dat2 */
68 AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad15.mmc1_dat3 */
69 AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad8.mmc1_dat4 */
70 AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad9.mmc1_dat5 */
71 AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad10.mmc1_dat6 */
72 AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad11.mmc1_dat7 */
73 AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
74 AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
75 >;
76 };
77
78 spi0_pins: pinmux_spi0 {
79 pinctrl-single,pins = <
80 AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */
81 AM33XX_IOPAD(0x95c, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
82 AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */
83 AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */
84 >;
85 };
86};
87
88&uart0 {
89 /* Console */
90 status = "okay";
91 pinctrl-names = "default";
92 pinctrl-0 = <&uart0_pins>;
93};
94
95&i2c0 {
96 pinctrl-names = "default";
97 pinctrl-0 = <&i2c0_pins>;
98
99 status = "okay";
100 clock-frequency = <400000>;
101
102 eeprom: eeprom@50 {
103 compatible = "atmel,24c16";
104 pagesize = <16>;
105 reg = <0x50>;
106 };
107
108 rtc_wdt: rtc_wdt@68 {
109 compatible = "dallas,ds1374";
110 reg = <0x68>;
111 };
112};
113
114&usb {
115 status = "okay";
116};
117
118&usb_ctrl_mod {
119 status = "okay";
120};
121
122&usb0_phy {
123 status = "okay";
124};
125
126&usb0 {
127 status = "okay";
128 dr_mode = "host";
129};
130
131&cppi41dma {
132 status = "okay";
133};
134
135/* Power */
136&vbat {
137 regulator-name = "vbat";
138 regulator-min-microvolt = <5000000>;
139 regulator-max-microvolt = <5000000>;
140};
141
142&mac {
143 pinctrl-names = "default";
144 pinctrl-0 = <&cpsw_default>;
145 status = "okay";
146};
147
148&davinci_mdio {
149 pinctrl-names = "default";
150 pinctrl-0 = <&davinci_mdio_default>;
151 status = "okay";
152};
153
154&cpsw_emac0 {
155 status = "okay";
156};
157
158&cpsw_emac1 {
159 status = "okay";
160};
161
162&phy_sel {
163 reg= <0x44e10650 0xf5>;
164 rmii-clock-ext;
165};
166
167&sham {
168 status = "okay";
169};
170
171&aes {
172 status = "okay";
173};
174
175&gpio0 {
176 ti,no-reset-on-init;
177};
178
179&mmc2 {
180 pinctrl-names = "default";
181 vmmc-supply = <&vmmcsd_fixed>;
182 bus-width = <8>;
183 pinctrl-0 = <&mmc1_pins_default>;
184 ti,non-removable;
185 status = "okay";
186};
187
188&buttons {
189 pinctrl-names = "default";
190 pinctrl-0 = <&push_button_pins>;
191 #address-cells = <1>;
192 #size-cells = <0>;
193
194 button@0 {
195 label = "push_button";
196 linux,code = <0x100>;
197 gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
198 };
199};
200
201/* SPI Busses */
202&spi0 {
203 status = "okay";
204 pinctrl-names = "default";
205 pinctrl-0 = <&spi0_pins>;
206
207 m25p80@0 {
208 compatible = "mx25l6405d";
209 spi-max-frequency = <40000000>;
210
211 reg = <0>;
212 spi-cpol;
213 spi-cpha;
214
215 partitions {
216 compatible = "fixed-partitions";
217 #address-cells = <1>;
218 #size-cells = <1>;
219
220 /* reg : The partition's offset and size within the mtd bank. */
221 partitions@0 {
222 label = "MLO";
223 reg = <0x0 0x80000>;
224 };
225
226 partitions@1 {
227 label = "U-Boot";
228 reg = <0x80000 0x100000>;
229 };
230
231 partitions@2 {
232 label = "U-Boot Env";
233 reg = <0x180000 0x40000>;
234 };
235 };
236 };
237};
238
239&spi1 {
240 status = "okay";
241 pinctrl-names = "default";
242 pinctrl-0 = <&spi1_pins>;
243
244 tpm_spi_tis@0 {
245 compatible = "tcg,tpm_tis-spi";
246 reg = <0>;
247 spi-max-frequency = <500000>;
248 };
249};
diff --git a/arch/arm/boot/dts/am335x-moxa-uc-2101.dts b/arch/arm/boot/dts/am335x-moxa-uc-2101.dts
new file mode 100644
index 000000000000..48aee6de4cdb
--- /dev/null
+++ b/arch/arm/boot/dts/am335x-moxa-uc-2101.dts
@@ -0,0 +1,69 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2018 MOXA Inc. - https://www.moxa.com/
4 *
5 * Authors: SZ Lin (林上智) <sz.lin@moxa.com>
6 * Wes Huang (黃淵河) <wes.huang@moxa.com>
7 * Fero JD Zhou (周俊達) <FeroJD.Zhou@moxa.com>
8 */
9
10/dts-v1/;
11
12#include "am335x-moxa-uc-2100-common.dtsi"
13
14/ {
15 model = "Moxa UC-2101";
16 compatible = "moxa,uc-2101", "ti,am33xx";
17
18 leds {
19 compatible = "gpio-leds";
20 led1 {
21 label = "UC2100:GREEN:USER";
22 gpios = <&gpio3 10 GPIO_ACTIVE_HIGH>;
23 default-state = "off";
24 };
25 };
26};
27
28&am33xx_pinmux {
29 pinctrl-names = "default";
30
31 cpsw_default: cpsw_default {
32 pinctrl-single,pins = <
33 /* Slave 1 */
34 AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
35 AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
36 AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
37 AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
38 AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
39 AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
40 AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
41 AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mii1_refclk.rmii1_refclk */
42 >;
43 };
44
45 spi1_pins: pinmux_spi1 {
46 pinctrl-single,pins = <
47 AM33XX_IOPAD(0x964, PIN_INPUT_PULLUP | MUX_MODE4) /* ecap0_in_pwm0_out.spi1_sclk */
48 AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE4) /* uart1_ctsn.spi1_cs0 */
49 AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE4) /* uart0_ctsn.spi1_d0 */
50 AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE4) /* uart0_rtsn.spi1_d1 */
51 >;
52 };
53};
54
55&davinci_mdio {
56 phy0: ethernet-phy@4 {
57 reg = <4>;
58 };
59};
60
61&cpsw_emac0 {
62 status = "okay";
63 phy-handle = <&phy0>;
64 phy-mode = "rmii";
65};
66
67&cpsw_emac1 {
68 status = "disabled";
69};
diff --git a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
index f82233cd18e0..5a58efc0c874 100644
--- a/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
+++ b/arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts
@@ -422,18 +422,26 @@
422 pinctrl-names = "default"; 422 pinctrl-names = "default";
423 pinctrl-0 = <&davinci_mdio_default>; 423 pinctrl-0 = <&davinci_mdio_default>;
424 status = "okay"; 424 status = "okay";
425
426 ethphy0: ethernet-phy@4 {
427 reg = <4>;
428 };
429
430 ethphy1: ethernet-phy@5 {
431 reg = <5>;
432 };
425}; 433};
426 434
427&cpsw_emac0 { 435&cpsw_emac0 {
428 status = "okay"; 436 status = "okay";
429 phy_id = <&davinci_mdio>, <4>; 437 phy-handle = <&ethphy0>;
430 phy-mode = "rmii"; 438 phy-mode = "rmii";
431 dual_emac_res_vlan = <1>; 439 dual_emac_res_vlan = <1>;
432}; 440};
433 441
434&cpsw_emac1 { 442&cpsw_emac1 {
435 status = "okay"; 443 status = "okay";
436 phy_id = <&davinci_mdio>, <5>; 444 phy-handle = <&ethphy1>;
437 phy-mode = "rmii"; 445 phy-mode = "rmii";
438 dual_emac_res_vlan = <2>; 446 dual_emac_res_vlan = <2>;
439}; 447};
diff --git a/arch/arm/boot/dts/am335x-nano.dts b/arch/arm/boot/dts/am335x-nano.dts
index 946d7069f417..9c9143ed4003 100644
--- a/arch/arm/boot/dts/am335x-nano.dts
+++ b/arch/arm/boot/dts/am335x-nano.dts
@@ -380,16 +380,24 @@
380 380
381&davinci_mdio { 381&davinci_mdio {
382 status = "okay"; 382 status = "okay";
383
384 ethphy0: ethernet-phy@0 {
385 reg = <0>;
386 };
387
388 ethphy1: ethernet-phy@1 {
389 reg = <1>;
390 };
383}; 391};
384 392
385&cpsw_emac0 { 393&cpsw_emac0 {
386 phy_id = <&davinci_mdio>, <0>; 394 phy-handle = <&ethphy0>;
387 phy-mode = "mii"; 395 phy-mode = "mii";
388 dual_emac_res_vlan = <1>; 396 dual_emac_res_vlan = <1>;
389}; 397};
390 398
391&cpsw_emac1 { 399&cpsw_emac1 {
392 phy_id = <&davinci_mdio>, <1>; 400 phy-handle = <&ethphy1>;
393 phy-mode = "mii"; 401 phy-mode = "mii";
394 dual_emac_res_vlan = <2>; 402 dual_emac_res_vlan = <2>;
395}; 403};
diff --git a/arch/arm/boot/dts/am335x-osd3358-sm-red.dts b/arch/arm/boot/dts/am335x-osd3358-sm-red.dts
index 4d969013f99a..85cd1d0a73ca 100644
--- a/arch/arm/boot/dts/am335x-osd3358-sm-red.dts
+++ b/arch/arm/boot/dts/am335x-osd3358-sm-red.dts
@@ -161,7 +161,7 @@
161 invensense,key = [4e cc 7e eb f6 1e 35 22 00 34 0d 65 32 e9 94 89];*/ 161 invensense,key = [4e cc 7e eb f6 1e 35 22 00 34 0d 65 32 e9 94 89];*/
162 }; 162 };
163 163
164 bmp280: pressure@78 { 164 bmp280: pressure@76 {
165 compatible = "bosch,bmp280"; 165 compatible = "bosch,bmp280";
166 reg = <0x76>; 166 reg = <0x76>;
167 }; 167 };
@@ -424,7 +424,7 @@
424}; 424};
425 425
426&cpsw_emac0 { 426&cpsw_emac0 {
427 phy_id = <&davinci_mdio>, <4>; 427 phy-handle = <&ethphy0>;
428 phy-mode = "rgmii-txid"; 428 phy-mode = "rgmii-txid";
429}; 429};
430 430
@@ -441,6 +441,10 @@
441 pinctrl-0 = <&davinci_mdio_default>; 441 pinctrl-0 = <&davinci_mdio_default>;
442 pinctrl-1 = <&davinci_mdio_sleep>; 442 pinctrl-1 = <&davinci_mdio_sleep>;
443 status = "okay"; 443 status = "okay";
444
445 ethphy0: ethernet-phy@4 {
446 reg = <4>;
447 };
444}; 448};
445 449
446&mmc1 { 450&mmc1 {
diff --git a/arch/arm/boot/dts/am335x-pdu001.dts b/arch/arm/boot/dts/am335x-pdu001.dts
index 1ad530a39a95..6dd9d487aaeb 100644
--- a/arch/arm/boot/dts/am335x-pdu001.dts
+++ b/arch/arm/boot/dts/am335x-pdu001.dts
@@ -373,7 +373,7 @@
373 ti,pindir-d0-out-d1-in; 373 ti,pindir-d0-out-d1-in;
374 status = "okay"; 374 status = "okay";
375 375
376 cfaf240320a032t { 376 display-controller@0 {
377 compatible = "orisetech,otm3225a"; 377 compatible = "orisetech,otm3225a";
378 reg = <0>; 378 reg = <0>;
379 spi-max-frequency = <1000000>; 379 spi-max-frequency = <1000000>;
@@ -533,16 +533,24 @@
533 pinctrl-names = "default"; 533 pinctrl-names = "default";
534 pinctrl-0 = <&davinci_mdio_default>; 534 pinctrl-0 = <&davinci_mdio_default>;
535 status = "okay"; 535 status = "okay";
536
537 ethphy0: ethernet-phy@0 {
538 reg = <0>;
539 };
540
541 ethphy1: ethernet-phy@1 {
542 reg = <1>;
543 };
536}; 544};
537 545
538&cpsw_emac0 { 546&cpsw_emac0 {
539 phy_id = <&davinci_mdio>, <0>; 547 phy-handle = <&ethphy0>;
540 phy-mode = "mii"; 548 phy-mode = "mii";
541 dual_emac_res_vlan = <1>; 549 dual_emac_res_vlan = <1>;
542}; 550};
543 551
544&cpsw_emac1 { 552&cpsw_emac1 {
545 phy_id = <&davinci_mdio>, <1>; 553 phy-handle = <&ethphy1>;
546 phy-mode = "mii"; 554 phy-mode = "mii";
547 dual_emac_res_vlan = <2>; 555 dual_emac_res_vlan = <2>;
548}; 556};
diff --git a/arch/arm/boot/dts/am335x-pepper.dts b/arch/arm/boot/dts/am335x-pepper.dts
index 9fb7426070ce..6be79b8349ac 100644
--- a/arch/arm/boot/dts/am335x-pepper.dts
+++ b/arch/arm/boot/dts/am335x-pepper.dts
@@ -265,13 +265,13 @@
265/* Ethernet */ 265/* Ethernet */
266&cpsw_emac0 { 266&cpsw_emac0 {
267 status = "okay"; 267 status = "okay";
268 phy_id = <&davinci_mdio>, <0>; 268 phy-handle = <&ethphy0>;
269 phy-mode = "rgmii"; 269 phy-mode = "rgmii";
270}; 270};
271 271
272&cpsw_emac1 { 272&cpsw_emac1 {
273 status = "okay"; 273 status = "okay";
274 phy_id = <&davinci_mdio>, <1>; 274 phy-handle = <&ethphy1>;
275 phy-mode = "rgmii"; 275 phy-mode = "rgmii";
276}; 276};
277 277
@@ -279,6 +279,14 @@
279 status = "okay"; 279 status = "okay";
280 pinctrl-names = "default"; 280 pinctrl-names = "default";
281 pinctrl-0 = <&mdio_pins>; 281 pinctrl-0 = <&mdio_pins>;
282
283 ethphy0: ethernet-phy@0 {
284 reg = <0>;
285 };
286
287 ethphy1: ethernet-phy@1 {
288 reg = <1>;
289 };
282}; 290};
283 291
284&mac { 292&mac {
diff --git a/arch/arm/boot/dts/am335x-sancloud-bbe.dts b/arch/arm/boot/dts/am335x-sancloud-bbe.dts
index 7b8e7417a11e..35527fdf56cc 100644
--- a/arch/arm/boot/dts/am335x-sancloud-bbe.dts
+++ b/arch/arm/boot/dts/am335x-sancloud-bbe.dts
@@ -103,10 +103,14 @@
103 pinctrl-0 = <&davinci_mdio_default>; 103 pinctrl-0 = <&davinci_mdio_default>;
104 pinctrl-1 = <&davinci_mdio_sleep>; 104 pinctrl-1 = <&davinci_mdio_sleep>;
105 status = "okay"; 105 status = "okay";
106
107 ethphy0: ethernet-phy@0 {
108 reg = <0>;
109 };
106}; 110};
107 111
108&cpsw_emac0 { 112&cpsw_emac0 {
109 phy_id = <&davinci_mdio>, <0>; 113 phy-handle = <&ethphy0>;
110 phy-mode = "rgmii-txid"; 114 phy-mode = "rgmii-txid";
111}; 115};
112 116
diff --git a/arch/arm/boot/dts/am335x-shc.dts b/arch/arm/boot/dts/am335x-shc.dts
index 4f6a286ea293..1d925ed2b102 100644
--- a/arch/arm/boot/dts/am335x-shc.dts
+++ b/arch/arm/boot/dts/am335x-shc.dts
@@ -206,7 +206,6 @@
206 status = "okay"; 206 status = "okay";
207 slaves = <1>; 207 slaves = <1>;
208 cpsw_emac0: slave@4a100200 { 208 cpsw_emac0: slave@4a100200 {
209 phy_id = <&davinci_mdio>, <0>;
210 phy-mode = "mii"; 209 phy-mode = "mii";
211 phy-handle = <&ethernetphy0>; 210 phy-handle = <&ethernetphy0>;
212 }; 211 };
diff --git a/arch/arm/boot/dts/am3517-evm-ui.dtsi b/arch/arm/boot/dts/am3517-evm-ui.dtsi
new file mode 100644
index 000000000000..e841918c1c26
--- /dev/null
+++ b/arch/arm/boot/dts/am3517-evm-ui.dtsi
@@ -0,0 +1,220 @@
1/*
2 * Copyright (C) 2018 Logic PD, Inc - http://www.logicpd.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include <dt-bindings/input/input.h>
10
11/ {
12 codec1 {
13 compatible = "simple-audio-card";
14 simple-audio-card,name = "tlv320aic23-hifi";
15
16 simple-audio-card,widgets =
17 "Microphone", "Mic In",
18 "Line", "Line In",
19 "Line", "Line Out";
20
21 simple-audio-card,routing =
22 "Line Out", "LOUT",
23 "Line Out", "ROUT",
24 "LLINEIN", "Line In",
25 "RLINEIN", "Line In",
26 "MICIN", "Mic In";
27
28 simple-audio-card,format = "i2s";
29 simple-audio-card,bitclock-master = <&sound_master>;
30 simple-audio-card,frame-master = <&sound_master>;
31
32 simple-audio-card,cpu {
33 sound-dai = <&mcbsp1>;
34 };
35
36 sound_master: simple-audio-card,codec {
37 sound-dai = <&tlv320aic23_1>;
38 system-clock-frequency = <12000000>;
39 };
40 };
41
42 codec2 {
43 compatible = "simple-audio-card";
44 simple-audio-card,name = "tlv320aic23-hifi";
45
46 simple-audio-card,widgets =
47 "Microphone", "Mic In",
48 "Line", "Line In",
49 "Line", "Line Out";
50
51 simple-audio-card,routing =
52 "Line Out", "LOUT",
53 "Line Out", "ROUT",
54 "LLINEIN", "Line In",
55 "RLINEIN", "Line In",
56 "MICIN", "Mic In";
57
58 simple-audio-card,format = "i2s";
59 simple-audio-card,bitclock-master = <&sound_master2>;
60 simple-audio-card,frame-master = <&sound_master2>;
61
62 simple-audio-card,cpu {
63 sound-dai = <&mcbsp2>;
64 };
65
66 sound_master2: simple-audio-card,codec {
67 sound-dai = <&tlv320aic23_2>;
68 system-clock-frequency = <12000000>;
69 };
70 };
71
72 expander-keys {
73 compatible = "gpio-keys-polled";
74 poll-interval = <100>;
75
76 record {
77 label = "Record";
78 /* linux,code = <BTN_0>; */
79 gpios = <&tca6416_2 15 GPIO_ACTIVE_LOW>;
80 };
81
82 play {
83 label = "Play";
84 linux,code = <KEY_PLAY>;
85 gpios = <&tca6416_2 14 GPIO_ACTIVE_LOW>;
86 };
87
88 Stop {
89 label = "Stop";
90 linux,code = <KEY_STOP>;
91 gpios = <&tca6416_2 13 GPIO_ACTIVE_LOW>;
92 };
93
94 fwd {
95 label = "FWD";
96 linux,code = <KEY_FASTFORWARD>;
97 gpios = <&tca6416_2 12 GPIO_ACTIVE_LOW>;
98 };
99
100 rwd {
101 label = "RWD";
102 linux,code = <KEY_REWIND>;
103 gpios = <&tca6416_2 11 GPIO_ACTIVE_LOW>;
104 };
105
106 shift {
107 label = "Shift";
108 linux,code = <KEY_LEFTSHIFT>;
109 gpios = <&tca6416_2 10 GPIO_ACTIVE_LOW>;
110 };
111
112 Mode {
113 label = "Mode";
114 linux,code = <BTN_MODE>;
115 gpios = <&tca6416_2 9 GPIO_ACTIVE_LOW>;
116 };
117
118 Menu {
119 label = "Menu";
120 linux,code = <KEY_MENU>;
121 gpios = <&tca6416_2 8 GPIO_ACTIVE_LOW>;
122 };
123
124 Up {
125 label = "Up";
126 linux,code = <KEY_UP>;
127 gpios = <&tca6416_2 7 GPIO_ACTIVE_LOW>;
128 };
129
130 Down {
131 label = "Down";
132 linux,code = <KEY_DOWN>;
133 gpios = <&tca6416_2 6 GPIO_ACTIVE_LOW>;
134 };
135 };
136};
137
138&i2c2 {
139 /* Audio codecs */
140 tlv320aic23_1: codec@1a {
141 compatible = "ti,tlv320aic23";
142 reg = <0x1a>;
143 #sound-dai-cells= <0>;
144 status = "okay";
145 };
146
147 tlv320aic23_2: codec@1b {
148 compatible = "ti,tlv320aic23";
149 reg = <0x1b>;
150 #sound-dai-cells= <0>;
151 status = "okay";
152 };
153};
154
155&i2c3 {
156 /* Audio codecs */
157 tlv320aic23_3: codec@1a {
158 compatible = "ti,tlv320aic23";
159 reg = <0x1a>;
160 #sound-dai-cells= <0>;
161 status = "okay";
162 };
163
164 /* GPIO Expanders */
165 tca6416_2: gpio@20 {
166 compatible = "ti,tca6416";
167 reg = <0x20>;
168 gpio-controller;
169 #gpio-cells = <2>;
170 vcc-supply = <&vdd_io_reg>;
171 };
172
173 tca6416_3: gpio@21 {
174 compatible = "ti,tca6416";
175 reg = <0x21>;
176 gpio-controller;
177 #gpio-cells = <2>;
178 vcc-supply = <&vdd_io_reg>;
179 };
180
181 /* TVP5146 Analog Video decoder input */
182 tvp5146@5c {
183 compatible = "ti,tvp5146m2";
184 reg = <0x5c>;
185 };
186};
187
188&mcbsp1 {
189 status = "ok";
190 #sound-dai-cells = <0>;
191 pinctrl-names = "default";
192 pinctrl-0 = <&mcbsp1_pins>;
193};
194
195&mcbsp2 {
196 status = "ok";
197 #sound-dai-cells = <0>;
198 pinctrl-names = "default";
199 pinctrl-0 = <&mcbsp2_pins>;
200};
201
202&omap3_pmx_core {
203 mcbsp1_pins: pinmux_mcbsp1_pins {
204 pinctrl-single,pins = <
205 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */
206 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */
207 OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */
208 OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */
209 >;
210 };
211
212 mcbsp2_pins: pinmux_mcbsp2_pins {
213 pinctrl-single,pins = <
214 OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */
215 OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_clkx.mcbsp2_clkx */
216 OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2.dr */
217 OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dx.mcbsp2_dx */
218 >;
219 };
220};
diff --git a/arch/arm/boot/dts/am3517-evm.dts b/arch/arm/boot/dts/am3517-evm.dts
index 1d158cfda15f..d4d33cd7adad 100644
--- a/arch/arm/boot/dts/am3517-evm.dts
+++ b/arch/arm/boot/dts/am3517-evm.dts
@@ -9,6 +9,7 @@
9 9
10#include "am3517.dtsi" 10#include "am3517.dtsi"
11#include "am3517-som.dtsi" 11#include "am3517-som.dtsi"
12#include "am3517-evm-ui.dtsi"
12#include <dt-bindings/input/input.h> 13#include <dt-bindings/input/input.h>
13 14
14/ { 15/ {
diff --git a/arch/arm/boot/dts/am4372.dtsi b/arch/arm/boot/dts/am4372.dtsi
index d4b7c59eec68..a68e89dae7a1 100644
--- a/arch/arm/boot/dts/am4372.dtsi
+++ b/arch/arm/boot/dts/am4372.dtsi
@@ -1101,7 +1101,7 @@
1101 }; 1101 };
1102 }; 1102 };
1103 1103
1104 qspi: qspi@47900000 { 1104 qspi: spi@47900000 {
1105 compatible = "ti,am4372-qspi"; 1105 compatible = "ti,am4372-qspi";
1106 reg = <0x47900000 0x100>, 1106 reg = <0x47900000 0x100>,
1107 <0x30000000 0x4000000>; 1107 <0x30000000 0x4000000>;
diff --git a/arch/arm/boot/dts/am437x-cm-t43.dts b/arch/arm/boot/dts/am437x-cm-t43.dts
index bff5abe69bdb..4fcf647815a2 100644
--- a/arch/arm/boot/dts/am437x-cm-t43.dts
+++ b/arch/arm/boot/dts/am437x-cm-t43.dts
@@ -339,16 +339,24 @@
339 pinctrl-names = "default"; 339 pinctrl-names = "default";
340 pinctrl-0 = <&davinci_mdio_default>; 340 pinctrl-0 = <&davinci_mdio_default>;
341 status = "okay"; 341 status = "okay";
342
343 ethphy0: ethernet-phy@0 {
344 reg = <0>;
345 };
346
347 ethphy1: ethernet-phy@1 {
348 reg = <1>;
349 };
342}; 350};
343 351
344&cpsw_emac0 { 352&cpsw_emac0 {
345 phy_id = <&davinci_mdio>, <0>; 353 phy-handle = <&ethphy0>;
346 phy-mode = "rgmii-txid"; 354 phy-mode = "rgmii-txid";
347 dual_emac_res_vlan = <1>; 355 dual_emac_res_vlan = <1>;
348}; 356};
349 357
350&cpsw_emac1 { 358&cpsw_emac1 {
351 phy_id = <&davinci_mdio>, <1>; 359 phy-handle = <&ethphy1>;
352 phy-mode = "rgmii-txid"; 360 phy-mode = "rgmii-txid";
353 dual_emac_res_vlan = <2>; 361 dual_emac_res_vlan = <2>;
354}; 362};
diff --git a/arch/arm/boot/dts/am437x-gp-evm.dts b/arch/arm/boot/dts/am437x-gp-evm.dts
index 5b97c20c5ed4..601bf4daaeb7 100644
--- a/arch/arm/boot/dts/am437x-gp-evm.dts
+++ b/arch/arm/boot/dts/am437x-gp-evm.dts
@@ -831,10 +831,14 @@
831 pinctrl-0 = <&davinci_mdio_default>; 831 pinctrl-0 = <&davinci_mdio_default>;
832 pinctrl-1 = <&davinci_mdio_sleep>; 832 pinctrl-1 = <&davinci_mdio_sleep>;
833 status = "okay"; 833 status = "okay";
834
835 ethphy0: ethernet-phy@0 {
836 reg = <0>;
837 };
834}; 838};
835 839
836&cpsw_emac0 { 840&cpsw_emac0 {
837 phy_id = <&davinci_mdio>, <0>; 841 phy-handle = <&ethphy0>;
838 phy-mode = "rgmii"; 842 phy-mode = "rgmii";
839}; 843};
840 844
diff --git a/arch/arm/boot/dts/am437x-idk-evm.dts b/arch/arm/boot/dts/am437x-idk-evm.dts
index 20132477a871..bb285409473e 100644
--- a/arch/arm/boot/dts/am437x-idk-evm.dts
+++ b/arch/arm/boot/dts/am437x-idk-evm.dts
@@ -499,10 +499,14 @@
499 pinctrl-0 = <&davinci_mdio_default>; 499 pinctrl-0 = <&davinci_mdio_default>;
500 pinctrl-1 = <&davinci_mdio_sleep>; 500 pinctrl-1 = <&davinci_mdio_sleep>;
501 status = "okay"; 501 status = "okay";
502
503 ethphy0: ethernet-phy@0 {
504 reg = <0>;
505 };
502}; 506};
503 507
504&cpsw_emac0 { 508&cpsw_emac0 {
505 phy_id = <&davinci_mdio>, <0>; 509 phy-handle = <&ethphy0>;
506 phy-mode = "rgmii"; 510 phy-mode = "rgmii";
507}; 511};
508 512
diff --git a/arch/arm/boot/dts/am437x-sk-evm.dts b/arch/arm/boot/dts/am437x-sk-evm.dts
index d4be3fd0b6f4..088cba09d34d 100644
--- a/arch/arm/boot/dts/am437x-sk-evm.dts
+++ b/arch/arm/boot/dts/am437x-sk-evm.dts
@@ -799,16 +799,24 @@
799 pinctrl-0 = <&davinci_mdio_default>; 799 pinctrl-0 = <&davinci_mdio_default>;
800 pinctrl-1 = <&davinci_mdio_sleep>; 800 pinctrl-1 = <&davinci_mdio_sleep>;
801 status = "okay"; 801 status = "okay";
802
803 ethphy0: ethernet-phy@4 {
804 reg = <4>;
805 };
806
807 ethphy1: ethernet-phy@5 {
808 reg = <5>;
809 };
802}; 810};
803 811
804&cpsw_emac0 { 812&cpsw_emac0 {
805 phy_id = <&davinci_mdio>, <4>; 813 phy-handle = <&ethphy0>;
806 phy-mode = "rgmii"; 814 phy-mode = "rgmii";
807 dual_emac_res_vlan = <1>; 815 dual_emac_res_vlan = <1>;
808}; 816};
809 817
810&cpsw_emac1 { 818&cpsw_emac1 {
811 phy_id = <&davinci_mdio>, <5>; 819 phy-handle = <&ethphy1>;
812 phy-mode = "rgmii"; 820 phy-mode = "rgmii";
813 dual_emac_res_vlan = <2>; 821 dual_emac_res_vlan = <2>;
814}; 822};
diff --git a/arch/arm/boot/dts/am43x-epos-evm.dts b/arch/arm/boot/dts/am43x-epos-evm.dts
index 6502d3397653..4ea753b3ee43 100644
--- a/arch/arm/boot/dts/am43x-epos-evm.dts
+++ b/arch/arm/boot/dts/am43x-epos-evm.dts
@@ -575,10 +575,14 @@
575 pinctrl-0 = <&davinci_mdio_default>; 575 pinctrl-0 = <&davinci_mdio_default>;
576 pinctrl-1 = <&davinci_mdio_sleep>; 576 pinctrl-1 = <&davinci_mdio_sleep>;
577 status = "okay"; 577 status = "okay";
578
579 ethphy0: ethernet-phy@16 {
580 reg = <16>;
581 };
578}; 582};
579 583
580&cpsw_emac0 { 584&cpsw_emac0 {
581 phy_id = <&davinci_mdio>, <16>; 585 phy-handle = <&ethphy0>;
582 phy-mode = "rmii"; 586 phy-mode = "rmii";
583}; 587};
584 588
diff --git a/arch/arm/boot/dts/am571x-idk.dts b/arch/arm/boot/dts/am571x-idk.dts
index d9a2049a1ea8..6432309b39e3 100644
--- a/arch/arm/boot/dts/am571x-idk.dts
+++ b/arch/arm/boot/dts/am571x-idk.dts
@@ -64,6 +64,82 @@
64 linux,default-trigger = "mmc0"; 64 linux,default-trigger = "mmc0";
65 }; 65 };
66 }; 66 };
67
68 idk-leds {
69 status = "disabled";
70 compatible = "gpio-leds";
71 red0-led {
72 label = "idk:red0";
73 gpios = <&gpio6 19 GPIO_ACTIVE_HIGH>;
74 default-state = "off";
75 };
76
77 green0-led {
78 label = "idk:green0";
79 gpios = <&gpio4 0 GPIO_ACTIVE_HIGH>;
80 default-state = "off";
81 };
82
83 blue0-led {
84 label = "idk:blue0";
85 gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
86 default-state = "off";
87 };
88
89 red1-led {
90 label = "idk:red1";
91 gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
92 default-state = "off";
93 };
94
95 green1-led {
96 label = "idk:green1";
97 gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
98 default-state = "off";
99 };
100
101 blue1-led {
102 label = "idk:blue1";
103 gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
104 default-state = "off";
105 };
106
107 red2-led {
108 label = "idk:red2";
109 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
110 default-state = "off";
111 };
112
113 green2-led {
114 label = "idk:green2";
115 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
116 default-state = "off";
117 };
118
119 blue2-led {
120 label = "idk:blue2";
121 gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>;
122 default-state = "off";
123 };
124
125 red3-led {
126 label = "idk:red3";
127 gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
128 default-state = "off";
129 };
130
131 green3-led {
132 label = "idk:green3";
133 gpios = <&gpio7 25 GPIO_ACTIVE_HIGH>;
134 default-state = "off";
135 };
136
137 blue3-led {
138 label = "idk:blue3";
139 gpios = <&gpio7 24 GPIO_ACTIVE_HIGH>;
140 default-state = "off";
141 };
142 };
67}; 143};
68 144
69&extcon_usb2 { 145&extcon_usb2 {
@@ -71,6 +147,10 @@
71 vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>; 147 vbus-gpio = <&gpio7 22 GPIO_ACTIVE_HIGH>;
72}; 148};
73 149
150&sn65hvs882 {
151 load-gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
152};
153
74&mailbox5 { 154&mailbox5 {
75 status = "okay"; 155 status = "okay";
76 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x { 156 mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
@@ -114,7 +194,3 @@
114 pinctrl-1 = <&mmc2_pins_hs>; 194 pinctrl-1 = <&mmc2_pins_hs>;
115 pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>; 195 pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>;
116}; 196};
117
118&cpu0 {
119 vdd-supply = <&smps12_reg>;
120};
diff --git a/arch/arm/boot/dts/am572x-idk-common.dtsi b/arch/arm/boot/dts/am572x-idk-common.dtsi
index 784639ddf451..a064f13b3880 100644
--- a/arch/arm/boot/dts/am572x-idk-common.dtsi
+++ b/arch/arm/boot/dts/am572x-idk-common.dtsi
@@ -55,6 +55,82 @@
55 linux,default-trigger = "mmc0"; 55 linux,default-trigger = "mmc0";
56 }; 56 };
57 }; 57 };
58
59 idk-leds {
60 status = "disabled";
61 compatible = "gpio-leds";
62 red0-led {
63 label = "idk:red0";
64 gpios = <&gpio6 19 GPIO_ACTIVE_HIGH>;
65 default-state = "off";
66 };
67
68 green0-led {
69 label = "idk:green0";
70 gpios = <&gpio3 9 GPIO_ACTIVE_HIGH>;
71 default-state = "off";
72 };
73
74 blue0-led {
75 label = "idk:blue0";
76 gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
77 default-state = "off";
78 };
79
80 red1-led {
81 label = "idk:red1";
82 gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
83 default-state = "off";
84 };
85
86 green1-led {
87 label = "idk:green1";
88 gpios = <&gpio2 29 GPIO_ACTIVE_HIGH>;
89 default-state = "off";
90 };
91
92 blue1-led {
93 label = "idk:blue1";
94 gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
95 default-state = "off";
96 };
97
98 red2-led {
99 label = "idk:red2";
100 gpios = <&gpio7 9 GPIO_ACTIVE_HIGH>;
101 default-state = "off";
102 };
103
104 green2-led {
105 label = "idk:green2";
106 gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
107 default-state = "off";
108 };
109
110 blue2-led {
111 label = "idk:blue2";
112 gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>;
113 default-state = "off";
114 };
115
116 red3-led {
117 label = "idk:red3";
118 gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
119 default-state = "off";
120 };
121
122 green3-led {
123 label = "idk:green3";
124 gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
125 default-state = "off";
126 };
127
128 blue3-led {
129 label = "idk:blue3";
130 gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
131 default-state = "off";
132 };
133 };
58}; 134};
59 135
60&extcon_usb2 { 136&extcon_usb2 {
diff --git a/arch/arm/boot/dts/am572x-idk.dts b/arch/arm/boot/dts/am572x-idk.dts
index 3ef9111d0e8b..b2fb6e097be7 100644
--- a/arch/arm/boot/dts/am572x-idk.dts
+++ b/arch/arm/boot/dts/am572x-idk.dts
@@ -36,7 +36,3 @@
36 pinctrl-1 = <&mmc2_pins_hs>; 36 pinctrl-1 = <&mmc2_pins_hs>;
37 pinctrl-2 = <&mmc2_pins_ddr_rev20>; 37 pinctrl-2 = <&mmc2_pins_ddr_rev20>;
38}; 38};
39
40&cpu0 {
41 vdd-supply = <&smps12_reg>;
42};
diff --git a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
index 203266f88480..4748ce8747ad 100644
--- a/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
+++ b/arch/arm/boot/dts/am57xx-cl-som-am57x.dts
@@ -518,7 +518,7 @@
518 }; 518 };
519 519
520 /* touch controller */ 520 /* touch controller */
521 ads7846@0 { 521 touchscreen@1 {
522 pinctrl-names = "default"; 522 pinctrl-names = "default";
523 pinctrl-0 = <&ads7846_pins>; 523 pinctrl-0 = <&ads7846_pins>;
524 524
@@ -558,13 +558,13 @@
558}; 558};
559 559
560&cpsw_emac0 { 560&cpsw_emac0 {
561 phy_id = <&davinci_mdio>, <0>; 561 phy-handle = <&ethphy0>;
562 phy-mode = "rgmii-txid"; 562 phy-mode = "rgmii-txid";
563 dual_emac_res_vlan = <0>; 563 dual_emac_res_vlan = <0>;
564}; 564};
565 565
566&cpsw_emac1 { 566&cpsw_emac1 {
567 phy_id = <&davinci_mdio>, <1>; 567 phy-handle = <&ethphy1>;
568 phy-mode = "rgmii-txid"; 568 phy-mode = "rgmii-txid";
569 dual_emac_res_vlan = <1>; 569 dual_emac_res_vlan = <1>;
570}; 570};
@@ -573,6 +573,14 @@
573 pinctrl-names = "default", "sleep"; 573 pinctrl-names = "default", "sleep";
574 pinctrl-0 = <&davinci_mdio_pins_default>; 574 pinctrl-0 = <&davinci_mdio_pins_default>;
575 pinctrl-1 = <&davinci_mdio_pins_sleep>; 575 pinctrl-1 = <&davinci_mdio_pins_sleep>;
576
577 ethphy0: ethernet-phy@0 {
578 reg = <0>;
579 };
580
581 ethphy1: ethernet-phy@1 {
582 reg = <1>;
583 };
576}; 584};
577 585
578&usb2_phy1 { 586&usb2_phy1 {
diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi b/arch/arm/boot/dts/am57xx-idk-common.dtsi
index c9063ffca524..f7bd26458915 100644
--- a/arch/arm/boot/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi
@@ -372,17 +372,27 @@
372}; 372};
373 373
374&cpsw_emac0 { 374&cpsw_emac0 {
375 phy_id = <&davinci_mdio>, <0>; 375 phy-handle = <&ethphy0>;
376 phy-mode = "rgmii"; 376 phy-mode = "rgmii";
377 dual_emac_res_vlan = <1>; 377 dual_emac_res_vlan = <1>;
378}; 378};
379 379
380&cpsw_emac1 { 380&cpsw_emac1 {
381 phy_id = <&davinci_mdio>, <1>; 381 phy-handle = <&ethphy1>;
382 phy-mode = "rgmii"; 382 phy-mode = "rgmii";
383 dual_emac_res_vlan = <2>; 383 dual_emac_res_vlan = <2>;
384}; 384};
385 385
386&davinci_mdio {
387 ethphy0: ethernet-phy@0 {
388 reg = <0>;
389 };
390
391 ethphy1: ethernet-phy@1 {
392 reg = <1>;
393 };
394};
395
386&usb2_phy1 { 396&usb2_phy1 {
387 phy-supply = <&ldousb_reg>; 397 phy-supply = <&ldousb_reg>;
388}; 398};
@@ -478,3 +488,7 @@
478 }; 488 };
479 }; 489 };
480}; 490};
491
492&cpu0 {
493 vdd-supply = <&smps12_reg>;
494};
diff --git a/arch/arm/boot/dts/arm-realview-eb.dtsi b/arch/arm/boot/dts/arm-realview-eb.dtsi
index a917cf8825ca..0e4c7c4c8c09 100644
--- a/arch/arm/boot/dts/arm-realview-eb.dtsi
+++ b/arch/arm/boot/dts/arm-realview-eb.dtsi
@@ -371,7 +371,7 @@
371 clock-names = "uartclk", "apb_pclk"; 371 clock-names = "uartclk", "apb_pclk";
372 }; 372 };
373 373
374 ssp: ssp@1000d000 { 374 ssp: spi@1000d000 {
375 compatible = "arm,pl022", "arm,primecell"; 375 compatible = "arm,pl022", "arm,primecell";
376 reg = <0x1000d000 0x1000>; 376 reg = <0x1000d000 0x1000>;
377 clocks = <&sspclk>, <&pclk>; 377 clocks = <&sspclk>, <&pclk>;
diff --git a/arch/arm/boot/dts/arm-realview-pb1176.dts b/arch/arm/boot/dts/arm-realview-pb1176.dts
index f935b72d3d96..f2a1d25eb6cf 100644
--- a/arch/arm/boot/dts/arm-realview-pb1176.dts
+++ b/arch/arm/boot/dts/arm-realview-pb1176.dts
@@ -380,7 +380,7 @@
380 clock-names = "apb_pclk"; 380 clock-names = "apb_pclk";
381 }; 381 };
382 382
383 pb1176_ssp: ssp@1010b000 { 383 pb1176_ssp: spi@1010b000 {
384 compatible = "arm,pl022", "arm,primecell"; 384 compatible = "arm,pl022", "arm,primecell";
385 reg = <0x1010b000 0x1000>; 385 reg = <0x1010b000 0x1000>;
386 interrupt-parent = <&intc_dc1176>; 386 interrupt-parent = <&intc_dc1176>;
diff --git a/arch/arm/boot/dts/arm-realview-pb11mp.dts b/arch/arm/boot/dts/arm-realview-pb11mp.dts
index 36203288de42..7f9cbdf33a51 100644
--- a/arch/arm/boot/dts/arm-realview-pb11mp.dts
+++ b/arch/arm/boot/dts/arm-realview-pb11mp.dts
@@ -523,7 +523,7 @@
523 clock-names = "uartclk", "apb_pclk"; 523 clock-names = "uartclk", "apb_pclk";
524 }; 524 };
525 525
526 ssp@1000d000 { 526 spi@1000d000 {
527 compatible = "arm,pl022", "arm,primecell"; 527 compatible = "arm,pl022", "arm,primecell";
528 reg = <0x1000d000 0x1000>; 528 reg = <0x1000d000 0x1000>;
529 interrupt-parent = <&intc_pb11mp>; 529 interrupt-parent = <&intc_pb11mp>;
diff --git a/arch/arm/boot/dts/arm-realview-pbx.dtsi b/arch/arm/boot/dts/arm-realview-pbx.dtsi
index 10868ba3277f..a5676697ff3b 100644
--- a/arch/arm/boot/dts/arm-realview-pbx.dtsi
+++ b/arch/arm/boot/dts/arm-realview-pbx.dtsi
@@ -362,7 +362,7 @@
362 clock-names = "uartclk", "apb_pclk"; 362 clock-names = "uartclk", "apb_pclk";
363 }; 363 };
364 364
365 ssp: ssp@1000d000 { 365 ssp: spi@1000d000 {
366 compatible = "arm,pl022", "arm,primecell"; 366 compatible = "arm,pl022", "arm,primecell";
367 reg = <0x1000d000 0x1000>; 367 reg = <0x1000d000 0x1000>;
368 clocks = <&sspclk>, <&pclk>; 368 clocks = <&sspclk>, <&pclk>;
diff --git a/arch/arm/boot/dts/armada-385-db-88f6820-amc.dts b/arch/arm/boot/dts/armada-385-db-88f6820-amc.dts
new file mode 100644
index 000000000000..7881df3b28a0
--- /dev/null
+++ b/arch/arm/boot/dts/armada-385-db-88f6820-amc.dts
@@ -0,0 +1,155 @@
1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Device Tree file for Marvell Armada 385 AMC board
4 * (DB-88F6820-AMC)
5 *
6 * Copyright (C) 2017 Allied Telesis Labs
7 */
8
9/dts-v1/;
10#include "armada-385.dtsi"
11
12#include <dt-bindings/gpio/gpio.h>
13
14/ {
15 model = "Marvell Armada 385 AMC";
16 compatible = "marvell,a385-db-amc", "marvell,armada385", "marvell,armada380";
17
18 chosen {
19 stdout-path = "serial0:115200n8";
20 };
21
22 aliases {
23 ethernet0 = &eth0;
24 ethernet1 = &eth1;
25 spi1 = &spi1;
26 };
27
28 memory {
29 device_type = "memory";
30 reg = <0x00000000 0x80000000>; /* 2GB */
31 };
32
33 soc {
34 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
35 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000>;
36 };
37};
38
39&i2c0 {
40 pinctrl-names = "default";
41 pinctrl-0 = <&i2c0_pins>;
42 status = "okay";
43};
44
45&uart0 {
46 /*
47 * Exported on the micro USB connector CON3
48 * through an FTDI
49 */
50
51 pinctrl-names = "default";
52 pinctrl-0 = <&uart0_pins>;
53 status = "okay";
54};
55
56
57&eth0 {
58 pinctrl-names = "default";
59 /*
60 * The Reference Clock 0 is used to provide a
61 * clock to the PHY
62 */
63 pinctrl-0 = <&ge0_rgmii_pins>, <&ref_clk0_pins>;
64 status = "okay";
65 phy = <&phy0>;
66 phy-mode = "rgmii-id";
67};
68
69&eth2 {
70 status = "okay";
71 phy = <&phy1>;
72 phy-mode = "sgmii";
73};
74
75&usb0 {
76 status = "okay";
77};
78
79
80
81&mdio {
82 pinctrl-names = "default";
83 pinctrl-0 = <&mdio_pins>;
84
85 phy0: ethernet-phy@1 {
86 reg = <1>;
87 };
88
89 phy1: ethernet-phy@0 {
90 reg = <0>;
91 };
92};
93
94&nand_controller {
95 status = "okay";
96
97 nand@0 {
98 reg = <0>;
99 label = "pxa3xx_nand-0";
100 nand-rb = <0>;
101 nand-on-flash-bbt;
102
103 partitions {
104 compatible = "fixed-partitions";
105 #address-cells = <1>;
106 #size-cells = <1>;
107 partition@0 {
108 reg = <0x00000000 0x40000000>;
109 label = "user";
110 };
111 };
112 };
113};
114
115&pciec {
116 status = "okay";
117};
118
119&pcie1 {
120 /* Port 0, Lane 0 */
121 status = "okay";
122};
123
124&spi1 {
125 pinctrl-names = "default";
126 pinctrl-0 = <&spi1_pins>;
127 status = "okay";
128
129 spi-flash@0 {
130 #address-cells = <1>;
131 #size-cells = <1>;
132 compatible = "jedec,spi-nor";
133 reg = <0>; /* Chip select 0 */
134 spi-max-frequency = <50000000>;
135 m25p,fast-read;
136
137 partitions {
138 compatible = "fixed-partitions";
139 #address-cells = <1>;
140 #size-cells = <1>;
141 partition@0 {
142 reg = <0x00000000 0x00100000>;
143 label = "u-boot";
144 };
145 partition@100000 {
146 reg = <0x00100000 0x00040000>;
147 label = "u-boot-env";
148 };
149 };
150 };
151};
152
153&refclk {
154 clock-frequency = <20000000>;
155};
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dtsi b/arch/arm/boot/dts/armada-388-clearfog.dtsi
index 7c6ad2afb094..1b0d0680c8b6 100644
--- a/arch/arm/boot/dts/armada-388-clearfog.dtsi
+++ b/arch/arm/boot/dts/armada-388-clearfog.dtsi
@@ -48,7 +48,7 @@
48 &clearfog_sdhci_cd_pins>; 48 &clearfog_sdhci_cd_pins>;
49 pinctrl-names = "default"; 49 pinctrl-names = "default";
50 status = "okay"; 50 status = "okay";
51 vmmc = <&reg_3p3v>; 51 vmmc-supply = <&reg_3p3v>;
52 wp-inverted; 52 wp-inverted;
53 }; 53 };
54 54
diff --git a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
index 8d708cc22495..59753470cd34 100644
--- a/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx3236.dtsi
@@ -189,7 +189,7 @@
189 }; 189 };
190 }; 190 };
191 191
192 nand: nand@d0000 { 192 nand_controller: nand-controller@d0000 {
193 clocks = <&dfx_coredivclk 0>; 193 clocks = <&dfx_coredivclk 0>;
194 }; 194 };
195 195
@@ -243,7 +243,7 @@
243 ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>; 243 ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>;
244 244
245 pp0: packet-processor@0 { 245 pp0: packet-processor@0 {
246 compatible = "marvell,prestera-98dx3236"; 246 compatible = "marvell,prestera-98dx3236", "marvell,prestera";
247 reg = <0 0x4000000>; 247 reg = <0 0x4000000>;
248 interrupts = <33>, <34>, <35>; 248 interrupts = <33>, <34>, <35>;
249 dfx = <&dfx>; 249 dfx = <&dfx>;
diff --git a/arch/arm/boot/dts/armada-xp-98dx3336.dtsi b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
index 2f5fc67dd6dc..1d9d8a8ea60c 100644
--- a/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx3336.dtsi
@@ -35,5 +35,5 @@
35}; 35};
36 36
37&pp0 { 37&pp0 {
38 compatible = "marvell,prestera-98dx3336"; 38 compatible = "marvell,prestera-98dx3336", "marvell,prestera";
39}; 39};
diff --git a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
index 7a9e8839880b..48ffdc72bfc7 100644
--- a/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
+++ b/arch/arm/boot/dts/armada-xp-98dx4251.dtsi
@@ -49,6 +49,6 @@
49}; 49};
50 50
51&pp0 { 51&pp0 {
52 compatible = "marvell,prestera-98dx4251"; 52 compatible = "marvell,prestera-98dx4251", "marvell,prestera";
53 interrupts = <33>, <34>, <35>, <36>; 53 interrupts = <33>, <34>, <35>, <36>;
54}; 54};
diff --git a/arch/arm/boot/dts/armada-xp-db-dxbc2.dts b/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
index f42fc6118b7c..8a3aa616bbd0 100644
--- a/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
+++ b/arch/arm/boot/dts/armada-xp-db-dxbc2.dts
@@ -68,14 +68,18 @@
68 status = "okay"; 68 status = "okay";
69}; 69};
70 70
71&nand { 71&nand_controller {
72 status = "okay"; 72 status = "okay";
73 label = "pxa3xx_nand-0"; 73
74 num-cs = <1>; 74 nand@0 {
75 marvell,nand-keep-config; 75 reg = <0>;
76 nand-on-flash-bbt; 76 label = "pxa3xx_nand-0";
77 nand-ecc-strength = <4>; 77 nand-rb = <0>;
78 nand-ecc-step-size = <512>; 78 marvell,nand-keep-config;
79 nand-on-flash-bbt;
80 nand-ecc-strength = <4>;
81 nand-ecc-step-size = <512>;
82 };
79}; 83};
80 84
81&sdio { 85&sdio {
diff --git a/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts b/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
index 8432f517e346..df048050615f 100644
--- a/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
+++ b/arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
@@ -67,14 +67,18 @@
67 status = "okay"; 67 status = "okay";
68}; 68};
69 69
70&nand { 70&nand_controller {
71 status = "okay"; 71 status = "okay";
72 label = "pxa3xx_nand-0"; 72
73 num-cs = <1>; 73 nand@0 {
74 marvell,nand-keep-config; 74 reg = <0>;
75 nand-on-flash-bbt; 75 label = "pxa3xx_nand-0";
76 nand-ecc-strength = <4>; 76 nand-rb = <0>;
77 nand-ecc-step-size = <512>; 77 marvell,nand-keep-config;
78 nand-on-flash-bbt;
79 nand-ecc-strength = <4>;
80 nand-ecc-step-size = <512>;
81 };
78}; 82};
79 83
80&spi0 { 84&spi0 {
diff --git a/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts b/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts
new file mode 100644
index 000000000000..bdfd8c9f3a7c
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed-bmc-arm-stardragon4800-rep2.dts
@@ -0,0 +1,207 @@
1// SPDX-License-Identifier: GPL-2.0+
2/dts-v1/;
3
4#include "aspeed-g5.dtsi"
5#include <dt-bindings/gpio/aspeed-gpio.h>
6
7/ {
8 model = "HXT StarDragon 4800 REP2 AST2520";
9 compatible = "hxt,stardragon4800-rep2-bmc", "aspeed,ast2500";
10
11 chosen {
12 stdout-path = &uart5;
13 bootargs = "console=ttyS4,115200 earlyprintk";
14 };
15
16 memory@80000000 {
17 reg = <0x80000000 0x40000000>;
18 };
19
20 iio-hwmon {
21 compatible = "iio-hwmon";
22 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
23 <&adc 4>, <&adc 5>, <&adc 6>, <&adc 8>;
24 };
25
26 iio-hwmon-battery {
27 compatible = "iio-hwmon";
28 io-channels = <&adc 7>;
29 };
30
31 leds {
32 compatible = "gpio-leds";
33
34 system_fault1 {
35 label = "System_fault1";
36 gpios = <&gpio ASPEED_GPIO(I, 3) GPIO_ACTIVE_LOW>;
37 };
38
39 system_fault2 {
40 label = "System_fault2";
41 gpios = <&gpio ASPEED_GPIO(I, 2) GPIO_ACTIVE_LOW>;
42 };
43 };
44};
45
46&fmc {
47 status = "okay";
48 flash@0 {
49 status = "okay";
50 m25p,fast-read;
51 label = "bmc";
52#include "openbmc-flash-layout.dtsi"
53 };
54};
55
56&spi1 {
57 status = "okay";
58 pinctrl-names = "default";
59 pinctrl-0 = <&pinctrl_spi1_default>;
60 flash@0 {
61 status = "okay";
62 };
63};
64
65&spi2 {
66 pinctrl-names = "default";
67 pinctrl-0 = <&pinctrl_spi2ck_default
68 &pinctrl_spi2miso_default
69 &pinctrl_spi2mosi_default
70 &pinctrl_spi2cs0_default>;
71};
72
73&uart3 {
74 status = "okay";
75
76 pinctrl-names = "default";
77 pinctrl-0 = <&pinctrl_txd3_default &pinctrl_rxd3_default>;
78 current-speed = <115200>;
79};
80
81&uart5 {
82 status = "okay";
83};
84
85&mac0 {
86 status = "okay";
87 pinctrl-names = "default";
88 pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
89};
90
91&mac1 {
92 status = "okay";
93 pinctrl-names = "default";
94 pinctrl-0 = <&pinctrl_rmii2_default>;
95 use-ncsi;
96};
97
98&i2c0 {
99 status = "okay";
100};
101
102&i2c1 {
103 status = "okay";
104
105 tmp421@1e {
106 compatible = "ti,tmp421";
107 reg = <0x1e>;
108 };
109 tmp421@2a {
110 compatible = "ti,tmp421";
111 reg = <0x2a>;
112 };
113 tmp421@1c {
114 compatible = "ti,tmp421";
115 reg = <0x1c>;
116 };
117};
118
119&i2c2 {
120 status = "okay";
121};
122
123&i2c3 {
124 status = "okay";
125};
126
127&i2c4 {
128 status = "okay";
129};
130
131&i2c5 {
132 status = "okay";
133};
134
135&i2c6 {
136 status = "okay";
137
138 tmp421@1f {
139 compatible = "ti,tmp421";
140 reg = <0x1f>;
141 };
142 nvt210@4c {
143 compatible = "nvt210";
144 reg = <0x4c>;
145 };
146 eeprom@50 {
147 compatible = "atmel,24c128";
148 reg = <0x50>;
149 pagesize = <128>;
150 };
151};
152
153&i2c7 {
154 status = "okay";
155};
156
157&i2c8 {
158 status = "okay";
159
160 pca9641@70 {
161 compatible = "nxp,pca9641";
162 reg = <0x70>;
163 i2c-arb {
164 #address-cells = <1>;
165 #size-cells = <0>;
166 eeprom@50 {
167 compatible = "atmel,24c02";
168 reg = <0x50>;
169 };
170 dps650ab@58 {
171 compatible = "dps650ab";
172 reg = <0x58>;
173 };
174 };
175 };
176};
177
178&i2c9 {
179 status = "okay";
180};
181
182&vuart {
183 status = "okay";
184};
185
186&gfx {
187 status = "okay";
188};
189
190&pinctrl {
191 aspeed,external-nodes = <&gfx &lhc>;
192};
193
194&gpio {
195 pin_gpio_c7 {
196 gpio-hog;
197 gpios = <ASPEED_GPIO(C, 7) GPIO_ACTIVE_HIGH>;
198 output-low;
199 line-name = "BIOS_SPI_MUX_S";
200 };
201 pin_gpio_d1 {
202 gpio-hog;
203 gpios = <ASPEED_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
204 output-high;
205 line-name = "PHY2_RESET_N";
206 };
207};
diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
new file mode 100644
index 000000000000..f8e7b71af7e6
--- /dev/null
+++ b/arch/arm/boot/dts/aspeed-bmc-facebook-tiogapass.dts
@@ -0,0 +1,146 @@
1// SPDX-License-Identifier: GPL-2.0+
2// Copyright (c) 2018 Facebook Inc.
3// Author: Vijay Khemka <vijaykhemka@fb.com>
4/dts-v1/;
5
6#include "aspeed-g5.dtsi"
7#include <dt-bindings/gpio/aspeed-gpio.h>
8
9/ {
10 model = "Facebook TiogaPass BMC";
11 compatible = "facebook,tiogapass-bmc", "aspeed,ast2500";
12 aliases {
13 serial0 = &uart1;
14 serial4 = &uart5;
15 };
16 chosen {
17 stdout-path = &uart5;
18 bootargs = "console=ttyS4,115200 earlyprintk";
19 };
20
21 memory@80000000 {
22 reg = <0x80000000 0x20000000>;
23 };
24};
25
26&fmc {
27 status = "okay";
28 flash@0 {
29 status = "okay";
30 m25p,fast-read;
31#include "openbmc-flash-layout.dtsi"
32 };
33};
34
35&spi1 {
36 status = "okay";
37 pinctrl-names = "default";
38 pinctrl-0 = <&pinctrl_spi1_default>;
39 flash@0 {
40 status = "okay";
41 m25p,fast-read;
42 label = "pnor";
43 };
44};
45
46&uart1 {
47 // Host Console
48 status = "okay";
49 pinctrl-names = "default";
50 pinctrl-0 = <&pinctrl_txd1_default
51 &pinctrl_rxd1_default>;
52};
53
54&uart5 {
55 // BMC Console
56 status = "okay";
57};
58
59&mac0 {
60 status = "okay";
61
62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_rmii1_default>;
64 use-ncsi;
65};
66
67&i2c0 {
68 status = "okay";
69 //Airmax Conn B, CPU0 PIROM, CPU1 PIROM
70};
71
72&i2c1 {
73 status = "okay";
74 //X24 Riser
75};
76
77&i2c2 {
78 status = "okay";
79 // Mezz Management SMBus
80};
81
82&i2c3 {
83 status = "okay";
84 // SMBus to Board ID EEPROM
85};
86
87&i2c4 {
88 status = "okay";
89 // BMC Debug Header
90};
91
92&i2c5 {
93 status = "okay";
94 // CPU Voltage regulators
95};
96
97&i2c6 {
98 status = "okay";
99 tpm@20 {
100 compatible = "infineon,slb9645tt";
101 reg = <0x20>;
102 };
103 tmp421@4e {
104 compatible = "ti,tmp421";
105 reg = <0x4e>;
106 };
107 tmp421@4f {
108 compatible = "ti,tmp421";
109 reg = <0x4f>;
110 };
111 eeprom@54 {
112 compatible = "atmel,24c64";
113 reg = <0x54>;
114 pagesize = <32>;
115 };
116};
117
118&i2c7 {
119 status = "okay";
120 //HSC, AirMax Conn A
121};
122
123&i2c8 {
124 status = "okay";
125 //Mezz Sensor SMBus
126};
127
128&i2c9 {
129 status = "okay";
130 //USB Debug Connector
131};
132
133&pwm_tacho {
134 status = "okay";
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>;
137 fan@0 {
138 reg = <0x00>;
139 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
140 };
141
142 fan@1 {
143 reg = <0x00>;
144 aspeed,fan-tach-ch = /bits/ 8 <0x01>;
145 };
146};
diff --git a/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts b/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts
index 76aa6ea1f988..385c0f4b69ee 100644
--- a/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-quanta-q71l.dts
@@ -7,6 +7,25 @@
7 model = "Quanta Q71L BMC"; 7 model = "Quanta Q71L BMC";
8 compatible = "quanta,q71l-bmc", "aspeed,ast2400"; 8 compatible = "quanta,q71l-bmc", "aspeed,ast2400";
9 9
10 aliases {
11 i2c14 = &i2c_pcie2;
12 i2c15 = &i2c_pcie3;
13 i2c16 = &i2c_pcie6;
14 i2c17 = &i2c_pcie7;
15 i2c18 = &i2c_pcie1;
16 i2c19 = &i2c_pcie4;
17 i2c20 = &i2c_pcie5;
18 i2c21 = &i2c_pcie8;
19 i2c22 = &i2c_pcie9;
20 i2c23 = &i2c_pcie10;
21 i2c24 = &i2c_ssd1;
22 i2c25 = &i2c_ssd2;
23 i2c26 = &i2c_psu4;
24 i2c27 = &i2c_psu1;
25 i2c28 = &i2c_psu3;
26 i2c29 = &i2c_psu2;
27 };
28
10 chosen { 29 chosen {
11 stdout-path = &uart5; 30 stdout-path = &uart5;
12 bootargs = "console=ttyS4,115200 earlyprintk"; 31 bootargs = "console=ttyS4,115200 earlyprintk";
@@ -93,6 +112,10 @@
93 &pinctrl_ddcclk_default &pinctrl_ddcdat_default>; 112 &pinctrl_ddcclk_default &pinctrl_ddcdat_default>;
94}; 113};
95 114
115&ibt {
116 status = "okay";
117};
118
96&lpc_snoop { 119&lpc_snoop {
97 status = "okay"; 120 status = "okay";
98 snoop-ports = <0x80>; 121 snoop-ports = <0x80>;
@@ -299,24 +322,44 @@
299 #address-cells = <1>; 322 #address-cells = <1>;
300 #size-cells = <0>; 323 #size-cells = <0>;
301 reg = <0>; 324 reg = <0>;
325
326 psu@59 {
327 compatible = "pmbus";
328 reg = <0x59>;
329 };
302 }; 330 };
303 331
304 i2c_psu1: i2c@1 { 332 i2c_psu1: i2c@1 {
305 #address-cells = <1>; 333 #address-cells = <1>;
306 #size-cells = <0>; 334 #size-cells = <0>;
307 reg = <1>; 335 reg = <1>;
336
337 psu@58 {
338 compatible = "pmbus";
339 reg = <0x58>;
340 };
308 }; 341 };
309 342
310 i2c_psu3: i2c@2 { 343 i2c_psu3: i2c@2 {
311 #address-cells = <1>; 344 #address-cells = <1>;
312 #size-cells = <0>; 345 #size-cells = <0>;
313 reg = <2>; 346 reg = <2>;
347
348 psu@58 {
349 compatible = "pmbus";
350 reg = <0x58>;
351 };
314 }; 352 };
315 353
316 i2c_psu2: i2c@3 { 354 i2c_psu2: i2c@3 {
317 #address-cells = <1>; 355 #address-cells = <1>;
318 #size-cells = <0>; 356 #size-cells = <0>;
319 reg = <3>; 357 reg = <3>;
358
359 psu@59 {
360 compatible = "pmbus";
361 reg = <0x59>;
362 };
320 }; 363 };
321 }; 364 };
322 365
@@ -345,6 +388,10 @@
345 status = "okay"; 388 status = "okay";
346}; 389};
347 390
391&adc {
392 status = "okay";
393};
394
348&pwm_tacho { 395&pwm_tacho {
349 status = "okay"; 396 status = "okay";
350 397
diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index b23a983f95a5..69f6b9d2e7e7 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -350,7 +350,7 @@
350 status = "disabled"; 350 status = "disabled";
351 }; 351 };
352 352
353 i2c: i2c@1e78a000 { 353 i2c: bus@1e78a000 {
354 compatible = "simple-bus"; 354 compatible = "simple-bus";
355 #address-cells = <1>; 355 #address-cells = <1>;
356 #size-cells = <1>; 356 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index 87fdc146ff52..d107459fc0f8 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -410,7 +410,7 @@
410 status = "disabled"; 410 status = "disabled";
411 }; 411 };
412 412
413 i2c: i2c@1e78a000 { 413 i2c: bus@1e78a000 {
414 compatible = "simple-bus"; 414 compatible = "simple-bus";
415 #address-cells = <1>; 415 #address-cells = <1>;
416 #size-cells = <1>; 416 #size-cells = <1>;
diff --git a/arch/arm/boot/dts/at91-dvk_su60_somc.dtsi b/arch/arm/boot/dts/at91-dvk_su60_somc.dtsi
index bb86f17ed5ed..21876da7c442 100644
--- a/arch/arm/boot/dts/at91-dvk_su60_somc.dtsi
+++ b/arch/arm/boot/dts/at91-dvk_su60_somc.dtsi
@@ -70,9 +70,9 @@
70&i2c1 { 70&i2c1 {
71 status = "okay"; 71 status = "okay";
72 72
73 eeprom@87 { 73 eeprom@57 {
74 compatible = "giantec,gt24c32a", "atmel,24c32"; 74 compatible = "giantec,gt24c32a", "atmel,24c32";
75 reg = <87>; 75 reg = <0x57>;
76 pagesize = <32>; 76 pagesize = <32>;
77 }; 77 };
78}; 78};
diff --git a/arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi b/arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi
index 4b9176dc5d02..df0f0cc575c1 100644
--- a/arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi
+++ b/arch/arm/boot/dts/at91-dvk_su60_somc_lcm.dtsi
@@ -59,9 +59,9 @@
59&i2c1 { 59&i2c1 {
60 status = "okay"; 60 status = "okay";
61 61
62 ft5426@56 { 62 ft5426@38 {
63 compatible = "focaltech,ft5426", "edt,edt-ft5406"; 63 compatible = "focaltech,ft5426", "edt,edt-ft5406";
64 reg = <56>; 64 reg = <0x38>;
65 pinctrl-names = "default"; 65 pinctrl-names = "default";
66 pinctrl-0 = <&pinctrl_lcd_ctp_int>; 66 pinctrl-0 = <&pinctrl_lcd_ctp_int>;
67 67
diff --git a/arch/arm/boot/dts/at91-nattis-2-natte-2.dts b/arch/arm/boot/dts/at91-nattis-2-natte-2.dts
index af9f38456d04..911d2c7c1500 100644
--- a/arch/arm/boot/dts/at91-nattis-2-natte-2.dts
+++ b/arch/arm/boot/dts/at91-nattis-2-natte-2.dts
@@ -16,46 +16,6 @@
16 compatible = "axentia,nattis-2", "axentia,natte-2", "axentia,linea", 16 compatible = "axentia,nattis-2", "axentia,natte-2", "axentia,linea",
17 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5"; 17 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
18 18
19 ahb {
20 apb {
21 pinctrl@fffff200 {
22 nattis {
23 pinctrl_usba_vbus: usba_vbus {
24 atmel,pins =
25 <AT91_PIOD 28
26 AT91_PERIPH_GPIO
27 AT91_PINCTRL_DEGLITCH>;
28 };
29
30 pinctrl_mmc0_cd: mmc0_cd {
31 atmel,pins =
32 <AT91_PIOD 5
33 AT91_PERIPH_GPIO
34 AT91_PINCTRL_PULL_UP_DEGLITCH>;
35 };
36
37 pinctrl_lcd_prlud0: lcd_prlud0 {
38 atmel,pins =
39 <AT91_PIOA 21
40 AT91_PERIPH_GPIO
41 AT91_PINCTRL_OUTPUT_VAL(0)>;
42 };
43
44 pinctrl_lcd_hipow0: lcd_hipow0 {
45 atmel,pins =
46 <AT91_PIOA 23
47 AT91_PERIPH_GPIO
48 AT91_PINCTRL_OUTPUT_VAL(0)>;
49 };
50 };
51 };
52
53 watchdog@fffffe40 {
54 status = "okay";
55 };
56 };
57 };
58
59 gpio-keys { 19 gpio-keys {
60 compatible = "gpio-keys"; 20 compatible = "gpio-keys";
61 21
@@ -103,10 +63,29 @@
103 }; 63 };
104 64
105 panel: panel { 65 panel: panel {
106 compatible = "sharp,lq150x1lg11"; 66 compatible = "sharp,lq150x1lg11", "panel-lvds";
67
107 backlight = <&panel_bl>; 68 backlight = <&panel_bl>;
108 power-supply = <&panel_reg>; 69 power-supply = <&panel_reg>;
109 70
71 width-mm = <304>;
72 height-mm = <228>;
73
74 data-mapping = "jeida-18";
75
76 panel-timing {
77 // 1024x768 @ 60Hz (typical)
78 clock-frequency = <50000000 65000000 80000000>;
79 hactive = <1024>;
80 vactive = <768>;
81 hfront-porch = <48 88 88>;
82 hback-porch = <96 168 168>;
83 hsync-len = <32 64 64>;
84 vsync-len = <3 13 74>;
85 vfront-porch = <3 13 74>;
86 vback-porch = <3 12 74>;
87 };
88
110 port { 89 port {
111 panel_input: endpoint { 90 panel_input: endpoint {
112 remote-endpoint = <&lvds_encoder_output>; 91 remote-endpoint = <&lvds_encoder_output>;
@@ -115,7 +94,10 @@
115 }; 94 };
116 95
117 lvds-encoder { 96 lvds-encoder {
118 compatible = "lvds-encoder"; 97 compatible = "ti,ds90c185", "lvds-encoder";
98
99 pinctrl-names = "default";
100 pinctrl-0 = <&pinctrl_lvds_prlud0 &pinctrl_lvds_hipow0>;
119 101
120 ports { 102 ports {
121 #address-cells = <1>; 103 #address-cells = <1>;
@@ -159,6 +141,36 @@
159 }; 141 };
160}; 142};
161 143
144&pinctrl {
145 nattis {
146 pinctrl_usba_vbus: usba_vbus {
147 atmel,pins = <AT91_PIOD 28 AT91_PERIPH_GPIO
148 AT91_PINCTRL_DEGLITCH>;
149 };
150
151 pinctrl_mmc0_cd: mmc0_cd {
152 atmel,pins = <AT91_PIOD 5 AT91_PERIPH_GPIO
153 AT91_PINCTRL_PULL_UP_DEGLITCH>;
154 };
155
156 pinctrl_lvds_prlud0: lvds_prlud0 {
157 atmel,pins = <AT91_PIOA 21 AT91_PERIPH_GPIO
158 (AT91_PINCTRL_OUTPUT |
159 AT91_PINCTRL_OUTPUT_VAL(0))>;
160 };
161
162 pinctrl_lvds_hipow0: lvds_hipow0 {
163 atmel,pins = <AT91_PIOA 23 AT91_PERIPH_GPIO
164 (AT91_PINCTRL_OUTPUT |
165 AT91_PINCTRL_OUTPUT_VAL(0))>;
166 };
167 };
168};
169
170&watchdog {
171 status = "okay";
172};
173
162&i2c0 { 174&i2c0 {
163 status = "okay"; 175 status = "okay";
164 176
@@ -195,14 +207,12 @@
195 207
196 hlcdc-display-controller { 208 hlcdc-display-controller {
197 pinctrl-names = "default"; 209 pinctrl-names = "default";
198 pinctrl-0 = <&pinctrl_lcd_base 210 pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;
199 &pinctrl_lcd_rgb565
200 &pinctrl_lcd_prlud0
201 &pinctrl_lcd_hipow0>;
202 211
203 port@0 { 212 port@0 {
204 hlcdc_output: endpoint { 213 hlcdc_output: endpoint {
205 remote-endpoint = <&lvds_encoder_input>; 214 remote-endpoint = <&lvds_encoder_input>;
215 bus-width = <16>;
206 }; 216 };
207 }; 217 };
208 }; 218 };
@@ -219,6 +229,7 @@
219 reg = <0>; 229 reg = <0>;
220 bus-width = <4>; 230 bus-width = <4>;
221 cd-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>; 231 cd-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
232 cd-inverted;
222 }; 233 };
223}; 234};
224 235
diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
index e86e0c00eb6b..363a43d77424 100644
--- a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
@@ -283,6 +283,13 @@
283 status = "okay"; 283 status = "okay";
284 }; 284 };
285 285
286 adc: adc@fc030000 {
287 vddana-supply = <&vddana>;
288 vref-supply = <&advref>;
289
290 status = "disabled";
291 };
292
286 pinctrl@fc038000 { 293 pinctrl@fc038000 {
287 294
288 pinctrl_can1_default: can1_default { 295 pinctrl_can1_default: can1_default {
@@ -549,4 +556,39 @@
549 linux,default-trigger = "heartbeat"; 556 linux,default-trigger = "heartbeat";
550 }; 557 };
551 }; 558 };
559
560 vddin_3v3: fixed-regulator-vddin_3v3 {
561 compatible = "regulator-fixed";
562
563 regulator-name = "VDDIN_3V3";
564 regulator-min-microvolt = <3300000>;
565 regulator-max-microvolt = <3300000>;
566 regulator-always-on;
567 regulator-boot-on;
568 status = "okay";
569 };
570
571 vddana: fixed-regulator-vddana {
572 compatible = "regulator-fixed";
573
574 regulator-name = "VDDANA";
575 regulator-min-microvolt = <3300000>;
576 regulator-max-microvolt = <3300000>;
577 regulator-always-on;
578 regulator-boot-on;
579 vin-supply = <&vddin_3v3>;
580 status = "okay";
581 };
582
583 advref: fixed-regulator-advref {
584 compatible = "regulator-fixed";
585
586 regulator-name = "advref";
587 regulator-min-microvolt = <3300000>;
588 regulator-max-microvolt = <3300000>;
589 regulator-always-on;
590 regulator-boot-on;
591 vin-supply = <&vddana>;
592 status = "okay";
593 };
552}; 594};
diff --git a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
index 3b1baa8605a7..2214bfe7aa20 100644
--- a/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts
@@ -92,13 +92,13 @@
92 reg = <0x40000 0xc0000>; 92 reg = <0x40000 0xc0000>;
93 }; 93 };
94 94
95 bootloaderenv@0x100000 { 95 bootloaderenvred@0x100000 {
96 label = "bootloader env"; 96 label = "bootloader env redundant";
97 reg = <0x100000 0x40000>; 97 reg = <0x100000 0x40000>;
98 }; 98 };
99 99
100 bootloaderenvred@0x140000 { 100 bootloaderenv@0x140000 {
101 label = "bootloader env redundant"; 101 label = "bootloader env";
102 reg = <0x140000 0x40000>; 102 reg = <0x140000 0x40000>;
103 }; 103 };
104 104
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index fcc85d70f36e..518e2b095ccf 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -281,6 +281,12 @@
281 status = "okay"; 281 status = "okay";
282 }; 282 };
283 283
284 i2s0: i2s@f8050000 {
285 pinctrl-names = "default";
286 pinctrl-0 = <&pinctrl_i2s0_default>;
287 status = "disabled"; /* conflict with can0 */
288 };
289
284 can0: can@f8054000 { 290 can0: can@f8054000 {
285 pinctrl-names = "default"; 291 pinctrl-names = "default";
286 pinctrl-0 = <&pinctrl_can0_default>; 292 pinctrl-0 = <&pinctrl_can0_default>;
@@ -424,6 +430,24 @@
424 bias-disable; 430 bias-disable;
425 }; 431 };
426 432
433 pinctrl_i2s0_default: i2s0_default {
434 pinmux = <PIN_PC1__I2SC0_CK>,
435 <PIN_PC2__I2SC0_MCK>,
436 <PIN_PC3__I2SC0_WS>,
437 <PIN_PC4__I2SC0_DI0>,
438 <PIN_PC5__I2SC0_DO0>;
439 bias-disable;
440 };
441
442 pinctrl_i2s1_default: i2s1_default {
443 pinmux = <PIN_PA15__I2SC1_CK>,
444 <PIN_PA14__I2SC1_MCK>,
445 <PIN_PA16__I2SC1_WS>,
446 <PIN_PA17__I2SC1_DI0>,
447 <PIN_PA18__I2SC1_DO0>;
448 bias-disable;
449 };
450
427 pinctrl_key_gpio_default: key_gpio_default { 451 pinctrl_key_gpio_default: key_gpio_default {
428 pinmux = <PIN_PB9__GPIO>; 452 pinmux = <PIN_PB9__GPIO>;
429 bias-pull-up; 453 bias-pull-up;
@@ -546,6 +570,12 @@
546 status = "okay"; 570 status = "okay";
547 }; 571 };
548 572
573 i2s1: i2s@fc04c000 {
574 pinctrl-names = "default";
575 pinctrl-0 = <&pinctrl_i2s1_default>;
576 status = "disabled"; /* conflict with spi0, sdmmc1 */
577 };
578
549 can1: can@fc050000 { 579 can1: can@fc050000 {
550 pinctrl-names = "default"; 580 pinctrl-names = "default";
551 pinctrl-0 = <&pinctrl_can1_default>; 581 pinctrl-0 = <&pinctrl_can1_default>;
diff --git a/arch/arm/boot/dts/at91-sama5d3_xplained.dts b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
index 02c1d2958d78..322a744e4363 100644
--- a/arch/arm/boot/dts/at91-sama5d3_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d3_xplained.dts
@@ -297,12 +297,17 @@
297 297
298 bootloader@40000 { 298 bootloader@40000 {
299 label = "bootloader"; 299 label = "bootloader";
300 reg = <0x40000 0x80000>; 300 reg = <0x40000 0xc0000>;
301 }; 301 };
302 302
303 bootloaderenv@c0000 { 303 bootloaderenvred@100000 {
304 label = "bootloader env redundant";
305 reg = <0x100000 0x40000>;
306 };
307
308 bootloaderenv@140000 {
304 label = "bootloader env"; 309 label = "bootloader env";
305 reg = <0xc0000 0xc0000>; 310 reg = <0x140000 0x40000>;
306 }; 311 };
307 312
308 dtb@180000 { 313 dtb@180000 {
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index 4b7c762d5f22..43aef56ac74a 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -232,12 +232,17 @@
232 232
233 bootloader@40000 { 233 bootloader@40000 {
234 label = "bootloader"; 234 label = "bootloader";
235 reg = <0x40000 0x80000>; 235 reg = <0x40000 0xc0000>;
236 }; 236 };
237 237
238 bootloaderenv@c0000 { 238 bootloaderenvred@100000 {
239 label = "bootloader env redundant";
240 reg = <0x100000 0x40000>;
241 };
242
243 bootloaderenv@140000 {
239 label = "bootloader env"; 244 label = "bootloader env";
240 reg = <0xc0000 0xc0000>; 245 reg = <0x140000 0x40000>;
241 }; 246 };
242 247
243 dtb@180000 { 248 dtb@180000 {
@@ -252,7 +257,7 @@
252 257
253 rootfs@800000 { 258 rootfs@800000 {
254 label = "rootfs"; 259 label = "rootfs";
255 reg = <0x800000 0x0f800000>; 260 reg = <0x800000 0x1f800000>;
256 }; 261 };
257 }; 262 };
258 }; 263 };
diff --git a/arch/arm/boot/dts/at91-tse850-3.dts b/arch/arm/boot/dts/at91-tse850-3.dts
index 2fbec69d9cd6..fe8876eaf917 100644
--- a/arch/arm/boot/dts/at91-tse850-3.dts
+++ b/arch/arm/boot/dts/at91-tse850-3.dts
@@ -16,25 +16,6 @@
16 compatible = "axentia,tse850v3", "axentia,linea", 16 compatible = "axentia,tse850v3", "axentia,linea",
17 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5"; 17 "atmel,sama5d31", "atmel,sama5d3", "atmel,sama5";
18 18
19 ahb {
20 apb {
21 pinctrl@fffff200 {
22 tse850 {
23 pinctrl_usba_vbus: usba-vbus {
24 atmel,pins =
25 <AT91_PIOC 31
26 AT91_PERIPH_GPIO
27 AT91_PINCTRL_DEGLITCH>;
28 };
29 };
30 };
31
32 watchdog@fffffe40 {
33 status = "okay";
34 };
35 };
36 };
37
38 sck: oscillator { 19 sck: oscillator {
39 compatible = "fixed-clock"; 20 compatible = "fixed-clock";
40 21
@@ -253,6 +234,19 @@
253 }; 234 };
254}; 235};
255 236
237&pinctrl {
238 tse850 {
239 pinctrl_usba_vbus: usba-vbus {
240 atmel,pins = <AT91_PIOC 31 AT91_PERIPH_GPIO
241 AT91_PINCTRL_DEGLITCH>;
242 };
243 };
244};
245
246&watchdog {
247 status = "okay";
248};
249
256&usart0 { 250&usart0 {
257 status = "okay"; 251 status = "okay";
258 252
diff --git a/arch/arm/boot/dts/at91-vinco.dts b/arch/arm/boot/dts/at91-vinco.dts
index 1be9889a2b3a..430277291e02 100644
--- a/arch/arm/boot/dts/at91-vinco.dts
+++ b/arch/arm/boot/dts/at91-vinco.dts
@@ -128,7 +128,7 @@
128 i2c2: i2c@f8024000 { 128 i2c2: i2c@f8024000 {
129 status = "okay"; 129 status = "okay";
130 130
131 rtc1: rtc@64 { 131 rtc1: rtc@32 {
132 compatible = "epson,rx8900"; 132 compatible = "epson,rx8900";
133 reg = <0x32>; 133 reg = <0x32>;
134 }; 134 };
diff --git a/arch/arm/boot/dts/at91sam9260ek.dts b/arch/arm/boot/dts/at91sam9260ek.dts
index d2b865f60293..07d1b571e601 100644
--- a/arch/arm/boot/dts/at91sam9260ek.dts
+++ b/arch/arm/boot/dts/at91sam9260ek.dts
@@ -127,7 +127,7 @@
127 127
128 spi0: spi@fffc8000 { 128 spi0: spi@fffc8000 {
129 cs-gpios = <0>, <&pioC 11 0>, <0>, <0>; 129 cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
130 mtd_dataflash@0 { 130 mtd_dataflash@1 {
131 compatible = "atmel,at45", "atmel,dataflash"; 131 compatible = "atmel,at45", "atmel,dataflash";
132 spi-max-frequency = <50000000>; 132 spi-max-frequency = <50000000>;
133 reg = <1>; 133 reg = <1>;
diff --git a/arch/arm/boot/dts/at91sam9261ek.dts b/arch/arm/boot/dts/at91sam9261ek.dts
index a29fc0494076..a57f2d435dca 100644
--- a/arch/arm/boot/dts/at91sam9261ek.dts
+++ b/arch/arm/boot/dts/at91sam9261ek.dts
@@ -160,7 +160,7 @@
160 spi-max-frequency = <15000000>; 160 spi-max-frequency = <15000000>;
161 }; 161 };
162 162
163 tsc2046@0 { 163 tsc2046@2 {
164 reg = <2>; 164 reg = <2>;
165 compatible = "ti,ads7843"; 165 compatible = "ti,ads7843";
166 interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>; 166 interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
diff --git a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
index 71df3adfc7ca..ec1f17ab6753 100644
--- a/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
+++ b/arch/arm/boot/dts/at91sam9g20ek_common.dtsi
@@ -109,7 +109,7 @@
109 109
110 spi0: spi@fffc8000 { 110 spi0: spi@fffc8000 {
111 cs-gpios = <0>, <&pioC 11 0>, <0>, <0>; 111 cs-gpios = <0>, <&pioC 11 0>, <0>, <0>;
112 mtd_dataflash@0 { 112 mtd_dataflash@1 {
113 compatible = "atmel,at45", "atmel,dataflash"; 113 compatible = "atmel,at45", "atmel,dataflash";
114 spi-max-frequency = <50000000>; 114 spi-max-frequency = <50000000>;
115 reg = <1>; 115 reg = <1>;
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi
index 1ee25a475be8..d16db1fa7e15 100644
--- a/arch/arm/boot/dts/at91sam9g45.dtsi
+++ b/arch/arm/boot/dts/at91sam9g45.dtsi
@@ -570,7 +570,7 @@
570 }; 570 };
571 }; 571 };
572 572
573 uart1 { 573 usart1 {
574 pinctrl_usart1: usart1-0 { 574 pinctrl_usart1: usart1-0 {
575 atmel,pins = 575 atmel,pins =
576 <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE 576 <AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE
diff --git a/arch/arm/boot/dts/at91sam9x5cm.dtsi b/arch/arm/boot/dts/at91sam9x5cm.dtsi
index 4908ee07e628..c4cc9cc945fa 100644
--- a/arch/arm/boot/dts/at91sam9x5cm.dtsi
+++ b/arch/arm/boot/dts/at91sam9x5cm.dtsi
@@ -85,12 +85,22 @@
85 85
86 uboot@40000 { 86 uboot@40000 {
87 label = "u-boot"; 87 label = "u-boot";
88 reg = <0x40000 0x80000>; 88 reg = <0x40000 0xc0000>;
89 }; 89 };
90 90
91 ubootenv@c0000 { 91 ubootenvred@100000 {
92 label = "U-Boot Env Redundant";
93 reg = <0x100000 0x40000>;
94 };
95
96 ubootenv@140000 {
92 label = "U-Boot Env"; 97 label = "U-Boot Env";
93 reg = <0xc0000 0x140000>; 98 reg = <0x140000 0x40000>;
99 };
100
101 dtb@180000 {
102 label = "device tree";
103 reg = <0x180000 0x80000>;
94 }; 104 };
95 105
96 kernel@200000 { 106 kernel@200000 {
@@ -100,7 +110,7 @@
100 110
101 rootfs@800000 { 111 rootfs@800000 {
102 label = "rootfs"; 112 label = "rootfs";
103 reg = <0x800000 0x1f800000>; 113 reg = <0x800000 0x0f800000>;
104 }; 114 };
105 }; 115 };
106 }; 116 };
diff --git a/arch/arm/boot/dts/bcm-hr2.dtsi b/arch/arm/boot/dts/bcm-hr2.dtsi
index 3084a7c95733..e4d49731287f 100644
--- a/arch/arm/boot/dts/bcm-hr2.dtsi
+++ b/arch/arm/boot/dts/bcm-hr2.dtsi
@@ -216,7 +216,7 @@
216 reg = <0x33000 0x14>; 216 reg = <0x33000 0x14>;
217 }; 217 };
218 218
219 qspi: qspi@27200 { 219 qspi: spi@27200 {
220 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi"; 220 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
221 reg = <0x027200 0x184>, 221 reg = <0x027200 0x184>,
222 <0x027000 0x124>, 222 <0x027000 0x124>,
diff --git a/arch/arm/boot/dts/bcm-nsp.dtsi b/arch/arm/boot/dts/bcm-nsp.dtsi
index 09ba85046322..2fd111d9d59c 100644
--- a/arch/arm/boot/dts/bcm-nsp.dtsi
+++ b/arch/arm/boot/dts/bcm-nsp.dtsi
@@ -273,7 +273,7 @@
273 brcm,nand-has-wp; 273 brcm,nand-has-wp;
274 }; 274 };
275 275
276 qspi: qspi@27200 { 276 qspi: spi@27200 {
277 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi"; 277 compatible = "brcm,spi-bcm-qspi", "brcm,spi-nsp-qspi";
278 reg = <0x027200 0x184>, 278 reg = <0x027200 0x184>,
279 <0x027000 0x124>, 279 <0x027000 0x124>,
@@ -377,7 +377,36 @@
377 377
378 srab: srab@36000 { 378 srab: srab@36000 {
379 compatible = "brcm,nsp-srab"; 379 compatible = "brcm,nsp-srab";
380 reg = <0x36000 0x1000>; 380 reg = <0x36000 0x1000>,
381 <0x3f308 0x8>,
382 <0x3f410 0xc>;
383 reg-names = "srab", "mux_config", "sgmii";
384 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
385 <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
386 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
387 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
388 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
389 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
390 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
391 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
392 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
393 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
394 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
395 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
396 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
397 interrupt-names = "link_state_p0",
398 "link_state_p1",
399 "link_state_p2",
400 "link_state_p3",
401 "link_state_p4",
402 "link_state_p5",
403 "link_state_p7",
404 "link_state_p8",
405 "phy",
406 "ts",
407 "imp_sleep_timer_p5",
408 "imp_sleep_timer_p7",
409 "imp_sleep_timer_p8";
381 #address-cells = <1>; 410 #address-cells = <1>;
382 #size-cells = <0>; 411 #size-cells = <0>;
383 412
diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
new file mode 100644
index 000000000000..6c8233a36d86
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
@@ -0,0 +1,87 @@
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3#include "bcm2837-rpi-cm3.dtsi"
4#include "bcm283x-rpi-usb-host.dtsi"
5
6/ {
7 compatible = "raspberrypi,3-compute-module", "brcm,bcm2837";
8 model = "Raspberry Pi Compute Module 3 IO board V3.0";
9};
10
11&gpio {
12 /*
13 * This is based on the official GPU firmware DT blob.
14 *
15 * Legend:
16 * "NC" = not connected (no rail from the SoC)
17 * "FOO" = GPIO line named "FOO" on the schematic
18 * "FOO_N" = GPIO line named "FOO" on schematic, active low
19 */
20 gpio-line-names = "GPIO0",
21 "GPIO1",
22 "GPIO2",
23 "GPIO3",
24 "GPIO4",
25 "GPIO5",
26 "GPIO6",
27 "GPIO7",
28 "GPIO8",
29 "GPIO9",
30 "GPIO10",
31 "GPIO11",
32 "GPIO12",
33 "GPIO13",
34 "GPIO14",
35 "GPIO15",
36 "GPIO16",
37 "GPIO17",
38 "GPIO18",
39 "GPIO19",
40 "GPIO20",
41 "GPIO21",
42 "GPIO22",
43 "GPIO23",
44 "GPIO24",
45 "GPIO25",
46 "GPIO26",
47 "GPIO27",
48 "GPIO28",
49 "GPIO29",
50 "GPIO30",
51 "GPIO31",
52 "GPIO32",
53 "GPIO33",
54 "GPIO34",
55 "GPIO35",
56 "GPIO36",
57 "GPIO37",
58 "GPIO38",
59 "GPIO39",
60 "GPIO40",
61 "GPIO41",
62 "GPIO42",
63 "GPIO43",
64 "GPIO44",
65 "GPIO45",
66 "GPIO46",
67 "GPIO47",
68 /* Used by eMMC */
69 "SD_CLK_R",
70 "SD_CMD_R",
71 "SD_DATA0_R",
72 "SD_DATA1_R",
73 "SD_DATA2_R",
74 "SD_DATA3_R";
75
76 pinctrl-0 = <&gpioout &alt0>;
77};
78
79&hdmi {
80 hpd-gpios = <&expgpio 1 GPIO_ACTIVE_LOW>;
81};
82
83&uart0 {
84 pinctrl-names = "default";
85 pinctrl-0 = <&uart0_gpio14>;
86 status = "okay";
87};
diff --git a/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
new file mode 100644
index 000000000000..7b7ab6aea988
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
@@ -0,0 +1,52 @@
1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3#include "bcm2837.dtsi"
4#include "bcm2835-rpi.dtsi"
5
6/ {
7 memory {
8 reg = <0 0x40000000>;
9 };
10
11 reg_3v3: fixed-regulator {
12 compatible = "regulator-fixed";
13 regulator-name = "3V3";
14 regulator-min-microvolt = <3300000>;
15 regulator-max-microvolt = <3300000>;
16 regulator-always-on;
17 };
18
19 reg_1v8: fixed-regulator {
20 compatible = "regulator-fixed";
21 regulator-name = "1V8";
22 regulator-min-microvolt = <1800000>;
23 regulator-max-microvolt = <1800000>;
24 regulator-always-on;
25 };
26};
27
28&firmware {
29 expgpio: gpio {
30 compatible = "raspberrypi,firmware-gpio";
31 gpio-controller;
32 #gpio-cells = <2>;
33 gpio-line-names = "HDMI_HPD_N",
34 "EMMC_EN_N",
35 "NC",
36 "NC",
37 "NC",
38 "NC",
39 "NC",
40 "NC";
41 status = "okay";
42 };
43};
44
45&sdhost {
46 pinctrl-names = "default";
47 pinctrl-0 = <&sdhost_gpio48>;
48 bus-width = <4>;
49 vmmc-supply = <&reg_3v3>;
50 vqmmc-supply = <&reg_1v8>;
51 status = "okay";
52};
diff --git a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
index 9403da0990d0..70bece63f9a7 100644
--- a/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
+++ b/arch/arm/boot/dts/bcm283x-rpi-lan7515.dtsi
@@ -1,4 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/net/microchip-lan78xx.h>
3
2/ { 4/ {
3 aliases { 5 aliases {
4 ethernet0 = &ethernet; 6 ethernet0 = &ethernet;
@@ -21,6 +23,18 @@
21 ethernet: ethernet@1 { 23 ethernet: ethernet@1 {
22 compatible = "usb424,7800"; 24 compatible = "usb424,7800";
23 reg = <1>; 25 reg = <1>;
26
27 mdio {
28 #address-cells = <0x1>;
29 #size-cells = <0x0>;
30 eth_phy: ethernet-phy@1 {
31 reg = <1>;
32 microchip,led-modes = <
33 LAN78XX_LINK_1000_ACTIVITY
34 LAN78XX_LINK_10_100_ACTIVITY
35 >;
36 };
37 };
24 }; 38 };
25 }; 39 };
26 }; 40 };
diff --git a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
index 5f663f848db1..189cc3dcd6ef 100644
--- a/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
+++ b/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
@@ -94,6 +94,34 @@
94 94
95&spi_nor { 95&spi_nor {
96 status = "okay"; 96 status = "okay";
97
98 partitions {
99 compatible = "fixed-partitions";
100 #address-cells = <1>;
101 #size-cells = <1>;
102
103 boot@0 {
104 label = "boot";
105 reg = <0x000000 0x040000>;
106 read-only;
107 };
108
109 os-image@100000 {
110 label = "os-image";
111 reg = <0x040000 0x200000>;
112 compatible = "brcm,trx";
113 };
114
115 rootfs@240000 {
116 label = "rootfs";
117 reg = <0x240000 0xc00000>;
118 };
119
120 nvram@ff0000 {
121 label = "nvram";
122 reg = <0xff0000 0x010000>;
123 };
124 };
97}; 125};
98 126
99&usb2 { 127&usb2 {
diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
index 2033411240c7..4cb10f88a95e 100644
--- a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
@@ -66,3 +66,34 @@
66&usb3_phy { 66&usb3_phy {
67 status = "okay"; 67 status = "okay";
68}; 68};
69
70&nandcs {
71 partitions {
72 compatible = "fixed-partitions";
73 #address-cells = <1>;
74 #size-cells = <1>;
75
76 boot@0 {
77 label = "boot";
78 reg = <0x00000000 0x00080000>;
79 read-only;
80 };
81
82 nvram@80000 {
83 label = "nvram";
84 reg = <0x00080000 0x00180000>;
85 };
86
87 firmware@200000 {
88 label = "firmware";
89 reg = <0x00200000 0x07cc0000>;
90 compatible = "brcm,trx";
91 };
92
93 asus@7ec0000 {
94 label = "asus";
95 reg = <0x07ec0000 0x00140000>;
96 read-only;
97 };
98 };
99};
diff --git a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
index c7143a9daa1a..b527d2ff987e 100644
--- a/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
+++ b/arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
@@ -103,6 +103,34 @@
103 103
104&spi_nor { 104&spi_nor {
105 status = "okay"; 105 status = "okay";
106
107 partitions {
108 compatible = "fixed-partitions";
109 #address-cells = <1>;
110 #size-cells = <1>;
111
112 boot@0 {
113 label = "boot";
114 reg = <0x000000 0x040000>;
115 read-only;
116 };
117
118 os-image@100000 {
119 label = "os-image";
120 reg = <0x040000 0x200000>;
121 compatible = "brcm,trx";
122 };
123
124 rootfs@240000 {
125 label = "rootfs";
126 reg = <0x240000 0xc00000>;
127 };
128
129 nvram@ff0000 {
130 label = "nvram";
131 reg = <0xff0000 0x010000>;
132 };
133 };
106}; 134};
107 135
108&usb3_phy { 136&usb3_phy {
diff --git a/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi b/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
index e5a2d62daf92..925a7c9ce5b7 100644
--- a/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi
@@ -12,6 +12,10 @@
12 reg = <0>; 12 reg = <0>;
13 #address-cells = <1>; 13 #address-cells = <1>;
14 #size-cells = <1>; 14 #size-cells = <1>;
15
16 partitions {
17 compatible = "brcm,bcm947xx-cfe-partitions";
18 };
15 }; 19 };
16 }; 20 };
17}; 21};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index bc607d11eef8..7a5c188c2676 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -475,8 +475,11 @@
475 compatible = "jedec,spi-nor"; 475 compatible = "jedec,spi-nor";
476 reg = <0>; 476 reg = <0>;
477 spi-max-frequency = <20000000>; 477 spi-max-frequency = <20000000>;
478 linux,part-probe = "ofpart", "bcm47xxpart";
479 status = "disabled"; 478 status = "disabled";
479
480 partitions {
481 compatible = "brcm,bcm947xx-cfe-partitions";
482 };
480 }; 483 };
481 }; 484 };
482 485
diff --git a/arch/arm/boot/dts/bcm958625hr.dts b/arch/arm/boot/dts/bcm958625hr.dts
index ea3fc194f8f3..a53a2f629d74 100644
--- a/arch/arm/boot/dts/bcm958625hr.dts
+++ b/arch/arm/boot/dts/bcm958625hr.dts
@@ -58,6 +58,24 @@
58 open-source; 58 open-source;
59 priority = <200>; 59 priority = <200>;
60 }; 60 };
61
62 /* Hardware I2C block cannot do more than 63 bytes per transfer,
63 * which would prevent reading from a SFP's EEPROM (256 byte).
64 */
65 i2c1: i2c {
66 compatible = "i2c-gpio";
67 sda-gpios = <&gpioa 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
68 scl-gpios = <&gpioa 4 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
69 };
70
71 sfp: sfp {
72 compatible = "sff,sfp";
73 i2c-bus = <&i2c1>;
74 mod-def0-gpios = <&gpioa 28 GPIO_ACTIVE_LOW>;
75 los-gpios = <&gpioa 24 GPIO_ACTIVE_HIGH>;
76 tx-fault-gpios = <&gpioa 30 GPIO_ACTIVE_HIGH>;
77 tx-disable-gpios = <&gpioa 26 GPIO_ACTIVE_HIGH>;
78 };
61}; 79};
62 80
63&amac0 { 81&amac0 {
@@ -210,6 +228,14 @@
210 reg = <4>; 228 reg = <4>;
211 }; 229 };
212 230
231 port@5 {
232 label = "sfp";
233 phy-mode = "sgmii";
234 reg = <5>;
235 sfp = <&sfp>;
236 managed = "in-band-status";
237 };
238
213 port@8 { 239 port@8 {
214 ethernet = <&amac2>; 240 ethernet = <&amac2>;
215 label = "cpu"; 241 label = "cpu";
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index f9b757905845..a3c9b346721d 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -221,6 +221,12 @@
221 gpio-controller; 221 gpio-controller;
222 #gpio-cells = <2>; 222 #gpio-cells = <2>;
223 }; 223 };
224 tca6416_bb: gpio@21 {
225 compatible = "ti,tca6416";
226 reg = <0x21>;
227 gpio-controller;
228 #gpio-cells = <2>;
229 };
224}; 230};
225 231
226&wdt { 232&wdt {
diff --git a/arch/arm/boot/dts/da850-lego-ev3.dts b/arch/arm/boot/dts/da850-lego-ev3.dts
index c4729d0e6c19..66fcadf0ba91 100644
--- a/arch/arm/boot/dts/da850-lego-ev3.dts
+++ b/arch/arm/boot/dts/da850-lego-ev3.dts
@@ -352,7 +352,8 @@
352 compatible = "ti,ads7957"; 352 compatible = "ti,ads7957";
353 reg = <3>; 353 reg = <3>;
354 #io-channel-cells = <1>; 354 #io-channel-cells = <1>;
355 spi-max-frequency = <10000000>; 355 spi-max-frequency = <1000000>;
356 ti,spi-wdelay = <63>;
356 vref-supply = <&adc_ref>; 357 vref-supply = <&adc_ref>;
357 }; 358 };
358}; 359};
diff --git a/arch/arm/boot/dts/dm8148-evm.dts b/arch/arm/boot/dts/dm8148-evm.dts
index 85d7b5148b0a..2d201719ba69 100644
--- a/arch/arm/boot/dts/dm8148-evm.dts
+++ b/arch/arm/boot/dts/dm8148-evm.dts
@@ -27,15 +27,25 @@
27}; 27};
28 28
29&cpsw_emac0 { 29&cpsw_emac0 {
30 phy_id = <&davinci_mdio>, <0>; 30 phy-handle = <&ethphy0>;
31 phy-mode = "rgmii"; 31 phy-mode = "rgmii";
32}; 32};
33 33
34&cpsw_emac1 { 34&cpsw_emac1 {
35 phy_id = <&davinci_mdio>, <1>; 35 phy-handle = <&ethphy1>;
36 phy-mode = "rgmii"; 36 phy-mode = "rgmii";
37}; 37};
38 38
39&davinci_mdio {
40 ethphy0: ethernet-phy@0 {
41 reg = <0>;
42 };
43
44 ethphy1: ethernet-phy@1 {
45 reg = <1>;
46 };
47};
48
39&gpmc { 49&gpmc {
40 ranges = <0 0 0x04000000 0x01000000>; /* CS0: 16MB for NAND */ 50 ranges = <0 0 0x04000000 0x01000000>; /* CS0: 16MB for NAND */
41 51
diff --git a/arch/arm/boot/dts/dm8148-t410.dts b/arch/arm/boot/dts/dm8148-t410.dts
index c46a227b543d..63301bcacf19 100644
--- a/arch/arm/boot/dts/dm8148-t410.dts
+++ b/arch/arm/boot/dts/dm8148-t410.dts
@@ -36,15 +36,25 @@
36}; 36};
37 37
38&cpsw_emac0 { 38&cpsw_emac0 {
39 phy_id = <&davinci_mdio>, <0>; 39 phy-handle = <&ethphy0>;
40 phy-mode = "rgmii"; 40 phy-mode = "rgmii";
41}; 41};
42 42
43&cpsw_emac1 { 43&cpsw_emac1 {
44 phy_id = <&davinci_mdio>, <1>; 44 phy-handle = <&ethphy1>;
45 phy-mode = "rgmii"; 45 phy-mode = "rgmii";
46}; 46};
47 47
48&davinci_mdio {
49 ethphy0: ethernet-phy@0 {
50 reg = <0>;
51 };
52
53 ethphy1: ethernet-phy@1 {
54 reg = <1>;
55 };
56};
57
48&mmc1 { 58&mmc1 {
49 status = "disabled"; 59 status = "disabled";
50}; 60};
diff --git a/arch/arm/boot/dts/dove-cubox.dts b/arch/arm/boot/dts/dove-cubox.dts
index 580e3cbcfbf7..3e1584e787ae 100644
--- a/arch/arm/boot/dts/dove-cubox.dts
+++ b/arch/arm/boot/dts/dove-cubox.dts
@@ -87,7 +87,7 @@
87 status = "okay"; 87 status = "okay";
88 clock-frequency = <100000>; 88 clock-frequency = <100000>;
89 89
90 si5351: clock-generator { 90 si5351: clock-generator@60 {
91 compatible = "silabs,si5351a-msop"; 91 compatible = "silabs,si5351a-msop";
92 reg = <0x60>; 92 reg = <0x60>;
93 #address-cells = <1>; 93 #address-cells = <1>;
diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
index 4a0a5115b298..250ad0535e8c 100644
--- a/arch/arm/boot/dts/dove.dtsi
+++ b/arch/arm/boot/dts/dove.dtsi
@@ -155,7 +155,7 @@
155 0xffffe000 MBUS_ID(0x03, 0x01) 0 0x0000800 /* CESA SRAM 2k */ 155 0xffffe000 MBUS_ID(0x03, 0x01) 0 0x0000800 /* CESA SRAM 2k */
156 0xfffff000 MBUS_ID(0x0d, 0x00) 0 0x0000800>; /* PMU SRAM 2k */ 156 0xfffff000 MBUS_ID(0x0d, 0x00) 0 0x0000800>; /* PMU SRAM 2k */
157 157
158 spi0: spi-ctrl@10600 { 158 spi0: spi@10600 {
159 compatible = "marvell,orion-spi"; 159 compatible = "marvell,orion-spi";
160 #address-cells = <1>; 160 #address-cells = <1>;
161 #size-cells = <0>; 161 #size-cells = <0>;
@@ -168,7 +168,7 @@
168 status = "disabled"; 168 status = "disabled";
169 }; 169 };
170 170
171 i2c: i2c-ctrl@11000 { 171 i2c: i2c@11000 {
172 compatible = "marvell,mv64xxx-i2c"; 172 compatible = "marvell,mv64xxx-i2c";
173 reg = <0x11000 0x20>; 173 reg = <0x11000 0x20>;
174 #address-cells = <1>; 174 #address-cells = <1>;
@@ -218,7 +218,7 @@
218 status = "disabled"; 218 status = "disabled";
219 }; 219 };
220 220
221 spi1: spi-ctrl@14600 { 221 spi1: spi@14600 {
222 compatible = "marvell,orion-spi"; 222 compatible = "marvell,orion-spi";
223 #address-cells = <1>; 223 #address-cells = <1>;
224 #size-cells = <0>; 224 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/dra62x-j5eco-evm.dts b/arch/arm/boot/dts/dra62x-j5eco-evm.dts
index 31b824ad5d29..906aedde045d 100644
--- a/arch/arm/boot/dts/dra62x-j5eco-evm.dts
+++ b/arch/arm/boot/dts/dra62x-j5eco-evm.dts
@@ -27,15 +27,25 @@
27}; 27};
28 28
29&cpsw_emac0 { 29&cpsw_emac0 {
30 phy_id = <&davinci_mdio>, <0>; 30 phy-handle = <&ethphy0>;
31 phy-mode = "rgmii"; 31 phy-mode = "rgmii";
32}; 32};
33 33
34&cpsw_emac1 { 34&cpsw_emac1 {
35 phy_id = <&davinci_mdio>, <1>; 35 phy-handle = <&ethphy1>;
36 phy-mode = "rgmii"; 36 phy-mode = "rgmii";
37}; 37};
38 38
39&davinci_mdio {
40 ethphy0: ethernet-phy@0 {
41 reg = <0>;
42 };
43
44 ethphy1: ethernet-phy@1 {
45 reg = <1>;
46 };
47};
48
39&gpmc { 49&gpmc {
40 ranges = <0 0 0x04000000 0x01000000>; /* CS0: 16MB for NAND */ 50 ranges = <0 0 0x04000000 0x01000000>; /* CS0: 16MB for NAND */
41 51
diff --git a/arch/arm/boot/dts/dra7-evm.dts b/arch/arm/boot/dts/dra7-evm.dts
index 6ed5f9156270..cc079064a23b 100644
--- a/arch/arm/boot/dts/dra7-evm.dts
+++ b/arch/arm/boot/dts/dra7-evm.dts
@@ -512,17 +512,27 @@
512}; 512};
513 513
514&cpsw_emac0 { 514&cpsw_emac0 {
515 phy_id = <&davinci_mdio>, <2>; 515 phy-handle = <&ethphy0>;
516 phy-mode = "rgmii"; 516 phy-mode = "rgmii";
517 dual_emac_res_vlan = <1>; 517 dual_emac_res_vlan = <1>;
518}; 518};
519 519
520&cpsw_emac1 { 520&cpsw_emac1 {
521 phy_id = <&davinci_mdio>, <3>; 521 phy-handle = <&ethphy1>;
522 phy-mode = "rgmii"; 522 phy-mode = "rgmii";
523 dual_emac_res_vlan = <2>; 523 dual_emac_res_vlan = <2>;
524}; 524};
525 525
526&davinci_mdio {
527 ethphy0: ethernet-phy@2 {
528 reg = <2>;
529 };
530
531 ethphy1: ethernet-phy@3 {
532 reg = <3>;
533 };
534};
535
526&dcan1 { 536&dcan1 {
527 status = "ok"; 537 status = "ok";
528 pinctrl-names = "default", "sleep", "active"; 538 pinctrl-names = "default", "sleep", "active";
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index a0ddf497e8cd..7ce24b282d42 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -336,6 +336,7 @@
336 <0 0 0 2 &pcie1_intc 2>, 336 <0 0 0 2 &pcie1_intc 2>,
337 <0 0 0 3 &pcie1_intc 3>, 337 <0 0 0 3 &pcie1_intc 3>,
338 <0 0 0 4 &pcie1_intc 4>; 338 <0 0 0 4 &pcie1_intc 4>;
339 ti,syscon-unaligned-access = <&scm_conf1 0x14 1>;
339 status = "disabled"; 340 status = "disabled";
340 pcie1_intc: interrupt-controller { 341 pcie1_intc: interrupt-controller {
341 interrupt-controller; 342 interrupt-controller;
@@ -354,7 +355,7 @@
354 ti,hwmods = "pcie1"; 355 ti,hwmods = "pcie1";
355 phys = <&pcie1_phy>; 356 phys = <&pcie1_phy>;
356 phy-names = "pcie-phy0"; 357 phy-names = "pcie-phy0";
357 ti,syscon-unaligned-access = <&scm_conf1 0x14 2>; 358 ti,syscon-unaligned-access = <&scm_conf1 0x14 1>;
358 status = "disabled"; 359 status = "disabled";
359 }; 360 };
360 }; 361 };
@@ -387,6 +388,7 @@
387 <0 0 0 2 &pcie2_intc 2>, 388 <0 0 0 2 &pcie2_intc 2>,
388 <0 0 0 3 &pcie2_intc 3>, 389 <0 0 0 3 &pcie2_intc 3>,
389 <0 0 0 4 &pcie2_intc 4>; 390 <0 0 0 4 &pcie2_intc 4>;
391 ti,syscon-unaligned-access = <&scm_conf1 0x14 2>;
390 pcie2_intc: interrupt-controller { 392 pcie2_intc: interrupt-controller {
391 interrupt-controller; 393 interrupt-controller;
392 #address-cells = <0>; 394 #address-cells = <0>;
@@ -1369,7 +1371,7 @@
1369 status = "disabled"; 1371 status = "disabled";
1370 }; 1372 };
1371 1373
1372 qspi: qspi@4b300000 { 1374 qspi: spi@4b300000 {
1373 compatible = "ti,dra7xxx-qspi"; 1375 compatible = "ti,dra7xxx-qspi";
1374 reg = <0x4b300000 0x100>, 1376 reg = <0x4b300000 0x100>,
1375 <0x5c000000 0x4000000>; 1377 <0x5c000000 0x4000000>;
diff --git a/arch/arm/boot/dts/dra71-evm.dts b/arch/arm/boot/dts/dra71-evm.dts
index c471bf3277b4..82cc7ec37af0 100644
--- a/arch/arm/boot/dts/dra71-evm.dts
+++ b/arch/arm/boot/dts/dra71-evm.dts
@@ -203,13 +203,13 @@
203}; 203};
204 204
205&cpsw_emac0 { 205&cpsw_emac0 {
206 phy_id = <&davinci_mdio>, <2>; 206 phy-handle = <&dp83867_0>;
207 phy-mode = "rgmii-id"; 207 phy-mode = "rgmii-id";
208 dual_emac_res_vlan = <1>; 208 dual_emac_res_vlan = <1>;
209}; 209};
210 210
211&cpsw_emac1 { 211&cpsw_emac1 {
212 phy_id = <&davinci_mdio>, <3>; 212 phy-handle = <&dp83867_1>;
213 phy-mode = "rgmii-id"; 213 phy-mode = "rgmii-id";
214 dual_emac_res_vlan = <2>; 214 dual_emac_res_vlan = <2>;
215}; 215};
diff --git a/arch/arm/boot/dts/dra72-evm-revc.dts b/arch/arm/boot/dts/dra72-evm-revc.dts
index bf588d00728d..fafc2a4d7bb9 100644
--- a/arch/arm/boot/dts/dra72-evm-revc.dts
+++ b/arch/arm/boot/dts/dra72-evm-revc.dts
@@ -61,13 +61,13 @@
61}; 61};
62 62
63&cpsw_emac0 { 63&cpsw_emac0 {
64 phy_id = <&davinci_mdio>, <2>; 64 phy-handle = <&dp83867_0>;
65 phy-mode = "rgmii-id"; 65 phy-mode = "rgmii-id";
66 dual_emac_res_vlan = <1>; 66 dual_emac_res_vlan = <1>;
67}; 67};
68 68
69&cpsw_emac1 { 69&cpsw_emac1 {
70 phy_id = <&davinci_mdio>, <3>; 70 phy-handle = <&dp83867_1>;
71 phy-mode = "rgmii-id"; 71 phy-mode = "rgmii-id";
72 dual_emac_res_vlan = <2>; 72 dual_emac_res_vlan = <2>;
73}; 73};
diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts
index c572693b1665..154b0a0ceb18 100644
--- a/arch/arm/boot/dts/dra72-evm.dts
+++ b/arch/arm/boot/dts/dra72-evm.dts
@@ -51,10 +51,16 @@
51}; 51};
52 52
53&cpsw_emac0 { 53&cpsw_emac0 {
54 phy_id = <&davinci_mdio>, <3>; 54 phy-handle = <&ethphy0>;
55 phy-mode = "rgmii"; 55 phy-mode = "rgmii";
56}; 56};
57 57
58&davinci_mdio {
59 ethphy0: ethernet-phy@3 {
60 reg = <3>;
61 };
62};
63
58&mmc1 { 64&mmc1 {
59 pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104"; 65 pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
60 pinctrl-0 = <&mmc1_pins_default>; 66 pinctrl-0 = <&mmc1_pins_default>;
diff --git a/arch/arm/boot/dts/dra76-evm.dts b/arch/arm/boot/dts/dra76-evm.dts
index 5a46163d465f..8a57895fd8f3 100644
--- a/arch/arm/boot/dts/dra76-evm.dts
+++ b/arch/arm/boot/dts/dra76-evm.dts
@@ -375,13 +375,13 @@
375}; 375};
376 376
377&cpsw_emac0 { 377&cpsw_emac0 {
378 phy_id = <&davinci_mdio>, <2>; 378 phy-handle = <&dp83867_0>;
379 phy-mode = "rgmii-id"; 379 phy-mode = "rgmii-id";
380 dual_emac_res_vlan = <1>; 380 dual_emac_res_vlan = <1>;
381}; 381};
382 382
383&cpsw_emac1 { 383&cpsw_emac1 {
384 phy_id = <&davinci_mdio>, <3>; 384 phy-handle = <&dp83867_1>;
385 phy-mode = "rgmii-id"; 385 phy-mode = "rgmii-id";
386 dual_emac_res_vlan = <2>; 386 dual_emac_res_vlan = <2>;
387}; 387};
diff --git a/arch/arm/boot/dts/exynos3250-artik5.dtsi b/arch/arm/boot/dts/exynos3250-artik5.dtsi
index 620b50c19ead..7c22cbf6f3d4 100644
--- a/arch/arm/boot/dts/exynos3250-artik5.dtsi
+++ b/arch/arm/boot/dts/exynos3250-artik5.dtsi
@@ -69,6 +69,8 @@
69 compatible = "samsung,s2mps14-pmic"; 69 compatible = "samsung,s2mps14-pmic";
70 interrupt-parent = <&gpx3>; 70 interrupt-parent = <&gpx3>;
71 interrupts = <5 IRQ_TYPE_NONE>; 71 interrupts = <5 IRQ_TYPE_NONE>;
72 pinctrl-names = "default";
73 pinctrl-0 = <&s2mps14_irq>;
72 reg = <0x66>; 74 reg = <0x66>;
73 75
74 s2mps14_osc: clocks { 76 s2mps14_osc: clocks {
@@ -350,6 +352,11 @@
350 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV3>; 352 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV3>;
351 samsung,pin-val = <1>; 353 samsung,pin-val = <1>;
352 }; 354 };
355
356 s2mps14_irq: s2mps14-irq {
357 samsung,pins = "gpx3-5";
358 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
359 };
353}; 360};
354 361
355&rtc { 362&rtc {
diff --git a/arch/arm/boot/dts/exynos4210-origen.dts b/arch/arm/boot/dts/exynos4210-origen.dts
index 2ab99f9f3d0a..dd9ec05eb0f7 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -151,6 +151,8 @@
151 reg = <0x66>; 151 reg = <0x66>;
152 interrupt-parent = <&gpx0>; 152 interrupt-parent = <&gpx0>;
153 interrupts = <4 IRQ_TYPE_NONE>, <3 IRQ_TYPE_NONE>; 153 interrupts = <4 IRQ_TYPE_NONE>, <3 IRQ_TYPE_NONE>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&max8997_irq>;
154 156
155 max8997,pmic-buck1-dvs-voltage = <1350000>; 157 max8997,pmic-buck1-dvs-voltage = <1350000>;
156 max8997,pmic-buck2-dvs-voltage = <1100000>; 158 max8997,pmic-buck2-dvs-voltage = <1100000>;
@@ -288,6 +290,13 @@
288 }; 290 };
289}; 291};
290 292
293&pinctrl_1 {
294 max8997_irq: max8997-irq {
295 samsung,pins = "gpx0-3", "gpx0-4";
296 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
297 };
298};
299
291&sdhci_0 { 300&sdhci_0 {
292 bus-width = <4>; 301 bus-width = <4>;
293 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>; 302 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_cd>;
diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
index 6f1d76cb7951..f9bbc6315cd9 100644
--- a/arch/arm/boot/dts/exynos4210-trats.dts
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -385,6 +385,12 @@
385 regulator-max-microvolt = <1800000>; 385 regulator-max-microvolt = <1800000>;
386 }; 386 };
387 387
388 tflash_reg: LDO17 {
389 regulator-name = "VTF_2.8V";
390 regulator-min-microvolt = <2800000>;
391 regulator-max-microvolt = <2800000>;
392 };
393
388 vddq_reg: LDO21 { 394 vddq_reg: LDO21 {
389 regulator-name = "VDDQ_M1M2_1.2V"; 395 regulator-name = "VDDQ_M1M2_1.2V";
390 regulator-min-microvolt = <1200000>; 396 regulator-min-microvolt = <1200000>;
@@ -452,6 +458,15 @@
452 status = "okay"; 458 status = "okay";
453}; 459};
454 460
461&sdhci_2 {
462 bus-width = <4>;
463 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
464 pinctrl-names = "default";
465 vmmc-supply = <&tflash_reg>;
466 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
467 status = "okay";
468};
469
455&serial_0 { 470&serial_0 {
456 status = "okay"; 471 status = "okay";
457}; 472};
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 4e6ff97e1ec4..5c3d98654f13 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -310,6 +310,9 @@
310 310
311 pmic@66 { 311 pmic@66 {
312 compatible = "national,lp3974"; 312 compatible = "national,lp3974";
313 interrupts-extended = <&gpx0 7 0>, <&gpx2 7 0>;
314 pinctrl-names = "default";
315 pinctrl-0 = <&lp3974_irq>;
313 reg = <0x66>; 316 reg = <0x66>;
314 317
315 max8998,pmic-buck1-default-dvs-idx = <0>; 318 max8998,pmic-buck1-default-dvs-idx = <0>;
@@ -503,6 +506,11 @@
503}; 506};
504 507
505&pinctrl_1 { 508&pinctrl_1 {
509 lp3974_irq: lp3974-irq {
510 samsung,pins = "gpx0-7", "gpx2-7";
511 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
512 };
513
506 hdmi_hpd: hdmi-hpd { 514 hdmi_hpd: hdmi-hpd {
507 samsung,pins = "gpx3-7"; 515 samsung,pins = "gpx3-7";
508 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 516 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
@@ -537,8 +545,7 @@
537 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; 545 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
538 pinctrl-names = "default"; 546 pinctrl-names = "default";
539 vmmc-supply = <&ldo5_reg>; 547 vmmc-supply = <&ldo5_reg>;
540 cd-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>; 548 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
541 cd-inverted;
542 status = "okay"; 549 status = "okay";
543}; 550};
544 551
diff --git a/arch/arm/boot/dts/exynos4412-midas.dtsi b/arch/arm/boot/dts/exynos4412-midas.dtsi
index c0476c290977..aed2f2e2b0d1 100644
--- a/arch/arm/boot/dts/exynos4412-midas.dtsi
+++ b/arch/arm/boot/dts/exynos4412-midas.dtsi
@@ -1269,8 +1269,7 @@
1269 1269
1270&sdhci_2 { 1270&sdhci_2 {
1271 bus-width = <4>; 1271 bus-width = <4>;
1272 cd-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>; 1272 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
1273 cd-inverted;
1274 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sdhci2_cd>; 1273 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &sdhci2_cd>;
1275 pinctrl-names = "default"; 1274 pinctrl-names = "default";
1276 vmmc-supply = <&ldo21_reg>; 1275 vmmc-supply = <&ldo21_reg>;
diff --git a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
index a09e46c9dbc0..2caa3132f34e 100644
--- a/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
+++ b/arch/arm/boot/dts/exynos4412-odroid-common.dtsi
@@ -539,8 +539,7 @@
539 pinctrl-names = "default"; 539 pinctrl-names = "default";
540 vmmc-supply = <&ldo21_reg>; 540 vmmc-supply = <&ldo21_reg>;
541 vqmmc-supply = <&ldo4_reg>; 541 vqmmc-supply = <&ldo4_reg>;
542 cd-gpios = <&gpk2 2 GPIO_ACTIVE_HIGH>; 542 cd-gpios = <&gpk2 2 GPIO_ACTIVE_LOW>;
543 cd-inverted;
544 status = "okay"; 543 status = "okay";
545}; 544};
546 545
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts
index 7a8a5c55701a..7d1f2dc59038 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -71,6 +71,17 @@
71 }; 71 };
72 }; 72 };
73 73
74 panel: panel {
75 compatible = "boe,hv070wsa-100";
76 power-supply = <&vcc_3v3_reg>;
77 enable-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
78 port {
79 panel_ep: endpoint {
80 remote-endpoint = <&bridge_out_ep>;
81 };
82 };
83 };
84
74 regulators { 85 regulators {
75 compatible = "simple-bus"; 86 compatible = "simple-bus";
76 #address-cells = <1>; 87 #address-cells = <1>;
@@ -97,6 +108,30 @@
97 reg = <2>; 108 reg = <2>;
98 regulator-name = "hdmi-en"; 109 regulator-name = "hdmi-en";
99 }; 110 };
111
112 vcc_1v2_reg: regulator@3 {
113 compatible = "regulator-fixed";
114 reg = <3>;
115 regulator-name = "VCC_1V2";
116 regulator-min-microvolt = <1200000>;
117 regulator-max-microvolt = <1200000>;
118 };
119
120 vcc_1v8_reg: regulator@4 {
121 compatible = "regulator-fixed";
122 reg = <4>;
123 regulator-name = "VCC_1V8";
124 regulator-min-microvolt = <1800000>;
125 regulator-max-microvolt = <1800000>;
126 };
127
128 vcc_3v3_reg: regulator@5 {
129 compatible = "regulator-fixed";
130 reg = <5>;
131 regulator-name = "VCC_3V3";
132 regulator-min-microvolt = <3300000>;
133 regulator-max-microvolt = <3300000>;
134 };
100 }; 135 };
101 136
102 fixed-rate-clocks { 137 fixed-rate-clocks {
@@ -119,6 +154,32 @@
119 cpu0-supply = <&buck2_reg>; 154 cpu0-supply = <&buck2_reg>;
120}; 155};
121 156
157&dsi_0 {
158 vddcore-supply = <&ldo8_reg>;
159 vddio-supply = <&ldo10_reg>;
160 samsung,pll-clock-frequency = <24000000>;
161 samsung,burst-clock-frequency = <320000000>;
162 samsung,esc-clock-frequency = <10000000>;
163 status = "okay";
164
165 bridge@0 {
166 reg = <0>;
167 compatible = "toshiba,tc358764";
168 vddc-supply = <&vcc_1v2_reg>;
169 vddio-supply = <&vcc_1v8_reg>;
170 vddlvds-supply = <&vcc_3v3_reg>;
171 reset-gpios = <&gpd1 6 GPIO_ACTIVE_LOW>;
172 #address-cells = <1>;
173 #size-cells = <0>;
174 port@1 {
175 reg = <1>;
176 bridge_out_ep: endpoint {
177 remote-endpoint = <&panel_ep>;
178 };
179 };
180 };
181};
182
122&dp { 183&dp {
123 status = "okay"; 184 status = "okay";
124 samsung,color-space = <0>; 185 samsung,color-space = <0>;
@@ -149,9 +210,11 @@
149}; 210};
150 211
151&hdmi { 212&hdmi {
213 pinctrl-names = "default";
214 pinctrl-0 = <&hdmi_hpd>;
152 status = "okay"; 215 status = "okay";
153 ddc = <&i2c_2>; 216 ddc = <&i2c_ddc>;
154 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_LOW>; 217 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
155 vdd_osc-supply = <&ldo10_reg>; 218 vdd_osc-supply = <&ldo10_reg>;
156 vdd_pll-supply = <&ldo8_reg>; 219 vdd_pll-supply = <&ldo8_reg>;
157 vdd-supply = <&ldo8_reg>; 220 vdd-supply = <&ldo8_reg>;
@@ -168,6 +231,8 @@
168 reg = <0x66>; 231 reg = <0x66>;
169 interrupt-parent = <&gpx3>; 232 interrupt-parent = <&gpx3>;
170 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 233 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
234 pinctrl-names = "default";
235 pinctrl-0 = <&s5m8767_irq>;
171 236
172 vinb1-supply = <&main_dc_reg>; 237 vinb1-supply = <&main_dc_reg>;
173 vinb2-supply = <&main_dc_reg>; 238 vinb2-supply = <&main_dc_reg>;
@@ -452,13 +517,6 @@
452 }; 517 };
453}; 518};
454 519
455&i2c_2 {
456 status = "okay";
457 /* used by HDMI DDC */
458 samsung,i2c-sda-delay = <100>;
459 samsung,i2c-max-bus-freq = <66000>;
460};
461
462&i2c_3 { 520&i2c_3 {
463 status = "okay"; 521 status = "okay";
464 522
@@ -535,6 +593,13 @@
535 cap-sd-highspeed; 593 cap-sd-highspeed;
536}; 594};
537 595
596&pinctrl_0 {
597 s5m8767_irq: s5m8767-irq {
598 samsung,pins = "gpx3-2";
599 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
600 };
601};
602
538&rtc { 603&rtc {
539 status = "okay"; 604 status = "okay";
540}; 605};
@@ -547,3 +612,22 @@
547 status = "okay"; 612 status = "okay";
548 samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>; 613 samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
549}; 614};
615
616&soc {
617 /*
618 * For unknown reasons HDMI-DDC does not work with Exynos I2C
619 * controllers. Lets use software I2C over GPIO pins as a workaround.
620 */
621 i2c_ddc: i2c-gpio {
622 pinctrl-names = "default";
623 pinctrl-0 = <&i2c2_gpio_bus>;
624 status = "okay";
625 compatible = "i2c-gpio";
626 gpios = <&gpa0 6 0 /* sda */
627 &gpa0 7 0 /* scl */
628 >;
629 i2c-gpio,delay-us = <2>;
630 #address-cells = <1>;
631 #size-cells = <0>;
632 };
633};
diff --git a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
index 6ff6dea29d44..d31a68672bfa 100644
--- a/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5250-pinctrl.dtsi
@@ -225,6 +225,12 @@
225 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 225 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
226 }; 226 };
227 227
228 i2c2_gpio_bus: i2c2-gpio-bus {
229 samsung,pins = "gpa0-6", "gpa0-7";
230 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
231 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
232 };
233
228 uart2_data: uart2-data { 234 uart2_data: uart2-data {
229 samsung,pins = "gpa1-0", "gpa1-1"; 235 samsung,pins = "gpa1-0", "gpa1-1";
230 samsung,pin-function = <EXYNOS_PIN_FUNC_2>; 236 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
@@ -593,6 +599,11 @@
593 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 599 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
594 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 600 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
595 }; 601 };
602
603 hdmi_hpd: hdmi-hpd {
604 samsung,pins = "gpx3-7";
605 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
606 };
596}; 607};
597 608
598&pinctrl_1 { 609&pinctrl_1 {
diff --git a/arch/arm/boot/dts/exynos5250-snow-rev5.dts b/arch/arm/boot/dts/exynos5250-snow-rev5.dts
index 0348b1c49a69..7cbfc6f1f4b8 100644
--- a/arch/arm/boot/dts/exynos5250-snow-rev5.dts
+++ b/arch/arm/boot/dts/exynos5250-snow-rev5.dts
@@ -20,6 +20,14 @@
20 20
21 samsung,model = "Snow-I2S-MAX98090"; 21 samsung,model = "Snow-I2S-MAX98090";
22 samsung,audio-codec = <&max98090>; 22 samsung,audio-codec = <&max98090>;
23
24 cpu {
25 sound-dai = <&i2s0 0>;
26 };
27
28 codec {
29 sound-dai = <&max98090 0>, <&hdmi>;
30 };
23 }; 31 };
24}; 32};
25 33
@@ -31,6 +39,9 @@
31 interrupt-parent = <&gpx0>; 39 interrupt-parent = <&gpx0>;
32 pinctrl-names = "default"; 40 pinctrl-names = "default";
33 pinctrl-0 = <&max98090_irq>; 41 pinctrl-0 = <&max98090_irq>;
42 clocks = <&pmu_system_controller 0>;
43 clock-names = "mclk";
44 #sound-dai-cells = <1>;
34 }; 45 };
35}; 46};
36 47
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
index da163a40af15..5044f754e6e5 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -54,62 +54,109 @@
54 device_type = "cpu"; 54 device_type = "cpu";
55 compatible = "arm,cortex-a15"; 55 compatible = "arm,cortex-a15";
56 reg = <0>; 56 reg = <0>;
57 clock-frequency = <1700000000>;
58 clocks = <&clock CLK_ARM_CLK>; 57 clocks = <&clock CLK_ARM_CLK>;
59 clock-names = "cpu"; 58 clock-names = "cpu";
60 clock-latency = <140000>; 59 operating-points-v2 = <&cpu0_opp_table>;
61
62 operating-points = <
63 1700000 1300000
64 1600000 1250000
65 1500000 1225000
66 1400000 1200000
67 1300000 1150000
68 1200000 1125000
69 1100000 1100000
70 1000000 1075000
71 900000 1050000
72 800000 1025000
73 700000 1012500
74 600000 1000000
75 500000 975000
76 400000 950000
77 300000 937500
78 200000 925000
79 >;
80 #cooling-cells = <2>; /* min followed by max */ 60 #cooling-cells = <2>; /* min followed by max */
81 }; 61 };
82 cpu@1 { 62 cpu@1 {
83 device_type = "cpu"; 63 device_type = "cpu";
84 compatible = "arm,cortex-a15"; 64 compatible = "arm,cortex-a15";
85 reg = <1>; 65 reg = <1>;
86 clock-frequency = <1700000000>;
87 clocks = <&clock CLK_ARM_CLK>; 66 clocks = <&clock CLK_ARM_CLK>;
88 clock-names = "cpu"; 67 clock-names = "cpu";
89 clock-latency = <140000>; 68 operating-points-v2 = <&cpu0_opp_table>;
90
91 operating-points = <
92 1700000 1300000
93 1600000 1250000
94 1500000 1225000
95 1400000 1200000
96 1300000 1150000
97 1200000 1125000
98 1100000 1100000
99 1000000 1075000
100 900000 1050000
101 800000 1025000
102 700000 1012500
103 600000 1000000
104 500000 975000
105 400000 950000
106 300000 937500
107 200000 925000
108 >;
109 #cooling-cells = <2>; /* min followed by max */ 69 #cooling-cells = <2>; /* min followed by max */
110 }; 70 };
111 }; 71 };
112 72
73 cpu0_opp_table: opp_table0 {
74 compatible = "operating-points-v2";
75 opp-shared;
76
77 opp-200000000 {
78 opp-hz = /bits/ 64 <200000000>;
79 opp-microvolt = <925000>;
80 clock-latency-ns = <140000>;
81 };
82 opp-300000000 {
83 opp-hz = /bits/ 64 <300000000>;
84 opp-microvolt = <937500>;
85 clock-latency-ns = <140000>;
86 };
87 opp-400000000 {
88 opp-hz = /bits/ 64 <400000000>;
89 opp-microvolt = <950000>;
90 clock-latency-ns = <140000>;
91 };
92 opp-500000000 {
93 opp-hz = /bits/ 64 <500000000>;
94 opp-microvolt = <975000>;
95 clock-latency-ns = <140000>;
96 };
97 opp-600000000 {
98 opp-hz = /bits/ 64 <600000000>;
99 opp-microvolt = <1000000>;
100 clock-latency-ns = <140000>;
101 };
102 opp-700000000 {
103 opp-hz = /bits/ 64 <700000000>;
104 opp-microvolt = <1012500>;
105 clock-latency-ns = <140000>;
106 };
107 opp-800000000 {
108 opp-hz = /bits/ 64 <800000000>;
109 opp-microvolt = <1025000>;
110 clock-latency-ns = <140000>;
111 };
112 opp-900000000 {
113 opp-hz = /bits/ 64 <900000000>;
114 opp-microvolt = <1050000>;
115 clock-latency-ns = <140000>;
116 };
117 opp-1000000000 {
118 opp-hz = /bits/ 64 <1000000000>;
119 opp-microvolt = <1075000>;
120 clock-latency-ns = <140000>;
121 opp-suspend;
122 };
123 opp-1100000000 {
124 opp-hz = /bits/ 64 <1100000000>;
125 opp-microvolt = <1100000>;
126 clock-latency-ns = <140000>;
127 };
128 opp-1200000000 {
129 opp-hz = /bits/ 64 <1200000000>;
130 opp-microvolt = <1125000>;
131 clock-latency-ns = <140000>;
132 };
133 opp-1300000000 {
134 opp-hz = /bits/ 64 <1300000000>;
135 opp-microvolt = <1150000>;
136 clock-latency-ns = <140000>;
137 };
138 opp-1400000000 {
139 opp-hz = /bits/ 64 <1400000000>;
140 opp-microvolt = <1200000>;
141 clock-latency-ns = <140000>;
142 };
143 opp-1500000000 {
144 opp-hz = /bits/ 64 <1500000000>;
145 opp-microvolt = <1225000>;
146 clock-latency-ns = <140000>;
147 };
148 opp-1600000000 {
149 opp-hz = /bits/ 64 <1600000000>;
150 opp-microvolt = <1250000>;
151 clock-latency-ns = <140000>;
152 };
153 opp-1700000000 {
154 opp-hz = /bits/ 64 <1700000000>;
155 opp-microvolt = <1300000>;
156 clock-latency-ns = <140000>;
157 };
158 };
159
113 soc: soc { 160 soc: soc {
114 sysram@2020000 { 161 sysram@2020000 {
115 compatible = "mmio-sram"; 162 compatible = "mmio-sram";
@@ -756,6 +803,27 @@
756 #phy-cells = <0>; 803 #phy-cells = <0>;
757 }; 804 };
758 805
806 mipi_phy: video-phy@10040710 {
807 compatible = "samsung,s5pv210-mipi-video-phy";
808 reg = <0x10040710 0x100>;
809 #phy-cells = <1>;
810 syscon = <&pmu_system_controller>;
811 };
812
813 dsi_0: dsi@14500000 {
814 compatible = "samsung,exynos4210-mipi-dsi";
815 reg = <0x14500000 0x10000>;
816 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
817 samsung,power-domain = <&pd_disp1>;
818 phys = <&mipi_phy 3>;
819 phy-names = "dsim";
820 clocks = <&clock CLK_DSIM0>, <&clock CLK_SCLK_MIPI1>;
821 clock-names = "bus_clk", "sclk_mipi";
822 status = "disabled";
823 #address-cells = <1>;
824 #size-cells = <0>;
825 };
826
759 adc: adc@12d10000 { 827 adc: adc@12d10000 {
760 compatible = "samsung,exynos-adc-v1"; 828 compatible = "samsung,exynos-adc-v1";
761 reg = <0x12D10000 0x100>; 829 reg = <0x12D10000 0x100>;
diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
index a2046f5f998c..434a7591ff63 100644
--- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -530,7 +530,7 @@
530 samsung,dw-mshc-sdr-timing = <0 4>; 530 samsung,dw-mshc-sdr-timing = <0 4>;
531 samsung,dw-mshc-ddr-timing = <0 2>; 531 samsung,dw-mshc-ddr-timing = <0 2>;
532 pinctrl-names = "default"; 532 pinctrl-names = "default";
533 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; 533 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4 &sd2_wp>;
534 bus-width = <4>; 534 bus-width = <4>;
535 cap-sd-highspeed; 535 cap-sd-highspeed;
536 vmmc-supply = <&ldo21_reg>; 536 vmmc-supply = <&ldo21_reg>;
@@ -545,6 +545,14 @@
545 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 545 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
546 }; 546 };
547 547
548 sd2_wp: sd2-wp {
549 samsung,pins = "gpm5-0";
550 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
551 /* Pin is floating so be sure to disable write-protect */
552 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
553 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV4>;
554 };
555
548 pmic_dvs_3: pmic-dvs-3 { 556 pmic_dvs_3: pmic-dvs-3 {
549 samsung,pins = "gpx0-0"; 557 samsung,pins = "gpx0-0";
550 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 558 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index 57c2332bf282..f78db6809cca 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -153,7 +153,7 @@
153 153
154&clock_audss { 154&clock_audss {
155 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>; 155 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
156 assigned-clock-parents = <&clock CLK_FOUT_EPLL>; 156 assigned-clock-parents = <&clock CLK_MAU_EPLL>;
157}; 157};
158 158
159&cpu0 { 159&cpu0 {
@@ -312,6 +312,7 @@
312 regulator-name = "vdd_1v35"; 312 regulator-name = "vdd_1v35";
313 regulator-min-microvolt = <1350000>; 313 regulator-min-microvolt = <1350000>;
314 regulator-max-microvolt = <1350000>; 314 regulator-max-microvolt = <1350000>;
315 regulator-always-on;
315 regulator-boot-on; 316 regulator-boot-on;
316 regulator-state-mem { 317 regulator-state-mem {
317 regulator-on-in-suspend; 318 regulator-on-in-suspend;
@@ -333,6 +334,7 @@
333 regulator-name = "vdd_2v"; 334 regulator-name = "vdd_2v";
334 regulator-min-microvolt = <2000000>; 335 regulator-min-microvolt = <2000000>;
335 regulator-max-microvolt = <2000000>; 336 regulator-max-microvolt = <2000000>;
337 regulator-always-on;
336 regulator-boot-on; 338 regulator-boot-on;
337 regulator-state-mem { 339 regulator-state-mem {
338 regulator-on-in-suspend; 340 regulator-on-in-suspend;
@@ -343,6 +345,7 @@
343 regulator-name = "vdd_1v8"; 345 regulator-name = "vdd_1v8";
344 regulator-min-microvolt = <1800000>; 346 regulator-min-microvolt = <1800000>;
345 regulator-max-microvolt = <1800000>; 347 regulator-max-microvolt = <1800000>;
348 regulator-always-on;
346 regulator-boot-on; 349 regulator-boot-on;
347 regulator-state-mem { 350 regulator-state-mem {
348 regulator-on-in-suspend; 351 regulator-on-in-suspend;
diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
index 2f4f40882dab..2fac4baf1eb4 100644
--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -154,6 +154,13 @@
154 regulator-always-on; 154 regulator-always-on;
155 }; 155 };
156 156
157 ldo2_reg: LDO2 {
158 regulator-name = "vdd_ldo2";
159 regulator-min-microvolt = <1800000>;
160 regulator-max-microvolt = <1800000>;
161 regulator-always-on;
162 };
163
157 ldo3_reg: LDO3 { 164 ldo3_reg: LDO3 {
158 regulator-name = "vddq_mmc0"; 165 regulator-name = "vddq_mmc0";
159 regulator-min-microvolt = <1800000>; 166 regulator-min-microvolt = <1800000>;
@@ -216,10 +223,10 @@
216 }; 223 };
217 224
218 ldo12_reg: LDO12 { 225 ldo12_reg: LDO12 {
226 /* Unused */
219 regulator-name = "vdd_ldo12"; 227 regulator-name = "vdd_ldo12";
220 regulator-min-microvolt = <1800000>; 228 regulator-min-microvolt = <800000>;
221 regulator-max-microvolt = <1800000>; 229 regulator-max-microvolt = <2375000>;
222 regulator-always-on;
223 }; 230 };
224 231
225 ldo13_reg: LDO13 { 232 ldo13_reg: LDO13 {
@@ -228,6 +235,13 @@
228 regulator-max-microvolt = <2800000>; 235 regulator-max-microvolt = <2800000>;
229 }; 236 };
230 237
238 ldo14_reg: LDO14 {
239 /* Unused */
240 regulator-name = "vdd_ldo14";
241 regulator-min-microvolt = <800000>;
242 regulator-max-microvolt = <3950000>;
243 };
244
231 ldo15_reg: LDO15 { 245 ldo15_reg: LDO15 {
232 regulator-name = "vdd_ldo15"; 246 regulator-name = "vdd_ldo15";
233 regulator-min-microvolt = <3300000>; 247 regulator-min-microvolt = <3300000>;
@@ -236,10 +250,10 @@
236 }; 250 };
237 251
238 ldo16_reg: LDO16 { 252 ldo16_reg: LDO16 {
253 /* Unused */
239 regulator-name = "vdd_ldo16"; 254 regulator-name = "vdd_ldo16";
240 regulator-min-microvolt = <2200000>; 255 regulator-min-microvolt = <800000>;
241 regulator-max-microvolt = <2200000>; 256 regulator-max-microvolt = <3950000>;
242 regulator-always-on;
243 }; 257 };
244 258
245 ldo17_reg: LDO17 { 259 ldo17_reg: LDO17 {
@@ -261,20 +275,139 @@
261 regulator-max-microvolt = <2800000>; 275 regulator-max-microvolt = <2800000>;
262 }; 276 };
263 277
264 ldo24_reg: LDO24 { 278 ldo20_reg: LDO20 {
265 regulator-name = "tsp_io"; 279 /* Unused */
266 regulator-min-microvolt = <2800000>; 280 regulator-name = "vdd_ldo20";
267 regulator-max-microvolt = <2800000>; 281 regulator-min-microvolt = <800000>;
282 regulator-max-microvolt = <3950000>;
283 };
284
285 ldo21_reg: LDO21 {
286 /* Unused */
287 regulator-name = "vdd_ldo21";
288 regulator-min-microvolt = <800000>;
289 regulator-max-microvolt = <3950000>;
290 };
291
292 ldo22_reg: LDO22 {
293 /* Unused */
294 regulator-name = "vdd_ldo22";
295 regulator-min-microvolt = <800000>;
296 regulator-max-microvolt = <2375000>;
297 };
298
299 ldo23_reg: LDO23 {
300 regulator-name = "vdd_mifs";
301 regulator-min-microvolt = <1100000>;
302 regulator-max-microvolt = <1100000>;
268 regulator-always-on; 303 regulator-always-on;
269 }; 304 };
270 305
306 ldo24_reg: LDO24 {
307 /* Unused */
308 regulator-name = "vdd_ldo24";
309 regulator-min-microvolt = <800000>;
310 regulator-max-microvolt = <3950000>;
311 };
312
313 ldo25_reg: LDO25 {
314 /* Unused */
315 regulator-name = "vdd_ldo25";
316 regulator-min-microvolt = <800000>;
317 regulator-max-microvolt = <3950000>;
318 };
319
271 ldo26_reg: LDO26 { 320 ldo26_reg: LDO26 {
321 /* Used on XU3, XU3-Lite and XU4 */
272 regulator-name = "vdd_ldo26"; 322 regulator-name = "vdd_ldo26";
273 regulator-min-microvolt = <3000000>; 323 regulator-min-microvolt = <800000>;
274 regulator-max-microvolt = <3000000>; 324 regulator-max-microvolt = <3950000>;
325 };
326
327 ldo27_reg: LDO27 {
328 regulator-name = "vdd_g3ds";
329 regulator-min-microvolt = <1000000>;
330 regulator-max-microvolt = <1000000>;
275 regulator-always-on; 331 regulator-always-on;
276 }; 332 };
277 333
334 ldo28_reg: LDO28 {
335 /* Used on XU3 */
336 regulator-name = "vdd_ldo28";
337 regulator-min-microvolt = <800000>;
338 regulator-max-microvolt = <3950000>;
339 };
340
341 ldo29_reg: LDO29 {
342 /* Unused */
343 regulator-name = "vdd_ldo29";
344 regulator-min-microvolt = <800000>;
345 regulator-max-microvolt = <3950000>;
346 };
347
348 ldo30_reg: LDO30 {
349 /* Unused */
350 regulator-name = "vdd_ldo30";
351 regulator-min-microvolt = <800000>;
352 regulator-max-microvolt = <3950000>;
353 };
354
355 ldo31_reg: LDO31 {
356 /* Unused */
357 regulator-name = "vdd_ldo31";
358 regulator-min-microvolt = <800000>;
359 regulator-max-microvolt = <3950000>;
360 };
361
362 ldo32_reg: LDO32 {
363 /* Unused */
364 regulator-name = "vdd_ldo32";
365 regulator-min-microvolt = <800000>;
366 regulator-max-microvolt = <3950000>;
367 };
368
369 ldo33_reg: LDO33 {
370 /* Unused */
371 regulator-name = "vdd_ldo33";
372 regulator-min-microvolt = <800000>;
373 regulator-max-microvolt = <3950000>;
374 };
375
376 ldo34_reg: LDO34 {
377 /* Unused */
378 regulator-name = "vdd_ldo34";
379 regulator-min-microvolt = <800000>;
380 regulator-max-microvolt = <3950000>;
381 };
382
383 ldo35_reg: LDO35 {
384 /* Unused */
385 regulator-name = "vdd_ldo35";
386 regulator-min-microvolt = <800000>;
387 regulator-max-microvolt = <2375000>;
388 };
389
390 ldo36_reg: LDO36 {
391 /* Unused */
392 regulator-name = "vdd_ldo36";
393 regulator-min-microvolt = <800000>;
394 regulator-max-microvolt = <3950000>;
395 };
396
397 ldo37_reg: LDO37 {
398 /* Unused */
399 regulator-name = "vdd_ldo37";
400 regulator-min-microvolt = <800000>;
401 regulator-max-microvolt = <3950000>;
402 };
403
404 ldo38_reg: LDO38 {
405 /* Unused */
406 regulator-name = "vdd_ldo38";
407 regulator-min-microvolt = <800000>;
408 regulator-max-microvolt = <3950000>;
409 };
410
278 buck1_reg: BUCK1 { 411 buck1_reg: BUCK1 {
279 regulator-name = "vdd_mif"; 412 regulator-name = "vdd_mif";
280 regulator-min-microvolt = <800000>; 413 regulator-min-microvolt = <800000>;
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
index 96e281c0a118..e522edb2bb82 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
@@ -367,6 +367,12 @@
367 status = "okay"; 367 status = "okay";
368}; 368};
369 369
370&ldo26_reg {
371 regulator-min-microvolt = <3000000>;
372 regulator-max-microvolt = <3000000>;
373 regulator-always-on;
374};
375
370&mixer { 376&mixer {
371 status = "okay"; 377 status = "okay";
372}; 378};
diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index 0322f281912c..db0bc17a667b 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -49,6 +49,12 @@
49 }; 49 };
50}; 50};
51 51
52&ldo28_reg {
53 regulator-name = "dp_p3v3";
54 regulator-min-microvolt = <3300000>;
55 regulator-max-microvolt = <3300000>;
56};
57
52&pwm { 58&pwm {
53 /* 59 /*
54 * PWM 0 -- fan 60 * PWM 0 -- fan
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index d80ab9085da1..e0f470fe54c8 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -153,7 +153,7 @@
153 153
154&clock_audss { 154&clock_audss {
155 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>; 155 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
156 assigned-clock-parents = <&clock CLK_FOUT_EPLL>; 156 assigned-clock-parents = <&clock CLK_MAU_EPLL>;
157}; 157};
158 158
159&cpu0 { 159&cpu0 {
@@ -312,6 +312,7 @@
312 regulator-name = "vdd_1v35"; 312 regulator-name = "vdd_1v35";
313 regulator-min-microvolt = <1350000>; 313 regulator-min-microvolt = <1350000>;
314 regulator-max-microvolt = <1350000>; 314 regulator-max-microvolt = <1350000>;
315 regulator-always-on;
315 regulator-boot-on; 316 regulator-boot-on;
316 regulator-state-mem { 317 regulator-state-mem {
317 regulator-on-in-suspend; 318 regulator-on-in-suspend;
@@ -333,6 +334,7 @@
333 regulator-name = "vdd_2v"; 334 regulator-name = "vdd_2v";
334 regulator-min-microvolt = <2000000>; 335 regulator-min-microvolt = <2000000>;
335 regulator-max-microvolt = <2000000>; 336 regulator-max-microvolt = <2000000>;
337 regulator-always-on;
336 regulator-boot-on; 338 regulator-boot-on;
337 regulator-state-mem { 339 regulator-state-mem {
338 regulator-on-in-suspend; 340 regulator-on-in-suspend;
@@ -343,6 +345,7 @@
343 regulator-name = "vdd_1v8"; 345 regulator-name = "vdd_1v8";
344 regulator-min-microvolt = <1800000>; 346 regulator-min-microvolt = <1800000>;
345 regulator-max-microvolt = <1800000>; 347 regulator-max-microvolt = <1800000>;
348 regulator-always-on;
346 regulator-boot-on; 349 regulator-boot-on;
347 regulator-state-mem { 350 regulator-state-mem {
348 regulator-on-in-suspend; 351 regulator-on-in-suspend;
diff --git a/arch/arm/boot/dts/hip04.dtsi b/arch/arm/boot/dts/hip04.dtsi
index 44044f275115..0f917b272ff3 100644
--- a/arch/arm/boot/dts/hip04.dtsi
+++ b/arch/arm/boot/dts/hip04.dtsi
@@ -277,10 +277,11 @@
277 277
278 clocks = <&clk_375m>; 278 clocks = <&clk_375m>;
279 clock-names = "apb_pclk"; 279 clock-names = "apb_pclk";
280 port { 280 in-ports {
281 etb0_in_port: endpoint@0 { 281 port {
282 slave-mode; 282 etb0_in_port: endpoint@0 {
283 remote-endpoint = <&replicator0_out_port0>; 283 remote-endpoint = <&replicator0_out_port0>;
284 };
284 }; 285 };
285 }; 286 };
286 }; 287 };
@@ -291,10 +292,11 @@
291 292
292 clocks = <&clk_375m>; 293 clocks = <&clk_375m>;
293 clock-names = "apb_pclk"; 294 clock-names = "apb_pclk";
294 port { 295 in-ports {
295 etb1_in_port: endpoint@0 { 296 port {
296 slave-mode; 297 etb1_in_port: endpoint@0 {
297 remote-endpoint = <&replicator1_out_port0>; 298 remote-endpoint = <&replicator1_out_port0>;
299 };
298 }; 300 };
299 }; 301 };
300 }; 302 };
@@ -305,10 +307,11 @@
305 307
306 clocks = <&clk_375m>; 308 clocks = <&clk_375m>;
307 clock-names = "apb_pclk"; 309 clock-names = "apb_pclk";
308 port { 310 in-ports {
309 etb2_in_port: endpoint@0 { 311 port {
310 slave-mode; 312 etb2_in_port: endpoint@0 {
311 remote-endpoint = <&replicator2_out_port0>; 313 remote-endpoint = <&replicator2_out_port0>;
314 };
312 }; 315 };
313 }; 316 };
314 }; 317 };
@@ -319,10 +322,11 @@
319 322
320 clocks = <&clk_375m>; 323 clocks = <&clk_375m>;
321 clock-names = "apb_pclk"; 324 clock-names = "apb_pclk";
322 port { 325 in-ports {
323 etb3_in_port: endpoint@0 { 326 port {
324 slave-mode; 327 etb3_in_port: endpoint@0 {
325 remote-endpoint = <&replicator3_out_port0>; 328 remote-endpoint = <&replicator3_out_port0>;
329 };
326 }; 330 };
327 }; 331 };
328 }; 332 };
@@ -333,10 +337,11 @@
333 337
334 clocks = <&clk_375m>; 338 clocks = <&clk_375m>;
335 clock-names = "apb_pclk"; 339 clock-names = "apb_pclk";
336 port { 340 in-ports {
337 tpiu_in_port: endpoint@0 { 341 port {
338 slave-mode; 342 tpiu_in_port: endpoint@0 {
339 remote-endpoint = <&funnel4_out_port0>; 343 remote-endpoint = <&funnel4_out_port0>;
344 };
340 }; 345 };
341 }; 346 };
342 }; 347 };
@@ -347,7 +352,7 @@
347 */ 352 */
348 compatible = "arm,coresight-replicator"; 353 compatible = "arm,coresight-replicator";
349 354
350 ports { 355 out-ports {
351 #address-cells = <1>; 356 #address-cells = <1>;
352 #size-cells = <0>; 357 #size-cells = <0>;
353 358
@@ -365,12 +370,11 @@
365 remote-endpoint = <&funnel4_in_port0>; 370 remote-endpoint = <&funnel4_in_port0>;
366 }; 371 };
367 }; 372 };
373 };
368 374
369 /* replicator input port */ 375 in-ports {
370 port@2 { 376 port {
371 reg = <0>;
372 replicator0_in_port0: endpoint { 377 replicator0_in_port0: endpoint {
373 slave-mode;
374 remote-endpoint = <&funnel0_out_port0>; 378 remote-endpoint = <&funnel0_out_port0>;
375 }; 379 };
376 }; 380 };
@@ -383,7 +387,7 @@
383 */ 387 */
384 compatible = "arm,coresight-replicator"; 388 compatible = "arm,coresight-replicator";
385 389
386 ports { 390 out-ports {
387 #address-cells = <1>; 391 #address-cells = <1>;
388 #size-cells = <0>; 392 #size-cells = <0>;
389 393
@@ -401,12 +405,11 @@
401 remote-endpoint = <&funnel4_in_port1>; 405 remote-endpoint = <&funnel4_in_port1>;
402 }; 406 };
403 }; 407 };
408 };
404 409
405 /* replicator input port */ 410 in-ports {
406 port@2 { 411 port {
407 reg = <0>;
408 replicator1_in_port0: endpoint { 412 replicator1_in_port0: endpoint {
409 slave-mode;
410 remote-endpoint = <&funnel1_out_port0>; 413 remote-endpoint = <&funnel1_out_port0>;
411 }; 414 };
412 }; 415 };
@@ -419,11 +422,10 @@
419 */ 422 */
420 compatible = "arm,coresight-replicator"; 423 compatible = "arm,coresight-replicator";
421 424
422 ports { 425 out-ports {
423 #address-cells = <1>; 426 #address-cells = <1>;
424 #size-cells = <0>; 427 #size-cells = <0>;
425 428
426 /* replicator output ports */
427 port@0 { 429 port@0 {
428 reg = <0>; 430 reg = <0>;
429 replicator2_out_port0: endpoint { 431 replicator2_out_port0: endpoint {
@@ -437,12 +439,11 @@
437 remote-endpoint = <&funnel4_in_port2>; 439 remote-endpoint = <&funnel4_in_port2>;
438 }; 440 };
439 }; 441 };
442 };
440 443
441 /* replicator input port */ 444 in-ports {
442 port@2 { 445 port {
443 reg = <0>;
444 replicator2_in_port0: endpoint { 446 replicator2_in_port0: endpoint {
445 slave-mode;
446 remote-endpoint = <&funnel2_out_port0>; 447 remote-endpoint = <&funnel2_out_port0>;
447 }; 448 };
448 }; 449 };
@@ -455,11 +456,10 @@
455 */ 456 */
456 compatible = "arm,coresight-replicator"; 457 compatible = "arm,coresight-replicator";
457 458
458 ports { 459 out-ports {
459 #address-cells = <1>; 460 #address-cells = <1>;
460 #size-cells = <0>; 461 #size-cells = <0>;
461 462
462 /* replicator output ports */
463 port@0 { 463 port@0 {
464 reg = <0>; 464 reg = <0>;
465 replicator3_out_port0: endpoint { 465 replicator3_out_port0: endpoint {
@@ -473,12 +473,11 @@
473 remote-endpoint = <&funnel4_in_port3>; 473 remote-endpoint = <&funnel4_in_port3>;
474 }; 474 };
475 }; 475 };
476 };
476 477
477 /* replicator input port */ 478 in-ports {
478 port@2 { 479 port {
479 reg = <0>;
480 replicator3_in_port0: endpoint { 480 replicator3_in_port0: endpoint {
481 slave-mode;
482 remote-endpoint = <&funnel3_out_port0>; 481 remote-endpoint = <&funnel3_out_port0>;
483 }; 482 };
484 }; 483 };
@@ -491,48 +490,43 @@
491 490
492 clocks = <&clk_375m>; 491 clocks = <&clk_375m>;
493 clock-names = "apb_pclk"; 492 clock-names = "apb_pclk";
494 ports { 493 out-ports {
495 #address-cells = <1>; 494 port {
496 #size-cells = <0>;
497
498 /* funnel output port */
499 port@0 {
500 reg = <0>;
501 funnel0_out_port0: endpoint { 495 funnel0_out_port0: endpoint {
502 remote-endpoint = 496 remote-endpoint =
503 <&replicator0_in_port0>; 497 <&replicator0_in_port0>;
504 }; 498 };
505 }; 499 };
500 };
506 501
507 /* funnel input ports */ 502 in-ports {
508 port@1 { 503 #address-cells = <1>;
504 #size-cells = <0>;
505
506 port@0 {
509 reg = <0>; 507 reg = <0>;
510 funnel0_in_port0: endpoint { 508 funnel0_in_port0: endpoint {
511 slave-mode;
512 remote-endpoint = <&ptm0_out_port>; 509 remote-endpoint = <&ptm0_out_port>;
513 }; 510 };
514 }; 511 };
515 512
516 port@2 { 513 port@1 {
517 reg = <1>; 514 reg = <1>;
518 funnel0_in_port1: endpoint { 515 funnel0_in_port1: endpoint {
519 slave-mode;
520 remote-endpoint = <&ptm1_out_port>; 516 remote-endpoint = <&ptm1_out_port>;
521 }; 517 };
522 }; 518 };
523 519
524 port@3 { 520 port@2 {
525 reg = <2>; 521 reg = <2>;
526 funnel0_in_port2: endpoint { 522 funnel0_in_port2: endpoint {
527 slave-mode;
528 remote-endpoint = <&ptm2_out_port>; 523 remote-endpoint = <&ptm2_out_port>;
529 }; 524 };
530 }; 525 };
531 526
532 port@4 { 527 port@3 {
533 reg = <3>; 528 reg = <3>;
534 funnel0_in_port3: endpoint { 529 funnel0_in_port3: endpoint {
535 slave-mode;
536 remote-endpoint = <&ptm3_out_port>; 530 remote-endpoint = <&ptm3_out_port>;
537 }; 531 };
538 }; 532 };
@@ -545,48 +539,43 @@
545 539
546 clocks = <&clk_375m>; 540 clocks = <&clk_375m>;
547 clock-names = "apb_pclk"; 541 clock-names = "apb_pclk";
548 ports { 542 out-ports {
549 #address-cells = <1>; 543 port {
550 #size-cells = <0>;
551
552 /* funnel output port */
553 port@0 {
554 reg = <0>;
555 funnel1_out_port0: endpoint { 544 funnel1_out_port0: endpoint {
556 remote-endpoint = 545 remote-endpoint =
557 <&replicator1_in_port0>; 546 <&replicator1_in_port0>;
558 }; 547 };
559 }; 548 };
549 };
560 550
561 /* funnel input ports */ 551 in-ports {
562 port@1 { 552 #address-cells = <1>;
553 #size-cells = <0>;
554
555 port@0 {
563 reg = <0>; 556 reg = <0>;
564 funnel1_in_port0: endpoint { 557 funnel1_in_port0: endpoint {
565 slave-mode;
566 remote-endpoint = <&ptm4_out_port>; 558 remote-endpoint = <&ptm4_out_port>;
567 }; 559 };
568 }; 560 };
569 561
570 port@2 { 562 port@1 {
571 reg = <1>; 563 reg = <1>;
572 funnel1_in_port1: endpoint { 564 funnel1_in_port1: endpoint {
573 slave-mode;
574 remote-endpoint = <&ptm5_out_port>; 565 remote-endpoint = <&ptm5_out_port>;
575 }; 566 };
576 }; 567 };
577 568
578 port@3 { 569 port@2 {
579 reg = <2>; 570 reg = <2>;
580 funnel1_in_port2: endpoint { 571 funnel1_in_port2: endpoint {
581 slave-mode;
582 remote-endpoint = <&ptm6_out_port>; 572 remote-endpoint = <&ptm6_out_port>;
583 }; 573 };
584 }; 574 };
585 575
586 port@4 { 576 port@3 {
587 reg = <3>; 577 reg = <3>;
588 funnel1_in_port3: endpoint { 578 funnel1_in_port3: endpoint {
589 slave-mode;
590 remote-endpoint = <&ptm7_out_port>; 579 remote-endpoint = <&ptm7_out_port>;
591 }; 580 };
592 }; 581 };
@@ -599,48 +588,43 @@
599 588
600 clocks = <&clk_375m>; 589 clocks = <&clk_375m>;
601 clock-names = "apb_pclk"; 590 clock-names = "apb_pclk";
602 ports { 591 out-ports {
603 #address-cells = <1>; 592 port {
604 #size-cells = <0>;
605
606 /* funnel output port */
607 port@0 {
608 reg = <0>;
609 funnel2_out_port0: endpoint { 593 funnel2_out_port0: endpoint {
610 remote-endpoint = 594 remote-endpoint =
611 <&replicator2_in_port0>; 595 <&replicator2_in_port0>;
612 }; 596 };
613 }; 597 };
598 };
614 599
615 /* funnel input ports */ 600 in-ports {
616 port@1 { 601 #address-cells = <1>;
602 #size-cells = <0>;
603
604 port@0 {
617 reg = <0>; 605 reg = <0>;
618 funnel2_in_port0: endpoint { 606 funnel2_in_port0: endpoint {
619 slave-mode;
620 remote-endpoint = <&ptm8_out_port>; 607 remote-endpoint = <&ptm8_out_port>;
621 }; 608 };
622 }; 609 };
623 610
624 port@2 { 611 port@1 {
625 reg = <1>; 612 reg = <1>;
626 funnel2_in_port1: endpoint { 613 funnel2_in_port1: endpoint {
627 slave-mode;
628 remote-endpoint = <&ptm9_out_port>; 614 remote-endpoint = <&ptm9_out_port>;
629 }; 615 };
630 }; 616 };
631 617
632 port@3 { 618 port@2 {
633 reg = <2>; 619 reg = <2>;
634 funnel2_in_port2: endpoint { 620 funnel2_in_port2: endpoint {
635 slave-mode;
636 remote-endpoint = <&ptm10_out_port>; 621 remote-endpoint = <&ptm10_out_port>;
637 }; 622 };
638 }; 623 };
639 624
640 port@4 { 625 port@3 {
641 reg = <3>; 626 reg = <3>;
642 funnel2_in_port3: endpoint { 627 funnel2_in_port3: endpoint {
643 slave-mode;
644 remote-endpoint = <&ptm11_out_port>; 628 remote-endpoint = <&ptm11_out_port>;
645 }; 629 };
646 }; 630 };
@@ -653,48 +637,43 @@
653 637
654 clocks = <&clk_375m>; 638 clocks = <&clk_375m>;
655 clock-names = "apb_pclk"; 639 clock-names = "apb_pclk";
656 ports { 640 out-ports {
657 #address-cells = <1>; 641 port {
658 #size-cells = <0>;
659
660 /* funnel output port */
661 port@0 {
662 reg = <0>;
663 funnel3_out_port0: endpoint { 642 funnel3_out_port0: endpoint {
664 remote-endpoint = 643 remote-endpoint =
665 <&replicator3_in_port0>; 644 <&replicator3_in_port0>;
666 }; 645 };
667 }; 646 };
647 };
668 648
669 /* funnel input ports */ 649 in-ports {
670 port@1 { 650 #address-cells = <1>;
651 #size-cells = <0>;
652
653 port@0 {
671 reg = <0>; 654 reg = <0>;
672 funnel3_in_port0: endpoint { 655 funnel3_in_port0: endpoint {
673 slave-mode;
674 remote-endpoint = <&ptm12_out_port>; 656 remote-endpoint = <&ptm12_out_port>;
675 }; 657 };
676 }; 658 };
677 659
678 port@2 { 660 port@1 {
679 reg = <1>; 661 reg = <1>;
680 funnel3_in_port1: endpoint { 662 funnel3_in_port1: endpoint {
681 slave-mode;
682 remote-endpoint = <&ptm13_out_port>; 663 remote-endpoint = <&ptm13_out_port>;
683 }; 664 };
684 }; 665 };
685 666
686 port@3 { 667 port@2 {
687 reg = <2>; 668 reg = <2>;
688 funnel3_in_port2: endpoint { 669 funnel3_in_port2: endpoint {
689 slave-mode;
690 remote-endpoint = <&ptm14_out_port>; 670 remote-endpoint = <&ptm14_out_port>;
691 }; 671 };
692 }; 672 };
693 673
694 port@4 { 674 port@3 {
695 reg = <3>; 675 reg = <3>;
696 funnel3_in_port3: endpoint { 676 funnel3_in_port3: endpoint {
697 slave-mode;
698 remote-endpoint = <&ptm15_out_port>; 677 remote-endpoint = <&ptm15_out_port>;
699 }; 678 };
700 }; 679 };
@@ -707,50 +686,45 @@
707 686
708 clocks = <&clk_375m>; 687 clocks = <&clk_375m>;
709 clock-names = "apb_pclk"; 688 clock-names = "apb_pclk";
710 ports { 689 out-ports {
711 #address-cells = <1>; 690 port {
712 #size-cells = <0>;
713
714 /* funnel output port */
715 port@0 {
716 reg = <0>;
717 funnel4_out_port0: endpoint { 691 funnel4_out_port0: endpoint {
718 remote-endpoint = <&tpiu_in_port>; 692 remote-endpoint = <&tpiu_in_port>;
719 }; 693 };
720 }; 694 };
695 };
721 696
722 /* funnel input ports */ 697 in-ports {
723 port@1 { 698 #address-cells = <1>;
699 #size-cells = <0>;
700
701 port@0 {
724 reg = <0>; 702 reg = <0>;
725 funnel4_in_port0: endpoint { 703 funnel4_in_port0: endpoint {
726 slave-mode;
727 remote-endpoint = 704 remote-endpoint =
728 <&replicator0_out_port1>; 705 <&replicator0_out_port1>;
729 }; 706 };
730 }; 707 };
731 708
732 port@2 { 709 port@1 {
733 reg = <1>; 710 reg = <1>;
734 funnel4_in_port1: endpoint { 711 funnel4_in_port1: endpoint {
735 slave-mode;
736 remote-endpoint = 712 remote-endpoint =
737 <&replicator1_out_port1>; 713 <&replicator1_out_port1>;
738 }; 714 };
739 }; 715 };
740 716
741 port@3 { 717 port@2 {
742 reg = <2>; 718 reg = <2>;
743 funnel4_in_port2: endpoint { 719 funnel4_in_port2: endpoint {
744 slave-mode;
745 remote-endpoint = 720 remote-endpoint =
746 <&replicator2_out_port1>; 721 <&replicator2_out_port1>;
747 }; 722 };
748 }; 723 };
749 724
750 port@4 { 725 port@3 {
751 reg = <3>; 726 reg = <3>;
752 funnel4_in_port3: endpoint { 727 funnel4_in_port3: endpoint {
753 slave-mode;
754 remote-endpoint = 728 remote-endpoint =
755 <&replicator3_out_port1>; 729 <&replicator3_out_port1>;
756 }; 730 };
@@ -765,9 +739,11 @@
765 clocks = <&clk_375m>; 739 clocks = <&clk_375m>;
766 clock-names = "apb_pclk"; 740 clock-names = "apb_pclk";
767 cpu = <&CPU0>; 741 cpu = <&CPU0>;
768 port { 742 out-ports {
769 ptm0_out_port: endpoint { 743 port {
770 remote-endpoint = <&funnel0_in_port0>; 744 ptm0_out_port: endpoint {
745 remote-endpoint = <&funnel0_in_port0>;
746 };
771 }; 747 };
772 }; 748 };
773 }; 749 };
@@ -779,9 +755,11 @@
779 clocks = <&clk_375m>; 755 clocks = <&clk_375m>;
780 clock-names = "apb_pclk"; 756 clock-names = "apb_pclk";
781 cpu = <&CPU1>; 757 cpu = <&CPU1>;
782 port { 758 out-ports {
783 ptm1_out_port: endpoint { 759 port {
784 remote-endpoint = <&funnel0_in_port1>; 760 ptm1_out_port: endpoint {
761 remote-endpoint = <&funnel0_in_port1>;
762 };
785 }; 763 };
786 }; 764 };
787 }; 765 };
@@ -793,9 +771,11 @@
793 clocks = <&clk_375m>; 771 clocks = <&clk_375m>;
794 clock-names = "apb_pclk"; 772 clock-names = "apb_pclk";
795 cpu = <&CPU2>; 773 cpu = <&CPU2>;
796 port { 774 out-ports {
797 ptm2_out_port: endpoint { 775 port {
798 remote-endpoint = <&funnel0_in_port2>; 776 ptm2_out_port: endpoint {
777 remote-endpoint = <&funnel0_in_port2>;
778 };
799 }; 779 };
800 }; 780 };
801 }; 781 };
@@ -807,9 +787,11 @@
807 clocks = <&clk_375m>; 787 clocks = <&clk_375m>;
808 clock-names = "apb_pclk"; 788 clock-names = "apb_pclk";
809 cpu = <&CPU3>; 789 cpu = <&CPU3>;
810 port { 790 out-ports {
811 ptm3_out_port: endpoint { 791 port {
812 remote-endpoint = <&funnel0_in_port3>; 792 ptm3_out_port: endpoint {
793 remote-endpoint = <&funnel0_in_port3>;
794 };
813 }; 795 };
814 }; 796 };
815 }; 797 };
@@ -821,9 +803,11 @@
821 clocks = <&clk_375m>; 803 clocks = <&clk_375m>;
822 clock-names = "apb_pclk"; 804 clock-names = "apb_pclk";
823 cpu = <&CPU4>; 805 cpu = <&CPU4>;
824 port { 806 out-ports {
825 ptm4_out_port: endpoint { 807 port {
826 remote-endpoint = <&funnel1_in_port0>; 808 ptm4_out_port: endpoint {
809 remote-endpoint = <&funnel1_in_port0>;
810 };
827 }; 811 };
828 }; 812 };
829 }; 813 };
@@ -835,9 +819,11 @@
835 clocks = <&clk_375m>; 819 clocks = <&clk_375m>;
836 clock-names = "apb_pclk"; 820 clock-names = "apb_pclk";
837 cpu = <&CPU5>; 821 cpu = <&CPU5>;
838 port { 822 out-ports {
839 ptm5_out_port: endpoint { 823 port {
840 remote-endpoint = <&funnel1_in_port1>; 824 ptm5_out_port: endpoint {
825 remote-endpoint = <&funnel1_in_port1>;
826 };
841 }; 827 };
842 }; 828 };
843 }; 829 };
@@ -849,9 +835,11 @@
849 clocks = <&clk_375m>; 835 clocks = <&clk_375m>;
850 clock-names = "apb_pclk"; 836 clock-names = "apb_pclk";
851 cpu = <&CPU6>; 837 cpu = <&CPU6>;
852 port { 838 out-ports {
853 ptm6_out_port: endpoint { 839 port {
854 remote-endpoint = <&funnel1_in_port2>; 840 ptm6_out_port: endpoint {
841 remote-endpoint = <&funnel1_in_port2>;
842 };
855 }; 843 };
856 }; 844 };
857 }; 845 };
@@ -863,9 +851,11 @@
863 clocks = <&clk_375m>; 851 clocks = <&clk_375m>;
864 clock-names = "apb_pclk"; 852 clock-names = "apb_pclk";
865 cpu = <&CPU7>; 853 cpu = <&CPU7>;
866 port { 854 out-ports {
867 ptm7_out_port: endpoint { 855 port {
868 remote-endpoint = <&funnel1_in_port3>; 856 ptm7_out_port: endpoint {
857 remote-endpoint = <&funnel1_in_port3>;
858 };
869 }; 859 };
870 }; 860 };
871 }; 861 };
@@ -877,9 +867,11 @@
877 clocks = <&clk_375m>; 867 clocks = <&clk_375m>;
878 clock-names = "apb_pclk"; 868 clock-names = "apb_pclk";
879 cpu = <&CPU8>; 869 cpu = <&CPU8>;
880 port { 870 out-ports {
881 ptm8_out_port: endpoint { 871 port {
882 remote-endpoint = <&funnel2_in_port0>; 872 ptm8_out_port: endpoint {
873 remote-endpoint = <&funnel2_in_port0>;
874 };
883 }; 875 };
884 }; 876 };
885 }; 877 };
@@ -890,9 +882,11 @@
890 clocks = <&clk_375m>; 882 clocks = <&clk_375m>;
891 clock-names = "apb_pclk"; 883 clock-names = "apb_pclk";
892 cpu = <&CPU9>; 884 cpu = <&CPU9>;
893 port { 885 out-ports {
894 ptm9_out_port: endpoint { 886 port {
895 remote-endpoint = <&funnel2_in_port1>; 887 ptm9_out_port: endpoint {
888 remote-endpoint = <&funnel2_in_port1>;
889 };
896 }; 890 };
897 }; 891 };
898 }; 892 };
@@ -904,9 +898,11 @@
904 clocks = <&clk_375m>; 898 clocks = <&clk_375m>;
905 clock-names = "apb_pclk"; 899 clock-names = "apb_pclk";
906 cpu = <&CPU10>; 900 cpu = <&CPU10>;
907 port { 901 out-ports {
908 ptm10_out_port: endpoint { 902 port {
909 remote-endpoint = <&funnel2_in_port2>; 903 ptm10_out_port: endpoint {
904 remote-endpoint = <&funnel2_in_port2>;
905 };
910 }; 906 };
911 }; 907 };
912 }; 908 };
@@ -918,9 +914,11 @@
918 clocks = <&clk_375m>; 914 clocks = <&clk_375m>;
919 clock-names = "apb_pclk"; 915 clock-names = "apb_pclk";
920 cpu = <&CPU11>; 916 cpu = <&CPU11>;
921 port { 917 out-ports {
922 ptm11_out_port: endpoint { 918 port {
923 remote-endpoint = <&funnel2_in_port3>; 919 ptm11_out_port: endpoint {
920 remote-endpoint = <&funnel2_in_port3>;
921 };
924 }; 922 };
925 }; 923 };
926 }; 924 };
@@ -932,9 +930,11 @@
932 clocks = <&clk_375m>; 930 clocks = <&clk_375m>;
933 clock-names = "apb_pclk"; 931 clock-names = "apb_pclk";
934 cpu = <&CPU12>; 932 cpu = <&CPU12>;
935 port { 933 out-ports {
936 ptm12_out_port: endpoint { 934 port {
937 remote-endpoint = <&funnel3_in_port0>; 935 ptm12_out_port: endpoint {
936 remote-endpoint = <&funnel3_in_port0>;
937 };
938 }; 938 };
939 }; 939 };
940 }; 940 };
@@ -946,9 +946,11 @@
946 clocks = <&clk_375m>; 946 clocks = <&clk_375m>;
947 clock-names = "apb_pclk"; 947 clock-names = "apb_pclk";
948 cpu = <&CPU13>; 948 cpu = <&CPU13>;
949 port { 949 out-ports {
950 ptm13_out_port: endpoint { 950 port {
951 remote-endpoint = <&funnel3_in_port1>; 951 ptm13_out_port: endpoint {
952 remote-endpoint = <&funnel3_in_port1>;
953 };
952 }; 954 };
953 }; 955 };
954 }; 956 };
@@ -960,9 +962,11 @@
960 clocks = <&clk_375m>; 962 clocks = <&clk_375m>;
961 clock-names = "apb_pclk"; 963 clock-names = "apb_pclk";
962 cpu = <&CPU14>; 964 cpu = <&CPU14>;
963 port { 965 out-ports {
964 ptm14_out_port: endpoint { 966 port {
965 remote-endpoint = <&funnel3_in_port2>; 967 ptm14_out_port: endpoint {
968 remote-endpoint = <&funnel3_in_port2>;
969 };
966 }; 970 };
967 }; 971 };
968 }; 972 };
@@ -974,9 +978,11 @@
974 clocks = <&clk_375m>; 978 clocks = <&clk_375m>;
975 clock-names = "apb_pclk"; 979 clock-names = "apb_pclk";
976 cpu = <&CPU15>; 980 cpu = <&CPU15>;
977 port { 981 out-ports {
978 ptm15_out_port: endpoint { 982 port {
979 remote-endpoint = <&funnel3_in_port3>; 983 ptm15_out_port: endpoint {
984 remote-endpoint = <&funnel3_in_port3>;
985 };
980 }; 986 };
981 }; 987 };
982 }; 988 };
diff --git a/arch/arm/boot/dts/imx1.dtsi b/arch/arm/boot/dts/imx1.dtsi
index 3edc7b5550d8..b00ece16b853 100644
--- a/arch/arm/boot/dts/imx1.dtsi
+++ b/arch/arm/boot/dts/imx1.dtsi
@@ -164,7 +164,7 @@
164 reg = <0x00210000 0x10000>; 164 reg = <0x00210000 0x10000>;
165 ranges; 165 ranges;
166 166
167 cspi1: cspi@213000 { 167 cspi1: spi@213000 {
168 #address-cells = <1>; 168 #address-cells = <1>;
169 #size-cells = <0>; 169 #size-cells = <0>;
170 compatible = "fsl,imx1-cspi"; 170 compatible = "fsl,imx1-cspi";
@@ -186,7 +186,7 @@
186 status = "disabled"; 186 status = "disabled";
187 }; 187 };
188 188
189 cspi2: cspi@219000 { 189 cspi2: spi@219000 {
190 #address-cells = <1>; 190 #address-cells = <1>;
191 #size-cells = <0>; 191 #size-cells = <0>;
192 compatible = "fsl,imx1-cspi"; 192 compatible = "fsl,imx1-cspi";
diff --git a/arch/arm/boot/dts/imx23-evk.dts b/arch/arm/boot/dts/imx23-evk.dts
index ad2ae25b7b4d..98efe1aeb26a 100644
--- a/arch/arm/boot/dts/imx23-evk.dts
+++ b/arch/arm/boot/dts/imx23-evk.dts
@@ -58,7 +58,7 @@
58 status = "okay"; 58 status = "okay";
59 }; 59 };
60 60
61 ssp0: ssp@80010000 { 61 ssp0: spi@80010000 {
62 compatible = "fsl,imx23-mmc"; 62 compatible = "fsl,imx23-mmc";
63 pinctrl-names = "default"; 63 pinctrl-names = "default";
64 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; 64 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts
index e9351774c619..31b1e3581ac0 100644
--- a/arch/arm/boot/dts/imx23-olinuxino.dts
+++ b/arch/arm/boot/dts/imx23-olinuxino.dts
@@ -25,7 +25,7 @@
25 25
26 apb@80000000 { 26 apb@80000000 {
27 apbh@80000000 { 27 apbh@80000000 {
28 ssp0: ssp@80010000 { 28 ssp0: spi@80010000 {
29 compatible = "fsl,imx23-mmc"; 29 compatible = "fsl,imx23-mmc";
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
31 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; 31 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
@@ -59,7 +59,7 @@
59 }; 59 };
60 }; 60 };
61 61
62 ssp1: ssp@80034000 { 62 ssp1: spi@80034000 {
63 #address-cells = <1>; 63 #address-cells = <1>;
64 #size-cells = <0>; 64 #size-cells = <0>;
65 compatible = "fsl,imx23-spi"; 65 compatible = "fsl,imx23-spi";
diff --git a/arch/arm/boot/dts/imx23-sansa.dts b/arch/arm/boot/dts/imx23-sansa.dts
index 67de7863ad79..faf701b2adb2 100644
--- a/arch/arm/boot/dts/imx23-sansa.dts
+++ b/arch/arm/boot/dts/imx23-sansa.dts
@@ -55,7 +55,7 @@
55 55
56 apb@80000000 { 56 apb@80000000 {
57 apbh@80000000 { 57 apbh@80000000 {
58 ssp0: ssp@80010000 { 58 ssp0: spi@80010000 {
59 compatible = "fsl,imx23-mmc"; 59 compatible = "fsl,imx23-mmc";
60 pinctrl-names = "default"; 60 pinctrl-names = "default";
61 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; 61 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
@@ -65,7 +65,7 @@
65 status = "okay"; 65 status = "okay";
66 }; 66 };
67 67
68 ssp1: ssp@80034000 { 68 ssp1: spi@80034000 {
69 compatible = "fsl,imx23-mmc"; 69 compatible = "fsl,imx23-mmc";
70 pinctrl-names = "default"; 70 pinctrl-names = "default";
71 pinctrl-0 = <&mmc1_8bit_pins_a>; 71 pinctrl-0 = <&mmc1_8bit_pins_a>;
diff --git a/arch/arm/boot/dts/imx23-stmp378x_devb.dts b/arch/arm/boot/dts/imx23-stmp378x_devb.dts
index 95c7b918f6d6..2ff6cdf71a55 100644
--- a/arch/arm/boot/dts/imx23-stmp378x_devb.dts
+++ b/arch/arm/boot/dts/imx23-stmp378x_devb.dts
@@ -22,7 +22,7 @@
22 22
23 apb@80000000 { 23 apb@80000000 {
24 apbh@80000000 { 24 apbh@80000000 {
25 ssp0: ssp@80010000 { 25 ssp0: spi@80010000 {
26 compatible = "fsl,imx23-mmc"; 26 compatible = "fsl,imx23-mmc";
27 pinctrl-names = "default"; 27 pinctrl-names = "default";
28 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; 28 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
diff --git a/arch/arm/boot/dts/imx23-xfi3.dts b/arch/arm/boot/dts/imx23-xfi3.dts
index 9616e500b996..db53089fb7fb 100644
--- a/arch/arm/boot/dts/imx23-xfi3.dts
+++ b/arch/arm/boot/dts/imx23-xfi3.dts
@@ -54,7 +54,7 @@
54 54
55 apb@80000000 { 55 apb@80000000 {
56 apbh@80000000 { 56 apbh@80000000 {
57 ssp0: ssp@80010000 { 57 ssp0: spi@80010000 {
58 compatible = "fsl,imx23-mmc"; 58 compatible = "fsl,imx23-mmc";
59 pinctrl-names = "default"; 59 pinctrl-names = "default";
60 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>; 60 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
@@ -64,7 +64,7 @@
64 status = "okay"; 64 status = "okay";
65 }; 65 };
66 66
67 ssp1: ssp@80034000 { 67 ssp1: spi@80034000 {
68 compatible = "fsl,imx23-mmc"; 68 compatible = "fsl,imx23-mmc";
69 pinctrl-names = "default"; 69 pinctrl-names = "default";
70 pinctrl-0 = <&mmc1_4bit_pins_a>; 70 pinctrl-0 = <&mmc1_4bit_pins_a>;
diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
index 71bfd2b15609..ea259927eef6 100644
--- a/arch/arm/boot/dts/imx23.dtsi
+++ b/arch/arm/boot/dts/imx23.dtsi
@@ -93,7 +93,7 @@
93 status = "disabled"; 93 status = "disabled";
94 }; 94 };
95 95
96 ssp0: ssp@80010000 { 96 ssp0: spi@80010000 {
97 reg = <0x80010000 0x2000>; 97 reg = <0x80010000 0x2000>;
98 interrupts = <15>; 98 interrupts = <15>;
99 clocks = <&clks 33>; 99 clocks = <&clks 33>;
@@ -457,7 +457,7 @@
457 status = "disabled"; 457 status = "disabled";
458 }; 458 };
459 459
460 ssp1: ssp@80034000 { 460 ssp1: spi@80034000 {
461 reg = <0x80034000 0x2000>; 461 reg = <0x80034000 0x2000>;
462 interrupts = <2>; 462 interrupts = <2>;
463 clocks = <&clks 33>; 463 clocks = <&clks 33>;
diff --git a/arch/arm/boot/dts/imx25.dtsi b/arch/arm/boot/dts/imx25.dtsi
index 85c15ee63272..b25309d26ea5 100644
--- a/arch/arm/boot/dts/imx25.dtsi
+++ b/arch/arm/boot/dts/imx25.dtsi
@@ -168,7 +168,7 @@
168 status = "disabled"; 168 status = "disabled";
169 }; 169 };
170 170
171 spi1: cspi@43fa4000 { 171 spi1: spi@43fa4000 {
172 #address-cells = <1>; 172 #address-cells = <1>;
173 #size-cells = <0>; 173 #size-cells = <0>;
174 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi"; 174 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi";
@@ -209,7 +209,7 @@
209 reg = <0x50000000 0x40000>; 209 reg = <0x50000000 0x40000>;
210 ranges; 210 ranges;
211 211
212 spi3: cspi@50004000 { 212 spi3: spi@50004000 {
213 #address-cells = <1>; 213 #address-cells = <1>;
214 #size-cells = <0>; 214 #size-cells = <0>;
215 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi"; 215 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi";
@@ -238,7 +238,7 @@
238 status = "disabled"; 238 status = "disabled";
239 }; 239 };
240 240
241 spi2: cspi@50010000 { 241 spi2: spi@50010000 {
242 #address-cells = <1>; 242 #address-cells = <1>;
243 #size-cells = <0>; 243 #size-cells = <0>;
244 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi"; 244 compatible = "fsl,imx25-cspi", "fsl,imx35-cspi";
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi
index 753d88df1627..151b0eb17dda 100644
--- a/arch/arm/boot/dts/imx27.dtsi
+++ b/arch/arm/boot/dts/imx27.dtsi
@@ -209,7 +209,7 @@
209 status = "disabled"; 209 status = "disabled";
210 }; 210 };
211 211
212 cspi1: cspi@1000e000 { 212 cspi1: spi@1000e000 {
213 #address-cells = <1>; 213 #address-cells = <1>;
214 #size-cells = <0>; 214 #size-cells = <0>;
215 compatible = "fsl,imx27-cspi"; 215 compatible = "fsl,imx27-cspi";
@@ -221,7 +221,7 @@
221 status = "disabled"; 221 status = "disabled";
222 }; 222 };
223 223
224 cspi2: cspi@1000f000 { 224 cspi2: spi@1000f000 {
225 #address-cells = <1>; 225 #address-cells = <1>;
226 #size-cells = <0>; 226 #size-cells = <0>;
227 compatible = "fsl,imx27-cspi"; 227 compatible = "fsl,imx27-cspi";
@@ -373,7 +373,7 @@
373 status = "disabled"; 373 status = "disabled";
374 }; 374 };
375 375
376 cspi3: cspi@10017000 { 376 cspi3: spi@10017000 {
377 #address-cells = <1>; 377 #address-cells = <1>;
378 #size-cells = <0>; 378 #size-cells = <0>;
379 compatible = "fsl,imx27-cspi"; 379 compatible = "fsl,imx27-cspi";
diff --git a/arch/arm/boot/dts/imx28-apf28dev.dts b/arch/arm/boot/dts/imx28-apf28dev.dts
index c4fadbc1b400..8df5ec470376 100644
--- a/arch/arm/boot/dts/imx28-apf28dev.dts
+++ b/arch/arm/boot/dts/imx28-apf28dev.dts
@@ -18,7 +18,7 @@
18 18
19 apb@80000000 { 19 apb@80000000 {
20 apbh@80000000 { 20 apbh@80000000 {
21 ssp0: ssp@80010000 { 21 ssp0: spi@80010000 {
22 compatible = "fsl,imx28-mmc"; 22 compatible = "fsl,imx28-mmc";
23 pinctrl-names = "default"; 23 pinctrl-names = "default";
24 pinctrl-0 = <&mmc0_4bit_pins_a 24 pinctrl-0 = <&mmc0_4bit_pins_a
@@ -27,7 +27,7 @@
27 status = "okay"; 27 status = "okay";
28 }; 28 };
29 29
30 ssp2: ssp@80014000 { 30 ssp2: spi@80014000 {
31 compatible = "fsl,imx28-spi"; 31 compatible = "fsl,imx28-spi";
32 pinctrl-names = "default"; 32 pinctrl-names = "default";
33 pinctrl-0 = <&spi2_pins_a>; 33 pinctrl-0 = <&spi2_pins_a>;
diff --git a/arch/arm/boot/dts/imx28-apx4devkit.dts b/arch/arm/boot/dts/imx28-apx4devkit.dts
index 96faa53ba44c..6c9b498305c0 100644
--- a/arch/arm/boot/dts/imx28-apx4devkit.dts
+++ b/arch/arm/boot/dts/imx28-apx4devkit.dts
@@ -18,7 +18,7 @@
18 status = "okay"; 18 status = "okay";
19 }; 19 };
20 20
21 ssp0: ssp@80010000 { 21 ssp0: spi@80010000 {
22 compatible = "fsl,imx28-mmc"; 22 compatible = "fsl,imx28-mmc";
23 pinctrl-names = "default"; 23 pinctrl-names = "default";
24 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>; 24 pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
@@ -26,7 +26,7 @@
26 status = "okay"; 26 status = "okay";
27 }; 27 };
28 28
29 ssp2: ssp@80014000 { 29 ssp2: spi@80014000 {
30 compatible = "fsl,imx28-mmc"; 30 compatible = "fsl,imx28-mmc";
31 pinctrl-names = "default"; 31 pinctrl-names = "default";
32 pinctrl-0 = <&mmc2_4bit_pins_apx4 &mmc2_sck_cfg_apx4>; 32 pinctrl-0 = <&mmc2_4bit_pins_apx4 &mmc2_sck_cfg_apx4>;
diff --git a/arch/arm/boot/dts/imx28-cfa10036.dts b/arch/arm/boot/dts/imx28-cfa10036.dts
index e54f5aba7091..8337ca21e281 100644
--- a/arch/arm/boot/dts/imx28-cfa10036.dts
+++ b/arch/arm/boot/dts/imx28-cfa10036.dts
@@ -66,7 +66,7 @@
66 66
67 }; 67 };
68 68
69 ssp0: ssp@80010000 { 69 ssp0: spi@80010000 {
70 compatible = "fsl,imx28-mmc"; 70 compatible = "fsl,imx28-mmc";
71 pinctrl-names = "default"; 71 pinctrl-names = "default";
72 pinctrl-0 = <&mmc0_4bit_pins_a 72 pinctrl-0 = <&mmc0_4bit_pins_a
diff --git a/arch/arm/boot/dts/imx28-duckbill-2-485.dts b/arch/arm/boot/dts/imx28-duckbill-2-485.dts
index 97084e463d7c..f4f2b3d16c8e 100644
--- a/arch/arm/boot/dts/imx28-duckbill-2-485.dts
+++ b/arch/arm/boot/dts/imx28-duckbill-2-485.dts
@@ -25,7 +25,7 @@
25 25
26 apb@80000000 { 26 apb@80000000 {
27 apbh@80000000 { 27 apbh@80000000 {
28 ssp0: ssp@80010000 { 28 ssp0: spi@80010000 {
29 compatible = "fsl,imx28-mmc"; 29 compatible = "fsl,imx28-mmc";
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
31 pinctrl-0 = <&mmc0_8bit_pins_a 31 pinctrl-0 = <&mmc0_8bit_pins_a
@@ -36,7 +36,7 @@
36 non-removable; 36 non-removable;
37 }; 37 };
38 38
39 ssp2: ssp@80014000 { 39 ssp2: spi@80014000 {
40 compatible = "fsl,imx28-mmc"; 40 compatible = "fsl,imx28-mmc";
41 pinctrl-names = "default"; 41 pinctrl-names = "default";
42 pinctrl-0 = <&mmc2_4bit_pins_b 42 pinctrl-0 = <&mmc2_4bit_pins_b
diff --git a/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts b/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts
index 22215337f72a..71d0fcbc2d8c 100644
--- a/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts
+++ b/arch/arm/boot/dts/imx28-duckbill-2-enocean.dts
@@ -26,7 +26,7 @@
26 26
27 apb@80000000 { 27 apb@80000000 {
28 apbh@80000000 { 28 apbh@80000000 {
29 ssp0: ssp@80010000 { 29 ssp0: spi@80010000 {
30 compatible = "fsl,imx28-mmc"; 30 compatible = "fsl,imx28-mmc";
31 pinctrl-names = "default"; 31 pinctrl-names = "default";
32 pinctrl-0 = <&mmc0_8bit_pins_a 32 pinctrl-0 = <&mmc0_8bit_pins_a
@@ -37,7 +37,7 @@
37 non-removable; 37 non-removable;
38 }; 38 };
39 39
40 ssp2: ssp@80014000 { 40 ssp2: spi@80014000 {
41 compatible = "fsl,imx28-mmc"; 41 compatible = "fsl,imx28-mmc";
42 pinctrl-names = "default"; 42 pinctrl-names = "default";
43 pinctrl-0 = <&mmc2_4bit_pins_b 43 pinctrl-0 = <&mmc2_4bit_pins_b
diff --git a/arch/arm/boot/dts/imx28-duckbill-2-spi.dts b/arch/arm/boot/dts/imx28-duckbill-2-spi.dts
index 13e7b134da9e..6580ec6e26ba 100644
--- a/arch/arm/boot/dts/imx28-duckbill-2-spi.dts
+++ b/arch/arm/boot/dts/imx28-duckbill-2-spi.dts
@@ -29,7 +29,7 @@
29 29
30 apb@80000000 { 30 apb@80000000 {
31 apbh@80000000 { 31 apbh@80000000 {
32 ssp0: ssp@80010000 { 32 ssp0: spi@80010000 {
33 compatible = "fsl,imx28-mmc"; 33 compatible = "fsl,imx28-mmc";
34 pinctrl-names = "default"; 34 pinctrl-names = "default";
35 pinctrl-0 = <&mmc0_8bit_pins_a 35 pinctrl-0 = <&mmc0_8bit_pins_a
@@ -40,7 +40,7 @@
40 non-removable; 40 non-removable;
41 }; 41 };
42 42
43 ssp2: ssp@80014000 { 43 ssp2: spi@80014000 {
44 compatible = "fsl,imx28-spi"; 44 compatible = "fsl,imx28-spi";
45 pinctrl-names = "default"; 45 pinctrl-names = "default";
46 pinctrl-0 = <&spi2_pins_a>; 46 pinctrl-0 = <&spi2_pins_a>;
diff --git a/arch/arm/boot/dts/imx28-duckbill-2.dts b/arch/arm/boot/dts/imx28-duckbill-2.dts
index 88556c93b00f..693634edae99 100644
--- a/arch/arm/boot/dts/imx28-duckbill-2.dts
+++ b/arch/arm/boot/dts/imx28-duckbill-2.dts
@@ -25,7 +25,7 @@
25 25
26 apb@80000000 { 26 apb@80000000 {
27 apbh@80000000 { 27 apbh@80000000 {
28 ssp0: ssp@80010000 { 28 ssp0: spi@80010000 {
29 compatible = "fsl,imx28-mmc"; 29 compatible = "fsl,imx28-mmc";
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
31 pinctrl-0 = <&mmc0_8bit_pins_a 31 pinctrl-0 = <&mmc0_8bit_pins_a
@@ -36,7 +36,7 @@
36 non-removable; 36 non-removable;
37 }; 37 };
38 38
39 ssp2: ssp@80014000 { 39 ssp2: spi@80014000 {
40 compatible = "fsl,imx28-mmc"; 40 compatible = "fsl,imx28-mmc";
41 pinctrl-names = "default"; 41 pinctrl-names = "default";
42 pinctrl-0 = <&mmc2_4bit_pins_b 42 pinctrl-0 = <&mmc2_4bit_pins_b
diff --git a/arch/arm/boot/dts/imx28-duckbill.dts b/arch/arm/boot/dts/imx28-duckbill.dts
index f286bfe699be..16f524428ed7 100644
--- a/arch/arm/boot/dts/imx28-duckbill.dts
+++ b/arch/arm/boot/dts/imx28-duckbill.dts
@@ -24,7 +24,7 @@
24 24
25 apb@80000000 { 25 apb@80000000 {
26 apbh@80000000 { 26 apbh@80000000 {
27 ssp0: ssp@80010000 { 27 ssp0: spi@80010000 {
28 compatible = "fsl,imx28-mmc"; 28 compatible = "fsl,imx28-mmc";
29 pinctrl-names = "default"; 29 pinctrl-names = "default";
30 pinctrl-0 = <&mmc0_4bit_pins_a 30 pinctrl-0 = <&mmc0_4bit_pins_a
@@ -34,7 +34,7 @@
34 status = "okay"; 34 status = "okay";
35 }; 35 };
36 36
37 ssp2: ssp@80014000 { 37 ssp2: spi@80014000 {
38 compatible = "fsl,imx28-spi"; 38 compatible = "fsl,imx28-spi";
39 pinctrl-names = "default"; 39 pinctrl-names = "default";
40 pinctrl-0 = <&spi2_pins_a>; 40 pinctrl-0 = <&spi2_pins_a>;
diff --git a/arch/arm/boot/dts/imx28-evk.dts b/arch/arm/boot/dts/imx28-evk.dts
index 93ab5bdfe068..5778300f44e8 100644
--- a/arch/arm/boot/dts/imx28-evk.dts
+++ b/arch/arm/boot/dts/imx28-evk.dts
@@ -103,7 +103,7 @@
103 status = "okay"; 103 status = "okay";
104 }; 104 };
105 105
106 ssp0: ssp@80010000 { 106 ssp0: spi@80010000 {
107 compatible = "fsl,imx28-mmc"; 107 compatible = "fsl,imx28-mmc";
108 pinctrl-names = "default"; 108 pinctrl-names = "default";
109 pinctrl-0 = <&mmc0_8bit_pins_a 109 pinctrl-0 = <&mmc0_8bit_pins_a
@@ -114,13 +114,13 @@
114 status = "okay"; 114 status = "okay";
115 }; 115 };
116 116
117 ssp1: ssp@80012000 { 117 ssp1: spi@80012000 {
118 compatible = "fsl,imx28-mmc"; 118 compatible = "fsl,imx28-mmc";
119 bus-width = <8>; 119 bus-width = <8>;
120 wp-gpios = <&gpio0 28 0>; 120 wp-gpios = <&gpio0 28 0>;
121 }; 121 };
122 122
123 ssp2: ssp@80014000 { 123 ssp2: spi@80014000 {
124 #address-cells = <1>; 124 #address-cells = <1>;
125 #size-cells = <0>; 125 #size-cells = <0>;
126 compatible = "fsl,imx28-spi"; 126 compatible = "fsl,imx28-spi";
diff --git a/arch/arm/boot/dts/imx28-m28cu3.dts b/arch/arm/boot/dts/imx28-m28cu3.dts
index 3bb5ffc644d6..8883d36a51b5 100644
--- a/arch/arm/boot/dts/imx28-m28cu3.dts
+++ b/arch/arm/boot/dts/imx28-m28cu3.dts
@@ -41,7 +41,7 @@
41 }; 41 };
42 }; 42 };
43 43
44 ssp0: ssp@80010000 { 44 ssp0: spi@80010000 {
45 compatible = "fsl,imx28-mmc"; 45 compatible = "fsl,imx28-mmc";
46 pinctrl-names = "default"; 46 pinctrl-names = "default";
47 pinctrl-0 = <&mmc0_4bit_pins_a 47 pinctrl-0 = <&mmc0_4bit_pins_a
@@ -52,7 +52,7 @@
52 status = "okay"; 52 status = "okay";
53 }; 53 };
54 54
55 ssp2: ssp@80014000 { 55 ssp2: spi@80014000 {
56 compatible = "fsl,imx28-mmc"; 56 compatible = "fsl,imx28-mmc";
57 pinctrl-names = "default"; 57 pinctrl-names = "default";
58 pinctrl-0 = <&mmc2_4bit_pins_a 58 pinctrl-0 = <&mmc2_4bit_pins_a
diff --git a/arch/arm/boot/dts/imx28-m28evk.dts b/arch/arm/boot/dts/imx28-m28evk.dts
index 7d97a0ce74a3..893886d17b2d 100644
--- a/arch/arm/boot/dts/imx28-m28evk.dts
+++ b/arch/arm/boot/dts/imx28-m28evk.dts
@@ -18,7 +18,7 @@
18 18
19 apb@80000000 { 19 apb@80000000 {
20 apbh@80000000 { 20 apbh@80000000 {
21 ssp0: ssp@80010000 { 21 ssp0: spi@80010000 {
22 compatible = "fsl,imx28-mmc"; 22 compatible = "fsl,imx28-mmc";
23 pinctrl-names = "default"; 23 pinctrl-names = "default";
24 pinctrl-0 = <&mmc0_8bit_pins_a 24 pinctrl-0 = <&mmc0_8bit_pins_a
@@ -30,7 +30,7 @@
30 status = "okay"; 30 status = "okay";
31 }; 31 };
32 32
33 ssp2: ssp@80014000 { 33 ssp2: spi@80014000 {
34 #address-cells = <1>; 34 #address-cells = <1>;
35 #size-cells = <0>; 35 #size-cells = <0>;
36 compatible = "fsl,imx28-spi"; 36 compatible = "fsl,imx28-spi";
diff --git a/arch/arm/boot/dts/imx28-sps1.dts b/arch/arm/boot/dts/imx28-sps1.dts
index 2393e83979e0..ea9212f6ecda 100644
--- a/arch/arm/boot/dts/imx28-sps1.dts
+++ b/arch/arm/boot/dts/imx28-sps1.dts
@@ -40,7 +40,7 @@
40 40
41 }; 41 };
42 42
43 ssp0: ssp@80010000 { 43 ssp0: spi@80010000 {
44 compatible = "fsl,imx28-mmc"; 44 compatible = "fsl,imx28-mmc";
45 pinctrl-names = "default"; 45 pinctrl-names = "default";
46 pinctrl-0 = <&mmc0_4bit_pins_a>; 46 pinctrl-0 = <&mmc0_4bit_pins_a>;
@@ -48,7 +48,7 @@
48 status = "okay"; 48 status = "okay";
49 }; 49 };
50 50
51 ssp2: ssp@80014000 { 51 ssp2: spi@80014000 {
52 #address-cells = <1>; 52 #address-cells = <1>;
53 #size-cells = <0>; 53 #size-cells = <0>;
54 compatible = "fsl,imx28-spi"; 54 compatible = "fsl,imx28-spi";
diff --git a/arch/arm/boot/dts/imx28-ts4600.dts b/arch/arm/boot/dts/imx28-ts4600.dts
index f8a09a8c2c36..dccdd6bcd0b2 100644
--- a/arch/arm/boot/dts/imx28-ts4600.dts
+++ b/arch/arm/boot/dts/imx28-ts4600.dts
@@ -25,7 +25,7 @@
25 25
26 apb@80000000 { 26 apb@80000000 {
27 apbh@80000000 { 27 apbh@80000000 {
28 ssp0: ssp@80010000 { 28 ssp0: spi@80010000 {
29 compatible = "fsl,imx28-mmc"; 29 compatible = "fsl,imx28-mmc";
30 pinctrl-names = "default"; 30 pinctrl-names = "default";
31 pinctrl-0 = <&mmc0_4bit_pins_a 31 pinctrl-0 = <&mmc0_4bit_pins_a
diff --git a/arch/arm/boot/dts/imx28.dtsi b/arch/arm/boot/dts/imx28.dtsi
index 5107fdc482ea..2b7efb659fc0 100644
--- a/arch/arm/boot/dts/imx28.dtsi
+++ b/arch/arm/boot/dts/imx28.dtsi
@@ -117,7 +117,7 @@
117 status = "disabled"; 117 status = "disabled";
118 }; 118 };
119 119
120 ssp0: ssp@80010000 { 120 ssp0: spi@80010000 {
121 #address-cells = <1>; 121 #address-cells = <1>;
122 #size-cells = <0>; 122 #size-cells = <0>;
123 reg = <0x80010000 0x2000>; 123 reg = <0x80010000 0x2000>;
@@ -128,7 +128,7 @@
128 status = "disabled"; 128 status = "disabled";
129 }; 129 };
130 130
131 ssp1: ssp@80012000 { 131 ssp1: spi@80012000 {
132 #address-cells = <1>; 132 #address-cells = <1>;
133 #size-cells = <0>; 133 #size-cells = <0>;
134 reg = <0x80012000 0x2000>; 134 reg = <0x80012000 0x2000>;
@@ -139,7 +139,7 @@
139 status = "disabled"; 139 status = "disabled";
140 }; 140 };
141 141
142 ssp2: ssp@80014000 { 142 ssp2: spi@80014000 {
143 #address-cells = <1>; 143 #address-cells = <1>;
144 #size-cells = <0>; 144 #size-cells = <0>;
145 reg = <0x80014000 0x2000>; 145 reg = <0x80014000 0x2000>;
@@ -150,7 +150,7 @@
150 status = "disabled"; 150 status = "disabled";
151 }; 151 };
152 152
153 ssp3: ssp@80016000 { 153 ssp3: spi@80016000 {
154 #address-cells = <1>; 154 #address-cells = <1>;
155 #size-cells = <0>; 155 #size-cells = <0>;
156 reg = <0x80016000 0x2000>; 156 reg = <0x80016000 0x2000>;
diff --git a/arch/arm/boot/dts/imx31.dtsi b/arch/arm/boot/dts/imx31.dtsi
index ca1419ca303c..af7afccf5f2f 100644
--- a/arch/arm/boot/dts/imx31.dtsi
+++ b/arch/arm/boot/dts/imx31.dtsi
@@ -206,7 +206,7 @@
206 status = "disabled"; 206 status = "disabled";
207 }; 207 };
208 208
209 spi2: cspi@50010000 { 209 spi2: spi@50010000 {
210 compatible = "fsl,imx31-cspi"; 210 compatible = "fsl,imx31-cspi";
211 reg = <0x50010000 0x4000>; 211 reg = <0x50010000 0x4000>;
212 interrupts = <13>; 212 interrupts = <13>;
@@ -241,7 +241,7 @@
241 #clock-cells = <1>; 241 #clock-cells = <1>;
242 }; 242 };
243 243
244 spi3: cspi@53f84000 { 244 spi3: spi@53f84000 {
245 compatible = "fsl,imx31-cspi"; 245 compatible = "fsl,imx31-cspi";
246 reg = <0x53f84000 0x4000>; 246 reg = <0x53f84000 0x4000>;
247 interrupts = <17>; 247 interrupts = <17>;
diff --git a/arch/arm/boot/dts/imx35.dtsi b/arch/arm/boot/dts/imx35.dtsi
index 1c50b785cad4..a1c3d28e8771 100644
--- a/arch/arm/boot/dts/imx35.dtsi
+++ b/arch/arm/boot/dts/imx35.dtsi
@@ -133,7 +133,7 @@
133 status = "disabled"; 133 status = "disabled";
134 }; 134 };
135 135
136 spi1: cspi@43fa4000 { 136 spi1: spi@43fa4000 {
137 #address-cells = <1>; 137 #address-cells = <1>;
138 #size-cells = <0>; 138 #size-cells = <0>;
139 compatible = "fsl,imx35-cspi"; 139 compatible = "fsl,imx35-cspi";
@@ -174,7 +174,7 @@
174 status = "disabled"; 174 status = "disabled";
175 }; 175 };
176 176
177 spi2: cspi@50010000 { 177 spi2: spi@50010000 {
178 #address-cells = <1>; 178 #address-cells = <1>;
179 #size-cells = <0>; 179 #size-cells = <0>;
180 compatible = "fsl,imx35-cspi"; 180 compatible = "fsl,imx35-cspi";
diff --git a/arch/arm/boot/dts/imx50.dtsi b/arch/arm/boot/dts/imx50.dtsi
index 7fae2ffb76fe..95b7fba58300 100644
--- a/arch/arm/boot/dts/imx50.dtsi
+++ b/arch/arm/boot/dts/imx50.dtsi
@@ -140,7 +140,7 @@
140 status = "disabled"; 140 status = "disabled";
141 }; 141 };
142 142
143 ecspi1: ecspi@50010000 { 143 ecspi1: spi@50010000 {
144 #address-cells = <1>; 144 #address-cells = <1>;
145 #size-cells = <0>; 145 #size-cells = <0>;
146 compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi"; 146 compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi";
@@ -403,7 +403,7 @@
403 status = "disabled"; 403 status = "disabled";
404 }; 404 };
405 405
406 ecspi2: ecspi@63fac000 { 406 ecspi2: spi@63fac000 {
407 #address-cells = <1>; 407 #address-cells = <1>;
408 #size-cells = <0>; 408 #size-cells = <0>;
409 compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi"; 409 compatible = "fsl,imx50-ecspi", "fsl,imx51-ecspi";
@@ -426,7 +426,7 @@
426 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin"; 426 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx50.bin";
427 }; 427 };
428 428
429 cspi: cspi@63fc0000 { 429 cspi: spi@63fc0000 {
430 #address-cells = <1>; 430 #address-cells = <1>;
431 #size-cells = <0>; 431 #size-cells = <0>;
432 compatible = "fsl,imx50-cspi", "fsl,imx35-cspi"; 432 compatible = "fsl,imx50-cspi", "fsl,imx35-cspi";
diff --git a/arch/arm/boot/dts/imx51-babbage.dts b/arch/arm/boot/dts/imx51-babbage.dts
index ba60b0cb3cc1..35ee1b4247c3 100644
--- a/arch/arm/boot/dts/imx51-babbage.dts
+++ b/arch/arm/boot/dts/imx51-babbage.dts
@@ -204,6 +204,7 @@
204 reg = <0>; 204 reg = <0>;
205 interrupt-parent = <&gpio1>; 205 interrupt-parent = <&gpio1>;
206 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; 206 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
207 fsl,mc13xxx-uses-adc;
207 fsl,mc13xxx-uses-rtc; 208 fsl,mc13xxx-uses-rtc;
208 209
209 regulators { 210 regulators {
diff --git a/arch/arm/boot/dts/imx51-zii-rdu1.dts b/arch/arm/boot/dts/imx51-zii-rdu1.dts
index 469cce2c0357..e45a15ceb94b 100644
--- a/arch/arm/boot/dts/imx51-zii-rdu1.dts
+++ b/arch/arm/boot/dts/imx51-zii-rdu1.dts
@@ -508,7 +508,7 @@
508 }; 508 };
509 509
510 ds1341: rtc@68 { 510 ds1341: rtc@68 {
511 compatible = "maxim,ds1341"; 511 compatible = "dallas,ds1341";
512 reg = <0x68>; 512 reg = <0x68>;
513 }; 513 };
514 514
diff --git a/arch/arm/boot/dts/imx51-zii-scu2-mezz.dts b/arch/arm/boot/dts/imx51-zii-scu2-mezz.dts
index 26cf08549df4..243d1c8cab0a 100644
--- a/arch/arm/boot/dts/imx51-zii-scu2-mezz.dts
+++ b/arch/arm/boot/dts/imx51-zii-scu2-mezz.dts
@@ -342,6 +342,14 @@
342 vcc-supply = <&vusb2_reg>; 342 vcc-supply = <&vusb2_reg>;
343}; 343};
344 344
345&vpu {
346 status = "disabled";
347};
348
349&wdog1 {
350 status = "disabled";
351};
352
345&iomuxc { 353&iomuxc {
346 pinctrl_ecspi1: ecspi1grp { 354 pinctrl_ecspi1: ecspi1grp {
347 fsl,pins = < 355 fsl,pins = <
diff --git a/arch/arm/boot/dts/imx51-zii-scu3-esb.dts b/arch/arm/boot/dts/imx51-zii-scu3-esb.dts
index e6ebac8f43e4..14b207778114 100644
--- a/arch/arm/boot/dts/imx51-zii-scu3-esb.dts
+++ b/arch/arm/boot/dts/imx51-zii-scu3-esb.dts
@@ -350,6 +350,10 @@
350 vcc-supply = <&vusb2_reg>; 350 vcc-supply = <&vusb2_reg>;
351}; 351};
352 352
353&vpu {
354 status = "disabled";
355};
356
353&wdog1 { 357&wdog1 {
354 status = "disabled"; 358 status = "disabled";
355}; 359};
diff --git a/arch/arm/boot/dts/imx51.dtsi b/arch/arm/boot/dts/imx51.dtsi
index 5c4ba91e43ba..67d462715048 100644
--- a/arch/arm/boot/dts/imx51.dtsi
+++ b/arch/arm/boot/dts/imx51.dtsi
@@ -197,7 +197,7 @@
197 status = "disabled"; 197 status = "disabled";
198 }; 198 };
199 199
200 ecspi1: ecspi@70010000 { 200 ecspi1: spi@70010000 {
201 #address-cells = <1>; 201 #address-cells = <1>;
202 #size-cells = <0>; 202 #size-cells = <0>;
203 compatible = "fsl,imx51-ecspi"; 203 compatible = "fsl,imx51-ecspi";
@@ -464,7 +464,7 @@
464 status = "disabled"; 464 status = "disabled";
465 }; 465 };
466 466
467 ecspi2: ecspi@83fac000 { 467 ecspi2: spi@83fac000 {
468 #address-cells = <1>; 468 #address-cells = <1>;
469 #size-cells = <0>; 469 #size-cells = <0>;
470 compatible = "fsl,imx51-ecspi"; 470 compatible = "fsl,imx51-ecspi";
@@ -487,7 +487,7 @@
487 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin"; 487 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx51.bin";
488 }; 488 };
489 489
490 cspi: cspi@83fc0000 { 490 cspi: spi@83fc0000 {
491 #address-cells = <1>; 491 #address-cells = <1>;
492 #size-cells = <0>; 492 #size-cells = <0>;
493 compatible = "fsl,imx51-cspi", "fsl,imx35-cspi"; 493 compatible = "fsl,imx51-cspi", "fsl,imx35-cspi";
@@ -608,7 +608,7 @@
608 status = "disabled"; 608 status = "disabled";
609 }; 609 };
610 610
611 vpu@83ff4000 { 611 vpu: vpu@83ff4000 {
612 compatible = "fsl,imx51-vpu", "cnm,codahx4"; 612 compatible = "fsl,imx51-vpu", "cnm,codahx4";
613 reg = <0x83ff4000 0x1000>; 613 reg = <0x83ff4000 0x1000>;
614 interrupts = <9>; 614 interrupts = <9>;
diff --git a/arch/arm/boot/dts/imx53-ppd.dts b/arch/arm/boot/dts/imx53-ppd.dts
index cdb90bee7b4a..b560ff88459b 100644
--- a/arch/arm/boot/dts/imx53-ppd.dts
+++ b/arch/arm/boot/dts/imx53-ppd.dts
@@ -319,7 +319,6 @@
319&ecspi2 { 319&ecspi2 {
320 pinctrl-names = "default"; 320 pinctrl-names = "default";
321 pinctrl-0 = <&pinctrl_ecspi2>; 321 pinctrl-0 = <&pinctrl_ecspi2>;
322 num-chipselects = <1>;
323 cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>; 322 cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>;
324 status = "okay"; 323 status = "okay";
325 324
diff --git a/arch/arm/boot/dts/imx53.dtsi b/arch/arm/boot/dts/imx53.dtsi
index 6386185ae234..207eb557c90e 100644
--- a/arch/arm/boot/dts/imx53.dtsi
+++ b/arch/arm/boot/dts/imx53.dtsi
@@ -259,7 +259,7 @@
259 status = "disabled"; 259 status = "disabled";
260 }; 260 };
261 261
262 ecspi1: ecspi@50010000 { 262 ecspi1: spi@50010000 {
263 #address-cells = <1>; 263 #address-cells = <1>;
264 #size-cells = <0>; 264 #size-cells = <0>;
265 compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi"; 265 compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi";
@@ -684,7 +684,7 @@
684 status = "disabled"; 684 status = "disabled";
685 }; 685 };
686 686
687 ecspi2: ecspi@63fac000 { 687 ecspi2: spi@63fac000 {
688 #address-cells = <1>; 688 #address-cells = <1>;
689 #size-cells = <0>; 689 #size-cells = <0>;
690 compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi"; 690 compatible = "fsl,imx53-ecspi", "fsl,imx51-ecspi";
@@ -707,7 +707,7 @@
707 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin"; 707 fsl,sdma-ram-script-name = "imx/sdma/sdma-imx53.bin";
708 }; 708 };
709 709
710 cspi: cspi@63fc0000 { 710 cspi: spi@63fc0000 {
711 #address-cells = <1>; 711 #address-cells = <1>;
712 #size-cells = <0>; 712 #size-cells = <0>;
713 compatible = "fsl,imx53-cspi", "fsl,imx35-cspi"; 713 compatible = "fsl,imx53-cspi", "fsl,imx35-cspi";
diff --git a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
index 9de45a717356..d08e0402793b 100644
--- a/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
@@ -146,7 +146,7 @@
146&ecspi4 { 146&ecspi4 {
147 status = "okay"; 147 status = "okay";
148 148
149 mcp251x0: mcp251x@1 { 149 mcp251x0: mcp251x@0 {
150 compatible = "microchip,mcp2515"; 150 compatible = "microchip,mcp2515";
151 reg = <0>; 151 reg = <0>;
152 clocks = <&clk16m>; 152 clocks = <&clk16m>;
diff --git a/arch/arm/boot/dts/imx6dl-icore-mipi.dts b/arch/arm/boot/dts/imx6dl-icore-mipi.dts
index bf53f0552aa1..e43bccb78ab2 100644
--- a/arch/arm/boot/dts/imx6dl-icore-mipi.dts
+++ b/arch/arm/boot/dts/imx6dl-icore-mipi.dts
@@ -1,4 +1,4 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1// SPDX-License-Identifier: GPL-2.0 OR X11
2/* 2/*
3 * Copyright (C) 2018 Engicam S.r.l. 3 * Copyright (C) 2018 Engicam S.r.l.
4 * Copyright (C) 2018 Amarula Solutions B.V. 4 * Copyright (C) 2018 Amarula Solutions B.V.
diff --git a/arch/arm/boot/dts/imx6dl-icore-rqs.dts b/arch/arm/boot/dts/imx6dl-icore-rqs.dts
index 1281bc39b7ab..73d710d34b9d 100644
--- a/arch/arm/boot/dts/imx6dl-icore-rqs.dts
+++ b/arch/arm/boot/dts/imx6dl-icore-rqs.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
diff --git a/arch/arm/boot/dts/imx6dl-icore.dts b/arch/arm/boot/dts/imx6dl-icore.dts
index 971f9fc39c66..80fa60607ab1 100644
--- a/arch/arm/boot/dts/imx6dl-icore.dts
+++ b/arch/arm/boot/dts/imx6dl-icore.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
diff --git a/arch/arm/boot/dts/imx6dl-riotboard.dts b/arch/arm/boot/dts/imx6dl-riotboard.dts
index dd3226fe5ecd..8e51491e68cf 100644
--- a/arch/arm/boot/dts/imx6dl-riotboard.dts
+++ b/arch/arm/boot/dts/imx6dl-riotboard.dts
@@ -84,6 +84,10 @@
84 status = "okay"; 84 status = "okay";
85}; 85};
86 86
87&clks {
88 fsl,pmic-stby-poweroff;
89};
90
87&fec { 91&fec {
88 pinctrl-names = "default"; 92 pinctrl-names = "default";
89 pinctrl-0 = <&pinctrl_enet>; 93 pinctrl-0 = <&pinctrl_enet>;
@@ -164,6 +168,7 @@
164 reg = <0x08>; 168 reg = <0x08>;
165 interrupt-parent = <&gpio5>; 169 interrupt-parent = <&gpio5>;
166 interrupts = <16 8>; 170 interrupts = <16 8>;
171 fsl,pmic-stby-poweroff;
167 172
168 regulators { 173 regulators {
169 reg_vddcore: sw1ab { /* VDDARM_IN */ 174 reg_vddcore: sw1ab { /* VDDARM_IN */
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts
index 707ac9a46115..0edd3043d9c1 100644
--- a/arch/arm/boot/dts/imx6q-apalis-eval.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-eval.dts
@@ -196,6 +196,8 @@
196}; 196};
197 197
198&pcie { 198&pcie {
199 pinctrl-names = "default";
200 pinctrl-0 = <&pinctrl_reset_moci>;
199 /* active-high meaning opposite of regular PERST# active-low polarity */ 201 /* active-high meaning opposite of regular PERST# active-low polarity */
200 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; 202 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
201 reset-gpio-active-high; 203 reset-gpio-active-high;
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
index 4e1c8feaef82..b94bb687be6b 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
@@ -196,6 +196,8 @@
196}; 196};
197 197
198&pcie { 198&pcie {
199 pinctrl-names = "default";
200 pinctrl-0 = <&pinctrl_reset_moci>;
199 /* active-high meaning opposite of regular PERST# active-low polarity */ 201 /* active-high meaning opposite of regular PERST# active-low polarity */
200 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; 202 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
201 reset-gpio-active-high; 203 reset-gpio-active-high;
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora.dts b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
index 469e3d0e2827..302fd6adc8a7 100644
--- a/arch/arm/boot/dts/imx6q-apalis-ixora.dts
+++ b/arch/arm/boot/dts/imx6q-apalis-ixora.dts
@@ -200,6 +200,8 @@
200}; 200};
201 201
202&pcie { 202&pcie {
203 pinctrl-names = "default";
204 pinctrl-0 = <&pinctrl_reset_moci>;
203 /* active-high meaning opposite of regular PERST# active-low polarity */ 205 /* active-high meaning opposite of regular PERST# active-low polarity */
204 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; 206 reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
205 reset-gpio-active-high; 207 reset-gpio-active-high;
diff --git a/arch/arm/boot/dts/imx6q-icore-mipi.dts b/arch/arm/boot/dts/imx6q-icore-mipi.dts
index 95b2efda17b4..d51745268dbf 100644
--- a/arch/arm/boot/dts/imx6q-icore-mipi.dts
+++ b/arch/arm/boot/dts/imx6q-icore-mipi.dts
@@ -1,4 +1,4 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1// SPDX-License-Identifier: GPL-2.0 OR X11
2/* 2/*
3 * Copyright (C) 2017 Engicam S.r.l. 3 * Copyright (C) 2017 Engicam S.r.l.
4 * Copyright (C) 2017 Amarula Solutions B.V. 4 * Copyright (C) 2017 Amarula Solutions B.V.
@@ -8,10 +8,10 @@
8/dts-v1/; 8/dts-v1/;
9 9
10#include "imx6q.dtsi" 10#include "imx6q.dtsi"
11#include "imx6qdl-icore.dtsi" 11#include "imx6qdl-icore-1.5.dtsi"
12 12
13/ { 13/ {
14 model = "Engicam i.CoreM6 Quad/Dual MIPI Starter Kit"; 14 model = "Engicam i.CoreM6 1.5 Quad/Dual MIPI Starter Kit";
15 compatible = "engicam,imx6-icore", "fsl,imx6q"; 15 compatible = "engicam,imx6-icore", "fsl,imx6q";
16}; 16};
17 17
diff --git a/arch/arm/boot/dts/imx6q-icore-ofcap10.dts b/arch/arm/boot/dts/imx6q-icore-ofcap10.dts
index 49b60ca20e6d..81cc346dd149 100644
--- a/arch/arm/boot/dts/imx6q-icore-ofcap10.dts
+++ b/arch/arm/boot/dts/imx6q-icore-ofcap10.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
diff --git a/arch/arm/boot/dts/imx6q-icore-ofcap12.dts b/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
index 6e27c8143f82..241811c52b62 100644
--- a/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
+++ b/arch/arm/boot/dts/imx6q-icore-ofcap12.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
diff --git a/arch/arm/boot/dts/imx6q-icore-rqs.dts b/arch/arm/boot/dts/imx6q-icore-rqs.dts
index b81f48c6a8c6..cf6ba724f497 100644
--- a/arch/arm/boot/dts/imx6q-icore-rqs.dts
+++ b/arch/arm/boot/dts/imx6q-icore-rqs.dts
@@ -1,42 +1,7 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (C) 2015 Amarula Solutions B.V. 3 * Copyright (C) 2015 Amarula Solutions B.V.
3 * 4 * Copyright (C) 2015 Engicam S.r.l.
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 "AS IS", 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 */ 5 */
41 6
42/dts-v1/; 7/dts-v1/;
diff --git a/arch/arm/boot/dts/imx6q-icore.dts b/arch/arm/boot/dts/imx6q-icore.dts
index 5613dd9dc469..fe28c3cf54c0 100644
--- a/arch/arm/boot/dts/imx6q-icore.dts
+++ b/arch/arm/boot/dts/imx6q-icore.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi
index 0193ee6fe964..8381d24eff7d 100644
--- a/arch/arm/boot/dts/imx6q.dtsi
+++ b/arch/arm/boot/dts/imx6q.dtsi
@@ -163,7 +163,7 @@
163 163
164 aips-bus@2000000 { /* AIPS1 */ 164 aips-bus@2000000 { /* AIPS1 */
165 spba-bus@2000000 { 165 spba-bus@2000000 {
166 ecspi5: ecspi@2018000 { 166 ecspi5: spi@2018000 {
167 #address-cells = <1>; 167 #address-cells = <1>;
168 #size-cells = <0>; 168 #size-cells = <0>;
169 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 169 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
index 05f07ea3e8c8..3dc99dd8dde1 100644
--- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi
@@ -482,10 +482,6 @@
482}; 482};
483 483
484&iomuxc { 484&iomuxc {
485 /* pins used on module */
486 pinctrl-names = "default";
487 pinctrl-0 = <&pinctrl_reset_moci>;
488
489 pinctrl_apalis_gpio1: gpio2io04grp { 485 pinctrl_apalis_gpio1: gpio2io04grp {
490 fsl,pins = < 486 fsl,pins = <
491 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x130b0 487 MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x130b0
diff --git a/arch/arm/boot/dts/imx6qdl-icore-1.5.dtsi b/arch/arm/boot/dts/imx6qdl-icore-1.5.dtsi
new file mode 100644
index 000000000000..d91d46b5898f
--- /dev/null
+++ b/arch/arm/boot/dts/imx6qdl-icore-1.5.dtsi
@@ -0,0 +1,34 @@
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2018 Jacopo Mondi <jacopo@jmondi.org>
4 */
5
6#include "imx6qdl-icore.dtsi"
7
8&iomuxc {
9 pinctrl_enet: enetgrp {
10 fsl,pins = <
11 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0
12 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0b0
13 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
14 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0
15 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0
16 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0
17 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0
18 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
19 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
20 MX6QDL_PAD_GPIO_17__GPIO7_IO12 0x1b0b0
21 >;
22 };
23};
24
25&fec {
26 pinctrl-names = "default";
27 pinctrl-0 = <&pinctrl_enet>;
28 phy-reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
29 clocks = <&clks IMX6QDL_CLK_ENET>,
30 <&clks IMX6QDL_CLK_ENET>,
31 <&clks IMX6QDL_CLK_ENET_REF>;
32 phy-mode = "rmii";
33 status = "okay";
34};
diff --git a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
index acc3b11fba2a..ba93026ecee8 100644
--- a/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
@@ -1,42 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2015 Amarula Solutions B.V. 3 * Copyright (C) 2015 Amarula Solutions B.V.
3 * 4 * Copyright (C) 2015 Engicam S.r.l.
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 "AS IS", 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 */ 5 */
41 6
42#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/gpio/gpio.h>
@@ -316,7 +281,7 @@
316}; 281};
317 282
318&iomuxc { 283&iomuxc {
319 pinctrl_audmux: audmux { 284 pinctrl_audmux: audmuxgrp {
320 fsl,pins = < 285 fsl,pins = <
321 MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0 286 MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0
322 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0 287 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0
diff --git a/arch/arm/boot/dts/imx6qdl-icore.dtsi b/arch/arm/boot/dts/imx6qdl-icore.dtsi
index 9ce993776160..84d03c65f4c8 100644
--- a/arch/arm/boot/dts/imx6qdl-icore.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-icore.dtsi
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/gpio/gpio.h>
@@ -310,7 +274,7 @@
310}; 274};
311 275
312&iomuxc { 276&iomuxc {
313 pinctrl_audmux: audmux { 277 pinctrl_audmux: audmuxgrp {
314 fsl,pins = < 278 fsl,pins = <
315 MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0 279 MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0
316 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0 280 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0
@@ -349,7 +313,7 @@
349 >; 313 >;
350 }; 314 };
351 315
352 pinctrl_gpmi_nand: gpmi-nand { 316 pinctrl_gpmi_nand: gpminandgrp {
353 fsl,pins = < 317 fsl,pins = <
354 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1 318 MX6QDL_PAD_NANDF_CLE__NAND_CLE 0xb0b1
355 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1 319 MX6QDL_PAD_NANDF_ALE__NAND_ALE 0xb0b1
diff --git a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
index 9f11f1fcc3e6..a6dc5c42c632 100644
--- a/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
@@ -4,6 +4,7 @@
4// Copyright 2011 Linaro Ltd. 4// Copyright 2011 Linaro Ltd.
5 5
6#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/input/input.h>
7 8
8/ { 9/ {
9 chosen { 10 chosen {
@@ -25,6 +26,47 @@
25 }; 26 };
26 }; 27 };
27 28
29 gpio-keys {
30 compatible = "gpio-keys";
31 pinctrl-names = "default";
32 pinctrl-0 = <&pinctrl_gpio_keys>;
33
34 home {
35 label = "Home";
36 gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
37 linux,code = <KEY_HOME>;
38 wakeup-source;
39 };
40
41 back {
42 label = "Back";
43 gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
44 linux,code = <KEY_BACK>;
45 wakeup-source;
46 };
47
48 program {
49 label = "Program";
50 gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
51 linux,code = <KEY_PROGRAM>;
52 wakeup-source;
53 };
54
55 volume-up {
56 label = "Volume Up";
57 gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
58 linux,code = <KEY_VOLUMEUP>;
59 wakeup-source;
60 };
61
62 volume-down {
63 label = "Volume Down";
64 gpios = <&gpio5 14 GPIO_ACTIVE_LOW>;
65 linux,code = <KEY_VOLUMEDOWN>;
66 wakeup-source;
67 };
68 };
69
28 clocks { 70 clocks {
29 codec_osc: anaclk2 { 71 codec_osc: anaclk2 {
30 compatible = "fixed-clock"; 72 compatible = "fixed-clock";
@@ -375,6 +417,15 @@
375 VLC-supply = <&reg_audio>; 417 VLC-supply = <&reg_audio>;
376 }; 418 };
377 419
420 touchscreen@4 {
421 compatible = "eeti,egalax_ts";
422 reg = <0x04>;
423 pinctrl-names = "default";
424 pinctrl-0 = <&pinctrl_egalax_int>;
425 interrupt-parent = <&gpio2>;
426 interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
427 wakeup-gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
428 };
378}; 429};
379 430
380&i2c3 { 431&i2c3 {
@@ -410,6 +461,12 @@
410 >; 461 >;
411 }; 462 };
412 463
464 pinctrl_egalax_int: egalax-intgrp {
465 fsl,pins = <
466 MX6QDL_PAD_EIM_EB0__GPIO2_IO28 0xb0b1
467 >;
468 };
469
413 pinctrl_enet: enetgrp { 470 pinctrl_enet: enetgrp {
414 fsl,pins = < 471 fsl,pins = <
415 MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x1b0b0 472 MX6QDL_PAD_KEY_COL1__ENET_MDIO 0x1b0b0
@@ -446,6 +503,16 @@
446 >; 503 >;
447 }; 504 };
448 505
506 pinctrl_gpio_keys: gpiokeysgrp {
507 fsl,pins = <
508 MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x1b0b0
509 MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0
510 MX6QDL_PAD_SD4_DAT4__GPIO2_IO12 0x1b0b0
511 MX6QDL_PAD_SD4_DAT7__GPIO2_IO15 0x1b0b0
512 MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14 0x1b0b0
513 >;
514 };
515
449 pinctrl_gpio_leds: gpioledsgrp { 516 pinctrl_gpio_leds: gpioledsgrp {
450 fsl,pins = < 517 fsl,pins = <
451 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x80000000 518 MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x80000000
diff --git a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
index 381bf61fcd28..b7d5fb421404 100644
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
@@ -8,6 +8,10 @@
8#include <dt-bindings/gpio/gpio.h> 8#include <dt-bindings/gpio/gpio.h>
9 9
10/ { 10/ {
11 chosen {
12 stdout-path = &uart1;
13 };
14
11 sound { 15 sound {
12 compatible = "fsl,imx6-wandboard-sgtl5000", 16 compatible = "fsl,imx6-wandboard-sgtl5000",
13 "fsl,imx-audio-sgtl5000"; 17 "fsl,imx-audio-sgtl5000";
diff --git a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
index 7fff3717cf7c..85e79a33bcd4 100644
--- a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
@@ -813,6 +813,10 @@
813 status = "okay"; 813 status = "okay";
814}; 814};
815 815
816&snvs_rtc {
817 status = "disabled";
818};
819
816&ssi1 { 820&ssi1 {
817 status = "okay"; 821 status = "okay";
818}; 822};
diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 61d2d26afbf4..e4daf150881a 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -317,7 +317,7 @@
317 status = "disabled"; 317 status = "disabled";
318 }; 318 };
319 319
320 ecspi1: ecspi@2008000 { 320 ecspi1: spi@2008000 {
321 #address-cells = <1>; 321 #address-cells = <1>;
322 #size-cells = <0>; 322 #size-cells = <0>;
323 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 323 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -331,7 +331,7 @@
331 status = "disabled"; 331 status = "disabled";
332 }; 332 };
333 333
334 ecspi2: ecspi@200c000 { 334 ecspi2: spi@200c000 {
335 #address-cells = <1>; 335 #address-cells = <1>;
336 #size-cells = <0>; 336 #size-cells = <0>;
337 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 337 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -345,7 +345,7 @@
345 status = "disabled"; 345 status = "disabled";
346 }; 346 };
347 347
348 ecspi3: ecspi@2010000 { 348 ecspi3: spi@2010000 {
349 #address-cells = <1>; 349 #address-cells = <1>;
350 #size-cells = <0>; 350 #size-cells = <0>;
351 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 351 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
@@ -359,7 +359,7 @@
359 status = "disabled"; 359 status = "disabled";
360 }; 360 };
361 361
362 ecspi4: ecspi@2014000 { 362 ecspi4: spi@2014000 {
363 #address-cells = <1>; 363 #address-cells = <1>;
364 #size-cells = <0>; 364 #size-cells = <0>;
365 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi"; 365 compatible = "fsl,imx6q-ecspi", "fsl,imx51-ecspi";
diff --git a/arch/arm/boot/dts/imx6sl.dtsi b/arch/arm/boot/dts/imx6sl.dtsi
index 7a4f5dace902..7a3ae7160c12 100644
--- a/arch/arm/boot/dts/imx6sl.dtsi
+++ b/arch/arm/boot/dts/imx6sl.dtsi
@@ -168,7 +168,7 @@
168 status = "disabled"; 168 status = "disabled";
169 }; 169 };
170 170
171 ecspi1: ecspi@2008000 { 171 ecspi1: spi@2008000 {
172 #address-cells = <1>; 172 #address-cells = <1>;
173 #size-cells = <0>; 173 #size-cells = <0>;
174 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 174 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -180,7 +180,7 @@
180 status = "disabled"; 180 status = "disabled";
181 }; 181 };
182 182
183 ecspi2: ecspi@200c000 { 183 ecspi2: spi@200c000 {
184 #address-cells = <1>; 184 #address-cells = <1>;
185 #size-cells = <0>; 185 #size-cells = <0>;
186 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 186 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -192,7 +192,7 @@
192 status = "disabled"; 192 status = "disabled";
193 }; 193 };
194 194
195 ecspi3: ecspi@2010000 { 195 ecspi3: spi@2010000 {
196 #address-cells = <1>; 196 #address-cells = <1>;
197 #size-cells = <0>; 197 #size-cells = <0>;
198 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 198 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
@@ -204,7 +204,7 @@
204 status = "disabled"; 204 status = "disabled";
205 }; 205 };
206 206
207 ecspi4: ecspi@2014000 { 207 ecspi4: spi@2014000 {
208 #address-cells = <1>; 208 #address-cells = <1>;
209 #size-cells = <0>; 209 #size-cells = <0>;
210 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi"; 210 compatible = "fsl,imx6sl-ecspi", "fsl,imx51-ecspi";
diff --git a/arch/arm/boot/dts/imx6sll.dtsi b/arch/arm/boot/dts/imx6sll.dtsi
index 000e6136a9d6..ed9a980bce85 100644
--- a/arch/arm/boot/dts/imx6sll.dtsi
+++ b/arch/arm/boot/dts/imx6sll.dtsi
@@ -375,10 +375,12 @@
375 reg = <0x0209c000 0x4000>; 375 reg = <0x0209c000 0x4000>;
376 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>, 376 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
377 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; 377 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
378 clocks = <&clks IMX6SLL_CLK_GPIO1>;
378 gpio-controller; 379 gpio-controller;
379 #gpio-cells = <2>; 380 #gpio-cells = <2>;
380 interrupt-controller; 381 interrupt-controller;
381 #interrupt-cells = <2>; 382 #interrupt-cells = <2>;
383 gpio-ranges = <&iomuxc 0 94 7>, <&iomuxc 7 25 25>;
382 }; 384 };
383 385
384 gpio2: gpio@20a0000 { 386 gpio2: gpio@20a0000 {
@@ -386,10 +388,12 @@
386 reg = <0x020a0000 0x4000>; 388 reg = <0x020a0000 0x4000>;
387 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, 389 interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
388 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; 390 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
391 clocks = <&clks IMX6SLL_CLK_GPIO2>;
389 gpio-controller; 392 gpio-controller;
390 #gpio-cells = <2>; 393 #gpio-cells = <2>;
391 interrupt-controller; 394 interrupt-controller;
392 #interrupt-cells = <2>; 395 #interrupt-cells = <2>;
396 gpio-ranges = <&iomuxc 0 50 32>;
393 }; 397 };
394 398
395 gpio3: gpio@20a4000 { 399 gpio3: gpio@20a4000 {
@@ -397,10 +401,14 @@
397 reg = <0x020a4000 0x4000>; 401 reg = <0x020a4000 0x4000>;
398 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>, 402 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
399 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 403 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
404 clocks = <&clks IMX6SLL_CLK_GPIO3>;
400 gpio-controller; 405 gpio-controller;
401 #gpio-cells = <2>; 406 #gpio-cells = <2>;
402 interrupt-controller; 407 interrupt-controller;
403 #interrupt-cells = <2>; 408 #interrupt-cells = <2>;
409 gpio-ranges = <&iomuxc 0 82 12>, <&iomuxc 12 103 4>,
410 <&iomuxc 16 101 2>, <&iomuxc 18 5 1>,
411 <&iomuxc 21 6 11>;
404 }; 412 };
405 413
406 gpio4: gpio@20a8000 { 414 gpio4: gpio@20a8000 {
@@ -408,10 +416,20 @@
408 reg = <0x020a8000 0x4000>; 416 reg = <0x020a8000 0x4000>;
409 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, 417 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
410 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; 418 <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&clks IMX6SLL_CLK_GPIO4>;
411 gpio-controller; 420 gpio-controller;
412 #gpio-cells = <2>; 421 #gpio-cells = <2>;
413 interrupt-controller; 422 interrupt-controller;
414 #interrupt-cells = <2>; 423 #interrupt-cells = <2>;
424 gpio-ranges = <&iomuxc 0 17 8>, <&iomuxc 8 107 8>,
425 <&iomuxc 16 151 1>, <&iomuxc 17 149 1>,
426 <&iomuxc 18 146 1>, <&iomuxc 19 144 1>,
427 <&iomuxc 20 142 1>, <&iomuxc 21 143 1>,
428 <&iomuxc 22 150 1>, <&iomuxc 23 148 1>,
429 <&iomuxc 24 147 1>, <&iomuxc 25 145 1>,
430 <&iomuxc 26 152 1>, <&iomuxc 27 125 1>,
431 <&iomuxc 28 131 1>, <&iomuxc 29 134 1>,
432 <&iomuxc 30 129 1>, <&iomuxc 31 133 1>;
415 }; 433 };
416 434
417 gpio5: gpio@20ac000 { 435 gpio5: gpio@20ac000 {
@@ -419,10 +437,22 @@
419 reg = <0x020ac000 0x4000>; 437 reg = <0x020ac000 0x4000>;
420 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>, 438 interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
421 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>; 439 <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
440 clocks = <&clks IMX6SLL_CLK_GPIO5>;
422 gpio-controller; 441 gpio-controller;
423 #gpio-cells = <2>; 442 #gpio-cells = <2>;
424 interrupt-controller; 443 interrupt-controller;
425 #interrupt-cells = <2>; 444 #interrupt-cells = <2>;
445 gpio-ranges = <&iomuxc 0 135 1>, <&iomuxc 1 128 1>,
446 <&iomuxc 2 132 1>, <&iomuxc 3 130 1>,
447 <&iomuxc 4 127 1>, <&iomuxc 5 126 1>,
448 <&iomuxc 6 120 1>, <&iomuxc 7 123 1>,
449 <&iomuxc 8 118 1>, <&iomuxc 9 122 1>,
450 <&iomuxc 10 124 1>, <&iomuxc 11 117 1>,
451 <&iomuxc 12 121 1>, <&iomuxc 13 119 1>,
452 <&iomuxc 14 116 1>, <&iomuxc 15 115 1>,
453 <&iomuxc 16 140 2>, <&iomuxc 18 136 1>,
454 <&iomuxc 19 138 1>, <&iomuxc 20 139 1>,
455 <&iomuxc 21 137 1>;
426 }; 456 };
427 457
428 gpio6: gpio@20b0000 { 458 gpio6: gpio@20b0000 {
@@ -430,6 +460,7 @@
430 reg = <0x020b0000 0x4000>; 460 reg = <0x020b0000 0x4000>;
431 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>, 461 interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>,
432 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 462 <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
463 clocks = <&clks IMX6SLL_CLK_GPIO6>;
433 gpio-controller; 464 gpio-controller;
434 #gpio-cells = <2>; 465 #gpio-cells = <2>;
435 interrupt-controller; 466 interrupt-controller;
diff --git a/arch/arm/boot/dts/imx6sx-sdb.dtsi b/arch/arm/boot/dts/imx6sx-sdb.dtsi
index f8f31872fa14..53b3408b5fab 100644
--- a/arch/arm/boot/dts/imx6sx-sdb.dtsi
+++ b/arch/arm/boot/dts/imx6sx-sdb.dtsi
@@ -40,12 +40,14 @@
40 label = "Volume Up"; 40 label = "Volume Up";
41 gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; 41 gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
42 linux,code = <KEY_VOLUMEUP>; 42 linux,code = <KEY_VOLUMEUP>;
43 wakeup-source;
43 }; 44 };
44 45
45 volume-down { 46 volume-down {
46 label = "Volume Down"; 47 label = "Volume Down";
47 gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; 48 gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
48 linux,code = <KEY_VOLUMEDOWN>; 49 linux,code = <KEY_VOLUMEDOWN>;
50 wakeup-source;
49 }; 51 };
50 }; 52 };
51 53
diff --git a/arch/arm/boot/dts/imx6sx.dtsi b/arch/arm/boot/dts/imx6sx.dtsi
index 844caa39364f..95a3c1cb877d 100644
--- a/arch/arm/boot/dts/imx6sx.dtsi
+++ b/arch/arm/boot/dts/imx6sx.dtsi
@@ -268,7 +268,7 @@
268 status = "disabled"; 268 status = "disabled";
269 }; 269 };
270 270
271 ecspi1: ecspi@2008000 { 271 ecspi1: spi@2008000 {
272 #address-cells = <1>; 272 #address-cells = <1>;
273 #size-cells = <0>; 273 #size-cells = <0>;
274 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 274 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -280,7 +280,7 @@
280 status = "disabled"; 280 status = "disabled";
281 }; 281 };
282 282
283 ecspi2: ecspi@200c000 { 283 ecspi2: spi@200c000 {
284 #address-cells = <1>; 284 #address-cells = <1>;
285 #size-cells = <0>; 285 #size-cells = <0>;
286 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 286 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -292,7 +292,7 @@
292 status = "disabled"; 292 status = "disabled";
293 }; 293 };
294 294
295 ecspi3: ecspi@2010000 { 295 ecspi3: spi@2010000 {
296 #address-cells = <1>; 296 #address-cells = <1>;
297 #size-cells = <0>; 297 #size-cells = <0>;
298 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 298 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -304,7 +304,7 @@
304 status = "disabled"; 304 status = "disabled";
305 }; 305 };
306 306
307 ecspi4: ecspi@2014000 { 307 ecspi4: spi@2014000 {
308 #address-cells = <1>; 308 #address-cells = <1>;
309 #size-cells = <0>; 309 #size-cells = <0>;
310 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 310 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
@@ -1079,7 +1079,7 @@
1079 status = "disabled"; 1079 status = "disabled";
1080 }; 1080 };
1081 1081
1082 qspi1: qspi@21e0000 { 1082 qspi1: spi@21e0000 {
1083 #address-cells = <1>; 1083 #address-cells = <1>;
1084 #size-cells = <0>; 1084 #size-cells = <0>;
1085 compatible = "fsl,imx6sx-qspi"; 1085 compatible = "fsl,imx6sx-qspi";
@@ -1092,7 +1092,7 @@
1092 status = "disabled"; 1092 status = "disabled";
1093 }; 1093 };
1094 1094
1095 qspi2: qspi@21e4000 { 1095 qspi2: spi@21e4000 {
1096 #address-cells = <1>; 1096 #address-cells = <1>;
1097 #size-cells = <0>; 1097 #size-cells = <0>;
1098 compatible = "fsl,imx6sx-qspi"; 1098 compatible = "fsl,imx6sx-qspi";
@@ -1273,7 +1273,7 @@
1273 status = "disabled"; 1273 status = "disabled";
1274 }; 1274 };
1275 1275
1276 ecspi5: ecspi@228c000 { 1276 ecspi5: spi@228c000 {
1277 #address-cells = <1>; 1277 #address-cells = <1>;
1278 #size-cells = <0>; 1278 #size-cells = <0>;
1279 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi"; 1279 compatible = "fsl,imx6sx-ecspi", "fsl,imx51-ecspi";
diff --git a/arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts b/arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts
new file mode 100644
index 000000000000..11966d12af76
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ul-ccimx6ulsbcpro.dts
@@ -0,0 +1,390 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Digi International's ConnectCore6UL SBC Pro board device tree source
4 *
5 * Copyright 2018 Digi International, Inc.
6 *
7 */
8
9/dts-v1/;
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include "imx6ul.dtsi"
13#include "imx6ul-ccimx6ulsom.dtsi"
14
15/ {
16 model = "Digi International ConnectCore 6UL SBC Pro.";
17 compatible = "digi,ccimx6ulsbcpro", "digi,ccimx6ulsom", "fsl,imx6ul";
18
19 lcd_backlight: backlight {
20 compatible = "pwm-backlight";
21 pwms = <&pwm5 0 50000>;
22 brightness-levels = <0 4 8 16 32 64 128 255>;
23 default-brightness-level = <6>;
24 status = "okay";
25 };
26
27 reg_usb_otg1_vbus: regulator-usb-otg1 {
28 compatible = "regulator-fixed";
29 regulator-name = "usb_otg1_vbus";
30 regulator-min-microvolt = <5000000>;
31 regulator-max-microvolt = <5000000>;
32 gpio = <&gpio1 4 GPIO_ACTIVE_HIGH>;
33 enable-active-high;
34 };
35};
36
37&adc1 {
38 pinctrl-names = "default";
39 pinctrl-0 = <&pinctrl_adc1>;
40 status = "okay";
41};
42
43&can1 {
44 pinctrl-names = "default";
45 pinctrl-0 = <&pinctrl_flexcan1>;
46 xceiver-supply = <&ext_3v3>;
47 status = "okay";
48};
49
50/* CAN2 is multiplexed with UART2 RTS/CTS */
51&can2 {
52 pinctrl-names = "default";
53 pinctrl-0 = <&pinctrl_flexcan2>;
54 xceiver-supply = <&ext_3v3>;
55 status = "disabled";
56};
57
58&ecspi1 {
59 cs-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>;
60 pinctrl-names = "default";
61 pinctrl-0 = <&pinctrl_ecspi1_master>;
62 status = "okay";
63};
64
65&fec1 {
66 pinctrl-names = "default";
67 pinctrl-0 = <&pinctrl_enet1>;
68 phy-mode = "rmii";
69 phy-handle = <&ethphy0>;
70 status = "okay";
71};
72
73&fec2 {
74 pinctrl-names = "default";
75 pinctrl-0 = <&pinctrl_enet2 &pinctrl_enet2_mdio>;
76 phy-mode = "rmii";
77 phy-handle = <&ethphy1>;
78 phy-reset-gpios = <&gpio5 6 GPIO_ACTIVE_LOW>;
79 phy-reset-duration = <26>;
80 status = "okay";
81
82 mdio {
83 #address-cells = <1>;
84 #size-cells = <0>;
85
86 ethphy0: ethernet-phy@0 {
87 compatible = "ethernet-phy-ieee802.3-c22";
88 smsc,disable-energy-detect;
89 reg = <0>;
90 };
91
92 ethphy1: ethernet-phy@1 {
93 compatible = "ethernet-phy-ieee802.3-c22";
94 smsc,disable-energy-detect;
95 reg = <1>;
96 };
97 };
98};
99
100&gpio5 {
101 emmc-usd-mux {
102 gpio-hog;
103 gpios = <1 GPIO_ACTIVE_LOW>;
104 output-high;
105 };
106};
107
108&lcdif {
109 pinctrl-names = "default";
110 pinctrl-0 = <&pinctrl_lcdif_dat0_17
111 &pinctrl_lcdif_clken
112 &pinctrl_lcdif_hvsync>;
113 lcd-supply = <&ldo4_ext>; /* BU90T82 LVDS bridge power */
114 status = "okay";
115};
116
117&ldo4_ext {
118 regulator-max-microvolt = <1800000>;
119};
120
121&pwm1 {
122 status = "okay";
123};
124
125&pwm2 {
126 status = "okay";
127};
128
129&pwm3 {
130 status = "okay";
131};
132
133&pwm4 {
134 pinctrl-names = "default";
135 pinctrl-0 = <&pinctrl_pwm4>;
136 status = "okay";
137};
138
139&pwm5 {
140 pinctrl-names = "default";
141 pinctrl-0 = <&pinctrl_pwm5>;
142 status = "okay";
143};
144
145&pwm6 {
146 status = "okay";
147};
148
149&pwm7 {
150 status = "okay";
151};
152
153&pwm8 {
154 status = "okay";
155};
156
157&sai2 {
158 pinctrl-names = "default", "sleep";
159 pinctrl-0 = <&pinctrl_sai2>;
160 pinctrl-1 = <&pinctrl_sai2_sleep>;
161 assigned-clocks = <&clks IMX6UL_CLK_SAI2_SEL>,
162 <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>,
163 <&clks IMX6UL_CLK_SAI2>;
164 assigned-clock-rates = <0>, <786432000>, <12288000>;
165 assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
166 status = "okay";
167};
168
169/* UART2 RTS/CTS muxed with CAN2 */
170&uart2 {
171 pinctrl-names = "default";
172 pinctrl-0 = <&pinctrl_uart2_4wires>;
173 uart-has-rtscts;
174 status = "okay";
175};
176
177/* UART3 RTS/CTS muxed with CAN 1 */
178&uart3 {
179 pinctrl-names = "default";
180 pinctrl-0 = <&pinctrl_uart3_2wires>;
181 status = "okay";
182};
183
184&uart5 {
185 pinctrl-names = "default";
186 pinctrl-0 = <&pinctrl_uart5>;
187 status = "okay";
188};
189
190&usbotg1 {
191 dr_mode = "otg";
192 vbus-supply = <&reg_usb_otg1_vbus>;
193 pinctrl-0 = <&pinctrl_usbotg1>;
194 status = "okay";
195};
196
197&usbotg2 {
198 dr_mode = "host";
199 disable-over-current;
200 status = "okay";
201};
202
203/* USDHC2 (microSD conflicts with eMMC) */
204&usdhc2 {
205 pinctrl-names = "default";
206 pinctrl-0 = <&pinctrl_usdhc2>;
207 no-1-8-v;
208 broken-cd; /* no carrier detect line (use polling) */
209 status = "okay";
210};
211
212&iomuxc {
213 pinctrl_adc1: adc1grp {
214 fsl,pins = <
215 /* EXP_GPIO_2 -> GPIO1_3/ADC1_IN3 */
216 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0xb0
217 >;
218 };
219
220 pinctrl_ecspi1_master: ecspi1grp1 {
221 fsl,pins = <
222 MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK 0x10b0
223 MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI 0x10b0
224 MX6UL_PAD_LCD_DATA23__ECSPI1_MISO 0x10b0
225 MX6UL_PAD_LCD_DATA21__GPIO3_IO26 0x10b0
226 >;
227 };
228
229 pinctrl_enet1: enet1grp {
230 fsl,pins = <
231 MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
232 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0
233 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
234 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
235 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
236 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
237 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
238 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x40017051
239 >;
240 };
241
242 pinctrl_enet2: enet2grp {
243 fsl,pins = <
244 MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN 0x1b0b0
245 MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER 0x1b0b0
246 MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
247 MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
248 MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN 0x1b0b0
249 MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
250 MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
251 MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2 0x40017051
252 >;
253 };
254
255 pinctrl_enet2_mdio: mdioenet2grp {
256 fsl,pins = <
257 MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
258 MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
259 >;
260 };
261
262 pinctrl_flexcan1: flexcan1grp{
263 fsl,pins = <
264 MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
265 MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
266 >;
267 };
268 pinctrl_flexcan2: flexcan2grp{
269 fsl,pins = <
270 MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX 0x1b020
271 MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX 0x1b020
272 >;
273 };
274
275 pinctrl_lcdif_dat0_17: lcdifdatgrp0-17 {
276 fsl,pins = <
277 MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x79
278 MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x79
279 MX6UL_PAD_LCD_DATA02__LCDIF_DATA02 0x79
280 MX6UL_PAD_LCD_DATA03__LCDIF_DATA03 0x79
281 MX6UL_PAD_LCD_DATA04__LCDIF_DATA04 0x79
282 MX6UL_PAD_LCD_DATA05__LCDIF_DATA05 0x79
283 MX6UL_PAD_LCD_DATA06__LCDIF_DATA06 0x79
284 MX6UL_PAD_LCD_DATA07__LCDIF_DATA07 0x79
285 MX6UL_PAD_LCD_DATA08__LCDIF_DATA08 0x79
286 MX6UL_PAD_LCD_DATA09__LCDIF_DATA09 0x79
287 MX6UL_PAD_LCD_DATA10__LCDIF_DATA10 0x79
288 MX6UL_PAD_LCD_DATA11__LCDIF_DATA11 0x79
289 MX6UL_PAD_LCD_DATA12__LCDIF_DATA12 0x79
290 MX6UL_PAD_LCD_DATA13__LCDIF_DATA13 0x79
291 MX6UL_PAD_LCD_DATA14__LCDIF_DATA14 0x79
292 MX6UL_PAD_LCD_DATA15__LCDIF_DATA15 0x79
293 MX6UL_PAD_LCD_DATA16__LCDIF_DATA16 0x79
294 MX6UL_PAD_LCD_DATA17__LCDIF_DATA17 0x79
295 >;
296 };
297
298 pinctrl_lcdif_clken: lcdifctrlgrp1 {
299 fsl,pins = <
300 MX6UL_PAD_LCD_CLK__LCDIF_CLK 0x17050
301 MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE 0x79
302 >;
303 };
304
305 pinctrl_lcdif_hvsync: lcdifctrlgrp2 {
306 fsl,pins = <
307 MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC 0x79
308 MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC 0x79
309 >;
310 };
311
312 pinctrl_pwm4: pwm4grp {
313 fsl,pins = <
314 MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0
315 >;
316 };
317
318 pinctrl_pwm5: pwm5grp {
319 fsl,pins = <
320 MX6UL_PAD_NAND_DQS__PWM5_OUT 0x110b0
321 >;
322 };
323
324 pinctrl_sai2: sai2grp {
325 fsl,pins = <
326 MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x11088
327 MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x11088
328 MX6UL_PAD_JTAG_TMS__SAI2_MCLK 0x17088
329 MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
330 MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
331 /* Interrupt */
332 MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x10b0
333 >;
334 };
335
336 pinctrl_sai2_sleep: sai2grp-sleep {
337 fsl,pins = <
338 MX6UL_PAD_JTAG_TRST_B__GPIO1_IO15 0x3000
339 MX6UL_PAD_JTAG_TCK__GPIO1_IO14 0x3000
340 MX6UL_PAD_JTAG_TMS__GPIO1_IO11 0x3000
341 MX6UL_PAD_JTAG_TDO__GPIO1_IO12 0x3000
342 /* Interrupt */
343 MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x3000
344 >;
345 };
346
347 pinctrl_uart2_4wires: uart2grp-4wires {
348 fsl,pins = <
349 MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX 0x1b0b1
350 MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX 0x1b0b1
351 MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS 0x1b0b1
352 MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS 0x1b0b1
353 >;
354 };
355
356 pinctrl_uart3_2wires: uart3grp-2wires {
357 fsl,pins = <
358 MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX 0x1b0b1
359 MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX 0x1b0b1
360 >;
361 };
362
363 pinctrl_uart5: uart5grp {
364 fsl,pins = <
365 MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x1b0b1
366 MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1
367 >;
368 };
369
370 pinctrl_usdhc2: usdhc2grp {
371 fsl,pins = <
372 MX6UL_PAD_CSI_HSYNC__USDHC2_CMD 0x17059
373 MX6UL_PAD_CSI_VSYNC__USDHC2_CLK 0x10039
374 MX6UL_PAD_CSI_DATA00__USDHC2_DATA0 0x17059
375 MX6UL_PAD_CSI_DATA01__USDHC2_DATA1 0x17059
376 MX6UL_PAD_CSI_DATA02__USDHC2_DATA2 0x17059
377 MX6UL_PAD_CSI_DATA03__USDHC2_DATA3 0x17059
378 /* Mux selector between eMMC/SD# */
379 MX6UL_PAD_SNVS_TAMPER1__GPIO5_IO01 0x79
380 >;
381 };
382
383 pinctrl_usbotg1: usbotg1grp {
384 fsl,pins = <
385 MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID 0x17059
386 MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x17059
387 MX6UL_PAD_GPIO1_IO01__USB_OTG1_OC 0x17059
388 >;
389 };
390};
diff --git a/arch/arm/boot/dts/imx6ul-geam.dts b/arch/arm/boot/dts/imx6ul-geam.dts
index d81d20f8fc8d..e22ec5be2b78 100644
--- a/arch/arm/boot/dts/imx6ul-geam.dts
+++ b/arch/arm/boot/dts/imx6ul-geam.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
@@ -328,7 +292,7 @@
328 >; 292 >;
329 }; 293 };
330 294
331 pinctrl_gpmi_nand: gpmi-nand { 295 pinctrl_gpmi_nand: gpminandgrp {
332 fsl,pins = < 296 fsl,pins = <
333 MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1 297 MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1
334 MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1 298 MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1
diff --git a/arch/arm/boot/dts/imx6ul-isiot-emmc.dts b/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
index f5b422898e61..1df3e376ae2c 100644
--- a/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
+++ b/arch/arm/boot/dts/imx6ul-isiot-emmc.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
@@ -50,28 +14,5 @@
50}; 14};
51 15
52&usdhc2 { 16&usdhc2 {
53 pinctrl-names = "default";
54 pinctrl-0 = <&pinctrl_usdhc2>;
55 cd-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;
56 bus-width = <8>;
57 no-1-8-v;
58 status = "okay"; 17 status = "okay";
59}; 18};
60
61&iomuxc {
62 pinctrl_usdhc2: usdhc2grp {
63 fsl,pins = <
64 MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x17070
65 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x10070
66 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17070
67 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17070
68 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17070
69 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17070
70 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17070
71 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17070
72 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17070
73 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17070
74 MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x17070
75 >;
76 };
77};
diff --git a/arch/arm/boot/dts/imx6ul-isiot-nand.dts b/arch/arm/boot/dts/imx6ul-isiot-nand.dts
index de15e1c75dd1..8c26d4d1a7bf 100644
--- a/arch/arm/boot/dts/imx6ul-isiot-nand.dts
+++ b/arch/arm/boot/dts/imx6ul-isiot-nand.dts
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43/dts-v1/; 7/dts-v1/;
@@ -50,30 +14,5 @@
50}; 14};
51 15
52&gpmi { 16&gpmi {
53 pinctrl-names = "default";
54 pinctrl-0 = <&pinctrl_gpmi_nand>;
55 nand-on-flash-bbt;
56 status = "okay"; 17 status = "okay";
57}; 18};
58
59&iomuxc {
60 pinctrl_gpmi_nand: gpmi-nand {
61 fsl,pins = <
62 MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1
63 MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1
64 MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0xb0b1
65 MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
66 MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0xb0b1
67 MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0xb0b1
68 MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0xb0b1
69 MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0xb0b1
70 MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0xb0b1
71 MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0xb0b1
72 MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0xb0b1
73 MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0xb0b1
74 MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0xb0b1
75 MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0xb0b1
76 MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0xb0b1
77 >;
78 };
79};
diff --git a/arch/arm/boot/dts/imx6ul-isiot.dtsi b/arch/arm/boot/dts/imx6ul-isiot.dtsi
index cd9928551154..b1fa3f0a684d 100644
--- a/arch/arm/boot/dts/imx6ul-isiot.dtsi
+++ b/arch/arm/boot/dts/imx6ul-isiot.dtsi
@@ -1,43 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 OR X11
1/* 2/*
2 * Copyright (C) 2016 Amarula Solutions B.V. 3 * Copyright (C) 2016 Amarula Solutions B.V.
3 * Copyright (C) 2016 Engicam S.r.l. 4 * Copyright (C) 2016 Engicam S.r.l.
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * version 2 as published by the Free Software Foundation.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */ 5 */
42 6
43#include <dt-bindings/gpio/gpio.h> 7#include <dt-bindings/gpio/gpio.h>
@@ -133,6 +97,13 @@
133 }; 97 };
134}; 98};
135 99
100&gpmi {
101 pinctrl-names = "default";
102 pinctrl-0 = <&pinctrl_gpmi_nand>;
103 nand-on-flash-bbt;
104 status = "disabled";
105};
106
136&i2c1 { 107&i2c1 {
137 clock-frequency = <100000>; 108 clock-frequency = <100000>;
138 pinctrl-names = "default"; 109 pinctrl-names = "default";
@@ -243,6 +214,15 @@
243 status = "okay"; 214 status = "okay";
244}; 215};
245 216
217&usdhc2 {
218 pinctrl-names = "default";
219 pinctrl-0 = <&pinctrl_usdhc2>;
220 cd-gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;
221 bus-width = <8>;
222 no-1-8-v;
223 status = "disabled";
224};
225
246&iomuxc { 226&iomuxc {
247 pinctrl_enet1: enet1grp { 227 pinctrl_enet1: enet1grp {
248 fsl,pins = < 228 fsl,pins = <
@@ -259,6 +239,26 @@
259 >; 239 >;
260 }; 240 };
261 241
242 pinctrl_gpmi_nand: gpminandgrp {
243 fsl,pins = <
244 MX6UL_PAD_NAND_CLE__RAWNAND_CLE 0xb0b1
245 MX6UL_PAD_NAND_ALE__RAWNAND_ALE 0xb0b1
246 MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B 0xb0b1
247 MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
248 MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B 0xb0b1
249 MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B 0xb0b1
250 MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B 0xb0b1
251 MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00 0xb0b1
252 MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01 0xb0b1
253 MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02 0xb0b1
254 MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03 0xb0b1
255 MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04 0xb0b1
256 MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05 0xb0b1
257 MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06 0xb0b1
258 MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07 0xb0b1
259 >;
260 };
261
262 pinctrl_i2c1: i2c1grp { 262 pinctrl_i2c1: i2c1grp {
263 fsl,pins = < 263 fsl,pins = <
264 MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0 264 MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
@@ -366,4 +366,20 @@
366 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9 366 MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
367 >; 367 >;
368 }; 368 };
369
370 pinctrl_usdhc2: usdhc2grp {
371 fsl,pins = <
372 MX6UL_PAD_NAND_RE_B__USDHC2_CLK 0x17070
373 MX6UL_PAD_NAND_WE_B__USDHC2_CMD 0x10070
374 MX6UL_PAD_NAND_DATA00__USDHC2_DATA0 0x17070
375 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x17070
376 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x17070
377 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x17070
378 MX6UL_PAD_NAND_DATA04__USDHC2_DATA4 0x17070
379 MX6UL_PAD_NAND_DATA05__USDHC2_DATA5 0x17070
380 MX6UL_PAD_NAND_DATA06__USDHC2_DATA6 0x17070
381 MX6UL_PAD_NAND_DATA07__USDHC2_DATA7 0x17070
382 MX6UL_PAD_NAND_ALE__USDHC2_RESET_B 0x17070
383 >;
384 };
369}; 385};
diff --git a/arch/arm/boot/dts/imx6ul.dtsi b/arch/arm/boot/dts/imx6ul.dtsi
index 6dc0b569acdf..083d3446c41d 100644
--- a/arch/arm/boot/dts/imx6ul.dtsi
+++ b/arch/arm/boot/dts/imx6ul.dtsi
@@ -89,6 +89,8 @@
89 "pll1_sys"; 89 "pll1_sys";
90 arm-supply = <&reg_arm>; 90 arm-supply = <&reg_arm>;
91 soc-supply = <&reg_soc>; 91 soc-supply = <&reg_soc>;
92 nvmem-cells = <&cpu_speed_grade>;
93 nvmem-cell-names = "speed_grade";
92 }; 94 };
93 }; 95 };
94 96
@@ -156,7 +158,6 @@
156 compatible = "arm,cortex-a7-pmu"; 158 compatible = "arm,cortex-a7-pmu";
157 interrupt-parent = <&gpc>; 159 interrupt-parent = <&gpc>;
158 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; 160 interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
159 status = "disabled";
160 }; 161 };
161 162
162 soc { 163 soc {
@@ -218,7 +219,7 @@
218 reg = <0x02000000 0x40000>; 219 reg = <0x02000000 0x40000>;
219 ranges; 220 ranges;
220 221
221 ecspi1: ecspi@2008000 { 222 ecspi1: spi@2008000 {
222 #address-cells = <1>; 223 #address-cells = <1>;
223 #size-cells = <0>; 224 #size-cells = <0>;
224 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 225 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -230,7 +231,7 @@
230 status = "disabled"; 231 status = "disabled";
231 }; 232 };
232 233
233 ecspi2: ecspi@200c000 { 234 ecspi2: spi@200c000 {
234 #address-cells = <1>; 235 #address-cells = <1>;
235 #size-cells = <0>; 236 #size-cells = <0>;
236 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 237 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -242,7 +243,7 @@
242 status = "disabled"; 243 status = "disabled";
243 }; 244 };
244 245
245 ecspi3: ecspi@2010000 { 246 ecspi3: spi@2010000 {
246 #address-cells = <1>; 247 #address-cells = <1>;
247 #size-cells = <0>; 248 #size-cells = <0>;
248 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 249 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -254,7 +255,7 @@
254 status = "disabled"; 255 status = "disabled";
255 }; 256 };
256 257
257 ecspi4: ecspi@2014000 { 258 ecspi4: spi@2014000 {
258 #address-cells = <1>; 259 #address-cells = <1>;
259 #size-cells = <0>; 260 #size-cells = <0>;
260 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi"; 261 compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
@@ -918,6 +919,17 @@
918 reg = <0x021b0000 0x4000>; 919 reg = <0x021b0000 0x4000>;
919 }; 920 };
920 921
922 weim: weim@21b8000 {
923 #address-cells = <2>;
924 #size-cells = <1>;
925 compatible = "fsl,imx6ul-weim", "fsl,imx6q-weim";
926 reg = <0x021b8000 0x4000>;
927 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
928 clocks = <&clks IMX6UL_CLK_EIM>;
929 fsl,weim-cs-gpr = <&gpr>;
930 status = "disabled";
931 };
932
921 ocotp: ocotp-ctrl@21bc000 { 933 ocotp: ocotp-ctrl@21bc000 {
922 #address-cells = <1>; 934 #address-cells = <1>;
923 #size-cells = <1>; 935 #size-cells = <1>;
@@ -932,6 +944,10 @@
932 tempmon_temp_grade: temp-grade@20 { 944 tempmon_temp_grade: temp-grade@20 {
933 reg = <0x20 4>; 945 reg = <0x20 4>;
934 }; 946 };
947
948 cpu_speed_grade: speed-grade@10 {
949 reg = <0x10 4>;
950 };
935 }; 951 };
936 952
937 lcdif: lcdif@21c8000 { 953 lcdif: lcdif@21c8000 {
@@ -945,7 +961,7 @@
945 status = "disabled"; 961 status = "disabled";
946 }; 962 };
947 963
948 qspi: qspi@21e0000 { 964 qspi: spi@21e0000 {
949 #address-cells = <1>; 965 #address-cells = <1>;
950 #size-cells = <0>; 966 #size-cells = <0>;
951 compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi"; 967 compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
diff --git a/arch/arm/boot/dts/imx6ull-14x14-evk.dts b/arch/arm/boot/dts/imx6ull-14x14-evk.dts
index 30ef60344af3..0ba64546c13b 100644
--- a/arch/arm/boot/dts/imx6ull-14x14-evk.dts
+++ b/arch/arm/boot/dts/imx6ull-14x14-evk.dts
@@ -45,7 +45,7 @@
45#include "imx6ul-14x14-evk.dtsi" 45#include "imx6ul-14x14-evk.dtsi"
46 46
47/ { 47/ {
48 model = "Freescale i.MX6 UlltraLite 14x14 EVK Board"; 48 model = "Freescale i.MX6 UltraLiteLite 14x14 EVK Board";
49 compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull"; 49 compatible = "fsl,imx6ull-14x14-evk", "fsl,imx6ull";
50}; 50};
51 51
diff --git a/arch/arm/boot/dts/imx6ull-pinfunc.h b/arch/arm/boot/dts/imx6ull-pinfunc.h
index fdc46bb09cc1..a282a31a4bae 100644
--- a/arch/arm/boot/dts/imx6ull-pinfunc.h
+++ b/arch/arm/boot/dts/imx6ull-pinfunc.h
@@ -14,14 +14,38 @@
14 * The pin function ID is a tuple of 14 * The pin function ID is a tuple of
15 * <mux_reg conf_reg input_reg mux_mode input_val> 15 * <mux_reg conf_reg input_reg mux_mode input_val>
16 */ 16 */
17/* signals common for i.MX6UL and i.MX6ULL */
18#undef MX6UL_PAD_UART5_TX_DATA__UART5_DTE_RX
19#define MX6UL_PAD_UART5_TX_DATA__UART5_DTE_RX 0x00BC 0x0348 0x0644 0x0 0x6
20#undef MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX
21#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00C0 0x034C 0x0644 0x0 0x7
22#undef MX6UL_PAD_ENET1_RX_EN__UART5_DCE_RTS
23#define MX6UL_PAD_ENET1_RX_EN__UART5_DCE_RTS 0x00CC 0x0358 0x0640 0x1 0x5
24#undef MX6UL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS
25#define MX6UL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS 0x00D0 0x035C 0x0640 0x1 0x6
26#undef MX6UL_PAD_CSI_DATA02__UART5_DCE_RTS
27#define MX6UL_PAD_CSI_DATA02__UART5_DCE_RTS 0x01EC 0x0478 0x0640 0x8 0x7
28
29/* signals for i.MX6ULL only */
30#define MX6ULL_PAD_UART1_TX_DATA__UART5_DCE_TX 0x0084 0x0310 0x0000 0x9 0x0
17#define MX6ULL_PAD_UART1_TX_DATA__UART5_DTE_RX 0x0084 0x0310 0x0644 0x9 0x4 31#define MX6ULL_PAD_UART1_TX_DATA__UART5_DTE_RX 0x0084 0x0310 0x0644 0x9 0x4
18#define MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0644 0x9 0x5 32#define MX6ULL_PAD_UART1_RX_DATA__UART5_DCE_RX 0x0088 0x0314 0x0644 0x9 0x5
19#define MX6ULL_PAD_UART1_CTS_B__UART5_DCE_RTS 0x008C 0x0318 0x0640 0x9 0x3 33#define MX6ULL_PAD_UART1_RX_DATA__UART5_DTE_TX 0x0088 0x0314 0x0000 0x9 0x0
20#define MX6ULL_PAD_UART1_RTS_B__UART5_DTE_RTS 0x0090 0x031C 0x0640 0x9 0x4 34#define MX6ULL_PAD_UART1_CTS_B__UART5_DCE_CTS 0x008C 0x0318 0x0000 0x9 0x0
21#define MX6ULL_PAD_UART5_TX_DATA__UART5_DTE_RX 0x00BC 0x0348 0x0644 0x0 0x6 35#define MX6ULL_PAD_UART1_CTS_B__UART5_DTE_RTS 0x008C 0x0318 0x0640 0x9 0x3
22#define MX6ULL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x00C0 0x034C 0x0644 0x0 0x7 36#define MX6ULL_PAD_UART1_RTS_B__UART5_DCE_RTS 0x0090 0x031C 0x0640 0x9 0x4
23#define MX6ULL_PAD_ENET1_RX_EN__UART5_DCE_RTS 0x00CC 0x0358 0x0640 0x1 0x5 37#define MX6ULL_PAD_UART1_RTS_B__UART5_DTE_CTS 0x0090 0x031C 0x0000 0x9 0x0
24#define MX6ULL_PAD_ENET1_TX_DATA0__UART5_DTE_RTS 0x00D0 0x035C 0x0640 0x1 0x6 38#define MX6ULL_PAD_UART4_RX_DATA__EPDC_PWRCTRL01 0x00B8 0x0344 0x0000 0x9 0x0
39#define MX6ULL_PAD_UART5_TX_DATA__EPDC_PWRCTRL02 0x00BC 0x0348 0x0000 0x9 0x0
40#define MX6ULL_PAD_UART5_RX_DATA__EPDC_PWRCTRL03 0x00C0 0x034C 0x0000 0x9 0x0
41#define MX6ULL_PAD_ENET1_RX_DATA0__EPDC_SDCE04 0x00C4 0x0350 0x0000 0x9 0x0
42#define MX6ULL_PAD_ENET1_RX_DATA1__EPDC_SDCE05 0x00C8 0x0354 0x0000 0x9 0x0
43#define MX6ULL_PAD_ENET1_RX_EN__EPDC_SDCE06 0x00CC 0x0358 0x0000 0x9 0x0
44#define MX6ULL_PAD_ENET1_TX_DATA0__EPDC_SDCE07 0x00D0 0x035C 0x0000 0x9 0x0
45#define MX6ULL_PAD_ENET1_TX_DATA1__EPDC_SDCE08 0x00D4 0x0360 0x0000 0x9 0x0
46#define MX6ULL_PAD_ENET1_TX_EN__EPDC_SDCE09 0x00D8 0x0364 0x0000 0x9 0x0
47#define MX6ULL_PAD_ENET1_TX_CLK__EPDC_SDOED 0x00DC 0x0368 0x0000 0x9 0x0
48#define MX6ULL_PAD_ENET1_RX_ER__EPDC_SDOEZ 0x00E0 0x036C 0x0000 0x9 0x0
25#define MX6ULL_PAD_ENET2_RX_DATA0__EPDC_SDDO08 0x00E4 0x0370 0x0000 0x9 0x0 49#define MX6ULL_PAD_ENET2_RX_DATA0__EPDC_SDDO08 0x00E4 0x0370 0x0000 0x9 0x0
26#define MX6ULL_PAD_ENET2_RX_DATA1__EPDC_SDDO09 0x00E8 0x0374 0x0000 0x9 0x0 50#define MX6ULL_PAD_ENET2_RX_DATA1__EPDC_SDDO09 0x00E8 0x0374 0x0000 0x9 0x0
27#define MX6ULL_PAD_ENET2_RX_EN__EPDC_SDDO10 0x00EC 0x0378 0x0000 0x9 0x0 51#define MX6ULL_PAD_ENET2_RX_EN__EPDC_SDDO10 0x00EC 0x0378 0x0000 0x9 0x0
@@ -48,6 +72,8 @@
48#define MX6ULL_PAD_LCD_DATA16__EPDC_GDCLK 0x0158 0x03E4 0x0000 0x9 0x0 72#define MX6ULL_PAD_LCD_DATA16__EPDC_GDCLK 0x0158 0x03E4 0x0000 0x9 0x0
49#define MX6ULL_PAD_LCD_DATA17__EPDC_GDSP 0x015C 0x03E8 0x0000 0x9 0x0 73#define MX6ULL_PAD_LCD_DATA17__EPDC_GDSP 0x015C 0x03E8 0x0000 0x9 0x0
50#define MX6ULL_PAD_LCD_DATA21__EPDC_SDCE1 0x016C 0x03F8 0x0000 0x9 0x0 74#define MX6ULL_PAD_LCD_DATA21__EPDC_SDCE1 0x016C 0x03F8 0x0000 0x9 0x0
75#define MX6ULL_PAD_LCD_DATA22__EPDC_SDCE02 0x0170 0x03FC 0x0000 0x9 0x0
76#define MX6ULL_PAD_LCD_DATA23__EPDC_SDCE03 0x0174 0x0400 0x0000 0x9 0x0
51#define MX6ULL_PAD_CSI_MCLK__ESAI_TX3_RX2 0x01D4 0x0460 0x0000 0x9 0x0 77#define MX6ULL_PAD_CSI_MCLK__ESAI_TX3_RX2 0x01D4 0x0460 0x0000 0x9 0x0
52#define MX6ULL_PAD_CSI_PIXCLK__ESAI_TX2_RX3 0x01D8 0x0464 0x0000 0x9 0x0 78#define MX6ULL_PAD_CSI_PIXCLK__ESAI_TX2_RX3 0x01D8 0x0464 0x0000 0x9 0x0
53#define MX6ULL_PAD_CSI_VSYNC__ESAI_TX4_RX1 0x01DC 0x0468 0x0000 0x9 0x0 79#define MX6ULL_PAD_CSI_VSYNC__ESAI_TX4_RX1 0x01DC 0x0468 0x0000 0x9 0x0
@@ -55,7 +81,6 @@
55#define MX6ULL_PAD_CSI_DATA00__ESAI_TX_HF_CLK 0x01E4 0x0470 0x0000 0x9 0x0 81#define MX6ULL_PAD_CSI_DATA00__ESAI_TX_HF_CLK 0x01E4 0x0470 0x0000 0x9 0x0
56#define MX6ULL_PAD_CSI_DATA01__ESAI_RX_HF_CLK 0x01E8 0x0474 0x0000 0x9 0x0 82#define MX6ULL_PAD_CSI_DATA01__ESAI_RX_HF_CLK 0x01E8 0x0474 0x0000 0x9 0x0
57#define MX6ULL_PAD_CSI_DATA02__ESAI_RX_FS 0x01EC 0x0478 0x0000 0x9 0x0 83#define MX6ULL_PAD_CSI_DATA02__ESAI_RX_FS 0x01EC 0x0478 0x0000 0x9 0x0
58#define MX6ULL_PAD_CSI_DATA02__UART5_DCE_RTS 0x01EC 0x0478 0x0640 0x8 0x7
59#define MX6ULL_PAD_CSI_DATA03__ESAI_RX_CLK 0x01F0 0x047C 0x0000 0x9 0x0 84#define MX6ULL_PAD_CSI_DATA03__ESAI_RX_CLK 0x01F0 0x047C 0x0000 0x9 0x0
60#define MX6ULL_PAD_CSI_DATA04__ESAI_TX_FS 0x01F4 0x0480 0x0000 0x9 0x0 85#define MX6ULL_PAD_CSI_DATA04__ESAI_TX_FS 0x01F4 0x0480 0x0000 0x9 0x0
61#define MX6ULL_PAD_CSI_DATA05__ESAI_TX_CLK 0x01F8 0x0484 0x0000 0x9 0x0 86#define MX6ULL_PAD_CSI_DATA05__ESAI_TX_CLK 0x01F8 0x0484 0x0000 0x9 0x0
diff --git a/arch/arm/boot/dts/imx6ull.dtsi b/arch/arm/boot/dts/imx6ull.dtsi
index cd1776a7015a..796ed35d4ac9 100644
--- a/arch/arm/boot/dts/imx6ull.dtsi
+++ b/arch/arm/boot/dts/imx6ull.dtsi
@@ -22,7 +22,7 @@
22 >; 22 >;
23 fsl,soc-operating-points = < 23 fsl,soc-operating-points = <
24 /* KHz uV */ 24 /* KHz uV */
25 900000 1175000 25 900000 1250000
26 792000 1175000 26 792000 1175000
27 528000 1175000 27 528000 1175000
28 396000 1175000 28 396000 1175000
diff --git a/arch/arm/boot/dts/imx6ulz-14x14-evk.dts b/arch/arm/boot/dts/imx6ulz-14x14-evk.dts
new file mode 100644
index 000000000000..6f1af240e0ce
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ulz-14x14-evk.dts
@@ -0,0 +1,20 @@
1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2//
3// Copyright 2018 NXP.
4
5/dts-v1/;
6
7#include "imx6ulz.dtsi"
8#include "imx6ul-14x14-evk.dtsi"
9
10/delete-node/ &fec1;
11/delete-node/ &fec2;
12/delete-node/ &lcdif;
13/delete-node/ &tsc;
14
15/ {
16 model = "Freescale i.MX6 ULZ 14x14 EVK Board";
17 compatible = "fsl,imx6ulz-14x14-evk", "fsl,imx6ull", "fsl,imx6ulz";
18
19 /delete-node/ panel;
20};
diff --git a/arch/arm/boot/dts/imx6ulz.dtsi b/arch/arm/boot/dts/imx6ulz.dtsi
new file mode 100644
index 000000000000..ae6d7e593769
--- /dev/null
+++ b/arch/arm/boot/dts/imx6ulz.dtsi
@@ -0,0 +1,38 @@
1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2//
3// Copyright 2018 NXP.
4
5#include "imx6ull.dtsi"
6
7/ {
8 aliases {
9 /delete-property/ ethernet0;
10 /delete-property/ ethernet1;
11 /delete-property/ i2c2;
12 /delete-property/ i2c3;
13 /delete-property/ serial4;
14 /delete-property/ serial5;
15 /delete-property/ serial6;
16 /delete-property/ serial7;
17 /delete-property/ spi2;
18 /delete-property/ spi3;
19 };
20};
21
22/delete-node/ &adc1;
23/delete-node/ &can1;
24/delete-node/ &can2;
25/delete-node/ &ecspi3;
26/delete-node/ &ecspi4;
27/delete-node/ &epit2;
28/delete-node/ &gpt2;
29/delete-node/ &i2c3;
30/delete-node/ &i2c4;
31/delete-node/ &pwm5;
32/delete-node/ &pwm6;
33/delete-node/ &pwm7;
34/delete-node/ &pwm8;
35/delete-node/ &uart5;
36/delete-node/ &uart6;
37/delete-node/ &uart7;
38/delete-node/ &uart8;
diff --git a/arch/arm/boot/dts/imx7d-sdb.dts b/arch/arm/boot/dts/imx7d-sdb.dts
index c9b3c60b0eb2..f1bafdaa7e1a 100644
--- a/arch/arm/boot/dts/imx7d-sdb.dts
+++ b/arch/arm/boot/dts/imx7d-sdb.dts
@@ -27,12 +27,14 @@
27 label = "Volume Up"; 27 label = "Volume Up";
28 gpios = <&gpio5 11 GPIO_ACTIVE_LOW>; 28 gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
29 linux,code = <KEY_VOLUMEUP>; 29 linux,code = <KEY_VOLUMEUP>;
30 wakeup-source;
30 }; 31 };
31 32
32 volume-down { 33 volume-down {
33 label = "Volume Down"; 34 label = "Volume Down";
34 gpios = <&gpio5 10 GPIO_ACTIVE_LOW>; 35 gpios = <&gpio5 10 GPIO_ACTIVE_LOW>;
35 linux,code = <KEY_VOLUMEDOWN>; 36 linux,code = <KEY_VOLUMEDOWN>;
37 wakeup-source;
36 }; 38 };
37 }; 39 };
38 40
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index efbdeaaa8dcd..826224bf7f4f 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -20,6 +20,7 @@
20 reg = <1>; 20 reg = <1>;
21 clock-frequency = <996000000>; 21 clock-frequency = <996000000>;
22 operating-points-v2 = <&cpu0_opp_table>; 22 operating-points-v2 = <&cpu0_opp_table>;
23 cpu-idle-states = <&cpu_sleep_wait>;
23 }; 24 };
24 }; 25 };
25 26
@@ -63,9 +64,11 @@
63 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 64 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
64 clock-names = "apb_pclk"; 65 clock-names = "apb_pclk";
65 66
66 port { 67 out-ports {
67 etm1_out_port: endpoint { 68 port {
68 remote-endpoint = <&ca_funnel_in_port1>; 69 etm1_out_port: endpoint {
70 remote-endpoint = <&ca_funnel_in_port1>;
71 };
69 }; 72 };
70 }; 73 };
71 }; 74 };
@@ -153,11 +156,13 @@
153 }; 156 };
154}; 157};
155 158
156&ca_funnel_ports { 159&ca_funnel_in_ports {
160 #address-cells = <1>;
161 #size-cells = <0>;
162
157 port@1 { 163 port@1 {
158 reg = <1>; 164 reg = <1>;
159 ca_funnel_in_port1: endpoint { 165 ca_funnel_in_port1: endpoint {
160 slave-mode;
161 remote-endpoint = <&etm1_out_port>; 166 remote-endpoint = <&etm1_out_port>;
162 }; 167 };
163 }; 168 };
diff --git a/arch/arm/boot/dts/imx7s-warp.dts b/arch/arm/boot/dts/imx7s-warp.dts
index fa390da636de..f7ba2c0a24ad 100644
--- a/arch/arm/boot/dts/imx7s-warp.dts
+++ b/arch/arm/boot/dts/imx7s-warp.dts
@@ -1,44 +1,7 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (C) 2016 NXP Semiconductors. 3 * Copyright (C) 2016 NXP Semiconductors.
3 * Author: Fabio Estevam <fabio.estevam@nxp.com> 4 * Author: Fabio Estevam <fabio.estevam@nxp.com>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */ 5 */
43 6
44/dts-v1/; 7/dts-v1/;
@@ -216,6 +179,13 @@
216 status = "okay"; 179 status = "okay";
217}; 180};
218 181
182&i2c3 {
183 clock-frequency = <100000>;
184 pinctrl-names = "default";
185 pinctrl-0 = <&pinctrl_i2c3>;
186 status = "okay";
187};
188
219&i2c4 { 189&i2c4 {
220 clock-frequency = <100000>; 190 clock-frequency = <100000>;
221 pinctrl-names = "default"; 191 pinctrl-names = "default";
@@ -346,6 +316,13 @@
346 >; 316 >;
347 }; 317 };
348 318
319 pinctrl_i2c3: i2c3grp {
320 fsl,pins = <
321 MX7D_PAD_I2C3_SDA__I2C3_SDA 0x4000007f
322 MX7D_PAD_I2C3_SCL__I2C3_SCL 0x4000007f
323 >;
324 };
325
349 pinctrl_i2c4: i2c4grp { 326 pinctrl_i2c4: i2c4grp {
350 fsl,pins = < 327 fsl,pins = <
351 MX7D_PAD_I2C4_SCL__I2C4_SCL 0x4000007f 328 MX7D_PAD_I2C4_SCL__I2C4_SCL 0x4000007f
diff --git a/arch/arm/boot/dts/imx7s.dtsi b/arch/arm/boot/dts/imx7s.dtsi
index a052198f6e96..aa8df7d93b2e 100644
--- a/arch/arm/boot/dts/imx7s.dtsi
+++ b/arch/arm/boot/dts/imx7s.dtsi
@@ -54,6 +54,19 @@
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <0>; 55 #size-cells = <0>;
56 56
57 idle-states {
58 entry-method = "psci";
59
60 cpu_sleep_wait: cpu-sleep-wait {
61 compatible = "arm,idle-state";
62 arm,psci-suspend-param = <0x0010000>;
63 local-timer-stop;
64 entry-latency-us = <100>;
65 exit-latency-us = <50>;
66 min-residency-us = <1000>;
67 };
68 };
69
57 cpu0: cpu@0 { 70 cpu0: cpu@0 {
58 compatible = "arm,cortex-a7"; 71 compatible = "arm,cortex-a7";
59 device_type = "cpu"; 72 device_type = "cpu";
@@ -61,6 +74,7 @@
61 clock-frequency = <792000000>; 74 clock-frequency = <792000000>;
62 clock-latency = <61036>; /* two CLK32 periods */ 75 clock-latency = <61036>; /* two CLK32 periods */
63 clocks = <&clks IMX7D_CLK_ARM>; 76 clocks = <&clks IMX7D_CLK_ARM>;
77 cpu-idle-states = <&cpu_sleep_wait>;
64 }; 78 };
65 }; 79 };
66 80
@@ -106,7 +120,7 @@
106 */ 120 */
107 compatible = "arm,coresight-replicator"; 121 compatible = "arm,coresight-replicator";
108 122
109 ports { 123 out-ports {
110 #address-cells = <1>; 124 #address-cells = <1>;
111 #size-cells = <0>; 125 #size-cells = <0>;
112 /* replicator output ports */ 126 /* replicator output ports */
@@ -123,12 +137,11 @@
123 remote-endpoint = <&etr_in_port>; 137 remote-endpoint = <&etr_in_port>;
124 }; 138 };
125 }; 139 };
140 };
126 141
127 /* replicator input port */ 142 in-ports {
128 port@2 { 143 port {
129 reg = <0>;
130 replicator_in_port0: endpoint { 144 replicator_in_port0: endpoint {
131 slave-mode;
132 remote-endpoint = <&etf_out_port>; 145 remote-endpoint = <&etf_out_port>;
133 }; 146 };
134 }; 147 };
@@ -168,28 +181,23 @@
168 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 181 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
169 clock-names = "apb_pclk"; 182 clock-names = "apb_pclk";
170 183
171 ca_funnel_ports: ports { 184 ca_funnel_in_ports: in-ports {
172 #address-cells = <1>; 185 port {
173 #size-cells = <0>;
174
175 /* funnel input ports */
176 port@0 {
177 reg = <0>;
178 ca_funnel_in_port0: endpoint { 186 ca_funnel_in_port0: endpoint {
179 slave-mode;
180 remote-endpoint = <&etm0_out_port>; 187 remote-endpoint = <&etm0_out_port>;
181 }; 188 };
182 }; 189 };
183 190
184 /* funnel output port */ 191 /* the other input ports are not connect to anything */
185 port@2 { 192 };
186 reg = <0>; 193
194 out-ports {
195 port {
187 ca_funnel_out_port0: endpoint { 196 ca_funnel_out_port0: endpoint {
188 remote-endpoint = <&hugo_funnel_in_port0>; 197 remote-endpoint = <&hugo_funnel_in_port0>;
189 }; 198 };
190 }; 199 };
191 200
192 /* the other input ports are not connect to anything */
193 }; 201 };
194 }; 202 };
195 203
@@ -200,9 +208,11 @@
200 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 208 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
201 clock-names = "apb_pclk"; 209 clock-names = "apb_pclk";
202 210
203 port { 211 out-ports {
204 etm0_out_port: endpoint { 212 port {
205 remote-endpoint = <&ca_funnel_in_port0>; 213 etm0_out_port: endpoint {
214 remote-endpoint = <&ca_funnel_in_port0>;
215 };
206 }; 216 };
207 }; 217 };
208 }; 218 };
@@ -213,15 +223,13 @@
213 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 223 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
214 clock-names = "apb_pclk"; 224 clock-names = "apb_pclk";
215 225
216 ports { 226 in-ports {
217 #address-cells = <1>; 227 #address-cells = <1>;
218 #size-cells = <0>; 228 #size-cells = <0>;
219 229
220 /* funnel input ports */
221 port@0 { 230 port@0 {
222 reg = <0>; 231 reg = <0>;
223 hugo_funnel_in_port0: endpoint { 232 hugo_funnel_in_port0: endpoint {
224 slave-mode;
225 remote-endpoint = <&ca_funnel_out_port0>; 233 remote-endpoint = <&ca_funnel_out_port0>;
226 }; 234 };
227 }; 235 };
@@ -229,18 +237,18 @@
229 port@1 { 237 port@1 {
230 reg = <1>; 238 reg = <1>;
231 hugo_funnel_in_port1: endpoint { 239 hugo_funnel_in_port1: endpoint {
232 slave-mode; /* M4 input */ 240 /* M4 input */
233 }; 241 };
234 }; 242 };
243 /* the other input ports are not connect to anything */
244 };
235 245
236 port@2 { 246 out-ports {
237 reg = <0>; 247 port {
238 hugo_funnel_out_port0: endpoint { 248 hugo_funnel_out_port0: endpoint {
239 remote-endpoint = <&etf_in_port>; 249 remote-endpoint = <&etf_in_port>;
240 }; 250 };
241 }; 251 };
242
243 /* the other input ports are not connect to anything */
244 }; 252 };
245 }; 253 };
246 254
@@ -250,20 +258,16 @@
250 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 258 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
251 clock-names = "apb_pclk"; 259 clock-names = "apb_pclk";
252 260
253 ports { 261 in-ports {
254 #address-cells = <1>; 262 port {
255 #size-cells = <0>;
256
257 port@0 {
258 reg = <0>;
259 etf_in_port: endpoint { 263 etf_in_port: endpoint {
260 slave-mode;
261 remote-endpoint = <&hugo_funnel_out_port0>; 264 remote-endpoint = <&hugo_funnel_out_port0>;
262 }; 265 };
263 }; 266 };
267 };
264 268
265 port@1 { 269 out-ports {
266 reg = <0>; 270 port {
267 etf_out_port: endpoint { 271 etf_out_port: endpoint {
268 remote-endpoint = <&replicator_in_port0>; 272 remote-endpoint = <&replicator_in_port0>;
269 }; 273 };
@@ -277,10 +281,11 @@
277 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 281 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
278 clock-names = "apb_pclk"; 282 clock-names = "apb_pclk";
279 283
280 port { 284 in-ports {
281 etr_in_port: endpoint { 285 port {
282 slave-mode; 286 etr_in_port: endpoint {
283 remote-endpoint = <&replicator_out_port1>; 287 remote-endpoint = <&replicator_out_port1>;
288 };
284 }; 289 };
285 }; 290 };
286 }; 291 };
@@ -291,10 +296,11 @@
291 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>; 296 clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
292 clock-names = "apb_pclk"; 297 clock-names = "apb_pclk";
293 298
294 port { 299 in-ports {
295 tpiu_in_port: endpoint { 300 port {
296 slave-mode; 301 tpiu_in_port: endpoint {
297 remote-endpoint = <&replicator_out_port0>; 302 remote-endpoint = <&replicator_out_port0>;
303 };
298 }; 304 };
299 }; 305 };
300 }; 306 };
@@ -563,14 +569,6 @@
563 clock-names = "snvs-rtc"; 569 clock-names = "snvs-rtc";
564 }; 570 };
565 571
566 snvs_poweroff: snvs-poweroff {
567 compatible = "syscon-poweroff";
568 regmap = <&snvs>;
569 offset = <0x38>;
570 value = <0x60>;
571 mask = <0x60>;
572 };
573
574 snvs_pwrkey: snvs-powerkey { 572 snvs_pwrkey: snvs-powerkey {
575 compatible = "fsl,sec-v4.0-pwrkey"; 573 compatible = "fsl,sec-v4.0-pwrkey";
576 regmap = <&snvs>; 574 regmap = <&snvs>;
@@ -644,7 +642,7 @@
644 status = "disabled"; 642 status = "disabled";
645 }; 643 };
646 644
647 ecspi4: ecspi@30630000 { 645 ecspi4: spi@30630000 {
648 #address-cells = <1>; 646 #address-cells = <1>;
649 #size-cells = <0>; 647 #size-cells = <0>;
650 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 648 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
@@ -725,7 +723,7 @@
725 reg = <0x30800000 0x100000>; 723 reg = <0x30800000 0x100000>;
726 ranges; 724 ranges;
727 725
728 ecspi1: ecspi@30820000 { 726 ecspi1: spi@30820000 {
729 #address-cells = <1>; 727 #address-cells = <1>;
730 #size-cells = <0>; 728 #size-cells = <0>;
731 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 729 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
@@ -737,7 +735,7 @@
737 status = "disabled"; 735 status = "disabled";
738 }; 736 };
739 737
740 ecspi2: ecspi@30830000 { 738 ecspi2: spi@30830000 {
741 #address-cells = <1>; 739 #address-cells = <1>;
742 #size-cells = <0>; 740 #size-cells = <0>;
743 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 741 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
@@ -749,7 +747,7 @@
749 status = "disabled"; 747 status = "disabled";
750 }; 748 };
751 749
752 ecspi3: ecspi@30840000 { 750 ecspi3: spi@30840000 {
753 #address-cells = <1>; 751 #address-cells = <1>;
754 #size-cells = <0>; 752 #size-cells = <0>;
755 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi"; 753 compatible = "fsl,imx7d-ecspi", "fsl,imx51-ecspi";
@@ -974,6 +972,25 @@
974 status = "disabled"; 972 status = "disabled";
975 }; 973 };
976 974
975 mu0a: mailbox@30aa0000 {
976 compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu";
977 reg = <0x30aa0000 0x10000>;
978 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
979 clocks = <&clks IMX7D_MU_ROOT_CLK>;
980 #mbox-cells = <2>;
981 status = "disabled";
982 };
983
984 mu0b: mailbox@30ab0000 {
985 compatible = "fsl,imx7s-mu", "fsl,imx6sx-mu";
986 reg = <0x30ab0000 0x10000>;
987 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
988 clocks = <&clks IMX7D_MU_ROOT_CLK>;
989 #mbox-cells = <2>;
990 fsl,mu-side-b;
991 status = "disabled";
992 };
993
977 usbotg1: usb@30b10000 { 994 usbotg1: usb@30b10000 {
978 compatible = "fsl,imx7d-usb", "fsl,imx27-usb"; 995 compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
979 reg = <0x30b10000 0x200>; 996 reg = <0x30b10000 0x200>;
diff --git a/arch/arm/boot/dts/imx7ulp-pinfunc.h b/arch/arm/boot/dts/imx7ulp-pinfunc.h
index fe511775b518..85f6b017803a 100644
--- a/arch/arm/boot/dts/imx7ulp-pinfunc.h
+++ b/arch/arm/boot/dts/imx7ulp-pinfunc.h
@@ -116,6 +116,7 @@
116#define IMX7ULP_PAD_PTC13__LPI2C7_SDA 0x0034 0x030c 0x5 0x1 116#define IMX7ULP_PAD_PTC13__LPI2C7_SDA 0x0034 0x030c 0x5 0x1
117#define IMX7ULP_PAD_PTC13__TPM7_CLKIN 0x0034 0x02f4 0x6 0x1 117#define IMX7ULP_PAD_PTC13__TPM7_CLKIN 0x0034 0x02f4 0x6 0x1
118#define IMX7ULP_PAD_PTC13__FB_AD13 0x0034 0x0000 0x9 0x0 118#define IMX7ULP_PAD_PTC13__FB_AD13 0x0034 0x0000 0x9 0x0
119#define IMX7ULP_PAD_PTC13__USB0_ID 0x0034 0x0338 0xb 0x1
119#define IMX7ULP_PAD_PTC14__PTC14 0x0038 0x0000 0x1 0x0 120#define IMX7ULP_PAD_PTC14__PTC14 0x0038 0x0000 0x1 0x0
120#define IMX7ULP_PAD_PTC14__TRACE_D1 0x0038 0x0000 0xa 0x0 121#define IMX7ULP_PAD_PTC14__TRACE_D1 0x0038 0x0000 0xa 0x0
121#define IMX7ULP_PAD_PTC14__FXIO1_D10 0x0038 0x022c 0x2 0x1 122#define IMX7ULP_PAD_PTC14__FXIO1_D10 0x0038 0x022c 0x2 0x1
@@ -136,6 +137,7 @@
136#define IMX7ULP_PAD_PTC16__LPSPI3_SIN 0x0040 0x0324 0x3 0x1 137#define IMX7ULP_PAD_PTC16__LPSPI3_SIN 0x0040 0x0324 0x3 0x1
137#define IMX7ULP_PAD_PTC16__TPM7_CH2 0x0040 0x02e4 0x6 0x1 138#define IMX7ULP_PAD_PTC16__TPM7_CH2 0x0040 0x02e4 0x6 0x1
138#define IMX7ULP_PAD_PTC16__FB_ALE_FB_CS1_B_FB_TS_B 0x0040 0x0000 0x9 0x0 139#define IMX7ULP_PAD_PTC16__FB_ALE_FB_CS1_B_FB_TS_B 0x0040 0x0000 0x9 0x0
140#define IMX7ULP_PAD_PTC16__USB1_OC2 0x0040 0x0334 0xb 0x1
139#define IMX7ULP_PAD_PTC17__PTC17 0x0044 0x0000 0x1 0x0 141#define IMX7ULP_PAD_PTC17__PTC17 0x0044 0x0000 0x1 0x0
140#define IMX7ULP_PAD_PTC17__FXIO1_D13 0x0044 0x0238 0x2 0x1 142#define IMX7ULP_PAD_PTC17__FXIO1_D13 0x0044 0x0238 0x2 0x1
141#define IMX7ULP_PAD_PTC17__LPSPI3_SOUT 0x0044 0x0328 0x3 0x1 143#define IMX7ULP_PAD_PTC17__LPSPI3_SOUT 0x0044 0x0328 0x3 0x1
@@ -146,11 +148,16 @@
146#define IMX7ULP_PAD_PTC18__LPSPI3_SCK 0x0048 0x0320 0x3 0x1 148#define IMX7ULP_PAD_PTC18__LPSPI3_SCK 0x0048 0x0320 0x3 0x1
147#define IMX7ULP_PAD_PTC18__TPM6_CH0 0x0048 0x02d0 0x6 0x1 149#define IMX7ULP_PAD_PTC18__TPM6_CH0 0x0048 0x02d0 0x6 0x1
148#define IMX7ULP_PAD_PTC18__FB_OE_B 0x0048 0x0000 0x9 0x0 150#define IMX7ULP_PAD_PTC18__FB_OE_B 0x0048 0x0000 0x9 0x0
151#define IMX7ULP_PAD_PTC18__USB0_ID 0x0048 0x0338 0xb 0x2
152#define IMX7ULP_PAD_PTC18__VIU_DE 0x0048 0x033c 0xc 0x1
149#define IMX7ULP_PAD_PTC19__PTC19 0x004c 0x0000 0x1 0x0 153#define IMX7ULP_PAD_PTC19__PTC19 0x004c 0x0000 0x1 0x0
150#define IMX7ULP_PAD_PTC19__FXIO1_D15 0x004c 0x0240 0x2 0x1 154#define IMX7ULP_PAD_PTC19__FXIO1_D15 0x004c 0x0240 0x2 0x1
151#define IMX7ULP_PAD_PTC19__LPSPI3_PCS0 0x004c 0x0310 0x3 0x1 155#define IMX7ULP_PAD_PTC19__LPSPI3_PCS0 0x004c 0x0310 0x3 0x1
152#define IMX7ULP_PAD_PTC19__TPM6_CH1 0x004c 0x02d4 0x6 0x1 156#define IMX7ULP_PAD_PTC19__TPM6_CH1 0x004c 0x02d4 0x6 0x1
153#define IMX7ULP_PAD_PTC19__FB_A16 0x004c 0x0000 0x9 0x0 157#define IMX7ULP_PAD_PTC19__FB_A16 0x004c 0x0000 0x9 0x0
158#define IMX7ULP_PAD_PTC19__USB0_ID 0x004c 0x0338 0xa 0x3
159#define IMX7ULP_PAD_PTC19__USB1_PWR2 0x004c 0x0000 0xb 0x0
160#define IMX7ULP_PAD_PTC19__VIU_DE 0x004c 0x033c 0xc 0x3
154#define IMX7ULP_PAD_PTD0__PTD0 0x0080 0x0000 0x1 0x0 161#define IMX7ULP_PAD_PTD0__PTD0 0x0080 0x0000 0x1 0x0
155#define IMX7ULP_PAD_PTD0__SDHC0_RESET_B 0x0080 0x0000 0x8 0x0 162#define IMX7ULP_PAD_PTD0__SDHC0_RESET_B 0x0080 0x0000 0x8 0x0
156#define IMX7ULP_PAD_PTD1__PTD1 0x0084 0x0000 0x1 0x0 163#define IMX7ULP_PAD_PTD1__PTD1 0x0084 0x0000 0x1 0x0
@@ -218,6 +225,7 @@
218#define IMX7ULP_PAD_PTE5__LPI2C5_SDA 0x0114 0x02c0 0x5 0x2 225#define IMX7ULP_PAD_PTE5__LPI2C5_SDA 0x0114 0x02c0 0x5 0x2
219#define IMX7ULP_PAD_PTE5__TPM5_CH0 0x0114 0x02c4 0x6 0x2 226#define IMX7ULP_PAD_PTE5__TPM5_CH0 0x0114 0x02c4 0x6 0x2
220#define IMX7ULP_PAD_PTE5__SDHC1_D2 0x0114 0x0000 0x8 0x0 227#define IMX7ULP_PAD_PTE5__SDHC1_D2 0x0114 0x0000 0x8 0x0
228#define IMX7ULP_PAD_PTE5__VIU_DE 0x0114 0x033c 0xc 0x2
221#define IMX7ULP_PAD_PTE6__PTE6 0x0118 0x0000 0x1 0x0 229#define IMX7ULP_PAD_PTE6__PTE6 0x0118 0x0000 0x1 0x0
222#define IMX7ULP_PAD_PTE6__FXIO1_D25 0x0118 0x0000 0x2 0x0 230#define IMX7ULP_PAD_PTE6__FXIO1_D25 0x0118 0x0000 0x2 0x0
223#define IMX7ULP_PAD_PTE6__LPSPI2_SCK 0x0118 0x02ac 0x3 0x2 231#define IMX7ULP_PAD_PTE6__LPSPI2_SCK 0x0118 0x02ac 0x3 0x2
@@ -226,8 +234,10 @@
226#define IMX7ULP_PAD_PTE6__TPM7_CH3 0x0118 0x02e8 0x6 0x2 234#define IMX7ULP_PAD_PTE6__TPM7_CH3 0x0118 0x02e8 0x6 0x2
227#define IMX7ULP_PAD_PTE6__SDHC1_D4 0x0118 0x0000 0x8 0x0 235#define IMX7ULP_PAD_PTE6__SDHC1_D4 0x0118 0x0000 0x8 0x0
228#define IMX7ULP_PAD_PTE6__FB_A17 0x0118 0x0000 0x9 0x0 236#define IMX7ULP_PAD_PTE6__FB_A17 0x0118 0x0000 0x9 0x0
237#define IMX7ULP_PAD_PTE6__USB0_OC 0x0118 0x0330 0xb 0x1
229#define IMX7ULP_PAD_PTE7__PTE7 0x011c 0x0000 0x1 0x0 238#define IMX7ULP_PAD_PTE7__PTE7 0x011c 0x0000 0x1 0x0
230#define IMX7ULP_PAD_PTE7__TRACE_D7 0x011c 0x0000 0xa 0x0 239#define IMX7ULP_PAD_PTE7__TRACE_D7 0x011c 0x0000 0xa 0x0
240#define IMX7ULP_PAD_PTE7__USB0_PWR 0x011c 0x0000 0xb 0x0
231#define IMX7ULP_PAD_PTE7__VIU_FID 0x011c 0x0000 0xc 0x0 241#define IMX7ULP_PAD_PTE7__VIU_FID 0x011c 0x0000 0xc 0x0
232#define IMX7ULP_PAD_PTE7__FXIO1_D24 0x011c 0x0000 0x2 0x0 242#define IMX7ULP_PAD_PTE7__FXIO1_D24 0x011c 0x0000 0x2 0x0
233#define IMX7ULP_PAD_PTE7__LPSPI2_PCS0 0x011c 0x029c 0x3 0x2 243#define IMX7ULP_PAD_PTE7__LPSPI2_PCS0 0x011c 0x029c 0x3 0x2
@@ -278,6 +288,7 @@
278#define IMX7ULP_PAD_PTE11__FB_A20 0x012c 0x0000 0x9 0x0 288#define IMX7ULP_PAD_PTE11__FB_A20 0x012c 0x0000 0x9 0x0
279#define IMX7ULP_PAD_PTE12__PTE12 0x0130 0x0000 0x1 0x0 289#define IMX7ULP_PAD_PTE12__PTE12 0x0130 0x0000 0x1 0x0
280#define IMX7ULP_PAD_PTE12__TRACE_D2 0x0130 0x0000 0xa 0x0 290#define IMX7ULP_PAD_PTE12__TRACE_D2 0x0130 0x0000 0xa 0x0
291#define IMX7ULP_PAD_PTE12__USB1_OC2 0x0130 0x0334 0xb 0x2
281#define IMX7ULP_PAD_PTE12__VIU_D20 0x0130 0x0000 0xc 0x0 292#define IMX7ULP_PAD_PTE12__VIU_D20 0x0130 0x0000 0xc 0x0
282#define IMX7ULP_PAD_PTE12__FXIO1_D19 0x0130 0x0000 0x2 0x0 293#define IMX7ULP_PAD_PTE12__FXIO1_D19 0x0130 0x0000 0x2 0x0
283#define IMX7ULP_PAD_PTE12__LPSPI3_SIN 0x0130 0x0324 0x3 0x2 294#define IMX7ULP_PAD_PTE12__LPSPI3_SIN 0x0130 0x0324 0x3 0x2
@@ -288,6 +299,7 @@
288#define IMX7ULP_PAD_PTE12__FB_A21 0x0130 0x0000 0x9 0x0 299#define IMX7ULP_PAD_PTE12__FB_A21 0x0130 0x0000 0x9 0x0
289#define IMX7ULP_PAD_PTE13__PTE13 0x0134 0x0000 0x1 0x0 300#define IMX7ULP_PAD_PTE13__PTE13 0x0134 0x0000 0x1 0x0
290#define IMX7ULP_PAD_PTE13__TRACE_D1 0x0134 0x0000 0xa 0x0 301#define IMX7ULP_PAD_PTE13__TRACE_D1 0x0134 0x0000 0xa 0x0
302#define IMX7ULP_PAD_PTE13__USB1_PWR2 0x0134 0x0000 0xb 0x0
291#define IMX7ULP_PAD_PTE13__VIU_D21 0x0134 0x0000 0xc 0x0 303#define IMX7ULP_PAD_PTE13__VIU_D21 0x0134 0x0000 0xc 0x0
292#define IMX7ULP_PAD_PTE13__FXIO1_D18 0x0134 0x0000 0x2 0x0 304#define IMX7ULP_PAD_PTE13__FXIO1_D18 0x0134 0x0000 0x2 0x0
293#define IMX7ULP_PAD_PTE13__LPSPI3_SOUT 0x0134 0x0328 0x3 0x2 305#define IMX7ULP_PAD_PTE13__LPSPI3_SOUT 0x0134 0x0328 0x3 0x2
@@ -298,6 +310,7 @@
298#define IMX7ULP_PAD_PTE13__FB_A22 0x0134 0x0000 0x9 0x0 310#define IMX7ULP_PAD_PTE13__FB_A22 0x0134 0x0000 0x9 0x0
299#define IMX7ULP_PAD_PTE14__PTE14 0x0138 0x0000 0x1 0x0 311#define IMX7ULP_PAD_PTE14__PTE14 0x0138 0x0000 0x1 0x0
300#define IMX7ULP_PAD_PTE14__TRACE_D0 0x0138 0x0000 0xa 0x0 312#define IMX7ULP_PAD_PTE14__TRACE_D0 0x0138 0x0000 0xa 0x0
313#define IMX7ULP_PAD_PTE14__USB0_OC 0x0138 0x0330 0xb 0x2
301#define IMX7ULP_PAD_PTE14__VIU_D22 0x0138 0x0000 0xc 0x0 314#define IMX7ULP_PAD_PTE14__VIU_D22 0x0138 0x0000 0xc 0x0
302#define IMX7ULP_PAD_PTE14__FXIO1_D17 0x0138 0x0000 0x2 0x0 315#define IMX7ULP_PAD_PTE14__FXIO1_D17 0x0138 0x0000 0x2 0x0
303#define IMX7ULP_PAD_PTE14__LPSPI3_SCK 0x0138 0x0320 0x3 0x2 316#define IMX7ULP_PAD_PTE14__LPSPI3_SCK 0x0138 0x0320 0x3 0x2
@@ -308,6 +321,7 @@
308#define IMX7ULP_PAD_PTE14__FB_A23 0x0138 0x0000 0x9 0x0 321#define IMX7ULP_PAD_PTE14__FB_A23 0x0138 0x0000 0x9 0x0
309#define IMX7ULP_PAD_PTE15__PTE15 0x013c 0x0000 0x1 0x0 322#define IMX7ULP_PAD_PTE15__PTE15 0x013c 0x0000 0x1 0x0
310#define IMX7ULP_PAD_PTE15__TRACE_CLKOUT 0x013c 0x0000 0xa 0x0 323#define IMX7ULP_PAD_PTE15__TRACE_CLKOUT 0x013c 0x0000 0xa 0x0
324#define IMX7ULP_PAD_PTE15__USB0_PWR 0x013c 0x0000 0xb 0x0
311#define IMX7ULP_PAD_PTE15__VIU_D23 0x013c 0x0000 0xc 0x0 325#define IMX7ULP_PAD_PTE15__VIU_D23 0x013c 0x0000 0xc 0x0
312#define IMX7ULP_PAD_PTE15__FXIO1_D16 0x013c 0x0000 0x2 0x0 326#define IMX7ULP_PAD_PTE15__FXIO1_D16 0x013c 0x0000 0x2 0x0
313#define IMX7ULP_PAD_PTE15__LPSPI3_PCS0 0x013c 0x0310 0x3 0x2 327#define IMX7ULP_PAD_PTE15__LPSPI3_PCS0 0x013c 0x0310 0x3 0x2
@@ -315,7 +329,7 @@
315#define IMX7ULP_PAD_PTE15__TPM6_CH1 0x013c 0x02d4 0x6 0x2 329#define IMX7ULP_PAD_PTE15__TPM6_CH1 0x013c 0x02d4 0x6 0x2
316#define IMX7ULP_PAD_PTE15__FB_A24 0x013c 0x0000 0x9 0x0 330#define IMX7ULP_PAD_PTE15__FB_A24 0x013c 0x0000 0x9 0x0
317#define IMX7ULP_PAD_PTF0__PTF0 0x0180 0x0000 0x1 0x0 331#define IMX7ULP_PAD_PTF0__PTF0 0x0180 0x0000 0x1 0x0
318#define IMX7ULP_PAD_PTF0__VIU_DE 0x0180 0x0000 0xc 0x0 332#define IMX7ULP_PAD_PTF0__VIU_DE 0x0180 0x033c 0xc 0x0
319#define IMX7ULP_PAD_PTF0__LPUART4_CTS_B 0x0180 0x0244 0x4 0x3 333#define IMX7ULP_PAD_PTF0__LPUART4_CTS_B 0x0180 0x0244 0x4 0x3
320#define IMX7ULP_PAD_PTF0__LPI2C4_SCL 0x0180 0x0278 0x5 0x3 334#define IMX7ULP_PAD_PTF0__LPI2C4_SCL 0x0180 0x0278 0x5 0x3
321#define IMX7ULP_PAD_PTF0__TPM4_CLKIN 0x0180 0x0298 0x6 0x3 335#define IMX7ULP_PAD_PTF0__TPM4_CLKIN 0x0180 0x0298 0x6 0x3
diff --git a/arch/arm/boot/dts/iwg20d-q7-common.dtsi b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
index 5cae74eb6cdd..ca9154dd8052 100644
--- a/arch/arm/boot/dts/iwg20d-q7-common.dtsi
+++ b/arch/arm/boot/dts/iwg20d-q7-common.dtsi
@@ -160,10 +160,6 @@
160 clock-frequency = <100000000>; 160 clock-frequency = <100000000>;
161}; 161};
162 162
163&pciec {
164 status = "okay";
165};
166
167&pfc { 163&pfc {
168 can0_pins: can0 { 164 can0_pins: can0 {
169 groups = "can0_data_d"; 165 groups = "can0_data_d";
diff --git a/arch/arm/boot/dts/keystone-k2g.dtsi b/arch/arm/boot/dts/keystone-k2g.dtsi
index 738b44cf2b0b..1c833105d6c5 100644
--- a/arch/arm/boot/dts/keystone-k2g.dtsi
+++ b/arch/arm/boot/dts/keystone-k2g.dtsi
@@ -416,7 +416,7 @@
416 clock-names = "fck", "mmchsdb_fck"; 416 clock-names = "fck", "mmchsdb_fck";
417 }; 417 };
418 418
419 qspi: qspi@2940000 { 419 qspi: spi@2940000 {
420 compatible = "ti,k2g-qspi", "cdns,qspi-nor"; 420 compatible = "ti,k2g-qspi", "cdns,qspi-nor";
421 #address-cells = <1>; 421 #address-cells = <1>;
422 #size-cells = <0>; 422 #size-cells = <0>;
diff --git a/arch/arm/boot/dts/lpc32xx.dtsi b/arch/arm/boot/dts/lpc32xx.dtsi
index abff7ef7c9cd..b7303a4e4236 100644
--- a/arch/arm/boot/dts/lpc32xx.dtsi
+++ b/arch/arm/boot/dts/lpc32xx.dtsi
@@ -179,7 +179,7 @@
179 * ssp0 and spi1 are shared pins; 179 * ssp0 and spi1 are shared pins;
180 * enable one in your board dts, as needed. 180 * enable one in your board dts, as needed.
181 */ 181 */
182 ssp0: ssp@20084000 { 182 ssp0: spi@20084000 {
183 compatible = "arm,pl022", "arm,primecell"; 183 compatible = "arm,pl022", "arm,primecell";
184 reg = <0x20084000 0x1000>; 184 reg = <0x20084000 0x1000>;
185 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>; 185 interrupts = <20 IRQ_TYPE_LEVEL_HIGH>;
@@ -199,7 +199,7 @@
199 * ssp1 and spi2 are shared pins; 199 * ssp1 and spi2 are shared pins;
200 * enable one in your board dts, as needed. 200 * enable one in your board dts, as needed.
201 */ 201 */
202 ssp1: ssp@2008c000 { 202 ssp1: spi@2008c000 {
203 compatible = "arm,pl022", "arm,primecell"; 203 compatible = "arm,pl022", "arm,primecell";
204 reg = <0x2008c000 0x1000>; 204 reg = <0x2008c000 0x1000>;
205 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>; 205 interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/ls1021a-qds.dts b/arch/arm/boot/dts/ls1021a-qds.dts
index 499f41a2c6f0..923a25760516 100644
--- a/arch/arm/boot/dts/ls1021a-qds.dts
+++ b/arch/arm/boot/dts/ls1021a-qds.dts
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright 2013-2014 Freescale Semiconductor, Inc. 2 * Copyright 2013-2014 Freescale Semiconductor, Inc.
3 * Copyright 2018 NXP
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
@@ -235,6 +236,7 @@
235 #size-cells = <1>; 236 #size-cells = <1>;
236 compatible = "cfi-flash"; 237 compatible = "cfi-flash";
237 reg = <0x0 0x0 0x8000000>; 238 reg = <0x0 0x0 0x8000000>;
239 big-endian;
238 bank-width = <2>; 240 bank-width = <2>;
239 device-width = <1>; 241 device-width = <1>;
240 }; 242 };
diff --git a/arch/arm/boot/dts/ls1021a-twr.dts b/arch/arm/boot/dts/ls1021a-twr.dts
index f0c949d74833..8b48c3c7cd21 100644
--- a/arch/arm/boot/dts/ls1021a-twr.dts
+++ b/arch/arm/boot/dts/ls1021a-twr.dts
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright 2013-2014 Freescale Semiconductor, Inc. 2 * Copyright 2013-2014 Freescale Semiconductor, Inc.
3 * Copyright 2018 NXP
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
@@ -203,6 +204,7 @@
203 #size-cells = <1>; 204 #size-cells = <1>;
204 compatible = "cfi-flash"; 205 compatible = "cfi-flash";
205 reg = <0x0 0x0 0x8000000>; 206 reg = <0x0 0x0 0x8000000>;
207 big-endian;
206 bank-width = <2>; 208 bank-width = <2>;
207 device-width = <1>; 209 device-width = <1>;
208 }; 210 };
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index f18490548c78..bdd6e66a79ad 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -163,7 +163,7 @@
163 big-endian; 163 big-endian;
164 }; 164 };
165 165
166 qspi: quadspi@1550000 { 166 qspi: spi@1550000 {
167 compatible = "fsl,ls1021a-qspi"; 167 compatible = "fsl,ls1021a-qspi";
168 #address-cells = <1>; 168 #address-cells = <1>;
169 #size-cells = <0>; 169 #size-cells = <0>;
@@ -330,7 +330,7 @@
330 }; 330 };
331 }; 331 };
332 332
333 dspi0: dspi@2100000 { 333 dspi0: spi@2100000 {
334 compatible = "fsl,ls1021a-v1.0-dspi"; 334 compatible = "fsl,ls1021a-v1.0-dspi";
335 #address-cells = <1>; 335 #address-cells = <1>;
336 #size-cells = <0>; 336 #size-cells = <0>;
@@ -343,7 +343,7 @@
343 status = "disabled"; 343 status = "disabled";
344 }; 344 };
345 345
346 dspi1: dspi@2110000 { 346 dspi1: spi@2110000 {
347 compatible = "fsl,ls1021a-v1.0-dspi"; 347 compatible = "fsl,ls1021a-v1.0-dspi";
348 #address-cells = <1>; 348 #address-cells = <1>;
349 #size-cells = <0>; 349 #size-cells = <0>;
@@ -364,6 +364,8 @@
364 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>; 364 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
365 clock-names = "i2c"; 365 clock-names = "i2c";
366 clocks = <&clockgen 4 1>; 366 clocks = <&clockgen 4 1>;
367 dma-names = "tx", "rx";
368 dmas = <&edma0 1 39>, <&edma0 1 38>;
367 status = "disabled"; 369 status = "disabled";
368 }; 370 };
369 371
@@ -375,6 +377,8 @@
375 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>; 377 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
376 clock-names = "i2c"; 378 clock-names = "i2c";
377 clocks = <&clockgen 4 1>; 379 clocks = <&clockgen 4 1>;
380 dma-names = "tx", "rx";
381 dmas = <&edma0 1 37>, <&edma0 1 36>;
378 status = "disabled"; 382 status = "disabled";
379 }; 383 };
380 384
@@ -386,6 +390,8 @@
386 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>; 390 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
387 clock-names = "i2c"; 391 clock-names = "i2c";
388 clocks = <&clockgen 4 1>; 392 clocks = <&clockgen 4 1>;
393 dma-names = "tx", "rx";
394 dmas = <&edma0 1 35>, <&edma0 1 34>;
389 status = "disabled"; 395 status = "disabled";
390 }; 396 };
391 397
diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
index d77dcf890cfc..7162e0ca05b0 100644
--- a/arch/arm/boot/dts/meson8.dtsi
+++ b/arch/arm/boot/dts/meson8.dtsi
@@ -194,7 +194,7 @@
194 #clock-cells = <1>; 194 #clock-cells = <1>;
195 #reset-cells = <1>; 195 #reset-cells = <1>;
196 compatible = "amlogic,meson8-clkc"; 196 compatible = "amlogic,meson8-clkc";
197 reg = <0x8000 0x4>, <0x4000 0x460>; 197 reg = <0x8000 0x4>, <0x4000 0x400>;
198 }; 198 };
199 199
200 reset: reset-controller@4404 { 200 reset: reset-controller@4404 {
diff --git a/arch/arm/boot/dts/meson8b-ec100.dts b/arch/arm/boot/dts/meson8b-ec100.dts
new file mode 100644
index 000000000000..0872f6e3abf5
--- /dev/null
+++ b/arch/arm/boot/dts/meson8b-ec100.dts
@@ -0,0 +1,248 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10
11#include "meson8b.dtsi"
12
13/ {
14 model = "Endless Computers Endless Mini";
15 compatible = "endless,ec100", "amlogic,meson8b";
16
17 aliases {
18 serial0 = &uart_AO;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 memory {
26 reg = <0x40000000 0x40000000>;
27 };
28
29 gpio-keys {
30 compatible = "gpio-keys-polled";
31 #address-cells = <1>;
32 #size-cells = <0>;
33 poll-interval = <100>;
34
35 pal-switch {
36 label = "pal";
37 linux,input-type = <EV_SW>;
38 linux,code = <KEY_SWITCHVIDEOMODE>;
39 gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
40 };
41
42 ntsc-switch {
43 label = "ntsc";
44 linux,input-type = <EV_SW>;
45 linux,code = <KEY_SWITCHVIDEOMODE>;
46 gpios = <&gpio GPIOH_8 GPIO_ACTIVE_HIGH>;
47 };
48
49 power-button {
50 label = "power";
51 linux,code = <KEY_POWER>;
52 gpios = <&gpio GPIOH_9 GPIO_ACTIVE_LOW>;
53 };
54 };
55
56 gpio-poweroff {
57 compatible = "gpio-poweroff";
58 /*
59 * shutdown is managed by the EC (embedded micro-controller)
60 * which is configured through GPIOAO_2 (poweroff GPIO) and
61 * GPIOAO_7 (power LED, which has to go LOW as well).
62 */
63 gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
64 timeout-ms = <20000>;
65 };
66
67 leds {
68 compatible = "gpio-leds";
69
70 power {
71 label = "ec100:red:power";
72 /*
73 * Needs to go LOW (together with the poweroff GPIO)
74 * during shutdown to allow the EC (embedded
75 * micro-controller) to shutdown the system. Setting
76 * the output to LOW signals the EC to start a
77 * "breathing"/pulsing effect until the power is fully
78 * turned off.
79 */
80 gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
81 default-state = "on";
82 };
83 };
84
85 usb_vbus: regulator-usb-vbus {
86 compatible = "regulator-fixed";
87
88 regulator-name = "USB_VBUS";
89
90 regulator-min-microvolt = <5000000>;
91 regulator-max-microvolt = <5000000>;
92
93 gpio = <&gpio_ao GPIOAO_5 GPIO_ACTIVE_HIGH>;
94 enable-active-high;
95 };
96
97 vcc_5v: regulator-vcc5v {
98 compatible = "regulator-fixed";
99
100 regulator-name = "VCC5V";
101
102 regulator-min-microvolt = <5000000>;
103 regulator-max-microvolt = <5000000>;
104
105 gpio = <&gpio GPIODV_29 GPIO_ACTIVE_LOW>;
106
107 regulator-boot-on;
108 regulator-always-on;
109 };
110
111 vcck: regulator-vcck {
112 compatible = "pwm-regulator";
113
114 regulator-name = "VCCK";
115 regulator-min-microvolt = <860000>;
116 regulator-max-microvolt = <1140000>;
117
118 pwms = <&pwm_cd 0 1148 0>;
119 pwm-dutycycle-range = <100 0>;
120
121 regulator-boot-on;
122 regulator-always-on;
123 };
124
125 vcc_1v8: regulator-vcc1v8 {
126 compatible = "regulator-fixed";
127
128 regulator-name = "VCC1V8";
129 regulator-min-microvolt = <1800000>;
130 regulator-max-microvolt = <1800000>;
131 };
132
133 vcc_3v3: regulator-vcc3v3 {
134 compatible = "regulator-fixed";
135
136 regulator-name = "VCC3V3";
137 regulator-min-microvolt = <3300000>;
138 regulator-max-microvolt = <3300000>;
139 };
140};
141
142&cpu0 {
143 cpu-supply = <&vcck>;
144};
145
146&ethmac {
147 status = "okay";
148
149 pinctrl-0 = <&eth_rmii_pins>;
150 pinctrl-names = "default";
151
152 phy-handle = <&eth_phy0>;
153 phy-mode = "rmii";
154
155 snps,reset-gpio = <&gpio GPIOH_4 0>;
156 snps,reset-delays-us = <0 10000 1000000>;
157 snps,reset-active-low;
158
159 mdio {
160 compatible = "snps,dwmac-mdio";
161 #address-cells = <1>;
162 #size-cells = <0>;
163
164 eth_phy0: ethernet-phy@0 {
165 /* IC Plus IP101A/G (0x02430c54) */
166 reg = <0>;
167 };
168 };
169};
170
171&i2c_A {
172 status = "okay";
173 pinctrl-0 = <&i2c_a_pins>;
174 pinctrl-names = "default";
175
176 rt5640: codec@1c {
177 compatible = "realtek,rt5640";
178 reg = <0x1c>;
179 interrupt-parent = <&gpio_intc>;
180 interrupts = <13 IRQ_TYPE_EDGE_BOTH>; /* GPIOAO_13 */
181 realtek,in1-differential;
182 };
183};
184
185&saradc {
186 status = "okay";
187 vref-supply = <&vcc_1v8>;
188};
189
190&sdio {
191 status = "okay";
192
193 pinctrl-0 = <&sd_b_pins>;
194 pinctrl-names = "default";
195
196 /* SD card */
197 sd_card_slot: slot@1 {
198 compatible = "mmc-slot";
199 reg = <1>;
200 status = "okay";
201
202 bus-width = <4>;
203 no-sdio;
204 cap-mmc-highspeed;
205 cap-sd-highspeed;
206 disable-wp;
207
208 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
209 cd-inverted;
210
211 vmmc-supply = <&vcc_3v3>;
212 };
213};
214
215&pwm_cd {
216 status = "okay";
217 pinctrl-0 = <&pwm_c1_pins>;
218 pinctrl-names = "default";
219 clocks = <&clkc CLKID_XTAL>;
220 clock-names = "clkin0";
221};
222
223/* exposed through the pin headers labeled "URDUG1" on the top of the PCB */
224&uart_AO {
225 status = "okay";
226 pinctrl-0 = <&uart_ao_a_pins>;
227 pinctrl-names = "default";
228};
229
230/*
231 * connected to the Bluetooth part of the RTL8723BS SDIO wifi / Bluetooth
232 * combo chip. This is only available on the variant with 2GB RAM.
233 */
234&uart_B {
235 status = "okay";
236 pinctrl-0 = <&uart_b0_pins>, <&uart_b0_cts_rts_pins>;
237 pinctrl-names = "default";
238 uart-has-rtscts;
239};
240
241&usb1 {
242 status = "okay";
243 vbus-supply = <&usb_vbus>;
244};
245
246&usb1_phy {
247 status = "okay";
248};
diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
index ef3177d3da3d..58669abda259 100644
--- a/arch/arm/boot/dts/meson8b-odroidc1.dts
+++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
@@ -57,6 +57,10 @@
57 mmc0 = &sd_card_slot; 57 mmc0 = &sd_card_slot;
58 }; 58 };
59 59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
60 memory { 64 memory {
61 reg = <0x40000000 0x40000000>; 65 reg = <0x40000000 0x40000000>;
62 }; 66 };
@@ -71,6 +75,14 @@
71 }; 75 };
72 }; 76 };
73 77
78 p5v0: regulator-p5v0 {
79 compatible = "regulator-fixed";
80
81 regulator-name = "P5V0";
82 regulator-min-microvolt = <5000000>;
83 regulator-max-microvolt = <5000000>;
84 };
85
74 tflash_vdd: regulator-tflash_vdd { 86 tflash_vdd: regulator-tflash_vdd {
75 /* 87 /*
76 * signal name from schematics: TFLASH_VDD_EN 88 * signal name from schematics: TFLASH_VDD_EN
@@ -81,6 +93,8 @@
81 regulator-min-microvolt = <3300000>; 93 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>; 94 regulator-max-microvolt = <3300000>;
83 95
96 vin-supply = <&vcc_3v3>;
97
84 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>; 98 gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
85 enable-active-high; 99 enable-active-high;
86 }; 100 };
@@ -92,6 +106,8 @@
92 regulator-min-microvolt = <1800000>; 106 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <3300000>; 107 regulator-max-microvolt = <3300000>;
94 108
109 vin-supply = <&vcc_3v3>;
110
95 /* 111 /*
96 * signal name from schematics: TF_3V3N_1V8_EN 112 * signal name from schematics: TF_3V3N_1V8_EN
97 */ 113 */
@@ -101,6 +117,86 @@
101 states = <3300000 0 117 states = <3300000 0
102 1800000 1>; 118 1800000 1>;
103 }; 119 };
120
121 vcc_1v8: regulator-vcc-1v8 {
122 /*
123 * RICHTEK RT9179 configured for a fixed output voltage of
124 * 1.8V. This supplies not only VCC1V8 but also IOREF_1V8 and
125 * VDD1V8 according to the schematics.
126 */
127 compatible = "regulator-fixed";
128
129 regulator-name = "VCC1V8";
130 regulator-min-microvolt = <1800000>;
131 regulator-max-microvolt = <1800000>;
132
133 vin-supply = <&p5v0>;
134 };
135
136 vcc_3v3: regulator-vcc-3v3 {
137 /*
138 * Monolithic Power Systems MP2161 configured for a fixed
139 * output voltage of 3.3V. This supplies not only VCC3V3 but
140 * also VDD3V3 and VDDIO_AO3V3 according to the schematics.
141 */
142 compatible = "regulator-fixed";
143
144 regulator-name = "VCC3V3";
145 regulator-min-microvolt = <3300000>;
146 regulator-max-microvolt = <3300000>;
147
148 vin-supply = <&p5v0>;
149 };
150
151 vcck: regulator-vcck {
152 /* Monolithic Power Systems MP2161 */
153 compatible = "pwm-regulator";
154
155 regulator-name = "VCCK";
156 regulator-min-microvolt = <860000>;
157 regulator-max-microvolt = <1140000>;
158
159 vin-supply = <&p5v0>;
160
161 pwms = <&pwm_cd 0 12218 0>;
162 pwm-dutycycle-range = <91 0>;
163
164 regulator-boot-on;
165 regulator-always-on;
166 };
167
168 vddc_ddr: regulator-vddc-ddr {
169 /*
170 * Monolithic Power Systems MP2161 configured for a fixed
171 * output voltage of 1.5V. This supplies not only DDR_VDDC but
172 * also DDR3_1V5 according to the schematics.
173 */
174 compatible = "regulator-fixed";
175
176 regulator-name = "DDR_VDDC";
177 regulator-min-microvolt = <1500000>;
178 regulator-max-microvolt = <1500000>;
179
180 vin-supply = <&p5v0>;
181 };
182
183 vdd_rtc: regulator-vdd-rtc {
184 /*
185 * Torex Semiconductor XC6215 configured for a fixed output of
186 * 0.9V.
187 */
188 compatible = "regulator-fixed";
189
190 regulator-name = "VDD_RTC";
191 regulator-min-microvolt = <900000>;
192 regulator-max-microvolt = <900000>;
193
194 vin-supply = <&vcc_3v3>;
195 };
196};
197
198&cpu0 {
199 cpu-supply = <&vcck>;
104}; 200};
105 201
106&ethmac { 202&ethmac {
@@ -154,6 +250,11 @@
154 pinctrl-names = "default"; 250 pinctrl-names = "default";
155}; 251};
156 252
253&saradc {
254 status = "okay";
255 vref-supply = <&vcc_1v8>;
256};
257
157&sdio { 258&sdio {
158 status = "okay"; 259 status = "okay";
159 260
@@ -180,6 +281,14 @@
180 }; 281 };
181}; 282};
182 283
284&pwm_cd {
285 status = "okay";
286 pinctrl-0 = <&pwm_c1_pins>;
287 pinctrl-names = "default";
288 clocks = <&clkc CLKID_XTAL>;
289 clock-names = "clkin0";
290};
291
183&uart_AO { 292&uart_AO {
184 status = "okay"; 293 status = "okay";
185 pinctrl-0 = <&uart_ao_a_pins>; 294 pinctrl-0 = <&uart_ao_a_pins>;
diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
index 08f7f6be7254..cd1ca9dda126 100644
--- a/arch/arm/boot/dts/meson8b.dtsi
+++ b/arch/arm/boot/dts/meson8b.dtsi
@@ -163,7 +163,7 @@
163 #clock-cells = <1>; 163 #clock-cells = <1>;
164 #reset-cells = <1>; 164 #reset-cells = <1>;
165 compatible = "amlogic,meson8b-clkc"; 165 compatible = "amlogic,meson8b-clkc";
166 reg = <0x8000 0x4>, <0x4000 0x460>; 166 reg = <0x8000 0x4>, <0x4000 0x400>;
167 }; 167 };
168 168
169 reset: reset-controller@4404 { 169 reset: reset-controller@4404 {
@@ -223,6 +223,28 @@
223 }; 223 };
224 }; 224 };
225 225
226 eth_rmii_pins: eth-rmii {
227 mux {
228 groups = "eth_tx_en",
229 "eth_txd1_0",
230 "eth_txd0_0",
231 "eth_rx_clk",
232 "eth_rx_dv",
233 "eth_rxd1",
234 "eth_rxd0",
235 "eth_mdio_en",
236 "eth_mdc";
237 function = "ethernet";
238 };
239 };
240
241 i2c_a_pins: i2c-a {
242 mux {
243 groups = "i2c_sda_a", "i2c_sck_a";
244 function = "i2c_a";
245 };
246 };
247
226 sd_b_pins: sd-b { 248 sd_b_pins: sd-b {
227 mux { 249 mux {
228 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b", 250 groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
@@ -230,6 +252,29 @@
230 function = "sd_b"; 252 function = "sd_b";
231 }; 253 };
232 }; 254 };
255
256 pwm_c1_pins: pwm-c1 {
257 mux {
258 groups = "pwm_c1";
259 function = "pwm_c";
260 };
261 };
262
263 uart_b0_pins: uart-b0 {
264 mux {
265 groups = "uart_tx_b0",
266 "uart_rx_b0";
267 function = "uart_b";
268 };
269 };
270
271 uart_b0_cts_rts_pins: uart-b0-cts-rts {
272 mux {
273 groups = "uart_cts_b0",
274 "uart_rts_b0";
275 function = "uart_b";
276 };
277 };
233 }; 278 };
234}; 279};
235 280
diff --git a/arch/arm/boot/dts/mt7623.dtsi b/arch/arm/boot/dts/mt7623.dtsi
index 1cdc346a05e8..d01bdee6f2f3 100644
--- a/arch/arm/boot/dts/mt7623.dtsi
+++ b/arch/arm/boot/dts/mt7623.dtsi
@@ -13,6 +13,7 @@
13#include <dt-bindings/power/mt2701-power.h> 13#include <dt-bindings/power/mt2701-power.h>
14#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/gpio/gpio.h>
15#include <dt-bindings/phy/phy.h> 15#include <dt-bindings/phy/phy.h>
16#include <dt-bindings/memory/mt2701-larb-port.h>
16#include <dt-bindings/reset/mt2701-resets.h> 17#include <dt-bindings/reset/mt2701-resets.h>
17#include <dt-bindings/thermal/thermal.h> 18#include <dt-bindings/thermal/thermal.h>
18 19
@@ -121,6 +122,15 @@
121 }; 122 };
122 }; 123 };
123 124
125 pmu {
126 compatible = "arm,cortex-a7-pmu";
127 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
128 <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
129 <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
130 <GIC_SPI 7 IRQ_TYPE_LEVEL_LOW>;
131 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
132 };
133
124 system_clk: dummy13m { 134 system_clk: dummy13m {
125 compatible = "fixed-clock"; 135 compatible = "fixed-clock";
126 clock-frequency = <13000000>; 136 clock-frequency = <13000000>;
@@ -277,6 +287,17 @@
277 clock-names = "system-clk", "rtc-clk"; 287 clock-names = "system-clk", "rtc-clk";
278 }; 288 };
279 289
290 smi_common: smi@1000c000 {
291 compatible = "mediatek,mt7623-smi-common",
292 "mediatek,mt2701-smi-common";
293 reg = <0 0x1000c000 0 0x1000>;
294 clocks = <&infracfg CLK_INFRA_SMI>,
295 <&mmsys CLK_MM_SMI_COMMON>,
296 <&infracfg CLK_INFRA_SMI>;
297 clock-names = "apb", "smi", "async";
298 power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
299 };
300
280 pwrap: pwrap@1000d000 { 301 pwrap: pwrap@1000d000 {
281 compatible = "mediatek,mt7623-pwrap", 302 compatible = "mediatek,mt7623-pwrap",
282 "mediatek,mt2701-pwrap"; 303 "mediatek,mt2701-pwrap";
@@ -308,6 +329,17 @@
308 reg = <0 0x10200100 0 0x1c>; 329 reg = <0 0x10200100 0 0x1c>;
309 }; 330 };
310 331
332 iommu: mmsys_iommu@10205000 {
333 compatible = "mediatek,mt7623-m4u",
334 "mediatek,mt2701-m4u";
335 reg = <0 0x10205000 0 0x1000>;
336 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_LOW>;
337 clocks = <&infracfg CLK_INFRA_M4U>;
338 clock-names = "bclk";
339 mediatek,larbs = <&larb0 &larb1 &larb2>;
340 #iommu-cells = <1>;
341 };
342
311 efuse: efuse@10206000 { 343 efuse: efuse@10206000 {
312 compatible = "mediatek,mt7623-efuse", 344 compatible = "mediatek,mt7623-efuse",
313 "mediatek,mt8173-efuse"; 345 "mediatek,mt8173-efuse";
@@ -683,6 +715,90 @@
683 status = "disabled"; 715 status = "disabled";
684 }; 716 };
685 717
718 g3dsys: syscon@13000000 {
719 compatible = "mediatek,mt7623-g3dsys",
720 "mediatek,mt2701-g3dsys",
721 "syscon";
722 reg = <0 0x13000000 0 0x200>;
723 #clock-cells = <1>;
724 #reset-cells = <1>;
725 };
726
727 mmsys: syscon@14000000 {
728 compatible = "mediatek,mt7623-mmsys",
729 "mediatek,mt2701-mmsys",
730 "syscon";
731 reg = <0 0x14000000 0 0x1000>;
732 #clock-cells = <1>;
733 };
734
735 larb0: larb@14010000 {
736 compatible = "mediatek,mt7623-smi-larb",
737 "mediatek,mt2701-smi-larb";
738 reg = <0 0x14010000 0 0x1000>;
739 mediatek,smi = <&smi_common>;
740 mediatek,larb-id = <0>;
741 clocks = <&mmsys CLK_MM_SMI_LARB0>,
742 <&mmsys CLK_MM_SMI_LARB0>;
743 clock-names = "apb", "smi";
744 power-domains = <&scpsys MT2701_POWER_DOMAIN_DISP>;
745 };
746
747 imgsys: syscon@15000000 {
748 compatible = "mediatek,mt7623-imgsys",
749 "mediatek,mt2701-imgsys",
750 "syscon";
751 reg = <0 0x15000000 0 0x1000>;
752 #clock-cells = <1>;
753 };
754
755 larb2: larb@15001000 {
756 compatible = "mediatek,mt7623-smi-larb",
757 "mediatek,mt2701-smi-larb";
758 reg = <0 0x15001000 0 0x1000>;
759 mediatek,smi = <&smi_common>;
760 mediatek,larb-id = <2>;
761 clocks = <&imgsys CLK_IMG_SMI_COMM>,
762 <&imgsys CLK_IMG_SMI_COMM>;
763 clock-names = "apb", "smi";
764 power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
765 };
766
767 jpegdec: jpegdec@15004000 {
768 compatible = "mediatek,mt7623-jpgdec",
769 "mediatek,mt2701-jpgdec";
770 reg = <0 0x15004000 0 0x1000>;
771 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_LOW>;
772 clocks = <&imgsys CLK_IMG_JPGDEC_SMI>,
773 <&imgsys CLK_IMG_JPGDEC>;
774 clock-names = "jpgdec-smi",
775 "jpgdec";
776 power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
777 mediatek,larb = <&larb2>;
778 iommus = <&iommu MT2701_M4U_PORT_JPGDEC_WDMA>,
779 <&iommu MT2701_M4U_PORT_JPGDEC_BSDMA>;
780 };
781
782 vdecsys: syscon@16000000 {
783 compatible = "mediatek,mt7623-vdecsys",
784 "mediatek,mt2701-vdecsys",
785 "syscon";
786 reg = <0 0x16000000 0 0x1000>;
787 #clock-cells = <1>;
788 };
789
790 larb1: larb@16010000 {
791 compatible = "mediatek,mt7623-smi-larb",
792 "mediatek,mt2701-smi-larb";
793 reg = <0 0x16010000 0 0x1000>;
794 mediatek,smi = <&smi_common>;
795 mediatek,larb-id = <1>;
796 clocks = <&vdecsys CLK_VDEC_CKGEN>,
797 <&vdecsys CLK_VDEC_LARB>;
798 clock-names = "apb", "smi";
799 power-domains = <&scpsys MT2701_POWER_DOMAIN_VDEC>;
800 };
801
686 hifsys: syscon@1a000000 { 802 hifsys: syscon@1a000000 {
687 compatible = "mediatek,mt7623-hifsys", 803 compatible = "mediatek,mt7623-hifsys",
688 "mediatek,mt2701-hifsys", 804 "mediatek,mt2701-hifsys",
@@ -937,6 +1053,14 @@
937 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>; 1053 power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
938 status = "disabled"; 1054 status = "disabled";
939 }; 1055 };
1056
1057 bdpsys: syscon@1c000000 {
1058 compatible = "mediatek,mt7623-bdpsys",
1059 "mediatek,mt2701-bdpsys",
1060 "syscon";
1061 reg = <0 0x1c000000 0 0x1000>;
1062 #clock-cells = <1>;
1063 };
940}; 1064};
941 1065
942&pio { 1066&pio {
diff --git a/arch/arm/boot/dts/omap2.dtsi b/arch/arm/boot/dts/omap2.dtsi
index f1d6de8b3c19..000bf16de651 100644
--- a/arch/arm/boot/dts/omap2.dtsi
+++ b/arch/arm/boot/dts/omap2.dtsi
@@ -114,7 +114,7 @@
114 dma-names = "tx", "rx"; 114 dma-names = "tx", "rx";
115 }; 115 };
116 116
117 mcspi1: mcspi@48098000 { 117 mcspi1: spi@48098000 {
118 compatible = "ti,omap2-mcspi"; 118 compatible = "ti,omap2-mcspi";
119 ti,hwmods = "mcspi1"; 119 ti,hwmods = "mcspi1";
120 reg = <0x48098000 0x100>; 120 reg = <0x48098000 0x100>;
@@ -125,7 +125,7 @@
125 "tx2", "rx2", "tx3", "rx3"; 125 "tx2", "rx2", "tx3", "rx3";
126 }; 126 };
127 127
128 mcspi2: mcspi@4809a000 { 128 mcspi2: spi@4809a000 {
129 compatible = "ti,omap2-mcspi"; 129 compatible = "ti,omap2-mcspi";
130 ti,hwmods = "mcspi2"; 130 ti,hwmods = "mcspi2";
131 reg = <0x4809a000 0x100>; 131 reg = <0x4809a000 0x100>;
diff --git a/arch/arm/boot/dts/omap2430.dtsi b/arch/arm/boot/dts/omap2430.dtsi
index 84635eeb99cd..7f57af2f10ac 100644
--- a/arch/arm/boot/dts/omap2430.dtsi
+++ b/arch/arm/boot/dts/omap2430.dtsi
@@ -285,7 +285,7 @@
285 ti,timer-alwon; 285 ti,timer-alwon;
286 }; 286 };
287 287
288 mcspi3: mcspi@480b8000 { 288 mcspi3: spi@480b8000 {
289 compatible = "ti,omap2-mcspi"; 289 compatible = "ti,omap2-mcspi";
290 ti,hwmods = "mcspi3"; 290 ti,hwmods = "mcspi3";
291 reg = <0x480b8000 0x100>; 291 reg = <0x480b8000 0x100>;
diff --git a/arch/arm/boot/dts/omap3-beagle-xm.dts b/arch/arm/boot/dts/omap3-beagle-xm.dts
index d80587de0bbf..9985ee2aae0c 100644
--- a/arch/arm/boot/dts/omap3-beagle-xm.dts
+++ b/arch/arm/boot/dts/omap3-beagle-xm.dts
@@ -160,10 +160,11 @@
160 160
161 clocks = <&emu_src_ck>; 161 clocks = <&emu_src_ck>;
162 clock-names = "apb_pclk"; 162 clock-names = "apb_pclk";
163 port { 163 in-ports {
164 etb_in: endpoint { 164 port {
165 slave-mode; 165 etb_in: endpoint {
166 remote-endpoint = <&etm_out>; 166 remote-endpoint = <&etm_out>;
167 };
167 }; 168 };
168 }; 169 };
169 }; 170 };
@@ -174,9 +175,11 @@
174 175
175 clocks = <&emu_src_ck>; 176 clocks = <&emu_src_ck>;
176 clock-names = "apb_pclk"; 177 clock-names = "apb_pclk";
177 port { 178 out-ports {
178 etm_out: endpoint { 179 port {
179 remote-endpoint = <&etb_in>; 180 etm_out: endpoint {
181 remote-endpoint = <&etb_in>;
182 };
180 }; 183 };
181 }; 184 };
182 }; 185 };
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index 3ca8991a6c3e..91bb50ad9a4f 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -147,10 +147,11 @@
147 147
148 clocks = <&emu_src_ck>; 148 clocks = <&emu_src_ck>;
149 clock-names = "apb_pclk"; 149 clock-names = "apb_pclk";
150 port { 150 in-ports {
151 etb_in: endpoint { 151 port {
152 slave-mode; 152 etb_in: endpoint {
153 remote-endpoint = <&etm_out>; 153 remote-endpoint = <&etm_out>;
154 };
154 }; 155 };
155 }; 156 };
156 }; 157 };
@@ -161,9 +162,11 @@
161 162
162 clocks = <&emu_src_ck>; 163 clocks = <&emu_src_ck>;
163 clock-names = "apb_pclk"; 164 clock-names = "apb_pclk";
164 port { 165 out-ports {
165 etm_out: endpoint { 166 port {
166 remote-endpoint = <&etb_in>; 167 etm_out: endpoint {
168 remote-endpoint = <&etb_in>;
169 };
167 }; 170 };
168 }; 171 };
169 }; 172 };
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi
index ac830b917776..d5fe55392230 100644
--- a/arch/arm/boot/dts/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -10,6 +10,7 @@
10/dts-v1/; 10/dts-v1/;
11 11
12#include "omap36xx.dtsi" 12#include "omap36xx.dtsi"
13#include <dt-bindings/input/input.h>
13 14
14/ { 15/ {
15 model = "OMAP3 GTA04"; 16 model = "OMAP3 GTA04";
@@ -28,6 +29,7 @@
28 29
29 aliases { 30 aliases {
30 display0 = &lcd; 31 display0 = &lcd;
32 display1 = &tv0;
31 }; 33 };
32 34
33 /* fixed 26MHz oscillator */ 35 /* fixed 26MHz oscillator */
@@ -42,12 +44,27 @@
42 44
43 aux-button { 45 aux-button {
44 label = "aux"; 46 label = "aux";
45 linux,code = <169>; 47 linux,code = <KEY_PHONE>;
46 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 48 gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
47 wakeup-source; 49 wakeup-source;
48 }; 50 };
49 }; 51 };
50 52
53 antenna-detect {
54 compatible = "gpio-keys";
55
56 gps_antenna_button: gps-antenna-button {
57 label = "GPS_EXT_ANT";
58 linux,input-type = <EV_SW>;
59 linux,code = <SW_LINEIN_INSERT>;
60 gpios = <&gpio5 16 GPIO_ACTIVE_HIGH>; /* GPIO144 */
61 interrupt-parent = <&gpio5>;
62 interrupts = <16 IRQ_TYPE_EDGE_BOTH>;
63 debounce-interval = <10>;
64 wakeup-source;
65 };
66 };
67
51 sound { 68 sound {
52 compatible = "ti,omap-twl4030"; 69 compatible = "ti,omap-twl4030";
53 ti,model = "gta04"; 70 ti,model = "gta04";
@@ -55,7 +72,7 @@
55 ti,mcbsp = <&mcbsp2>; 72 ti,mcbsp = <&mcbsp2>;
56 }; 73 };
57 74
58 /* GSM audio */ 75 /* GSM audio */
59 sound_telephony { 76 sound_telephony {
60 compatible = "simple-audio-card"; 77 compatible = "simple-audio-card";
61 simple-audio-card,name = "GTA04 voice"; 78 simple-audio-card,name = "GTA04 voice";
@@ -78,7 +95,7 @@
78 #sound-dai-cells = <0>; 95 #sound-dai-cells = <0>;
79 }; 96 };
80 97
81 spi_lcd { 98 spi_lcd: spi_lcd {
82 compatible = "spi-gpio"; 99 compatible = "spi-gpio";
83 #address-cells = <0x1>; 100 #address-cells = <0x1>;
84 #size-cells = <0x0>; 101 #size-cells = <0x0>;
@@ -131,7 +148,7 @@
131 }; 148 };
132 149
133 tv0: connector { 150 tv0: connector {
134 compatible = "svideo-connector"; 151 compatible = "composite-video-connector";
135 label = "tv"; 152 label = "tv";
136 153
137 port { 154 port {
@@ -143,7 +160,7 @@
143 160
144 tv_amp: opa362 { 161 tv_amp: opa362 {
145 compatible = "ti,opa362"; 162 compatible = "ti,opa362";
146 enable-gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; 163 enable-gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; /* GPIO_23 to enable video out amplifier */
147 164
148 ports { 165 ports {
149 #address-cells = <1>; 166 #address-cells = <1>;
@@ -169,6 +186,42 @@
169 compatible = "mmc-pwrseq-simple"; 186 compatible = "mmc-pwrseq-simple";
170 reset-gpios = <&tca6507 0 GPIO_ACTIVE_LOW>; /* W2CBW003 reset through tca6507 */ 187 reset-gpios = <&tca6507 0 GPIO_ACTIVE_LOW>; /* W2CBW003 reset through tca6507 */
171 }; 188 };
189
190 /* devconf0 setup for mcbsp1 clock pins */
191 pinmux_mcbsp1@48002274 {
192 compatible = "pinctrl-single";
193 reg = <0x48002274 4>; /* CONTROL_DEVCONF0 */
194 #address-cells = <1>;
195 #size-cells = <0>;
196 pinctrl-single,bit-per-mux;
197 pinctrl-single,register-width = <32>;
198 pinctrl-single,function-mask = <0x7>; /* MCBSP1 CLK pinmux */
199 #pinctrl-cells = <2>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&mcbsp1_devconf0_pins>;
202 mcbsp1_devconf0_pins: pinmux_mcbsp1_devconf0_pins {
203 /* offset bits mask */
204 pinctrl-single,bits = <0x00 0x08 0x1c>; /* set MCBSP1_CLKR */
205 };
206 };
207
208 /* devconf1 setup for tvout pins */
209 pinmux_tv_out@480022d8 {
210 compatible = "pinctrl-single";
211 reg = <0x480022d8 4>; /* CONTROL_DEVCONF1 */
212 #address-cells = <1>;
213 #size-cells = <0>;
214 pinctrl-single,bit-per-mux;
215 pinctrl-single,register-width = <32>;
216 pinctrl-single,function-mask = <0x81>; /* TV out pin control */
217 #pinctrl-cells = <2>;
218 pinctrl-names = "default";
219 pinctrl-0 = <&tv_acbias_devconf1_pins>;
220 tv_acbias_devconf1_pins: pinmux_tv_acbias_devconf1_pins {
221 /* offset bits mask */
222 pinctrl-single,bits = <0x00 0x40800 0x40800>; /* set TVOUTBYPASS and TVOUTACEN */
223 };
224 };
172}; 225};
173 226
174&omap3_pmx_core { 227&omap3_pmx_core {
@@ -220,14 +273,14 @@
220 >; 273 >;
221 }; 274 };
222 275
223 backlight_pins: backlight_pins_pimnux { 276 backlight_pins: backlight_pins_pinmux {
224 pinctrl-single,pins = < 277 pinctrl-single,pins = <
225 OMAP3_CORE1_IOPAD(0x20ba, MUX_MODE3) /* gpt11/gpio57 */ 278 OMAP3_CORE1_IOPAD(0x20ba, MUX_MODE3) /* gpt11/gpio57 */
226 >; 279 >;
227 }; 280 };
228 281
229 dss_dpi_pins: pinmux_dss_dpi_pins { 282 dss_dpi_pins: pinmux_dss_dpi_pins {
230 pinctrl-single,pins = < 283 pinctrl-single,pins = <
231 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */ 284 OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0) /* dss_pclk.dss_pclk */
232 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */ 285 OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0) /* dss_hsync.dss_hsync */
233 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */ 286 OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0) /* dss_vsync.dss_vsync */
@@ -265,6 +318,12 @@
265 >; 318 >;
266 }; 319 };
267 320
321 bmp085_pins: pinmux_bmp085_pins {
322 pinctrl-single,pins = <
323 OMAP3_CORE1_IOPAD(0x2136, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio113 */
324 >;
325 };
326
268 bma180_pins: pinmux_bma180_pins { 327 bma180_pins: pinmux_bma180_pins {
269 pinctrl-single,pins = < 328 pinctrl-single,pins = <
270 OMAP3_CORE1_IOPAD(0x213a, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio115 */ 329 OMAP3_CORE1_IOPAD(0x213a, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio115 */
@@ -282,6 +341,78 @@
282 OMAP3_CORE1_IOPAD(0x2134, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio112 */ 341 OMAP3_CORE1_IOPAD(0x2134, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio112 */
283 >; 342 >;
284 }; 343 };
344
345 penirq_pins: pinmux_penirq_pins {
346 pinctrl-single,pins = <
347 /* here we could enable to wakeup the cpu from suspend by a pen touch */
348 OMAP3_CORE1_IOPAD(0x2194, PIN_INPUT_PULLUP | MUX_MODE4) /* gpio160 */
349 >;
350 };
351
352 camera_pins: pinmux_camera_pins {
353 pinctrl-single,pins = <
354 /* set up parallel camera interface */
355 OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_hs */
356 OMAP3_CORE1_IOPAD(0x210e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_vs */
357 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
358 OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_pclk */
359 OMAP3_CORE1_IOPAD(0x2114, PIN_OUTPUT | MUX_MODE4) /* cam_fld = gpio_98 */
360 OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d0 */
361 OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d1 */
362 OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d2 */
363 OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d3 */
364 OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d4 */
365 OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d5 */
366 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d6 */
367 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d7 */
368 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d8 */
369 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d9 */
370 OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d10 */
371 OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT_PULLDOWN | MUX_MODE0) /* cam_d10 */
372 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE0) /* cam_xclkb */
373 OMAP3_CORE1_IOPAD(0x2130, PIN_OUTPUT | MUX_MODE4) /* cam_wen = gpio_167 */
374 OMAP3_CORE1_IOPAD(0x2132, PIN_INPUT_PULLDOWN | MUX_MODE4) /* cam_strobe */
375 >;
376 };
377
378 mcbsp1_pins: pinmux_mcbsp1_pins {
379 pinctrl-single,pins = <
380 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT | MUX_MODE4) /* mcbsp1_clkr.mcbsp1_clkr - gpio_156 FM interrupt */
381 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_clkr.mcbsp1_fsr */
382 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */
383 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */
384 /* mcbsp_clks is used as PENIRQ */
385 /* OMAP3_CORE1_IOPAD(0x2194, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp_clks */
386 OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */
387 OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */
388 >;
389 };
390
391 mcbsp2_pins: pinmux_mcbsp2_pins {
392 pinctrl-single,pins = <
393 OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */
394 OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_clkx */
395 OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2_dr */
396 OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2_dx */
397 >;
398 };
399
400 mcbsp3_pins: pinmux_mcbsp3_pins {
401 pinctrl-single,pins = <
402 OMAP3_CORE1_IOPAD(0x216c, PIN_OUTPUT | MUX_MODE0) /* mcbsp3_dx.mcbsp3_dx */
403 OMAP3_CORE1_IOPAD(0x216e, PIN_INPUT | MUX_MODE0) /* mcbsp3_dx.mcbsp3_dr */
404 OMAP3_CORE1_IOPAD(0x2170, PIN_INPUT | MUX_MODE0) /* mcbsp3_clkx.mcbsp3_clkx */
405 OMAP3_CORE1_IOPAD(0x2172, PIN_INPUT | MUX_MODE0) /* mcbsp3_clkx.mcbsp3_fsx */
406 >;
407 };
408
409 mcbsp4_pins: pinmux_mcbsp4_pins {
410 pinctrl-single,pins = <
411 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcbsp4_clkx.mcbsp4_clkx */
412 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcbsp4_clkx.mcbsp4_dr */
413 OMAP3_CORE1_IOPAD(0x218a, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcbsp4_dx.mcbsp4_fsx */
414 >;
415 };
285}; 416};
286 417
287&omap3_pmx_core2 { 418&omap3_pmx_core2 {
@@ -347,6 +478,8 @@
347 bmp085@77 { 478 bmp085@77 {
348 compatible = "bosch,bmp085"; 479 compatible = "bosch,bmp085";
349 reg = <0x77>; 480 reg = <0x77>;
481 pinctrl-names = "default";
482 pinctrl-0 = <&bmp085_pins>;
350 interrupt-parent = <&gpio4>; 483 interrupt-parent = <&gpio4>;
351 interrupts = <17 IRQ_TYPE_EDGE_RISING>; /* GPIO_113 */ 484 interrupts = <17 IRQ_TYPE_EDGE_RISING>; /* GPIO_113 */
352 }; 485 };
@@ -402,7 +535,7 @@
402 reg = <0x4>; 535 reg = <0x4>;
403 }; 536 };
404 537
405 wifi_reset: wifi_reset@6 { 538 wifi_reset: wifi_reset@6 { /* reference as <&tca_gpios 0 0> since it is currently the only GPIO */
406 reg = <0x6>; 539 reg = <0x6>;
407 compatible = "gpio"; 540 compatible = "gpio";
408 }; 541 };
@@ -422,10 +555,19 @@
422 tsc2007@48 { 555 tsc2007@48 {
423 compatible = "ti,tsc2007"; 556 compatible = "ti,tsc2007";
424 reg = <0x48>; 557 reg = <0x48>;
558 pinctrl-names = "default";
559 pinctrl-0 = <&penirq_pins>;
425 interrupt-parent = <&gpio6>; 560 interrupt-parent = <&gpio6>;
426 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; /* GPIO_160 */ 561 interrupts = <0 IRQ_TYPE_EDGE_FALLING>; /* GPIO_160 */
427 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; 562 gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* GPIO_160 */
428 ti,x-plate-ohms = <600>; 563 ti,x-plate-ohms = <600>;
564 touchscreen-size-x = <480>;
565 touchscreen-size-y = <640>;
566 touchscreen-max-pressure = <1000>;
567 touchscreen-fuzz-x = <3>;
568 touchscreen-fuzz-y = <8>;
569 touchscreen-fuzz-pressure = <10>;
570 touchscreen-inverted-y;
429 }; 571 };
430 572
431 /* RFID EEPROM */ 573 /* RFID EEPROM */
@@ -462,6 +604,7 @@
462 vmmc-supply = <&vmmc1>; 604 vmmc-supply = <&vmmc1>;
463 bus-width = <4>; 605 bus-width = <4>;
464 ti,non-removable; 606 ti,non-removable;
607 broken-cd; /* hardware has no CD */
465}; 608};
466 609
467&mmc2 { 610&mmc2 {
@@ -476,6 +619,19 @@
476 status = "disabled"; 619 status = "disabled";
477}; 620};
478 621
622#define BIT(x) (1 << (x))
623&twl_gpio {
624 /* pullups: BIT(2) */
625 ti,pullups = <BIT(2)>;
626 /*
627 * pulldowns:
628 * BIT(0), BIT(1), BIT(6), BIT(7), BIT(8), BIT(13)
629 * BIT(15), BIT(16), BIT(17)
630 */
631 ti,pulldowns = <(BIT(0) | BIT(1) | BIT(6) | BIT(7) | BIT(8) |
632 BIT(13) | BIT(15) | BIT(16) | BIT(17))>;
633};
634
479&twl_keypad { 635&twl_keypad {
480 status = "disabled"; 636 status = "disabled";
481}; 637};
@@ -493,6 +649,7 @@
493&uart3 { 649&uart3 {
494 pinctrl-names = "default"; 650 pinctrl-names = "default";
495 pinctrl-0 = <&uart3_pins>; 651 pinctrl-0 = <&uart3_pins>;
652 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
496}; 653};
497 654
498&charger { 655&charger {
@@ -510,7 +667,7 @@
510&vaux2 { 667&vaux2 {
511 regulator-min-microvolt = <2800000>; 668 regulator-min-microvolt = <2800000>;
512 regulator-max-microvolt = <2800000>; 669 regulator-max-microvolt = <2800000>;
513 regulator-always-on; 670 regulator-always-on; /* we should never switch off while vio is on! */
514}; 671};
515 672
516/* camera */ 673/* camera */
@@ -531,6 +688,12 @@
531 regulator-max-microvolt = <3150000>; 688 regulator-max-microvolt = <3150000>;
532}; 689};
533 690
691/* Needed to power the DPI pins */
692
693&vpll2 {
694 regulator-always-on;
695};
696
534&dss { 697&dss {
535 pinctrl-names = "default"; 698 pinctrl-names = "default";
536 pinctrl-0 = < &dss_dpi_pins >; 699 pinctrl-0 = < &dss_dpi_pins >;
@@ -551,10 +714,14 @@
551 714
552 vdda-supply = <&vdac>; 715 vdda-supply = <&vdac>;
553 716
717 #address-cells = <1>;
718 #size-cells = <0>;
719
554 port { 720 port {
721 reg = <0>;
555 venc_out: endpoint { 722 venc_out: endpoint {
556 remote-endpoint = <&opa_in>; 723 remote-endpoint = <&opa_in>;
557 ti,channels = <2>; 724 ti,channels = <1>;
558 ti,invert-polarity; 725 ti,invert-polarity;
559 }; 726 };
560 }; 727 };
@@ -569,27 +736,27 @@
569 interrupt-parent = <&gpmc>; 736 interrupt-parent = <&gpmc>;
570 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ 737 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
571 <1 IRQ_TYPE_NONE>; /* termcount */ 738 <1 IRQ_TYPE_NONE>; /* termcount */
739 ti,nand-ecc-opt = "ham1";
740 rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
572 nand-bus-width = <16>; 741 nand-bus-width = <16>;
573 ti,nand-ecc-opt = "bch8"; 742 #address-cells = <1>;
743 #size-cells = <1>;
574 744
575 gpmc,sync-clk-ps = <0>; 745 gpmc,device-width = <2>;
576 gpmc,cs-on-ns = <0>; 746 gpmc,cs-on-ns = <0>;
577 gpmc,cs-rd-off-ns = <44>; 747 gpmc,cs-rd-off-ns = <44>;
578 gpmc,cs-wr-off-ns = <44>; 748 gpmc,cs-wr-off-ns = <44>;
579 gpmc,adv-on-ns = <6>; 749 gpmc,adv-on-ns = <6>;
580 gpmc,adv-rd-off-ns = <34>; 750 gpmc,adv-rd-off-ns = <34>;
581 gpmc,adv-wr-off-ns = <44>; 751 gpmc,adv-wr-off-ns = <44>;
582 gpmc,we-off-ns = <40>;
583 gpmc,oe-off-ns = <54>; 752 gpmc,oe-off-ns = <54>;
753 gpmc,we-off-ns = <40>;
584 gpmc,access-ns = <64>; 754 gpmc,access-ns = <64>;
585 gpmc,rd-cycle-ns = <82>; 755 gpmc,rd-cycle-ns = <82>;
586 gpmc,wr-cycle-ns = <82>; 756 gpmc,wr-cycle-ns = <82>;
587 gpmc,wr-access-ns = <40>; 757 gpmc,wr-access-ns = <40>;
588 gpmc,wr-data-mux-bus-ns = <0>; 758 gpmc,wr-data-mux-bus-ns = <0>;
589 gpmc,device-width = <2>; 759 gpmc,sync-clk-ps = <0>;
590
591 #address-cells = <1>;
592 #size-cells = <1>;
593 760
594 x-loader@0 { 761 x-loader@0 {
595 label = "X-Loader"; 762 label = "X-Loader";
@@ -598,28 +765,51 @@
598 765
599 bootloaders@80000 { 766 bootloaders@80000 {
600 label = "U-Boot"; 767 label = "U-Boot";
601 reg = <0x80000 0x1e0000>; 768 reg = <0x80000 0x1c0000>;
602 }; 769 };
603 770
604 bootloaders_env@260000 { 771 bootloaders_env@240000 {
605 label = "U-Boot Env"; 772 label = "U-Boot Env";
606 reg = <0x260000 0x20000>; 773 reg = <0x240000 0x40000>;
607 }; 774 };
608 775
609 kernel@280000 { 776 kernel@280000 {
610 label = "Kernel"; 777 label = "Kernel";
611 reg = <0x280000 0x400000>; 778 reg = <0x280000 0x600000>;
612 }; 779 };
613 780
614 filesystem@680000 { 781 filesystem@880000 {
615 label = "File System"; 782 label = "File System";
616 reg = <0x680000 0xf980000>; 783 reg = <0x880000 0>; /* 0 = MTDPART_SIZ_FULL */
617 }; 784 };
618 }; 785 };
619}; 786};
620 787
621&mcbsp2 { 788&mcbsp1 { /* FM Transceiver PCM */
622 status = "okay"; 789 status = "ok";
790 #sound-dai-cells = <0>;
791 pinctrl-names = "default";
792 pinctrl-0 = <&mcbsp1_pins>;
793};
794
795&mcbsp2 { /* TPS65950 I2S */
796 status = "ok";
797 pinctrl-names = "default";
798 pinctrl-0 = <&mcbsp2_pins>;
799};
800
801&mcbsp3 { /* Bluetooth PCM */
802 status = "ok";
803 #sound-dai-cells = <0>;
804 pinctrl-names = "default";
805 pinctrl-0 = <&mcbsp3_pins>;
806};
807
808&mcbsp4 { /* GSM voice PCM */
809 status = "ok";
810 #sound-dai-cells = <0>;
811 pinctrl-names = "default";
812 pinctrl-0 = <&mcbsp4_pins>;
623}; 813};
624 814
625&hdqw1w { 815&hdqw1w {
@@ -627,6 +817,22 @@
627 pinctrl-0 = <&hdq_pins>; 817 pinctrl-0 = <&hdq_pins>;
628}; 818};
629 819
630&mcbsp4 { 820/* image signal processor within OMAP3 SoC */
631 status = "okay"; 821&isp {
822 ports {
823 port@0 {
824 reg = <0>;
825 parallel_ep: endpoint {
826 ti,isp-clock-divisor = <1>;
827 ti,strobe-mode;
828 bus-width = <8>;/* Used data lines */
829 data-shift = <2>; /* Lines 9:2 are used */
830 hsync-active = <0>; /* Active low */
831 vsync-active = <1>; /* Active high */
832 data-active = <1>;/* Active high */
833 pclk-sample = <1>;/* Falling */
834 };
835 };
836 /* port@1 and port@2 are not used by GTA04 */
837 };
632}; 838};
diff --git a/arch/arm/boot/dts/omap3-gta04a3.dts b/arch/arm/boot/dts/omap3-gta04a3.dts
index 3099a892cf50..cc9244956679 100644
--- a/arch/arm/boot/dts/omap3-gta04a3.dts
+++ b/arch/arm/boot/dts/omap3-gta04a3.dts
@@ -9,7 +9,7 @@
9#include "omap3-gta04.dtsi" 9#include "omap3-gta04.dtsi"
10 10
11/ { 11/ {
12 model = "Goldelico GTA04A3"; 12 model = "Goldelico GTA04A3/Letux 2804";
13}; 13};
14 14
15&i2c2 { 15&i2c2 {
diff --git a/arch/arm/boot/dts/omap3-gta04a4.dts b/arch/arm/boot/dts/omap3-gta04a4.dts
index c918bb1f0529..77afc711fe4f 100644
--- a/arch/arm/boot/dts/omap3-gta04a4.dts
+++ b/arch/arm/boot/dts/omap3-gta04a4.dts
@@ -9,5 +9,5 @@
9#include "omap3-gta04.dtsi" 9#include "omap3-gta04.dtsi"
10 10
11/ { 11/ {
12 model = "Goldelico GTA04A4"; 12 model = "Goldelico GTA04A4/Letux 2804";
13}; 13};
diff --git a/arch/arm/boot/dts/omap3-gta04a5.dts b/arch/arm/boot/dts/omap3-gta04a5.dts
index 600b6ca5a1bd..bd232b1b24cb 100644
--- a/arch/arm/boot/dts/omap3-gta04a5.dts
+++ b/arch/arm/boot/dts/omap3-gta04a5.dts
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2014 H. Nikolaus Schaller <hns@goldelico.com> 2 * Copyright (C) 2014-18 H. Nikolaus Schaller <hns@goldelico.com>
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as 5 * it under the terms of the GNU General Public License version 2 as
@@ -9,9 +9,132 @@
9#include "omap3-gta04.dtsi" 9#include "omap3-gta04.dtsi"
10 10
11/ { 11/ {
12 model = "Goldelico GTA04A5"; 12 model = "Goldelico GTA04A5/Letux 2804";
13 13
14 sound { 14 sound {
15 ti,jack-det-gpio = <&twl_gpio 2 GPIO_ACTIVE_HIGH>; /* GTA04A5 only */ 15 ti,jack-det-gpio = <&twl_gpio 2 GPIO_ACTIVE_HIGH>; /* GTA04A5 only */
16 };
17
18 wlan_en: wlan_en_regulator {
19 compatible = "regulator-fixed";
20 pinctrl-names = "default";
21 pinctrl-0 = <&wlan_pins>;
22 regulator-name = "wlan-en-regulator";
23 regulator-min-microvolt = <1800000>;
24 regulator-max-microvolt = <1800000>;
25
26 gpio = <&gpio5 10 GPIO_ACTIVE_HIGH>; /* GPIO_138 */
27
28 startup-delay-us = <70000>;
29 enable-active-high;
30 };
31
32 pps {
33 compatible = "pps-gpio";
34 pinctrl-names = "default";
35 pinctrl-0 = <&pps_pins>;
36
37 gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>; /* GPIN_114 */
38 };
39
40};
41
42&gpio5 {
43 irda_en {
44 gpio-hog;
45 gpios = <(175-160) GPIO_ACTIVE_HIGH>;
46 output-high; /* activate gpio_175 to disable IrDA receiver */
47 };
48};
49
50&omap3_pmx_core {
51 bt_pins: pinmux_bt_pins {
52 pinctrl-single,pins = <
53 OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT | MUX_MODE4) /* mmc2_dat5 = mmc3_dat1 = gpio137 */
54 >;
55 };
56
57 wlan_pins: pinmux_wlan_pins {
58 pinctrl-single,pins = <
59 OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT | MUX_MODE4) /* mmc2_dat6 = mmc3_dat2 = gpio138 */
60 >;
61 };
62
63 wlan_irq_pin: pinmux_wlan_irq_pin {
64 pinctrl-single,pins = <
65 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE4) /* mmc2_dat7 = mmc3_dat3 = gpio139 */
66 >;
67 };
68
69 irda_pins: pinmux_irda {
70 pinctrl-single,pins = <
71 OMAP3_CORE1_IOPAD(0x21d0, PIN_OUTPUT_PULLUP | MUX_MODE4) /* mcspi1_cs1 = gpio175 */
72 >;
73 };
74
75 pps_pins: pinmux_pps_pins {
76 pinctrl-single,pins = <
77 OMAP3_CORE1_IOPAD(0x2138, PIN_INPUT | MUX_MODE4) /* gpin114 */
78 >;
79 };
80
81};
82
83/*
84 * for WL183x module see
85 * http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt
86 */
87
88&wifi_pwrseq {
89 /delete-property/ reset-gpios;
90};
91
92&mmc2 {
93 vmmc-supply = <&wlan_en>;
94 bus-width = <4>;
95 cap-power-off-card;
96 non-removable;
97
98 pinctrl-names = "default";
99 pinctrl-0 = <&wlan_irq_pin>;
100
101 #address-cells = <1>;
102 #size-cells = <0>;
103
104 /delete-property/ mmc-pwrseq;
105
106 wlcore: wlcore@2 {
107 compatible = "ti,wl1837";
108 reg = <2>;
109 interrupt-parent = <&gpio5>;
110 interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; /* GPIO_139 */
111 ref-clock-frequency = <26000000>;
112 };
113};
114
115&i2c2 {
116 /delete-node/ bmp085@77;
117 /delete-node/ bma180@41;
118 /delete-node/ itg3200@68;
119 /delete-node/ hmc5843@1e;
120
121 bmg160@69 {
122 compatible = "bosch,bmg160";
123 reg = <0x69>;
124 };
125
126 bmc150@10 {
127 compatible = "bosch,bmc150_accel";
128 reg = <0x10>;
129 };
130
131 bmc150@12 {
132 compatible = "bosch,bmc150_magn";
133 reg = <0x12>;
134 };
135
136 bme280@76 {
137 compatible = "bosch,bme280";
138 reg = <0x76>;
16 }; 139 };
17}; 140};
diff --git a/arch/arm/boot/dts/omap3-gta04a5one.dts b/arch/arm/boot/dts/omap3-gta04a5one.dts
new file mode 100644
index 000000000000..9b7bbdc344b3
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-gta04a5one.dts
@@ -0,0 +1,114 @@
1/*
2 * Copyright (C) 2014-18 H. Nikolaus Schaller <hns@goldelico.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#include "omap3-gta04a5.dts"
10
11&omap3_pmx_core {
12 model = "Goldelico GTA04A5/Letux 2804 with OneNAND";
13
14 gpmc_pins: pinmux_gpmc_pins {
15 pinctrl-single,pins = <
16
17 /* address lines */
18 OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */
19 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */
20 OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */
21
22 /* data lines, gpmc_d0..d7 not muxable according to TRM */
23 OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */
24 OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */
25 OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */
26 OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */
27 OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */
28 OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */
29 OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */
30 OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */
31
32 /*
33 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
34 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
35 */
36 OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */
37 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
38 >;
39 };
40};
41
42&gpmc {
43 /* switch inherited setup to OneNAND */
44
45 ranges = <0 0 0x04000000 0x1000000>; /* CS0: 16MB for OneNAND */
46 pinctrl-names = "default";
47 pinctrl-0 = <&gpmc_pins>;
48
49 /delete-node/ nand@0,0;
50
51 onenand@0,0 {
52
53 #address-cells = <1>;
54 #size-cells = <1>;
55 compatible = "ti,omap2-onenand";
56 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
57
58 gpmc,sync-read;
59 gpmc,sync-write;
60 gpmc,burst-length = <16>;
61 gpmc,burst-read;
62 gpmc,burst-wrap;
63 gpmc,burst-write;
64 gpmc,device-width = <2>;
65 gpmc,mux-add-data = <2>;
66 gpmc,cs-on-ns = <0>;
67 gpmc,cs-rd-off-ns = <87>;
68 gpmc,cs-wr-off-ns = <87>;
69 gpmc,adv-on-ns = <0>;
70 gpmc,adv-rd-off-ns = <10>;
71 gpmc,adv-wr-off-ns = <10>;
72 gpmc,oe-on-ns = <15>;
73 gpmc,oe-off-ns = <87>;
74 gpmc,we-on-ns = <0>;
75 gpmc,we-off-ns = <87>;
76 gpmc,rd-cycle-ns = <112>;
77 gpmc,wr-cycle-ns = <112>;
78 gpmc,access-ns = <81>;
79 gpmc,page-burst-access-ns = <15>;
80 gpmc,bus-turnaround-ns = <0>;
81 gpmc,cycle2cycle-delay-ns = <0>;
82 gpmc,wait-monitoring-ns = <0>;
83 gpmc,clk-activation-ns = <5>;
84 gpmc,wr-data-mux-bus-ns = <30>;
85 gpmc,wr-access-ns = <81>;
86 gpmc,sync-clk-ps = <15000>;
87
88 x-loader@0 {
89 label = "X-Loader";
90 reg = <0 0x80000>;
91 };
92
93 bootloaders@80000 {
94 label = "U-Boot";
95 reg = <0x80000 0x1c0000>;
96 };
97
98 bootloaders_env@240000 {
99 label = "U-Boot Env";
100 reg = <0x240000 0x40000>;
101 };
102
103 kernel@280000 {
104 label = "Kernel";
105 reg = <0x280000 0x600000>;
106 };
107
108 filesystem@880000 {
109 label = "File System";
110 reg = <0x880000 0>; /* 0 = MTDPART_SIZ_FULL */
111 };
112
113 };
114};
diff --git a/arch/arm/boot/dts/omap3-n9.dts b/arch/arm/boot/dts/omap3-n9.dts
index ded5fcf084eb..1f91646b8951 100644
--- a/arch/arm/boot/dts/omap3-n9.dts
+++ b/arch/arm/boot/dts/omap3-n9.dts
@@ -40,7 +40,7 @@
40}; 40};
41 41
42&i2c3 { 42&i2c3 {
43 ak8975@0f { 43 ak8975@f {
44 compatible = "asahi-kasei,ak8975"; 44 compatible = "asahi-kasei,ak8975";
45 reg = <0x0f>; 45 reg = <0x0f>;
46 }; 46 };
diff --git a/arch/arm/boot/dts/omap5-board-common.dtsi b/arch/arm/boot/dts/omap5-board-common.dtsi
index ab6f640b282b..bf7ca00f4c21 100644
--- a/arch/arm/boot/dts/omap5-board-common.dtsi
+++ b/arch/arm/boot/dts/omap5-board-common.dtsi
@@ -700,6 +700,10 @@
700 vbus-supply = <&smps10_out1_reg>; 700 vbus-supply = <&smps10_out1_reg>;
701}; 701};
702 702
703&dwc3 {
704 dr_mode = "otg";
705};
706
703&mcspi1 { 707&mcspi1 {
704 708
705}; 709};
diff --git a/arch/arm/boot/dts/orion5x-linkstation.dtsi b/arch/arm/boot/dts/orion5x-linkstation.dtsi
index ebd93df5d07a..b6c9b85951ea 100644
--- a/arch/arm/boot/dts/orion5x-linkstation.dtsi
+++ b/arch/arm/boot/dts/orion5x-linkstation.dtsi
@@ -156,7 +156,7 @@
156&i2c { 156&i2c {
157 status = "okay"; 157 status = "okay";
158 158
159 rtc { 159 rtc@32 {
160 compatible = "ricoh,rs5c372a"; 160 compatible = "ricoh,rs5c372a";
161 reg = <0x32>; 161 reg = <0x32>;
162 }; 162 };
diff --git a/arch/arm/boot/dts/owl-s500-cubieboard6.dts b/arch/arm/boot/dts/owl-s500-cubieboard6.dts
index ea4e01bce8d1..7c96c59b610d 100644
--- a/arch/arm/boot/dts/owl-s500-cubieboard6.dts
+++ b/arch/arm/boot/dts/owl-s500-cubieboard6.dts
@@ -1,9 +1,8 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Cubietech CubieBoard6 3 * Cubietech CubieBoard6
3 * 4 *
4 * Copyright (c) 2017 Andreas Färber 5 * Copyright (c) 2017 Andreas Färber
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */ 6 */
8 7
9/dts-v1/; 8/dts-v1/;
diff --git a/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts b/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts
index 7be1d2eaf3f0..e610d49395d2 100644
--- a/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts
+++ b/arch/arm/boot/dts/owl-s500-guitar-bb-rev-b.dts
@@ -1,7 +1,6 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (c) 2016-2017 Andreas Färber 3 * Copyright (c) 2016-2017 Andreas Färber
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */ 4 */
6 5
7/dts-v1/; 6/dts-v1/;
diff --git a/arch/arm/boot/dts/owl-s500-guitar.dtsi b/arch/arm/boot/dts/owl-s500-guitar.dtsi
index 079b2c02cc13..81cc39871f17 100644
--- a/arch/arm/boot/dts/owl-s500-guitar.dtsi
+++ b/arch/arm/boot/dts/owl-s500-guitar.dtsi
@@ -1,9 +1,8 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * LeMaker Guitar SoM 3 * LeMaker Guitar SoM
3 * 4 *
4 * Copyright (c) 2016-2017 Andreas Färber 5 * Copyright (c) 2016-2017 Andreas Färber
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */ 6 */
8 7
9#include "owl-s500.dtsi" 8#include "owl-s500.dtsi"
diff --git a/arch/arm/boot/dts/owl-s500.dtsi b/arch/arm/boot/dts/owl-s500.dtsi
index 43c9980a4260..5ceb6cc4451d 100644
--- a/arch/arm/boot/dts/owl-s500.dtsi
+++ b/arch/arm/boot/dts/owl-s500.dtsi
@@ -1,9 +1,8 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Actions Semi S500 SoC 3 * Actions Semi S500 SoC
3 * 4 *
4 * Copyright (c) 2016-2017 Andreas Färber 5 * Copyright (c) 2016-2017 Andreas Färber
5 *
6 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
7 */ 6 */
8 7
9#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/interrupt-controller/arm-gic.h>
diff --git a/arch/arm/boot/dts/pxa25x.dtsi b/arch/arm/boot/dts/pxa25x.dtsi
index 95d59be97213..8494b5787170 100644
--- a/arch/arm/boot/dts/pxa25x.dtsi
+++ b/arch/arm/boot/dts/pxa25x.dtsi
@@ -80,6 +80,10 @@
80 #pwm-cells = <1>; 80 #pwm-cells = <1>;
81 clocks = <&clks CLK_PWM1>; 81 clocks = <&clks CLK_PWM1>;
82 }; 82 };
83
84 rtc@40900000 {
85 clocks = <&clks CLK_OSC32k768>;
86 };
83 }; 87 };
84 88
85 timer@40a00000 { 89 timer@40a00000 {
diff --git a/arch/arm/boot/dts/pxa27x.dtsi b/arch/arm/boot/dts/pxa27x.dtsi
index 747f750f675d..3228ad5fb725 100644
--- a/arch/arm/boot/dts/pxa27x.dtsi
+++ b/arch/arm/boot/dts/pxa27x.dtsi
@@ -71,7 +71,7 @@
71 clocks = <&clks CLK_PWM1>; 71 clocks = <&clks CLK_PWM1>;
72 }; 72 };
73 73
74 pwri2c: i2c@40f000180 { 74 pwri2c: i2c@40f00180 {
75 compatible = "mrvl,pxa-i2c"; 75 compatible = "mrvl,pxa-i2c";
76 reg = <0x40f00180 0x24>; 76 reg = <0x40f00180 0x24>;
77 interrupts = <6>; 77 interrupts = <6>;
@@ -113,6 +113,10 @@
113 113
114 status = "disabled"; 114 status = "disabled";
115 }; 115 };
116
117 rtc@40900000 {
118 clocks = <&clks CLK_OSC32k768>;
119 };
116 }; 120 };
117 121
118 clocks { 122 clocks {
diff --git a/arch/arm/boot/dts/pxa2xx.dtsi b/arch/arm/boot/dts/pxa2xx.dtsi
index a520b4c14ea9..080d5c5169b5 100644
--- a/arch/arm/boot/dts/pxa2xx.dtsi
+++ b/arch/arm/boot/dts/pxa2xx.dtsi
@@ -9,6 +9,25 @@
9#include "skeleton.dtsi" 9#include "skeleton.dtsi"
10#include "dt-bindings/clock/pxa-clock.h" 10#include "dt-bindings/clock/pxa-clock.h"
11 11
12#define PMGROUP(pin) #pin
13#define PMMUX(func, pin, af) \
14 mux- ## func { \
15 groups = PMGROUP(P ## pin); \
16 function = #af; \
17 }
18#define PMMUX_LPM_LOW(func, pin, af) \
19 mux- ## func { \
20 groups = PMGROUP(P ## pin); \
21 function = #af; \
22 low-power-disable; \
23 }
24#define PMMUX_LPM_HIGH(func, pin, af) \
25 mux- ## func { \
26 groups = PMGROUP(P ## pin); \
27 function = #af; \
28 low-power-enable; \
29 }
30
12/ { 31/ {
13 model = "Marvell PXA2xx family SoC"; 32 model = "Marvell PXA2xx family SoC";
14 compatible = "marvell,pxa2xx"; 33 compatible = "marvell,pxa2xx";
@@ -76,7 +95,7 @@
76 }; 95 };
77 }; 96 };
78 97
79 ffuart: uart@40100000 { 98 ffuart: serial@40100000 {
80 compatible = "mrvl,pxa-uart"; 99 compatible = "mrvl,pxa-uart";
81 reg = <0x40100000 0x30>; 100 reg = <0x40100000 0x30>;
82 interrupts = <22>; 101 interrupts = <22>;
@@ -84,7 +103,7 @@
84 status = "disabled"; 103 status = "disabled";
85 }; 104 };
86 105
87 btuart: uart@40200000 { 106 btuart: serial@40200000 {
88 compatible = "mrvl,pxa-uart"; 107 compatible = "mrvl,pxa-uart";
89 reg = <0x40200000 0x30>; 108 reg = <0x40200000 0x30>;
90 interrupts = <21>; 109 interrupts = <21>;
@@ -92,7 +111,7 @@
92 status = "disabled"; 111 status = "disabled";
93 }; 112 };
94 113
95 stuart: uart@40700000 { 114 stuart: serial@40700000 {
96 compatible = "mrvl,pxa-uart"; 115 compatible = "mrvl,pxa-uart";
97 reg = <0x40700000 0x30>; 116 reg = <0x40700000 0x30>;
98 interrupts = <20>; 117 interrupts = <20>;
@@ -100,7 +119,7 @@
100 status = "disabled"; 119 status = "disabled";
101 }; 120 };
102 121
103 hwuart: uart@41100000 { 122 hwuart: serial@41100000 {
104 compatible = "mrvl,pxa-uart"; 123 compatible = "mrvl,pxa-uart";
105 reg = <0x41100000 0x30>; 124 reg = <0x41100000 0x30>;
106 interrupts = <7>; 125 interrupts = <7>;
diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi b/arch/arm/boot/dts/qcom-apq8064.dtsi
index 4a99c9255104..48c3cf427610 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -1611,10 +1611,11 @@
1611 clocks = <&rpmcc RPM_QDSS_CLK>; 1611 clocks = <&rpmcc RPM_QDSS_CLK>;
1612 clock-names = "apb_pclk"; 1612 clock-names = "apb_pclk";
1613 1613
1614 port { 1614 in-ports {
1615 etb_in: endpoint { 1615 port {
1616 slave-mode; 1616 etb_in: endpoint {
1617 remote-endpoint = <&replicator_out0>; 1617 remote-endpoint = <&replicator_out0>;
1618 };
1618 }; 1619 };
1619 }; 1620 };
1620 }; 1621 };
@@ -1626,10 +1627,11 @@
1626 clocks = <&rpmcc RPM_QDSS_CLK>; 1627 clocks = <&rpmcc RPM_QDSS_CLK>;
1627 clock-names = "apb_pclk"; 1628 clock-names = "apb_pclk";
1628 1629
1629 port { 1630 in-ports {
1630 tpiu_in: endpoint { 1631 port {
1631 slave-mode; 1632 tpiu_in: endpoint {
1632 remote-endpoint = <&replicator_out1>; 1633 remote-endpoint = <&replicator_out1>;
1634 };
1633 }; 1635 };
1634 }; 1636 };
1635 }; 1637 };
@@ -1640,7 +1642,7 @@
1640 clocks = <&rpmcc RPM_QDSS_CLK>; 1642 clocks = <&rpmcc RPM_QDSS_CLK>;
1641 clock-names = "apb_pclk"; 1643 clock-names = "apb_pclk";
1642 1644
1643 ports { 1645 out-ports {
1644 #address-cells = <1>; 1646 #address-cells = <1>;
1645 #size-cells = <0>; 1647 #size-cells = <0>;
1646 1648
@@ -1656,10 +1658,11 @@
1656 remote-endpoint = <&tpiu_in>; 1658 remote-endpoint = <&tpiu_in>;
1657 }; 1659 };
1658 }; 1660 };
1659 port@2 { 1661 };
1660 reg = <0>; 1662
1663 in-ports {
1664 port {
1661 replicator_in: endpoint { 1665 replicator_in: endpoint {
1662 slave-mode;
1663 remote-endpoint = <&funnel_out>; 1666 remote-endpoint = <&funnel_out>;
1664 }; 1667 };
1665 }; 1668 };
@@ -1673,7 +1676,7 @@
1673 clocks = <&rpmcc RPM_QDSS_CLK>; 1676 clocks = <&rpmcc RPM_QDSS_CLK>;
1674 clock-names = "apb_pclk"; 1677 clock-names = "apb_pclk";
1675 1678
1676 ports { 1679 in-ports {
1677 #address-cells = <1>; 1680 #address-cells = <1>;
1678 #size-cells = <0>; 1681 #size-cells = <0>;
1679 1682
@@ -1687,33 +1690,31 @@
1687 port@0 { 1690 port@0 {
1688 reg = <0>; 1691 reg = <0>;
1689 funnel_in0: endpoint { 1692 funnel_in0: endpoint {
1690 slave-mode;
1691 remote-endpoint = <&etm0_out>; 1693 remote-endpoint = <&etm0_out>;
1692 }; 1694 };
1693 }; 1695 };
1694 port@1 { 1696 port@1 {
1695 reg = <1>; 1697 reg = <1>;
1696 funnel_in1: endpoint { 1698 funnel_in1: endpoint {
1697 slave-mode;
1698 remote-endpoint = <&etm1_out>; 1699 remote-endpoint = <&etm1_out>;
1699 }; 1700 };
1700 }; 1701 };
1701 port@4 { 1702 port@4 {
1702 reg = <4>; 1703 reg = <4>;
1703 funnel_in4: endpoint { 1704 funnel_in4: endpoint {
1704 slave-mode;
1705 remote-endpoint = <&etm2_out>; 1705 remote-endpoint = <&etm2_out>;
1706 }; 1706 };
1707 }; 1707 };
1708 port@5 { 1708 port@5 {
1709 reg = <5>; 1709 reg = <5>;
1710 funnel_in5: endpoint { 1710 funnel_in5: endpoint {
1711 slave-mode;
1712 remote-endpoint = <&etm3_out>; 1711 remote-endpoint = <&etm3_out>;
1713 }; 1712 };
1714 }; 1713 };
1715 port@8 { 1714 };
1716 reg = <0>; 1715
1716 out-ports {
1717 port {
1717 funnel_out: endpoint { 1718 funnel_out: endpoint {
1718 remote-endpoint = <&replicator_in>; 1719 remote-endpoint = <&replicator_in>;
1719 }; 1720 };
@@ -1730,9 +1731,11 @@
1730 1731
1731 cpu = <&CPU0>; 1732 cpu = <&CPU0>;
1732 1733
1733 port { 1734 out-ports {
1734 etm0_out: endpoint { 1735 port {
1735 remote-endpoint = <&funnel_in0>; 1736 etm0_out: endpoint {
1737 remote-endpoint = <&funnel_in0>;
1738 };
1736 }; 1739 };
1737 }; 1740 };
1738 }; 1741 };
@@ -1746,9 +1749,11 @@
1746 1749
1747 cpu = <&CPU1>; 1750 cpu = <&CPU1>;
1748 1751
1749 port { 1752 out-ports {
1750 etm1_out: endpoint { 1753 port {
1751 remote-endpoint = <&funnel_in1>; 1754 etm1_out: endpoint {
1755 remote-endpoint = <&funnel_in1>;
1756 };
1752 }; 1757 };
1753 }; 1758 };
1754 }; 1759 };
@@ -1762,9 +1767,11 @@
1762 1767
1763 cpu = <&CPU2>; 1768 cpu = <&CPU2>;
1764 1769
1765 port { 1770 out-ports {
1766 etm2_out: endpoint { 1771 port {
1767 remote-endpoint = <&funnel_in4>; 1772 etm2_out: endpoint {
1773 remote-endpoint = <&funnel_in4>;
1774 };
1768 }; 1775 };
1769 }; 1776 };
1770 }; 1777 };
@@ -1778,9 +1785,11 @@
1778 1785
1779 cpu = <&CPU3>; 1786 cpu = <&CPU3>;
1780 1787
1781 port { 1788 out-ports {
1782 etm3_out: endpoint { 1789 port {
1783 remote-endpoint = <&funnel_in5>; 1790 etm3_out: endpoint {
1791 remote-endpoint = <&funnel_in5>;
1792 };
1784 }; 1793 };
1785 }; 1794 };
1786 }; 1795 };
diff --git a/arch/arm/boot/dts/qcom-ipq4019.dtsi b/arch/arm/boot/dts/qcom-ipq4019.dtsi
index 78db67337ed4..2d56008d8d6b 100644
--- a/arch/arm/boot/dts/qcom-ipq4019.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq4019.dtsi
@@ -52,78 +52,85 @@
52 cpu@0 { 52 cpu@0 {
53 device_type = "cpu"; 53 device_type = "cpu";
54 compatible = "arm,cortex-a7"; 54 compatible = "arm,cortex-a7";
55 enable-method = "qcom,kpss-acc-v1"; 55 enable-method = "qcom,kpss-acc-v2";
56 next-level-cache = <&L2>;
56 qcom,acc = <&acc0>; 57 qcom,acc = <&acc0>;
57 qcom,saw = <&saw0>; 58 qcom,saw = <&saw0>;
58 reg = <0x0>; 59 reg = <0x0>;
59 clocks = <&gcc GCC_APPS_CLK_SRC>; 60 clocks = <&gcc GCC_APPS_CLK_SRC>;
60 clock-frequency = <0>; 61 clock-frequency = <0>;
61 operating-points = <
62 /* kHz uV (fixed) */
63 48000 1100000
64 200000 1100000
65 500000 1100000
66 716000 1100000
67 >;
68 clock-latency = <256000>; 62 clock-latency = <256000>;
63 operating-points-v2 = <&cpu0_opp_table>;
69 }; 64 };
70 65
71 cpu@1 { 66 cpu@1 {
72 device_type = "cpu"; 67 device_type = "cpu";
73 compatible = "arm,cortex-a7"; 68 compatible = "arm,cortex-a7";
74 enable-method = "qcom,kpss-acc-v1"; 69 enable-method = "qcom,kpss-acc-v2";
70 next-level-cache = <&L2>;
75 qcom,acc = <&acc1>; 71 qcom,acc = <&acc1>;
76 qcom,saw = <&saw1>; 72 qcom,saw = <&saw1>;
77 reg = <0x1>; 73 reg = <0x1>;
78 clocks = <&gcc GCC_APPS_CLK_SRC>; 74 clocks = <&gcc GCC_APPS_CLK_SRC>;
79 clock-frequency = <0>; 75 clock-frequency = <0>;
80 operating-points = <
81 /* kHz uV (fixed) */
82 48000 1100000
83 200000 1100000
84 500000 1100000
85 666000 1100000
86 >;
87 clock-latency = <256000>; 76 clock-latency = <256000>;
77 operating-points-v2 = <&cpu0_opp_table>;
88 }; 78 };
89 79
90 cpu@2 { 80 cpu@2 {
91 device_type = "cpu"; 81 device_type = "cpu";
92 compatible = "arm,cortex-a7"; 82 compatible = "arm,cortex-a7";
93 enable-method = "qcom,kpss-acc-v1"; 83 enable-method = "qcom,kpss-acc-v2";
84 next-level-cache = <&L2>;
94 qcom,acc = <&acc2>; 85 qcom,acc = <&acc2>;
95 qcom,saw = <&saw2>; 86 qcom,saw = <&saw2>;
96 reg = <0x2>; 87 reg = <0x2>;
97 clocks = <&gcc GCC_APPS_CLK_SRC>; 88 clocks = <&gcc GCC_APPS_CLK_SRC>;
98 clock-frequency = <0>; 89 clock-frequency = <0>;
99 operating-points = <
100 /* kHz uV (fixed) */
101 48000 1100000
102 200000 1100000
103 500000 1100000
104 666000 1100000
105 >;
106 clock-latency = <256000>; 90 clock-latency = <256000>;
91 operating-points-v2 = <&cpu0_opp_table>;
107 }; 92 };
108 93
109 cpu@3 { 94 cpu@3 {
110 device_type = "cpu"; 95 device_type = "cpu";
111 compatible = "arm,cortex-a7"; 96 compatible = "arm,cortex-a7";
112 enable-method = "qcom,kpss-acc-v1"; 97 enable-method = "qcom,kpss-acc-v2";
98 next-level-cache = <&L2>;
113 qcom,acc = <&acc3>; 99 qcom,acc = <&acc3>;
114 qcom,saw = <&saw3>; 100 qcom,saw = <&saw3>;
115 reg = <0x3>; 101 reg = <0x3>;
116 clocks = <&gcc GCC_APPS_CLK_SRC>; 102 clocks = <&gcc GCC_APPS_CLK_SRC>;
117 clock-frequency = <0>; 103 clock-frequency = <0>;
118 operating-points = <
119 /* kHz uV (fixed) */
120 48000 1100000
121 200000 1100000
122 500000 1100000
123 666000 1100000
124 >;
125 clock-latency = <256000>; 104 clock-latency = <256000>;
105 operating-points-v2 = <&cpu0_opp_table>;
126 }; 106 };
107
108 L2: l2-cache {
109 compatible = "cache";
110 cache-level = <2>;
111 };
112 };
113
114 cpu0_opp_table: opp_table0 {
115 compatible = "operating-points-v2";
116 opp-shared;
117
118 opp-48000000 {
119 opp-hz = /bits/ 64 <48000000>;
120 clock-latency-ns = <256000>;
121 };
122 opp-200000000 {
123 opp-hz = /bits/ 64 <200000000>;
124 clock-latency-ns = <256000>;
125 };
126 opp-500000000 {
127 opp-hz = /bits/ 64 <500000000>;
128 clock-latency-ns = <256000>;
129 };
130 opp-716000000 {
131 opp-hz = /bits/ 64 <716000000>;
132 clock-latency-ns = <256000>;
133 };
127 }; 134 };
128 135
129 pmu { 136 pmu {
@@ -291,49 +298,49 @@
291 status = "disabled"; 298 status = "disabled";
292 }; 299 };
293 300
294 acc0: clock-controller@b088000 { 301 acc0: clock-controller@b088000 {
295 compatible = "qcom,kpss-acc-v1"; 302 compatible = "qcom,kpss-acc-v2";
296 reg = <0x0b088000 0x1000>, <0xb008000 0x1000>; 303 reg = <0x0b088000 0x1000>, <0xb008000 0x1000>;
297 }; 304 };
298 305
299 acc1: clock-controller@b098000 { 306 acc1: clock-controller@b098000 {
300 compatible = "qcom,kpss-acc-v1"; 307 compatible = "qcom,kpss-acc-v2";
301 reg = <0x0b098000 0x1000>, <0xb008000 0x1000>; 308 reg = <0x0b098000 0x1000>, <0xb008000 0x1000>;
302 }; 309 };
303 310
304 acc2: clock-controller@b0a8000 { 311 acc2: clock-controller@b0a8000 {
305 compatible = "qcom,kpss-acc-v1"; 312 compatible = "qcom,kpss-acc-v2";
306 reg = <0x0b0a8000 0x1000>, <0xb008000 0x1000>; 313 reg = <0x0b0a8000 0x1000>, <0xb008000 0x1000>;
307 }; 314 };
308 315
309 acc3: clock-controller@b0b8000 { 316 acc3: clock-controller@b0b8000 {
310 compatible = "qcom,kpss-acc-v1"; 317 compatible = "qcom,kpss-acc-v2";
311 reg = <0x0b0b8000 0x1000>, <0xb008000 0x1000>; 318 reg = <0x0b0b8000 0x1000>, <0xb008000 0x1000>;
312 }; 319 };
313 320
314 saw0: regulator@b089000 { 321 saw0: regulator@b089000 {
315 compatible = "qcom,saw2"; 322 compatible = "qcom,saw2";
316 reg = <0x02089000 0x1000>, <0x0b009000 0x1000>; 323 reg = <0x0b089000 0x1000>, <0x0b009000 0x1000>;
317 regulator; 324 regulator;
318 }; 325 };
319 326
320 saw1: regulator@b099000 { 327 saw1: regulator@b099000 {
321 compatible = "qcom,saw2"; 328 compatible = "qcom,saw2";
322 reg = <0x0b099000 0x1000>, <0x0b009000 0x1000>; 329 reg = <0x0b099000 0x1000>, <0x0b009000 0x1000>;
323 regulator; 330 regulator;
324 }; 331 };
325 332
326 saw2: regulator@b0a9000 { 333 saw2: regulator@b0a9000 {
327 compatible = "qcom,saw2"; 334 compatible = "qcom,saw2";
328 reg = <0x0b0a9000 0x1000>, <0x0b009000 0x1000>; 335 reg = <0x0b0a9000 0x1000>, <0x0b009000 0x1000>;
329 regulator; 336 regulator;
330 }; 337 };
331 338
332 saw3: regulator@b0b9000 { 339 saw3: regulator@b0b9000 {
333 compatible = "qcom,saw2"; 340 compatible = "qcom,saw2";
334 reg = <0x0b0b9000 0x1000>, <0x0b009000 0x1000>; 341 reg = <0x0b0b9000 0x1000>, <0x0b009000 0x1000>;
335 regulator; 342 regulator;
336 }; 343 };
337 344
338 blsp1_uart1: serial@78af000 { 345 blsp1_uart1: serial@78af000 {
339 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 346 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
@@ -387,7 +394,7 @@
387 #size-cells = <2>; 394 #size-cells = <2>;
388 395
389 ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000 396 ranges = <0x81000000 0 0x40200000 0x40200000 0 0x00100000
390 0x82000000 0 0x48000000 0x48000000 0 0x10000000>; 397 0x82000000 0 0x40300000 0x40300000 0 0x400000>;
391 398
392 interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>; 399 interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>;
393 interrupt-names = "msi"; 400 interrupt-names = "msi";
diff --git a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
index bcf53e37ed93..554c65e7aa0e 100644
--- a/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
+++ b/arch/arm/boot/dts/qcom-ipq8064-ap148.dts
@@ -2,26 +2,8 @@
2#include "qcom-ipq8064-v1.0.dtsi" 2#include "qcom-ipq8064-v1.0.dtsi"
3 3
4/ { 4/ {
5 model = "Qualcomm IPQ8064/AP148"; 5 model = "Qualcomm Technologies, Inc. IPQ8064/AP-148";
6 compatible = "qcom,ipq8064-ap148", "qcom,ipq8064"; 6 compatible = "qcom,ipq8064-ap148";
7
8 aliases {
9 serial0 = &gsbi4_serial;
10 };
11
12 chosen {
13 stdout-path = "serial0:115200n8";
14 };
15
16 reserved-memory {
17 #address-cells = <1>;
18 #size-cells = <1>;
19 ranges;
20 rsvd@41200000 {
21 reg = <0x41200000 0x300000>;
22 no-map;
23 };
24 };
25 7
26 soc { 8 soc {
27 pinmux@800000 { 9 pinmux@800000 {
@@ -31,73 +13,22 @@
31 bias-disable; 13 bias-disable;
32 }; 14 };
33 15
34 spi_pins: spi_pins { 16 buttons_pins: buttons_pins {
35 mux { 17 mux {
36 pins = "gpio18", "gpio19", "gpio21"; 18 pins = "gpio54", "gpio65";
37 function = "gsbi5"; 19 drive-strength = <2>;
38 drive-strength = <10>; 20 bias-pull-up;
39 bias-none;
40 }; 21 };
41 }; 22 };
42 }; 23 };
43 24
44 gsbi@16300000 { 25 gsbi@16300000 {
45 qcom,mode = <GSBI_PROT_I2C_UART>; 26 i2c@16380000 {
46 status = "ok";
47 serial@16340000 {
48 status = "ok"; 27 status = "ok";
49 };
50
51 i2c4: i2c@16380000 {
52 status = "ok";
53
54 clock-frequency = <200000>; 28 clock-frequency = <200000>;
55
56 pinctrl-0 = <&i2c4_pins>; 29 pinctrl-0 = <&i2c4_pins>;
57 pinctrl-names = "default"; 30 pinctrl-names = "default";
58 }; 31 };
59 }; 32 };
60
61 gsbi5: gsbi@1a200000 {
62 qcom,mode = <GSBI_PROT_SPI>;
63 status = "ok";
64
65 spi4: spi@1a280000 {
66 status = "ok";
67 spi-max-frequency = <50000000>;
68
69 pinctrl-0 = <&spi_pins>;
70 pinctrl-names = "default";
71
72 cs-gpios = <&qcom_pinmux 20 0>;
73
74 flash: m25p80@0 {
75 compatible = "s25fl256s1";
76 #address-cells = <1>;
77 #size-cells = <1>;
78 spi-max-frequency = <50000000>;
79 reg = <0>;
80
81 partition@0 {
82 label = "rootfs";
83 reg = <0x0 0x1000000>;
84 };
85
86 partition@1 {
87 label = "scratch";
88 reg = <0x1000000 0x1000000>;
89 };
90 };
91 };
92 };
93
94 sata-phy@1b400000 {
95 status = "ok";
96 };
97
98 sata@29000000 {
99 ports-implemented = <0x1>;
100 status = "ok";
101 };
102 }; 33 };
103}; 34};
diff --git a/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi b/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
index e1181194e8d3..e239a0486936 100644
--- a/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
@@ -1,2 +1,127 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2#include "qcom-ipq8064.dtsi" 2#include "qcom-ipq8064.dtsi"
3#include <dt-bindings/input/input.h>
4
5/ {
6 model = "Qualcomm Technologies, Inc. IPQ8064-v1.0";
7
8 aliases {
9 serial0 = &gsbi4_serial;
10 };
11
12 chosen {
13 stdout-path = "serial0:115200n8";
14 };
15
16 soc {
17 gsbi@16300000 {
18 qcom,mode = <GSBI_PROT_I2C_UART>;
19 status = "ok";
20
21 serial@16340000 {
22 status = "ok";
23 };
24 };
25
26 gsbi5: gsbi@1a200000 {
27 qcom,mode = <GSBI_PROT_SPI>;
28 status = "ok";
29
30 spi4: spi@1a280000 {
31 status = "ok";
32 spi-max-frequency = <50000000>;
33
34 pinctrl-0 = <&spi_pins>;
35 pinctrl-names = "default";
36
37 cs-gpios = <&qcom_pinmux 20 0>;
38
39 flash: m25p80@0 {
40 compatible = "s25fl256s1";
41 #address-cells = <1>;
42 #size-cells = <1>;
43 spi-max-frequency = <50000000>;
44 reg = <0>;
45
46 partition@0 {
47 label = "rootfs";
48 reg = <0x0 0x1000000>;
49 };
50
51 partition@1 {
52 label = "scratch";
53 reg = <0x1000000 0x1000000>;
54 };
55 };
56 };
57 };
58
59 sata-phy@1b400000 {
60 status = "ok";
61 };
62
63 sata@29000000 {
64 ports-implemented = <0x1>;
65 status = "ok";
66 };
67
68 gpio_keys {
69 compatible = "gpio-keys";
70 pinctrl-0 = <&buttons_pins>;
71 pinctrl-names = "default";
72
73 button@1 {
74 label = "reset";
75 linux,code = <KEY_RESTART>;
76 gpios = <&qcom_pinmux 54 GPIO_ACTIVE_LOW>;
77 linux,input-type = <1>;
78 debounce-interval = <60>;
79 };
80 button@2 {
81 label = "wps";
82 linux,code = <KEY_WPS_BUTTON>;
83 gpios = <&qcom_pinmux 65 GPIO_ACTIVE_LOW>;
84 linux,input-type = <1>;
85 debounce-interval = <60>;
86 };
87 };
88
89 leds {
90 compatible = "gpio-leds";
91 pinctrl-0 = <&leds_pins>;
92 pinctrl-names = "default";
93
94 led@7 {
95 label = "led_usb1";
96 gpios = <&qcom_pinmux 7 GPIO_ACTIVE_HIGH>;
97 linux,default-trigger = "usbdev";
98 default-state = "off";
99 };
100
101 led@8 {
102 label = "led_usb3";
103 gpios = <&qcom_pinmux 8 GPIO_ACTIVE_HIGH>;
104 linux,default-trigger = "usbdev";
105 default-state = "off";
106 };
107
108 led@9 {
109 label = "status_led_fail";
110 gpios = <&qcom_pinmux 9 GPIO_ACTIVE_HIGH>;
111 default-state = "off";
112 };
113
114 led@26 {
115 label = "sata_led";
116 gpios = <&qcom_pinmux 26 GPIO_ACTIVE_HIGH>;
117 default-state = "off";
118 };
119
120 led@53 {
121 label = "status_led_pass";
122 gpios = <&qcom_pinmux 53 GPIO_ACTIVE_HIGH>;
123 default-state = "off";
124 };
125 };
126 };
127};
diff --git a/arch/arm/boot/dts/qcom-ipq8064.dtsi b/arch/arm/boot/dts/qcom-ipq8064.dtsi
index 70790ac242d1..f793cd1ad6d0 100644
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
@@ -2,8 +2,11 @@
2/dts-v1/; 2/dts-v1/;
3 3
4#include "skeleton.dtsi" 4#include "skeleton.dtsi"
5#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/qcom,gcc-ipq806x.h> 6#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
6#include <dt-bindings/clock/qcom,lcc-ipq806x.h> 7#include <dt-bindings/clock/qcom,lcc-ipq806x.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/reset/qcom,gcc-ipq806x.h>
7#include <dt-bindings/soc/qcom,gsbi.h> 10#include <dt-bindings/soc/qcom,gsbi.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h> 11#include <dt-bindings/interrupt-controller/arm-gic.h>
9 12
@@ -114,6 +117,61 @@
114 interrupt-controller; 117 interrupt-controller;
115 #interrupt-cells = <2>; 118 #interrupt-cells = <2>;
116 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 119 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
120
121 pcie0_pins: pcie0_pinmux {
122 mux {
123 pins = "gpio3";
124 function = "pcie1_rst";
125 drive-strength = <12>;
126 bias-disable;
127 };
128 };
129
130 pcie1_pins: pcie1_pinmux {
131 mux {
132 pins = "gpio48";
133 function = "pcie2_rst";
134 drive-strength = <12>;
135 bias-disable;
136 };
137 };
138
139 pcie2_pins: pcie2_pinmux {
140 mux {
141 pins = "gpio63";
142 function = "pcie3_rst";
143 drive-strength = <12>;
144 bias-disable;
145 };
146 };
147
148 spi_pins: spi_pins {
149 mux {
150 pins = "gpio18", "gpio19", "gpio21";
151 function = "gsbi5";
152 drive-strength = <10>;
153 bias-none;
154 };
155 };
156
157 leds_pins: leds_pins {
158 mux {
159 pins = "gpio7", "gpio8", "gpio9",
160 "gpio26", "gpio53";
161 function = "gpio";
162 drive-strength = <2>;
163 bias-pull-down;
164 output-low;
165 };
166 };
167
168 buttons_pins: buttons_pins {
169 mux {
170 pins = "gpio54";
171 drive-strength = <2>;
172 bias-pull-up;
173 };
174 };
117 }; 175 };
118 176
119 intc: interrupt-controller@2000000 { 177 intc: interrupt-controller@2000000 {
@@ -373,5 +431,233 @@
373 #reset-cells = <1>; 431 #reset-cells = <1>;
374 }; 432 };
375 433
434 pcie0: pci@1b500000 {
435 compatible = "qcom,pcie-ipq8064";
436 reg = <0x1b500000 0x1000
437 0x1b502000 0x80
438 0x1b600000 0x100
439 0x0ff00000 0x100000>;
440 reg-names = "dbi", "elbi", "parf", "config";
441 device_type = "pci";
442 linux,pci-domain = <0>;
443 bus-range = <0x00 0xff>;
444 num-lanes = <1>;
445 #address-cells = <3>;
446 #size-cells = <2>;
447
448 ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000 /* downstream I/O */
449 0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
450
451 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
452 interrupt-names = "msi";
453 #interrupt-cells = <1>;
454 interrupt-map-mask = <0 0 0 0x7>;
455 interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
456 <0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
457 <0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
458 <0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
459
460 clocks = <&gcc PCIE_A_CLK>,
461 <&gcc PCIE_H_CLK>,
462 <&gcc PCIE_PHY_CLK>,
463 <&gcc PCIE_AUX_CLK>,
464 <&gcc PCIE_ALT_REF_CLK>;
465 clock-names = "core", "iface", "phy", "aux", "ref";
466
467 assigned-clocks = <&gcc PCIE_ALT_REF_CLK>;
468 assigned-clock-rates = <100000000>;
469
470 resets = <&gcc PCIE_ACLK_RESET>,
471 <&gcc PCIE_HCLK_RESET>,
472 <&gcc PCIE_POR_RESET>,
473 <&gcc PCIE_PCI_RESET>,
474 <&gcc PCIE_PHY_RESET>,
475 <&gcc PCIE_EXT_RESET>;
476 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
477
478 pinctrl-0 = <&pcie0_pins>;
479 pinctrl-names = "default";
480
481 status = "disabled";
482 perst-gpio = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
483 };
484
485 pcie1: pci@1b700000 {
486 compatible = "qcom,pcie-ipq8064";
487 reg = <0x1b700000 0x1000
488 0x1b702000 0x80
489 0x1b800000 0x100
490 0x31f00000 0x100000>;
491 reg-names = "dbi", "elbi", "parf", "config";
492 device_type = "pci";
493 linux,pci-domain = <1>;
494 bus-range = <0x00 0xff>;
495 num-lanes = <1>;
496 #address-cells = <3>;
497 #size-cells = <2>;
498
499 ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000 /* downstream I/O */
500 0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
501
502 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
503 interrupt-names = "msi";
504 #interrupt-cells = <1>;
505 interrupt-map-mask = <0 0 0 0x7>;
506 interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
507 <0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
508 <0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
509 <0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
510
511 clocks = <&gcc PCIE_1_A_CLK>,
512 <&gcc PCIE_1_H_CLK>,
513 <&gcc PCIE_1_PHY_CLK>,
514 <&gcc PCIE_1_AUX_CLK>,
515 <&gcc PCIE_1_ALT_REF_CLK>;
516 clock-names = "core", "iface", "phy", "aux", "ref";
517
518 assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>;
519 assigned-clock-rates = <100000000>;
520
521 resets = <&gcc PCIE_1_ACLK_RESET>,
522 <&gcc PCIE_1_HCLK_RESET>,
523 <&gcc PCIE_1_POR_RESET>,
524 <&gcc PCIE_1_PCI_RESET>,
525 <&gcc PCIE_1_PHY_RESET>,
526 <&gcc PCIE_1_EXT_RESET>;
527 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
528
529 pinctrl-0 = <&pcie1_pins>;
530 pinctrl-names = "default";
531
532 status = "disabled";
533 perst-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
534 };
535
536 pcie2: pci@1b900000 {
537 compatible = "qcom,pcie-ipq8064";
538 reg = <0x1b900000 0x1000
539 0x1b902000 0x80
540 0x1ba00000 0x100
541 0x35f00000 0x100000>;
542 reg-names = "dbi", "elbi", "parf", "config";
543 device_type = "pci";
544 linux,pci-domain = <2>;
545 bus-range = <0x00 0xff>;
546 num-lanes = <1>;
547 #address-cells = <3>;
548 #size-cells = <2>;
549
550 ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000 /* downstream I/O */
551 0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
552
553 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
554 interrupt-names = "msi";
555 #interrupt-cells = <1>;
556 interrupt-map-mask = <0 0 0 0x7>;
557 interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
558 <0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
559 <0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
560 <0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
561
562 clocks = <&gcc PCIE_2_A_CLK>,
563 <&gcc PCIE_2_H_CLK>,
564 <&gcc PCIE_2_PHY_CLK>,
565 <&gcc PCIE_2_AUX_CLK>,
566 <&gcc PCIE_2_ALT_REF_CLK>;
567 clock-names = "core", "iface", "phy", "aux", "ref";
568
569 assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>;
570 assigned-clock-rates = <100000000>;
571
572 resets = <&gcc PCIE_2_ACLK_RESET>,
573 <&gcc PCIE_2_HCLK_RESET>,
574 <&gcc PCIE_2_POR_RESET>,
575 <&gcc PCIE_2_PCI_RESET>,
576 <&gcc PCIE_2_PHY_RESET>,
577 <&gcc PCIE_2_EXT_RESET>;
578 reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
579
580 pinctrl-0 = <&pcie2_pins>;
581 pinctrl-names = "default";
582
583 status = "disabled";
584 perst-gpio = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
585 };
586
587 vsdcc_fixed: vsdcc-regulator {
588 compatible = "regulator-fixed";
589 regulator-name = "SDCC Power";
590 regulator-min-microvolt = <3300000>;
591 regulator-max-microvolt = <3300000>;
592 regulator-always-on;
593 };
594
595 sdcc1bam:dma@12402000 {
596 compatible = "qcom,bam-v1.3.0";
597 reg = <0x12402000 0x8000>;
598 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
599 clocks = <&gcc SDC1_H_CLK>;
600 clock-names = "bam_clk";
601 #dma-cells = <1>;
602 qcom,ee = <0>;
603 };
604
605 sdcc3bam:dma@12182000 {
606 compatible = "qcom,bam-v1.3.0";
607 reg = <0x12182000 0x8000>;
608 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
609 clocks = <&gcc SDC3_H_CLK>;
610 clock-names = "bam_clk";
611 #dma-cells = <1>;
612 qcom,ee = <0>;
613 };
614
615 amba {
616 compatible = "simple-bus";
617 #address-cells = <1>;
618 #size-cells = <1>;
619 ranges;
620
621 sdcc@12400000 {
622 status = "disabled";
623 compatible = "arm,pl18x", "arm,primecell";
624 arm,primecell-periphid = <0x00051180>;
625 reg = <0x12400000 0x2000>;
626 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
627 interrupt-names = "cmd_irq";
628 clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
629 clock-names = "mclk", "apb_pclk";
630 bus-width = <8>;
631 max-frequency = <96000000>;
632 non-removable;
633 cap-sd-highspeed;
634 cap-mmc-highspeed;
635 mmc-ddr-1_8v;
636 vmmc-supply = <&vsdcc_fixed>;
637 dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
638 dma-names = "tx", "rx";
639 };
640
641 sdcc@12180000 {
642 compatible = "arm,pl18x", "arm,primecell";
643 arm,primecell-periphid = <0x00051180>;
644 status = "disabled";
645 reg = <0x12180000 0x2000>;
646 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
647 interrupt-names = "cmd_irq";
648 clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
649 clock-names = "mclk", "apb_pclk";
650 bus-width = <8>;
651 cap-sd-highspeed;
652 cap-mmc-highspeed;
653 max-frequency = <192000000>;
654 #mmc-ddr-1_8v;
655 sd-uhs-sdr104;
656 sd-uhs-ddr50;
657 vqmmc-supply = <&vsdcc_fixed>;
658 dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
659 dma-names = "tx", "rx";
660 };
661 };
376 }; 662 };
377}; 663};
diff --git a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
index c2dc9d09484a..ed8f064d0895 100644
--- a/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
+++ b/arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
@@ -241,6 +241,33 @@
241 bias-pull-up; 241 bias-pull-up;
242 }; 242 };
243 }; 243 };
244
245 i2c3_pins: i2c3 {
246 mux {
247 pins = "gpio10", "gpio11";
248 function = "blsp_i2c3";
249 drive-strength = <2>;
250 bias-disable;
251 };
252 };
253
254 i2c12_pins: i2c12 {
255 mux {
256 pins = "gpio87", "gpio88";
257 function = "blsp_i2c12";
258 drive-strength = <2>;
259 bias-disable;
260 };
261 };
262
263 mpu6515_pin: mpu6515 {
264 irq {
265 pins = "gpio73";
266 function = "gpio";
267 bias-disable;
268 input-enable;
269 };
270 };
244 }; 271 };
245 272
246 sdhci@f9824900 { 273 sdhci@f9824900 {
@@ -277,6 +304,62 @@
277 linux,code = <KEY_VOLUMEDOWN>; 304 linux,code = <KEY_VOLUMEDOWN>;
278 }; 305 };
279 }; 306 };
307
308 i2c@f9968000 {
309 status = "ok";
310 pinctrl-names = "default";
311 pinctrl-0 = <&i2c12_pins>;
312 clock-frequency = <100000>;
313 qcom,src-freq = <50000000>;
314
315 mpu6515@68 {
316 compatible = "invensense,mpu6515";
317 reg = <0x68>;
318 interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>;
319 vddio-supply = <&pm8941_lvs1>;
320
321 pinctrl-names = "default";
322 pinctrl-0 = <&mpu6515_pin>;
323
324 i2c-gate {
325 #address-cells = <1>;
326 #size-cells = <0>;
327 ak8963@f {
328 compatible = "asahi-kasei,ak8963";
329 reg = <0x0f>;
330 // Currently only works in polling mode.
331 // gpios = <&msmgpio 61 0>;
332 vid-supply = <&pm8941_lvs1>;
333 vdd-supply = <&pm8941_l17>;
334 };
335
336 bmp280@76 {
337 compatible = "bosch,bmp280";
338 reg = <0x76>;
339 vdda-supply = <&pm8941_lvs1>;
340 vddd-supply = <&pm8941_l17>;
341 };
342 };
343 };
344 };
345
346 i2c@f9925000 {
347 status = "ok";
348 pinctrl-names = "default";
349 pinctrl-0 = <&i2c3_pins>;
350 clock-frequency = <100000>;
351 qcom,src-freq = <50000000>;
352
353 avago_apds993@39 {
354 compatible = "avago,apds9930";
355 reg = <0x39>;
356 interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
357 vdd-supply = <&pm8941_l17>;
358 vddio-supply = <&pm8941_lvs1>;
359 led-max-microamp = <100000>;
360 amstaos,proximity-diodes = <0>;
361 };
362 };
280}; 363};
281 364
282&spmi_bus { 365&spmi_bus {
diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi
index d9019a49b292..aba159d5a95a 100644
--- a/arch/arm/boot/dts/qcom-msm8974.dtsi
+++ b/arch/arm/boot/dts/qcom-msm8974.dtsi
@@ -67,7 +67,7 @@
67 cpus { 67 cpus {
68 #address-cells = <1>; 68 #address-cells = <1>;
69 #size-cells = <0>; 69 #size-cells = <0>;
70 interrupts = <1 9 0xf04>; 70 interrupts = <GIC_PPI 9 0xf04>;
71 71
72 CPU0: cpu@0 { 72 CPU0: cpu@0 {
73 compatible = "qcom,krait"; 73 compatible = "qcom,krait";
@@ -214,7 +214,7 @@
214 214
215 cpu-pmu { 215 cpu-pmu {
216 compatible = "qcom,krait-pmu"; 216 compatible = "qcom,krait-pmu";
217 interrupts = <1 7 0xf04>; 217 interrupts = <GIC_PPI 7 0xf04>;
218 }; 218 };
219 219
220 clocks { 220 clocks {
@@ -233,17 +233,17 @@
233 233
234 timer { 234 timer {
235 compatible = "arm,armv7-timer"; 235 compatible = "arm,armv7-timer";
236 interrupts = <1 2 0xf08>, 236 interrupts = <GIC_PPI 2 0xf08>,
237 <1 3 0xf08>, 237 <GIC_PPI 3 0xf08>,
238 <1 4 0xf08>, 238 <GIC_PPI 4 0xf08>,
239 <1 1 0xf08>; 239 <GIC_PPI 1 0xf08>;
240 clock-frequency = <19200000>; 240 clock-frequency = <19200000>;
241 }; 241 };
242 242
243 adsp-pil { 243 adsp-pil {
244 compatible = "qcom,msm8974-adsp-pil"; 244 compatible = "qcom,msm8974-adsp-pil";
245 245
246 interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>, 246 interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
247 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>, 247 <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
248 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>, 248 <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
249 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>, 249 <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
@@ -275,7 +275,7 @@
275 qcom,smem = <443>, <429>; 275 qcom,smem = <443>, <429>;
276 276
277 interrupt-parent = <&intc>; 277 interrupt-parent = <&intc>;
278 interrupts = <0 158 IRQ_TYPE_EDGE_RISING>; 278 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
279 279
280 qcom,ipc = <&apcs 8 10>; 280 qcom,ipc = <&apcs 8 10>;
281 281
@@ -300,7 +300,7 @@
300 qcom,smem = <435>, <428>; 300 qcom,smem = <435>, <428>;
301 301
302 interrupt-parent = <&intc>; 302 interrupt-parent = <&intc>;
303 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>; 303 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
304 304
305 qcom,ipc = <&apcs 8 14>; 305 qcom,ipc = <&apcs 8 14>;
306 306
@@ -325,7 +325,7 @@
325 qcom,smem = <451>, <431>; 325 qcom,smem = <451>, <431>;
326 326
327 interrupt-parent = <&intc>; 327 interrupt-parent = <&intc>;
328 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>; 328 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
329 329
330 qcom,ipc = <&apcs 8 18>; 330 qcom,ipc = <&apcs 8 18>;
331 331
@@ -364,7 +364,7 @@
364 364
365 modem_smsm: modem@1 { 365 modem_smsm: modem@1 {
366 reg = <1>; 366 reg = <1>;
367 interrupts = <0 26 IRQ_TYPE_EDGE_RISING>; 367 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
368 368
369 interrupt-controller; 369 interrupt-controller;
370 #interrupt-cells = <2>; 370 #interrupt-cells = <2>;
@@ -372,7 +372,7 @@
372 372
373 adsp_smsm: adsp@2 { 373 adsp_smsm: adsp@2 {
374 reg = <2>; 374 reg = <2>;
375 interrupts = <0 157 IRQ_TYPE_EDGE_RISING>; 375 interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
376 376
377 interrupt-controller; 377 interrupt-controller;
378 #interrupt-cells = <2>; 378 #interrupt-cells = <2>;
@@ -380,7 +380,7 @@
380 380
381 wcnss_smsm: wcnss@7 { 381 wcnss_smsm: wcnss@7 {
382 reg = <7>; 382 reg = <7>;
383 interrupts = <0 144 IRQ_TYPE_EDGE_RISING>; 383 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
384 384
385 interrupt-controller; 385 interrupt-controller;
386 #interrupt-cells = <2>; 386 #interrupt-cells = <2>;
@@ -445,50 +445,50 @@
445 445
446 frame@f9021000 { 446 frame@f9021000 {
447 frame-number = <0>; 447 frame-number = <0>;
448 interrupts = <0 8 0x4>, 448 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
449 <0 7 0x4>; 449 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
450 reg = <0xf9021000 0x1000>, 450 reg = <0xf9021000 0x1000>,
451 <0xf9022000 0x1000>; 451 <0xf9022000 0x1000>;
452 }; 452 };
453 453
454 frame@f9023000 { 454 frame@f9023000 {
455 frame-number = <1>; 455 frame-number = <1>;
456 interrupts = <0 9 0x4>; 456 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
457 reg = <0xf9023000 0x1000>; 457 reg = <0xf9023000 0x1000>;
458 status = "disabled"; 458 status = "disabled";
459 }; 459 };
460 460
461 frame@f9024000 { 461 frame@f9024000 {
462 frame-number = <2>; 462 frame-number = <2>;
463 interrupts = <0 10 0x4>; 463 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
464 reg = <0xf9024000 0x1000>; 464 reg = <0xf9024000 0x1000>;
465 status = "disabled"; 465 status = "disabled";
466 }; 466 };
467 467
468 frame@f9025000 { 468 frame@f9025000 {
469 frame-number = <3>; 469 frame-number = <3>;
470 interrupts = <0 11 0x4>; 470 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
471 reg = <0xf9025000 0x1000>; 471 reg = <0xf9025000 0x1000>;
472 status = "disabled"; 472 status = "disabled";
473 }; 473 };
474 474
475 frame@f9026000 { 475 frame@f9026000 {
476 frame-number = <4>; 476 frame-number = <4>;
477 interrupts = <0 12 0x4>; 477 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
478 reg = <0xf9026000 0x1000>; 478 reg = <0xf9026000 0x1000>;
479 status = "disabled"; 479 status = "disabled";
480 }; 480 };
481 481
482 frame@f9027000 { 482 frame@f9027000 {
483 frame-number = <5>; 483 frame-number = <5>;
484 interrupts = <0 13 0x4>; 484 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
485 reg = <0xf9027000 0x1000>; 485 reg = <0xf9027000 0x1000>;
486 status = "disabled"; 486 status = "disabled";
487 }; 487 };
488 488
489 frame@f9028000 { 489 frame@f9028000 {
490 frame-number = <6>; 490 frame-number = <6>;
491 interrupts = <0 14 0x4>; 491 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
492 reg = <0xf9028000 0x1000>; 492 reg = <0xf9028000 0x1000>;
493 status = "disabled"; 493 status = "disabled";
494 }; 494 };
@@ -586,7 +586,7 @@
586 blsp1_uart1: serial@f991d000 { 586 blsp1_uart1: serial@f991d000 {
587 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 587 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
588 reg = <0xf991d000 0x1000>; 588 reg = <0xf991d000 0x1000>;
589 interrupts = <0 107 0x0>; 589 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
590 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 590 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
591 clock-names = "core", "iface"; 591 clock-names = "core", "iface";
592 status = "disabled"; 592 status = "disabled";
@@ -595,7 +595,7 @@
595 blsp1_uart2: serial@f991e000 { 595 blsp1_uart2: serial@f991e000 {
596 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 596 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
597 reg = <0xf991e000 0x1000>; 597 reg = <0xf991e000 0x1000>;
598 interrupts = <0 108 0x0>; 598 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
599 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 599 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
600 clock-names = "core", "iface"; 600 clock-names = "core", "iface";
601 status = "disabled"; 601 status = "disabled";
@@ -605,7 +605,8 @@
605 compatible = "qcom,sdhci-msm-v4"; 605 compatible = "qcom,sdhci-msm-v4";
606 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>; 606 reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
607 reg-names = "hc_mem", "core_mem"; 607 reg-names = "hc_mem", "core_mem";
608 interrupts = <0 123 0>, <0 138 0>; 608 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
609 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
609 interrupt-names = "hc_irq", "pwr_irq"; 610 interrupt-names = "hc_irq", "pwr_irq";
610 clocks = <&gcc GCC_SDCC1_APPS_CLK>, 611 clocks = <&gcc GCC_SDCC1_APPS_CLK>,
611 <&gcc GCC_SDCC1_AHB_CLK>, 612 <&gcc GCC_SDCC1_AHB_CLK>,
@@ -618,8 +619,8 @@
618 compatible = "qcom,sdhci-msm-v4"; 619 compatible = "qcom,sdhci-msm-v4";
619 reg = <0xf9864900 0x11c>, <0xf9864000 0x800>; 620 reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
620 reg-names = "hc_mem", "core_mem"; 621 reg-names = "hc_mem", "core_mem";
621 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>, 622 interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
622 <GIC_SPI 224 IRQ_TYPE_NONE>; 623 <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
623 interrupt-names = "hc_irq", "pwr_irq"; 624 interrupt-names = "hc_irq", "pwr_irq";
624 clocks = <&gcc GCC_SDCC3_APPS_CLK>, 625 clocks = <&gcc GCC_SDCC3_APPS_CLK>,
625 <&gcc GCC_SDCC3_AHB_CLK>, 626 <&gcc GCC_SDCC3_AHB_CLK>,
@@ -632,7 +633,8 @@
632 compatible = "qcom,sdhci-msm-v4"; 633 compatible = "qcom,sdhci-msm-v4";
633 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>; 634 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
634 reg-names = "hc_mem", "core_mem"; 635 reg-names = "hc_mem", "core_mem";
635 interrupts = <0 125 0>, <0 221 0>; 636 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
637 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
636 interrupt-names = "hc_irq", "pwr_irq"; 638 interrupt-names = "hc_irq", "pwr_irq";
637 clocks = <&gcc GCC_SDCC2_APPS_CLK>, 639 clocks = <&gcc GCC_SDCC2_APPS_CLK>,
638 <&gcc GCC_SDCC2_AHB_CLK>, 640 <&gcc GCC_SDCC2_AHB_CLK>,
@@ -699,25 +701,36 @@
699 #gpio-cells = <2>; 701 #gpio-cells = <2>;
700 interrupt-controller; 702 interrupt-controller;
701 #interrupt-cells = <2>; 703 #interrupt-cells = <2>;
702 interrupts = <0 208 0>; 704 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
703 }; 705 };
704 706
705 i2c@f9924000 { 707 i2c@f9924000 {
706 status = "disabled"; 708 status = "disabled";
707 compatible = "qcom,i2c-qup-v2.1.1"; 709 compatible = "qcom,i2c-qup-v2.1.1";
708 reg = <0xf9924000 0x1000>; 710 reg = <0xf9924000 0x1000>;
709 interrupts = <0 96 IRQ_TYPE_NONE>; 711 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
710 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; 712 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
711 clock-names = "core", "iface"; 713 clock-names = "core", "iface";
712 #address-cells = <1>; 714 #address-cells = <1>;
713 #size-cells = <0>; 715 #size-cells = <0>;
714 }; 716 };
715 717
718 blsp_i2c3: i2c@f9925000 {
719 status = "disabled";
720 compatible = "qcom,i2c-qup-v2.1.1";
721 reg = <0xf9925000 0x1000>;
722 interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
723 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
724 clock-names = "core", "iface";
725 #address-cells = <1>;
726 #size-cells = <0>;
727 };
728
716 blsp_i2c8: i2c@f9964000 { 729 blsp_i2c8: i2c@f9964000 {
717 status = "disabled"; 730 status = "disabled";
718 compatible = "qcom,i2c-qup-v2.1.1"; 731 compatible = "qcom,i2c-qup-v2.1.1";
719 reg = <0xf9964000 0x1000>; 732 reg = <0xf9964000 0x1000>;
720 interrupts = <0 102 IRQ_TYPE_NONE>; 733 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
721 clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>; 734 clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
722 clock-names = "core", "iface"; 735 clock-names = "core", "iface";
723 #address-cells = <1>; 736 #address-cells = <1>;
@@ -728,7 +741,7 @@
728 status = "disabled"; 741 status = "disabled";
729 compatible = "qcom,i2c-qup-v2.1.1"; 742 compatible = "qcom,i2c-qup-v2.1.1";
730 reg = <0xf9967000 0x1000>; 743 reg = <0xf9967000 0x1000>;
731 interrupts = <0 105 IRQ_TYPE_NONE>; 744 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
732 clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>; 745 clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
733 clock-names = "core", "iface"; 746 clock-names = "core", "iface";
734 #address-cells = <1>; 747 #address-cells = <1>;
@@ -737,6 +750,17 @@
737 dma-names = "tx", "rx"; 750 dma-names = "tx", "rx";
738 }; 751 };
739 752
753 blsp_i2c12: i2c@f9968000 {
754 status = "disabled";
755 compatible = "qcom,i2c-qup-v2.1.1";
756 reg = <0xf9968000 0x1000>;
757 interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
758 clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
759 clock-names = "core", "iface";
760 #address-cells = <1>;
761 #size-cells = <0>;
762 };
763
740 spmi_bus: spmi@fc4cf000 { 764 spmi_bus: spmi@fc4cf000 {
741 compatible = "qcom,spmi-pmic-arb"; 765 compatible = "qcom,spmi-pmic-arb";
742 reg-names = "core", "intr", "cnfg"; 766 reg-names = "core", "intr", "cnfg";
@@ -744,7 +768,7 @@
744 <0xfc4cb000 0x1000>, 768 <0xfc4cb000 0x1000>,
745 <0xfc4ca000 0x1000>; 769 <0xfc4ca000 0x1000>;
746 interrupt-names = "periph_irq"; 770 interrupt-names = "periph_irq";
747 interrupts = <0 190 0>; 771 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
748 qcom,ee = <0>; 772 qcom,ee = <0>;
749 qcom,channel = <0>; 773 qcom,channel = <0>;
750 #address-cells = <2>; 774 #address-cells = <2>;
@@ -770,10 +794,11 @@
770 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 794 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
771 clock-names = "apb_pclk", "atclk"; 795 clock-names = "apb_pclk", "atclk";
772 796
773 port { 797 in-ports {
774 etr_in: endpoint { 798 port {
775 slave-mode; 799 etr_in: endpoint {
776 remote-endpoint = <&replicator_out0>; 800 remote-endpoint = <&replicator_out0>;
801 };
777 }; 802 };
778 }; 803 };
779 }; 804 };
@@ -785,10 +810,11 @@
785 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 810 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
786 clock-names = "apb_pclk", "atclk"; 811 clock-names = "apb_pclk", "atclk";
787 812
788 port { 813 in-ports {
789 tpiu_in: endpoint { 814 port {
790 slave-mode; 815 tpiu_in: endpoint {
791 remote-endpoint = <&replicator_out1>; 816 remote-endpoint = <&replicator_out1>;
817 };
792 }; 818 };
793 }; 819 };
794 }; 820 };
@@ -800,7 +826,7 @@
800 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 826 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
801 clock-names = "apb_pclk", "atclk"; 827 clock-names = "apb_pclk", "atclk";
802 828
803 ports { 829 out-ports {
804 #address-cells = <1>; 830 #address-cells = <1>;
805 #size-cells = <0>; 831 #size-cells = <0>;
806 832
@@ -816,10 +842,11 @@
816 remote-endpoint = <&tpiu_in>; 842 remote-endpoint = <&tpiu_in>;
817 }; 843 };
818 }; 844 };
819 port@2 { 845 };
820 reg = <0>; 846
847 in-ports {
848 port {
821 replicator_in: endpoint { 849 replicator_in: endpoint {
822 slave-mode;
823 remote-endpoint = <&etf_out>; 850 remote-endpoint = <&etf_out>;
824 }; 851 };
825 }; 852 };
@@ -833,20 +860,17 @@
833 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 860 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
834 clock-names = "apb_pclk", "atclk"; 861 clock-names = "apb_pclk", "atclk";
835 862
836 ports { 863 out-ports {
837 #address-cells = <1>; 864 port {
838 #size-cells = <0>;
839
840 port@0 {
841 reg = <0>;
842 etf_out: endpoint { 865 etf_out: endpoint {
843 remote-endpoint = <&replicator_in>; 866 remote-endpoint = <&replicator_in>;
844 }; 867 };
845 }; 868 };
846 port@1 { 869 };
847 reg = <0>; 870
871 in-ports {
872 port {
848 etf_in: endpoint { 873 etf_in: endpoint {
849 slave-mode;
850 remote-endpoint = <&merger_out>; 874 remote-endpoint = <&merger_out>;
851 }; 875 };
852 }; 876 };
@@ -860,7 +884,7 @@
860 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 884 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
861 clock-names = "apb_pclk", "atclk"; 885 clock-names = "apb_pclk", "atclk";
862 886
863 ports { 887 in-ports {
864 #address-cells = <1>; 888 #address-cells = <1>;
865 #size-cells = <0>; 889 #size-cells = <0>;
866 890
@@ -873,12 +897,13 @@
873 port@1 { 897 port@1 {
874 reg = <1>; 898 reg = <1>;
875 merger_in1: endpoint { 899 merger_in1: endpoint {
876 slave-mode;
877 remote-endpoint = <&funnel1_out>; 900 remote-endpoint = <&funnel1_out>;
878 }; 901 };
879 }; 902 };
880 port@8 { 903 };
881 reg = <0>; 904
905 out-ports {
906 port {
882 merger_out: endpoint { 907 merger_out: endpoint {
883 remote-endpoint = <&etf_in>; 908 remote-endpoint = <&etf_in>;
884 }; 909 };
@@ -893,7 +918,7 @@
893 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 918 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
894 clock-names = "apb_pclk", "atclk"; 919 clock-names = "apb_pclk", "atclk";
895 920
896 ports { 921 in-ports {
897 #address-cells = <1>; 922 #address-cells = <1>;
898 #size-cells = <0>; 923 #size-cells = <0>;
899 924
@@ -910,12 +935,13 @@
910 port@5 { 935 port@5 {
911 reg = <5>; 936 reg = <5>;
912 funnel1_in5: endpoint { 937 funnel1_in5: endpoint {
913 slave-mode;
914 remote-endpoint = <&kpss_out>; 938 remote-endpoint = <&kpss_out>;
915 }; 939 };
916 }; 940 };
917 port@8 { 941 };
918 reg = <0>; 942
943 out-ports {
944 port {
919 funnel1_out: endpoint { 945 funnel1_out: endpoint {
920 remote-endpoint = <&merger_in1>; 946 remote-endpoint = <&merger_in1>;
921 }; 947 };
@@ -930,40 +956,38 @@
930 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>; 956 clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
931 clock-names = "apb_pclk", "atclk"; 957 clock-names = "apb_pclk", "atclk";
932 958
933 ports { 959 in-ports {
934 #address-cells = <1>; 960 #address-cells = <1>;
935 #size-cells = <0>; 961 #size-cells = <0>;
936 962
937 port@0 { 963 port@0 {
938 reg = <0>; 964 reg = <0>;
939 kpss_in0: endpoint { 965 kpss_in0: endpoint {
940 slave-mode;
941 remote-endpoint = <&etm0_out>; 966 remote-endpoint = <&etm0_out>;
942 }; 967 };
943 }; 968 };
944 port@1 { 969 port@1 {
945 reg = <1>; 970 reg = <1>;
946 kpss_in1: endpoint { 971 kpss_in1: endpoint {
947 slave-mode;
948 remote-endpoint = <&etm1_out>; 972 remote-endpoint = <&etm1_out>;
949 }; 973 };
950 }; 974 };
951 port@2 { 975 port@2 {
952 reg = <2>; 976 reg = <2>;
953 kpss_in2: endpoint { 977 kpss_in2: endpoint {
954 slave-mode;
955 remote-endpoint = <&etm2_out>; 978 remote-endpoint = <&etm2_out>;
956 }; 979 };
957 }; 980 };
958 port@3 { 981 port@3 {
959 reg = <3>; 982 reg = <3>;
960 kpss_in3: endpoint { 983 kpss_in3: endpoint {
961 slave-mode;
962 remote-endpoint = <&etm3_out>; 984 remote-endpoint = <&etm3_out>;
963 }; 985 };
964 }; 986 };
965 port@8 { 987 };
966 reg = <0>; 988
989 out-ports {
990 port {
967 kpss_out: endpoint { 991 kpss_out: endpoint {
968 remote-endpoint = <&funnel1_in5>; 992 remote-endpoint = <&funnel1_in5>;
969 }; 993 };
@@ -980,9 +1004,11 @@
980 1004
981 cpu = <&CPU0>; 1005 cpu = <&CPU0>;
982 1006
983 port { 1007 out-ports {
984 etm0_out: endpoint { 1008 port {
985 remote-endpoint = <&kpss_in0>; 1009 etm0_out: endpoint {
1010 remote-endpoint = <&kpss_in0>;
1011 };
986 }; 1012 };
987 }; 1013 };
988 }; 1014 };
@@ -996,9 +1022,11 @@
996 1022
997 cpu = <&CPU1>; 1023 cpu = <&CPU1>;
998 1024
999 port { 1025 out-ports {
1000 etm1_out: endpoint { 1026 port {
1001 remote-endpoint = <&kpss_in1>; 1027 etm1_out: endpoint {
1028 remote-endpoint = <&kpss_in1>;
1029 };
1002 }; 1030 };
1003 }; 1031 };
1004 }; 1032 };
@@ -1012,9 +1040,11 @@
1012 1040
1013 cpu = <&CPU2>; 1041 cpu = <&CPU2>;
1014 1042
1015 port { 1043 out-ports {
1016 etm2_out: endpoint { 1044 port {
1017 remote-endpoint = <&kpss_in2>; 1045 etm2_out: endpoint {
1046 remote-endpoint = <&kpss_in2>;
1047 };
1018 }; 1048 };
1019 }; 1049 };
1020 }; 1050 };
@@ -1028,9 +1058,11 @@
1028 1058
1029 cpu = <&CPU3>; 1059 cpu = <&CPU3>;
1030 1060
1031 port { 1061 out-ports {
1032 etm3_out: endpoint { 1062 port {
1033 remote-endpoint = <&kpss_in3>; 1063 etm3_out: endpoint {
1064 remote-endpoint = <&kpss_in3>;
1065 };
1034 }; 1066 };
1035 }; 1067 };
1036 }; 1068 };
@@ -1040,21 +1072,21 @@
1040 compatible = "qcom,smd"; 1072 compatible = "qcom,smd";
1041 1073
1042 adsp { 1074 adsp {
1043 interrupts = <0 156 IRQ_TYPE_EDGE_RISING>; 1075 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
1044 1076
1045 qcom,ipc = <&apcs 8 8>; 1077 qcom,ipc = <&apcs 8 8>;
1046 qcom,smd-edge = <1>; 1078 qcom,smd-edge = <1>;
1047 }; 1079 };
1048 1080
1049 modem { 1081 modem {
1050 interrupts = <0 25 IRQ_TYPE_EDGE_RISING>; 1082 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1051 1083
1052 qcom,ipc = <&apcs 8 12>; 1084 qcom,ipc = <&apcs 8 12>;
1053 qcom,smd-edge = <0>; 1085 qcom,smd-edge = <0>;
1054 }; 1086 };
1055 1087
1056 rpm { 1088 rpm {
1057 interrupts = <0 168 1>; 1089 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
1058 qcom,ipc = <&apcs 8 0>; 1090 qcom,ipc = <&apcs 8 0>;
1059 qcom,smd-edge = <15>; 1091 qcom,smd-edge = <15>;
1060 1092
diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts
index 327545119ee3..0d006aea99da 100644
--- a/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts
+++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7-dbcm-ca.dts
@@ -14,3 +14,7 @@
14 model = "iW-RainboW-G20D-Q7 RZ/G1M based plus camera daughter board"; 14 model = "iW-RainboW-G20D-Q7 RZ/G1M based plus camera daughter board";
15 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; 15 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743";
16}; 16};
17
18&pciec {
19 status = "okay";
20};
diff --git a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
index b683db4da8b1..498e223a5f93 100644
--- a/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
+++ b/arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
@@ -13,3 +13,7 @@
13 model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M"; 13 model = "iWave Systems RainboW-G20D-Qseven board based on RZ/G1M";
14 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"; 14 compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743";
15}; 15};
16
17&pciec {
18 status = "okay";
19};
diff --git a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts
index e3585daafdd6..22da819f186b 100644
--- a/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts
+++ b/arch/arm/boot/dts/r8a77470-iwg23s-sbc.dts
@@ -35,6 +35,8 @@
35 35
36 phy3: ethernet-phy@3 { 36 phy3: ethernet-phy@3 {
37 reg = <3>; 37 reg = <3>;
38 interrupt-parent = <&gpio5>;
39 interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
38 micrel,led-mode = <1>; 40 micrel,led-mode = <1>;
39 }; 41 };
40}; 42};
@@ -43,6 +45,16 @@
43 clock-frequency = <20000000>; 45 clock-frequency = <20000000>;
44}; 46};
45 47
48&pfc {
49 scif1_pins: scif1 {
50 groups = "scif1_data_b";
51 function = "scif1";
52 };
53};
54
46&scif1 { 55&scif1 {
56 pinctrl-0 = <&scif1_pins>;
57 pinctrl-names = "default";
58
47 status = "okay"; 59 status = "okay";
48}; 60};
diff --git a/arch/arm/boot/dts/r8a77470.dtsi b/arch/arm/boot/dts/r8a77470.dtsi
index 87d32d3e23de..9ec78d3d0ca8 100644
--- a/arch/arm/boot/dts/r8a77470.dtsi
+++ b/arch/arm/boot/dts/r8a77470.dtsi
@@ -8,6 +8,7 @@
8#include <dt-bindings/interrupt-controller/irq.h> 8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/clock/r8a77470-cpg-mssr.h> 10#include <dt-bindings/clock/r8a77470-cpg-mssr.h>
11#include <dt-bindings/power/r8a77470-sysc.h>
11/ { 12/ {
12 compatible = "renesas,r8a77470"; 13 compatible = "renesas,r8a77470";
13 #address-cells = <2>; 14 #address-cells = <2>;
@@ -16,6 +17,7 @@
16 cpus { 17 cpus {
17 #address-cells = <1>; 18 #address-cells = <1>;
18 #size-cells = <0>; 19 #size-cells = <0>;
20 enable-method = "renesas,apmu";
19 21
20 cpu0: cpu@0 { 22 cpu0: cpu@0 {
21 device_type = "cpu"; 23 device_type = "cpu";
@@ -23,16 +25,25 @@
23 reg = <0>; 25 reg = <0>;
24 clock-frequency = <1000000000>; 26 clock-frequency = <1000000000>;
25 clocks = <&cpg CPG_CORE R8A77470_CLK_Z2>; 27 clocks = <&cpg CPG_CORE R8A77470_CLK_Z2>;
26 power-domains = <&sysc 5>; 28 power-domains = <&sysc R8A77470_PD_CA7_CPU0>;
27 next-level-cache = <&L2_CA7>; 29 next-level-cache = <&L2_CA7>;
28 }; 30 };
29 31
32 cpu1: cpu@1 {
33 device_type = "cpu";
34 compatible = "arm,cortex-a7";
35 reg = <1>;
36 clock-frequency = <1000000000>;
37 clocks = <&cpg CPG_CORE R8A77470_CLK_Z2>;
38 power-domains = <&sysc R8A77470_PD_CA7_CPU1>;
39 next-level-cache = <&L2_CA7>;
40 };
30 41
31 L2_CA7: cache-controller-0 { 42 L2_CA7: cache-controller-0 {
32 compatible = "cache"; 43 compatible = "cache";
33 cache-unified; 44 cache-unified;
34 cache-level = <2>; 45 cache-level = <2>;
35 power-domains = <&sysc 21>; 46 power-domains = <&sysc R8A77470_PD_CA7_SCU>;
36 }; 47 };
37 }; 48 };
38 49
@@ -60,6 +71,102 @@
60 #size-cells = <2>; 71 #size-cells = <2>;
61 ranges; 72 ranges;
62 73
74 gpio0: gpio@e6050000 {
75 compatible = "renesas,gpio-r8a77470",
76 "renesas,rcar-gen2-gpio";
77 reg = <0 0xe6050000 0 0x50>;
78 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
79 #gpio-cells = <2>;
80 gpio-controller;
81 gpio-ranges = <&pfc 0 0 23>;
82 #interrupt-cells = <2>;
83 interrupt-controller;
84 clocks = <&cpg CPG_MOD 912>;
85 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
86 resets = <&cpg 912>;
87 };
88
89 gpio1: gpio@e6051000 {
90 compatible = "renesas,gpio-r8a77470",
91 "renesas,rcar-gen2-gpio";
92 reg = <0 0xe6051000 0 0x50>;
93 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
94 #gpio-cells = <2>;
95 gpio-controller;
96 gpio-ranges = <&pfc 0 32 23>;
97 #interrupt-cells = <2>;
98 interrupt-controller;
99 clocks = <&cpg CPG_MOD 911>;
100 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
101 resets = <&cpg 911>;
102 };
103
104 gpio2: gpio@e6052000 {
105 compatible = "renesas,gpio-r8a77470",
106 "renesas,rcar-gen2-gpio";
107 reg = <0 0xe6052000 0 0x50>;
108 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
109 #gpio-cells = <2>;
110 gpio-controller;
111 gpio-ranges = <&pfc 0 64 32>;
112 #interrupt-cells = <2>;
113 interrupt-controller;
114 clocks = <&cpg CPG_MOD 910>;
115 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
116 resets = <&cpg 910>;
117 };
118
119 gpio3: gpio@e6053000 {
120 compatible = "renesas,gpio-r8a77470",
121 "renesas,rcar-gen2-gpio";
122 reg = <0 0xe6053000 0 0x50>;
123 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
124 #gpio-cells = <2>;
125 gpio-controller;
126 gpio-ranges = <&pfc 0 96 30>;
127 gpio-reserved-ranges = <17 10>;
128 #interrupt-cells = <2>;
129 interrupt-controller;
130 clocks = <&cpg CPG_MOD 909>;
131 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
132 resets = <&cpg 909>;
133 };
134
135 gpio4: gpio@e6054000 {
136 compatible = "renesas,gpio-r8a77470",
137 "renesas,rcar-gen2-gpio";
138 reg = <0 0xe6054000 0 0x50>;
139 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
140 #gpio-cells = <2>;
141 gpio-controller;
142 gpio-ranges = <&pfc 0 128 26>;
143 #interrupt-cells = <2>;
144 interrupt-controller;
145 clocks = <&cpg CPG_MOD 908>;
146 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
147 resets = <&cpg 908>;
148 };
149
150 gpio5: gpio@e6055000 {
151 compatible = "renesas,gpio-r8a77470",
152 "renesas,rcar-gen2-gpio";
153 reg = <0 0xe6055000 0 0x50>;
154 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
155 #gpio-cells = <2>;
156 gpio-controller;
157 gpio-ranges = <&pfc 0 160 32>;
158 #interrupt-cells = <2>;
159 interrupt-controller;
160 clocks = <&cpg CPG_MOD 907>;
161 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
162 resets = <&cpg 907>;
163 };
164
165 pfc: pin-controller@e6060000 {
166 compatible = "renesas,pfc-r8a77470";
167 reg = <0 0xe6060000 0 0x118>;
168 };
169
63 cpg: clock-controller@e6150000 { 170 cpg: clock-controller@e6150000 {
64 compatible = "renesas,r8a77470-cpg-mssr"; 171 compatible = "renesas,r8a77470-cpg-mssr";
65 reg = <0 0xe6150000 0 0x1000>; 172 reg = <0 0xe6150000 0 0x1000>;
@@ -70,6 +177,12 @@
70 #reset-cells = <1>; 177 #reset-cells = <1>;
71 }; 178 };
72 179
180 apmu@e6151000 {
181 compatible = "renesas,r8a77470-apmu", "renesas,apmu";
182 reg = <0 0xe6151000 0 0x188>;
183 cpus = <&cpu0 &cpu1>;
184 };
185
73 rst: reset-controller@e6160000 { 186 rst: reset-controller@e6160000 {
74 compatible = "renesas,r8a77470-rst"; 187 compatible = "renesas,r8a77470-rst";
75 reg = <0 0xe6160000 0 0x100>; 188 reg = <0 0xe6160000 0 0x100>;
@@ -97,7 +210,7 @@
97 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>, 210 <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
98 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; 211 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
99 clocks = <&cpg CPG_MOD 407>; 212 clocks = <&cpg CPG_MOD 407>;
100 power-domains = <&sysc 32>; 213 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
101 resets = <&cpg 407>; 214 resets = <&cpg 407>;
102 }; 215 };
103 216
@@ -124,6 +237,20 @@
124 reg = <0 0xe6300000 0 0x20000>; 237 reg = <0 0xe6300000 0 0x20000>;
125 }; 238 };
126 239
240 i2c4: i2c@e6520000 {
241 #address-cells = <1>;
242 #size-cells = <0>;
243 compatible = "renesas,i2c-r8a77470",
244 "renesas,rcar-gen2-i2c";
245 reg = <0 0xe6520000 0 0x40>;
246 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
247 clocks = <&cpg CPG_MOD 927>;
248 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
249 resets = <&cpg 927>;
250 i2c-scl-internal-delay-ns = <6>;
251 status = "disabled";
252 };
253
127 dmac0: dma-controller@e6700000 { 254 dmac0: dma-controller@e6700000 {
128 compatible = "renesas,dmac-r8a77470", 255 compatible = "renesas,dmac-r8a77470",
129 "renesas,rcar-dmac"; 256 "renesas,rcar-dmac";
@@ -151,7 +278,7 @@
151 "ch12", "ch13", "ch14"; 278 "ch12", "ch13", "ch14";
152 clocks = <&cpg CPG_MOD 219>; 279 clocks = <&cpg CPG_MOD 219>;
153 clock-names = "fck"; 280 clock-names = "fck";
154 power-domains = <&sysc 32>; 281 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
155 resets = <&cpg 219>; 282 resets = <&cpg 219>;
156 #dma-cells = <1>; 283 #dma-cells = <1>;
157 dma-channels = <15>; 284 dma-channels = <15>;
@@ -184,7 +311,7 @@
184 "ch12", "ch13", "ch14"; 311 "ch12", "ch13", "ch14";
185 clocks = <&cpg CPG_MOD 218>; 312 clocks = <&cpg CPG_MOD 218>;
186 clock-names = "fck"; 313 clock-names = "fck";
187 power-domains = <&sysc 32>; 314 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
188 resets = <&cpg 218>; 315 resets = <&cpg 218>;
189 #dma-cells = <1>; 316 #dma-cells = <1>;
190 dma-channels = <15>; 317 dma-channels = <15>;
@@ -196,7 +323,7 @@
196 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>; 323 reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
197 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>; 324 interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
198 clocks = <&cpg CPG_MOD 812>; 325 clocks = <&cpg CPG_MOD 812>;
199 power-domains = <&sysc 32>; 326 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
200 resets = <&cpg 812>; 327 resets = <&cpg 812>;
201 #address-cells = <1>; 328 #address-cells = <1>;
202 #size-cells = <0>; 329 #size-cells = <0>;
@@ -214,7 +341,7 @@
214 dmas = <&dmac0 0x29>, <&dmac0 0x2a>, 341 dmas = <&dmac0 0x29>, <&dmac0 0x2a>,
215 <&dmac1 0x29>, <&dmac1 0x2a>; 342 <&dmac1 0x29>, <&dmac1 0x2a>;
216 dma-names = "tx", "rx", "tx", "rx"; 343 dma-names = "tx", "rx", "tx", "rx";
217 power-domains = <&sysc 32>; 344 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
218 resets = <&cpg 721>; 345 resets = <&cpg 721>;
219 status = "disabled"; 346 status = "disabled";
220 }; 347 };
@@ -230,7 +357,7 @@
230 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>, 357 dmas = <&dmac0 0x2d>, <&dmac0 0x2e>,
231 <&dmac1 0x2d>, <&dmac1 0x2e>; 358 <&dmac1 0x2d>, <&dmac1 0x2e>;
232 dma-names = "tx", "rx", "tx", "rx"; 359 dma-names = "tx", "rx", "tx", "rx";
233 power-domains = <&sysc 32>; 360 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
234 resets = <&cpg 720>; 361 resets = <&cpg 720>;
235 status = "disabled"; 362 status = "disabled";
236 }; 363 };
@@ -246,7 +373,7 @@
246 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>, 373 dmas = <&dmac0 0x2b>, <&dmac0 0x2c>,
247 <&dmac1 0x2b>, <&dmac1 0x2c>; 374 <&dmac1 0x2b>, <&dmac1 0x2c>;
248 dma-names = "tx", "rx", "tx", "rx"; 375 dma-names = "tx", "rx", "tx", "rx";
249 power-domains = <&sysc 32>; 376 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
250 resets = <&cpg 719>; 377 resets = <&cpg 719>;
251 status = "disabled"; 378 status = "disabled";
252 }; 379 };
@@ -262,7 +389,7 @@
262 dmas = <&dmac0 0x2f>, <&dmac0 0x30>, 389 dmas = <&dmac0 0x2f>, <&dmac0 0x30>,
263 <&dmac1 0x2f>, <&dmac1 0x30>; 390 <&dmac1 0x2f>, <&dmac1 0x30>;
264 dma-names = "tx", "rx", "tx", "rx"; 391 dma-names = "tx", "rx", "tx", "rx";
265 power-domains = <&sysc 32>; 392 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
266 resets = <&cpg 718>; 393 resets = <&cpg 718>;
267 status = "disabled"; 394 status = "disabled";
268 }; 395 };
@@ -278,7 +405,7 @@
278 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>, 405 dmas = <&dmac0 0xfb>, <&dmac0 0xfc>,
279 <&dmac1 0xfb>, <&dmac1 0xfc>; 406 <&dmac1 0xfb>, <&dmac1 0xfc>;
280 dma-names = "tx", "rx", "tx", "rx"; 407 dma-names = "tx", "rx", "tx", "rx";
281 power-domains = <&sysc 32>; 408 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
282 resets = <&cpg 715>; 409 resets = <&cpg 715>;
283 status = "disabled"; 410 status = "disabled";
284 }; 411 };
@@ -294,11 +421,26 @@
294 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>, 421 dmas = <&dmac0 0xfd>, <&dmac0 0xfe>,
295 <&dmac1 0xfd>, <&dmac1 0xfe>; 422 <&dmac1 0xfd>, <&dmac1 0xfe>;
296 dma-names = "tx", "rx", "tx", "rx"; 423 dma-names = "tx", "rx", "tx", "rx";
297 power-domains = <&sysc 32>; 424 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
298 resets = <&cpg 714>; 425 resets = <&cpg 714>;
299 status = "disabled"; 426 status = "disabled";
300 }; 427 };
301 428
429 sdhi2: sd@ee160000 {
430 compatible = "renesas,sdhi-r8a77470",
431 "renesas,rcar-gen2-sdhi";
432 reg = <0 0xee160000 0 0x328>;
433 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
434 clocks = <&cpg CPG_MOD 312>;
435 dmas = <&dmac0 0xd3>, <&dmac0 0xd4>,
436 <&dmac1 0xd3>, <&dmac1 0xd4>;
437 dma-names = "tx", "rx", "tx", "rx";
438 max-frequency = <97500000>;
439 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
440 resets = <&cpg 312>;
441 status = "disabled";
442 };
443
302 gic: interrupt-controller@f1001000 { 444 gic: interrupt-controller@f1001000 {
303 compatible = "arm,gic-400"; 445 compatible = "arm,gic-400";
304 #interrupt-cells = <3>; 446 #interrupt-cells = <3>;
@@ -309,7 +451,7 @@
309 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 451 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
310 clocks = <&cpg CPG_MOD 408>; 452 clocks = <&cpg CPG_MOD 408>;
311 clock-names = "clk"; 453 clock-names = "clk";
312 power-domains = <&sysc 32>; 454 power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
313 resets = <&cpg 408>; 455 resets = <&cpg 408>;
314 }; 456 };
315 457
diff --git a/arch/arm/boot/dts/r8a7778-bockw.dts b/arch/arm/boot/dts/r8a7778-bockw.dts
index de808d2ea856..cecb22924ec4 100644
--- a/arch/arm/boot/dts/r8a7778-bockw.dts
+++ b/arch/arm/boot/dts/r8a7778-bockw.dts
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Reference Device Tree Source for the Bock-W board 3 * Reference Device Tree Source for the R-Car M1A (R8A77781) Bock-W board
4 * 4 *
5 * Copyright (C) 2013 Renesas Solutions Corp. 5 * Copyright (C) 2013 Renesas Solutions Corp.
6 * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 6 * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index 1bce16cc6b20..05db0ccad7a6 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for Renesas r8a7778 3 * Device Tree Source for the R-Car M1A (R8A77781) SoC
4 * 4 *
5 * Copyright (C) 2013 Renesas Solutions Corp. 5 * Copyright (C) 2013 Renesas Solutions Corp.
6 * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> 6 * Copyright (C) 2013 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
diff --git a/arch/arm/boot/dts/r8a7779-marzen.dts b/arch/arm/boot/dts/r8a7779-marzen.dts
index a4d0038363f0..abc14e7a4c93 100644
--- a/arch/arm/boot/dts/r8a7779-marzen.dts
+++ b/arch/arm/boot/dts/r8a7779-marzen.dts
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the Marzen board 3 * Device Tree Source for the R-Car H1 (R8A77790) Marzen board
4 * 4 *
5 * Copyright (C) 2013 Renesas Solutions Corp. 5 * Copyright (C) 2013 Renesas Solutions Corp.
6 * Copyright (C) 2013 Simon Horman 6 * Copyright (C) 2013 Simon Horman
diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 6b997bc016ee..3bc133d9489c 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for Renesas r8a7779 3 * Device Tree Source for the R-Car H1 (R8A77790) SoC
4 * 4 *
5 * Copyright (C) 2013 Renesas Solutions Corp. 5 * Copyright (C) 2013 Renesas Solutions Corp.
6 * Copyright (C) 2013 Simon Horman 6 * Copyright (C) 2013 Simon Horman
@@ -344,7 +344,7 @@
344 344
345 sata: sata@fc600000 { 345 sata: sata@fc600000 {
346 compatible = "renesas,sata-r8a7779", "renesas,rcar-sata"; 346 compatible = "renesas,sata-r8a7779", "renesas,rcar-sata";
347 reg = <0xfc600000 0x2000>; 347 reg = <0xfc600000 0x200000>;
348 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 348 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
349 clocks = <&mstp1_clks R8A7779_CLK_SATA>; 349 clocks = <&mstp1_clks R8A7779_CLK_SATA>;
350 power-domains = <&sysc R8A7779_PD_ALWAYS_ON>; 350 power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;
diff --git a/arch/arm/boot/dts/r8a7790-stout.dts b/arch/arm/boot/dts/r8a7790-stout.dts
index a13a92c26645..629da4cee1b9 100644
--- a/arch/arm/boot/dts/r8a7790-stout.dts
+++ b/arch/arm/boot/dts/r8a7790-stout.dts
@@ -318,6 +318,10 @@
318 interrupts = <2 IRQ_TYPE_LEVEL_LOW>; 318 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
319 interrupt-controller; 319 interrupt-controller;
320 320
321 onkey {
322 compatible = "dlg,da9063-onkey";
323 };
324
321 rtc { 325 rtc {
322 compatible = "dlg,da9063-rtc"; 326 compatible = "dlg,da9063-rtc";
323 }; 327 };
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 0925bdca438f..5a2747758f67 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7790 SoC 3 * Device Tree Source for the R-Car H2 (R8A77900) SoC
4 * 4 *
5 * Copyright (C) 2015 Renesas Electronics Corporation 5 * Copyright (C) 2015 Renesas Electronics Corporation
6 * Copyright (C) 2013-2014 Renesas Solutions Corp. 6 * Copyright (C) 2013-2014 Renesas Solutions Corp.
@@ -1559,7 +1559,7 @@
1559 sata0: sata@ee300000 { 1559 sata0: sata@ee300000 {
1560 compatible = "renesas,sata-r8a7790", 1560 compatible = "renesas,sata-r8a7790",
1561 "renesas,rcar-gen2-sata"; 1561 "renesas,rcar-gen2-sata";
1562 reg = <0 0xee300000 0 0x2000>; 1562 reg = <0 0xee300000 0 0x200000>;
1563 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1563 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
1564 clocks = <&cpg CPG_MOD 815>; 1564 clocks = <&cpg CPG_MOD 815>;
1565 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1565 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
@@ -1570,7 +1570,7 @@
1570 sata1: sata@ee500000 { 1570 sata1: sata@ee500000 {
1571 compatible = "renesas,sata-r8a7790", 1571 compatible = "renesas,sata-r8a7790",
1572 "renesas,rcar-gen2-sata"; 1572 "renesas,rcar-gen2-sata";
1573 reg = <0 0xee500000 0 0x2000>; 1573 reg = <0 0xee500000 0 0x200000>;
1574 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 1574 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1575 clocks = <&cpg CPG_MOD 814>; 1575 clocks = <&cpg CPG_MOD 814>;
1576 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; 1576 power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 991ac6feedd5..6f875502453c 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7791 SoC 3 * Device Tree Source for the R-Car M2-W (R8A77910) SoC
4 * 4 *
5 * Copyright (C) 2013-2015 Renesas Electronics Corporation 5 * Copyright (C) 2013-2015 Renesas Electronics Corporation
6 * Copyright (C) 2013-2014 Renesas Solutions Corp. 6 * Copyright (C) 2013-2014 Renesas Solutions Corp.
@@ -1543,7 +1543,7 @@
1543 sata0: sata@ee300000 { 1543 sata0: sata@ee300000 {
1544 compatible = "renesas,sata-r8a7791", 1544 compatible = "renesas,sata-r8a7791",
1545 "renesas,rcar-gen2-sata"; 1545 "renesas,rcar-gen2-sata";
1546 reg = <0 0xee300000 0 0x2000>; 1546 reg = <0 0xee300000 0 0x200000>;
1547 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 1547 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
1548 clocks = <&cpg CPG_MOD 815>; 1548 clocks = <&cpg CPG_MOD 815>;
1549 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1549 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
@@ -1554,7 +1554,7 @@
1554 sata1: sata@ee500000 { 1554 sata1: sata@ee500000 {
1555 compatible = "renesas,sata-r8a7791", 1555 compatible = "renesas,sata-r8a7791",
1556 "renesas,rcar-gen2-sata"; 1556 "renesas,rcar-gen2-sata";
1557 reg = <0 0xee500000 0 0x2000>; 1557 reg = <0 0xee500000 0 0x200000>;
1558 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>; 1558 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
1559 clocks = <&cpg CPG_MOD 814>; 1559 clocks = <&cpg CPG_MOD 814>;
1560 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>; 1560 power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index 63a978ec81cc..8e9eb4b704d3 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7792 SoC 3 * Device Tree Source for the R-Car V2H (R8A77920) SoC
4 * 4 *
5 * Copyright (C) 2016 Cogent Embedded Inc. 5 * Copyright (C) 2016 Cogent Embedded Inc.
6 */ 6 */
@@ -829,7 +829,6 @@
829 du: display@feb00000 { 829 du: display@feb00000 {
830 compatible = "renesas,du-r8a7792"; 830 compatible = "renesas,du-r8a7792";
831 reg = <0 0xfeb00000 0 0x40000>; 831 reg = <0 0xfeb00000 0 0x40000>;
832 reg-names = "du";
833 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 832 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
834 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 833 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
835 clocks = <&cpg CPG_MOD 724>, 834 clocks = <&cpg CPG_MOD 724>,
diff --git a/arch/arm/boot/dts/r8a7793-gose.dts b/arch/arm/boot/dts/r8a7793-gose.dts
index 6b2f3a4fd13d..f51601af89a2 100644
--- a/arch/arm/boot/dts/r8a7793-gose.dts
+++ b/arch/arm/boot/dts/r8a7793-gose.dts
@@ -596,6 +596,10 @@
596 status = "okay"; 596 status = "okay";
597}; 597};
598 598
599&cpu0 {
600 cpu0-supply = <&vdd_dvfs>;
601};
602
599&rwdt { 603&rwdt {
600 timeout-sec = <60>; 604 timeout-sec = <60>;
601 status = "okay"; 605 status = "okay";
@@ -725,6 +729,18 @@
725 compatible = "dlg,da9063-watchdog"; 729 compatible = "dlg,da9063-watchdog";
726 }; 730 };
727 }; 731 };
732
733 vdd_dvfs: regulator@68 {
734 compatible = "dlg,da9210";
735 reg = <0x68>;
736 interrupt-parent = <&irqc0>;
737 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
738
739 regulator-min-microvolt = <1000000>;
740 regulator-max-microvolt = <1000000>;
741 regulator-boot-on;
742 regulator-always-on;
743 };
728}; 744};
729 745
730&i2c4 { 746&i2c4 {
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 620a570307ff..bf05110fac4e 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7793 SoC 3 * Device Tree Source for the R-Car M2-N (R8A77930) SoC
4 * 4 *
5 * Copyright (C) 2014-2015 Renesas Electronics Corporation 5 * Copyright (C) 2014-2015 Renesas Electronics Corporation
6 */ 6 */
diff --git a/arch/arm/boot/dts/r8a7794-silk.dts b/arch/arm/boot/dts/r8a7794-silk.dts
index daec965889d3..60e91ebfa65d 100644
--- a/arch/arm/boot/dts/r8a7794-silk.dts
+++ b/arch/arm/boot/dts/r8a7794-silk.dts
@@ -405,6 +405,31 @@
405 clock-frequency = <400000>; 405 clock-frequency = <400000>;
406}; 406};
407 407
408&i2c7 {
409 status = "okay";
410 clock-frequency = <100000>;
411
412 pmic@58 {
413 compatible = "dlg,da9063";
414 reg = <0x58>;
415 interrupt-parent = <&gpio3>;
416 interrupts = <31 IRQ_TYPE_LEVEL_LOW>;
417 interrupt-controller;
418
419 onkey {
420 compatible = "dlg,da9063-onkey";
421 };
422
423 rtc {
424 compatible = "dlg,da9063-rtc";
425 };
426
427 wdt {
428 compatible = "dlg,da9063-watchdog";
429 };
430 };
431};
432
408&mmcif0 { 433&mmcif0 {
409 pinctrl-0 = <&mmcif0_pins>; 434 pinctrl-0 = <&mmcif0_pins>;
410 pinctrl-names = "default"; 435 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index ea2ca4bdaf1c..8d797d34816e 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7794 SoC 3 * Device Tree Source for the R-Car E2 (R8A77940) SoC
4 * 4 *
5 * Copyright (C) 2014 Renesas Electronics Corporation 5 * Copyright (C) 2014 Renesas Electronics Corporation
6 * Copyright (C) 2014 Ulrich Hecht 6 * Copyright (C) 2014 Ulrich Hecht
@@ -1349,7 +1349,6 @@
1349 du: display@feb00000 { 1349 du: display@feb00000 {
1350 compatible = "renesas,du-r8a7794"; 1350 compatible = "renesas,du-r8a7794";
1351 reg = <0 0xfeb00000 0 0x40000>; 1351 reg = <0 0xfeb00000 0 0x40000>;
1352 reg-names = "du";
1353 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 1352 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
1354 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; 1353 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
1355 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>; 1354 clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>;
diff --git a/arch/arm/boot/dts/r9a06g032.dtsi b/arch/arm/boot/dts/r9a06g032.dtsi
index afe29c95a006..eaf94976ed6d 100644
--- a/arch/arm/boot/dts/r9a06g032.dtsi
+++ b/arch/arm/boot/dts/r9a06g032.dtsi
@@ -7,6 +7,7 @@
7 */ 7 */
8 8
9#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/clock/r9a06g032-sysctrl.h>
10 11
11/ { 12/ {
12 compatible = "renesas,r9a06g032"; 13 compatible = "renesas,r9a06g032";
@@ -21,14 +22,14 @@
21 device_type = "cpu"; 22 device_type = "cpu";
22 compatible = "arm,cortex-a7"; 23 compatible = "arm,cortex-a7";
23 reg = <0>; 24 reg = <0>;
24 clocks = <&sysctrl 84>; 25 clocks = <&sysctrl R9A06G032_CLK_A7MP>;
25 }; 26 };
26 27
27 cpu@1 { 28 cpu@1 {
28 device_type = "cpu"; 29 device_type = "cpu";
29 compatible = "arm,cortex-a7"; 30 compatible = "arm,cortex-a7";
30 reg = <1>; 31 reg = <1>;
31 clocks = <&sysctrl 84>; 32 clocks = <&sysctrl R9A06G032_CLK_A7MP>;
32 enable-method = "renesas,r9a06g032-smp"; 33 enable-method = "renesas,r9a06g032-smp";
33 cpu-release-addr = <0 0x4000c204>; 34 cpu-release-addr = <0 0x4000c204>;
34 }; 35 };
@@ -77,13 +78,90 @@
77 }; 78 };
78 79
79 uart0: serial@40060000 { 80 uart0: serial@40060000 {
80 compatible = "snps,dw-apb-uart"; 81 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart";
81 reg = <0x40060000 0x400>; 82 reg = <0x40060000 0x400>;
82 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; 83 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
83 reg-shift = <2>; 84 reg-shift = <2>;
84 reg-io-width = <4>; 85 reg-io-width = <4>;
85 clocks = <&sysctrl 146>; 86 clocks = <&sysctrl R9A06G032_CLK_UART0>, <&sysctrl R9A06G032_HCLK_UART0>;
86 clock-names = "baudclk"; 87 clock-names = "baudclk", "apb_pclk";
88 status = "disabled";
89 };
90
91 uart1: serial@40061000 {
92 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart";
93 reg = <0x40061000 0x400>;
94 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
95 reg-shift = <2>;
96 reg-io-width = <4>;
97 clocks = <&sysctrl R9A06G032_CLK_UART1>, <&sysctrl R9A06G032_HCLK_UART1>;
98 clock-names = "baudclk", "apb_pclk";
99 status = "disabled";
100 };
101
102 uart2: serial@40062000 {
103 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart", "snps,dw-apb-uart";
104 reg = <0x40062000 0x400>;
105 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
106 reg-shift = <2>;
107 reg-io-width = <4>;
108 clocks = <&sysctrl R9A06G032_CLK_UART2>, <&sysctrl R9A06G032_HCLK_UART2>;
109 clock-names = "baudclk", "apb_pclk";
110 status = "disabled";
111 };
112
113 uart3: serial@50000000 {
114 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
115 reg = <0x50000000 0x400>;
116 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
117 reg-shift = <2>;
118 reg-io-width = <4>;
119 clocks = <&sysctrl R9A06G032_CLK_UART3>, <&sysctrl R9A06G032_HCLK_UART3>;
120 clock-names = "baudclk", "apb_pclk";
121 status = "disabled";
122 };
123
124 uart4: serial@50001000 {
125 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
126 reg = <0x50001000 0x400>;
127 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
128 reg-shift = <2>;
129 reg-io-width = <4>;
130 clocks = <&sysctrl R9A06G032_CLK_UART4>, <&sysctrl R9A06G032_HCLK_UART4>;
131 clock-names = "baudclk", "apb_pclk";
132 status = "disabled";
133 };
134
135 uart5: serial@50002000 {
136 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
137 reg = <0x50002000 0x400>;
138 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
139 reg-shift = <2>;
140 reg-io-width = <4>;
141 clocks = <&sysctrl R9A06G032_CLK_UART5>, <&sysctrl R9A06G032_HCLK_UART5>;
142 clock-names = "baudclk", "apb_pclk";
143 status = "disabled";
144 };
145
146 uart6: serial@50003000 {
147 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
148 reg = <0x50003000 0x400>;
149 interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
150 reg-shift = <2>;
151 reg-io-width = <4>;
152 clocks = <&sysctrl R9A06G032_CLK_UART6>, <&sysctrl R9A06G032_HCLK_UART6>;
153 clock-names = "baudclk", "apb_pclk";
154 status = "disabled";
155 };
156
157 uart7: serial@50004000 {
158 compatible = "renesas,r9a06g032-uart", "renesas,rzn1-uart";
159 reg = <0x50004000 0x400>;
160 interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
161 reg-shift = <2>;
162 reg-io-width = <4>;
163 clocks = <&sysctrl R9A06G032_CLK_UART7>, <&sysctrl R9A06G032_HCLK_UART7>;
164 clock-names = "baudclk", "apb_pclk";
87 status = "disabled"; 165 status = "disabled";
88 }; 166 };
89 167
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
index 67f57200d9a0..d560fc4051c5 100644
--- a/arch/arm/boot/dts/rk3036.dtsi
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -733,7 +733,7 @@
733 /* no rts / cts for uart2 */ 733 /* no rts / cts for uart2 */
734 }; 734 };
735 735
736 spi { 736 spi-pins {
737 spi_txd:spi-txd { 737 spi_txd:spi-txd {
738 rockchip,pins = <1 29 RK_FUNC_3 &pcfg_pull_default>; 738 rockchip,pins = <1 29 RK_FUNC_3 &pcfg_pull_default>;
739 }; 739 };
diff --git a/arch/arm/boot/dts/rk3188-radxarock.dts b/arch/arm/boot/dts/rk3188-radxarock.dts
index 45fd2b302dda..4a2890618f6f 100644
--- a/arch/arm/boot/dts/rk3188-radxarock.dts
+++ b/arch/arm/boot/dts/rk3188-radxarock.dts
@@ -93,6 +93,8 @@
93 regulator-min-microvolt = <3300000>; 93 regulator-min-microvolt = <3300000>;
94 regulator-max-microvolt = <3300000>; 94 regulator-max-microvolt = <3300000>;
95 gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>; 95 gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_LOW>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&sdmmc_pwr>;
96 startup-delay-us = <100000>; 98 startup-delay-us = <100000>;
97 vin-supply = <&vcc_io>; 99 vin-supply = <&vcc_io>;
98 }; 100 };
@@ -315,6 +317,12 @@
315 }; 317 };
316 }; 318 };
317 319
320 sd0 {
321 sdmmc_pwr: sdmmc-pwr {
322 rockchip,pins = <RK_GPIO3 1 RK_FUNC_GPIO &pcfg_pull_none>;
323 };
324 };
325
318 usb { 326 usb {
319 host_vbus_drv: host-vbus-drv { 327 host_vbus_drv: host-vbus-drv {
320 rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>; 328 rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_none>;
diff --git a/arch/arm/boot/dts/rk3188.dtsi b/arch/arm/boot/dts/rk3188.dtsi
index aa123f93f181..b6f790973736 100644
--- a/arch/arm/boot/dts/rk3188.dtsi
+++ b/arch/arm/boot/dts/rk3188.dtsi
@@ -56,6 +56,11 @@
56 }; 56 };
57 }; 57 };
58 58
59 display-subsystem {
60 compatible = "rockchip,display-subsystem";
61 ports = <&vop0_out>, <&vop1_out>;
62 };
63
59 sram: sram@10080000 { 64 sram: sram@10080000 {
60 compatible = "mmio-sram"; 65 compatible = "mmio-sram";
61 reg = <0x10080000 0x8000>; 66 reg = <0x10080000 0x8000>;
@@ -69,6 +74,38 @@
69 }; 74 };
70 }; 75 };
71 76
77 vop0: vop@1010c000 {
78 compatible = "rockchip,rk3188-vop";
79 reg = <0x1010c000 0x1000>;
80 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
81 clocks = <&cru ACLK_LCDC0>, <&cru DCLK_LCDC0>, <&cru HCLK_LCDC0>;
82 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
83 resets = <&cru SRST_LCDC0_AXI>, <&cru SRST_LCDC0_AHB>, <&cru SRST_LCDC0_DCLK>;
84 reset-names = "axi", "ahb", "dclk";
85 status = "disabled";
86
87 vop0_out: port {
88 #address-cells = <1>;
89 #size-cells = <0>;
90 };
91 };
92
93 vop1: vop@1010e000 {
94 compatible = "rockchip,rk3188-vop";
95 reg = <0x1010e000 0x1000>;
96 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
97 clocks = <&cru ACLK_LCDC1>, <&cru DCLK_LCDC1>, <&cru HCLK_LCDC1>;
98 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
99 resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
100 reset-names = "axi", "ahb", "dclk";
101 status = "disabled";
102
103 vop1_out: port {
104 #address-cells = <1>;
105 #size-cells = <0>;
106 };
107 };
108
72 timer3: timer@2000e000 { 109 timer3: timer@2000e000 {
73 compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer"; 110 compatible = "rockchip,rk3188-timer", "rockchip,rk3288-timer";
74 reg = <0x2000e000 0x20>; 111 reg = <0x2000e000 0x20>;
@@ -309,6 +346,51 @@
309 }; 346 };
310 }; 347 };
311 348
349 lcdc1 {
350 lcdc1_dclk: lcdc1-dclk {
351 rockchip,pins = <2 RK_PD0 RK_FUNC_1 &pcfg_pull_none>;
352 };
353
354 lcdc1_den: lcdc1-den {
355 rockchip,pins = <2 RK_PD1 RK_FUNC_1 &pcfg_pull_none>;
356 };
357
358 lcdc1_hsync: lcdc1-hsync {
359 rockchip,pins = <2 RK_PD2 RK_FUNC_1 &pcfg_pull_none>;
360 };
361
362 lcdc1_vsync: lcdc1-vsync {
363 rockchip,pins = <2 RK_PD3 RK_FUNC_1 &pcfg_pull_none>;
364 };
365
366 lcdc1_rgb24: ldcd1-rgb24 {
367 rockchip,pins = <2 RK_PA0 RK_FUNC_1 &pcfg_pull_none>,
368 <2 RK_PA1 RK_FUNC_1 &pcfg_pull_none>,
369 <2 RK_PA2 RK_FUNC_1 &pcfg_pull_none>,
370 <2 RK_PA3 RK_FUNC_1 &pcfg_pull_none>,
371 <2 RK_PA4 RK_FUNC_1 &pcfg_pull_none>,
372 <2 RK_PA5 RK_FUNC_1 &pcfg_pull_none>,
373 <2 RK_PA6 RK_FUNC_1 &pcfg_pull_none>,
374 <2 RK_PA7 RK_FUNC_1 &pcfg_pull_none>,
375 <2 RK_PB0 RK_FUNC_1 &pcfg_pull_none>,
376 <2 RK_PB1 RK_FUNC_1 &pcfg_pull_none>,
377 <2 RK_PB2 RK_FUNC_1 &pcfg_pull_none>,
378 <2 RK_PB3 RK_FUNC_1 &pcfg_pull_none>,
379 <2 RK_PB4 RK_FUNC_1 &pcfg_pull_none>,
380 <2 RK_PB5 RK_FUNC_1 &pcfg_pull_none>,
381 <2 RK_PB6 RK_FUNC_1 &pcfg_pull_none>,
382 <2 RK_PB7 RK_FUNC_1 &pcfg_pull_none>,
383 <2 RK_PC0 RK_FUNC_1 &pcfg_pull_none>,
384 <2 RK_PC1 RK_FUNC_1 &pcfg_pull_none>,
385 <2 RK_PC2 RK_FUNC_1 &pcfg_pull_none>,
386 <2 RK_PC3 RK_FUNC_1 &pcfg_pull_none>,
387 <2 RK_PC4 RK_FUNC_1 &pcfg_pull_none>,
388 <2 RK_PC5 RK_FUNC_1 &pcfg_pull_none>,
389 <2 RK_PC6 RK_FUNC_1 &pcfg_pull_none>,
390 <2 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
391 };
392 };
393
312 pwm0 { 394 pwm0 {
313 pwm0_out: pwm0-out { 395 pwm0_out: pwm0-out {
314 rockchip,pins = <RK_GPIO3 27 RK_FUNC_1 &pcfg_pull_none>; 396 rockchip,pins = <RK_GPIO3 27 RK_FUNC_1 &pcfg_pull_none>;
diff --git a/arch/arm/boot/dts/rk3288-tinker-s.dts b/arch/arm/boot/dts/rk3288-tinker-s.dts
new file mode 100644
index 000000000000..37093922b482
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-tinker-s.dts
@@ -0,0 +1,26 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6/dts-v1/;
7
8#include "rk3288-tinker.dtsi"
9
10/ {
11 model = "Rockchip RK3288 Asus Tinker Board S";
12 compatible = "asus,rk3288-tinker-s", "rockchip,rk3288";
13};
14
15&emmc {
16 bus-width = <8>;
17 cap-mmc-highspeed;
18 disable-wp;
19 non-removable;
20 pinctrl-names = "default";
21 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
22 max-frequency = <150000000>;
23 mmc-hs200-1_8v;
24 mmc-ddr-1_8v;
25 status = "okay";
26};
diff --git a/arch/arm/boot/dts/rk3288-tinker.dts b/arch/arm/boot/dts/rk3288-tinker.dts
index ceade5962899..1e43527aa196 100644
--- a/arch/arm/boot/dts/rk3288-tinker.dts
+++ b/arch/arm/boot/dts/rk3288-tinker.dts
@@ -5,503 +5,9 @@
5 5
6/dts-v1/; 6/dts-v1/;
7 7
8#include "rk3288.dtsi" 8#include "rk3288-tinker.dtsi"
9#include <dt-bindings/input/input.h>
10 9
11/ { 10/ {
12 model = "Rockchip RK3288 Tinker Board"; 11 model = "Rockchip RK3288 Asus Tinker Board";
13 compatible = "asus,rk3288-tinker", "rockchip,rk3288"; 12 compatible = "asus,rk3288-tinker", "rockchip,rk3288";
14
15 chosen {
16 stdout-path = "serial2:115200n8";
17 };
18
19 memory {
20 reg = <0x0 0x0 0x0 0x80000000>;
21 device_type = "memory";
22 };
23
24 ext_gmac: external-gmac-clock {
25 compatible = "fixed-clock";
26 #clock-cells = <0>;
27 clock-frequency = <125000000>;
28 clock-output-names = "ext_gmac";
29 };
30
31 gpio-keys {
32 compatible = "gpio-keys";
33 #address-cells = <1>;
34 #size-cells = <0>;
35 autorepeat;
36
37 pinctrl-names = "default";
38 pinctrl-0 = <&pwrbtn>;
39
40 button@0 {
41 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
42 linux,code = <KEY_POWER>;
43 label = "GPIO Key Power";
44 linux,input-type = <1>;
45 wakeup-source;
46 debounce-interval = <100>;
47 };
48 };
49
50 gpio-leds {
51 compatible = "gpio-leds";
52
53 act-led {
54 gpios=<&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
55 linux,default-trigger="mmc0";
56 };
57
58 heartbeat-led {
59 gpios=<&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
60 linux,default-trigger="heartbeat";
61 };
62
63 pwr-led {
64 gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
65 linux,default-trigger = "default-on";
66 };
67 };
68
69 sound {
70 compatible = "simple-audio-card";
71 simple-audio-card,format = "i2s";
72 simple-audio-card,name = "rockchip,tinker-codec";
73 simple-audio-card,mclk-fs = <512>;
74
75 simple-audio-card,codec {
76 sound-dai = <&hdmi>;
77 };
78
79 simple-audio-card,cpu {
80 sound-dai = <&i2s>;
81 };
82 };
83
84 vcc_sys: vsys-regulator {
85 compatible = "regulator-fixed";
86 regulator-name = "vcc_sys";
87 regulator-min-microvolt = <5000000>;
88 regulator-max-microvolt = <5000000>;
89 regulator-always-on;
90 regulator-boot-on;
91 };
92
93 vcc_sd: sdmmc-regulator {
94 compatible = "regulator-fixed";
95 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&sdmmc_pwr>;
98 regulator-name = "vcc_sd";
99 regulator-min-microvolt = <3300000>;
100 regulator-max-microvolt = <3300000>;
101 startup-delay-us = <100000>;
102 vin-supply = <&vcc_io>;
103 };
104};
105
106&cpu0 {
107 cpu0-supply = <&vdd_cpu>;
108};
109
110&gmac {
111 assigned-clocks = <&cru SCLK_MAC>;
112 assigned-clock-parents = <&ext_gmac>;
113 clock_in_out = "input";
114 phy-mode = "rgmii";
115 phy-supply = <&vcc33_lan>;
116 pinctrl-names = "default";
117 pinctrl-0 = <&rgmii_pins>;
118 snps,reset-gpio = <&gpio4 7 0>;
119 snps,reset-active-low;
120 snps,reset-delays-us = <0 10000 1000000>;
121 tx_delay = <0x30>;
122 rx_delay = <0x10>;
123 status = "ok";
124};
125
126&gpu {
127 mali-supply = <&vdd_gpu>;
128 status = "okay";
129};
130
131&hdmi {
132 ddc-i2c-bus = <&i2c5>;
133 status = "okay";
134};
135
136&i2c0 {
137 clock-frequency = <400000>;
138 status = "okay";
139
140 rk808: pmic@1b {
141 compatible = "rockchip,rk808";
142 reg = <0x1b>;
143 interrupt-parent = <&gpio0>;
144 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
145 #clock-cells = <1>;
146 clock-output-names = "xin32k", "rk808-clkout2";
147 dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
148 <&gpio0 12 GPIO_ACTIVE_HIGH>;
149 pinctrl-names = "default";
150 pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
151 rockchip,system-power-controller;
152 wakeup-source;
153
154 vcc1-supply = <&vcc_sys>;
155 vcc2-supply = <&vcc_sys>;
156 vcc3-supply = <&vcc_sys>;
157 vcc4-supply = <&vcc_sys>;
158 vcc6-supply = <&vcc_sys>;
159 vcc7-supply = <&vcc_sys>;
160 vcc8-supply = <&vcc_io>;
161 vcc9-supply = <&vcc_io>;
162 vcc10-supply = <&vcc_io>;
163 vcc11-supply = <&vcc_sys>;
164 vcc12-supply = <&vcc_io>;
165 vddio-supply = <&vcc_io>;
166
167 regulators {
168 vdd_cpu: DCDC_REG1 {
169 regulator-always-on;
170 regulator-boot-on;
171 regulator-min-microvolt = <750000>;
172 regulator-max-microvolt = <1350000>;
173 regulator-name = "vdd_arm";
174 regulator-ramp-delay = <6000>;
175 regulator-state-mem {
176 regulator-off-in-suspend;
177 };
178 };
179
180 vdd_gpu: DCDC_REG2 {
181 regulator-always-on;
182 regulator-boot-on;
183 regulator-min-microvolt = <850000>;
184 regulator-max-microvolt = <1250000>;
185 regulator-name = "vdd_gpu";
186 regulator-ramp-delay = <6000>;
187 regulator-state-mem {
188 regulator-on-in-suspend;
189 regulator-suspend-microvolt = <1000000>;
190 };
191 };
192
193 vcc_ddr: DCDC_REG3 {
194 regulator-always-on;
195 regulator-boot-on;
196 regulator-name = "vcc_ddr";
197 regulator-state-mem {
198 regulator-on-in-suspend;
199 };
200 };
201
202 vcc_io: DCDC_REG4 {
203 regulator-always-on;
204 regulator-boot-on;
205 regulator-min-microvolt = <3300000>;
206 regulator-max-microvolt = <3300000>;
207 regulator-name = "vcc_io";
208 regulator-state-mem {
209 regulator-on-in-suspend;
210 regulator-suspend-microvolt = <3300000>;
211 };
212 };
213
214 vcc18_ldo1: LDO_REG1 {
215 regulator-always-on;
216 regulator-boot-on;
217 regulator-min-microvolt = <1800000>;
218 regulator-max-microvolt = <1800000>;
219 regulator-name = "vcc18_ldo1";
220 regulator-state-mem {
221 regulator-on-in-suspend;
222 regulator-suspend-microvolt = <1800000>;
223 };
224 };
225
226 vcc33_mipi: LDO_REG2 {
227 regulator-always-on;
228 regulator-boot-on;
229 regulator-min-microvolt = <3300000>;
230 regulator-max-microvolt = <3300000>;
231 regulator-name = "vcc33_mipi";
232 regulator-state-mem {
233 regulator-off-in-suspend;
234 };
235 };
236
237 vdd_10: LDO_REG3 {
238 regulator-always-on;
239 regulator-boot-on;
240 regulator-min-microvolt = <1000000>;
241 regulator-max-microvolt = <1000000>;
242 regulator-name = "vdd_10";
243 regulator-state-mem {
244 regulator-on-in-suspend;
245 regulator-suspend-microvolt = <1000000>;
246 };
247 };
248
249 vcc18_codec: LDO_REG4 {
250 regulator-always-on;
251 regulator-boot-on;
252 regulator-min-microvolt = <1800000>;
253 regulator-max-microvolt = <1800000>;
254 regulator-name = "vcc18_codec";
255 regulator-state-mem {
256 regulator-on-in-suspend;
257 regulator-suspend-microvolt = <1800000>;
258 };
259 };
260
261 vccio_sd: LDO_REG5 {
262 regulator-min-microvolt = <1800000>;
263 regulator-max-microvolt = <3300000>;
264 regulator-name = "vccio_sd";
265 regulator-state-mem {
266 regulator-on-in-suspend;
267 regulator-suspend-microvolt = <3300000>;
268 };
269 };
270
271 vdd10_lcd: LDO_REG6 {
272 regulator-always-on;
273 regulator-boot-on;
274 regulator-min-microvolt = <1000000>;
275 regulator-max-microvolt = <1000000>;
276 regulator-name = "vdd10_lcd";
277 regulator-state-mem {
278 regulator-on-in-suspend;
279 regulator-suspend-microvolt = <1000000>;
280 };
281 };
282
283 vcc_18: LDO_REG7 {
284 regulator-always-on;
285 regulator-boot-on;
286 regulator-min-microvolt = <1800000>;
287 regulator-max-microvolt = <1800000>;
288 regulator-name = "vcc_18";
289 regulator-state-mem {
290 regulator-on-in-suspend;
291 regulator-suspend-microvolt = <1800000>;
292 };
293 };
294
295 vcc18_lcd: LDO_REG8 {
296 regulator-always-on;
297 regulator-boot-on;
298 regulator-min-microvolt = <1800000>;
299 regulator-max-microvolt = <1800000>;
300 regulator-name = "vcc18_lcd";
301 regulator-state-mem {
302 regulator-on-in-suspend;
303 regulator-suspend-microvolt = <1800000>;
304 };
305 };
306
307 vcc33_sd: SWITCH_REG1 {
308 regulator-always-on;
309 regulator-boot-on;
310 regulator-name = "vcc33_sd";
311 regulator-state-mem {
312 regulator-on-in-suspend;
313 };
314 };
315
316 vcc33_lan: SWITCH_REG2 {
317 regulator-always-on;
318 regulator-boot-on;
319 regulator-name = "vcc33_lan";
320 regulator-state-mem {
321 regulator-on-in-suspend;
322 };
323 };
324 };
325 };
326};
327
328&i2c2 {
329 status = "okay";
330};
331
332&i2c5 {
333 status = "okay";
334};
335
336&i2s {
337 #sound-dai-cells = <0>;
338 status = "okay";
339};
340
341&io_domains {
342 status = "okay";
343
344 sdcard-supply = <&vccio_sd>;
345};
346
347&pinctrl {
348 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
349 drive-strength = <8>;
350 };
351
352 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
353 bias-pull-up;
354 drive-strength = <8>;
355 };
356
357 backlight {
358 bl_en: bl-en {
359 rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
360 };
361 };
362
363 buttons {
364 pwrbtn: pwrbtn {
365 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
366 };
367 };
368
369 eth_phy {
370 eth_phy_pwr: eth-phy-pwr {
371 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
372 };
373 };
374
375 pmic {
376 pmic_int: pmic-int {
377 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO \
378 &pcfg_pull_up>;
379 };
380
381 dvs_1: dvs-1 {
382 rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO \
383 &pcfg_pull_down>;
384 };
385
386 dvs_2: dvs-2 {
387 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO \
388 &pcfg_pull_down>;
389 };
390 };
391
392 sdmmc {
393 sdmmc_bus4: sdmmc-bus4 {
394 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
395 <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
396 <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
397 <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
398 };
399
400 sdmmc_clk: sdmmc-clk {
401 rockchip,pins = <6 20 RK_FUNC_1 \
402 &pcfg_pull_none_drv_8ma>;
403 };
404
405 sdmmc_cmd: sdmmc-cmd {
406 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
407 };
408
409 sdmmc_pwr: sdmmc-pwr {
410 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
411 };
412 };
413
414 usb {
415 host_vbus_drv: host-vbus-drv {
416 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
417 };
418
419 pwr_3g: pwr-3g {
420 rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
421 };
422 };
423};
424
425&pwm0 {
426 status = "okay";
427};
428
429&saradc {
430 vref-supply = <&vcc18_ldo1>;
431 status ="okay";
432};
433
434&sdmmc {
435 bus-width = <4>;
436 cap-mmc-highspeed;
437 cap-sd-highspeed;
438 card-detect-delay = <200>;
439 disable-wp; /* wp not hooked up */
440 pinctrl-names = "default";
441 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
442 status = "okay";
443 vmmc-supply = <&vcc33_sd>;
444 vqmmc-supply = <&vccio_sd>;
445};
446
447&tsadc {
448 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
449 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
450 status = "okay";
451};
452
453&uart0 {
454 status = "okay";
455};
456
457&uart1 {
458 status = "okay";
459};
460
461&uart2 {
462 status = "okay";
463};
464
465&uart3 {
466 status = "okay";
467};
468
469&uart4 {
470 status = "okay";
471};
472
473&usbphy {
474 status = "okay";
475};
476
477&usb_host0_ehci {
478 status = "okay";
479};
480
481&usb_host1 {
482 status = "okay";
483};
484
485&usb_otg {
486 status= "okay";
487};
488
489&vopb {
490 status = "okay";
491};
492
493&vopb_mmu {
494 status = "okay";
495};
496
497&vopl {
498 status = "okay";
499};
500
501&vopl_mmu {
502 status = "okay";
503};
504
505&wdt {
506 status = "okay";
507}; 13};
diff --git a/arch/arm/boot/dts/rk3288-tinker.dtsi b/arch/arm/boot/dts/rk3288-tinker.dtsi
new file mode 100644
index 000000000000..aa107ee41b8b
--- /dev/null
+++ b/arch/arm/boot/dts/rk3288-tinker.dtsi
@@ -0,0 +1,502 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6#include "rk3288.dtsi"
7#include <dt-bindings/input/input.h>
8
9/ {
10 chosen {
11 stdout-path = "serial2:115200n8";
12 };
13
14 memory {
15 reg = <0x0 0x0 0x0 0x80000000>;
16 device_type = "memory";
17 };
18
19 ext_gmac: external-gmac-clock {
20 compatible = "fixed-clock";
21 #clock-cells = <0>;
22 clock-frequency = <125000000>;
23 clock-output-names = "ext_gmac";
24 };
25
26 gpio-keys {
27 compatible = "gpio-keys";
28 #address-cells = <1>;
29 #size-cells = <0>;
30 autorepeat;
31
32 pinctrl-names = "default";
33 pinctrl-0 = <&pwrbtn>;
34
35 button@0 {
36 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
37 linux,code = <KEY_POWER>;
38 label = "GPIO Key Power";
39 linux,input-type = <1>;
40 wakeup-source;
41 debounce-interval = <100>;
42 };
43 };
44
45 gpio-leds {
46 compatible = "gpio-leds";
47
48 act-led {
49 gpios=<&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>;
50 linux,default-trigger="mmc0";
51 };
52
53 heartbeat-led {
54 gpios=<&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
55 linux,default-trigger="heartbeat";
56 };
57
58 pwr-led {
59 gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>;
60 linux,default-trigger = "default-on";
61 };
62 };
63
64 sound {
65 compatible = "simple-audio-card";
66 simple-audio-card,format = "i2s";
67 simple-audio-card,name = "rockchip,tinker-codec";
68 simple-audio-card,mclk-fs = <512>;
69
70 simple-audio-card,codec {
71 sound-dai = <&hdmi>;
72 };
73
74 simple-audio-card,cpu {
75 sound-dai = <&i2s>;
76 };
77 };
78
79 vcc_sys: vsys-regulator {
80 compatible = "regulator-fixed";
81 regulator-name = "vcc_sys";
82 regulator-min-microvolt = <5000000>;
83 regulator-max-microvolt = <5000000>;
84 regulator-always-on;
85 regulator-boot-on;
86 };
87
88 vcc_sd: sdmmc-regulator {
89 compatible = "regulator-fixed";
90 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
91 pinctrl-names = "default";
92 pinctrl-0 = <&sdmmc_pwr>;
93 regulator-name = "vcc_sd";
94 regulator-min-microvolt = <3300000>;
95 regulator-max-microvolt = <3300000>;
96 startup-delay-us = <100000>;
97 vin-supply = <&vcc_io>;
98 };
99};
100
101&cpu0 {
102 cpu0-supply = <&vdd_cpu>;
103};
104
105&gmac {
106 assigned-clocks = <&cru SCLK_MAC>;
107 assigned-clock-parents = <&ext_gmac>;
108 clock_in_out = "input";
109 phy-mode = "rgmii";
110 phy-supply = <&vcc33_lan>;
111 pinctrl-names = "default";
112 pinctrl-0 = <&rgmii_pins>;
113 snps,reset-gpio = <&gpio4 7 0>;
114 snps,reset-active-low;
115 snps,reset-delays-us = <0 10000 1000000>;
116 tx_delay = <0x30>;
117 rx_delay = <0x10>;
118 status = "ok";
119};
120
121&gpu {
122 mali-supply = <&vdd_gpu>;
123 status = "okay";
124};
125
126&hdmi {
127 ddc-i2c-bus = <&i2c5>;
128 status = "okay";
129};
130
131&i2c0 {
132 clock-frequency = <400000>;
133 status = "okay";
134
135 rk808: pmic@1b {
136 compatible = "rockchip,rk808";
137 reg = <0x1b>;
138 interrupt-parent = <&gpio0>;
139 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
140 #clock-cells = <1>;
141 clock-output-names = "xin32k", "rk808-clkout2";
142 dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
143 <&gpio0 12 GPIO_ACTIVE_HIGH>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>;
146 rockchip,system-power-controller;
147 wakeup-source;
148
149 vcc1-supply = <&vcc_sys>;
150 vcc2-supply = <&vcc_sys>;
151 vcc3-supply = <&vcc_sys>;
152 vcc4-supply = <&vcc_sys>;
153 vcc6-supply = <&vcc_sys>;
154 vcc7-supply = <&vcc_sys>;
155 vcc8-supply = <&vcc_io>;
156 vcc9-supply = <&vcc_io>;
157 vcc10-supply = <&vcc_io>;
158 vcc11-supply = <&vcc_sys>;
159 vcc12-supply = <&vcc_io>;
160 vddio-supply = <&vcc_io>;
161
162 regulators {
163 vdd_cpu: DCDC_REG1 {
164 regulator-always-on;
165 regulator-boot-on;
166 regulator-min-microvolt = <750000>;
167 regulator-max-microvolt = <1350000>;
168 regulator-name = "vdd_arm";
169 regulator-ramp-delay = <6000>;
170 regulator-state-mem {
171 regulator-off-in-suspend;
172 };
173 };
174
175 vdd_gpu: DCDC_REG2 {
176 regulator-always-on;
177 regulator-boot-on;
178 regulator-min-microvolt = <850000>;
179 regulator-max-microvolt = <1250000>;
180 regulator-name = "vdd_gpu";
181 regulator-ramp-delay = <6000>;
182 regulator-state-mem {
183 regulator-on-in-suspend;
184 regulator-suspend-microvolt = <1000000>;
185 };
186 };
187
188 vcc_ddr: DCDC_REG3 {
189 regulator-always-on;
190 regulator-boot-on;
191 regulator-name = "vcc_ddr";
192 regulator-state-mem {
193 regulator-on-in-suspend;
194 };
195 };
196
197 vcc_io: DCDC_REG4 {
198 regulator-always-on;
199 regulator-boot-on;
200 regulator-min-microvolt = <3300000>;
201 regulator-max-microvolt = <3300000>;
202 regulator-name = "vcc_io";
203 regulator-state-mem {
204 regulator-on-in-suspend;
205 regulator-suspend-microvolt = <3300000>;
206 };
207 };
208
209 vcc18_ldo1: LDO_REG1 {
210 regulator-always-on;
211 regulator-boot-on;
212 regulator-min-microvolt = <1800000>;
213 regulator-max-microvolt = <1800000>;
214 regulator-name = "vcc18_ldo1";
215 regulator-state-mem {
216 regulator-on-in-suspend;
217 regulator-suspend-microvolt = <1800000>;
218 };
219 };
220
221 vcc33_mipi: LDO_REG2 {
222 regulator-always-on;
223 regulator-boot-on;
224 regulator-min-microvolt = <3300000>;
225 regulator-max-microvolt = <3300000>;
226 regulator-name = "vcc33_mipi";
227 regulator-state-mem {
228 regulator-off-in-suspend;
229 };
230 };
231
232 vdd_10: LDO_REG3 {
233 regulator-always-on;
234 regulator-boot-on;
235 regulator-min-microvolt = <1000000>;
236 regulator-max-microvolt = <1000000>;
237 regulator-name = "vdd_10";
238 regulator-state-mem {
239 regulator-on-in-suspend;
240 regulator-suspend-microvolt = <1000000>;
241 };
242 };
243
244 vcc18_codec: LDO_REG4 {
245 regulator-always-on;
246 regulator-boot-on;
247 regulator-min-microvolt = <1800000>;
248 regulator-max-microvolt = <1800000>;
249 regulator-name = "vcc18_codec";
250 regulator-state-mem {
251 regulator-on-in-suspend;
252 regulator-suspend-microvolt = <1800000>;
253 };
254 };
255
256 vccio_sd: LDO_REG5 {
257 regulator-min-microvolt = <1800000>;
258 regulator-max-microvolt = <3300000>;
259 regulator-name = "vccio_sd";
260 regulator-state-mem {
261 regulator-on-in-suspend;
262 regulator-suspend-microvolt = <3300000>;
263 };
264 };
265
266 vdd10_lcd: LDO_REG6 {
267 regulator-always-on;
268 regulator-boot-on;
269 regulator-min-microvolt = <1000000>;
270 regulator-max-microvolt = <1000000>;
271 regulator-name = "vdd10_lcd";
272 regulator-state-mem {
273 regulator-on-in-suspend;
274 regulator-suspend-microvolt = <1000000>;
275 };
276 };
277
278 vcc_18: LDO_REG7 {
279 regulator-always-on;
280 regulator-boot-on;
281 regulator-min-microvolt = <1800000>;
282 regulator-max-microvolt = <1800000>;
283 regulator-name = "vcc_18";
284 regulator-state-mem {
285 regulator-on-in-suspend;
286 regulator-suspend-microvolt = <1800000>;
287 };
288 };
289
290 vcc18_lcd: LDO_REG8 {
291 regulator-always-on;
292 regulator-boot-on;
293 regulator-min-microvolt = <1800000>;
294 regulator-max-microvolt = <1800000>;
295 regulator-name = "vcc18_lcd";
296 regulator-state-mem {
297 regulator-on-in-suspend;
298 regulator-suspend-microvolt = <1800000>;
299 };
300 };
301
302 vcc33_sd: SWITCH_REG1 {
303 regulator-always-on;
304 regulator-boot-on;
305 regulator-name = "vcc33_sd";
306 regulator-state-mem {
307 regulator-on-in-suspend;
308 };
309 };
310
311 vcc33_lan: SWITCH_REG2 {
312 regulator-always-on;
313 regulator-boot-on;
314 regulator-name = "vcc33_lan";
315 regulator-state-mem {
316 regulator-on-in-suspend;
317 };
318 };
319 };
320 };
321};
322
323&i2c2 {
324 status = "okay";
325};
326
327&i2c5 {
328 status = "okay";
329};
330
331&i2s {
332 #sound-dai-cells = <0>;
333 status = "okay";
334};
335
336&io_domains {
337 status = "okay";
338
339 sdcard-supply = <&vccio_sd>;
340};
341
342&pinctrl {
343 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
344 drive-strength = <8>;
345 };
346
347 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
348 bias-pull-up;
349 drive-strength = <8>;
350 };
351
352 backlight {
353 bl_en: bl-en {
354 rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
355 };
356 };
357
358 buttons {
359 pwrbtn: pwrbtn {
360 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
361 };
362 };
363
364 eth_phy {
365 eth_phy_pwr: eth-phy-pwr {
366 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_none>;
367 };
368 };
369
370 pmic {
371 pmic_int: pmic-int {
372 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO \
373 &pcfg_pull_up>;
374 };
375
376 dvs_1: dvs-1 {
377 rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO \
378 &pcfg_pull_down>;
379 };
380
381 dvs_2: dvs-2 {
382 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO \
383 &pcfg_pull_down>;
384 };
385 };
386
387 sdmmc {
388 sdmmc_bus4: sdmmc-bus4 {
389 rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
390 <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
391 <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
392 <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
393 };
394
395 sdmmc_clk: sdmmc-clk {
396 rockchip,pins = <6 20 RK_FUNC_1 \
397 &pcfg_pull_none_drv_8ma>;
398 };
399
400 sdmmc_cmd: sdmmc-cmd {
401 rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
402 };
403
404 sdmmc_pwr: sdmmc-pwr {
405 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
406 };
407 };
408
409 usb {
410 host_vbus_drv: host-vbus-drv {
411 rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
412 };
413
414 pwr_3g: pwr-3g {
415 rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
416 };
417 };
418};
419
420&pwm0 {
421 status = "okay";
422};
423
424&saradc {
425 vref-supply = <&vcc18_ldo1>;
426 status ="okay";
427};
428
429&sdmmc {
430 bus-width = <4>;
431 cap-mmc-highspeed;
432 cap-sd-highspeed;
433 card-detect-delay = <200>;
434 disable-wp; /* wp not hooked up */
435 pinctrl-names = "default";
436 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
437 status = "okay";
438 vmmc-supply = <&vcc33_sd>;
439 vqmmc-supply = <&vccio_sd>;
440};
441
442&tsadc {
443 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
444 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
445 status = "okay";
446};
447
448&uart0 {
449 status = "okay";
450};
451
452&uart1 {
453 status = "okay";
454};
455
456&uart2 {
457 status = "okay";
458};
459
460&uart3 {
461 status = "okay";
462};
463
464&uart4 {
465 status = "okay";
466};
467
468&usbphy {
469 status = "okay";
470};
471
472&usb_host0_ehci {
473 status = "okay";
474};
475
476&usb_host1 {
477 status = "okay";
478};
479
480&usb_otg {
481 status= "okay";
482};
483
484&vopb {
485 status = "okay";
486};
487
488&vopb_mmu {
489 status = "okay";
490};
491
492&vopl {
493 status = "okay";
494};
495
496&vopl_mmu {
497 status = "okay";
498};
499
500&wdt {
501 status = "okay";
502};
diff --git a/arch/arm/boot/dts/s5pv210.dtsi b/arch/arm/boot/dts/s5pv210.dtsi
index 67358562a6ea..75f454a210d6 100644
--- a/arch/arm/boot/dts/s5pv210.dtsi
+++ b/arch/arm/boot/dts/s5pv210.dtsi
@@ -120,7 +120,7 @@
120 interrupts = <30>; 120 interrupts = <30>;
121 121
122 wakeup-interrupt-controller { 122 wakeup-interrupt-controller {
123 compatible = "samsung,exynos4210-wakeup-eint"; 123 compatible = "samsung,s5pv210-wakeup-eint";
124 interrupts = <16>; 124 interrupts = <16>;
125 interrupt-parent = <&vic0>; 125 interrupt-parent = <&vic0>;
126 }; 126 };
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index 61f68e5c48e9..843052f14f1c 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -47,6 +47,7 @@
47#include <dt-bindings/dma/at91.h> 47#include <dt-bindings/dma/at91.h>
48#include <dt-bindings/interrupt-controller/irq.h> 48#include <dt-bindings/interrupt-controller/irq.h>
49#include <dt-bindings/clock/at91.h> 49#include <dt-bindings/clock/at91.h>
50#include <dt-bindings/iio/adc/at91-sama5d2_adc.h>
50 51
51/ { 52/ {
52 model = "Atmel SAMA5D2 family SoC"; 53 model = "Atmel SAMA5D2 family SoC";
@@ -58,6 +59,8 @@
58 serial1 = &uart3; 59 serial1 = &uart3;
59 tcb0 = &tcb0; 60 tcb0 = &tcb0;
60 tcb1 = &tcb1; 61 tcb1 = &tcb1;
62 i2s0 = &i2s0;
63 i2s1 = &i2s1;
61 }; 64 };
62 65
63 cpus { 66 cpus {
@@ -84,10 +87,11 @@
84 clocks = <&mck>; 87 clocks = <&mck>;
85 clock-names = "apb_pclk"; 88 clock-names = "apb_pclk";
86 89
87 port { 90 in-ports {
88 etb_in: endpoint { 91 port {
89 slave-mode; 92 etb_in: endpoint {
90 remote-endpoint = <&etm_out>; 93 remote-endpoint = <&etm_out>;
94 };
91 }; 95 };
92 }; 96 };
93 }; 97 };
@@ -99,9 +103,11 @@
99 clocks = <&mck>; 103 clocks = <&mck>;
100 clock-names = "apb_pclk"; 104 clock-names = "apb_pclk";
101 105
102 port { 106 out-ports {
103 etm_out: endpoint { 107 port {
104 remote-endpoint = <&etb_in>; 108 etm_out: endpoint {
109 remote-endpoint = <&etb_in>;
110 };
105 }; 111 };
106 }; 112 };
107 }; 113 };
@@ -323,44 +329,6 @@
323 }; 329 };
324 }; 330 };
325 331
326 nand0: nand@80000000 {
327 compatible = "atmel,sama5d2-nand";
328 #address-cells = <1>;
329 #size-cells = <1>;
330 ranges;
331 reg = < /* EBI CS3 */
332 0x80000000 0x08000000
333 /* SMC PMECC regs */
334 0xf8014070 0x00000490
335 /* SMC PMECC Error Location regs */
336 0xf8014500 0x00000200
337 /* ROM Galois tables */
338 0x00040000 0x00018000
339 >;
340 interrupts = <17 IRQ_TYPE_LEVEL_HIGH 6>;
341 atmel,nand-addr-offset = <21>;
342 atmel,nand-cmd-offset = <22>;
343 atmel,nand-has-dma;
344 atmel,has-pmecc;
345 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
346 status = "disabled";
347
348 nfc@c0000000 {
349 compatible = "atmel,sama5d3-nfc";
350 #address-cells = <1>;
351 #size-cells = <1>;
352 reg = < /* NFC Command Registers */
353 0xc0000000 0x08000000
354 /* NFC HSMC regs */
355 0xf8014000 0x00000070
356 /* NFC SRAM banks */
357 0x00100000 0x00100000
358 >;
359 clocks = <&hsmc_clk>;
360 atmel,write-by-sram;
361 };
362 };
363
364 sdmmc0: sdio-host@a0000000 { 332 sdmmc0: sdio-host@a0000000 {
365 compatible = "atmel,sama5d2-sdhci"; 333 compatible = "atmel,sama5d2-sdhci";
366 reg = <0xa0000000 0x300>; 334 reg = <0xa0000000 0x300>;
@@ -992,6 +960,24 @@
992 atmel,clk-output-range = <0 100000000>; 960 atmel,clk-output-range = <0 100000000>;
993 }; 961 };
994 }; 962 };
963
964 i2s_clkmux {
965 compatible = "atmel,sama5d2-clk-i2s-mux";
966 #address-cells = <1>;
967 #size-cells = <0>;
968
969 i2s0muxck: i2s0_muxclk {
970 clocks = <&i2s0_clk>, <&i2s0_gclk>;
971 #clock-cells = <0>;
972 reg = <0>;
973 };
974
975 i2s1muxck: i2s1_muxclk {
976 clocks = <&i2s1_clk>, <&i2s1_gclk>;
977 #clock-cells = <0>;
978 reg = <1>;
979 };
980 };
995 }; 981 };
996 982
997 qspi0: spi@f0020000 { 983 qspi0: spi@f0020000 {
@@ -1295,6 +1281,24 @@
1295 clocks = <&clk32k>; 1281 clocks = <&clk32k>;
1296 }; 1282 };
1297 1283
1284 i2s0: i2s@f8050000 {
1285 compatible = "atmel,sama5d2-i2s";
1286 reg = <0xf8050000 0x100>;
1287 interrupts = <54 IRQ_TYPE_LEVEL_HIGH 7>;
1288 dmas = <&dma0
1289 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1290 AT91_XDMAC_DT_PERID(31))>,
1291 <&dma0
1292 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1293 AT91_XDMAC_DT_PERID(32))>;
1294 dma-names = "tx", "rx";
1295 clocks = <&i2s0_clk>, <&i2s0_gclk>;
1296 clock-names = "pclk", "gclk";
1297 assigned-clocks = <&i2s0muxck>;
1298 assigned-clock-parents = <&i2s0_gclk>;
1299 status = "disabled";
1300 };
1301
1298 can0: can@f8054000 { 1302 can0: can@f8054000 {
1299 compatible = "bosch,m_can"; 1303 compatible = "bosch,m_can";
1300 reg = <0xf8054000 0x4000>, <0x210000 0x4000>; 1304 reg = <0xf8054000 0x4000>, <0x210000 0x4000>;
@@ -1437,6 +1441,17 @@
1437 atmel,max-sample-rate-hz = <20000000>; 1441 atmel,max-sample-rate-hz = <20000000>;
1438 atmel,startup-time-ms = <4>; 1442 atmel,startup-time-ms = <4>;
1439 atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>; 1443 atmel,trigger-edge-type = <IRQ_TYPE_EDGE_RISING>;
1444 #io-channel-cells = <1>;
1445 status = "disabled";
1446 };
1447
1448 resistive_touch: resistive-touch {
1449 compatible = "resistive-adc-touch";
1450 io-channels = <&adc AT91_SAMA5D2_ADC_X_CHANNEL>,
1451 <&adc AT91_SAMA5D2_ADC_Y_CHANNEL>,
1452 <&adc AT91_SAMA5D2_ADC_P_CHANNEL>;
1453 io-channel-names = "x", "y", "pressure";
1454 touchscreen-min-pressure = <50000>;
1440 status = "disabled"; 1455 status = "disabled";
1441 }; 1456 };
1442 1457
@@ -1488,6 +1503,24 @@
1488 status = "disabled"; 1503 status = "disabled";
1489 }; 1504 };
1490 1505
1506 i2s1: i2s@fc04c000 {
1507 compatible = "atmel,sama5d2-i2s";
1508 reg = <0xfc04c000 0x100>;
1509 interrupts = <55 IRQ_TYPE_LEVEL_HIGH 7>;
1510 dmas = <&dma0
1511 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1512 AT91_XDMAC_DT_PERID(33))>,
1513 <&dma0
1514 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
1515 AT91_XDMAC_DT_PERID(34))>;
1516 dma-names = "tx", "rx";
1517 clocks = <&i2s1_clk>, <&i2s1_gclk>;
1518 clock-names = "pclk", "gclk";
1519 assigned-clocks = <&i2s1muxck>;
1520 assigned-parrents = <&i2s1_gclk>;
1521 status = "disabled";
1522 };
1523
1491 can1: can@fc050000 { 1524 can1: can@fc050000 {
1492 compatible = "bosch,m_can"; 1525 compatible = "bosch,m_can";
1493 reg = <0xfc050000 0x4000>, <0x210000 0x4000>; 1526 reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 92a35a1942b6..7371f2a0460f 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -1323,13 +1323,13 @@
1323 }; 1323 };
1324 }; 1324 };
1325 1325
1326 rstc@fc068600 { 1326 reset_controller: rstc@fc068600 {
1327 compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc"; 1327 compatible = "atmel,sama5d3-rstc", "atmel,at91sam9g45-rstc";
1328 reg = <0xfc068600 0x10>; 1328 reg = <0xfc068600 0x10>;
1329 clocks = <&clk32k>; 1329 clocks = <&clk32k>;
1330 }; 1330 };
1331 1331
1332 shdwc@fc068610 { 1332 shutdown_controller: shdwc@fc068610 {
1333 compatible = "atmel,at91sam9x5-shdwc"; 1333 compatible = "atmel,at91sam9x5-shdwc";
1334 reg = <0xfc068610 0x10>; 1334 reg = <0xfc068610 0x10>;
1335 clocks = <&clk32k>; 1335 clocks = <&clk32k>;
@@ -1342,7 +1342,7 @@
1342 clocks = <&h32ck>; 1342 clocks = <&h32ck>;
1343 }; 1343 };
1344 1344
1345 watchdog@fc068640 { 1345 watchdog: watchdog@fc068640 {
1346 compatible = "atmel,sama5d4-wdt"; 1346 compatible = "atmel,sama5d4-wdt";
1347 reg = <0xfc068640 0x10>; 1347 reg = <0xfc068640 0x10>;
1348 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>; 1348 interrupts = <4 IRQ_TYPE_LEVEL_HIGH 7>;
@@ -1376,7 +1376,7 @@
1376 }; 1376 };
1377 1377
1378 1378
1379 pinctrl@fc06a000 { 1379 pinctrl: pinctrl@fc06a000 {
1380 #address-cells = <1>; 1380 #address-cells = <1>;
1381 #size-cells = <1>; 1381 #size-cells = <1>;
1382 compatible = "atmel,sama5d3-pinctrl", "atmel,at91sam9x5-pinctrl", "simple-bus"; 1382 compatible = "atmel,sama5d3-pinctrl", "atmel,at91sam9x5-pinctrl", "simple-bus";
diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
index b38f8c240558..2d300396f0ed 100644
--- a/arch/arm/boot/dts/socfpga.dtsi
+++ b/arch/arm/boot/dts/socfpga.dtsi
@@ -22,8 +22,6 @@
22 #size-cells = <1>; 22 #size-cells = <1>;
23 23
24 aliases { 24 aliases {
25 ethernet0 = &gmac0;
26 ethernet1 = &gmac1;
27 serial0 = &uart0; 25 serial0 = &uart0;
28 serial1 = &uart1; 26 serial1 = &uart1;
29 timer0 = &timer0; 27 timer0 = &timer0;
@@ -483,10 +481,17 @@
483 clk-gate = <0xa0 9>; 481 clk-gate = <0xa0 9>;
484 }; 482 };
485 483
484 nand_ecc_clk: nand_ecc_clk {
485 #clock-cells = <0>;
486 compatible = "altr,socfpga-gate-clk";
487 clocks = <&nand_x_clk>;
488 clk-gate = <0xa0 9>;
489 };
490
486 nand_clk: nand_clk { 491 nand_clk: nand_clk {
487 #clock-cells = <0>; 492 #clock-cells = <0>;
488 compatible = "altr,socfpga-gate-clk"; 493 compatible = "altr,socfpga-gate-clk";
489 clocks = <&f2s_periph_ref_clk>, <&main_nand_sdmmc_clk>, <&per_nand_mmc_clk>; 494 clocks = <&nand_x_clk>;
490 clk-gate = <0xa0 10>; 495 clk-gate = <0xa0 10>;
491 fixed-divider = <4>; 496 fixed-divider = <4>;
492 }; 497 };
@@ -754,7 +759,8 @@
754 reg-names = "nand_data", "denali_reg"; 759 reg-names = "nand_data", "denali_reg";
755 interrupts = <0x0 0x90 0x4>; 760 interrupts = <0x0 0x90 0x4>;
756 dma-mask = <0xffffffff>; 761 dma-mask = <0xffffffff>;
757 clocks = <&nand_x_clk>; 762 clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
763 clock-names = "nand", "nand_x", "ecc";
758 status = "disabled"; 764 status = "disabled";
759 }; 765 };
760 766
@@ -841,6 +847,8 @@
841 reg = <0xffc08000 0x1000>; 847 reg = <0xffc08000 0x1000>;
842 clocks = <&l4_sp_clk>; 848 clocks = <&l4_sp_clk>;
843 clock-names = "timer"; 849 clock-names = "timer";
850 resets = <&rst SPTIMER0_RESET>;
851 reset-names = "timer";
844 }; 852 };
845 853
846 timer1: timer1@ffc09000 { 854 timer1: timer1@ffc09000 {
@@ -849,6 +857,8 @@
849 reg = <0xffc09000 0x1000>; 857 reg = <0xffc09000 0x1000>;
850 clocks = <&l4_sp_clk>; 858 clocks = <&l4_sp_clk>;
851 clock-names = "timer"; 859 clock-names = "timer";
860 resets = <&rst SPTIMER1_RESET>;
861 reset-names = "timer";
852 }; 862 };
853 863
854 timer2: timer2@ffd00000 { 864 timer2: timer2@ffd00000 {
@@ -857,6 +867,8 @@
857 reg = <0xffd00000 0x1000>; 867 reg = <0xffd00000 0x1000>;
858 clocks = <&osc1>; 868 clocks = <&osc1>;
859 clock-names = "timer"; 869 clock-names = "timer";
870 resets = <&rst OSC1TIMER0_RESET>;
871 reset-names = "timer";
860 }; 872 };
861 873
862 timer3: timer3@ffd01000 { 874 timer3: timer3@ffd01000 {
@@ -865,6 +877,8 @@
865 reg = <0xffd01000 0x1000>; 877 reg = <0xffd01000 0x1000>;
866 clocks = <&osc1>; 878 clocks = <&osc1>;
867 clock-names = "timer"; 879 clock-names = "timer";
880 resets = <&rst OSC1TIMER1_RESET>;
881 reset-names = "timer";
868 }; 882 };
869 883
870 uart0: serial0@ffc02000 { 884 uart0: serial0@ffc02000 {
diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
index a4dcb68f4322..59ef13e37536 100644
--- a/arch/arm/boot/dts/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
@@ -377,13 +377,28 @@
377 clk-gate = <0xC8 11>; 377 clk-gate = <0xC8 11>;
378 }; 378 };
379 379
380 nand_clk: nand_clk { 380 nand_x_clk: nand_x_clk {
381 #clock-cells = <0>; 381 #clock-cells = <0>;
382 compatible = "altr,socfpga-a10-gate-clk"; 382 compatible = "altr,socfpga-a10-gate-clk";
383 clocks = <&l4_mp_clk>; 383 clocks = <&l4_mp_clk>;
384 clk-gate = <0xC8 10>; 384 clk-gate = <0xC8 10>;
385 }; 385 };
386 386
387 nand_ecc_clk: nand_ecc_clk {
388 #clock-cells = <0>;
389 compatible = "altr,socfpga-a10-gate-clk";
390 clocks = <&nand_x_clk>;
391 clk-gate = <0xC8 10>;
392 };
393
394 nand_clk: nand_clk {
395 #clock-cells = <0>;
396 compatible = "altr,socfpga-a10-gate-clk";
397 clocks = <&nand_x_clk>;
398 fixed-divider = <4>;
399 clk-gate = <0xC8 10>;
400 };
401
387 spi_m_clk: spi_m_clk { 402 spi_m_clk: spi_m_clk {
388 #clock-cells = <0>; 403 #clock-cells = <0>;
389 compatible = "altr,socfpga-a10-gate-clk"; 404 compatible = "altr,socfpga-a10-gate-clk";
@@ -613,7 +628,7 @@
613 status = "disabled"; 628 status = "disabled";
614 }; 629 };
615 630
616 sdr: sdr@ffc25000 { 631 sdr: sdr@ffcfb100 {
617 compatible = "altr,sdr-ctl", "syscon"; 632 compatible = "altr,sdr-ctl", "syscon";
618 reg = <0xffcfb100 0x80>; 633 reg = <0xffcfb100 0x80>;
619 }; 634 };
@@ -650,7 +665,8 @@
650 reg-names = "nand_data", "denali_reg"; 665 reg-names = "nand_data", "denali_reg";
651 interrupts = <0 99 4>; 666 interrupts = <0 99 4>;
652 dma-mask = <0xffffffff>; 667 dma-mask = <0xffffffff>;
653 clocks = <&nand_clk>; 668 clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
669 clock-names = "nand", "nand_x", "ecc";
654 status = "disabled"; 670 status = "disabled";
655 }; 671 };
656 672
@@ -760,7 +776,7 @@
760 timer@ffffc600 { 776 timer@ffffc600 {
761 compatible = "arm,cortex-a9-twd-timer"; 777 compatible = "arm,cortex-a9-twd-timer";
762 reg = <0xffffc600 0x100>; 778 reg = <0xffffc600 0x100>;
763 interrupts = <1 13 0xf04>; 779 interrupts = <1 13 0xf01>;
764 clocks = <&mpu_periph_clk>; 780 clocks = <&mpu_periph_clk>;
765 }; 781 };
766 782
@@ -770,6 +786,8 @@
770 reg = <0xffc02700 0x100>; 786 reg = <0xffc02700 0x100>;
771 clocks = <&l4_sp_clk>; 787 clocks = <&l4_sp_clk>;
772 clock-names = "timer"; 788 clock-names = "timer";
789 resets = <&rst SPTIMER0_RESET>;
790 reset-names = "timer";
773 }; 791 };
774 792
775 timer1: timer1@ffc02800 { 793 timer1: timer1@ffc02800 {
@@ -778,6 +796,8 @@
778 reg = <0xffc02800 0x100>; 796 reg = <0xffc02800 0x100>;
779 clocks = <&l4_sp_clk>; 797 clocks = <&l4_sp_clk>;
780 clock-names = "timer"; 798 clock-names = "timer";
799 resets = <&rst SPTIMER1_RESET>;
800 reset-names = "timer";
781 }; 801 };
782 802
783 timer2: timer2@ffd00000 { 803 timer2: timer2@ffd00000 {
@@ -786,6 +806,8 @@
786 reg = <0xffd00000 0x100>; 806 reg = <0xffd00000 0x100>;
787 clocks = <&l4_sys_free_clk>; 807 clocks = <&l4_sys_free_clk>;
788 clock-names = "timer"; 808 clock-names = "timer";
809 resets = <&rst L4SYSTIMER0_RESET>;
810 reset-names = "timer";
789 }; 811 };
790 812
791 timer3: timer3@ffd00100 { 813 timer3: timer3@ffd00100 {
@@ -794,6 +816,8 @@
794 reg = <0xffd01000 0x100>; 816 reg = <0xffd01000 0x100>;
795 clocks = <&l4_sys_free_clk>; 817 clocks = <&l4_sys_free_clk>;
796 clock-names = "timer"; 818 clock-names = "timer";
819 resets = <&rst L4SYSTIMER1_RESET>;
820 reset-names = "timer";
797 }; 821 };
798 822
799 uart0: serial0@ffc02000 { 823 uart0: serial0@ffc02000 {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts b/arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts
index b280e6494193..31b01a998b2e 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_de0_sockit.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_de0_nano_soc.dts
@@ -88,7 +88,7 @@
88 status = "okay"; 88 status = "okay";
89 clock-frequency = <100000>; 89 clock-frequency = <100000>;
90 90
91 adxl345: adxl345@0 { 91 adxl345: adxl345@53 {
92 compatible = "adi,adxl345"; 92 compatible = "adi,adxl345";
93 reg = <0x53>; 93 reg = <0x53>;
94 94
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts b/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
index 53bf99eef66d..031c721441ff 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_socrates.dts
@@ -21,8 +21,13 @@
21 model = "EBV SOCrates"; 21 model = "EBV SOCrates";
22 compatible = "ebv,socrates", "altr,socfpga-cyclone5", "altr,socfpga"; 22 compatible = "ebv,socrates", "altr,socfpga-cyclone5", "altr,socfpga";
23 23
24 aliases {
25 ethernet0 = &gmac1;
26 };
27
24 chosen { 28 chosen {
25 bootargs = "console=ttyS0,115200"; 29 bootargs = "earlyprintk";
30 stdout-path = "serial0:115200n8";
26 }; 31 };
27 32
28 memory@0 { 33 memory@0 {
diff --git a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
index f50b19447de6..e61efe16e79c 100644
--- a/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
+++ b/arch/arm/boot/dts/socfpga_cyclone5_vining_fpga.dts
@@ -54,7 +54,8 @@
54 compatible = "samtec,vining", "altr,socfpga-cyclone5", "altr,socfpga"; 54 compatible = "samtec,vining", "altr,socfpga-cyclone5", "altr,socfpga";
55 55
56 chosen { 56 chosen {
57 bootargs = "console=ttyS0,115200"; 57 bootargs = "earlyprintk";
58 stdout-path = "serial0:115200n8";
58 }; 59 };
59 60
60 memory@0 { 61 memory@0 {
diff --git a/arch/arm/boot/dts/ste-dbx5x0.dtsi b/arch/arm/boot/dts/ste-dbx5x0.dtsi
index 2310a4e97768..e6ed7c0354a2 100644
--- a/arch/arm/boot/dts/ste-dbx5x0.dtsi
+++ b/arch/arm/boot/dts/ste-dbx5x0.dtsi
@@ -15,9 +15,14 @@
15#include <dt-bindings/arm/ux500_pm_domains.h> 15#include <dt-bindings/arm/ux500_pm_domains.h>
16#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/clock/ste-ab8500.h> 17#include <dt-bindings/clock/ste-ab8500.h>
18#include "skeleton.dtsi"
19 18
20/ { 19/ {
20 #address-cells = <1>;
21 #size-cells = <1>;
22
23 chosen {
24 };
25
21 cpus { 26 cpus {
22 #address-cells = <1>; 27 #address-cells = <1>;
23 #size-cells = <0>; 28 #size-cells = <0>;
@@ -67,9 +72,11 @@
67 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 72 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
68 clock-names = "apb_pclk", "atclk"; 73 clock-names = "apb_pclk", "atclk";
69 cpu = <&CPU0>; 74 cpu = <&CPU0>;
70 port { 75 out-ports {
71 ptm0_out_port: endpoint { 76 port {
72 remote-endpoint = <&funnel_in_port0>; 77 ptm0_out_port: endpoint {
78 remote-endpoint = <&funnel_in_port0>;
79 };
73 }; 80 };
74 }; 81 };
75 }; 82 };
@@ -81,9 +88,11 @@
81 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 88 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
82 clock-names = "apb_pclk", "atclk"; 89 clock-names = "apb_pclk", "atclk";
83 cpu = <&CPU1>; 90 cpu = <&CPU1>;
84 port { 91 out-ports {
85 ptm1_out_port: endpoint { 92 port {
86 remote-endpoint = <&funnel_in_port1>; 93 ptm1_out_port: endpoint {
94 remote-endpoint = <&funnel_in_port1>;
95 };
87 }; 96 };
88 }; 97 };
89 }; 98 };
@@ -94,32 +103,29 @@
94 103
95 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 104 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
96 clock-names = "apb_pclk", "atclk"; 105 clock-names = "apb_pclk", "atclk";
97 ports { 106 out-ports {
98 #address-cells = <1>; 107 port {
99 #size-cells = <0>;
100
101 /* funnel output ports */
102 port@0 {
103 reg = <0>;
104 funnel_out_port: endpoint { 108 funnel_out_port: endpoint {
105 remote-endpoint = 109 remote-endpoint =
106 <&replicator_in_port0>; 110 <&replicator_in_port0>;
107 }; 111 };
108 }; 112 };
113 };
109 114
110 /* funnel input ports */ 115 in-ports {
111 port@1 { 116 #address-cells = <1>;
117 #size-cells = <0>;
118
119 port@0 {
112 reg = <0>; 120 reg = <0>;
113 funnel_in_port0: endpoint { 121 funnel_in_port0: endpoint {
114 slave-mode;
115 remote-endpoint = <&ptm0_out_port>; 122 remote-endpoint = <&ptm0_out_port>;
116 }; 123 };
117 }; 124 };
118 125
119 port@2 { 126 port@1 {
120 reg = <1>; 127 reg = <1>;
121 funnel_in_port1: endpoint { 128 funnel_in_port1: endpoint {
122 slave-mode;
123 remote-endpoint = <&ptm1_out_port>; 129 remote-endpoint = <&ptm1_out_port>;
124 }; 130 };
125 }; 131 };
@@ -131,11 +137,10 @@
131 clocks = <&prcmu_clk PRCMU_APEATCLK>; 137 clocks = <&prcmu_clk PRCMU_APEATCLK>;
132 clock-names = "atclk"; 138 clock-names = "atclk";
133 139
134 ports { 140 out-ports {
135 #address-cells = <1>; 141 #address-cells = <1>;
136 #size-cells = <0>; 142 #size-cells = <0>;
137 143
138 /* replicator output ports */
139 port@0 { 144 port@0 {
140 reg = <0>; 145 reg = <0>;
141 replicator_out_port0: endpoint { 146 replicator_out_port0: endpoint {
@@ -148,12 +153,11 @@
148 remote-endpoint = <&etb_in_port>; 153 remote-endpoint = <&etb_in_port>;
149 }; 154 };
150 }; 155 };
156 };
151 157
152 /* replicator input port */ 158 in-ports {
153 port@2 { 159 port {
154 reg = <0>;
155 replicator_in_port0: endpoint { 160 replicator_in_port0: endpoint {
156 slave-mode;
157 remote-endpoint = <&funnel_out_port>; 161 remote-endpoint = <&funnel_out_port>;
158 }; 162 };
159 }; 163 };
@@ -166,10 +170,11 @@
166 170
167 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 171 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
168 clock-names = "apb_pclk", "atclk"; 172 clock-names = "apb_pclk", "atclk";
169 port { 173 in-ports {
170 tpiu_in_port: endpoint { 174 port {
171 slave-mode; 175 tpiu_in_port: endpoint {
172 remote-endpoint = <&replicator_out_port0>; 176 remote-endpoint = <&replicator_out_port0>;
177 };
173 }; 178 };
174 }; 179 };
175 }; 180 };
@@ -180,10 +185,11 @@
180 185
181 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>; 186 clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
182 clock-names = "apb_pclk", "atclk"; 187 clock-names = "apb_pclk", "atclk";
183 port { 188 in-ports {
184 etb_in_port: endpoint { 189 port {
185 slave-mode; 190 etb_in_port: endpoint {
186 remote-endpoint = <&replicator_out_port1>; 191 remote-endpoint = <&replicator_out_port1>;
192 };
187 }; 193 };
188 }; 194 };
189 }; 195 };
@@ -197,7 +203,7 @@
197 <0xa0410100 0x100>; 203 <0xa0410100 0x100>;
198 }; 204 };
199 205
200 scu@a04100000 { 206 scu@a0410000 {
201 compatible = "arm,cortex-a9-scu"; 207 compatible = "arm,cortex-a9-scu";
202 reg = <0xa0410000 0x100>; 208 reg = <0xa0410000 0x100>;
203 }; 209 };
@@ -487,7 +493,7 @@
487 }; 493 };
488 494
489 prcmu: prcmu@80157000 { 495 prcmu: prcmu@80157000 {
490 compatible = "stericsson,db8500-prcmu"; 496 compatible = "stericsson,db8500-prcmu", "syscon";
491 reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>; 497 reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
492 reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm"; 498 reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
493 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 499 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
@@ -878,7 +884,7 @@
878 power-domains = <&pm_domains DOMAIN_VAPE>; 884 power-domains = <&pm_domains DOMAIN_VAPE>;
879 }; 885 };
880 886
881 ssp@80002000 { 887 spi@80002000 {
882 compatible = "arm,pl022", "arm,primecell"; 888 compatible = "arm,pl022", "arm,primecell";
883 reg = <0x80002000 0x1000>; 889 reg = <0x80002000 0x1000>;
884 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 890 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
@@ -892,7 +898,7 @@
892 power-domains = <&pm_domains DOMAIN_VAPE>; 898 power-domains = <&pm_domains DOMAIN_VAPE>;
893 }; 899 };
894 900
895 ssp@80003000 { 901 spi@80003000 {
896 compatible = "arm,pl022", "arm,primecell"; 902 compatible = "arm,pl022", "arm,primecell";
897 reg = <0x80003000 0x1000>; 903 reg = <0x80003000 0x1000>;
898 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; 904 interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
index 5c5cea232743..1ec193b0c506 100644
--- a/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
+++ b/arch/arm/boot/dts/ste-href-family-pinctrl.dtsi
@@ -607,16 +607,20 @@
607 607
608 mcde { 608 mcde {
609 lcd_default_mode: lcd_default { 609 lcd_default_mode: lcd_default {
610 default_mux { 610 default_mux1 {
611 /* Mux in VSI0 and all the data lines */ 611 /* Mux in VSI0 and all the data lines */
612 function = "lcd"; 612 function = "lcd";
613 groups = 613 groups =
614 "lcdvsi0_a_1", /* VSI0 for LCD */ 614 "lcdvsi0_a_1", /* VSI0 for LCD */
615 "lcd_d0_d7_a_1", /* Data lines */ 615 "lcd_d0_d7_a_1", /* Data lines */
616 "lcd_d8_d11_a_1", /* TV-out */ 616 "lcd_d8_d11_a_1", /* TV-out */
617 "lcdaclk_b_1", /* Clock line for TV-out */
618 "lcdvsi1_a_1"; /* VSI1 for HDMI */ 617 "lcdvsi1_a_1"; /* VSI1 for HDMI */
619 }; 618 };
619 default_mux2 {
620 function = "lcda";
621 groups =
622 "lcdaclk_b_1"; /* Clock line for TV-out */
623 };
620 default_cfg1 { 624 default_cfg1 {
621 pins = 625 pins =
622 "GPIO68_E1", /* VSI0 */ 626 "GPIO68_E1", /* VSI0 */
diff --git a/arch/arm/boot/dts/ste-href.dtsi b/arch/arm/boot/dts/ste-href.dtsi
index 9e359e4f342e..feb682a3d363 100644
--- a/arch/arm/boot/dts/ste-href.dtsi
+++ b/arch/arm/boot/dts/ste-href.dtsi
@@ -15,6 +15,7 @@
15 15
16/ { 16/ {
17 memory { 17 memory {
18 device_type = "memory";
18 reg = <0x00000000 0x20000000>; 19 reg = <0x00000000 0x20000000>;
19 }; 20 };
20 21
diff --git a/arch/arm/boot/dts/ste-hrefprev60.dtsi b/arch/arm/boot/dts/ste-hrefprev60.dtsi
index 3f14b4df69b4..94eeb7f1c947 100644
--- a/arch/arm/boot/dts/ste-hrefprev60.dtsi
+++ b/arch/arm/boot/dts/ste-hrefprev60.dtsi
@@ -57,7 +57,7 @@
57 }; 57 };
58 }; 58 };
59 59
60 ssp@80002000 { 60 spi@80002000 {
61 /* 61 /*
62 * On the first generation boards, this SSP/SPI port was connected 62 * On the first generation boards, this SSP/SPI port was connected
63 * to the AB8500. 63 * to the AB8500.
diff --git a/arch/arm/boot/dts/ste-snowball.dts b/arch/arm/boot/dts/ste-snowball.dts
index b0b94d053098..2de3ce79e496 100644
--- a/arch/arm/boot/dts/ste-snowball.dts
+++ b/arch/arm/boot/dts/ste-snowball.dts
@@ -26,6 +26,7 @@
26 }; 26 };
27 27
28 memory { 28 memory {
29 device_type = "memory";
29 reg = <0x00000000 0x20000000>; 30 reg = <0x00000000 0x20000000>;
30 }; 31 };
31 32
@@ -376,7 +377,7 @@
376 pinctrl-1 = <&i2c3_sleep_mode>; 377 pinctrl-1 = <&i2c3_sleep_mode>;
377 }; 378 };
378 379
379 ssp@80002000 { 380 spi@80002000 {
380 pinctrl-names = "default"; 381 pinctrl-names = "default";
381 pinctrl-0 = <&ssp0_snowball_mode>; 382 pinctrl-0 = <&ssp0_snowball_mode>;
382 }; 383 };
diff --git a/arch/arm/boot/dts/ste-u300.dts b/arch/arm/boot/dts/ste-u300.dts
index 62ecb6a2fa39..1bd1aba3322f 100644
--- a/arch/arm/boot/dts/ste-u300.dts
+++ b/arch/arm/boot/dts/ste-u300.dts
@@ -442,7 +442,7 @@
442 dma-names = "rx"; 442 dma-names = "rx";
443 }; 443 };
444 444
445 spi: ssp@c0006000 { 445 spi: spi@c0006000 {
446 compatible = "arm,pl022", "arm,primecell"; 446 compatible = "arm,pl022", "arm,primecell";
447 reg = <0xc0006000 0x1000>; 447 reg = <0xc0006000 0x1000>;
448 interrupt-parent = <&vica>; 448 interrupt-parent = <&vica>;
diff --git a/arch/arm/boot/dts/stih410-b2260.dts b/arch/arm/boot/dts/stih410-b2260.dts
index 155caa8c002a..4ee6d51d8d1e 100644
--- a/arch/arm/boot/dts/stih410-b2260.dts
+++ b/arch/arm/boot/dts/stih410-b2260.dts
@@ -61,8 +61,11 @@
61 compatible = "simple-audio-card"; 61 compatible = "simple-audio-card";
62 simple-audio-card,name = "STI-B2260"; 62 simple-audio-card,name = "STI-B2260";
63 status = "okay"; 63 status = "okay";
64 #address-cells = <1>;
65 #size-cells = <0>;
64 66
65 simple-audio-card,dai-link0 { 67 simple-audio-card,dai-link@0 {
68 reg = <0>;
66 /* DAC */ 69 /* DAC */
67 format = "i2s"; 70 format = "i2s";
68 mclk-fs = <128>; 71 mclk-fs = <128>;
diff --git a/arch/arm/boot/dts/stihxxx-b2120.dtsi b/arch/arm/boot/dts/stihxxx-b2120.dtsi
index 4dedfcb0fcb3..97e05f55fb6e 100644
--- a/arch/arm/boot/dts/stihxxx-b2120.dtsi
+++ b/arch/arm/boot/dts/stihxxx-b2120.dtsi
@@ -27,8 +27,11 @@
27 compatible = "simple-audio-card"; 27 compatible = "simple-audio-card";
28 simple-audio-card,name = "STI-B2120"; 28 simple-audio-card,name = "STI-B2120";
29 status = "okay"; 29 status = "okay";
30 #address-cells = <1>;
31 #size-cells = <0>;
30 32
31 simple-audio-card,dai-link0 { 33 simple-audio-card,dai-link@0 {
34 reg = <0>;
32 /* HDMI */ 35 /* HDMI */
33 format = "i2s"; 36 format = "i2s";
34 mclk-fs = <128>; 37 mclk-fs = <128>;
@@ -41,7 +44,8 @@
41 }; 44 };
42 }; 45 };
43 46
44 simple-audio-card,dai-link1 { 47 simple-audio-card,dai-link@1 {
48 reg = <1>;
45 /* DAC */ 49 /* DAC */
46 format = "i2s"; 50 format = "i2s";
47 mclk-fs = <256>; 51 mclk-fs = <256>;
@@ -55,7 +59,8 @@
55 }; 59 };
56 }; 60 };
57 61
58 simple-audio-card,dai-link2 { 62 simple-audio-card,dai-link@2 {
63 reg = <2>;
59 /* SPDIF */ 64 /* SPDIF */
60 format = "left_j"; 65 format = "left_j";
61 mclk-fs = <128>; 66 mclk-fs = <128>;
diff --git a/arch/arm/boot/dts/stm32429i-eval.dts b/arch/arm/boot/dts/stm32429i-eval.dts
index 7eb786a2d624..ed7d7f46465e 100644
--- a/arch/arm/boot/dts/stm32429i-eval.dts
+++ b/arch/arm/boot/dts/stm32429i-eval.dts
@@ -264,8 +264,7 @@
264&sdio { 264&sdio {
265 status = "okay"; 265 status = "okay";
266 vmmc-supply = <&mmc_vcard>; 266 vmmc-supply = <&mmc_vcard>;
267 cd-gpios = <&stmpegpio 15 GPIO_ACTIVE_HIGH>; 267 cd-gpios = <&stmpegpio 15 GPIO_ACTIVE_LOW>;
268 cd-inverted;
269 pinctrl-names = "default", "opendrain"; 268 pinctrl-names = "default", "opendrain";
270 pinctrl-0 = <&sdio_pins>; 269 pinctrl-0 = <&sdio_pins>;
271 pinctrl-1 = <&sdio_pins_od>; 270 pinctrl-1 = <&sdio_pins_od>;
diff --git a/arch/arm/boot/dts/stm32f429.dtsi b/arch/arm/boot/dts/stm32f429.dtsi
index e35d782e7e5f..8d6f028ae285 100644
--- a/arch/arm/boot/dts/stm32f429.dtsi
+++ b/arch/arm/boot/dts/stm32f429.dtsi
@@ -58,7 +58,7 @@
58 clock-frequency = <0>; 58 clock-frequency = <0>;
59 }; 59 };
60 60
61 clk-lse { 61 clk_lse: clk-lse {
62 #clock-cells = <0>; 62 #clock-cells = <0>;
63 compatible = "fixed-clock"; 63 compatible = "fixed-clock";
64 clock-frequency = <32768>; 64 clock-frequency = <32768>;
diff --git a/arch/arm/boot/dts/stm32f469-disco.dts b/arch/arm/boot/dts/stm32f469-disco.dts
index 3ee768cb86fc..7937b43d7788 100644
--- a/arch/arm/boot/dts/stm32f469-disco.dts
+++ b/arch/arm/boot/dts/stm32f469-disco.dts
@@ -210,8 +210,7 @@
210&sdio { 210&sdio {
211 status = "okay"; 211 status = "okay";
212 vmmc-supply = <&mmc_vcard>; 212 vmmc-supply = <&mmc_vcard>;
213 cd-gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>; 213 cd-gpios = <&gpiog 2 GPIO_ACTIVE_LOW>;
214 cd-inverted;
215 broken-cd; 214 broken-cd;
216 pinctrl-names = "default", "opendrain"; 215 pinctrl-names = "default", "opendrain";
217 pinctrl-0 = <&sdio_pins>; 216 pinctrl-0 = <&sdio_pins>;
diff --git a/arch/arm/boot/dts/stm32f746-disco.dts b/arch/arm/boot/dts/stm32f746-disco.dts
index f9ad71f7c807..e3a7bd338d61 100644
--- a/arch/arm/boot/dts/stm32f746-disco.dts
+++ b/arch/arm/boot/dts/stm32f746-disco.dts
@@ -101,8 +101,7 @@
101&sdio1 { 101&sdio1 {
102 status = "okay"; 102 status = "okay";
103 vmmc-supply = <&mmc_vcard>; 103 vmmc-supply = <&mmc_vcard>;
104 cd-gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; 104 cd-gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
105 cd-inverted;
106 pinctrl-names = "default", "opendrain"; 105 pinctrl-names = "default", "opendrain";
107 pinctrl-0 = <&sdio_pins_a>; 106 pinctrl-0 = <&sdio_pins_a>;
108 pinctrl-1 = <&sdio_pins_od_a>; 107 pinctrl-1 = <&sdio_pins_od_a>;
diff --git a/arch/arm/boot/dts/stm32f769-disco.dts b/arch/arm/boot/dts/stm32f769-disco.dts
index 677276ba4dbe..483d896e2bc1 100644
--- a/arch/arm/boot/dts/stm32f769-disco.dts
+++ b/arch/arm/boot/dts/stm32f769-disco.dts
@@ -126,8 +126,7 @@
126&sdio2 { 126&sdio2 {
127 status = "okay"; 127 status = "okay";
128 vmmc-supply = <&mmc_vcard>; 128 vmmc-supply = <&mmc_vcard>;
129 cd-gpios = <&gpioi 15 GPIO_ACTIVE_HIGH>; 129 cd-gpios = <&gpioi 15 GPIO_ACTIVE_LOW>;
130 cd-inverted;
131 broken-cd; 130 broken-cd;
132 pinctrl-names = "default", "opendrain"; 131 pinctrl-names = "default", "opendrain";
133 pinctrl-0 = <&sdio_pins_b>; 132 pinctrl-0 = <&sdio_pins_b>;
diff --git a/arch/arm/boot/dts/stm32h743.dtsi b/arch/arm/boot/dts/stm32h743.dtsi
index 637beffe5067..cbdd69ca9e7a 100644
--- a/arch/arm/boot/dts/stm32h743.dtsi
+++ b/arch/arm/boot/dts/stm32h743.dtsi
@@ -472,7 +472,7 @@
472 interrupt-parent = <&exti>; 472 interrupt-parent = <&exti>;
473 interrupts = <17 IRQ_TYPE_EDGE_RISING>; 473 interrupts = <17 IRQ_TYPE_EDGE_RISING>;
474 interrupt-names = "alarm"; 474 interrupt-names = "alarm";
475 st,syscfg = <&pwrcfg>; 475 st,syscfg = <&pwrcfg 0x00 0x100>;
476 status = "disabled"; 476 status = "disabled";
477 }; 477 };
478 478
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1.dts b/arch/arm/boot/dts/stm32mp157c-ev1.dts
index 372bc2ea6b92..063ee8ac5dcb 100644
--- a/arch/arm/boot/dts/stm32mp157c-ev1.dts
+++ b/arch/arm/boot/dts/stm32mp157c-ev1.dts
@@ -6,6 +6,7 @@
6/dts-v1/; 6/dts-v1/;
7 7
8#include "stm32mp157c-ed1.dts" 8#include "stm32mp157c-ed1.dts"
9#include <dt-bindings/gpio/gpio.h>
9 10
10/ { 11/ {
11 model = "STMicroelectronics STM32MP157C eval daughter on eval mother"; 12 model = "STMicroelectronics STM32MP157C eval daughter on eval mother";
@@ -19,6 +20,58 @@
19 serial0 = &uart4; 20 serial0 = &uart4;
20 ethernet0 = &ethernet0; 21 ethernet0 = &ethernet0;
21 }; 22 };
23
24 panel_backlight: panel-backlight {
25 compatible = "gpio-backlight";
26 gpios = <&gpiod 13 GPIO_ACTIVE_LOW>;
27 default-on;
28 status = "okay";
29 };
30};
31
32&cec {
33 pinctrl-names = "default";
34 pinctrl-0 = <&cec_pins_a>;
35 status = "okay";
36};
37
38&dsi {
39 #address-cells = <1>;
40 #size-cells = <0>;
41 status = "okay";
42
43 ports {
44 #address-cells = <1>;
45 #size-cells = <0>;
46
47 port@0 {
48 reg = <0>;
49 dsi_in: endpoint {
50 remote-endpoint = <&ltdc_ep0_out>;
51 };
52 };
53
54 port@1 {
55 reg = <1>;
56 dsi_out: endpoint {
57 remote-endpoint = <&dsi_panel_in>;
58 };
59 };
60 };
61
62 panel-dsi@0 {
63 compatible = "raydium,rm68200";
64 reg = <0>;
65 reset-gpios = <&gpiof 15 GPIO_ACTIVE_LOW>;
66 backlight = <&panel_backlight>;
67 status = "okay";
68
69 port {
70 dsi_panel_in: endpoint {
71 remote-endpoint = <&dsi_out>;
72 };
73 };
74 };
22}; 75};
23 76
24&ethernet0 { 77&ethernet0 {
@@ -40,12 +93,6 @@
40 }; 93 };
41}; 94};
42 95
43&cec {
44 pinctrl-names = "default";
45 pinctrl-0 = <&cec_pins_a>;
46 status = "okay";
47};
48
49&i2c2 { 96&i2c2 {
50 pinctrl-names = "default"; 97 pinctrl-names = "default";
51 pinctrl-0 = <&i2c2_pins_a>; 98 pinctrl-0 = <&i2c2_pins_a>;
@@ -62,6 +109,20 @@
62 status = "okay"; 109 status = "okay";
63}; 110};
64 111
112&ltdc {
113 status = "okay";
114
115 port {
116 #address-cells = <1>;
117 #size-cells = <0>;
118
119 ltdc_ep0_out: endpoint@0 {
120 reg = <0>;
121 remote-endpoint = <&dsi_in>;
122 };
123 };
124};
125
65&m_can1 { 126&m_can1 {
66 pinctrl-names = "default"; 127 pinctrl-names = "default";
67 pinctrl-0 = <&m_can1_pins_a>; 128 pinctrl-0 = <&m_can1_pins_a>;
diff --git a/arch/arm/boot/dts/stm32mp157c.dtsi b/arch/arm/boot/dts/stm32mp157c.dtsi
index 185541a5b69f..c50c36baba75 100644
--- a/arch/arm/boot/dts/stm32mp157c.dtsi
+++ b/arch/arm/boot/dts/stm32mp157c.dtsi
@@ -947,7 +947,7 @@
947 dma-requests = <48>; 947 dma-requests = <48>;
948 }; 948 };
949 949
950 qspi: qspi@58003000 { 950 qspi: spi@58003000 {
951 compatible = "st,stm32f469-qspi"; 951 compatible = "st,stm32f469-qspi";
952 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>; 952 reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
953 reg-names = "qspi", "qspi_mm"; 953 reg-names = "qspi", "qspi_mm";
diff --git a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
index 8acbaab14fe5..d2a2eb8b3f26 100644
--- a/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi
@@ -92,7 +92,8 @@
92 */ 92 */
93 clock-frequency = <400000>; 93 clock-frequency = <400000>;
94 94
95 touchscreen: touchscreen { 95 touchscreen: touchscreen@40 {
96 reg = <0x40>;
96 interrupt-parent = <&pio>; 97 interrupt-parent = <&pio>;
97 interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /* EINT11 (PG11) */ 98 interrupts = <6 11 IRQ_TYPE_EDGE_FALLING>; /* EINT11 (PG11) */
98 pinctrl-names = "default"; 99 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/sun5i.dtsi b/arch/arm/boot/dts/sun5i.dtsi
index 8bfb36651177..9cd65c46720b 100644
--- a/arch/arm/boot/dts/sun5i.dtsi
+++ b/arch/arm/boot/dts/sun5i.dtsi
@@ -108,6 +108,21 @@
108 }; 108 };
109 }; 109 };
110 110
111 reserved-memory {
112 #address-cells = <1>;
113 #size-cells = <1>;
114 ranges;
115
116 /* Address must be kept in the lower 256 MiBs of DRAM for VE. */
117 cma_pool: cma@4a000000 {
118 compatible = "shared-dma-pool";
119 size = <0x6000000>;
120 alloc-ranges = <0x4a000000 0x6000000>;
121 reusable;
122 linux,cma-default;
123 };
124 };
125
111 soc@1c00000 { 126 soc@1c00000 {
112 compatible = "simple-bus"; 127 compatible = "simple-bus";
113 #address-cells = <1>; 128 #address-cells = <1>;
@@ -294,6 +309,17 @@
294 }; 309 };
295 }; 310 };
296 311
312 video-codec@1c0e000 {
313 compatible = "allwinner,sun5i-a13-video-engine";
314 reg = <0x01c0e000 0x1000>;
315 clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
316 <&ccu CLK_DRAM_VE>;
317 clock-names = "ahb", "mod", "ram";
318 resets = <&ccu RST_VE>;
319 interrupts = <53>;
320 allwinner,sram = <&ve_sram 1>;
321 };
322
297 mmc0: mmc@1c0f000 { 323 mmc0: mmc@1c0f000 {
298 compatible = "allwinner,sun5i-a13-mmc"; 324 compatible = "allwinner,sun5i-a13-mmc";
299 reg = <0x01c0f000 0x1000>; 325 reg = <0x01c0f000 0x1000>;
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
index 9c52712af241..02e40da9f028 100644
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
@@ -174,6 +174,21 @@
174 reg = <0x40000000 0x80000000>; 174 reg = <0x40000000 0x80000000>;
175 }; 175 };
176 176
177 reserved-memory {
178 #address-cells = <1>;
179 #size-cells = <1>;
180 ranges;
181
182 /* Address must be kept in the lower 256 MiBs of DRAM for VE. */
183 cma_pool: cma@4a000000 {
184 compatible = "shared-dma-pool";
185 size = <0x6000000>;
186 alloc-ranges = <0x4a000000 0x6000000>;
187 reusable;
188 linux,cma-default;
189 };
190 };
191
177 timer { 192 timer {
178 compatible = "arm,armv7-timer"; 193 compatible = "arm,armv7-timer";
179 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, 194 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -479,6 +494,17 @@
479 }; 494 };
480 }; 495 };
481 496
497 video-codec@1c0e000 {
498 compatible = "allwinner,sun7i-a20-video-engine";
499 reg = <0x01c0e000 0x1000>;
500 clocks = <&ccu CLK_AHB_VE>, <&ccu CLK_VE>,
501 <&ccu CLK_DRAM_VE>;
502 clock-names = "ahb", "mod", "ram";
503 resets = <&ccu RST_VE>;
504 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
505 allwinner,sram = <&ve_sram 1>;
506 };
507
482 mmc0: mmc@1c0f000 { 508 mmc0: mmc@1c0f000 {
483 compatible = "allwinner,sun7i-a20-mmc"; 509 compatible = "allwinner,sun7i-a20-mmc";
484 reg = <0x01c0f000 0x1000>; 510 reg = <0x01c0f000 0x1000>;
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 4e92741b24a7..c1cc8f09dd9a 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -190,6 +190,21 @@
190 reg = <0x40000000 0x80000000>; 190 reg = <0x40000000 0x80000000>;
191 }; 191 };
192 192
193 reserved-memory {
194 #address-cells = <1>;
195 #size-cells = <1>;
196 ranges;
197
198 /* Address must be kept in the lower 256 MiBs of DRAM for VE. */
199 cma_pool: cma@4a000000 {
200 compatible = "shared-dma-pool";
201 size = <0x6000000>;
202 alloc-ranges = <0x4a000000 0x6000000>;
203 reusable;
204 linux,cma-default;
205 };
206 };
207
193 sound: sound { 208 sound: sound {
194 compatible = "simple-audio-card"; 209 compatible = "simple-audio-card";
195 simple-audio-card,name = "sun8i-a33-audio"; 210 simple-audio-card,name = "sun8i-a33-audio";
@@ -254,6 +269,17 @@
254 }; 269 };
255 }; 270 };
256 271
272 video-codec@01c0e000 {
273 compatible = "allwinner,sun8i-a33-video-engine";
274 reg = <0x01c0e000 0x1000>;
275 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
276 <&ccu CLK_DRAM_VE>;
277 clock-names = "ahb", "mod", "ram";
278 resets = <&ccu RST_BUS_VE>;
279 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
280 allwinner,sram = <&ve_sram 1>;
281 };
282
257 crypto: crypto-engine@1c15000 { 283 crypto: crypto-engine@1c15000 {
258 compatible = "allwinner,sun4i-a10-crypto"; 284 compatible = "allwinner,sun4i-a10-crypto";
259 reg = <0x01c15000 0x1000>; 285 reg = <0x01c15000 0x1000>;
diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
index c7ce4158d6c8..742d2946b08b 100644
--- a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
+++ b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
@@ -191,6 +191,11 @@
191 status = "okay"; 191 status = "okay";
192}; 192};
193 193
194&r_cir {
195 clock-frequency = <3000000>;
196 status = "okay";
197};
198
194&r_rsb { 199&r_rsb {
195 status = "okay"; 200 status = "okay";
196 201
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index 00a02b037320..5617dd387fd3 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -990,6 +990,19 @@
990 reg = <0x1f01c00 0x400>; 990 reg = <0x1f01c00 0x400>;
991 }; 991 };
992 992
993 r_cir: ir@1f02000 {
994 compatible = "allwinner,sun8i-a83t-ir",
995 "allwinner,sun5i-a13-ir";
996 clocks = <&r_ccu CLK_APB0_IR>, <&r_ccu CLK_IR>;
997 clock-names = "apb", "ir";
998 resets = <&r_ccu RST_APB0_IR>;
999 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1000 reg = <0x01f02000 0x400>;
1001 pinctrl-names = "default";
1002 pinctrl-0 = <&r_cir_pin>;
1003 status = "disabled";
1004 };
1005
993 r_pio: pinctrl@1f02c00 { 1006 r_pio: pinctrl@1f02c00 {
994 compatible = "allwinner,sun8i-a83t-r-pinctrl"; 1007 compatible = "allwinner,sun8i-a83t-r-pinctrl";
995 reg = <0x01f02c00 0x400>; 1008 reg = <0x01f02c00 0x400>;
@@ -1002,6 +1015,11 @@
1002 interrupt-controller; 1015 interrupt-controller;
1003 #interrupt-cells = <3>; 1016 #interrupt-cells = <3>;
1004 1017
1018 r_cir_pin: r-cir-pin {
1019 pins = "PL12";
1020 function = "s_cir_rx";
1021 };
1022
1005 r_rsb_pins: r-rsb-pins { 1023 r_rsb_pins: r-rsb-pins {
1006 pins = "PL0", "PL1"; 1024 pins = "PL0", "PL1";
1007 function = "s_rsb"; 1025 function = "s_rsb";
diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus-v1.2.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus-v1.2.dts
new file mode 100644
index 000000000000..fc4a8c3d084d
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus-v1.2.dts
@@ -0,0 +1,13 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2018 Chen-Yu Tsai <wens@csie.org>
4 */
5
6/dts-v1/;
7#include "sun8i-h3.dtsi"
8#include "sunxi-bananapi-m2-plus-v1.2.dtsi"
9
10/ {
11 model = "Banana Pi BPI-M2-Plus v1.2 H3";
12 compatible = "bananapi,bpi-m2-plus-v1.2", "allwinner,sun8i-h3";
13};
diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
index 30540dc8e0c5..195a75da13f1 100644
--- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -42,195 +42,9 @@
42 42
43/dts-v1/; 43/dts-v1/;
44#include "sun8i-h3.dtsi" 44#include "sun8i-h3.dtsi"
45#include "sunxi-common-regulators.dtsi" 45#include "sunxi-bananapi-m2-plus.dtsi"
46
47#include <dt-bindings/gpio/gpio.h>
48#include <dt-bindings/input/input.h>
49 46
50/ { 47/ {
51 model = "Banana Pi BPI-M2-Plus"; 48 model = "Banana Pi BPI-M2-Plus H3";
52 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun8i-h3"; 49 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun8i-h3";
53
54 aliases {
55 ethernet0 = &emac;
56 serial0 = &uart0;
57 serial1 = &uart1;
58 };
59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
64 connector {
65 compatible = "hdmi-connector";
66 type = "a";
67
68 port {
69 hdmi_con_in: endpoint {
70 remote-endpoint = <&hdmi_out_con>;
71 };
72 };
73 };
74
75 leds {
76 compatible = "gpio-leds";
77 pinctrl-names = "default";
78
79 pwr_led {
80 label = "bananapi-m2-plus:red:pwr";
81 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
82 default-state = "on";
83 };
84 };
85
86 gpio_keys {
87 compatible = "gpio-keys";
88 pinctrl-names = "default";
89
90 sw4 {
91 label = "power";
92 linux,code = <BTN_0>;
93 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
94 };
95 };
96
97 reg_gmac_3v3: gmac-3v3 {
98 compatible = "regulator-fixed";
99 regulator-name = "gmac-3v3";
100 regulator-min-microvolt = <3300000>;
101 regulator-max-microvolt = <3300000>;
102 startup-delay-us = <100000>;
103 enable-active-high;
104 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
105 };
106
107 wifi_pwrseq: wifi_pwrseq {
108 compatible = "mmc-pwrseq-simple";
109 pinctrl-names = "default";
110 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
111 };
112};
113
114&de {
115 status = "okay";
116};
117
118&ehci0 {
119 status = "okay";
120};
121
122&ehci1 {
123 status = "okay";
124};
125
126&ehci2 {
127 status = "okay";
128};
129
130&emac {
131 pinctrl-names = "default";
132 pinctrl-0 = <&emac_rgmii_pins>;
133 phy-supply = <&reg_gmac_3v3>;
134 phy-handle = <&ext_rgmii_phy>;
135 phy-mode = "rgmii";
136
137 status = "okay";
138};
139
140&external_mdio {
141 ext_rgmii_phy: ethernet-phy@1 {
142 compatible = "ethernet-phy-ieee802.3-c22";
143 reg = <0>;
144 };
145};
146
147&hdmi {
148 status = "okay";
149};
150
151&hdmi_out {
152 hdmi_out_con: endpoint {
153 remote-endpoint = <&hdmi_con_in>;
154 };
155};
156
157&ir {
158 pinctrl-names = "default";
159 pinctrl-0 = <&ir_pins_a>;
160 status = "okay";
161};
162
163&mmc0 {
164 vmmc-supply = <&reg_vcc3v3>;
165 bus-width = <4>;
166 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
167 status = "okay";
168};
169
170&mmc1 {
171 vmmc-supply = <&reg_vcc3v3>;
172 vqmmc-supply = <&reg_vcc3v3>;
173 mmc-pwrseq = <&wifi_pwrseq>;
174 bus-width = <4>;
175 non-removable;
176 status = "okay";
177
178 brcmf: wifi@1 {
179 reg = <1>;
180 compatible = "brcm,bcm4329-fmac";
181 interrupt-parent = <&pio>;
182 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
183 interrupt-names = "host-wake";
184 };
185};
186
187&mmc2 {
188 pinctrl-names = "default";
189 pinctrl-0 = <&mmc2_8bit_pins>;
190 vmmc-supply = <&reg_vcc3v3>;
191 vqmmc-supply = <&reg_vcc3v3>;
192 bus-width = <8>;
193 non-removable;
194 status = "okay";
195};
196
197&ohci0 {
198 status = "okay";
199};
200
201&ohci1 {
202 status = "okay";
203};
204
205&ohci2 {
206 status = "okay";
207};
208
209&reg_usb0_vbus {
210 gpio = <&pio 3 11 GPIO_ACTIVE_HIGH>; /* PD11 */
211 status = "okay";
212};
213
214&uart0 {
215 pinctrl-names = "default";
216 pinctrl-0 = <&uart0_pins_a>;
217 status = "okay";
218};
219
220&uart1 {
221 pinctrl-names = "default";
222 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
223 status = "okay";
224};
225
226&usb_otg {
227 dr_mode = "otg";
228 status = "okay";
229};
230
231&usbphy {
232 usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
233 usb0_vbus-supply = <&reg_usb0_vbus>;
234 /* USB host VBUS is on as long as VCC-IO is on */
235 status = "okay";
236}; 50};
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts
new file mode 100644
index 000000000000..c834048c325e
--- /dev/null
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-zero-plus2.dts
@@ -0,0 +1,140 @@
1/*
2 * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
3 * Copyright (C) 2018 Diego Rondini <diego.rondini@kynetics.com>
4 *
5 * This file is dual-licensed: you can use it either under the terms
6 * of the GPL or the X11 license, at your option. Note that this dual
7 * licensing only applies to this file, and not this project as a
8 * whole.
9 *
10 * a) This file is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License as
12 * published by the Free Software Foundation; either version 2 of the
13 * License, or (at your option) any later version.
14 *
15 * This file is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * Or, alternatively,
21 *
22 * b) Permission is hereby granted, free of charge, to any person
23 * obtaining a copy of this software and associated documentation
24 * files (the "Software"), to deal in the Software without
25 * restriction, including without limitation the rights to use,
26 * copy, modify, merge, publish, distribute, sublicense, and/or
27 * sell copies of the Software, and to permit persons to whom the
28 * Software is furnished to do so, subject to the following
29 * conditions:
30 *
31 * The above copyright notice and this permission notice shall be
32 * included in all copies or substantial portions of the Software.
33 *
34 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
35 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
36 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
37 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
38 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
39 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
40 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
41 * OTHER DEALINGS IN THE SOFTWARE.
42 */
43
44/dts-v1/;
45
46#include "sun8i-h3.dtsi"
47
48#include <dt-bindings/gpio/gpio.h>
49
50/ {
51 model = "OrangePi Zero Plus2 H3";
52 compatible = "xunlong,orangepi-zero-plus2-h3", "allwinner,sun8i-h3";
53
54 aliases {
55 serial0 = &uart0;
56 };
57
58 chosen {
59 stdout-path = "serial0:115200n8";
60 };
61
62 connector {
63 compatible = "hdmi-connector";
64 type = "a";
65
66 port {
67 hdmi_con_in: endpoint {
68 remote-endpoint = <&hdmi_out_con>;
69 };
70 };
71 };
72
73 reg_vcc3v3: vcc3v3 {
74 compatible = "regulator-fixed";
75 regulator-name = "vcc3v3";
76 regulator-min-microvolt = <3300000>;
77 regulator-max-microvolt = <3300000>;
78 };
79
80 wifi_pwrseq: wifi_pwrseq {
81 compatible = "mmc-pwrseq-simple";
82 pinctrl-names = "default";
83 reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
84 post-power-on-delay-ms = <200>;
85 };
86};
87
88&de {
89 status = "okay";
90};
91
92&hdmi {
93 status = "okay";
94};
95
96&hdmi_out {
97 hdmi_out_con: endpoint {
98 remote-endpoint = <&hdmi_con_in>;
99 };
100};
101
102&mmc0 {
103 vmmc-supply = <&reg_vcc3v3>;
104 bus-width = <4>;
105 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
106 status = "okay";
107};
108
109&mmc1 {
110 vmmc-supply = <&reg_vcc3v3>;
111 vqmmc-supply = <&reg_vcc3v3>;
112 mmc-pwrseq = <&wifi_pwrseq>;
113 bus-width = <4>;
114 non-removable;
115 status = "okay";
116
117 brcmf: wifi@1 {
118 reg = <1>;
119 compatible = "brcm,bcm4329-fmac";
120 interrupt-parent = <&r_pio>;
121 interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */
122 interrupt-names = "host-wake";
123 };
124};
125
126&mmc2 {
127 pinctrl-names = "default";
128 pinctrl-0 = <&mmc2_8bit_pins>;
129 vmmc-supply = <&reg_vcc3v3>;
130 bus-width = <8>;
131 non-removable;
132 cap-mmc-hw-reset;
133 status = "okay";
134};
135
136&uart0 {
137 pinctrl-names = "default";
138 pinctrl-0 = <&uart0_pins_a>;
139 status = "okay";
140};
diff --git a/arch/arm/boot/dts/sun8i-h3.dtsi b/arch/arm/boot/dts/sun8i-h3.dtsi
index f0096074a467..3ecfabb10151 100644
--- a/arch/arm/boot/dts/sun8i-h3.dtsi
+++ b/arch/arm/boot/dts/sun8i-h3.dtsi
@@ -119,6 +119,20 @@
119 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 119 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
120 }; 120 };
121 121
122 reserved-memory {
123 #address-cells = <1>;
124 #size-cells = <1>;
125 ranges;
126
127 cma_pool: cma@4a000000 {
128 compatible = "shared-dma-pool";
129 size = <0x6000000>;
130 alloc-ranges = <0x4a000000 0x6000000>;
131 reusable;
132 linux,cma-default;
133 };
134 };
135
122 soc { 136 soc {
123 system-control@1c00000 { 137 system-control@1c00000 {
124 compatible = "allwinner,sun8i-h3-system-control"; 138 compatible = "allwinner,sun8i-h3-system-control";
@@ -142,6 +156,17 @@
142 }; 156 };
143 }; 157 };
144 158
159 video-codec@01c0e000 {
160 compatible = "allwinner,sun8i-h3-video-engine";
161 reg = <0x01c0e000 0x1000>;
162 clocks = <&ccu CLK_BUS_VE>, <&ccu CLK_VE>,
163 <&ccu CLK_DRAM_VE>;
164 clock-names = "ahb", "mod", "ram";
165 resets = <&ccu RST_BUS_VE>;
166 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
167 allwinner,sram = <&ve_sram 1>;
168 };
169
145 mali: gpu@1c40000 { 170 mali: gpu@1c40000 {
146 compatible = "allwinner,sun8i-h3-mali", "arm,mali-400"; 171 compatible = "allwinner,sun8i-h3-mali", "arm,mali-400";
147 reg = <0x01c40000 0x10000>; 172 reg = <0x01c40000 0x10000>;
diff --git a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
index c39b9169ea64..438b7b44dab3 100644
--- a/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
+++ b/arch/arm/boot/dts/sun8i-r40-bananapi-m2-ultra.dts
@@ -105,6 +105,12 @@
105 }; 105 };
106}; 106};
107 107
108&ahci {
109 ahci-supply = <&reg_dldo4>;
110 phy-supply = <&reg_eldo3>;
111 status = "okay";
112};
113
108&de { 114&de {
109 status = "okay"; 115 status = "okay";
110}; 116};
@@ -159,8 +165,7 @@
159&mmc0 { 165&mmc0 {
160 vmmc-supply = <&reg_dcdc1>; 166 vmmc-supply = <&reg_dcdc1>;
161 bus-width = <4>; 167 bus-width = <4>;
162 cd-gpios = <&pio 7 13 GPIO_ACTIVE_HIGH>; /* PH13 */ 168 cd-gpios = <&pio 7 13 GPIO_ACTIVE_LOW>; /* PH13 */
163 cd-inverted;
164 status = "okay"; 169 status = "okay";
165}; 170};
166 171
@@ -251,6 +256,18 @@
251 regulator-name = "vcc-wifi"; 256 regulator-name = "vcc-wifi";
252}; 257};
253 258
259&reg_dldo4 {
260 regulator-min-microvolt = <2500000>;
261 regulator-max-microvolt = <2500000>;
262 regulator-name = "vdd2v5-sata";
263};
264
265&reg_eldo3 {
266 regulator-min-microvolt = <1200000>;
267 regulator-max-microvolt = <1200000>;
268 regulator-name = "vdd1v2-sata";
269};
270
254&tcon_tv0 { 271&tcon_tv0 {
255 status = "okay"; 272 status = "okay";
256}; 273};
diff --git a/arch/arm/boot/dts/sun8i-r40.dtsi b/arch/arm/boot/dts/sun8i-r40.dtsi
index 5f547c161baf..6f4c9ca5a3ee 100644
--- a/arch/arm/boot/dts/sun8i-r40.dtsi
+++ b/arch/arm/boot/dts/sun8i-r40.dtsi
@@ -529,6 +529,19 @@
529 #size-cells = <0>; 529 #size-cells = <0>;
530 }; 530 };
531 531
532 ahci: sata@1c18000 {
533 compatible = "allwinner,sun8i-r40-ahci";
534 reg = <0x01c18000 0x1000>;
535 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
536 clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
537 resets = <&ccu RST_BUS_SATA>;
538 resets-name = "ahci";
539 #address-cells = <1>;
540 #size-cells = <0>;
541 status = "disabled";
542
543 };
544
532 gmac: ethernet@1c50000 { 545 gmac: ethernet@1c50000 {
533 compatible = "allwinner,sun8i-r40-gmac"; 546 compatible = "allwinner,sun8i-r40-gmac";
534 syscon = <&ccu>; 547 syscon = <&ccu>;
diff --git a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
index 880096c7e252..5e8a95af89b8 100644
--- a/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
+++ b/arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi
@@ -69,7 +69,8 @@
69 */ 69 */
70 clock-frequency = <400000>; 70 clock-frequency = <400000>;
71 71
72 touchscreen: touchscreen@0 { 72 touchscreen: touchscreen@40 {
73 reg = <0x40>;
73 interrupt-parent = <&pio>; 74 interrupt-parent = <&pio>;
74 interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5 */ 75 interrupts = <1 5 IRQ_TYPE_EDGE_FALLING>; /* PB5 */
75 pinctrl-names = "default"; 76 pinctrl-names = "default";
diff --git a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
index 35859d8f3267..bf97f6244c23 100644
--- a/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
+++ b/arch/arm/boot/dts/sun8i-v40-bananapi-m2-berry.dts
@@ -95,7 +95,7 @@
95&i2c0 { 95&i2c0 {
96 status = "okay"; 96 status = "okay";
97 97
98 axp22x: pmic@68 { 98 axp22x: pmic@34 {
99 compatible = "x-powers,axp221"; 99 compatible = "x-powers,axp221";
100 reg = <0x34>; 100 reg = <0x34>;
101 interrupt-parent = <&nmi_intc>; 101 interrupt-parent = <&nmi_intc>;
diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 25591d6883ef..d9532fb1ef65 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -1196,7 +1196,7 @@
1196 }; 1196 };
1197 }; 1197 };
1198 1198
1199 r_rsb: i2c@8003400 { 1199 r_rsb: rsb@8003400 {
1200 compatible = "allwinner,sun8i-a23-rsb"; 1200 compatible = "allwinner,sun8i-a23-rsb";
1201 reg = <0x08003400 0x400>; 1201 reg = <0x08003400 0x400>;
1202 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>; 1202 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi
new file mode 100644
index 000000000000..53edd1faee99
--- /dev/null
+++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus-v1.2.dtsi
@@ -0,0 +1,31 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2018 Chen-Yu Tsai <wens@csie.org>
4 */
5
6#include "sunxi-bananapi-m2-plus.dtsi"
7
8/ {
9 /*
10 * Bananapi M2+ v1.2 uses a GPIO line to change the effective
11 * resistance on the CPU regulator's feedback pin.
12 */
13 reg_vdd_cpux: vdd-cpux {
14 compatible = "regulator-gpio";
15 regulator-name = "vdd-cpux";
16 regulator-type = "voltage";
17 regulator-boot-on;
18 regulator-always-on;
19 regulator-min-microvolt = <1100000>;
20 regulator-max-microvolt = <1300000>;
21 regulator-ramp-delay = <50>; /* 4ms */
22 gpios = <&r_pio 0 1 GPIO_ACTIVE_HIGH>; /* PL1 */
23 gpios-states = <0x1>;
24 states = <1100000 0x0
25 1300000 0x1>;
26 };
27};
28
29&cpu0 {
30 cpu-supply = <&reg_vdd_cpux>;
31};
diff --git a/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
new file mode 100644
index 000000000000..b3283aeb5b7d
--- /dev/null
+++ b/arch/arm/boot/dts/sunxi-bananapi-m2-plus.dtsi
@@ -0,0 +1,231 @@
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#include "sunxi-common-regulators.dtsi"
44
45#include <dt-bindings/gpio/gpio.h>
46#include <dt-bindings/input/input.h>
47
48/ {
49 aliases {
50 ethernet0 = &emac;
51 serial0 = &uart0;
52 serial1 = &uart1;
53 };
54
55 chosen {
56 stdout-path = "serial0:115200n8";
57 };
58
59 connector {
60 compatible = "hdmi-connector";
61 type = "a";
62
63 port {
64 hdmi_con_in: endpoint {
65 remote-endpoint = <&hdmi_out_con>;
66 };
67 };
68 };
69
70 leds {
71 compatible = "gpio-leds";
72 pinctrl-names = "default";
73
74 pwr_led {
75 label = "bananapi-m2-plus:red:pwr";
76 gpios = <&r_pio 0 10 GPIO_ACTIVE_HIGH>; /* PL10 */
77 default-state = "on";
78 };
79 };
80
81 gpio_keys {
82 compatible = "gpio-keys";
83 pinctrl-names = "default";
84
85 sw4 {
86 label = "power";
87 linux,code = <BTN_0>;
88 gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
89 };
90 };
91
92 reg_gmac_3v3: gmac-3v3 {
93 compatible = "regulator-fixed";
94 regulator-name = "gmac-3v3";
95 regulator-min-microvolt = <3300000>;
96 regulator-max-microvolt = <3300000>;
97 startup-delay-us = <100000>;
98 enable-active-high;
99 gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
100 };
101
102 wifi_pwrseq: wifi_pwrseq {
103 compatible = "mmc-pwrseq-simple";
104 pinctrl-names = "default";
105 reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
106 };
107};
108
109&de {
110 status = "okay";
111};
112
113&ehci0 {
114 status = "okay";
115};
116
117&ehci1 {
118 status = "okay";
119};
120
121&ehci2 {
122 status = "okay";
123};
124
125&emac {
126 pinctrl-names = "default";
127 pinctrl-0 = <&emac_rgmii_pins>;
128 phy-supply = <&reg_gmac_3v3>;
129 phy-handle = <&ext_rgmii_phy>;
130 phy-mode = "rgmii";
131
132 status = "okay";
133};
134
135&external_mdio {
136 ext_rgmii_phy: ethernet-phy@1 {
137 compatible = "ethernet-phy-ieee802.3-c22";
138 reg = <1>;
139 };
140};
141
142&hdmi {
143 status = "okay";
144};
145
146&hdmi_out {
147 hdmi_out_con: endpoint {
148 remote-endpoint = <&hdmi_con_in>;
149 };
150};
151
152&ir {
153 pinctrl-names = "default";
154 pinctrl-0 = <&ir_pins_a>;
155 status = "okay";
156};
157
158&mmc0 {
159 vmmc-supply = <&reg_vcc3v3>;
160 bus-width = <4>;
161 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
162 status = "okay";
163};
164
165&mmc1 {
166 vmmc-supply = <&reg_vcc3v3>;
167 vqmmc-supply = <&reg_vcc3v3>;
168 mmc-pwrseq = <&wifi_pwrseq>;
169 bus-width = <4>;
170 non-removable;
171 status = "okay";
172
173 brcmf: wifi@1 {
174 reg = <1>;
175 compatible = "brcm,bcm4329-fmac";
176 interrupt-parent = <&pio>;
177 interrupts = <6 10 IRQ_TYPE_LEVEL_LOW>; /* PG10 / EINT10 */
178 interrupt-names = "host-wake";
179 };
180};
181
182&mmc2 {
183 pinctrl-names = "default";
184 pinctrl-0 = <&mmc2_8bit_pins>;
185 vmmc-supply = <&reg_vcc3v3>;
186 vqmmc-supply = <&reg_vcc3v3>;
187 bus-width = <8>;
188 non-removable;
189 status = "okay";
190};
191
192&ohci0 {
193 status = "okay";
194};
195
196&ohci1 {
197 status = "okay";
198};
199
200&ohci2 {
201 status = "okay";
202};
203
204&reg_usb0_vbus {
205 gpio = <&pio 3 11 GPIO_ACTIVE_HIGH>; /* PD11 */
206 status = "okay";
207};
208
209&uart0 {
210 pinctrl-names = "default";
211 pinctrl-0 = <&uart0_pins_a>;
212 status = "okay";
213};
214
215&uart1 {
216 pinctrl-names = "default";
217 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
218 status = "okay";
219};
220
221&usb_otg {
222 dr_mode = "otg";
223 status = "okay";
224};
225
226&usbphy {
227 usb0_id_det-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
228 usb0_vbus-supply = <&reg_usb0_vbus>;
229 /* USB host VBUS is on as long as VCC-IO is on */
230 status = "okay";
231};
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
index fc6131315c47..4b1530ebe427 100644
--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -816,7 +816,7 @@
816 clock-names = "apb", "ir"; 816 clock-names = "apb", "ir";
817 resets = <&r_ccu RST_APB0_IR>; 817 resets = <&r_ccu RST_APB0_IR>;
818 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 818 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
819 reg = <0x01f02000 0x40>; 819 reg = <0x01f02000 0x400>;
820 status = "disabled"; 820 status = "disabled";
821 }; 821 };
822 822
diff --git a/arch/arm/boot/dts/tegra124-apalis-eval.dts b/arch/arm/boot/dts/tegra124-apalis-eval.dts
index a6ad759dddb4..eaee10ef6512 100644
--- a/arch/arm/boot/dts/tegra124-apalis-eval.dts
+++ b/arch/arm/boot/dts/tegra124-apalis-eval.dts
@@ -72,6 +72,7 @@
72 host1x@50000000 { 72 host1x@50000000 {
73 hdmi@54280000 { 73 hdmi@54280000 {
74 status = "okay"; 74 status = "okay";
75 hdmi-supply = <&reg_5v0>;
75 }; 76 };
76 }; 77 };
77 78
@@ -122,7 +123,7 @@
122 /* 123 /*
123 * GEN2_I2C: I2C2_SDA/SCL (DDC) on MXM3 pin 205/207 (e.g. display EDID) 124 * GEN2_I2C: I2C2_SDA/SCL (DDC) on MXM3 pin 205/207 (e.g. display EDID)
124 */ 125 */
125 hdmi_ddc: i2c@7000c400 { 126 i2c@7000c400 {
126 status = "okay"; 127 status = "okay";
127 }; 128 };
128 129
@@ -141,29 +142,19 @@
141 spi@7000d400 { 142 spi@7000d400 {
142 status = "okay"; 143 status = "okay";
143 spi-max-frequency = <50000000>; 144 spi-max-frequency = <50000000>;
144
145 spidev0: spidev@0 {
146 compatible = "spidev";
147 reg = <0>;
148 spi-max-frequency = <50000000>;
149 };
150 }; 145 };
151 146
152 /* SPI4: Apalis SPI2 */ 147 /* SPI4: Apalis SPI2 */
153 spi@7000da00 { 148 spi@7000da00 {
154 status = "okay"; 149 status = "okay";
155 spi-max-frequency = <50000000>; 150 spi-max-frequency = <50000000>;
156
157 spidev1: spidev@0 {
158 compatible = "spidev";
159 reg = <0>;
160 spi-max-frequency = <50000000>;
161 };
162 }; 151 };
163 152
164 /* Apalis Serial ATA */ 153 /* Apalis Serial ATA */
165 sata@70020000 { 154 sata@70020000 {
166 status = "okay"; 155 status = "okay";
156 target-5v-supply = <&reg_5v0>;
157 target-12v-supply = <&reg_12v0>;
167 }; 158 };
168 159
169 hda@70030000 { 160 hda@70030000 {
@@ -177,18 +168,18 @@
177 /* Apalis MMC1 */ 168 /* Apalis MMC1 */
178 sdhci@700b0000 { 169 sdhci@700b0000 {
179 status = "okay"; 170 status = "okay";
171 bus-width = <4>;
180 /* MMC1_CD# */ 172 /* MMC1_CD# */
181 cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>; 173 cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
182 bus-width = <4>;
183 vqmmc-supply = <&vddio_sdmmc1>; 174 vqmmc-supply = <&vddio_sdmmc1>;
184 }; 175 };
185 176
186 /* Apalis SD1 */ 177 /* Apalis SD1 */
187 sdhci@700b0400 { 178 sdhci@700b0400 {
188 status = "okay"; 179 status = "okay";
180 bus-width = <4>;
189 /* SD1_CD# */ 181 /* SD1_CD# */
190 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 182 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
191 bus-width = <4>;
192 vqmmc-supply = <&vddio_sdmmc3>; 183 vqmmc-supply = <&vddio_sdmmc3>;
193 }; 184 };
194 185
@@ -225,11 +216,12 @@
225 216
226 backlight: backlight { 217 backlight: backlight {
227 compatible = "pwm-backlight"; 218 compatible = "pwm-backlight";
228 pwms = <&pwm 3 5000000>; /* BKL1_PWM */
229 brightness-levels = <255 231 223 207 191 159 127 0>; 219 brightness-levels = <255 231 223 207 191 159 127 0>;
230 default-brightness-level = <6>; 220 default-brightness-level = <6>;
231 /* BKL1_ON */ 221 /* BKL1_ON */
232 enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>; 222 enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
223 power-supply = <&reg_3v3>;
224 pwms = <&pwm 3 5000000>; /* BKL1_PWM */
233 }; 225 };
234 226
235 gpio-keys { 227 gpio-keys {
@@ -244,6 +236,13 @@
244 }; 236 };
245 }; 237 };
246 238
239 reg_3v3: regulator-3v3 {
240 compatible = "regulator-fixed";
241 regulator-name = "3.3V_SW";
242 regulator-min-microvolt = <3300000>;
243 regulator-max-microvolt = <3300000>;
244 };
245
247 reg_5v0: regulator-5v0 { 246 reg_5v0: regulator-5v0 {
248 compatible = "regulator-fixed"; 247 compatible = "regulator-fixed";
249 regulator-name = "5V_SW"; 248 regulator-name = "5V_SW";
@@ -251,6 +250,13 @@
251 regulator-max-microvolt = <5000000>; 250 regulator-max-microvolt = <5000000>;
252 }; 251 };
253 252
253 reg_12v0: regulator-12v0 {
254 compatible = "regulator-fixed";
255 regulator-name = "12V_SW";
256 regulator-min-microvolt = <12000000>;
257 regulator-max-microvolt = <12000000>;
258 };
259
254 /* USBO1_EN */ 260 /* USBO1_EN */
255 reg_usbo1_vbus: regulator-usbo1-vbus { 261 reg_usbo1_vbus: regulator-usbo1-vbus {
256 compatible = "regulator-fixed"; 262 compatible = "regulator-fixed";
@@ -276,7 +282,7 @@
276 282
277&gpio { 283&gpio {
278 /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */ 284 /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
279 pex_perst_n { 285 pex-perst-n {
280 gpio-hog; 286 gpio-hog;
281 gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>; 287 gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
282 output-high; 288 output-high;
diff --git a/arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts b/arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts
index 8a8d5fa0ecd1..7961eb4bd803 100644
--- a/arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts
+++ b/arch/arm/boot/dts/tegra124-apalis-v1.2-eval.dts
@@ -11,7 +11,8 @@
11/ { 11/ {
12 model = "Toradex Apalis TK1 on Apalis Evaluation Board"; 12 model = "Toradex Apalis TK1 on Apalis Evaluation Board";
13 compatible = "toradex,apalis-tk1-v1.2-eval", "toradex,apalis-tk1-eval", 13 compatible = "toradex,apalis-tk1-v1.2-eval", "toradex,apalis-tk1-eval",
14 "toradex,apalis-tk1", "nvidia,tegra124"; 14 "toradex,apalis-tk1-v1.2", "toradex,apalis-tk1",
15 "nvidia,tegra124";
15 16
16 aliases { 17 aliases {
17 rtc0 = "/i2c@7000c000/rtc@68"; 18 rtc0 = "/i2c@7000c000/rtc@68";
@@ -36,6 +37,7 @@
36 host1x@50000000 { 37 host1x@50000000 {
37 hdmi@54280000 { 38 hdmi@54280000 {
38 status = "okay"; 39 status = "okay";
40 hdmi-supply = <&reg_5v0>;
39 }; 41 };
40 }; 42 };
41 43
@@ -98,7 +100,7 @@
98 * I2C4 (DDC): I2C4_SDA/SCL (DDC) on MXM3 pin 205/207 100 * I2C4 (DDC): I2C4_SDA/SCL (DDC) on MXM3 pin 205/207
99 * (e.g. display EDID) 101 * (e.g. display EDID)
100 */ 102 */
101 hdmi_ddc: i2c@7000c700 { 103 i2c@7000c700 {
102 status = "okay"; 104 status = "okay";
103 }; 105 };
104 106
@@ -106,29 +108,19 @@
106 spi@7000d400 { 108 spi@7000d400 {
107 status = "okay"; 109 status = "okay";
108 spi-max-frequency = <50000000>; 110 spi-max-frequency = <50000000>;
109
110 spidev0: spidev@0 {
111 compatible = "spidev";
112 reg = <0>;
113 spi-max-frequency = <50000000>;
114 };
115 }; 111 };
116 112
117 /* SPI4: Apalis SPI2 */ 113 /* SPI4: Apalis SPI2 */
118 spi@7000da00 { 114 spi@7000da00 {
119 status = "okay"; 115 status = "okay";
120 spi-max-frequency = <50000000>; 116 spi-max-frequency = <50000000>;
121
122 spidev1: spidev@0 {
123 compatible = "spidev";
124 reg = <0>;
125 spi-max-frequency = <50000000>;
126 };
127 }; 117 };
128 118
129 /* Apalis Serial ATA */ 119 /* Apalis Serial ATA */
130 sata@70020000 { 120 sata@70020000 {
131 status = "okay"; 121 status = "okay";
122 target-5v-supply = <&reg_5v0>;
123 target-12v-supply = <&reg_12v0>;
132 }; 124 };
133 125
134 hda@70030000 { 126 hda@70030000 {
@@ -142,18 +134,18 @@
142 /* Apalis MMC1 */ 134 /* Apalis MMC1 */
143 sdhci@700b0000 { 135 sdhci@700b0000 {
144 status = "okay"; 136 status = "okay";
137 bus-width = <4>;
145 /* MMC1_CD# */ 138 /* MMC1_CD# */
146 cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>; 139 cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
147 bus-width = <4>;
148 vqmmc-supply = <&vddio_sdmmc1>; 140 vqmmc-supply = <&vddio_sdmmc1>;
149 }; 141 };
150 142
151 /* Apalis SD1 */ 143 /* Apalis SD1 */
152 sdhci@700b0400 { 144 sdhci@700b0400 {
153 status = "okay"; 145 status = "okay";
146 bus-width = <4>;
154 /* SD1_CD# */ 147 /* SD1_CD# */
155 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>; 148 cd-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_LOW>;
156 bus-width = <4>;
157 vqmmc-supply = <&vddio_sdmmc3>; 149 vqmmc-supply = <&vddio_sdmmc3>;
158 }; 150 };
159 151
@@ -190,11 +182,12 @@
190 182
191 backlight: backlight { 183 backlight: backlight {
192 compatible = "pwm-backlight"; 184 compatible = "pwm-backlight";
193 pwms = <&pwm 3 5000000>; /* BKL1_PWM */
194 brightness-levels = <255 231 223 207 191 159 127 0>; 185 brightness-levels = <255 231 223 207 191 159 127 0>;
195 default-brightness-level = <6>; 186 default-brightness-level = <6>;
196 /* BKL1_ON */ 187 /* BKL1_ON */
197 enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>; 188 enable-gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_HIGH>;
189 power-supply = <&reg_3v3>;
190 pwms = <&pwm 3 5000000>; /* BKL1_PWM */
198 }; 191 };
199 192
200 gpio-keys { 193 gpio-keys {
@@ -209,6 +202,13 @@
209 }; 202 };
210 }; 203 };
211 204
205 reg_3v3: regulator-3v3 {
206 compatible = "regulator-fixed";
207 regulator-name = "3.3V_SW";
208 regulator-min-microvolt = <3300000>;
209 regulator-max-microvolt = <3300000>;
210 };
211
212 reg_5v0: regulator-5v0 { 212 reg_5v0: regulator-5v0 {
213 compatible = "regulator-fixed"; 213 compatible = "regulator-fixed";
214 regulator-name = "5V_SW"; 214 regulator-name = "5V_SW";
@@ -216,6 +216,13 @@
216 regulator-max-microvolt = <5000000>; 216 regulator-max-microvolt = <5000000>;
217 }; 217 };
218 218
219 reg_12v0: regulator-12v0 {
220 compatible = "regulator-fixed";
221 regulator-name = "12V_SW";
222 regulator-min-microvolt = <12000000>;
223 regulator-max-microvolt = <12000000>;
224 };
225
219 /* USBO1_EN */ 226 /* USBO1_EN */
220 reg_usbo1_vbus: regulator-usbo1-vbus { 227 reg_usbo1_vbus: regulator-usbo1-vbus {
221 compatible = "regulator-fixed"; 228 compatible = "regulator-fixed";
@@ -241,7 +248,7 @@
241 248
242&gpio { 249&gpio {
243 /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */ 250 /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
244 pex_perst_n { 251 pex-perst-n {
245 gpio-hog; 252 gpio-hog;
246 gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>; 253 gpios = <TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
247 output-high; 254 output-high;
diff --git a/arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi b/arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi
index 573aaa50fff1..367eb8c86098 100644
--- a/arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi
+++ b/arch/arm/boot/dts/tegra124-apalis-v1.2.dtsi
@@ -11,23 +11,19 @@
11 * Compatible for Revisions 2GB: V1.2A 11 * Compatible for Revisions 2GB: V1.2A
12 */ 12 */
13/ { 13/ {
14 model = "Toradex Apalis TK1";
15 compatible = "toradex,apalis-tk1-v1.2", "toradex,apalis-tk1",
16 "nvidia,tegra124";
17
18 memory@80000000 { 14 memory@80000000 {
19 reg = <0x0 0x80000000 0x0 0x80000000>; 15 reg = <0x0 0x80000000 0x0 0x80000000>;
20 }; 16 };
21 17
22 pcie@1003000 { 18 pcie@1003000 {
23 status = "okay"; 19 status = "okay";
24 avddio-pex-supply = <&vdd_1v05>; 20 avddio-pex-supply = <&reg_1v05_vdd>;
25 avdd-pex-pll-supply = <&vdd_1v05>; 21 avdd-pex-pll-supply = <&reg_1v05_vdd>;
26 avdd-pll-erefe-supply = <&avdd_1v05>; 22 avdd-pll-erefe-supply = <&reg_1v05_avdd>;
27 dvddio-pex-supply = <&vdd_1v05>; 23 dvddio-pex-supply = <&reg_1v05_vdd>;
28 hvdd-pex-pll-e-supply = <&reg_3v3>; 24 hvdd-pex-pll-e-supply = <&reg_module_3v3>;
29 hvdd-pex-supply = <&reg_3v3>; 25 hvdd-pex-supply = <&reg_module_3v3>;
30 vddio-pex-ctl-supply = <&reg_3v3>; 26 vddio-pex-ctl-supply = <&reg_module_3v3>;
31 27
32 /* Apalis PCIe (additional lane Apalis type specific) */ 28 /* Apalis PCIe (additional lane Apalis type specific) */
33 pci@1,0 { 29 pci@1,0 {
@@ -42,16 +38,21 @@
42 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>; 38 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
43 phy-names = "pcie-0"; 39 phy-names = "pcie-0";
44 status = "okay"; 40 status = "okay";
41
42 pcie@0 {
43 reg = <0 0 0 0 0>;
44 local-mac-address = [00 00 00 00 00 00];
45 };
45 }; 46 };
46 }; 47 };
47 48
48 host1x@50000000 { 49 host1x@50000000 {
49 hdmi@54280000 { 50 hdmi@54280000 {
50 pll-supply = <&reg_1v05_avdd_hdmi_pll>;
51 vdd-supply = <&reg_3v3_avdd_hdmi>;
52 nvidia,ddc-i2c-bus = <&hdmi_ddc>; 51 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
53 nvidia,hpd-gpio = 52 nvidia,hpd-gpio =
54 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 53 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
54 pll-supply = <&reg_1v05_avdd_hdmi_pll>;
55 vdd-supply = <&reg_3v3_avdd_hdmi>;
55 }; 56 };
56 }; 57 };
57 58
@@ -60,44 +61,44 @@
60 * Node left disabled on purpose - the bootloader will enable 61 * Node left disabled on purpose - the bootloader will enable
61 * it after having set the VPR up 62 * it after having set the VPR up
62 */ 63 */
63 vdd-supply = <&vdd_gpu>; 64 vdd-supply = <&reg_vdd_gpu>;
64 }; 65 };
65 66
66 pinmux: pinmux@70000868 { 67 pinmux@70000868 {
67 pinctrl-names = "default"; 68 pinctrl-names = "default";
68 pinctrl-0 = <&state_default>; 69 pinctrl-0 = <&state_default>;
69 70
70 state_default: pinmux { 71 state_default: pinmux {
71 /* Analogue Audio (On-module) */ 72 /* Analogue Audio (On-module) */
72 dap3_fs_pp0 { 73 dap3-fs-pp0 {
73 nvidia,pins = "dap3_fs_pp0"; 74 nvidia,pins = "dap3_fs_pp0";
74 nvidia,function = "i2s2"; 75 nvidia,function = "i2s2";
75 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 76 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
76 nvidia,tristate = <TEGRA_PIN_DISABLE>; 77 nvidia,tristate = <TEGRA_PIN_DISABLE>;
77 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 78 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
78 }; 79 };
79 dap3_din_pp1 { 80 dap3-din-pp1 {
80 nvidia,pins = "dap3_din_pp1"; 81 nvidia,pins = "dap3_din_pp1";
81 nvidia,function = "i2s2"; 82 nvidia,function = "i2s2";
82 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 83 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
83 nvidia,tristate = <TEGRA_PIN_ENABLE>; 84 nvidia,tristate = <TEGRA_PIN_ENABLE>;
84 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 85 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
85 }; 86 };
86 dap3_dout_pp2 { 87 dap3-dout-pp2 {
87 nvidia,pins = "dap3_dout_pp2"; 88 nvidia,pins = "dap3_dout_pp2";
88 nvidia,function = "i2s2"; 89 nvidia,function = "i2s2";
89 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 90 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
90 nvidia,tristate = <TEGRA_PIN_DISABLE>; 91 nvidia,tristate = <TEGRA_PIN_DISABLE>;
91 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 92 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
92 }; 93 };
93 dap3_sclk_pp3 { 94 dap3-sclk-pp3 {
94 nvidia,pins = "dap3_sclk_pp3"; 95 nvidia,pins = "dap3_sclk_pp3";
95 nvidia,function = "i2s2"; 96 nvidia,function = "i2s2";
96 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 97 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
97 nvidia,tristate = <TEGRA_PIN_DISABLE>; 98 nvidia,tristate = <TEGRA_PIN_DISABLE>;
98 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 99 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
99 }; 100 };
100 dap_mclk1_pw4 { 101 dap-mclk1-pw4 {
101 nvidia,pins = "dap_mclk1_pw4"; 102 nvidia,pins = "dap_mclk1_pw4";
102 nvidia,function = "extperiph1"; 103 nvidia,function = "extperiph1";
103 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 104 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -124,7 +125,7 @@
124 }; 125 };
125 126
126 /* Apalis CAM1_MCLK */ 127 /* Apalis CAM1_MCLK */
127 cam_mclk_pcc0 { 128 cam-mclk-pcc0 {
128 nvidia,pins = "cam_mclk_pcc0"; 129 nvidia,pins = "cam_mclk_pcc0";
129 nvidia,function = "vi_alt3"; 130 nvidia,function = "vi_alt3";
130 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 131 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -133,28 +134,28 @@
133 }; 134 };
134 135
135 /* Apalis Digital Audio */ 136 /* Apalis Digital Audio */
136 dap2_fs_pa2 { 137 dap2-fs-pa2 {
137 nvidia,pins = "dap2_fs_pa2"; 138 nvidia,pins = "dap2_fs_pa2";
138 nvidia,function = "hda"; 139 nvidia,function = "hda";
139 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 140 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
140 nvidia,tristate = <TEGRA_PIN_DISABLE>; 141 nvidia,tristate = <TEGRA_PIN_DISABLE>;
141 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 142 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
142 }; 143 };
143 dap2_sclk_pa3 { 144 dap2-sclk-pa3 {
144 nvidia,pins = "dap2_sclk_pa3"; 145 nvidia,pins = "dap2_sclk_pa3";
145 nvidia,function = "hda"; 146 nvidia,function = "hda";
146 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 147 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
147 nvidia,tristate = <TEGRA_PIN_DISABLE>; 148 nvidia,tristate = <TEGRA_PIN_DISABLE>;
148 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 149 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
149 }; 150 };
150 dap2_din_pa4 { 151 dap2-din-pa4 {
151 nvidia,pins = "dap2_din_pa4"; 152 nvidia,pins = "dap2_din_pa4";
152 nvidia,function = "hda"; 153 nvidia,function = "hda";
153 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 154 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
154 nvidia,tristate = <TEGRA_PIN_ENABLE>; 155 nvidia,tristate = <TEGRA_PIN_ENABLE>;
155 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 156 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
156 }; 157 };
157 dap2_dout_pa5 { 158 dap2-dout-pa5 {
158 nvidia,pins = "dap2_dout_pa5"; 159 nvidia,pins = "dap2_dout_pa5";
159 nvidia,function = "hda"; 160 nvidia,function = "hda";
160 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 161 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -167,7 +168,7 @@
167 nvidia,tristate = <TEGRA_PIN_DISABLE>; 168 nvidia,tristate = <TEGRA_PIN_DISABLE>;
168 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 169 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
169 }; 170 };
170 clk3_out_pee0 { 171 clk3-out-pee0 {
171 nvidia,pins = "clk3_out_pee0"; 172 nvidia,pins = "clk3_out_pee0";
172 nvidia,function = "extperiph3"; 173 nvidia,function = "extperiph3";
173 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 174 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -176,7 +177,7 @@
176 }; 177 };
177 178
178 /* Apalis GPIO */ 179 /* Apalis GPIO */
179 usb_vbus_en0_pn4 { 180 usb-vbus-en0-pn4 {
180 nvidia,pins = "usb_vbus_en0_pn4"; 181 nvidia,pins = "usb_vbus_en0_pn4";
181 nvidia,function = "rsvd2"; 182 nvidia,function = "rsvd2";
182 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 183 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -184,7 +185,7 @@
184 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 185 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
185 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 186 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
186 }; 187 };
187 usb_vbus_en1_pn5 { 188 usb-vbus-en1-pn5 {
188 nvidia,pins = "usb_vbus_en1_pn5"; 189 nvidia,pins = "usb_vbus_en1_pn5";
189 nvidia,function = "rsvd2"; 190 nvidia,function = "rsvd2";
190 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 191 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -192,35 +193,35 @@
192 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 193 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
193 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 194 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
194 }; 195 };
195 pex_l0_rst_n_pdd1 { 196 pex-l0-rst-n-pdd1 {
196 nvidia,pins = "pex_l0_rst_n_pdd1"; 197 nvidia,pins = "pex_l0_rst_n_pdd1";
197 nvidia,function = "rsvd2"; 198 nvidia,function = "rsvd2";
198 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 199 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
199 nvidia,tristate = <TEGRA_PIN_DISABLE>; 200 nvidia,tristate = <TEGRA_PIN_DISABLE>;
200 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 201 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
201 }; 202 };
202 pex_l0_clkreq_n_pdd2 { 203 pex-l0-clkreq-n-pdd2 {
203 nvidia,pins = "pex_l0_clkreq_n_pdd2"; 204 nvidia,pins = "pex_l0_clkreq_n_pdd2";
204 nvidia,function = "rsvd2"; 205 nvidia,function = "rsvd2";
205 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 206 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
206 nvidia,tristate = <TEGRA_PIN_DISABLE>; 207 nvidia,tristate = <TEGRA_PIN_DISABLE>;
207 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 208 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
208 }; 209 };
209 pex_l1_rst_n_pdd5 { 210 pex-l1-rst-n-pdd5 {
210 nvidia,pins = "pex_l1_rst_n_pdd5"; 211 nvidia,pins = "pex_l1_rst_n_pdd5";
211 nvidia,function = "rsvd2"; 212 nvidia,function = "rsvd2";
212 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 213 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
213 nvidia,tristate = <TEGRA_PIN_DISABLE>; 214 nvidia,tristate = <TEGRA_PIN_DISABLE>;
214 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 215 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
215 }; 216 };
216 pex_l1_clkreq_n_pdd6 { 217 pex-l1-clkreq-n-pdd6 {
217 nvidia,pins = "pex_l1_clkreq_n_pdd6"; 218 nvidia,pins = "pex_l1_clkreq_n_pdd6";
218 nvidia,function = "rsvd2"; 219 nvidia,function = "rsvd2";
219 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 220 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
220 nvidia,tristate = <TEGRA_PIN_DISABLE>; 221 nvidia,tristate = <TEGRA_PIN_DISABLE>;
221 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 222 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
222 }; 223 };
223 dp_hpd_pff0 { 224 dp-hpd-pff0 {
224 nvidia,pins = "dp_hpd_pff0"; 225 nvidia,pins = "dp_hpd_pff0";
225 nvidia,function = "dp"; 226 nvidia,function = "dp";
226 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 227 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -244,7 +245,7 @@
244 }; 245 };
245 246
246 /* Apalis HDMI1_CEC */ 247 /* Apalis HDMI1_CEC */
247 hdmi_cec_pee3 { 248 hdmi-cec-pee3 {
248 nvidia,pins = "hdmi_cec_pee3"; 249 nvidia,pins = "hdmi_cec_pee3";
249 nvidia,function = "cec"; 250 nvidia,function = "cec";
250 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 251 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -254,7 +255,7 @@
254 }; 255 };
255 256
256 /* Apalis HDMI1_HPD */ 257 /* Apalis HDMI1_HPD */
257 hdmi_int_pn7 { 258 hdmi-int-pn7 {
258 nvidia,pins = "hdmi_int_pn7"; 259 nvidia,pins = "hdmi_int_pn7";
259 nvidia,function = "rsvd1"; 260 nvidia,function = "rsvd1";
260 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 261 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -264,7 +265,7 @@
264 }; 265 };
265 266
266 /* Apalis I2C1 */ 267 /* Apalis I2C1 */
267 gen1_i2c_scl_pc4 { 268 gen1-i2c-scl-pc4 {
268 nvidia,pins = "gen1_i2c_scl_pc4"; 269 nvidia,pins = "gen1_i2c_scl_pc4";
269 nvidia,function = "i2c1"; 270 nvidia,function = "i2c1";
270 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 271 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -272,7 +273,7 @@
272 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 273 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
273 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 274 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
274 }; 275 };
275 gen1_i2c_sda_pc5 { 276 gen1-i2c-sda-pc5 {
276 nvidia,pins = "gen1_i2c_sda_pc5"; 277 nvidia,pins = "gen1_i2c_sda_pc5";
277 nvidia,function = "i2c1"; 278 nvidia,function = "i2c1";
278 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 279 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -282,7 +283,7 @@
282 }; 283 };
283 284
284 /* Apalis I2C3 (CAM) */ 285 /* Apalis I2C3 (CAM) */
285 cam_i2c_scl_pbb1 { 286 cam-i2c-scl-pbb1 {
286 nvidia,pins = "cam_i2c_scl_pbb1"; 287 nvidia,pins = "cam_i2c_scl_pbb1";
287 nvidia,function = "i2c3"; 288 nvidia,function = "i2c3";
288 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 289 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -290,7 +291,7 @@
290 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 291 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
291 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 292 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
292 }; 293 };
293 cam_i2c_sda_pbb2 { 294 cam-i2c-sda-pbb2 {
294 nvidia,pins = "cam_i2c_sda_pbb2"; 295 nvidia,pins = "cam_i2c_sda_pbb2";
295 nvidia,function = "i2c3"; 296 nvidia,function = "i2c3";
296 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 297 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -300,7 +301,7 @@
300 }; 301 };
301 302
302 /* Apalis I2C4 (DDC) */ 303 /* Apalis I2C4 (DDC) */
303 ddc_scl_pv4 { 304 ddc-scl-pv4 {
304 nvidia,pins = "ddc_scl_pv4"; 305 nvidia,pins = "ddc_scl_pv4";
305 nvidia,function = "i2c4"; 306 nvidia,function = "i2c4";
306 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 307 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -308,7 +309,7 @@
308 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 309 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
309 nvidia,rcv-sel = <TEGRA_PIN_ENABLE>; 310 nvidia,rcv-sel = <TEGRA_PIN_ENABLE>;
310 }; 311 };
311 ddc_sda_pv5 { 312 ddc-sda-pv5 {
312 nvidia,pins = "ddc_sda_pv5"; 313 nvidia,pins = "ddc_sda_pv5";
313 nvidia,function = "i2c4"; 314 nvidia,function = "i2c4";
314 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 315 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -318,77 +319,77 @@
318 }; 319 };
319 320
320 /* Apalis MMC1 */ 321 /* Apalis MMC1 */
321 sdmmc1_cd_n_pv3 { /* CD# GPIO */ 322 sdmmc1-cd-n-pv3 { /* CD# GPIO */
322 nvidia,pins = "sdmmc1_wp_n_pv3"; 323 nvidia,pins = "sdmmc1_wp_n_pv3";
323 nvidia,function = "sdmmc1"; 324 nvidia,function = "sdmmc1";
324 nvidia,pull = <TEGRA_PIN_PULL_UP>; 325 nvidia,pull = <TEGRA_PIN_PULL_UP>;
325 nvidia,tristate = <TEGRA_PIN_ENABLE>; 326 nvidia,tristate = <TEGRA_PIN_ENABLE>;
326 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 327 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
327 }; 328 };
328 clk2_out_pw5 { /* D5 GPIO */ 329 clk2-out-pw5 { /* D5 GPIO */
329 nvidia,pins = "clk2_out_pw5"; 330 nvidia,pins = "clk2_out_pw5";
330 nvidia,function = "rsvd2"; 331 nvidia,function = "rsvd2";
331 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 332 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
332 nvidia,tristate = <TEGRA_PIN_DISABLE>; 333 nvidia,tristate = <TEGRA_PIN_DISABLE>;
333 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 334 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
334 }; 335 };
335 sdmmc1_dat3_py4 { 336 sdmmc1-dat3-py4 {
336 nvidia,pins = "sdmmc1_dat3_py4"; 337 nvidia,pins = "sdmmc1_dat3_py4";
337 nvidia,function = "sdmmc1"; 338 nvidia,function = "sdmmc1";
338 nvidia,pull = <TEGRA_PIN_PULL_UP>; 339 nvidia,pull = <TEGRA_PIN_PULL_UP>;
339 nvidia,tristate = <TEGRA_PIN_DISABLE>; 340 nvidia,tristate = <TEGRA_PIN_DISABLE>;
340 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 341 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
341 }; 342 };
342 sdmmc1_dat2_py5 { 343 sdmmc1-dat2-py5 {
343 nvidia,pins = "sdmmc1_dat2_py5"; 344 nvidia,pins = "sdmmc1_dat2_py5";
344 nvidia,function = "sdmmc1"; 345 nvidia,function = "sdmmc1";
345 nvidia,pull = <TEGRA_PIN_PULL_UP>; 346 nvidia,pull = <TEGRA_PIN_PULL_UP>;
346 nvidia,tristate = <TEGRA_PIN_DISABLE>; 347 nvidia,tristate = <TEGRA_PIN_DISABLE>;
347 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 348 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
348 }; 349 };
349 sdmmc1_dat1_py6 { 350 sdmmc1-dat1-py6 {
350 nvidia,pins = "sdmmc1_dat1_py6"; 351 nvidia,pins = "sdmmc1_dat1_py6";
351 nvidia,function = "sdmmc1"; 352 nvidia,function = "sdmmc1";
352 nvidia,pull = <TEGRA_PIN_PULL_UP>; 353 nvidia,pull = <TEGRA_PIN_PULL_UP>;
353 nvidia,tristate = <TEGRA_PIN_DISABLE>; 354 nvidia,tristate = <TEGRA_PIN_DISABLE>;
354 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 355 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
355 }; 356 };
356 sdmmc1_dat0_py7 { 357 sdmmc1-dat0-py7 {
357 nvidia,pins = "sdmmc1_dat0_py7"; 358 nvidia,pins = "sdmmc1_dat0_py7";
358 nvidia,function = "sdmmc1"; 359 nvidia,function = "sdmmc1";
359 nvidia,pull = <TEGRA_PIN_PULL_UP>; 360 nvidia,pull = <TEGRA_PIN_PULL_UP>;
360 nvidia,tristate = <TEGRA_PIN_DISABLE>; 361 nvidia,tristate = <TEGRA_PIN_DISABLE>;
361 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 362 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
362 }; 363 };
363 sdmmc1_clk_pz0 { 364 sdmmc1-clk-pz0 {
364 nvidia,pins = "sdmmc1_clk_pz0"; 365 nvidia,pins = "sdmmc1_clk_pz0";
365 nvidia,function = "sdmmc1"; 366 nvidia,function = "sdmmc1";
366 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 367 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
367 nvidia,tristate = <TEGRA_PIN_DISABLE>; 368 nvidia,tristate = <TEGRA_PIN_DISABLE>;
368 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 369 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
369 }; 370 };
370 sdmmc1_cmd_pz1 { 371 sdmmc1-cmd-pz1 {
371 nvidia,pins = "sdmmc1_cmd_pz1"; 372 nvidia,pins = "sdmmc1_cmd_pz1";
372 nvidia,function = "sdmmc1"; 373 nvidia,function = "sdmmc1";
373 nvidia,pull = <TEGRA_PIN_PULL_UP>; 374 nvidia,pull = <TEGRA_PIN_PULL_UP>;
374 nvidia,tristate = <TEGRA_PIN_DISABLE>; 375 nvidia,tristate = <TEGRA_PIN_DISABLE>;
375 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 376 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
376 }; 377 };
377 clk2_req_pcc5 { /* D4 GPIO */ 378 clk2-req-pcc5 { /* D4 GPIO */
378 nvidia,pins = "clk2_req_pcc5"; 379 nvidia,pins = "clk2_req_pcc5";
379 nvidia,function = "rsvd2"; 380 nvidia,function = "rsvd2";
380 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 381 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
381 nvidia,tristate = <TEGRA_PIN_DISABLE>; 382 nvidia,tristate = <TEGRA_PIN_DISABLE>;
382 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 383 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
383 }; 384 };
384 sdmmc3_clk_lb_in_pee5 { /* D6 GPIO */ 385 sdmmc3-clk-lb-in-pee5 { /* D6 GPIO */
385 nvidia,pins = "sdmmc3_clk_lb_in_pee5"; 386 nvidia,pins = "sdmmc3_clk_lb_in_pee5";
386 nvidia,function = "rsvd2"; 387 nvidia,function = "rsvd2";
387 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 388 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
388 nvidia,tristate = <TEGRA_PIN_DISABLE>; 389 nvidia,tristate = <TEGRA_PIN_DISABLE>;
389 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 390 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
390 }; 391 };
391 usb_vbus_en2_pff1 { /* D7 GPIO */ 392 usb-vbus-en2-pff1 { /* D7 GPIO */
392 nvidia,pins = "usb_vbus_en2_pff1"; 393 nvidia,pins = "usb_vbus_en2_pff1";
393 nvidia,function = "rsvd2"; 394 nvidia,function = "rsvd2";
394 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 395 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -428,7 +429,7 @@
428 }; 429 };
429 430
430 /* Apalis SATA1_ACT# */ 431 /* Apalis SATA1_ACT# */
431 dap1_dout_pn2 { 432 dap1-dout-pn2 {
432 nvidia,pins = "dap1_dout_pn2"; 433 nvidia,pins = "dap1_dout_pn2";
433 nvidia,function = "gmi"; 434 nvidia,function = "gmi";
434 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 435 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -437,49 +438,49 @@
437 }; 438 };
438 439
439 /* Apalis SD1 */ 440 /* Apalis SD1 */
440 sdmmc3_clk_pa6 { 441 sdmmc3-clk-pa6 {
441 nvidia,pins = "sdmmc3_clk_pa6"; 442 nvidia,pins = "sdmmc3_clk_pa6";
442 nvidia,function = "sdmmc3"; 443 nvidia,function = "sdmmc3";
443 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 444 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
444 nvidia,tristate = <TEGRA_PIN_DISABLE>; 445 nvidia,tristate = <TEGRA_PIN_DISABLE>;
445 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 446 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
446 }; 447 };
447 sdmmc3_cmd_pa7 { 448 sdmmc3-cmd-pa7 {
448 nvidia,pins = "sdmmc3_cmd_pa7"; 449 nvidia,pins = "sdmmc3_cmd_pa7";
449 nvidia,function = "sdmmc3"; 450 nvidia,function = "sdmmc3";
450 nvidia,pull = <TEGRA_PIN_PULL_UP>; 451 nvidia,pull = <TEGRA_PIN_PULL_UP>;
451 nvidia,tristate = <TEGRA_PIN_DISABLE>; 452 nvidia,tristate = <TEGRA_PIN_DISABLE>;
452 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 453 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
453 }; 454 };
454 sdmmc3_dat3_pb4 { 455 sdmmc3-dat3-pb4 {
455 nvidia,pins = "sdmmc3_dat3_pb4"; 456 nvidia,pins = "sdmmc3_dat3_pb4";
456 nvidia,function = "sdmmc3"; 457 nvidia,function = "sdmmc3";
457 nvidia,pull = <TEGRA_PIN_PULL_UP>; 458 nvidia,pull = <TEGRA_PIN_PULL_UP>;
458 nvidia,tristate = <TEGRA_PIN_DISABLE>; 459 nvidia,tristate = <TEGRA_PIN_DISABLE>;
459 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 460 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
460 }; 461 };
461 sdmmc3_dat2_pb5 { 462 sdmmc3-dat2-pb5 {
462 nvidia,pins = "sdmmc3_dat2_pb5"; 463 nvidia,pins = "sdmmc3_dat2_pb5";
463 nvidia,function = "sdmmc3"; 464 nvidia,function = "sdmmc3";
464 nvidia,pull = <TEGRA_PIN_PULL_UP>; 465 nvidia,pull = <TEGRA_PIN_PULL_UP>;
465 nvidia,tristate = <TEGRA_PIN_DISABLE>; 466 nvidia,tristate = <TEGRA_PIN_DISABLE>;
466 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 467 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
467 }; 468 };
468 sdmmc3_dat1_pb6 { 469 sdmmc3-dat1-pb6 {
469 nvidia,pins = "sdmmc3_dat1_pb6"; 470 nvidia,pins = "sdmmc3_dat1_pb6";
470 nvidia,function = "sdmmc3"; 471 nvidia,function = "sdmmc3";
471 nvidia,pull = <TEGRA_PIN_PULL_UP>; 472 nvidia,pull = <TEGRA_PIN_PULL_UP>;
472 nvidia,tristate = <TEGRA_PIN_DISABLE>; 473 nvidia,tristate = <TEGRA_PIN_DISABLE>;
473 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 474 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
474 }; 475 };
475 sdmmc3_dat0_pb7 { 476 sdmmc3-dat0-pb7 {
476 nvidia,pins = "sdmmc3_dat0_pb7"; 477 nvidia,pins = "sdmmc3_dat0_pb7";
477 nvidia,function = "sdmmc3"; 478 nvidia,function = "sdmmc3";
478 nvidia,pull = <TEGRA_PIN_PULL_UP>; 479 nvidia,pull = <TEGRA_PIN_PULL_UP>;
479 nvidia,tristate = <TEGRA_PIN_DISABLE>; 480 nvidia,tristate = <TEGRA_PIN_DISABLE>;
480 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 481 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
481 }; 482 };
482 sdmmc3_cd_n_pv2 { /* CD# GPIO */ 483 sdmmc3-cd-n-pv2 { /* CD# GPIO */
483 nvidia,pins = "sdmmc3_cd_n_pv2"; 484 nvidia,pins = "sdmmc3_cd_n_pv2";
484 nvidia,function = "rsvd3"; 485 nvidia,function = "rsvd3";
485 nvidia,pull = <TEGRA_PIN_PULL_UP>; 486 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -488,14 +489,14 @@
488 }; 489 };
489 490
490 /* Apalis SPDIF */ 491 /* Apalis SPDIF */
491 spdif_out_pk5 { 492 spdif-out-pk5 {
492 nvidia,pins = "spdif_out_pk5"; 493 nvidia,pins = "spdif_out_pk5";
493 nvidia,function = "spdif"; 494 nvidia,function = "spdif";
494 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 495 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
495 nvidia,tristate = <TEGRA_PIN_DISABLE>; 496 nvidia,tristate = <TEGRA_PIN_DISABLE>;
496 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 497 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
497 }; 498 };
498 spdif_in_pk6 { 499 spdif-in-pk6 {
499 nvidia,pins = "spdif_in_pk6"; 500 nvidia,pins = "spdif_in_pk6";
500 nvidia,function = "spdif"; 501 nvidia,function = "spdif";
501 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 502 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -504,28 +505,28 @@
504 }; 505 };
505 506
506 /* Apalis SPI1 */ 507 /* Apalis SPI1 */
507 ulpi_clk_py0 { 508 ulpi-clk-py0 {
508 nvidia,pins = "ulpi_clk_py0"; 509 nvidia,pins = "ulpi_clk_py0";
509 nvidia,function = "spi1"; 510 nvidia,function = "spi1";
510 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 511 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
511 nvidia,tristate = <TEGRA_PIN_DISABLE>; 512 nvidia,tristate = <TEGRA_PIN_DISABLE>;
512 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 513 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
513 }; 514 };
514 ulpi_dir_py1 { 515 ulpi-dir-py1 {
515 nvidia,pins = "ulpi_dir_py1"; 516 nvidia,pins = "ulpi_dir_py1";
516 nvidia,function = "spi1"; 517 nvidia,function = "spi1";
517 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 518 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
518 nvidia,tristate = <TEGRA_PIN_ENABLE>; 519 nvidia,tristate = <TEGRA_PIN_ENABLE>;
519 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 520 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
520 }; 521 };
521 ulpi_nxt_py2 { 522 ulpi-nxt-py2 {
522 nvidia,pins = "ulpi_nxt_py2"; 523 nvidia,pins = "ulpi_nxt_py2";
523 nvidia,function = "spi1"; 524 nvidia,function = "spi1";
524 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 525 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
525 nvidia,tristate = <TEGRA_PIN_DISABLE>; 526 nvidia,tristate = <TEGRA_PIN_DISABLE>;
526 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 527 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
527 }; 528 };
528 ulpi_stp_py3 { 529 ulpi-stp-py3 {
529 nvidia,pins = "ulpi_stp_py3"; 530 nvidia,pins = "ulpi_stp_py3";
530 nvidia,function = "spi1"; 531 nvidia,function = "spi1";
531 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 532 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -578,42 +579,42 @@
578 nvidia,tristate = <TEGRA_PIN_ENABLE>; 579 nvidia,tristate = <TEGRA_PIN_ENABLE>;
579 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 580 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
580 }; 581 };
581 uart1_txd_pu0 { 582 uart1-txd-pu0 {
582 nvidia,pins = "pu0"; 583 nvidia,pins = "pu0";
583 nvidia,function = "uarta"; 584 nvidia,function = "uarta";
584 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 585 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
585 nvidia,tristate = <TEGRA_PIN_DISABLE>; 586 nvidia,tristate = <TEGRA_PIN_DISABLE>;
586 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 587 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
587 }; 588 };
588 uart1_rxd_pu1 { 589 uart1-rxd-pu1 {
589 nvidia,pins = "pu1"; 590 nvidia,pins = "pu1";
590 nvidia,function = "uarta"; 591 nvidia,function = "uarta";
591 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 592 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
592 nvidia,tristate = <TEGRA_PIN_ENABLE>; 593 nvidia,tristate = <TEGRA_PIN_ENABLE>;
593 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 594 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
594 }; 595 };
595 uart1_cts_n_pu2 { 596 uart1-cts-n-pu2 {
596 nvidia,pins = "pu2"; 597 nvidia,pins = "pu2";
597 nvidia,function = "uarta"; 598 nvidia,function = "uarta";
598 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 599 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
599 nvidia,tristate = <TEGRA_PIN_ENABLE>; 600 nvidia,tristate = <TEGRA_PIN_ENABLE>;
600 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 601 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
601 }; 602 };
602 uart1_rts_n_pu3 { 603 uart1-rts-n-pu3 {
603 nvidia,pins = "pu3"; 604 nvidia,pins = "pu3";
604 nvidia,function = "uarta"; 605 nvidia,function = "uarta";
605 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 606 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
606 nvidia,tristate = <TEGRA_PIN_DISABLE>; 607 nvidia,tristate = <TEGRA_PIN_DISABLE>;
607 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 608 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
608 }; 609 };
609 uart3_cts_n_pa1 { /* DSR GPIO */ 610 uart3-cts-n-pa1 { /* DSR GPIO */
610 nvidia,pins = "uart3_cts_n_pa1"; 611 nvidia,pins = "uart3_cts_n_pa1";
611 nvidia,function = "gmi"; 612 nvidia,function = "gmi";
612 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 613 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
613 nvidia,tristate = <TEGRA_PIN_ENABLE>; 614 nvidia,tristate = <TEGRA_PIN_ENABLE>;
614 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 615 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
615 }; 616 };
616 uart3_rts_n_pc0 { /* DTR GPIO */ 617 uart3-rts-n-pc0 { /* DTR GPIO */
617 nvidia,pins = "uart3_rts_n_pc0"; 618 nvidia,pins = "uart3_rts_n_pc0";
618 nvidia,function = "gmi"; 619 nvidia,function = "gmi";
619 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 620 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -622,28 +623,28 @@
622 }; 623 };
623 624
624 /* Apalis UART2 */ 625 /* Apalis UART2 */
625 uart2_txd_pc2 { 626 uart2-txd-pc2 {
626 nvidia,pins = "uart2_txd_pc2"; 627 nvidia,pins = "uart2_txd_pc2";
627 nvidia,function = "irda"; 628 nvidia,function = "irda";
628 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 629 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
629 nvidia,tristate = <TEGRA_PIN_DISABLE>; 630 nvidia,tristate = <TEGRA_PIN_DISABLE>;
630 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 631 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
631 }; 632 };
632 uart2_rxd_pc3 { 633 uart2-rxd-pc3 {
633 nvidia,pins = "uart2_rxd_pc3"; 634 nvidia,pins = "uart2_rxd_pc3";
634 nvidia,function = "irda"; 635 nvidia,function = "irda";
635 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 636 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
636 nvidia,tristate = <TEGRA_PIN_ENABLE>; 637 nvidia,tristate = <TEGRA_PIN_ENABLE>;
637 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 638 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
638 }; 639 };
639 uart2_cts_n_pj5 { 640 uart2-cts-n-pj5 {
640 nvidia,pins = "uart2_cts_n_pj5"; 641 nvidia,pins = "uart2_cts_n_pj5";
641 nvidia,function = "uartb"; 642 nvidia,function = "uartb";
642 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 643 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
643 nvidia,tristate = <TEGRA_PIN_ENABLE>; 644 nvidia,tristate = <TEGRA_PIN_ENABLE>;
644 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 645 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
645 }; 646 };
646 uart2_rts_n_pj6 { 647 uart2-rts-n-pj6 {
647 nvidia,pins = "uart2_rts_n_pj6"; 648 nvidia,pins = "uart2_rts_n_pj6";
648 nvidia,function = "uartb"; 649 nvidia,function = "uartb";
649 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 650 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -652,14 +653,14 @@
652 }; 653 };
653 654
654 /* Apalis UART3 */ 655 /* Apalis UART3 */
655 uart3_txd_pw6 { 656 uart3-txd-pw6 {
656 nvidia,pins = "uart3_txd_pw6"; 657 nvidia,pins = "uart3_txd_pw6";
657 nvidia,function = "uartc"; 658 nvidia,function = "uartc";
658 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 659 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
659 nvidia,tristate = <TEGRA_PIN_DISABLE>; 660 nvidia,tristate = <TEGRA_PIN_DISABLE>;
660 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 661 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
661 }; 662 };
662 uart3_rxd_pw7 { 663 uart3-rxd-pw7 {
663 nvidia,pins = "uart3_rxd_pw7"; 664 nvidia,pins = "uart3_rxd_pw7";
664 nvidia,function = "uartc"; 665 nvidia,function = "uartc";
665 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 666 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -668,14 +669,14 @@
668 }; 669 };
669 670
670 /* Apalis UART4 */ 671 /* Apalis UART4 */
671 uart4_rxd_pb0 { 672 uart4-rxd-pb0 {
672 nvidia,pins = "pb0"; 673 nvidia,pins = "pb0";
673 nvidia,function = "uartd"; 674 nvidia,function = "uartd";
674 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 675 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
675 nvidia,tristate = <TEGRA_PIN_ENABLE>; 676 nvidia,tristate = <TEGRA_PIN_ENABLE>;
676 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 677 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
677 }; 678 };
678 uart4_txd_pj7 { 679 uart4-txd-pj7 {
679 nvidia,pins = "pj7"; 680 nvidia,pins = "pj7";
680 nvidia,function = "uartd"; 681 nvidia,function = "uartd";
681 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 682 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -684,7 +685,7 @@
684 }; 685 };
685 686
686 /* Apalis USBH_EN */ 687 /* Apalis USBH_EN */
687 gen2_i2c_sda_pt6 { 688 gen2-i2c-sda-pt6 {
688 nvidia,pins = "gen2_i2c_sda_pt6"; 689 nvidia,pins = "gen2_i2c_sda_pt6";
689 nvidia,function = "rsvd2"; 690 nvidia,function = "rsvd2";
690 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 691 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -703,7 +704,7 @@
703 }; 704 };
704 705
705 /* Apalis USBO1_EN */ 706 /* Apalis USBO1_EN */
706 gen2_i2c_scl_pt5 { 707 gen2-i2c-scl-pt5 {
707 nvidia,pins = "gen2_i2c_scl_pt5"; 708 nvidia,pins = "gen2_i2c_scl_pt5";
708 nvidia,function = "rsvd2"; 709 nvidia,function = "rsvd2";
709 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 710 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -722,7 +723,7 @@
722 }; 723 };
723 724
724 /* Apalis WAKE1_MICO */ 725 /* Apalis WAKE1_MICO */
725 pex_wake_n_pdd3 { 726 pex-wake-n-pdd3 {
726 nvidia,pins = "pex_wake_n_pdd3"; 727 nvidia,pins = "pex_wake_n_pdd3";
727 nvidia,function = "rsvd2"; 728 nvidia,function = "rsvd2";
728 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 729 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -731,7 +732,7 @@
731 }; 732 };
732 733
733 /* CORE_PWR_REQ */ 734 /* CORE_PWR_REQ */
734 core_pwr_req { 735 core-pwr-req {
735 nvidia,pins = "core_pwr_req"; 736 nvidia,pins = "core_pwr_req";
736 nvidia,function = "pwron"; 737 nvidia,function = "pwron";
737 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 738 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -740,7 +741,7 @@
740 }; 741 };
741 742
742 /* CPU_PWR_REQ */ 743 /* CPU_PWR_REQ */
743 cpu_pwr_req { 744 cpu-pwr-req {
744 nvidia,pins = "cpu_pwr_req"; 745 nvidia,pins = "cpu_pwr_req";
745 nvidia,function = "cpu"; 746 nvidia,function = "cpu";
746 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 747 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -749,14 +750,14 @@
749 }; 750 };
750 751
751 /* DVFS */ 752 /* DVFS */
752 dvfs_pwm_px0 { 753 dvfs-pwm-px0 {
753 nvidia,pins = "dvfs_pwm_px0"; 754 nvidia,pins = "dvfs_pwm_px0";
754 nvidia,function = "cldvfs"; 755 nvidia,function = "cldvfs";
755 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 756 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
756 nvidia,tristate = <TEGRA_PIN_DISABLE>; 757 nvidia,tristate = <TEGRA_PIN_DISABLE>;
757 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 758 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
758 }; 759 };
759 dvfs_clk_px2 { 760 dvfs-clk-px2 {
760 nvidia,pins = "dvfs_clk_px2"; 761 nvidia,pins = "dvfs_clk_px2";
761 nvidia,function = "cldvfs"; 762 nvidia,function = "cldvfs";
762 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 763 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -765,70 +766,70 @@
765 }; 766 };
766 767
767 /* eMMC */ 768 /* eMMC */
768 sdmmc4_dat0_paa0 { 769 sdmmc4-dat0-paa0 {
769 nvidia,pins = "sdmmc4_dat0_paa0"; 770 nvidia,pins = "sdmmc4_dat0_paa0";
770 nvidia,function = "sdmmc4"; 771 nvidia,function = "sdmmc4";
771 nvidia,pull = <TEGRA_PIN_PULL_UP>; 772 nvidia,pull = <TEGRA_PIN_PULL_UP>;
772 nvidia,tristate = <TEGRA_PIN_DISABLE>; 773 nvidia,tristate = <TEGRA_PIN_DISABLE>;
773 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 774 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
774 }; 775 };
775 sdmmc4_dat1_paa1 { 776 sdmmc4-dat1-paa1 {
776 nvidia,pins = "sdmmc4_dat1_paa1"; 777 nvidia,pins = "sdmmc4_dat1_paa1";
777 nvidia,function = "sdmmc4"; 778 nvidia,function = "sdmmc4";
778 nvidia,pull = <TEGRA_PIN_PULL_UP>; 779 nvidia,pull = <TEGRA_PIN_PULL_UP>;
779 nvidia,tristate = <TEGRA_PIN_DISABLE>; 780 nvidia,tristate = <TEGRA_PIN_DISABLE>;
780 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 781 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
781 }; 782 };
782 sdmmc4_dat2_paa2 { 783 sdmmc4-dat2-paa2 {
783 nvidia,pins = "sdmmc4_dat2_paa2"; 784 nvidia,pins = "sdmmc4_dat2_paa2";
784 nvidia,function = "sdmmc4"; 785 nvidia,function = "sdmmc4";
785 nvidia,pull = <TEGRA_PIN_PULL_UP>; 786 nvidia,pull = <TEGRA_PIN_PULL_UP>;
786 nvidia,tristate = <TEGRA_PIN_DISABLE>; 787 nvidia,tristate = <TEGRA_PIN_DISABLE>;
787 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 788 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
788 }; 789 };
789 sdmmc4_dat3_paa3 { 790 sdmmc4-dat3-paa3 {
790 nvidia,pins = "sdmmc4_dat3_paa3"; 791 nvidia,pins = "sdmmc4_dat3_paa3";
791 nvidia,function = "sdmmc4"; 792 nvidia,function = "sdmmc4";
792 nvidia,pull = <TEGRA_PIN_PULL_UP>; 793 nvidia,pull = <TEGRA_PIN_PULL_UP>;
793 nvidia,tristate = <TEGRA_PIN_DISABLE>; 794 nvidia,tristate = <TEGRA_PIN_DISABLE>;
794 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 795 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
795 }; 796 };
796 sdmmc4_dat4_paa4 { 797 sdmmc4-dat4-paa4 {
797 nvidia,pins = "sdmmc4_dat4_paa4"; 798 nvidia,pins = "sdmmc4_dat4_paa4";
798 nvidia,function = "sdmmc4"; 799 nvidia,function = "sdmmc4";
799 nvidia,pull = <TEGRA_PIN_PULL_UP>; 800 nvidia,pull = <TEGRA_PIN_PULL_UP>;
800 nvidia,tristate = <TEGRA_PIN_DISABLE>; 801 nvidia,tristate = <TEGRA_PIN_DISABLE>;
801 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 802 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
802 }; 803 };
803 sdmmc4_dat5_paa5 { 804 sdmmc4-dat5-paa5 {
804 nvidia,pins = "sdmmc4_dat5_paa5"; 805 nvidia,pins = "sdmmc4_dat5_paa5";
805 nvidia,function = "sdmmc4"; 806 nvidia,function = "sdmmc4";
806 nvidia,pull = <TEGRA_PIN_PULL_UP>; 807 nvidia,pull = <TEGRA_PIN_PULL_UP>;
807 nvidia,tristate = <TEGRA_PIN_DISABLE>; 808 nvidia,tristate = <TEGRA_PIN_DISABLE>;
808 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 809 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
809 }; 810 };
810 sdmmc4_dat6_paa6 { 811 sdmmc4-dat6-paa6 {
811 nvidia,pins = "sdmmc4_dat6_paa6"; 812 nvidia,pins = "sdmmc4_dat6_paa6";
812 nvidia,function = "sdmmc4"; 813 nvidia,function = "sdmmc4";
813 nvidia,pull = <TEGRA_PIN_PULL_UP>; 814 nvidia,pull = <TEGRA_PIN_PULL_UP>;
814 nvidia,tristate = <TEGRA_PIN_DISABLE>; 815 nvidia,tristate = <TEGRA_PIN_DISABLE>;
815 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 816 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
816 }; 817 };
817 sdmmc4_dat7_paa7 { 818 sdmmc4-dat7-paa7 {
818 nvidia,pins = "sdmmc4_dat7_paa7"; 819 nvidia,pins = "sdmmc4_dat7_paa7";
819 nvidia,function = "sdmmc4"; 820 nvidia,function = "sdmmc4";
820 nvidia,pull = <TEGRA_PIN_PULL_UP>; 821 nvidia,pull = <TEGRA_PIN_PULL_UP>;
821 nvidia,tristate = <TEGRA_PIN_DISABLE>; 822 nvidia,tristate = <TEGRA_PIN_DISABLE>;
822 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 823 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
823 }; 824 };
824 sdmmc4_clk_pcc4 { 825 sdmmc4-clk-pcc4 {
825 nvidia,pins = "sdmmc4_clk_pcc4"; 826 nvidia,pins = "sdmmc4_clk_pcc4";
826 nvidia,function = "sdmmc4"; 827 nvidia,function = "sdmmc4";
827 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 828 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
828 nvidia,tristate = <TEGRA_PIN_DISABLE>; 829 nvidia,tristate = <TEGRA_PIN_DISABLE>;
829 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 830 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
830 }; 831 };
831 sdmmc4_cmd_pt7 { 832 sdmmc4-cmd-pt7 {
832 nvidia,pins = "sdmmc4_cmd_pt7"; 833 nvidia,pins = "sdmmc4_cmd_pt7";
833 nvidia,function = "sdmmc4"; 834 nvidia,function = "sdmmc4";
834 nvidia,pull = <TEGRA_PIN_PULL_UP>; 835 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -837,7 +838,7 @@
837 }; 838 };
838 839
839 /* JTAG_RTCK */ 840 /* JTAG_RTCK */
840 jtag_rtck { 841 jtag-rtck {
841 nvidia,pins = "jtag_rtck"; 842 nvidia,pins = "jtag_rtck";
842 nvidia,function = "rtck"; 843 nvidia,function = "rtck";
843 nvidia,pull = <TEGRA_PIN_PULL_UP>; 844 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -846,7 +847,7 @@
846 }; 847 };
847 848
848 /* LAN_DEV_OFF# */ 849 /* LAN_DEV_OFF# */
849 ulpi_data5_po6 { 850 ulpi-data5-po6 {
850 nvidia,pins = "ulpi_data5_po6"; 851 nvidia,pins = "ulpi_data5_po6";
851 nvidia,function = "ulpi"; 852 nvidia,function = "ulpi";
852 nvidia,pull = <TEGRA_PIN_PULL_UP>; 853 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -855,7 +856,7 @@
855 }; 856 };
856 857
857 /* LAN_RESET# */ 858 /* LAN_RESET# */
858 kb_row10_ps2 { 859 kb-row10-ps2 {
859 nvidia,pins = "kb_row10_ps2"; 860 nvidia,pins = "kb_row10_ps2";
860 nvidia,function = "rsvd2"; 861 nvidia,function = "rsvd2";
861 nvidia,pull = <TEGRA_PIN_PULL_UP>; 862 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -864,7 +865,7 @@
864 }; 865 };
865 866
866 /* LAN_WAKE# */ 867 /* LAN_WAKE# */
867 ulpi_data4_po5 { 868 ulpi-data4-po5 {
868 nvidia,pins = "ulpi_data4_po5"; 869 nvidia,pins = "ulpi_data4_po5";
869 nvidia,function = "ulpi"; 870 nvidia,function = "ulpi";
870 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 871 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -918,35 +919,35 @@
918 }; 919 };
919 920
920 /* MCU SPI */ 921 /* MCU SPI */
921 gpio_x4_aud_px4 { 922 gpio-x4-aud-px4 {
922 nvidia,pins = "gpio_x4_aud_px4"; 923 nvidia,pins = "gpio_x4_aud_px4";
923 nvidia,function = "spi2"; 924 nvidia,function = "spi2";
924 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 925 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
925 nvidia,tristate = <TEGRA_PIN_DISABLE>; 926 nvidia,tristate = <TEGRA_PIN_DISABLE>;
926 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 927 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
927 }; 928 };
928 gpio_x5_aud_px5 { 929 gpio-x5-aud-px5 {
929 nvidia,pins = "gpio_x5_aud_px5"; 930 nvidia,pins = "gpio_x5_aud_px5";
930 nvidia,function = "spi2"; 931 nvidia,function = "spi2";
931 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 932 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
932 nvidia,tristate = <TEGRA_PIN_DISABLE>; 933 nvidia,tristate = <TEGRA_PIN_DISABLE>;
933 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 934 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
934 }; 935 };
935 gpio_x6_aud_px6 { /* MCU_CS */ 936 gpio-x6-aud-px6 { /* MCU_CS */
936 nvidia,pins = "gpio_x6_aud_px6"; 937 nvidia,pins = "gpio_x6_aud_px6";
937 nvidia,function = "spi2"; 938 nvidia,function = "spi2";
938 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 939 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
939 nvidia,tristate = <TEGRA_PIN_DISABLE>; 940 nvidia,tristate = <TEGRA_PIN_DISABLE>;
940 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 941 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
941 }; 942 };
942 gpio_x7_aud_px7 { 943 gpio-x7-aud-px7 {
943 nvidia,pins = "gpio_x7_aud_px7"; 944 nvidia,pins = "gpio_x7_aud_px7";
944 nvidia,function = "spi2"; 945 nvidia,function = "spi2";
945 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 946 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
946 nvidia,tristate = <TEGRA_PIN_ENABLE>; 947 nvidia,tristate = <TEGRA_PIN_ENABLE>;
947 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 948 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
948 }; 949 };
949 gpio_w2_aud_pw2 { /* MCU_CSEZP */ 950 gpio-w2-aud-pw2 { /* MCU_CSEZP */
950 nvidia,pins = "gpio_w2_aud_pw2"; 951 nvidia,pins = "gpio_w2_aud_pw2";
951 nvidia,function = "spi2"; 952 nvidia,function = "spi2";
952 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 953 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -955,7 +956,7 @@
955 }; 956 };
956 957
957 /* PMIC_CLK_32K */ 958 /* PMIC_CLK_32K */
958 clk_32k_in { 959 clk-32k-in {
959 nvidia,pins = "clk_32k_in"; 960 nvidia,pins = "clk_32k_in";
960 nvidia,function = "clk"; 961 nvidia,function = "clk";
961 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 962 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -964,7 +965,7 @@
964 }; 965 };
965 966
966 /* PMIC_CPU_OC_INT */ 967 /* PMIC_CPU_OC_INT */
967 clk_32k_out_pa0 { 968 clk-32k-out-pa0 {
968 nvidia,pins = "clk_32k_out_pa0"; 969 nvidia,pins = "clk_32k_out_pa0";
969 nvidia,function = "soc"; 970 nvidia,function = "soc";
970 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 971 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -973,7 +974,7 @@
973 }; 974 };
974 975
975 /* PWR_I2C */ 976 /* PWR_I2C */
976 pwr_i2c_scl_pz6 { 977 pwr-i2c-scl-pz6 {
977 nvidia,pins = "pwr_i2c_scl_pz6"; 978 nvidia,pins = "pwr_i2c_scl_pz6";
978 nvidia,function = "i2cpwr"; 979 nvidia,function = "i2cpwr";
979 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 980 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -981,7 +982,7 @@
981 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 982 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
982 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 983 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
983 }; 984 };
984 pwr_i2c_sda_pz7 { 985 pwr-i2c-sda-pz7 {
985 nvidia,pins = "pwr_i2c_sda_pz7"; 986 nvidia,pins = "pwr_i2c_sda_pz7";
986 nvidia,function = "i2cpwr"; 987 nvidia,function = "i2cpwr";
987 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 988 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -991,7 +992,7 @@
991 }; 992 };
992 993
993 /* PWR_INT_N */ 994 /* PWR_INT_N */
994 pwr_int_n { 995 pwr-int-n {
995 nvidia,pins = "pwr_int_n"; 996 nvidia,pins = "pwr_int_n";
996 nvidia,function = "pmi"; 997 nvidia,function = "pmi";
997 nvidia,pull = <TEGRA_PIN_PULL_UP>; 998 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -1009,7 +1010,7 @@
1009 }; 1010 };
1010 1011
1011 /* RESET_OUT_N */ 1012 /* RESET_OUT_N */
1012 reset_out_n { 1013 reset-out-n {
1013 nvidia,pins = "reset_out_n"; 1014 nvidia,pins = "reset_out_n";
1014 nvidia,function = "reset_out_n"; 1015 nvidia,function = "reset_out_n";
1015 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1016 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1018,14 +1019,14 @@
1018 }; 1019 };
1019 1020
1020 /* SHIFT_CTRL_DIR_IN */ 1021 /* SHIFT_CTRL_DIR_IN */
1021 kb_row0_pr0 { 1022 kb-row0-pr0 {
1022 nvidia,pins = "kb_row0_pr0"; 1023 nvidia,pins = "kb_row0_pr0";
1023 nvidia,function = "rsvd2"; 1024 nvidia,function = "rsvd2";
1024 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1025 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1025 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1026 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1026 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1027 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1027 }; 1028 };
1028 kb_row1_pr1 { 1029 kb-row1-pr1 {
1029 nvidia,pins = "kb_row1_pr1"; 1030 nvidia,pins = "kb_row1_pr1";
1030 nvidia,function = "rsvd2"; 1031 nvidia,function = "rsvd2";
1031 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1032 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1034,7 +1035,7 @@
1034 }; 1035 };
1035 1036
1036 /* Configure level-shifter as output for HDA */ 1037 /* Configure level-shifter as output for HDA */
1037 kb_row11_ps3 { 1038 kb-row11-ps3 {
1038 nvidia,pins = "kb_row11_ps3"; 1039 nvidia,pins = "kb_row11_ps3";
1039 nvidia,function = "rsvd2"; 1040 nvidia,function = "rsvd2";
1040 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1041 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -1043,21 +1044,21 @@
1043 }; 1044 };
1044 1045
1045 /* SHIFT_CTRL_DIR_OUT */ 1046 /* SHIFT_CTRL_DIR_OUT */
1046 kb_col5_pq5 { 1047 kb-col5-pq5 {
1047 nvidia,pins = "kb_col5_pq5"; 1048 nvidia,pins = "kb_col5_pq5";
1048 nvidia,function = "rsvd2"; 1049 nvidia,function = "rsvd2";
1049 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1050 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1050 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1051 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1051 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1052 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1052 }; 1053 };
1053 kb_col6_pq6 { 1054 kb-col6-pq6 {
1054 nvidia,pins = "kb_col6_pq6"; 1055 nvidia,pins = "kb_col6_pq6";
1055 nvidia,function = "rsvd2"; 1056 nvidia,function = "rsvd2";
1056 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1057 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1057 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1058 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1058 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1059 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1059 }; 1060 };
1060 kb_col7_pq7 { 1061 kb-col7-pq7 {
1061 nvidia,pins = "kb_col7_pq7"; 1062 nvidia,pins = "kb_col7_pq7";
1062 nvidia,function = "rsvd2"; 1063 nvidia,function = "rsvd2";
1063 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1064 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -1066,35 +1067,35 @@
1066 }; 1067 };
1067 1068
1068 /* SHIFT_CTRL_OE */ 1069 /* SHIFT_CTRL_OE */
1069 kb_col0_pq0 { 1070 kb-col0-pq0 {
1070 nvidia,pins = "kb_col0_pq0"; 1071 nvidia,pins = "kb_col0_pq0";
1071 nvidia,function = "rsvd2"; 1072 nvidia,function = "rsvd2";
1072 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1073 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1073 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1074 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1074 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1075 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1075 }; 1076 };
1076 kb_col1_pq1 { 1077 kb-col1-pq1 {
1077 nvidia,pins = "kb_col1_pq1"; 1078 nvidia,pins = "kb_col1_pq1";
1078 nvidia,function = "rsvd2"; 1079 nvidia,function = "rsvd2";
1079 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1080 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1080 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1081 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1081 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1082 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1082 }; 1083 };
1083 kb_col2_pq2 { 1084 kb-col2-pq2 {
1084 nvidia,pins = "kb_col2_pq2"; 1085 nvidia,pins = "kb_col2_pq2";
1085 nvidia,function = "rsvd2"; 1086 nvidia,function = "rsvd2";
1086 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1087 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1087 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1088 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1088 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1089 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1089 }; 1090 };
1090 kb_col4_pq4 { 1091 kb-col4-pq4 {
1091 nvidia,pins = "kb_col4_pq4"; 1092 nvidia,pins = "kb_col4_pq4";
1092 nvidia,function = "kbc"; 1093 nvidia,function = "kbc";
1093 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1094 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1094 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1095 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1095 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1096 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1096 }; 1097 };
1097 kb_row2_pr2 { 1098 kb-row2-pr2 {
1098 nvidia,pins = "kb_row2_pr2"; 1099 nvidia,pins = "kb_row2_pr2";
1099 nvidia,function = "rsvd2"; 1100 nvidia,function = "rsvd2";
1100 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1101 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1112,7 +1113,7 @@
1112 }; 1113 };
1113 1114
1114 /* TOUCH_INT */ 1115 /* TOUCH_INT */
1115 gpio_w3_aud_pw3 { 1116 gpio-w3-aud-pw3 {
1116 nvidia,pins = "gpio_w3_aud_pw3"; 1117 nvidia,pins = "gpio_w3_aud_pw3";
1117 nvidia,function = "spi6"; 1118 nvidia,function = "spi6";
1118 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1119 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1253,189 +1254,189 @@
1253 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1254 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1254 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1255 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1255 }; 1256 };
1256 dap1_fs_pn0 { /* NC */ 1257 dap1-fs-pn0 { /* NC */
1257 nvidia,pins = "dap1_fs_pn0"; 1258 nvidia,pins = "dap1_fs_pn0";
1258 nvidia,function = "rsvd4"; 1259 nvidia,function = "rsvd4";
1259 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1260 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1260 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1261 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1261 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1262 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1262 }; 1263 };
1263 dap1_din_pn1 { /* NC */ 1264 dap1-din-pn1 { /* NC */
1264 nvidia,pins = "dap1_din_pn1"; 1265 nvidia,pins = "dap1_din_pn1";
1265 nvidia,function = "rsvd4"; 1266 nvidia,function = "rsvd4";
1266 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1267 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1267 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1268 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1268 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1269 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1269 }; 1270 };
1270 dap1_sclk_pn3 { /* NC */ 1271 dap1-sclk-pn3 { /* NC */
1271 nvidia,pins = "dap1_sclk_pn3"; 1272 nvidia,pins = "dap1_sclk_pn3";
1272 nvidia,function = "rsvd4"; 1273 nvidia,function = "rsvd4";
1273 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1274 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1274 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1275 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1275 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1276 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1276 }; 1277 };
1277 ulpi_data7_po0 { /* NC */ 1278 ulpi-data7-po0 { /* NC */
1278 nvidia,pins = "ulpi_data7_po0"; 1279 nvidia,pins = "ulpi_data7_po0";
1279 nvidia,function = "ulpi"; 1280 nvidia,function = "ulpi";
1280 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1281 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1281 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1282 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1282 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1283 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1283 }; 1284 };
1284 ulpi_data0_po1 { /* NC */ 1285 ulpi-data0-po1 { /* NC */
1285 nvidia,pins = "ulpi_data0_po1"; 1286 nvidia,pins = "ulpi_data0_po1";
1286 nvidia,function = "ulpi"; 1287 nvidia,function = "ulpi";
1287 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1288 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1288 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1289 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1289 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1290 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1290 }; 1291 };
1291 ulpi_data1_po2 { /* NC */ 1292 ulpi-data1-po2 { /* NC */
1292 nvidia,pins = "ulpi_data1_po2"; 1293 nvidia,pins = "ulpi_data1_po2";
1293 nvidia,function = "ulpi"; 1294 nvidia,function = "ulpi";
1294 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1295 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1295 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1296 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1296 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1297 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1297 }; 1298 };
1298 ulpi_data2_po3 { /* NC */ 1299 ulpi-data2-po3 { /* NC */
1299 nvidia,pins = "ulpi_data2_po3"; 1300 nvidia,pins = "ulpi_data2_po3";
1300 nvidia,function = "ulpi"; 1301 nvidia,function = "ulpi";
1301 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1302 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1302 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1303 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1303 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1304 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1304 }; 1305 };
1305 ulpi_data3_po4 { /* NC */ 1306 ulpi-data3-po4 { /* NC */
1306 nvidia,pins = "ulpi_data3_po4"; 1307 nvidia,pins = "ulpi_data3_po4";
1307 nvidia,function = "ulpi"; 1308 nvidia,function = "ulpi";
1308 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1309 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1309 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1310 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1310 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1311 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1311 }; 1312 };
1312 ulpi_data6_po7 { /* NC */ 1313 ulpi-data6-po7 { /* NC */
1313 nvidia,pins = "ulpi_data6_po7"; 1314 nvidia,pins = "ulpi_data6_po7";
1314 nvidia,function = "ulpi"; 1315 nvidia,function = "ulpi";
1315 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1316 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1316 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1317 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1317 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1318 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1318 }; 1319 };
1319 dap4_fs_pp4 { /* NC */ 1320 dap4-fs-pp4 { /* NC */
1320 nvidia,pins = "dap4_fs_pp4"; 1321 nvidia,pins = "dap4_fs_pp4";
1321 nvidia,function = "rsvd4"; 1322 nvidia,function = "rsvd4";
1322 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1323 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1323 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1324 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1324 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1325 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1325 }; 1326 };
1326 dap4_din_pp5 { /* NC */ 1327 dap4-din-pp5 { /* NC */
1327 nvidia,pins = "dap4_din_pp5"; 1328 nvidia,pins = "dap4_din_pp5";
1328 nvidia,function = "rsvd3"; 1329 nvidia,function = "rsvd3";
1329 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1330 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1330 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1331 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1331 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1332 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1332 }; 1333 };
1333 dap4_dout_pp6 { /* NC */ 1334 dap4-dout-pp6 { /* NC */
1334 nvidia,pins = "dap4_dout_pp6"; 1335 nvidia,pins = "dap4_dout_pp6";
1335 nvidia,function = "rsvd4"; 1336 nvidia,function = "rsvd4";
1336 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1337 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1337 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1338 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1338 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1339 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1339 }; 1340 };
1340 dap4_sclk_pp7 { /* NC */ 1341 dap4-sclk-pp7 { /* NC */
1341 nvidia,pins = "dap4_sclk_pp7"; 1342 nvidia,pins = "dap4_sclk_pp7";
1342 nvidia,function = "rsvd3"; 1343 nvidia,function = "rsvd3";
1343 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1344 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1344 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1345 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1345 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1346 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1346 }; 1347 };
1347 kb_col3_pq3 { /* NC */ 1348 kb-col3-pq3 { /* NC */
1348 nvidia,pins = "kb_col3_pq3"; 1349 nvidia,pins = "kb_col3_pq3";
1349 nvidia,function = "kbc"; 1350 nvidia,function = "kbc";
1350 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1351 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1351 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1352 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1352 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1353 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1353 }; 1354 };
1354 kb_row3_pr3 { /* NC */ 1355 kb-row3-pr3 { /* NC */
1355 nvidia,pins = "kb_row3_pr3"; 1356 nvidia,pins = "kb_row3_pr3";
1356 nvidia,function = "kbc"; 1357 nvidia,function = "kbc";
1357 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1358 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1358 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1359 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1359 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1360 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1360 }; 1361 };
1361 kb_row4_pr4 { /* NC */ 1362 kb-row4-pr4 { /* NC */
1362 nvidia,pins = "kb_row4_pr4"; 1363 nvidia,pins = "kb_row4_pr4";
1363 nvidia,function = "rsvd3"; 1364 nvidia,function = "rsvd3";
1364 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1365 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1365 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1366 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1366 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1367 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1367 }; 1368 };
1368 kb_row5_pr5 { /* NC */ 1369 kb-row5-pr5 { /* NC */
1369 nvidia,pins = "kb_row5_pr5"; 1370 nvidia,pins = "kb_row5_pr5";
1370 nvidia,function = "rsvd3"; 1371 nvidia,function = "rsvd3";
1371 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1372 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1372 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1373 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1373 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1374 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1374 }; 1375 };
1375 kb_row6_pr6 { /* NC */ 1376 kb-row6-pr6 { /* NC */
1376 nvidia,pins = "kb_row6_pr6"; 1377 nvidia,pins = "kb_row6_pr6";
1377 nvidia,function = "kbc"; 1378 nvidia,function = "kbc";
1378 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1379 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1379 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1380 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1380 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1381 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1381 }; 1382 };
1382 kb_row7_pr7 { /* NC */ 1383 kb-row7-pr7 { /* NC */
1383 nvidia,pins = "kb_row7_pr7"; 1384 nvidia,pins = "kb_row7_pr7";
1384 nvidia,function = "rsvd2"; 1385 nvidia,function = "rsvd2";
1385 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1386 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1386 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1387 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1387 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1388 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1388 }; 1389 };
1389 kb_row8_ps0 { /* NC */ 1390 kb-row8-ps0 { /* NC */
1390 nvidia,pins = "kb_row8_ps0"; 1391 nvidia,pins = "kb_row8_ps0";
1391 nvidia,function = "rsvd2"; 1392 nvidia,function = "rsvd2";
1392 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1393 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1393 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1394 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1394 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1395 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1395 }; 1396 };
1396 kb_row9_ps1 { /* NC */ 1397 kb-row9-ps1 { /* NC */
1397 nvidia,pins = "kb_row9_ps1"; 1398 nvidia,pins = "kb_row9_ps1";
1398 nvidia,function = "rsvd2"; 1399 nvidia,function = "rsvd2";
1399 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1400 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1400 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1401 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1401 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1402 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1402 }; 1403 };
1403 kb_row12_ps4 { /* NC */ 1404 kb-row12-ps4 { /* NC */
1404 nvidia,pins = "kb_row12_ps4"; 1405 nvidia,pins = "kb_row12_ps4";
1405 nvidia,function = "rsvd2"; 1406 nvidia,function = "rsvd2";
1406 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1407 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1407 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1408 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1408 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1409 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1409 }; 1410 };
1410 kb_row13_ps5 { /* NC */ 1411 kb-row13-ps5 { /* NC */
1411 nvidia,pins = "kb_row13_ps5"; 1412 nvidia,pins = "kb_row13_ps5";
1412 nvidia,function = "rsvd2"; 1413 nvidia,function = "rsvd2";
1413 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1414 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1414 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1415 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1415 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1416 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1416 }; 1417 };
1417 kb_row14_ps6 { /* NC */ 1418 kb-row14-ps6 { /* NC */
1418 nvidia,pins = "kb_row14_ps6"; 1419 nvidia,pins = "kb_row14_ps6";
1419 nvidia,function = "rsvd2"; 1420 nvidia,function = "rsvd2";
1420 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1421 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1421 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1422 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1422 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1423 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1423 }; 1424 };
1424 kb_row15_ps7 { /* NC */ 1425 kb-row15-ps7 { /* NC */
1425 nvidia,pins = "kb_row15_ps7"; 1426 nvidia,pins = "kb_row15_ps7";
1426 nvidia,function = "rsvd3"; 1427 nvidia,function = "rsvd3";
1427 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1428 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1428 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1429 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1429 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1430 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1430 }; 1431 };
1431 kb_row16_pt0 { /* NC */ 1432 kb-row16-pt0 { /* NC */
1432 nvidia,pins = "kb_row16_pt0"; 1433 nvidia,pins = "kb_row16_pt0";
1433 nvidia,function = "rsvd2"; 1434 nvidia,function = "rsvd2";
1434 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1435 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1435 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1436 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1436 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1437 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1437 }; 1438 };
1438 kb_row17_pt1 { /* NC */ 1439 kb-row17-pt1 { /* NC */
1439 nvidia,pins = "kb_row17_pt1"; 1440 nvidia,pins = "kb_row17_pt1";
1440 nvidia,function = "rsvd2"; 1441 nvidia,function = "rsvd2";
1441 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1442 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1467,14 +1468,14 @@
1467 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1468 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1468 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1469 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1469 }; 1470 };
1470 gpio_x1_aud_px1 { /* NC */ 1471 gpio-x1-aud-px1 { /* NC */
1471 nvidia,pins = "gpio_x1_aud_px1"; 1472 nvidia,pins = "gpio_x1_aud_px1";
1472 nvidia,function = "rsvd2"; 1473 nvidia,function = "rsvd2";
1473 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1474 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1474 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1475 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1475 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1476 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1476 }; 1477 };
1477 gpio_x3_aud_px3 { /* NC */ 1478 gpio-x3-aud-px3 { /* NC */
1478 nvidia,pins = "gpio_x3_aud_px3"; 1479 nvidia,pins = "gpio_x3_aud_px3";
1479 nvidia,function = "rsvd4"; 1480 nvidia,function = "rsvd4";
1480 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1481 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1502,14 +1503,14 @@
1502 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1503 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1503 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1504 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1504 }; 1505 };
1505 clk3_req_pee1 { /* NC */ 1506 clk3-req-pee1 { /* NC */
1506 nvidia,pins = "clk3_req_pee1"; 1507 nvidia,pins = "clk3_req_pee1";
1507 nvidia,function = "rsvd2"; 1508 nvidia,function = "rsvd2";
1508 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1509 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1509 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1510 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1510 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1511 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1511 }; 1512 };
1512 dap_mclk1_req_pee2 { /* NC */ 1513 dap-mclk1-req-pee2 { /* NC */
1513 nvidia,pins = "dap_mclk1_req_pee2"; 1514 nvidia,pins = "dap_mclk1_req_pee2";
1514 nvidia,function = "rsvd4"; 1515 nvidia,function = "rsvd4";
1515 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1516 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1525,7 +1526,7 @@
1525 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 1526 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1
1526 * bits being set to 0xfffd according to the TRM! 1527 * bits being set to 0xfffd according to the TRM!
1527 */ 1528 */
1528 sdmmc3_clk_lb_out_pee4 { /* NC */ 1529 sdmmc3-clk-lb-out-pee4 { /* NC */
1529 nvidia,pins = "sdmmc3_clk_lb_out_pee4"; 1530 nvidia,pins = "sdmmc3_clk_lb_out_pee4";
1530 nvidia,function = "sdmmc3"; 1531 nvidia,function = "sdmmc3";
1531 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1532 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1560,8 +1561,9 @@
1560 sgtl5000: codec@a { 1561 sgtl5000: codec@a {
1561 compatible = "fsl,sgtl5000"; 1562 compatible = "fsl,sgtl5000";
1562 reg = <0x0a>; 1563 reg = <0x0a>;
1563 VDDA-supply = <&reg_3v3>; 1564 VDDA-supply = <&reg_module_3v3_audio>;
1564 VDDIO-supply = <&vddio_1v8>; 1565 VDDD-supply = <&reg_1v8_vddio>;
1566 VDDIO-supply = <&reg_1v8_vddio>;
1565 clocks = <&tegra_car TEGRA124_CLK_EXTERN1>; 1567 clocks = <&tegra_car TEGRA124_CLK_EXTERN1>;
1566 }; 1568 };
1567 1569
@@ -1578,14 +1580,14 @@
1578 pinctrl-0 = <&as3722_default>; 1580 pinctrl-0 = <&as3722_default>;
1579 1581
1580 as3722_default: pinmux { 1582 as3722_default: pinmux {
1581 gpio2_7 { 1583 gpio2-7 {
1582 pins = "gpio2", /* PWR_EN_+V3.3 */ 1584 pins = "gpio2", /* PWR_EN_+V3.3 */
1583 "gpio7"; /* +V1.6_LPO */ 1585 "gpio7"; /* +V1.6_LPO */
1584 function = "gpio"; 1586 function = "gpio";
1585 bias-pull-up; 1587 bias-pull-up;
1586 }; 1588 };
1587 1589
1588 gpio0_1_3_4_5_6 { 1590 gpio0-1-3-4-5-6 {
1589 pins = "gpio0", "gpio1", "gpio3", 1591 pins = "gpio0", "gpio1", "gpio3",
1590 "gpio4", "gpio5", "gpio6"; 1592 "gpio4", "gpio5", "gpio6";
1591 bias-high-impedance; 1593 bias-high-impedance;
@@ -1593,18 +1595,18 @@
1593 }; 1595 };
1594 1596
1595 regulators { 1597 regulators {
1596 vsup-sd2-supply = <&reg_3v3>; 1598 vsup-sd2-supply = <&reg_module_3v3>;
1597 vsup-sd3-supply = <&reg_3v3>; 1599 vsup-sd3-supply = <&reg_module_3v3>;
1598 vsup-sd4-supply = <&reg_3v3>; 1600 vsup-sd4-supply = <&reg_module_3v3>;
1599 vsup-sd5-supply = <&reg_3v3>; 1601 vsup-sd5-supply = <&reg_module_3v3>;
1600 vin-ldo0-supply = <&vddio_ddr_1v35>; 1602 vin-ldo0-supply = <&reg_1v35_vddio_ddr>;
1601 vin-ldo1-6-supply = <&reg_3v3>; 1603 vin-ldo1-6-supply = <&reg_module_3v3>;
1602 vin-ldo2-5-7-supply = <&vddio_1v8>; 1604 vin-ldo2-5-7-supply = <&reg_1v8_vddio>;
1603 vin-ldo3-4-supply = <&reg_3v3>; 1605 vin-ldo3-4-supply = <&reg_module_3v3>;
1604 vin-ldo9-10-supply = <&reg_3v3>; 1606 vin-ldo9-10-supply = <&reg_module_3v3>;
1605 vin-ldo11-supply = <&reg_3v3>; 1607 vin-ldo11-supply = <&reg_module_3v3>;
1606 1608
1607 vdd_cpu: sd0 { 1609 reg_vdd_cpu: sd0 {
1608 regulator-name = "+VDD_CPU_AP"; 1610 regulator-name = "+VDD_CPU_AP";
1609 regulator-min-microvolt = <700000>; 1611 regulator-min-microvolt = <700000>;
1610 regulator-max-microvolt = <1400000>; 1612 regulator-max-microvolt = <1400000>;
@@ -1626,7 +1628,7 @@
1626 ams,ext-control = <1>; 1628 ams,ext-control = <1>;
1627 }; 1629 };
1628 1630
1629 vddio_ddr_1v35: sd2 { 1631 reg_1v35_vddio_ddr: sd2 {
1630 regulator-name = 1632 regulator-name =
1631 "+V1.35_VDDIO_DDR(sd2)"; 1633 "+V1.35_VDDIO_DDR(sd2)";
1632 regulator-min-microvolt = <1350000>; 1634 regulator-min-microvolt = <1350000>;
@@ -1644,13 +1646,13 @@
1644 regulator-boot-on; 1646 regulator-boot-on;
1645 }; 1647 };
1646 1648
1647 vdd_1v05: sd4 { 1649 reg_1v05_vdd: sd4 {
1648 regulator-name = "+V1.05"; 1650 regulator-name = "+V1.05";
1649 regulator-min-microvolt = <1050000>; 1651 regulator-min-microvolt = <1050000>;
1650 regulator-max-microvolt = <1050000>; 1652 regulator-max-microvolt = <1050000>;
1651 }; 1653 };
1652 1654
1653 vddio_1v8: sd5 { 1655 reg_1v8_vddio: sd5 {
1654 regulator-name = "+V1.8"; 1656 regulator-name = "+V1.8";
1655 regulator-min-microvolt = <1800000>; 1657 regulator-min-microvolt = <1800000>;
1656 regulator-max-microvolt = <1800000>; 1658 regulator-max-microvolt = <1800000>;
@@ -1658,7 +1660,7 @@
1658 regulator-always-on; 1660 regulator-always-on;
1659 }; 1661 };
1660 1662
1661 vdd_gpu: sd6 { 1663 reg_vdd_gpu: sd6 {
1662 regulator-name = "+VDD_GPU_AP"; 1664 regulator-name = "+VDD_GPU_AP";
1663 regulator-min-microvolt = <650000>; 1665 regulator-min-microvolt = <650000>;
1664 regulator-max-microvolt = <1200000>; 1666 regulator-max-microvolt = <1200000>;
@@ -1668,7 +1670,7 @@
1668 regulator-always-on; 1670 regulator-always-on;
1669 }; 1671 };
1670 1672
1671 avdd_1v05: ldo0 { 1673 reg_1v05_avdd: ldo0 {
1672 regulator-name = "+V1.05_AVDD"; 1674 regulator-name = "+V1.05_AVDD";
1673 regulator-min-microvolt = <1050000>; 1675 regulator-min-microvolt = <1050000>;
1674 regulator-max-microvolt = <1050000>; 1676 regulator-max-microvolt = <1050000>;
@@ -1743,12 +1745,13 @@
1743 * TMP451 temperature sensor 1745 * TMP451 temperature sensor
1744 * Note: THERM_N directly connected to AS3722 PMIC THERM 1746 * Note: THERM_N directly connected to AS3722 PMIC THERM
1745 */ 1747 */
1746 temperature-sensor@4c { 1748 temp-sensor@4c {
1747 compatible = "ti,tmp451"; 1749 compatible = "ti,tmp451";
1748 reg = <0x4c>; 1750 reg = <0x4c>;
1749 interrupt-parent = <&gpio>; 1751 interrupt-parent = <&gpio>;
1750 interrupts = <TEGRA_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>; 1752 interrupts = <TEGRA_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
1751 #thermal-sensor-cells = <1>; 1753 #thermal-sensor-cells = <1>;
1754 vcc-supply = <&reg_module_3v3>;
1752 }; 1755 };
1753 }; 1756 };
1754 1757
@@ -1780,9 +1783,9 @@
1780 sata@70020000 { 1783 sata@70020000 {
1781 phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>; 1784 phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>;
1782 phy-names = "sata-0"; 1785 phy-names = "sata-0";
1783 avdd-supply = <&vdd_1v05>; 1786 avdd-supply = <&reg_1v05_vdd>;
1784 hvdd-supply = <&reg_3v3>; 1787 hvdd-supply = <&reg_module_3v3>;
1785 vddio-supply = <&vdd_1v05>; 1788 vddio-supply = <&reg_1v05_vdd>;
1786 }; 1789 };
1787 1790
1788 usb@70090000 { 1791 usb@70090000 {
@@ -1793,14 +1796,14 @@
1793 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>, 1796 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>,
1794 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>; 1797 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>;
1795 phy-names = "usb2-0", "usb3-1", "usb2-1", "usb2-2", "usb3-0"; 1798 phy-names = "usb2-0", "usb3-1", "usb2-1", "usb2-2", "usb3-0";
1796 avddio-pex-supply = <&vdd_1v05>; 1799 avddio-pex-supply = <&reg_1v05_vdd>;
1797 avdd-pll-erefe-supply = <&avdd_1v05>; 1800 avdd-pll-erefe-supply = <&reg_1v05_avdd>;
1798 avdd-pll-utmip-supply = <&vddio_1v8>; 1801 avdd-pll-utmip-supply = <&reg_1v8_vddio>;
1799 avdd-usb-ss-pll-supply = <&vdd_1v05>; 1802 avdd-usb-ss-pll-supply = <&reg_1v05_vdd>;
1800 avdd-usb-supply = <&reg_3v3>; 1803 avdd-usb-supply = <&reg_module_3v3>;
1801 dvddio-pex-supply = <&vdd_1v05>; 1804 dvddio-pex-supply = <&reg_1v05_vdd>;
1802 hvdd-usb-ss-pll-e-supply = <&reg_3v3>; 1805 hvdd-usb-ss-pll-e-supply = <&reg_module_3v3>;
1803 hvdd-usb-ss-supply = <&reg_3v3>; 1806 hvdd-usb-ss-supply = <&reg_module_3v3>;
1804 }; 1807 };
1805 1808
1806 padctl@7009f000 { 1809 padctl@7009f000 {
@@ -1810,18 +1813,18 @@
1810 1813
1811 lanes { 1814 lanes {
1812 usb2-0 { 1815 usb2-0 {
1813 nvidia,function = "xusb";
1814 status = "okay"; 1816 status = "okay";
1817 nvidia,function = "xusb";
1815 }; 1818 };
1816 1819
1817 usb2-1 { 1820 usb2-1 {
1818 nvidia,function = "xusb";
1819 status = "okay"; 1821 status = "okay";
1822 nvidia,function = "xusb";
1820 }; 1823 };
1821 1824
1822 usb2-2 { 1825 usb2-2 {
1823 nvidia,function = "xusb";
1824 status = "okay"; 1826 status = "okay";
1827 nvidia,function = "xusb";
1825 }; 1828 };
1826 }; 1829 };
1827 }; 1830 };
@@ -1831,28 +1834,28 @@
1831 1834
1832 lanes { 1835 lanes {
1833 pcie-0 { 1836 pcie-0 {
1834 nvidia,function = "usb3-ss";
1835 status = "okay"; 1837 status = "okay";
1838 nvidia,function = "usb3-ss";
1836 }; 1839 };
1837 1840
1838 pcie-1 { 1841 pcie-1 {
1839 nvidia,function = "usb3-ss";
1840 status = "okay"; 1842 status = "okay";
1843 nvidia,function = "usb3-ss";
1841 }; 1844 };
1842 1845
1843 pcie-2 { 1846 pcie-2 {
1844 nvidia,function = "pcie";
1845 status = "okay"; 1847 status = "okay";
1848 nvidia,function = "pcie";
1846 }; 1849 };
1847 1850
1848 pcie-3 { 1851 pcie-3 {
1849 nvidia,function = "pcie";
1850 status = "okay"; 1852 status = "okay";
1853 nvidia,function = "pcie";
1851 }; 1854 };
1852 1855
1853 pcie-4 { 1856 pcie-4 {
1854 nvidia,function = "pcie";
1855 status = "okay"; 1857 status = "okay";
1858 nvidia,function = "pcie";
1856 }; 1859 };
1857 }; 1860 };
1858 }; 1861 };
@@ -1862,8 +1865,8 @@
1862 1865
1863 lanes { 1866 lanes {
1864 sata-0 { 1867 sata-0 {
1865 nvidia,function = "sata";
1866 status = "okay"; 1868 status = "okay";
1869 nvidia,function = "sata";
1867 }; 1870 };
1868 }; 1871 };
1869 }; 1872 };
@@ -1874,7 +1877,6 @@
1874 usb2-0 { 1877 usb2-0 {
1875 status = "okay"; 1878 status = "okay";
1876 mode = "otg"; 1879 mode = "otg";
1877
1878 vbus-supply = <&reg_usbo1_vbus>; 1880 vbus-supply = <&reg_usbo1_vbus>;
1879 }; 1881 };
1880 1882
@@ -1882,7 +1884,6 @@
1882 usb2-1 { 1884 usb2-1 {
1883 status = "okay"; 1885 status = "okay";
1884 mode = "host"; 1886 mode = "host";
1885
1886 vbus-supply = <&reg_usbh_vbus>; 1887 vbus-supply = <&reg_usbh_vbus>;
1887 }; 1888 };
1888 1889
@@ -1890,18 +1891,19 @@
1890 usb2-2 { 1891 usb2-2 {
1891 status = "okay"; 1892 status = "okay";
1892 mode = "host"; 1893 mode = "host";
1893
1894 vbus-supply = <&reg_usbh_vbus>; 1894 vbus-supply = <&reg_usbh_vbus>;
1895 }; 1895 };
1896 1896
1897 usb3-0 { 1897 usb3-0 {
1898 nvidia,usb2-companion = <2>;
1899 status = "okay"; 1898 status = "okay";
1899 nvidia,usb2-companion = <2>;
1900 vbus-supply = <&reg_usbh_vbus>;
1900 }; 1901 };
1901 1902
1902 usb3-1 { 1903 usb3-1 {
1903 nvidia,usb2-companion = <0>;
1904 status = "okay"; 1904 status = "okay";
1905 nvidia,usb2-companion = <0>;
1906 vbus-supply = <&reg_usbo1_vbus>;
1905 }; 1907 };
1906 }; 1908 };
1907 }; 1909 };
@@ -1911,13 +1913,16 @@
1911 status = "okay"; 1913 status = "okay";
1912 bus-width = <8>; 1914 bus-width = <8>;
1913 non-removable; 1915 non-removable;
1916 vmmc-supply = <&reg_module_3v3>; /* VCC */
1917 vqmmc-supply = <&reg_1v8_vddio>; /* VCCQ */
1918 mmc-ddr-1_8v;
1914 }; 1919 };
1915 1920
1916 /* CPU DFLL clock */ 1921 /* CPU DFLL clock */
1917 clock@70110000 { 1922 clock@70110000 {
1918 status = "okay"; 1923 status = "okay";
1919 vdd-cpu-supply = <&vdd_cpu>;
1920 nvidia,i2c-fs-rate = <400000>; 1924 nvidia,i2c-fs-rate = <400000>;
1925 vdd-cpu-supply = <&reg_vdd_cpu>;
1921 }; 1926 };
1922 1927
1923 ahub@70300000 { 1928 ahub@70300000 {
@@ -1926,22 +1931,15 @@
1926 }; 1931 };
1927 }; 1932 };
1928 1933
1929 clocks { 1934 clk32k_in: osc3 {
1930 compatible = "simple-bus"; 1935 compatible = "fixed-clock";
1931 #address-cells = <1>; 1936 #clock-cells = <0>;
1932 #size-cells = <0>; 1937 clock-frequency = <32768>;
1933
1934 clk32k_in: clock@0 {
1935 compatible = "fixed-clock";
1936 reg = <0>;
1937 #clock-cells = <0>;
1938 clock-frequency = <32768>;
1939 };
1940 }; 1938 };
1941 1939
1942 cpus { 1940 cpus {
1943 cpu@0 { 1941 cpu@0 {
1944 vdd-cpu-supply = <&vdd_cpu>; 1942 vdd-cpu-supply = <&reg_vdd_cpu>;
1945 }; 1943 };
1946 }; 1944 };
1947 1945
@@ -1951,7 +1949,7 @@
1951 regulator-min-microvolt = <1050000>; 1949 regulator-min-microvolt = <1050000>;
1952 regulator-max-microvolt = <1050000>; 1950 regulator-max-microvolt = <1050000>;
1953 gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>; 1951 gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>;
1954 vin-supply = <&vdd_1v05>; 1952 vin-supply = <&reg_1v05_vdd>;
1955 }; 1953 };
1956 1954
1957 reg_3v3_mxm: regulator-3v3-mxm { 1955 reg_3v3_mxm: regulator-3v3-mxm {
@@ -1963,7 +1961,15 @@
1963 regulator-boot-on; 1961 regulator-boot-on;
1964 }; 1962 };
1965 1963
1966 reg_3v3: regulator-3v3 { 1964 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
1965 compatible = "regulator-fixed";
1966 regulator-name = "+V3.3_AVDD_HDMI";
1967 regulator-min-microvolt = <3300000>;
1968 regulator-max-microvolt = <3300000>;
1969 vin-supply = <&reg_1v05_vdd>;
1970 };
1971
1972 reg_module_3v3: regulator-module-3v3 {
1967 compatible = "regulator-fixed"; 1973 compatible = "regulator-fixed";
1968 regulator-name = "+V3.3"; 1974 regulator-name = "+V3.3";
1969 regulator-min-microvolt = <3300000>; 1975 regulator-min-microvolt = <3300000>;
@@ -1976,12 +1982,12 @@
1976 vin-supply = <&reg_3v3_mxm>; 1982 vin-supply = <&reg_3v3_mxm>;
1977 }; 1983 };
1978 1984
1979 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi { 1985 reg_module_3v3_audio: regulator-module-3v3-audio {
1980 compatible = "regulator-fixed"; 1986 compatible = "regulator-fixed";
1981 regulator-name = "+V3.3_AVDD_HDMI"; 1987 regulator-name = "+V3.3_AUDIO_AVDD_S";
1982 regulator-min-microvolt = <3300000>; 1988 regulator-min-microvolt = <3300000>;
1983 regulator-max-microvolt = <3300000>; 1989 regulator-max-microvolt = <3300000>;
1984 vin-supply = <&vdd_1v05>; 1990 regulator-always-on;
1985 }; 1991 };
1986 1992
1987 sound { 1993 sound {
@@ -2035,7 +2041,7 @@
2035 2041
2036&gpio { 2042&gpio {
2037 /* I210 Gigabit Ethernet Controller Reset */ 2043 /* I210 Gigabit Ethernet Controller Reset */
2038 lan_reset_n { 2044 lan-reset-n {
2039 gpio-hog; 2045 gpio-hog;
2040 gpios = <TEGRA_GPIO(S, 2) GPIO_ACTIVE_HIGH>; 2046 gpios = <TEGRA_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
2041 output-high; 2047 output-high;
@@ -2043,7 +2049,7 @@
2043 }; 2049 };
2044 2050
2045 /* Control MXM3 pin 26 Reset Module Output Carrier Input */ 2051 /* Control MXM3 pin 26 Reset Module Output Carrier Input */
2046 reset_moci_ctrl { 2052 reset-moci-ctrl {
2047 gpio-hog; 2053 gpio-hog;
2048 gpios = <TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>; 2054 gpios = <TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>;
2049 output-high; 2055 output-high;
diff --git a/arch/arm/boot/dts/tegra124-apalis.dtsi b/arch/arm/boot/dts/tegra124-apalis.dtsi
index 0f0d4a4988b9..13c93cd507d8 100644
--- a/arch/arm/boot/dts/tegra124-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra124-apalis.dtsi
@@ -47,22 +47,19 @@
47 * Compatible for Revisions 2GB: V1.0A, V1.0B, V1.1A 47 * Compatible for Revisions 2GB: V1.0A, V1.0B, V1.1A
48 */ 48 */
49/ { 49/ {
50 model = "Toradex Apalis TK1";
51 compatible = "toradex,apalis-tk1", "nvidia,tegra124";
52
53 memory@80000000 { 50 memory@80000000 {
54 reg = <0x0 0x80000000 0x0 0x80000000>; 51 reg = <0x0 0x80000000 0x0 0x80000000>;
55 }; 52 };
56 53
57 pcie@1003000 { 54 pcie@1003000 {
58 status = "okay"; 55 status = "okay";
59 avddio-pex-supply = <&vdd_1v05>; 56 avddio-pex-supply = <&reg_1v05_vdd>;
60 avdd-pex-pll-supply = <&vdd_1v05>; 57 avdd-pex-pll-supply = <&reg_1v05_vdd>;
61 avdd-pll-erefe-supply = <&avdd_1v05>; 58 avdd-pll-erefe-supply = <&reg_1v05_avdd>;
62 dvddio-pex-supply = <&vdd_1v05>; 59 dvddio-pex-supply = <&reg_1v05_vdd>;
63 hvdd-pex-pll-e-supply = <&reg_3v3>; 60 hvdd-pex-pll-e-supply = <&reg_module_3v3>;
64 hvdd-pex-supply = <&reg_3v3>; 61 hvdd-pex-supply = <&reg_module_3v3>;
65 vddio-pex-ctl-supply = <&reg_3v3>; 62 vddio-pex-ctl-supply = <&reg_module_3v3>;
66 63
67 /* Apalis PCIe (additional lane Apalis type specific) */ 64 /* Apalis PCIe (additional lane Apalis type specific) */
68 pci@1,0 { 65 pci@1,0 {
@@ -77,16 +74,21 @@
77 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>; 74 phys = <&{/padctl@7009f000/pads/pcie/lanes/pcie-2}>;
78 phy-names = "pcie-0"; 75 phy-names = "pcie-0";
79 status = "okay"; 76 status = "okay";
77
78 pcie@0 {
79 reg = <0 0 0 0 0>;
80 local-mac-address = [00 00 00 00 00 00];
81 };
80 }; 82 };
81 }; 83 };
82 84
83 host1x@50000000 { 85 host1x@50000000 {
84 hdmi@54280000 { 86 hdmi@54280000 {
85 pll-supply = <&reg_1v05_avdd_hdmi_pll>;
86 vdd-supply = <&reg_3v3_avdd_hdmi>;
87 nvidia,ddc-i2c-bus = <&hdmi_ddc>; 87 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
88 nvidia,hpd-gpio = 88 nvidia,hpd-gpio =
89 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 89 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
90 pll-supply = <&reg_1v05_avdd_hdmi_pll>;
91 vdd-supply = <&reg_3v3_avdd_hdmi>;
90 }; 92 };
91 }; 93 };
92 94
@@ -95,44 +97,44 @@
95 * Node left disabled on purpose - the bootloader will enable 97 * Node left disabled on purpose - the bootloader will enable
96 * it after having set the VPR up 98 * it after having set the VPR up
97 */ 99 */
98 vdd-supply = <&vdd_gpu>; 100 vdd-supply = <&reg_vdd_gpu>;
99 }; 101 };
100 102
101 pinmux: pinmux@70000868 { 103 pinmux@70000868 {
102 pinctrl-names = "default"; 104 pinctrl-names = "default";
103 pinctrl-0 = <&state_default>; 105 pinctrl-0 = <&state_default>;
104 106
105 state_default: pinmux { 107 state_default: pinmux {
106 /* Analogue Audio (On-module) */ 108 /* Analogue Audio (On-module) */
107 dap3_fs_pp0 { 109 dap3-fs-pp0 {
108 nvidia,pins = "dap3_fs_pp0"; 110 nvidia,pins = "dap3_fs_pp0";
109 nvidia,function = "i2s2"; 111 nvidia,function = "i2s2";
110 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 112 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
111 nvidia,tristate = <TEGRA_PIN_DISABLE>; 113 nvidia,tristate = <TEGRA_PIN_DISABLE>;
112 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 114 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
113 }; 115 };
114 dap3_din_pp1 { 116 dap3-din-pp1 {
115 nvidia,pins = "dap3_din_pp1"; 117 nvidia,pins = "dap3_din_pp1";
116 nvidia,function = "i2s2"; 118 nvidia,function = "i2s2";
117 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 119 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
118 nvidia,tristate = <TEGRA_PIN_ENABLE>; 120 nvidia,tristate = <TEGRA_PIN_ENABLE>;
119 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 121 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
120 }; 122 };
121 dap3_dout_pp2 { 123 dap3-dout-pp2 {
122 nvidia,pins = "dap3_dout_pp2"; 124 nvidia,pins = "dap3_dout_pp2";
123 nvidia,function = "i2s2"; 125 nvidia,function = "i2s2";
124 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 126 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
125 nvidia,tristate = <TEGRA_PIN_DISABLE>; 127 nvidia,tristate = <TEGRA_PIN_DISABLE>;
126 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 128 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
127 }; 129 };
128 dap3_sclk_pp3 { 130 dap3-sclk-pp3 {
129 nvidia,pins = "dap3_sclk_pp3"; 131 nvidia,pins = "dap3_sclk_pp3";
130 nvidia,function = "i2s2"; 132 nvidia,function = "i2s2";
131 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 133 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
132 nvidia,tristate = <TEGRA_PIN_DISABLE>; 134 nvidia,tristate = <TEGRA_PIN_DISABLE>;
133 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 135 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
134 }; 136 };
135 dap_mclk1_pw4 { 137 dap-mclk1-pw4 {
136 nvidia,pins = "dap_mclk1_pw4"; 138 nvidia,pins = "dap_mclk1_pw4";
137 nvidia,function = "extperiph1"; 139 nvidia,function = "extperiph1";
138 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 140 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -159,7 +161,7 @@
159 }; 161 };
160 162
161 /* Apalis CAM1_MCLK */ 163 /* Apalis CAM1_MCLK */
162 cam_mclk_pcc0 { 164 cam-mclk-pcc0 {
163 nvidia,pins = "cam_mclk_pcc0"; 165 nvidia,pins = "cam_mclk_pcc0";
164 nvidia,function = "vi_alt3"; 166 nvidia,function = "vi_alt3";
165 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 167 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -168,28 +170,28 @@
168 }; 170 };
169 171
170 /* Apalis Digital Audio */ 172 /* Apalis Digital Audio */
171 dap2_fs_pa2 { 173 dap2-fs-pa2 {
172 nvidia,pins = "dap2_fs_pa2"; 174 nvidia,pins = "dap2_fs_pa2";
173 nvidia,function = "hda"; 175 nvidia,function = "hda";
174 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 176 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
175 nvidia,tristate = <TEGRA_PIN_DISABLE>; 177 nvidia,tristate = <TEGRA_PIN_DISABLE>;
176 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 178 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
177 }; 179 };
178 dap2_sclk_pa3 { 180 dap2-sclk-pa3 {
179 nvidia,pins = "dap2_sclk_pa3"; 181 nvidia,pins = "dap2_sclk_pa3";
180 nvidia,function = "hda"; 182 nvidia,function = "hda";
181 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 183 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
182 nvidia,tristate = <TEGRA_PIN_DISABLE>; 184 nvidia,tristate = <TEGRA_PIN_DISABLE>;
183 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 185 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
184 }; 186 };
185 dap2_din_pa4 { 187 dap2-din-pa4 {
186 nvidia,pins = "dap2_din_pa4"; 188 nvidia,pins = "dap2_din_pa4";
187 nvidia,function = "hda"; 189 nvidia,function = "hda";
188 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 190 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
189 nvidia,tristate = <TEGRA_PIN_ENABLE>; 191 nvidia,tristate = <TEGRA_PIN_ENABLE>;
190 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 192 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
191 }; 193 };
192 dap2_dout_pa5 { 194 dap2-dout-pa5 {
193 nvidia,pins = "dap2_dout_pa5"; 195 nvidia,pins = "dap2_dout_pa5";
194 nvidia,function = "hda"; 196 nvidia,function = "hda";
195 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 197 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -202,7 +204,7 @@
202 nvidia,tristate = <TEGRA_PIN_DISABLE>; 204 nvidia,tristate = <TEGRA_PIN_DISABLE>;
203 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 205 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
204 }; 206 };
205 clk3_out_pee0 { 207 clk3-out-pee0 {
206 nvidia,pins = "clk3_out_pee0"; 208 nvidia,pins = "clk3_out_pee0";
207 nvidia,function = "extperiph3"; 209 nvidia,function = "extperiph3";
208 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 210 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -211,49 +213,49 @@
211 }; 213 };
212 214
213 /* Apalis GPIO */ 215 /* Apalis GPIO */
214 ddc_scl_pv4 { 216 ddc-scl-pv4 {
215 nvidia,pins = "ddc_scl_pv4"; 217 nvidia,pins = "ddc_scl_pv4";
216 nvidia,function = "rsvd2"; 218 nvidia,function = "rsvd2";
217 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 219 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
218 nvidia,tristate = <TEGRA_PIN_DISABLE>; 220 nvidia,tristate = <TEGRA_PIN_DISABLE>;
219 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 221 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
220 }; 222 };
221 ddc_sda_pv5 { 223 ddc-sda-pv5 {
222 nvidia,pins = "ddc_sda_pv5"; 224 nvidia,pins = "ddc_sda_pv5";
223 nvidia,function = "rsvd2"; 225 nvidia,function = "rsvd2";
224 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 226 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
225 nvidia,tristate = <TEGRA_PIN_DISABLE>; 227 nvidia,tristate = <TEGRA_PIN_DISABLE>;
226 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 228 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
227 }; 229 };
228 pex_l0_rst_n_pdd1 { 230 pex-l0-rst-n-pdd1 {
229 nvidia,pins = "pex_l0_rst_n_pdd1"; 231 nvidia,pins = "pex_l0_rst_n_pdd1";
230 nvidia,function = "rsvd2"; 232 nvidia,function = "rsvd2";
231 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 233 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
232 nvidia,tristate = <TEGRA_PIN_DISABLE>; 234 nvidia,tristate = <TEGRA_PIN_DISABLE>;
233 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 235 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
234 }; 236 };
235 pex_l0_clkreq_n_pdd2 { 237 pex-l0-clkreq-n-pdd2 {
236 nvidia,pins = "pex_l0_clkreq_n_pdd2"; 238 nvidia,pins = "pex_l0_clkreq_n_pdd2";
237 nvidia,function = "rsvd2"; 239 nvidia,function = "rsvd2";
238 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 240 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
239 nvidia,tristate = <TEGRA_PIN_DISABLE>; 241 nvidia,tristate = <TEGRA_PIN_DISABLE>;
240 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 242 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
241 }; 243 };
242 pex_l1_rst_n_pdd5 { 244 pex-l1-rst-n-pdd5 {
243 nvidia,pins = "pex_l1_rst_n_pdd5"; 245 nvidia,pins = "pex_l1_rst_n_pdd5";
244 nvidia,function = "rsvd2"; 246 nvidia,function = "rsvd2";
245 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 247 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
246 nvidia,tristate = <TEGRA_PIN_DISABLE>; 248 nvidia,tristate = <TEGRA_PIN_DISABLE>;
247 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 249 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
248 }; 250 };
249 pex_l1_clkreq_n_pdd6 { 251 pex-l1-clkreq-n-pdd6 {
250 nvidia,pins = "pex_l1_clkreq_n_pdd6"; 252 nvidia,pins = "pex_l1_clkreq_n_pdd6";
251 nvidia,function = "rsvd2"; 253 nvidia,function = "rsvd2";
252 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 254 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
253 nvidia,tristate = <TEGRA_PIN_DISABLE>; 255 nvidia,tristate = <TEGRA_PIN_DISABLE>;
254 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 256 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
255 }; 257 };
256 dp_hpd_pff0 { 258 dp-hpd-pff0 {
257 nvidia,pins = "dp_hpd_pff0"; 259 nvidia,pins = "dp_hpd_pff0";
258 nvidia,function = "dp"; 260 nvidia,function = "dp";
259 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 261 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -277,7 +279,7 @@
277 }; 279 };
278 280
279 /* Apalis HDMI1_CEC */ 281 /* Apalis HDMI1_CEC */
280 hdmi_cec_pee3 { 282 hdmi-cec-pee3 {
281 nvidia,pins = "hdmi_cec_pee3"; 283 nvidia,pins = "hdmi_cec_pee3";
282 nvidia,function = "cec"; 284 nvidia,function = "cec";
283 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 285 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -287,7 +289,7 @@
287 }; 289 };
288 290
289 /* Apalis HDMI1_HPD */ 291 /* Apalis HDMI1_HPD */
290 hdmi_int_pn7 { 292 hdmi-int-pn7 {
291 nvidia,pins = "hdmi_int_pn7"; 293 nvidia,pins = "hdmi_int_pn7";
292 nvidia,function = "rsvd1"; 294 nvidia,function = "rsvd1";
293 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 295 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -297,7 +299,7 @@
297 }; 299 };
298 300
299 /* Apalis I2C1 */ 301 /* Apalis I2C1 */
300 gen1_i2c_scl_pc4 { 302 gen1-i2c-scl-pc4 {
301 nvidia,pins = "gen1_i2c_scl_pc4"; 303 nvidia,pins = "gen1_i2c_scl_pc4";
302 nvidia,function = "i2c1"; 304 nvidia,function = "i2c1";
303 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 305 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -305,7 +307,7 @@
305 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 307 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
306 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 308 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
307 }; 309 };
308 gen1_i2c_sda_pc5 { 310 gen1-i2c-sda-pc5 {
309 nvidia,pins = "gen1_i2c_sda_pc5"; 311 nvidia,pins = "gen1_i2c_sda_pc5";
310 nvidia,function = "i2c1"; 312 nvidia,function = "i2c1";
311 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 313 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -315,7 +317,7 @@
315 }; 317 };
316 318
317 /* Apalis I2C2 (DDC) */ 319 /* Apalis I2C2 (DDC) */
318 gen2_i2c_scl_pt5 { 320 gen2-i2c-scl-pt5 {
319 nvidia,pins = "gen2_i2c_scl_pt5"; 321 nvidia,pins = "gen2_i2c_scl_pt5";
320 nvidia,function = "i2c2"; 322 nvidia,function = "i2c2";
321 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 323 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -323,7 +325,7 @@
323 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 325 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
324 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 326 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
325 }; 327 };
326 gen2_i2c_sda_pt6 { 328 gen2-i2c-sda-pt6 {
327 nvidia,pins = "gen2_i2c_sda_pt6"; 329 nvidia,pins = "gen2_i2c_sda_pt6";
328 nvidia,function = "i2c2"; 330 nvidia,function = "i2c2";
329 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 331 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -333,7 +335,7 @@
333 }; 335 };
334 336
335 /* Apalis I2C3 (CAM) */ 337 /* Apalis I2C3 (CAM) */
336 cam_i2c_scl_pbb1 { 338 cam-i2c-scl-pbb1 {
337 nvidia,pins = "cam_i2c_scl_pbb1"; 339 nvidia,pins = "cam_i2c_scl_pbb1";
338 nvidia,function = "i2c3"; 340 nvidia,function = "i2c3";
339 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 341 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -341,7 +343,7 @@
341 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 343 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
342 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 344 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
343 }; 345 };
344 cam_i2c_sda_pbb2 { 346 cam-i2c-sda-pbb2 {
345 nvidia,pins = "cam_i2c_sda_pbb2"; 347 nvidia,pins = "cam_i2c_sda_pbb2";
346 nvidia,function = "i2c3"; 348 nvidia,function = "i2c3";
347 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 349 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -351,77 +353,77 @@
351 }; 353 };
352 354
353 /* Apalis MMC1 */ 355 /* Apalis MMC1 */
354 sdmmc1_cd_n_pv3 { /* CD# GPIO */ 356 sdmmc1-cd-n-pv3 { /* CD# GPIO */
355 nvidia,pins = "sdmmc1_wp_n_pv3"; 357 nvidia,pins = "sdmmc1_wp_n_pv3";
356 nvidia,function = "sdmmc1"; 358 nvidia,function = "sdmmc1";
357 nvidia,pull = <TEGRA_PIN_PULL_UP>; 359 nvidia,pull = <TEGRA_PIN_PULL_UP>;
358 nvidia,tristate = <TEGRA_PIN_ENABLE>; 360 nvidia,tristate = <TEGRA_PIN_ENABLE>;
359 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 361 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
360 }; 362 };
361 clk2_out_pw5 { /* D5 GPIO */ 363 clk2-out-pw5 { /* D5 GPIO */
362 nvidia,pins = "clk2_out_pw5"; 364 nvidia,pins = "clk2_out_pw5";
363 nvidia,function = "rsvd2"; 365 nvidia,function = "rsvd2";
364 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 366 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
365 nvidia,tristate = <TEGRA_PIN_DISABLE>; 367 nvidia,tristate = <TEGRA_PIN_DISABLE>;
366 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 368 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
367 }; 369 };
368 sdmmc1_dat3_py4 { 370 sdmmc1-dat3-py4 {
369 nvidia,pins = "sdmmc1_dat3_py4"; 371 nvidia,pins = "sdmmc1_dat3_py4";
370 nvidia,function = "sdmmc1"; 372 nvidia,function = "sdmmc1";
371 nvidia,pull = <TEGRA_PIN_PULL_UP>; 373 nvidia,pull = <TEGRA_PIN_PULL_UP>;
372 nvidia,tristate = <TEGRA_PIN_DISABLE>; 374 nvidia,tristate = <TEGRA_PIN_DISABLE>;
373 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 375 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
374 }; 376 };
375 sdmmc1_dat2_py5 { 377 sdmmc1-dat2-py5 {
376 nvidia,pins = "sdmmc1_dat2_py5"; 378 nvidia,pins = "sdmmc1_dat2_py5";
377 nvidia,function = "sdmmc1"; 379 nvidia,function = "sdmmc1";
378 nvidia,pull = <TEGRA_PIN_PULL_UP>; 380 nvidia,pull = <TEGRA_PIN_PULL_UP>;
379 nvidia,tristate = <TEGRA_PIN_DISABLE>; 381 nvidia,tristate = <TEGRA_PIN_DISABLE>;
380 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 382 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
381 }; 383 };
382 sdmmc1_dat1_py6 { 384 sdmmc1-dat1-py6 {
383 nvidia,pins = "sdmmc1_dat1_py6"; 385 nvidia,pins = "sdmmc1_dat1_py6";
384 nvidia,function = "sdmmc1"; 386 nvidia,function = "sdmmc1";
385 nvidia,pull = <TEGRA_PIN_PULL_UP>; 387 nvidia,pull = <TEGRA_PIN_PULL_UP>;
386 nvidia,tristate = <TEGRA_PIN_DISABLE>; 388 nvidia,tristate = <TEGRA_PIN_DISABLE>;
387 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 389 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
388 }; 390 };
389 sdmmc1_dat0_py7 { 391 sdmmc1-dat0-py7 {
390 nvidia,pins = "sdmmc1_dat0_py7"; 392 nvidia,pins = "sdmmc1_dat0_py7";
391 nvidia,function = "sdmmc1"; 393 nvidia,function = "sdmmc1";
392 nvidia,pull = <TEGRA_PIN_PULL_UP>; 394 nvidia,pull = <TEGRA_PIN_PULL_UP>;
393 nvidia,tristate = <TEGRA_PIN_DISABLE>; 395 nvidia,tristate = <TEGRA_PIN_DISABLE>;
394 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 396 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
395 }; 397 };
396 sdmmc1_clk_pz0 { 398 sdmmc1-clk-pz0 {
397 nvidia,pins = "sdmmc1_clk_pz0"; 399 nvidia,pins = "sdmmc1_clk_pz0";
398 nvidia,function = "sdmmc1"; 400 nvidia,function = "sdmmc1";
399 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 401 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
400 nvidia,tristate = <TEGRA_PIN_DISABLE>; 402 nvidia,tristate = <TEGRA_PIN_DISABLE>;
401 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 403 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
402 }; 404 };
403 sdmmc1_cmd_pz1 { 405 sdmmc1-cmd-pz1 {
404 nvidia,pins = "sdmmc1_cmd_pz1"; 406 nvidia,pins = "sdmmc1_cmd_pz1";
405 nvidia,function = "sdmmc1"; 407 nvidia,function = "sdmmc1";
406 nvidia,pull = <TEGRA_PIN_PULL_UP>; 408 nvidia,pull = <TEGRA_PIN_PULL_UP>;
407 nvidia,tristate = <TEGRA_PIN_DISABLE>; 409 nvidia,tristate = <TEGRA_PIN_DISABLE>;
408 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 410 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
409 }; 411 };
410 clk2_req_pcc5 { /* D4 GPIO */ 412 clk2-req-pcc5 { /* D4 GPIO */
411 nvidia,pins = "clk2_req_pcc5"; 413 nvidia,pins = "clk2_req_pcc5";
412 nvidia,function = "rsvd2"; 414 nvidia,function = "rsvd2";
413 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 415 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
414 nvidia,tristate = <TEGRA_PIN_DISABLE>; 416 nvidia,tristate = <TEGRA_PIN_DISABLE>;
415 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 417 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
416 }; 418 };
417 sdmmc3_clk_lb_in_pee5 { /* D6 GPIO */ 419 sdmmc3-clk-lb-in-pee5 { /* D6 GPIO */
418 nvidia,pins = "sdmmc3_clk_lb_in_pee5"; 420 nvidia,pins = "sdmmc3_clk_lb_in_pee5";
419 nvidia,function = "rsvd2"; 421 nvidia,function = "rsvd2";
420 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 422 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
421 nvidia,tristate = <TEGRA_PIN_DISABLE>; 423 nvidia,tristate = <TEGRA_PIN_DISABLE>;
422 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 424 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
423 }; 425 };
424 usb_vbus_en2_pff1 { /* D7 GPIO */ 426 usb-vbus-en2-pff1 { /* D7 GPIO */
425 nvidia,pins = "usb_vbus_en2_pff1"; 427 nvidia,pins = "usb_vbus_en2_pff1";
426 nvidia,function = "rsvd2"; 428 nvidia,function = "rsvd2";
427 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 429 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -461,7 +463,7 @@
461 }; 463 };
462 464
463 /* Apalis SATA1_ACT# */ 465 /* Apalis SATA1_ACT# */
464 dap1_dout_pn2 { 466 dap1-dout-pn2 {
465 nvidia,pins = "dap1_dout_pn2"; 467 nvidia,pins = "dap1_dout_pn2";
466 nvidia,function = "gmi"; 468 nvidia,function = "gmi";
467 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 469 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -470,49 +472,49 @@
470 }; 472 };
471 473
472 /* Apalis SD1 */ 474 /* Apalis SD1 */
473 sdmmc3_clk_pa6 { 475 sdmmc3-clk-pa6 {
474 nvidia,pins = "sdmmc3_clk_pa6"; 476 nvidia,pins = "sdmmc3_clk_pa6";
475 nvidia,function = "sdmmc3"; 477 nvidia,function = "sdmmc3";
476 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 478 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
477 nvidia,tristate = <TEGRA_PIN_DISABLE>; 479 nvidia,tristate = <TEGRA_PIN_DISABLE>;
478 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 480 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
479 }; 481 };
480 sdmmc3_cmd_pa7 { 482 sdmmc3-cmd-pa7 {
481 nvidia,pins = "sdmmc3_cmd_pa7"; 483 nvidia,pins = "sdmmc3_cmd_pa7";
482 nvidia,function = "sdmmc3"; 484 nvidia,function = "sdmmc3";
483 nvidia,pull = <TEGRA_PIN_PULL_UP>; 485 nvidia,pull = <TEGRA_PIN_PULL_UP>;
484 nvidia,tristate = <TEGRA_PIN_DISABLE>; 486 nvidia,tristate = <TEGRA_PIN_DISABLE>;
485 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 487 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
486 }; 488 };
487 sdmmc3_dat3_pb4 { 489 sdmmc3-dat3-pb4 {
488 nvidia,pins = "sdmmc3_dat3_pb4"; 490 nvidia,pins = "sdmmc3_dat3_pb4";
489 nvidia,function = "sdmmc3"; 491 nvidia,function = "sdmmc3";
490 nvidia,pull = <TEGRA_PIN_PULL_UP>; 492 nvidia,pull = <TEGRA_PIN_PULL_UP>;
491 nvidia,tristate = <TEGRA_PIN_DISABLE>; 493 nvidia,tristate = <TEGRA_PIN_DISABLE>;
492 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 494 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
493 }; 495 };
494 sdmmc3_dat2_pb5 { 496 sdmmc3-dat2-pb5 {
495 nvidia,pins = "sdmmc3_dat2_pb5"; 497 nvidia,pins = "sdmmc3_dat2_pb5";
496 nvidia,function = "sdmmc3"; 498 nvidia,function = "sdmmc3";
497 nvidia,pull = <TEGRA_PIN_PULL_UP>; 499 nvidia,pull = <TEGRA_PIN_PULL_UP>;
498 nvidia,tristate = <TEGRA_PIN_DISABLE>; 500 nvidia,tristate = <TEGRA_PIN_DISABLE>;
499 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 501 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
500 }; 502 };
501 sdmmc3_dat1_pb6 { 503 sdmmc3-dat1-pb6 {
502 nvidia,pins = "sdmmc3_dat1_pb6"; 504 nvidia,pins = "sdmmc3_dat1_pb6";
503 nvidia,function = "sdmmc3"; 505 nvidia,function = "sdmmc3";
504 nvidia,pull = <TEGRA_PIN_PULL_UP>; 506 nvidia,pull = <TEGRA_PIN_PULL_UP>;
505 nvidia,tristate = <TEGRA_PIN_DISABLE>; 507 nvidia,tristate = <TEGRA_PIN_DISABLE>;
506 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 508 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
507 }; 509 };
508 sdmmc3_dat0_pb7 { 510 sdmmc3-dat0-pb7 {
509 nvidia,pins = "sdmmc3_dat0_pb7"; 511 nvidia,pins = "sdmmc3_dat0_pb7";
510 nvidia,function = "sdmmc3"; 512 nvidia,function = "sdmmc3";
511 nvidia,pull = <TEGRA_PIN_PULL_UP>; 513 nvidia,pull = <TEGRA_PIN_PULL_UP>;
512 nvidia,tristate = <TEGRA_PIN_DISABLE>; 514 nvidia,tristate = <TEGRA_PIN_DISABLE>;
513 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 515 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
514 }; 516 };
515 sdmmc3_cd_n_pv2 { /* CD# GPIO */ 517 sdmmc3-cd-n-pv2 { /* CD# GPIO */
516 nvidia,pins = "sdmmc3_cd_n_pv2"; 518 nvidia,pins = "sdmmc3_cd_n_pv2";
517 nvidia,function = "rsvd3"; 519 nvidia,function = "rsvd3";
518 nvidia,pull = <TEGRA_PIN_PULL_UP>; 520 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -521,14 +523,14 @@
521 }; 523 };
522 524
523 /* Apalis SPDIF */ 525 /* Apalis SPDIF */
524 spdif_out_pk5 { 526 spdif-out-pk5 {
525 nvidia,pins = "spdif_out_pk5"; 527 nvidia,pins = "spdif_out_pk5";
526 nvidia,function = "spdif"; 528 nvidia,function = "spdif";
527 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 529 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
528 nvidia,tristate = <TEGRA_PIN_DISABLE>; 530 nvidia,tristate = <TEGRA_PIN_DISABLE>;
529 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 531 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
530 }; 532 };
531 spdif_in_pk6 { 533 spdif-in-pk6 {
532 nvidia,pins = "spdif_in_pk6"; 534 nvidia,pins = "spdif_in_pk6";
533 nvidia,function = "spdif"; 535 nvidia,function = "spdif";
534 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 536 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -537,28 +539,28 @@
537 }; 539 };
538 540
539 /* Apalis SPI1 */ 541 /* Apalis SPI1 */
540 ulpi_clk_py0 { 542 ulpi-clk-py0 {
541 nvidia,pins = "ulpi_clk_py0"; 543 nvidia,pins = "ulpi_clk_py0";
542 nvidia,function = "spi1"; 544 nvidia,function = "spi1";
543 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 545 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
544 nvidia,tristate = <TEGRA_PIN_DISABLE>; 546 nvidia,tristate = <TEGRA_PIN_DISABLE>;
545 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 547 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
546 }; 548 };
547 ulpi_dir_py1 { 549 ulpi-dir-py1 {
548 nvidia,pins = "ulpi_dir_py1"; 550 nvidia,pins = "ulpi_dir_py1";
549 nvidia,function = "spi1"; 551 nvidia,function = "spi1";
550 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 552 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
551 nvidia,tristate = <TEGRA_PIN_ENABLE>; 553 nvidia,tristate = <TEGRA_PIN_ENABLE>;
552 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 554 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
553 }; 555 };
554 ulpi_nxt_py2 { 556 ulpi-nxt-py2 {
555 nvidia,pins = "ulpi_nxt_py2"; 557 nvidia,pins = "ulpi_nxt_py2";
556 nvidia,function = "spi1"; 558 nvidia,function = "spi1";
557 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 559 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
558 nvidia,tristate = <TEGRA_PIN_DISABLE>; 560 nvidia,tristate = <TEGRA_PIN_DISABLE>;
559 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 561 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
560 }; 562 };
561 ulpi_stp_py3 { 563 ulpi-stp-py3 {
562 nvidia,pins = "ulpi_stp_py3"; 564 nvidia,pins = "ulpi_stp_py3";
563 nvidia,function = "spi1"; 565 nvidia,function = "spi1";
564 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 566 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -611,42 +613,42 @@
611 nvidia,tristate = <TEGRA_PIN_ENABLE>; 613 nvidia,tristate = <TEGRA_PIN_ENABLE>;
612 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 614 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
613 }; 615 };
614 uart1_txd_pu0 { 616 uart1-txd-pu0 {
615 nvidia,pins = "pu0"; 617 nvidia,pins = "pu0";
616 nvidia,function = "uarta"; 618 nvidia,function = "uarta";
617 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 619 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
618 nvidia,tristate = <TEGRA_PIN_DISABLE>; 620 nvidia,tristate = <TEGRA_PIN_DISABLE>;
619 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 621 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
620 }; 622 };
621 uart1_rxd_pu1 { 623 uart1-rxd-pu1 {
622 nvidia,pins = "pu1"; 624 nvidia,pins = "pu1";
623 nvidia,function = "uarta"; 625 nvidia,function = "uarta";
624 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 626 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
625 nvidia,tristate = <TEGRA_PIN_ENABLE>; 627 nvidia,tristate = <TEGRA_PIN_ENABLE>;
626 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 628 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
627 }; 629 };
628 uart1_cts_n_pu2 { 630 uart1-cts-n-pu2 {
629 nvidia,pins = "pu2"; 631 nvidia,pins = "pu2";
630 nvidia,function = "uarta"; 632 nvidia,function = "uarta";
631 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 633 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
632 nvidia,tristate = <TEGRA_PIN_ENABLE>; 634 nvidia,tristate = <TEGRA_PIN_ENABLE>;
633 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 635 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
634 }; 636 };
635 uart1_rts_n_pu3 { 637 uart1-rts-n-pu3 {
636 nvidia,pins = "pu3"; 638 nvidia,pins = "pu3";
637 nvidia,function = "uarta"; 639 nvidia,function = "uarta";
638 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 640 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
639 nvidia,tristate = <TEGRA_PIN_DISABLE>; 641 nvidia,tristate = <TEGRA_PIN_DISABLE>;
640 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 642 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
641 }; 643 };
642 uart3_cts_n_pa1 { /* DSR GPIO */ 644 uart3-cts-n-pa1 { /* DSR GPIO */
643 nvidia,pins = "uart3_cts_n_pa1"; 645 nvidia,pins = "uart3_cts_n_pa1";
644 nvidia,function = "gmi"; 646 nvidia,function = "gmi";
645 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 647 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
646 nvidia,tristate = <TEGRA_PIN_ENABLE>; 648 nvidia,tristate = <TEGRA_PIN_ENABLE>;
647 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 649 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
648 }; 650 };
649 uart3_rts_n_pc0 { /* DTR GPIO */ 651 uart3-rts-n-pc0 { /* DTR GPIO */
650 nvidia,pins = "uart3_rts_n_pc0"; 652 nvidia,pins = "uart3_rts_n_pc0";
651 nvidia,function = "gmi"; 653 nvidia,function = "gmi";
652 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 654 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -655,28 +657,28 @@
655 }; 657 };
656 658
657 /* Apalis UART2 */ 659 /* Apalis UART2 */
658 uart2_txd_pc2 { 660 uart2-txd-pc2 {
659 nvidia,pins = "uart2_txd_pc2"; 661 nvidia,pins = "uart2_txd_pc2";
660 nvidia,function = "irda"; 662 nvidia,function = "irda";
661 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 663 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
662 nvidia,tristate = <TEGRA_PIN_DISABLE>; 664 nvidia,tristate = <TEGRA_PIN_DISABLE>;
663 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 665 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
664 }; 666 };
665 uart2_rxd_pc3 { 667 uart2-rxd-pc3 {
666 nvidia,pins = "uart2_rxd_pc3"; 668 nvidia,pins = "uart2_rxd_pc3";
667 nvidia,function = "irda"; 669 nvidia,function = "irda";
668 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 670 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
669 nvidia,tristate = <TEGRA_PIN_ENABLE>; 671 nvidia,tristate = <TEGRA_PIN_ENABLE>;
670 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 672 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
671 }; 673 };
672 uart2_cts_n_pj5 { 674 uart2-cts-n-pj5 {
673 nvidia,pins = "uart2_cts_n_pj5"; 675 nvidia,pins = "uart2_cts_n_pj5";
674 nvidia,function = "uartb"; 676 nvidia,function = "uartb";
675 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 677 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
676 nvidia,tristate = <TEGRA_PIN_ENABLE>; 678 nvidia,tristate = <TEGRA_PIN_ENABLE>;
677 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 679 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
678 }; 680 };
679 uart2_rts_n_pj6 { 681 uart2-rts-n-pj6 {
680 nvidia,pins = "uart2_rts_n_pj6"; 682 nvidia,pins = "uart2_rts_n_pj6";
681 nvidia,function = "uartb"; 683 nvidia,function = "uartb";
682 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 684 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -685,14 +687,14 @@
685 }; 687 };
686 688
687 /* Apalis UART3 */ 689 /* Apalis UART3 */
688 uart3_txd_pw6 { 690 uart3-txd-pw6 {
689 nvidia,pins = "uart3_txd_pw6"; 691 nvidia,pins = "uart3_txd_pw6";
690 nvidia,function = "uartc"; 692 nvidia,function = "uartc";
691 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 693 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
692 nvidia,tristate = <TEGRA_PIN_DISABLE>; 694 nvidia,tristate = <TEGRA_PIN_DISABLE>;
693 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 695 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
694 }; 696 };
695 uart3_rxd_pw7 { 697 uart3-rxd-pw7 {
696 nvidia,pins = "uart3_rxd_pw7"; 698 nvidia,pins = "uart3_rxd_pw7";
697 nvidia,function = "uartc"; 699 nvidia,function = "uartc";
698 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 700 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -701,14 +703,14 @@
701 }; 703 };
702 704
703 /* Apalis UART4 */ 705 /* Apalis UART4 */
704 uart4_rxd_pb0 { 706 uart4-rxd-pb0 {
705 nvidia,pins = "pb0"; 707 nvidia,pins = "pb0";
706 nvidia,function = "uartd"; 708 nvidia,function = "uartd";
707 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 709 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
708 nvidia,tristate = <TEGRA_PIN_ENABLE>; 710 nvidia,tristate = <TEGRA_PIN_ENABLE>;
709 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 711 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
710 }; 712 };
711 uart4_txd_pj7 { 713 uart4-txd-pj7 {
712 nvidia,pins = "pj7"; 714 nvidia,pins = "pj7";
713 nvidia,function = "uartd"; 715 nvidia,function = "uartd";
714 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 716 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -717,7 +719,7 @@
717 }; 719 };
718 720
719 /* Apalis USBH_EN */ 721 /* Apalis USBH_EN */
720 usb_vbus_en1_pn5 { 722 usb-vbus-en1-pn5 {
721 nvidia,pins = "usb_vbus_en1_pn5"; 723 nvidia,pins = "usb_vbus_en1_pn5";
722 nvidia,function = "rsvd2"; 724 nvidia,function = "rsvd2";
723 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 725 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -736,7 +738,7 @@
736 }; 738 };
737 739
738 /* Apalis USBO1_EN */ 740 /* Apalis USBO1_EN */
739 usb_vbus_en0_pn4 { 741 usb-vbus-en0-pn4 {
740 nvidia,pins = "usb_vbus_en0_pn4"; 742 nvidia,pins = "usb_vbus_en0_pn4";
741 nvidia,function = "rsvd2"; 743 nvidia,function = "rsvd2";
742 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 744 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -755,7 +757,7 @@
755 }; 757 };
756 758
757 /* Apalis WAKE1_MICO */ 759 /* Apalis WAKE1_MICO */
758 pex_wake_n_pdd3 { 760 pex-wake-n-pdd3 {
759 nvidia,pins = "pex_wake_n_pdd3"; 761 nvidia,pins = "pex_wake_n_pdd3";
760 nvidia,function = "rsvd2"; 762 nvidia,function = "rsvd2";
761 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 763 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -764,7 +766,7 @@
764 }; 766 };
765 767
766 /* CORE_PWR_REQ */ 768 /* CORE_PWR_REQ */
767 core_pwr_req { 769 core-pwr-req {
768 nvidia,pins = "core_pwr_req"; 770 nvidia,pins = "core_pwr_req";
769 nvidia,function = "pwron"; 771 nvidia,function = "pwron";
770 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 772 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -773,7 +775,7 @@
773 }; 775 };
774 776
775 /* CPU_PWR_REQ */ 777 /* CPU_PWR_REQ */
776 cpu_pwr_req { 778 cpu-pwr-req {
777 nvidia,pins = "cpu_pwr_req"; 779 nvidia,pins = "cpu_pwr_req";
778 nvidia,function = "cpu"; 780 nvidia,function = "cpu";
779 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 781 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -782,14 +784,14 @@
782 }; 784 };
783 785
784 /* DVFS */ 786 /* DVFS */
785 dvfs_pwm_px0 { 787 dvfs-pwm-px0 {
786 nvidia,pins = "dvfs_pwm_px0"; 788 nvidia,pins = "dvfs_pwm_px0";
787 nvidia,function = "cldvfs"; 789 nvidia,function = "cldvfs";
788 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 790 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
789 nvidia,tristate = <TEGRA_PIN_DISABLE>; 791 nvidia,tristate = <TEGRA_PIN_DISABLE>;
790 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 792 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
791 }; 793 };
792 dvfs_clk_px2 { 794 dvfs-clk-px2 {
793 nvidia,pins = "dvfs_clk_px2"; 795 nvidia,pins = "dvfs_clk_px2";
794 nvidia,function = "cldvfs"; 796 nvidia,function = "cldvfs";
795 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 797 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -798,70 +800,70 @@
798 }; 800 };
799 801
800 /* eMMC */ 802 /* eMMC */
801 sdmmc4_dat0_paa0 { 803 sdmmc4-dat0-paa0 {
802 nvidia,pins = "sdmmc4_dat0_paa0"; 804 nvidia,pins = "sdmmc4_dat0_paa0";
803 nvidia,function = "sdmmc4"; 805 nvidia,function = "sdmmc4";
804 nvidia,pull = <TEGRA_PIN_PULL_UP>; 806 nvidia,pull = <TEGRA_PIN_PULL_UP>;
805 nvidia,tristate = <TEGRA_PIN_DISABLE>; 807 nvidia,tristate = <TEGRA_PIN_DISABLE>;
806 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 808 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
807 }; 809 };
808 sdmmc4_dat1_paa1 { 810 sdmmc4-dat1-paa1 {
809 nvidia,pins = "sdmmc4_dat1_paa1"; 811 nvidia,pins = "sdmmc4_dat1_paa1";
810 nvidia,function = "sdmmc4"; 812 nvidia,function = "sdmmc4";
811 nvidia,pull = <TEGRA_PIN_PULL_UP>; 813 nvidia,pull = <TEGRA_PIN_PULL_UP>;
812 nvidia,tristate = <TEGRA_PIN_DISABLE>; 814 nvidia,tristate = <TEGRA_PIN_DISABLE>;
813 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 815 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
814 }; 816 };
815 sdmmc4_dat2_paa2 { 817 sdmmc4-dat2-paa2 {
816 nvidia,pins = "sdmmc4_dat2_paa2"; 818 nvidia,pins = "sdmmc4_dat2_paa2";
817 nvidia,function = "sdmmc4"; 819 nvidia,function = "sdmmc4";
818 nvidia,pull = <TEGRA_PIN_PULL_UP>; 820 nvidia,pull = <TEGRA_PIN_PULL_UP>;
819 nvidia,tristate = <TEGRA_PIN_DISABLE>; 821 nvidia,tristate = <TEGRA_PIN_DISABLE>;
820 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 822 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
821 }; 823 };
822 sdmmc4_dat3_paa3 { 824 sdmmc4-dat3-paa3 {
823 nvidia,pins = "sdmmc4_dat3_paa3"; 825 nvidia,pins = "sdmmc4_dat3_paa3";
824 nvidia,function = "sdmmc4"; 826 nvidia,function = "sdmmc4";
825 nvidia,pull = <TEGRA_PIN_PULL_UP>; 827 nvidia,pull = <TEGRA_PIN_PULL_UP>;
826 nvidia,tristate = <TEGRA_PIN_DISABLE>; 828 nvidia,tristate = <TEGRA_PIN_DISABLE>;
827 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 829 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
828 }; 830 };
829 sdmmc4_dat4_paa4 { 831 sdmmc4-dat4-paa4 {
830 nvidia,pins = "sdmmc4_dat4_paa4"; 832 nvidia,pins = "sdmmc4_dat4_paa4";
831 nvidia,function = "sdmmc4"; 833 nvidia,function = "sdmmc4";
832 nvidia,pull = <TEGRA_PIN_PULL_UP>; 834 nvidia,pull = <TEGRA_PIN_PULL_UP>;
833 nvidia,tristate = <TEGRA_PIN_DISABLE>; 835 nvidia,tristate = <TEGRA_PIN_DISABLE>;
834 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 836 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
835 }; 837 };
836 sdmmc4_dat5_paa5 { 838 sdmmc4-dat5-paa5 {
837 nvidia,pins = "sdmmc4_dat5_paa5"; 839 nvidia,pins = "sdmmc4_dat5_paa5";
838 nvidia,function = "sdmmc4"; 840 nvidia,function = "sdmmc4";
839 nvidia,pull = <TEGRA_PIN_PULL_UP>; 841 nvidia,pull = <TEGRA_PIN_PULL_UP>;
840 nvidia,tristate = <TEGRA_PIN_DISABLE>; 842 nvidia,tristate = <TEGRA_PIN_DISABLE>;
841 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 843 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
842 }; 844 };
843 sdmmc4_dat6_paa6 { 845 sdmmc4-dat6-paa6 {
844 nvidia,pins = "sdmmc4_dat6_paa6"; 846 nvidia,pins = "sdmmc4_dat6_paa6";
845 nvidia,function = "sdmmc4"; 847 nvidia,function = "sdmmc4";
846 nvidia,pull = <TEGRA_PIN_PULL_UP>; 848 nvidia,pull = <TEGRA_PIN_PULL_UP>;
847 nvidia,tristate = <TEGRA_PIN_DISABLE>; 849 nvidia,tristate = <TEGRA_PIN_DISABLE>;
848 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 850 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
849 }; 851 };
850 sdmmc4_dat7_paa7 { 852 sdmmc4-dat7-paa7 {
851 nvidia,pins = "sdmmc4_dat7_paa7"; 853 nvidia,pins = "sdmmc4_dat7_paa7";
852 nvidia,function = "sdmmc4"; 854 nvidia,function = "sdmmc4";
853 nvidia,pull = <TEGRA_PIN_PULL_UP>; 855 nvidia,pull = <TEGRA_PIN_PULL_UP>;
854 nvidia,tristate = <TEGRA_PIN_DISABLE>; 856 nvidia,tristate = <TEGRA_PIN_DISABLE>;
855 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 857 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
856 }; 858 };
857 sdmmc4_clk_pcc4 { 859 sdmmc4-clk-pcc4 {
858 nvidia,pins = "sdmmc4_clk_pcc4"; 860 nvidia,pins = "sdmmc4_clk_pcc4";
859 nvidia,function = "sdmmc4"; 861 nvidia,function = "sdmmc4";
860 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 862 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
861 nvidia,tristate = <TEGRA_PIN_DISABLE>; 863 nvidia,tristate = <TEGRA_PIN_DISABLE>;
862 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 864 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
863 }; 865 };
864 sdmmc4_cmd_pt7 { 866 sdmmc4-cmd-pt7 {
865 nvidia,pins = "sdmmc4_cmd_pt7"; 867 nvidia,pins = "sdmmc4_cmd_pt7";
866 nvidia,function = "sdmmc4"; 868 nvidia,function = "sdmmc4";
867 nvidia,pull = <TEGRA_PIN_PULL_UP>; 869 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -870,7 +872,7 @@
870 }; 872 };
871 873
872 /* JTAG_RTCK */ 874 /* JTAG_RTCK */
873 jtag_rtck { 875 jtag-rtck {
874 nvidia,pins = "jtag_rtck"; 876 nvidia,pins = "jtag_rtck";
875 nvidia,function = "rtck"; 877 nvidia,function = "rtck";
876 nvidia,pull = <TEGRA_PIN_PULL_UP>; 878 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -879,7 +881,7 @@
879 }; 881 };
880 882
881 /* LAN_DEV_OFF# */ 883 /* LAN_DEV_OFF# */
882 ulpi_data5_po6 { 884 ulpi-data5-po6 {
883 nvidia,pins = "ulpi_data5_po6"; 885 nvidia,pins = "ulpi_data5_po6";
884 nvidia,function = "ulpi"; 886 nvidia,function = "ulpi";
885 nvidia,pull = <TEGRA_PIN_PULL_UP>; 887 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -888,7 +890,7 @@
888 }; 890 };
889 891
890 /* LAN_RESET# */ 892 /* LAN_RESET# */
891 kb_row10_ps2 { 893 kb-row10-ps2 {
892 nvidia,pins = "kb_row10_ps2"; 894 nvidia,pins = "kb_row10_ps2";
893 nvidia,function = "rsvd2"; 895 nvidia,function = "rsvd2";
894 nvidia,pull = <TEGRA_PIN_PULL_UP>; 896 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -897,7 +899,7 @@
897 }; 899 };
898 900
899 /* LAN_WAKE# */ 901 /* LAN_WAKE# */
900 ulpi_data4_po5 { 902 ulpi-data4-po5 {
901 nvidia,pins = "ulpi_data4_po5"; 903 nvidia,pins = "ulpi_data4_po5";
902 nvidia,function = "ulpi"; 904 nvidia,function = "ulpi";
903 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 905 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -951,35 +953,35 @@
951 }; 953 };
952 954
953 /* MCU SPI */ 955 /* MCU SPI */
954 gpio_x4_aud_px4 { 956 gpio-x4-aud-px4 {
955 nvidia,pins = "gpio_x4_aud_px4"; 957 nvidia,pins = "gpio_x4_aud_px4";
956 nvidia,function = "spi2"; 958 nvidia,function = "spi2";
957 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 959 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
958 nvidia,tristate = <TEGRA_PIN_DISABLE>; 960 nvidia,tristate = <TEGRA_PIN_DISABLE>;
959 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 961 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
960 }; 962 };
961 gpio_x5_aud_px5 { 963 gpio-x5-aud-px5 {
962 nvidia,pins = "gpio_x5_aud_px5"; 964 nvidia,pins = "gpio_x5_aud_px5";
963 nvidia,function = "spi2"; 965 nvidia,function = "spi2";
964 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 966 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
965 nvidia,tristate = <TEGRA_PIN_DISABLE>; 967 nvidia,tristate = <TEGRA_PIN_DISABLE>;
966 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 968 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
967 }; 969 };
968 gpio_x6_aud_px6 { /* MCU_CS */ 970 gpio-x6-aud-px6 { /* MCU_CS */
969 nvidia,pins = "gpio_x6_aud_px6"; 971 nvidia,pins = "gpio_x6_aud_px6";
970 nvidia,function = "spi2"; 972 nvidia,function = "spi2";
971 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 973 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
972 nvidia,tristate = <TEGRA_PIN_DISABLE>; 974 nvidia,tristate = <TEGRA_PIN_DISABLE>;
973 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 975 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
974 }; 976 };
975 gpio_x7_aud_px7 { 977 gpio-x7-aud-px7 {
976 nvidia,pins = "gpio_x7_aud_px7"; 978 nvidia,pins = "gpio_x7_aud_px7";
977 nvidia,function = "spi2"; 979 nvidia,function = "spi2";
978 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 980 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
979 nvidia,tristate = <TEGRA_PIN_ENABLE>; 981 nvidia,tristate = <TEGRA_PIN_ENABLE>;
980 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 982 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
981 }; 983 };
982 gpio_w2_aud_pw2 { /* MCU_CSEZP */ 984 gpio-w2-aud-pw2 { /* MCU_CSEZP */
983 nvidia,pins = "gpio_w2_aud_pw2"; 985 nvidia,pins = "gpio_w2_aud_pw2";
984 nvidia,function = "spi2"; 986 nvidia,function = "spi2";
985 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 987 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -988,7 +990,7 @@
988 }; 990 };
989 991
990 /* PMIC_CLK_32K */ 992 /* PMIC_CLK_32K */
991 clk_32k_in { 993 clk-32k-in {
992 nvidia,pins = "clk_32k_in"; 994 nvidia,pins = "clk_32k_in";
993 nvidia,function = "clk"; 995 nvidia,function = "clk";
994 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 996 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -997,7 +999,7 @@
997 }; 999 };
998 1000
999 /* PMIC_CPU_OC_INT */ 1001 /* PMIC_CPU_OC_INT */
1000 clk_32k_out_pa0 { 1002 clk-32k-out-pa0 {
1001 nvidia,pins = "clk_32k_out_pa0"; 1003 nvidia,pins = "clk_32k_out_pa0";
1002 nvidia,function = "soc"; 1004 nvidia,function = "soc";
1003 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1005 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1006,7 +1008,7 @@
1006 }; 1008 };
1007 1009
1008 /* PWR_I2C */ 1010 /* PWR_I2C */
1009 pwr_i2c_scl_pz6 { 1011 pwr-i2c-scl-pz6 {
1010 nvidia,pins = "pwr_i2c_scl_pz6"; 1012 nvidia,pins = "pwr_i2c_scl_pz6";
1011 nvidia,function = "i2cpwr"; 1013 nvidia,function = "i2cpwr";
1012 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1014 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1014,7 +1016,7 @@
1014 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 1016 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
1015 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 1017 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
1016 }; 1018 };
1017 pwr_i2c_sda_pz7 { 1019 pwr-i2c-sda-pz7 {
1018 nvidia,pins = "pwr_i2c_sda_pz7"; 1020 nvidia,pins = "pwr_i2c_sda_pz7";
1019 nvidia,function = "i2cpwr"; 1021 nvidia,function = "i2cpwr";
1020 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1022 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1024,7 +1026,7 @@
1024 }; 1026 };
1025 1027
1026 /* PWR_INT_N */ 1028 /* PWR_INT_N */
1027 pwr_int_n { 1029 pwr-int-n {
1028 nvidia,pins = "pwr_int_n"; 1030 nvidia,pins = "pwr_int_n";
1029 nvidia,function = "pmi"; 1031 nvidia,function = "pmi";
1030 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1032 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -1042,7 +1044,7 @@
1042 }; 1044 };
1043 1045
1044 /* RESET_OUT_N */ 1046 /* RESET_OUT_N */
1045 reset_out_n { 1047 reset-out-n {
1046 nvidia,pins = "reset_out_n"; 1048 nvidia,pins = "reset_out_n";
1047 nvidia,function = "reset_out_n"; 1049 nvidia,function = "reset_out_n";
1048 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1050 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1051,14 +1053,14 @@
1051 }; 1053 };
1052 1054
1053 /* SHIFT_CTRL_DIR_IN */ 1055 /* SHIFT_CTRL_DIR_IN */
1054 kb_row0_pr0 { 1056 kb-row0-pr0 {
1055 nvidia,pins = "kb_row0_pr0"; 1057 nvidia,pins = "kb_row0_pr0";
1056 nvidia,function = "rsvd2"; 1058 nvidia,function = "rsvd2";
1057 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1059 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1058 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1060 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1059 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1061 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1060 }; 1062 };
1061 kb_row1_pr1 { 1063 kb-row1-pr1 {
1062 nvidia,pins = "kb_row1_pr1"; 1064 nvidia,pins = "kb_row1_pr1";
1063 nvidia,function = "rsvd2"; 1065 nvidia,function = "rsvd2";
1064 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1066 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1067,7 +1069,7 @@
1067 }; 1069 };
1068 1070
1069 /* Configure level-shifter as output for HDA */ 1071 /* Configure level-shifter as output for HDA */
1070 kb_row11_ps3 { 1072 kb-row11-ps3 {
1071 nvidia,pins = "kb_row11_ps3"; 1073 nvidia,pins = "kb_row11_ps3";
1072 nvidia,function = "rsvd2"; 1074 nvidia,function = "rsvd2";
1073 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1075 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -1076,21 +1078,21 @@
1076 }; 1078 };
1077 1079
1078 /* SHIFT_CTRL_DIR_OUT */ 1080 /* SHIFT_CTRL_DIR_OUT */
1079 kb_col5_pq5 { 1081 kb-col5-pq5 {
1080 nvidia,pins = "kb_col5_pq5"; 1082 nvidia,pins = "kb_col5_pq5";
1081 nvidia,function = "rsvd2"; 1083 nvidia,function = "rsvd2";
1082 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1084 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1083 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1085 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1084 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1086 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1085 }; 1087 };
1086 kb_col6_pq6 { 1088 kb-col6-pq6 {
1087 nvidia,pins = "kb_col6_pq6"; 1089 nvidia,pins = "kb_col6_pq6";
1088 nvidia,function = "rsvd2"; 1090 nvidia,function = "rsvd2";
1089 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1091 nvidia,pull = <TEGRA_PIN_PULL_UP>;
1090 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1092 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1091 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1093 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1092 }; 1094 };
1093 kb_col7_pq7 { 1095 kb-col7-pq7 {
1094 nvidia,pins = "kb_col7_pq7"; 1096 nvidia,pins = "kb_col7_pq7";
1095 nvidia,function = "rsvd2"; 1097 nvidia,function = "rsvd2";
1096 nvidia,pull = <TEGRA_PIN_PULL_UP>; 1098 nvidia,pull = <TEGRA_PIN_PULL_UP>;
@@ -1099,35 +1101,35 @@
1099 }; 1101 };
1100 1102
1101 /* SHIFT_CTRL_OE */ 1103 /* SHIFT_CTRL_OE */
1102 kb_col0_pq0 { 1104 kb-col0-pq0 {
1103 nvidia,pins = "kb_col0_pq0"; 1105 nvidia,pins = "kb_col0_pq0";
1104 nvidia,function = "rsvd2"; 1106 nvidia,function = "rsvd2";
1105 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1107 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1106 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1108 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1107 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1109 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1108 }; 1110 };
1109 kb_col1_pq1 { 1111 kb-col1-pq1 {
1110 nvidia,pins = "kb_col1_pq1"; 1112 nvidia,pins = "kb_col1_pq1";
1111 nvidia,function = "rsvd2"; 1113 nvidia,function = "rsvd2";
1112 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1114 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1113 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1115 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1114 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1116 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1115 }; 1117 };
1116 kb_col2_pq2 { 1118 kb-col2-pq2 {
1117 nvidia,pins = "kb_col2_pq2"; 1119 nvidia,pins = "kb_col2_pq2";
1118 nvidia,function = "rsvd2"; 1120 nvidia,function = "rsvd2";
1119 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1121 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1120 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1122 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1121 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1123 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1122 }; 1124 };
1123 kb_col4_pq4 { 1125 kb-col4-pq4 {
1124 nvidia,pins = "kb_col4_pq4"; 1126 nvidia,pins = "kb_col4_pq4";
1125 nvidia,function = "kbc"; 1127 nvidia,function = "kbc";
1126 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1128 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1127 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1129 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1128 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1130 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1129 }; 1131 };
1130 kb_row2_pr2 { 1132 kb-row2-pr2 {
1131 nvidia,pins = "kb_row2_pr2"; 1133 nvidia,pins = "kb_row2_pr2";
1132 nvidia,function = "rsvd2"; 1134 nvidia,function = "rsvd2";
1133 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1135 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1145,7 +1147,7 @@
1145 }; 1147 };
1146 1148
1147 /* TOUCH_INT */ 1149 /* TOUCH_INT */
1148 gpio_w3_aud_pw3 { 1150 gpio-w3-aud-pw3 {
1149 nvidia,pins = "gpio_w3_aud_pw3"; 1151 nvidia,pins = "gpio_w3_aud_pw3";
1150 nvidia,function = "spi6"; 1152 nvidia,function = "spi6";
1151 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1153 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1286,189 +1288,189 @@
1286 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1288 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1287 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1289 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1288 }; 1290 };
1289 dap1_fs_pn0 { /* NC */ 1291 dap1-fs-pn0 { /* NC */
1290 nvidia,pins = "dap1_fs_pn0"; 1292 nvidia,pins = "dap1_fs_pn0";
1291 nvidia,function = "rsvd4"; 1293 nvidia,function = "rsvd4";
1292 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1294 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1293 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1295 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1294 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1296 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1295 }; 1297 };
1296 dap1_din_pn1 { /* NC */ 1298 dap1-din-pn1 { /* NC */
1297 nvidia,pins = "dap1_din_pn1"; 1299 nvidia,pins = "dap1_din_pn1";
1298 nvidia,function = "rsvd4"; 1300 nvidia,function = "rsvd4";
1299 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1301 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1300 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1302 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1301 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1303 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1302 }; 1304 };
1303 dap1_sclk_pn3 { /* NC */ 1305 dap1-sclk-pn3 { /* NC */
1304 nvidia,pins = "dap1_sclk_pn3"; 1306 nvidia,pins = "dap1_sclk_pn3";
1305 nvidia,function = "rsvd4"; 1307 nvidia,function = "rsvd4";
1306 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1308 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1307 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1309 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1308 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1310 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1309 }; 1311 };
1310 ulpi_data7_po0 { /* NC */ 1312 ulpi-data7-po0 { /* NC */
1311 nvidia,pins = "ulpi_data7_po0"; 1313 nvidia,pins = "ulpi_data7_po0";
1312 nvidia,function = "ulpi"; 1314 nvidia,function = "ulpi";
1313 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1315 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1314 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1316 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1315 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1317 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1316 }; 1318 };
1317 ulpi_data0_po1 { /* NC */ 1319 ulpi-data0-po1 { /* NC */
1318 nvidia,pins = "ulpi_data0_po1"; 1320 nvidia,pins = "ulpi_data0_po1";
1319 nvidia,function = "ulpi"; 1321 nvidia,function = "ulpi";
1320 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1322 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1321 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1323 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1322 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1324 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1323 }; 1325 };
1324 ulpi_data1_po2 { /* NC */ 1326 ulpi-data1-po2 { /* NC */
1325 nvidia,pins = "ulpi_data1_po2"; 1327 nvidia,pins = "ulpi_data1_po2";
1326 nvidia,function = "ulpi"; 1328 nvidia,function = "ulpi";
1327 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1329 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1328 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1330 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1329 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1331 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1330 }; 1332 };
1331 ulpi_data2_po3 { /* NC */ 1333 ulpi-data2-po3 { /* NC */
1332 nvidia,pins = "ulpi_data2_po3"; 1334 nvidia,pins = "ulpi_data2_po3";
1333 nvidia,function = "ulpi"; 1335 nvidia,function = "ulpi";
1334 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1336 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1335 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1337 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1336 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1338 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1337 }; 1339 };
1338 ulpi_data3_po4 { /* NC */ 1340 ulpi-data3-po4 { /* NC */
1339 nvidia,pins = "ulpi_data3_po4"; 1341 nvidia,pins = "ulpi_data3_po4";
1340 nvidia,function = "ulpi"; 1342 nvidia,function = "ulpi";
1341 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1343 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1342 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1344 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1343 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1345 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1344 }; 1346 };
1345 ulpi_data6_po7 { /* NC */ 1347 ulpi-data6-po7 { /* NC */
1346 nvidia,pins = "ulpi_data6_po7"; 1348 nvidia,pins = "ulpi_data6_po7";
1347 nvidia,function = "ulpi"; 1349 nvidia,function = "ulpi";
1348 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1350 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1349 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1351 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1350 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1352 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1351 }; 1353 };
1352 dap4_fs_pp4 { /* NC */ 1354 dap4-fs-pp4 { /* NC */
1353 nvidia,pins = "dap4_fs_pp4"; 1355 nvidia,pins = "dap4_fs_pp4";
1354 nvidia,function = "rsvd4"; 1356 nvidia,function = "rsvd4";
1355 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1357 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1356 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1358 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1357 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1359 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1358 }; 1360 };
1359 dap4_din_pp5 { /* NC */ 1361 dap4-din-pp5 { /* NC */
1360 nvidia,pins = "dap4_din_pp5"; 1362 nvidia,pins = "dap4_din_pp5";
1361 nvidia,function = "rsvd3"; 1363 nvidia,function = "rsvd3";
1362 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1364 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1363 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1365 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1364 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1366 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1365 }; 1367 };
1366 dap4_dout_pp6 { /* NC */ 1368 dap4-dout-pp6 { /* NC */
1367 nvidia,pins = "dap4_dout_pp6"; 1369 nvidia,pins = "dap4_dout_pp6";
1368 nvidia,function = "rsvd4"; 1370 nvidia,function = "rsvd4";
1369 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1371 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1370 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1372 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1371 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1373 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1372 }; 1374 };
1373 dap4_sclk_pp7 { /* NC */ 1375 dap4-sclk-pp7 { /* NC */
1374 nvidia,pins = "dap4_sclk_pp7"; 1376 nvidia,pins = "dap4_sclk_pp7";
1375 nvidia,function = "rsvd3"; 1377 nvidia,function = "rsvd3";
1376 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1378 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1377 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1379 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1378 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1380 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1379 }; 1381 };
1380 kb_col3_pq3 { /* NC */ 1382 kb-col3-pq3 { /* NC */
1381 nvidia,pins = "kb_col3_pq3"; 1383 nvidia,pins = "kb_col3_pq3";
1382 nvidia,function = "kbc"; 1384 nvidia,function = "kbc";
1383 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1385 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1384 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1386 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1385 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1387 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1386 }; 1388 };
1387 kb_row3_pr3 { /* NC */ 1389 kb-row3-pr3 { /* NC */
1388 nvidia,pins = "kb_row3_pr3"; 1390 nvidia,pins = "kb_row3_pr3";
1389 nvidia,function = "kbc"; 1391 nvidia,function = "kbc";
1390 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1392 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1391 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1393 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1392 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1394 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1393 }; 1395 };
1394 kb_row4_pr4 { /* NC */ 1396 kb-row4-pr4 { /* NC */
1395 nvidia,pins = "kb_row4_pr4"; 1397 nvidia,pins = "kb_row4_pr4";
1396 nvidia,function = "rsvd3"; 1398 nvidia,function = "rsvd3";
1397 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1399 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1398 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1400 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1399 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1401 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1400 }; 1402 };
1401 kb_row5_pr5 { /* NC */ 1403 kb-row5-pr5 { /* NC */
1402 nvidia,pins = "kb_row5_pr5"; 1404 nvidia,pins = "kb_row5_pr5";
1403 nvidia,function = "rsvd3"; 1405 nvidia,function = "rsvd3";
1404 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1406 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1405 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1407 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1406 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1408 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1407 }; 1409 };
1408 kb_row6_pr6 { /* NC */ 1410 kb-row6-pr6 { /* NC */
1409 nvidia,pins = "kb_row6_pr6"; 1411 nvidia,pins = "kb_row6_pr6";
1410 nvidia,function = "kbc"; 1412 nvidia,function = "kbc";
1411 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1413 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1412 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1414 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1413 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1415 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1414 }; 1416 };
1415 kb_row7_pr7 { /* NC */ 1417 kb-row7-pr7 { /* NC */
1416 nvidia,pins = "kb_row7_pr7"; 1418 nvidia,pins = "kb_row7_pr7";
1417 nvidia,function = "rsvd2"; 1419 nvidia,function = "rsvd2";
1418 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1420 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1419 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1421 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1420 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1422 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1421 }; 1423 };
1422 kb_row8_ps0 { /* NC */ 1424 kb-row8-ps0 { /* NC */
1423 nvidia,pins = "kb_row8_ps0"; 1425 nvidia,pins = "kb_row8_ps0";
1424 nvidia,function = "rsvd2"; 1426 nvidia,function = "rsvd2";
1425 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1427 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1426 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1428 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1427 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1429 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1428 }; 1430 };
1429 kb_row9_ps1 { /* NC */ 1431 kb-row9-ps1 { /* NC */
1430 nvidia,pins = "kb_row9_ps1"; 1432 nvidia,pins = "kb_row9_ps1";
1431 nvidia,function = "rsvd2"; 1433 nvidia,function = "rsvd2";
1432 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1434 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1433 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1435 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1434 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1436 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1435 }; 1437 };
1436 kb_row12_ps4 { /* NC */ 1438 kb-row12-ps4 { /* NC */
1437 nvidia,pins = "kb_row12_ps4"; 1439 nvidia,pins = "kb_row12_ps4";
1438 nvidia,function = "rsvd2"; 1440 nvidia,function = "rsvd2";
1439 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1441 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1440 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1442 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1441 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1443 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1442 }; 1444 };
1443 kb_row13_ps5 { /* NC */ 1445 kb-row13-ps5 { /* NC */
1444 nvidia,pins = "kb_row13_ps5"; 1446 nvidia,pins = "kb_row13_ps5";
1445 nvidia,function = "rsvd2"; 1447 nvidia,function = "rsvd2";
1446 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1448 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1447 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1449 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1448 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1450 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1449 }; 1451 };
1450 kb_row14_ps6 { /* NC */ 1452 kb-row14-ps6 { /* NC */
1451 nvidia,pins = "kb_row14_ps6"; 1453 nvidia,pins = "kb_row14_ps6";
1452 nvidia,function = "rsvd2"; 1454 nvidia,function = "rsvd2";
1453 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1455 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1454 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1456 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1455 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1457 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1456 }; 1458 };
1457 kb_row15_ps7 { /* NC */ 1459 kb-row15-ps7 { /* NC */
1458 nvidia,pins = "kb_row15_ps7"; 1460 nvidia,pins = "kb_row15_ps7";
1459 nvidia,function = "rsvd3"; 1461 nvidia,function = "rsvd3";
1460 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1462 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1461 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1463 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1462 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1464 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1463 }; 1465 };
1464 kb_row16_pt0 { /* NC */ 1466 kb-row16-pt0 { /* NC */
1465 nvidia,pins = "kb_row16_pt0"; 1467 nvidia,pins = "kb_row16_pt0";
1466 nvidia,function = "rsvd2"; 1468 nvidia,function = "rsvd2";
1467 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1469 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1468 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1470 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1469 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1471 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1470 }; 1472 };
1471 kb_row17_pt1 { /* NC */ 1473 kb-row17-pt1 { /* NC */
1472 nvidia,pins = "kb_row17_pt1"; 1474 nvidia,pins = "kb_row17_pt1";
1473 nvidia,function = "rsvd2"; 1475 nvidia,function = "rsvd2";
1474 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1476 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1496,14 +1498,14 @@
1496 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1498 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1497 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1499 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1498 }; 1500 };
1499 gpio_x1_aud_px1 { /* NC */ 1501 gpio-x1-aud-px1 { /* NC */
1500 nvidia,pins = "gpio_x1_aud_px1"; 1502 nvidia,pins = "gpio_x1_aud_px1";
1501 nvidia,function = "rsvd2"; 1503 nvidia,function = "rsvd2";
1502 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1504 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1503 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1505 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1504 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1506 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1505 }; 1507 };
1506 gpio_x3_aud_px3 { /* NC */ 1508 gpio-x3-aud-px3 { /* NC */
1507 nvidia,pins = "gpio_x3_aud_px3"; 1509 nvidia,pins = "gpio_x3_aud_px3";
1508 nvidia,function = "rsvd4"; 1510 nvidia,function = "rsvd4";
1509 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1511 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1531,14 +1533,14 @@
1531 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1533 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1532 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1534 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1533 }; 1535 };
1534 clk3_req_pee1 { /* NC */ 1536 clk3-req-pee1 { /* NC */
1535 nvidia,pins = "clk3_req_pee1"; 1537 nvidia,pins = "clk3_req_pee1";
1536 nvidia,function = "rsvd2"; 1538 nvidia,function = "rsvd2";
1537 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1539 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
1538 nvidia,tristate = <TEGRA_PIN_ENABLE>; 1540 nvidia,tristate = <TEGRA_PIN_ENABLE>;
1539 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 1541 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
1540 }; 1542 };
1541 dap_mclk1_req_pee2 { /* NC */ 1543 dap-mclk1-req-pee2 { /* NC */
1542 nvidia,pins = "dap_mclk1_req_pee2"; 1544 nvidia,pins = "dap_mclk1_req_pee2";
1543 nvidia,function = "rsvd4"; 1545 nvidia,function = "rsvd4";
1544 nvidia,pull = <TEGRA_PIN_PULL_DOWN>; 1546 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
@@ -1554,7 +1556,7 @@
1554 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 1556 * SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1
1555 * bits being set to 0xfffd according to the TRM! 1557 * bits being set to 0xfffd according to the TRM!
1556 */ 1558 */
1557 sdmmc3_clk_lb_out_pee4 { /* NC */ 1559 sdmmc3-clk-lb-out-pee4 { /* NC */
1558 nvidia,pins = "sdmmc3_clk_lb_out_pee4"; 1560 nvidia,pins = "sdmmc3_clk_lb_out_pee4";
1559 nvidia,function = "sdmmc3"; 1561 nvidia,function = "sdmmc3";
1560 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 1562 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -1589,8 +1591,9 @@
1589 sgtl5000: codec@a { 1591 sgtl5000: codec@a {
1590 compatible = "fsl,sgtl5000"; 1592 compatible = "fsl,sgtl5000";
1591 reg = <0x0a>; 1593 reg = <0x0a>;
1592 VDDA-supply = <&reg_3v3>; 1594 VDDA-supply = <&reg_module_3v3_audio>;
1593 VDDIO-supply = <&vddio_1v8>; 1595 VDDD-supply = <&reg_1v8_vddio>;
1596 VDDIO-supply = <&reg_1v8_vddio>;
1594 clocks = <&tegra_car TEGRA124_CLK_EXTERN1>; 1597 clocks = <&tegra_car TEGRA124_CLK_EXTERN1>;
1595 }; 1598 };
1596 1599
@@ -1607,14 +1610,14 @@
1607 pinctrl-0 = <&as3722_default>; 1610 pinctrl-0 = <&as3722_default>;
1608 1611
1609 as3722_default: pinmux { 1612 as3722_default: pinmux {
1610 gpio2_7 { 1613 gpio2-7 {
1611 pins = "gpio2", /* PWR_EN_+V3.3 */ 1614 pins = "gpio2", /* PWR_EN_+V3.3 */
1612 "gpio7"; /* +V1.6_LPO */ 1615 "gpio7"; /* +V1.6_LPO */
1613 function = "gpio"; 1616 function = "gpio";
1614 bias-pull-up; 1617 bias-pull-up;
1615 }; 1618 };
1616 1619
1617 gpio0_1_3_4_5_6 { 1620 gpio0-1-3-4-5-6 {
1618 pins = "gpio0", "gpio1", "gpio3", 1621 pins = "gpio0", "gpio1", "gpio3",
1619 "gpio4", "gpio5", "gpio6"; 1622 "gpio4", "gpio5", "gpio6";
1620 bias-high-impedance; 1623 bias-high-impedance;
@@ -1622,18 +1625,18 @@
1622 }; 1625 };
1623 1626
1624 regulators { 1627 regulators {
1625 vsup-sd2-supply = <&reg_3v3>; 1628 vsup-sd2-supply = <&reg_module_3v3>;
1626 vsup-sd3-supply = <&reg_3v3>; 1629 vsup-sd3-supply = <&reg_module_3v3>;
1627 vsup-sd4-supply = <&reg_3v3>; 1630 vsup-sd4-supply = <&reg_module_3v3>;
1628 vsup-sd5-supply = <&reg_3v3>; 1631 vsup-sd5-supply = <&reg_module_3v3>;
1629 vin-ldo0-supply = <&vddio_ddr_1v35>; 1632 vin-ldo0-supply = <&reg_1v35_vddio_ddr>;
1630 vin-ldo1-6-supply = <&reg_3v3>; 1633 vin-ldo1-6-supply = <&reg_module_3v3>;
1631 vin-ldo2-5-7-supply = <&vddio_1v8>; 1634 vin-ldo2-5-7-supply = <&reg_1v8_vddio>;
1632 vin-ldo3-4-supply = <&reg_3v3>; 1635 vin-ldo3-4-supply = <&reg_module_3v3>;
1633 vin-ldo9-10-supply = <&reg_3v3>; 1636 vin-ldo9-10-supply = <&reg_module_3v3>;
1634 vin-ldo11-supply = <&reg_3v3>; 1637 vin-ldo11-supply = <&reg_module_3v3>;
1635 1638
1636 vdd_cpu: sd0 { 1639 reg_vdd_cpu: sd0 {
1637 regulator-name = "+VDD_CPU_AP"; 1640 regulator-name = "+VDD_CPU_AP";
1638 regulator-min-microvolt = <700000>; 1641 regulator-min-microvolt = <700000>;
1639 regulator-max-microvolt = <1400000>; 1642 regulator-max-microvolt = <1400000>;
@@ -1655,7 +1658,7 @@
1655 ams,ext-control = <1>; 1658 ams,ext-control = <1>;
1656 }; 1659 };
1657 1660
1658 vddio_ddr_1v35: sd2 { 1661 reg_1v35_vddio_ddr: sd2 {
1659 regulator-name = 1662 regulator-name =
1660 "+V1.35_VDDIO_DDR(sd2)"; 1663 "+V1.35_VDDIO_DDR(sd2)";
1661 regulator-min-microvolt = <1350000>; 1664 regulator-min-microvolt = <1350000>;
@@ -1673,13 +1676,13 @@
1673 regulator-boot-on; 1676 regulator-boot-on;
1674 }; 1677 };
1675 1678
1676 vdd_1v05: sd4 { 1679 reg_1v05_vdd: sd4 {
1677 regulator-name = "+V1.05"; 1680 regulator-name = "+V1.05";
1678 regulator-min-microvolt = <1050000>; 1681 regulator-min-microvolt = <1050000>;
1679 regulator-max-microvolt = <1050000>; 1682 regulator-max-microvolt = <1050000>;
1680 }; 1683 };
1681 1684
1682 vddio_1v8: sd5 { 1685 reg_1v8_vddio: sd5 {
1683 regulator-name = "+V1.8"; 1686 regulator-name = "+V1.8";
1684 regulator-min-microvolt = <1800000>; 1687 regulator-min-microvolt = <1800000>;
1685 regulator-max-microvolt = <1800000>; 1688 regulator-max-microvolt = <1800000>;
@@ -1687,7 +1690,7 @@
1687 regulator-always-on; 1690 regulator-always-on;
1688 }; 1691 };
1689 1692
1690 vdd_gpu: sd6 { 1693 reg_vdd_gpu: sd6 {
1691 regulator-name = "+VDD_GPU_AP"; 1694 regulator-name = "+VDD_GPU_AP";
1692 regulator-min-microvolt = <650000>; 1695 regulator-min-microvolt = <650000>;
1693 regulator-max-microvolt = <1200000>; 1696 regulator-max-microvolt = <1200000>;
@@ -1697,7 +1700,7 @@
1697 regulator-always-on; 1700 regulator-always-on;
1698 }; 1701 };
1699 1702
1700 avdd_1v05: ldo0 { 1703 reg_1v05_avdd: ldo0 {
1701 regulator-name = "+V1.05_AVDD"; 1704 regulator-name = "+V1.05_AVDD";
1702 regulator-min-microvolt = <1050000>; 1705 regulator-min-microvolt = <1050000>;
1703 regulator-max-microvolt = <1050000>; 1706 regulator-max-microvolt = <1050000>;
@@ -1772,12 +1775,13 @@
1772 * TMP451 temperature sensor 1775 * TMP451 temperature sensor
1773 * Note: THERM_N directly connected to AS3722 PMIC THERM 1776 * Note: THERM_N directly connected to AS3722 PMIC THERM
1774 */ 1777 */
1775 temperature-sensor@4c { 1778 temp-sensor@4c {
1776 compatible = "ti,tmp451"; 1779 compatible = "ti,tmp451";
1777 reg = <0x4c>; 1780 reg = <0x4c>;
1778 interrupt-parent = <&gpio>; 1781 interrupt-parent = <&gpio>;
1779 interrupts = <TEGRA_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>; 1782 interrupts = <TEGRA_GPIO(I, 6) IRQ_TYPE_LEVEL_LOW>;
1780 #thermal-sensor-cells = <1>; 1783 #thermal-sensor-cells = <1>;
1784 vcc-supply = <&reg_module_3v3>;
1781 }; 1785 };
1782 }; 1786 };
1783 1787
@@ -1809,9 +1813,9 @@
1809 sata@70020000 { 1813 sata@70020000 {
1810 phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>; 1814 phys = <&{/padctl@7009f000/pads/sata/lanes/sata-0}>;
1811 phy-names = "sata-0"; 1815 phy-names = "sata-0";
1812 avdd-supply = <&vdd_1v05>; 1816 avdd-supply = <&reg_1v05_vdd>;
1813 hvdd-supply = <&reg_3v3>; 1817 hvdd-supply = <&reg_module_3v3>;
1814 vddio-supply = <&vdd_1v05>; 1818 vddio-supply = <&reg_1v05_vdd>;
1815 }; 1819 };
1816 1820
1817 usb@70090000 { 1821 usb@70090000 {
@@ -1822,14 +1826,14 @@
1822 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>, 1826 <&{/padctl@7009f000/pads/usb2/lanes/usb2-2}>,
1823 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>; 1827 <&{/padctl@7009f000/pads/pcie/lanes/pcie-0}>;
1824 phy-names = "usb2-0", "usb3-1", "usb2-1", "usb2-2", "usb3-0"; 1828 phy-names = "usb2-0", "usb3-1", "usb2-1", "usb2-2", "usb3-0";
1825 avddio-pex-supply = <&vdd_1v05>; 1829 avddio-pex-supply = <&reg_1v05_vdd>;
1826 avdd-pll-erefe-supply = <&avdd_1v05>; 1830 avdd-pll-erefe-supply = <&reg_1v05_avdd>;
1827 avdd-pll-utmip-supply = <&vddio_1v8>; 1831 avdd-pll-utmip-supply = <&reg_1v8_vddio>;
1828 avdd-usb-ss-pll-supply = <&vdd_1v05>; 1832 avdd-usb-ss-pll-supply = <&reg_1v05_vdd>;
1829 avdd-usb-supply = <&reg_3v3>; 1833 avdd-usb-supply = <&reg_module_3v3>;
1830 dvddio-pex-supply = <&vdd_1v05>; 1834 dvddio-pex-supply = <&reg_1v05_vdd>;
1831 hvdd-usb-ss-pll-e-supply = <&reg_3v3>; 1835 hvdd-usb-ss-pll-e-supply = <&reg_module_3v3>;
1832 hvdd-usb-ss-supply = <&reg_3v3>; 1836 hvdd-usb-ss-supply = <&reg_module_3v3>;
1833 }; 1837 };
1834 1838
1835 padctl@7009f000 { 1839 padctl@7009f000 {
@@ -1839,18 +1843,18 @@
1839 1843
1840 lanes { 1844 lanes {
1841 usb2-0 { 1845 usb2-0 {
1842 nvidia,function = "xusb";
1843 status = "okay"; 1846 status = "okay";
1847 nvidia,function = "xusb";
1844 }; 1848 };
1845 1849
1846 usb2-1 { 1850 usb2-1 {
1847 nvidia,function = "xusb";
1848 status = "okay"; 1851 status = "okay";
1852 nvidia,function = "xusb";
1849 }; 1853 };
1850 1854
1851 usb2-2 { 1855 usb2-2 {
1852 nvidia,function = "xusb";
1853 status = "okay"; 1856 status = "okay";
1857 nvidia,function = "xusb";
1854 }; 1858 };
1855 }; 1859 };
1856 }; 1860 };
@@ -1860,28 +1864,28 @@
1860 1864
1861 lanes { 1865 lanes {
1862 pcie-0 { 1866 pcie-0 {
1863 nvidia,function = "usb3-ss";
1864 status = "okay"; 1867 status = "okay";
1868 nvidia,function = "usb3-ss";
1865 }; 1869 };
1866 1870
1867 pcie-1 { 1871 pcie-1 {
1868 nvidia,function = "usb3-ss";
1869 status = "okay"; 1872 status = "okay";
1873 nvidia,function = "usb3-ss";
1870 }; 1874 };
1871 1875
1872 pcie-2 { 1876 pcie-2 {
1873 nvidia,function = "pcie";
1874 status = "okay"; 1877 status = "okay";
1878 nvidia,function = "pcie";
1875 }; 1879 };
1876 1880
1877 pcie-3 { 1881 pcie-3 {
1878 nvidia,function = "pcie";
1879 status = "okay"; 1882 status = "okay";
1883 nvidia,function = "pcie";
1880 }; 1884 };
1881 1885
1882 pcie-4 { 1886 pcie-4 {
1883 nvidia,function = "pcie";
1884 status = "okay"; 1887 status = "okay";
1888 nvidia,function = "pcie";
1885 }; 1889 };
1886 }; 1890 };
1887 }; 1891 };
@@ -1891,8 +1895,8 @@
1891 1895
1892 lanes { 1896 lanes {
1893 sata-0 { 1897 sata-0 {
1894 nvidia,function = "sata";
1895 status = "okay"; 1898 status = "okay";
1899 nvidia,function = "sata";
1896 }; 1900 };
1897 }; 1901 };
1898 }; 1902 };
@@ -1903,7 +1907,6 @@
1903 usb2-0 { 1907 usb2-0 {
1904 status = "okay"; 1908 status = "okay";
1905 mode = "otg"; 1909 mode = "otg";
1906
1907 vbus-supply = <&reg_usbo1_vbus>; 1910 vbus-supply = <&reg_usbo1_vbus>;
1908 }; 1911 };
1909 1912
@@ -1911,7 +1914,6 @@
1911 usb2-1 { 1914 usb2-1 {
1912 status = "okay"; 1915 status = "okay";
1913 mode = "host"; 1916 mode = "host";
1914
1915 vbus-supply = <&reg_usbh_vbus>; 1917 vbus-supply = <&reg_usbh_vbus>;
1916 }; 1918 };
1917 1919
@@ -1919,18 +1921,19 @@
1919 usb2-2 { 1921 usb2-2 {
1920 status = "okay"; 1922 status = "okay";
1921 mode = "host"; 1923 mode = "host";
1922
1923 vbus-supply = <&reg_usbh_vbus>; 1924 vbus-supply = <&reg_usbh_vbus>;
1924 }; 1925 };
1925 1926
1926 usb3-0 { 1927 usb3-0 {
1927 nvidia,usb2-companion = <2>;
1928 status = "okay"; 1928 status = "okay";
1929 nvidia,usb2-companion = <2>;
1930 vbus-supply = <&reg_usbh_vbus>;
1929 }; 1931 };
1930 1932
1931 usb3-1 { 1933 usb3-1 {
1932 nvidia,usb2-companion = <0>;
1933 status = "okay"; 1934 status = "okay";
1935 nvidia,usb2-companion = <0>;
1936 vbus-supply = <&reg_usbo1_vbus>;
1934 }; 1937 };
1935 }; 1938 };
1936 }; 1939 };
@@ -1940,13 +1943,16 @@
1940 status = "okay"; 1943 status = "okay";
1941 bus-width = <8>; 1944 bus-width = <8>;
1942 non-removable; 1945 non-removable;
1946 vmmc-supply = <&reg_module_3v3>; /* VCC */
1947 vqmmc-supply = <&reg_1v8_vddio>; /* VCCQ */
1948 mmc-ddr-1_8v;
1943 }; 1949 };
1944 1950
1945 /* CPU DFLL clock */ 1951 /* CPU DFLL clock */
1946 clock@70110000 { 1952 clock@70110000 {
1947 status = "okay"; 1953 status = "okay";
1948 vdd-cpu-supply = <&vdd_cpu>;
1949 nvidia,i2c-fs-rate = <400000>; 1954 nvidia,i2c-fs-rate = <400000>;
1955 vdd-cpu-supply = <&reg_vdd_cpu>;
1950 }; 1956 };
1951 1957
1952 ahub@70300000 { 1958 ahub@70300000 {
@@ -1955,22 +1961,15 @@
1955 }; 1961 };
1956 }; 1962 };
1957 1963
1958 clocks { 1964 clk32k_in: osc3 {
1959 compatible = "simple-bus"; 1965 compatible = "fixed-clock";
1960 #address-cells = <1>; 1966 #clock-cells = <0>;
1961 #size-cells = <0>; 1967 clock-frequency = <32768>;
1962
1963 clk32k_in: clock@0 {
1964 compatible = "fixed-clock";
1965 reg = <0>;
1966 #clock-cells = <0>;
1967 clock-frequency = <32768>;
1968 };
1969 }; 1968 };
1970 1969
1971 cpus { 1970 cpus {
1972 cpu@0 { 1971 cpu@0 {
1973 vdd-cpu-supply = <&vdd_cpu>; 1972 vdd-cpu-supply = <&reg_vdd_cpu>;
1974 }; 1973 };
1975 }; 1974 };
1976 1975
@@ -1980,7 +1979,7 @@
1980 regulator-min-microvolt = <1050000>; 1979 regulator-min-microvolt = <1050000>;
1981 regulator-max-microvolt = <1050000>; 1980 regulator-max-microvolt = <1050000>;
1982 gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>; 1981 gpio = <&gpio TEGRA_GPIO(H, 7) GPIO_ACTIVE_LOW>;
1983 vin-supply = <&vdd_1v05>; 1982 vin-supply = <&reg_1v05_vdd>;
1984 }; 1983 };
1985 1984
1986 reg_3v3_mxm: regulator-3v3-mxm { 1985 reg_3v3_mxm: regulator-3v3-mxm {
@@ -1992,7 +1991,15 @@
1992 regulator-boot-on; 1991 regulator-boot-on;
1993 }; 1992 };
1994 1993
1995 reg_3v3: regulator-3v3 { 1994 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
1995 compatible = "regulator-fixed";
1996 regulator-name = "+V3.3_AVDD_HDMI";
1997 regulator-min-microvolt = <3300000>;
1998 regulator-max-microvolt = <3300000>;
1999 vin-supply = <&reg_1v05_vdd>;
2000 };
2001
2002 reg_module_3v3: regulator-module-3v3 {
1996 compatible = "regulator-fixed"; 2003 compatible = "regulator-fixed";
1997 regulator-name = "+V3.3"; 2004 regulator-name = "+V3.3";
1998 regulator-min-microvolt = <3300000>; 2005 regulator-min-microvolt = <3300000>;
@@ -2005,12 +2012,12 @@
2005 vin-supply = <&reg_3v3_mxm>; 2012 vin-supply = <&reg_3v3_mxm>;
2006 }; 2013 };
2007 2014
2008 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi { 2015 reg_module_3v3_audio: regulator-module-3v3-audio {
2009 compatible = "regulator-fixed"; 2016 compatible = "regulator-fixed";
2010 regulator-name = "+V3.3_AVDD_HDMI"; 2017 regulator-name = "+V3.3_AUDIO_AVDD_S";
2011 regulator-min-microvolt = <3300000>; 2018 regulator-min-microvolt = <3300000>;
2012 regulator-max-microvolt = <3300000>; 2019 regulator-max-microvolt = <3300000>;
2013 vin-supply = <&vdd_1v05>; 2020 regulator-always-on;
2014 }; 2021 };
2015 2022
2016 sound { 2023 sound {
@@ -2064,7 +2071,7 @@
2064 2071
2065&gpio { 2072&gpio {
2066 /* I210 Gigabit Ethernet Controller Reset */ 2073 /* I210 Gigabit Ethernet Controller Reset */
2067 lan_reset_n { 2074 lan-reset-n {
2068 gpio-hog; 2075 gpio-hog;
2069 gpios = <TEGRA_GPIO(S, 2) GPIO_ACTIVE_HIGH>; 2076 gpios = <TEGRA_GPIO(S, 2) GPIO_ACTIVE_HIGH>;
2070 output-high; 2077 output-high;
@@ -2072,7 +2079,7 @@
2072 }; 2079 };
2073 2080
2074 /* Control MXM3 pin 26 Reset Module Output Carrier Input */ 2081 /* Control MXM3 pin 26 Reset Module Output Carrier Input */
2075 reset_moci_ctrl { 2082 reset-moci-ctrl {
2076 gpio-hog; 2083 gpio-hog;
2077 gpios = <TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>; 2084 gpios = <TEGRA_GPIO(U, 4) GPIO_ACTIVE_HIGH>;
2078 output-high; 2085 output-high;
diff --git a/arch/arm/boot/dts/tegra20-colibri-eval-v3.dts b/arch/arm/boot/dts/tegra20-colibri-eval-v3.dts
new file mode 100644
index 000000000000..3c0f2681fcde
--- /dev/null
+++ b/arch/arm/boot/dts/tegra20-colibri-eval-v3.dts
@@ -0,0 +1,262 @@
1// SPDX-License-Identifier: GPL-2.0 OR MIT
2/dts-v1/;
3
4#include <dt-bindings/input/input.h>
5#include "tegra20-colibri.dtsi"
6
7/ {
8 model = "Toradex Colibri T20 on Colibri Evaluation Board";
9 compatible = "toradex,colibri_t20-eval-v3", "toradex,colibri_t20",
10 "nvidia,tegra20";
11
12 aliases {
13 rtc0 = "/i2c@7000c000/rtc@68";
14 rtc1 = "/i2c@7000d000/pmic@34";
15 rtc2 = "/rtc@7000e000";
16 serial0 = &uarta;
17 serial1 = &uartd;
18 serial2 = &uartb;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24
25 host1x@50000000 {
26 dc@54200000 {
27 rgb {
28 status = "okay";
29 nvidia,panel = <&panel>;
30 };
31 };
32
33 hdmi@54280000 {
34 status = "okay";
35 hdmi-supply = <&reg_5v0>;
36 };
37 };
38
39 pinmux@70000014 {
40 state_default: pinmux {
41 bl-on {
42 nvidia,tristate = <TEGRA_PIN_DISABLE>;
43 };
44
45 ddc {
46 nvidia,tristate = <TEGRA_PIN_DISABLE>;
47 };
48
49 hotplug-detect {
50 nvidia,tristate = <TEGRA_PIN_DISABLE>;
51 };
52
53 i2c {
54 nvidia,tristate = <TEGRA_PIN_DISABLE>;
55 };
56
57 lcd {
58 nvidia,tristate = <TEGRA_PIN_DISABLE>;
59 };
60
61 lm1 {
62 nvidia,tristate = <TEGRA_PIN_DISABLE>;
63 };
64
65 mmc {
66 nvidia,tristate = <TEGRA_PIN_DISABLE>;
67 };
68
69 mmccd {
70 nvidia,tristate = <TEGRA_PIN_DISABLE>;
71 };
72
73 pwm-a-b {
74 nvidia,tristate = <TEGRA_PIN_DISABLE>;
75 };
76
77 pwm-c-d {
78 nvidia,tristate = <TEGRA_PIN_DISABLE>;
79 };
80
81 ssp {
82 nvidia,tristate = <TEGRA_PIN_DISABLE>;
83 };
84
85 uart-a {
86 nvidia,tristate = <TEGRA_PIN_DISABLE>;
87 };
88
89 uart-b {
90 nvidia,tristate = <TEGRA_PIN_DISABLE>;
91 };
92
93 uart-c {
94 nvidia,tristate = <TEGRA_PIN_DISABLE>;
95 };
96
97 usbh-pen {
98 nvidia,tristate = <TEGRA_PIN_DISABLE>;
99 };
100 };
101 };
102
103 /* Colibri UART-A */
104 serial@70006000 {
105 status = "okay";
106 };
107
108 /* Colibri UART-C */
109 serial@70006040 {
110 status = "okay";
111 };
112
113 /* Colibri UART-B */
114 serial@70006300 {
115 status = "okay";
116 };
117
118 pwm@7000a000 {
119 status = "okay";
120 };
121
122 /*
123 * GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
124 * board)
125 */
126 i2c@7000c000 {
127 status = "okay";
128 clock-frequency = <400000>;
129
130 /* M41T0M6 real time clock on carrier board */
131 rtc@68 {
132 compatible = "st,m41t0";
133 reg = <0x68>;
134 };
135 };
136
137 /* GEN2_I2C: unused */
138
139 /* CAM_I2C (I2C3): unused */
140
141 /* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
142 i2c@7000c400 {
143 status = "okay";
144 };
145
146 /* EHCI instance 0: USB1_DP/N -> USBC_P/N */
147 usb@c5000000 {
148 status = "okay";
149 dr_mode = "otg";
150 };
151
152 usb-phy@c5000000 {
153 status = "okay";
154 vbus-supply = <&reg_usbc_vbus>;
155 };
156
157 /* EHCI instance 2: USB3_DP/N -> USBH_P/N */
158 usb@c5008000 {
159 status = "okay";
160 };
161
162 usb-phy@c5008000 {
163 status = "okay";
164 vbus-supply = <&reg_usbh_vbus>;
165 };
166
167 /* SPI4: Colibri SSP */
168 spi@7000da00 {
169 status = "okay";
170 spi-max-frequency = <25000000>;
171
172 can@0 {
173 compatible = "microchip,mcp2515";
174 reg = <0>;
175 clocks = <&clk16m>;
176 interrupt-parent = <&gpio>;
177 /* CAN_INT */
178 interrupts = <TEGRA_GPIO(A, 0) IRQ_TYPE_EDGE_FALLING>;
179 spi-max-frequency = <10000000>;
180 vdd-supply = <&reg_3v3>;
181 xceiver-supply = <&reg_5v0>;
182 };
183 };
184
185 /* SD/MMC */
186 sdhci@c8000600 {
187 status = "okay";
188 bus-width = <4>;
189 cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; /* MMCD */
190 no-1-8-v;
191 };
192
193 backlight: backlight {
194 compatible = "pwm-backlight";
195 brightness-levels = <255 128 64 32 16 8 4 0>;
196 default-brightness-level = <6>;
197 /* BL_ON */
198 enable-gpios = <&gpio TEGRA_GPIO(T, 4) GPIO_ACTIVE_HIGH>;
199 power-supply = <&reg_3v3>;
200 pwms = <&pwm 0 5000000>; /* PWM<A> */
201 };
202
203 clk16m: osc3 {
204 compatible = "fixed-clock";
205 #clock-cells = <0>;
206 clock-frequency = <16000000>;
207 };
208
209 gpio-keys {
210 compatible = "gpio-keys";
211
212 wakeup {
213 label = "SODIMM pin 45 wakeup";
214 gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
215 linux,code = <KEY_WAKEUP>;
216 debounce-interval = <10>;
217 wakeup-source;
218 };
219 };
220
221 panel: panel {
222 /*
223 * edt,et057090dhu: EDT 5.7" LCD TFT
224 * edt,et070080dh6: EDT 7.0" LCD TFT
225 */
226 compatible = "edt,et057090dhu", "simple-panel";
227 backlight = <&backlight>;
228 power-supply = <&reg_3v3>;
229 };
230
231 reg_3v3: regulator-3v3 {
232 compatible = "regulator-fixed";
233 regulator-name = "3.3V_SW";
234 regulator-min-microvolt = <3300000>;
235 regulator-max-microvolt = <3300000>;
236 };
237
238 reg_5v0: regulator-5v0 {
239 compatible = "regulator-fixed";
240 regulator-name = "5V_SW";
241 regulator-min-microvolt = <5000000>;
242 regulator-max-microvolt = <5000000>;
243 };
244
245 reg_usbc_vbus: regulator-usbc-vbus {
246 compatible = "regulator-fixed";
247 regulator-name = "VCC_USB5";
248 regulator-min-microvolt = <5000000>;
249 regulator-max-microvolt = <5000000>;
250 vin-supply = <&reg_5v0>;
251 };
252
253 /* USBH_PEN resp. USB_P_EN */
254 reg_usbh_vbus: regulator-usbh-vbus {
255 compatible = "regulator-fixed";
256 regulator-name = "VCC_USB[1-4]";
257 regulator-min-microvolt = <5000000>;
258 regulator-max-microvolt = <5000000>;
259 gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
260 vin-supply = <&reg_5v0>;
261 };
262};
diff --git a/arch/arm/boot/dts/tegra20-colibri-iris.dts b/arch/arm/boot/dts/tegra20-colibri-iris.dts
index 57f16c0e9917..d8004d68efa0 100644
--- a/arch/arm/boot/dts/tegra20-colibri-iris.dts
+++ b/arch/arm/boot/dts/tegra20-colibri-iris.dts
@@ -1,15 +1,21 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/; 2/dts-v1/;
3 3
4#include <dt-bindings/input/input.h>
4#include "tegra20-colibri.dtsi" 5#include "tegra20-colibri.dtsi"
5 6
6/ { 7/ {
7 model = "Toradex Colibri T20 256/512 MB on Iris"; 8 model = "Toradex Colibri T20 on Iris";
8 compatible = "toradex,iris", "toradex,colibri_t20-512", "nvidia,tegra20"; 9 compatible = "toradex,colibri_t20-iris", "toradex,colibri_t20",
10 "nvidia,tegra20";
9 11
10 aliases { 12 aliases {
13 rtc0 = "/i2c@7000c000/rtc@68";
14 rtc1 = "/i2c@7000d000/pmic@34";
15 rtc2 = "/rtc@7000e000";
11 serial0 = &uarta; 16 serial0 = &uarta;
12 serial1 = &uartd; 17 serial1 = &uartd;
18 serial2 = &uartb;
13 }; 19 };
14 20
15 chosen { 21 chosen {
@@ -17,90 +23,222 @@
17 }; 23 };
18 24
19 host1x@50000000 { 25 host1x@50000000 {
26 dc@54200000 {
27 rgb {
28 status = "okay";
29 nvidia,panel = <&panel>;
30 };
31 };
32
20 hdmi@54280000 { 33 hdmi@54280000 {
21 status = "okay"; 34 status = "okay";
35 hdmi-supply = <&reg_5v0>;
22 }; 36 };
23 }; 37 };
24 38
25 pinmux@70000014 { 39 pinmux@70000014 {
26 state_default: pinmux { 40 state_default: pinmux {
27 hdint { 41 bl-on {
42 nvidia,tristate = <TEGRA_PIN_DISABLE>;
43 };
44
45 ddc {
46 nvidia,tristate = <TEGRA_PIN_DISABLE>;
47 };
48
49 hotplug-detect {
50 nvidia,tristate = <TEGRA_PIN_DISABLE>;
51 };
52
53 i2c {
54 nvidia,tristate = <TEGRA_PIN_DISABLE>;
55 };
56
57 lcd {
58 nvidia,tristate = <TEGRA_PIN_DISABLE>;
59 };
60
61 lm1 {
62 nvidia,tristate = <TEGRA_PIN_DISABLE>;
63 };
64
65 mmc {
66 nvidia,tristate = <TEGRA_PIN_DISABLE>;
67 };
68
69 mmccd {
70 nvidia,tristate = <TEGRA_PIN_DISABLE>;
71 };
72
73 pwm-a-b {
74 nvidia,tristate = <TEGRA_PIN_DISABLE>;
75 };
76
77 pwm-c-d {
78 nvidia,tristate = <TEGRA_PIN_DISABLE>;
79 };
80
81 ssp {
28 nvidia,tristate = <TEGRA_PIN_DISABLE>; 82 nvidia,tristate = <TEGRA_PIN_DISABLE>;
29 }; 83 };
30 84
31 i2cddc { 85 uart-a {
32 nvidia,tristate = <TEGRA_PIN_DISABLE>; 86 nvidia,tristate = <TEGRA_PIN_DISABLE>;
33 }; 87 };
34 88
35 sdio4 { 89 uart-b {
36 nvidia,tristate = <TEGRA_PIN_DISABLE>; 90 nvidia,tristate = <TEGRA_PIN_DISABLE>;
37 }; 91 };
38 92
39 uarta { 93 uart-c {
40 nvidia,tristate = <TEGRA_PIN_DISABLE>; 94 nvidia,tristate = <TEGRA_PIN_DISABLE>;
41 }; 95 };
42 96
43 uartd { 97 usbh-pen {
44 nvidia,tristate = <TEGRA_PIN_DISABLE>; 98 nvidia,tristate = <TEGRA_PIN_DISABLE>;
45 }; 99 };
46 }; 100 };
47 }; 101 };
48 102
103 /* Colibri UART-A */
49 serial@70006000 { 104 serial@70006000 {
50 status = "okay"; 105 status = "okay";
51 }; 106 };
52 107
108 /* Colibri UART-C */
109 serial@70006040 {
110 status = "okay";
111 };
112
113 /* Colibri UART-B */
53 serial@70006300 { 114 serial@70006300 {
54 status = "okay"; 115 status = "okay";
55 }; 116 };
56 117
57 i2c_ddc: i2c@7000c400 { 118 pwm@7000a000 {
119 status = "okay";
120 };
121
122 /*
123 * GEN1_I2C: I2C_SDA/SCL on SODIMM pin 194/196 (e.g. RTC on carrier
124 * board)
125 */
126 i2c@7000c000 {
127 status = "okay";
128 clock-frequency = <400000>;
129
130 /* M41T0M6 real time clock on carrier board */
131 rtc@68 {
132 compatible = "st,m41t0";
133 reg = <0x68>;
134 };
135 };
136
137 /* GEN2_I2C: unused */
138
139 /* CAM_I2C (I2C3): unused */
140
141 /* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
142 i2c@7000c400 {
58 status = "okay"; 143 status = "okay";
59 }; 144 };
60 145
146 /* EHCI instance 0: USB1_DP/N -> USBC_P/N */
61 usb@c5000000 { 147 usb@c5000000 {
62 status = "okay"; 148 status = "okay";
149 dr_mode = "otg";
63 }; 150 };
64 151
65 usb-phy@c5000000 { 152 usb-phy@c5000000 {
66 status = "okay"; 153 status = "okay";
154 vbus-supply = <&reg_usbc_vbus>;
67 }; 155 };
68 156
157 /* EHCI instance 2: USB3_DP/N -> USBH_P/N */
69 usb@c5008000 { 158 usb@c5008000 {
70 status = "okay"; 159 status = "okay";
71 }; 160 };
72 161
73 usb-phy@c5008000 { 162 usb-phy@c5008000 {
74 status = "okay"; 163 status = "okay";
164 vbus-supply = <&reg_usbh_vbus>;
165 };
166
167 /* SPI4: Colibri SSP */
168 spi@7000da00 {
169 status = "okay";
170 spi-max-frequency = <25000000>;
75 }; 171 };
76 172
173 /* SD/MMC */
77 sdhci@c8000600 { 174 sdhci@c8000600 {
78 status = "okay"; 175 status = "okay";
79 bus-width = <4>; 176 bus-width = <4>;
80 vmmc-supply = <&vcc_sd_reg>; 177 cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; /* MMCD */
81 vqmmc-supply = <&vcc_sd_reg>; 178 no-1-8-v;
82 }; 179 };
83 180
84 regulators { 181 backlight: backlight {
85 regulator@0 { 182 compatible = "pwm-backlight";
86 compatible = "regulator-fixed"; 183 brightness-levels = <255 128 64 32 16 8 4 0>;
87 reg = <0>; 184 default-brightness-level = <6>;
88 regulator-name = "usb_host_vbus"; 185 /* BL_ON */
89 regulator-min-microvolt = <5000000>; 186 enable-gpios = <&gpio TEGRA_GPIO(T, 4) GPIO_ACTIVE_HIGH>;
90 regulator-max-microvolt = <5000000>; 187 power-supply = <&reg_3v3>;
91 regulator-boot-on; 188 pwms = <&pwm 0 5000000>; /* PWM<A> */
92 regulator-always-on; 189 };
93 gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_HIGH>; 190
94 }; 191 gpio-keys {
192 compatible = "gpio-keys";
95 193
96 vcc_sd_reg: regulator@1 { 194 wakeup {
97 compatible = "regulator-fixed"; 195 label = "SODIMM pin 45 wakeup";
98 reg = <1>; 196 gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
99 regulator-name = "vcc_sd"; 197 linux,code = <KEY_WAKEUP>;
100 regulator-min-microvolt = <3300000>; 198 debounce-interval = <10>;
101 regulator-max-microvolt = <3300000>; 199 wakeup-source;
102 regulator-boot-on;
103 regulator-always-on;
104 }; 200 };
105 }; 201 };
202
203 panel: panel {
204 /*
205 * edt,et057090dhu: EDT 5.7" LCD TFT
206 * edt,et070080dh6: EDT 7.0" LCD TFT
207 */
208 compatible = "edt,et057090dhu", "simple-panel";
209 backlight = <&backlight>;
210 power-supply = <&reg_3v3>;
211 };
212
213 reg_3v3: regulator-3v3 {
214 compatible = "regulator-fixed";
215 regulator-name = "3.3V";
216 regulator-min-microvolt = <3300000>;
217 regulator-max-microvolt = <3300000>;
218 };
219
220 reg_5v0: regulator-5v0 {
221 compatible = "regulator-fixed";
222 regulator-name = "5V";
223 regulator-min-microvolt = <5000000>;
224 regulator-max-microvolt = <5000000>;
225 };
226
227 reg_usbc_vbus: regulator-usbc-vbus {
228 compatible = "regulator-fixed";
229 regulator-name = "VCC_USB2";
230 regulator-min-microvolt = <5000000>;
231 regulator-max-microvolt = <5000000>;
232 vin-supply = <&reg_5v0>;
233 };
234
235 /* USBH_PEN resp. USB_P_EN */
236 reg_usbh_vbus: regulator-usbh-vbus {
237 compatible = "regulator-fixed";
238 regulator-name = "VCC_USB1";
239 regulator-min-microvolt = <5000000>;
240 regulator-max-microvolt = <5000000>;
241 gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
242 vin-supply = <&reg_5v0>;
243 };
106}; 244};
diff --git a/arch/arm/boot/dts/tegra20-colibri.dtsi b/arch/arm/boot/dts/tegra20-colibri.dtsi
index e7b9ab09908a..6162d193e12c 100644
--- a/arch/arm/boot/dts/tegra20-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra20-colibri.dtsi
@@ -1,15 +1,13 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2#include "tegra20.dtsi" 2#include "tegra20.dtsi"
3 3
4/*
5 * Toradex Colibri T20 Module Device Tree
6 * Compatible for Revisions Colibri T20 256MB V1.1B, V1.2A;
7 * Colibri T20 256MB IT V1.2A; Colibri T20 512MB V1.1C, V1.2A;
8 * Colibri T20 512MB IT V1.2A
9 */
4/ { 10/ {
5 model = "Toradex Colibri T20 256/512 MB";
6 compatible = "toradex,colibri_t20-512", "nvidia,tegra20";
7
8 aliases {
9 rtc0 = "/i2c@7000d000/tps6586x@34";
10 rtc1 = "/rtc@7000e000";
11 };
12
13 memory@0 { 11 memory@0 {
14 /* 12 /*
15 * Set memory to 256 MB to be safe as this could be used on 13 * Set memory to 256 MB to be safe as this could be used on
@@ -21,12 +19,11 @@
21 19
22 host1x@50000000 { 20 host1x@50000000 {
23 hdmi@54280000 { 21 hdmi@54280000 {
24 vdd-supply = <&hdmi_vdd_reg>; 22 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
25 pll-supply = <&hdmi_pll_reg>; 23 nvidia,hpd-gpio =
26 24 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
27 nvidia,ddc-i2c-bus = <&i2c_ddc>; 25 pll-supply = <&reg_1v8_avdd_hdmi_pll>;
28 nvidia,hpd-gpio = <&gpio TEGRA_GPIO(N, 7) 26 vdd-supply = <&reg_3v3_avdd_hdmi>;
29 GPIO_ACTIVE_HIGH>;
30 }; 27 };
31 }; 28 };
32 29
@@ -35,187 +32,406 @@
35 pinctrl-0 = <&state_default>; 32 pinctrl-0 = <&state_default>;
36 33
37 state_default: pinmux { 34 state_default: pinmux {
38 audio_refclk { 35 /* Analogue Audio AC97 to WM9712 (On-module) */
36 audio-refclk {
39 nvidia,pins = "cdev1"; 37 nvidia,pins = "cdev1";
40 nvidia,function = "plla_out"; 38 nvidia,function = "plla_out";
41 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 39 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
42 nvidia,tristate = <TEGRA_PIN_DISABLE>; 40 nvidia,tristate = <TEGRA_PIN_DISABLE>;
43 }; 41 };
44 crt {
45 nvidia,pins = "crtp";
46 nvidia,function = "crt";
47 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
48 nvidia,tristate = <TEGRA_PIN_ENABLE>;
49 };
50 dap3 { 42 dap3 {
51 nvidia,pins = "dap3"; 43 nvidia,pins = "dap3";
52 nvidia,function = "dap3"; 44 nvidia,function = "dap3";
53 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 45 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
54 nvidia,tristate = <TEGRA_PIN_DISABLE>; 46 nvidia,tristate = <TEGRA_PIN_DISABLE>;
55 }; 47 };
56 displaya { 48
57 nvidia,pins = "ld0", "ld1", "ld2", "ld3", 49 /*
58 "ld4", "ld5", "ld6", "ld7", "ld8", 50 * AC97_RESET, ULPI_RESET, AC97_INT aka WM9712 GENIRQ
59 "ld9", "ld10", "ld11", "ld12", "ld13", 51 * (All on-module), SODIMM Pin 45 Wakeup
60 "ld14", "ld15", "ld16", "ld17", 52 */
61 "lhs", "lpw0", "lpw2", "lsc0", 53 gpio-uac {
62 "lsc1", "lsck", "lsda", "lspi", "lvs"; 54 nvidia,pins = "uac";
63 nvidia,function = "displaya"; 55 nvidia,function = "rsvd2";
64 nvidia,tristate = <TEGRA_PIN_ENABLE>;
65 };
66 gpio_dte {
67 nvidia,pins = "dte";
68 nvidia,function = "rsvd1";
69 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
70 nvidia,tristate = <TEGRA_PIN_DISABLE>;
71 };
72 gpio_gmi {
73 nvidia,pins = "ata", "atc", "atd", "ate",
74 "dap1", "dap2", "dap4", "gpu", "irrx",
75 "irtx", "spia", "spib", "spic";
76 nvidia,function = "gmi";
77 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 56 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
78 nvidia,tristate = <TEGRA_PIN_DISABLE>; 57 nvidia,tristate = <TEGRA_PIN_DISABLE>;
79 }; 58 };
80 gpio_pta { 59
60 /*
61 * Buffer Enables for nPWE and RDnWR (On-module,
62 * see GPIO hogging further down below)
63 */
64 gpio-pta {
81 nvidia,pins = "pta"; 65 nvidia,pins = "pta";
82 nvidia,function = "rsvd4"; 66 nvidia,function = "rsvd4";
83 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 67 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
84 nvidia,tristate = <TEGRA_PIN_DISABLE>; 68 nvidia,tristate = <TEGRA_PIN_DISABLE>;
85 }; 69 };
86 gpio_uac { 70
87 nvidia,pins = "uac"; 71 /*
88 nvidia,function = "rsvd2"; 72 * CLK_32K_OUT, CORE_PWR_REQ, CPU_PWR_REQ, PWR_INT_N,
89 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 73 * SYS_CLK_REQ (All on-module)
74 */
75 pmc {
76 nvidia,pins = "pmc";
77 nvidia,function = "pwr_on";
90 nvidia,tristate = <TEGRA_PIN_DISABLE>; 78 nvidia,tristate = <TEGRA_PIN_DISABLE>;
91 }; 79 };
92 hdint { 80
93 nvidia,pins = "hdint"; 81 /*
82 * Colibri Address/Data Bus (GMI)
83 * Note: spid and spie optionally used for SPI1
84 */
85 gmi {
86 nvidia,pins = "atc", "atd", "ate", "dap1",
87 "dap2", "dap4", "gmd", "gpu",
88 "irrx", "irtx", "spia", "spib",
89 "spic", "spid", "spie", "uca",
90 "ucb";
91 nvidia,function = "gmi";
92 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
93 nvidia,tristate = <TEGRA_PIN_ENABLE>;
94 };
95 /* Further pins may be used as GPIOs */
96 gmi-gpio1 {
97 nvidia,pins = "lpw0", "lsc1", "lsck", "lsda";
94 nvidia,function = "hdmi"; 98 nvidia,function = "hdmi";
95 nvidia,tristate = <TEGRA_PIN_ENABLE>; 99 nvidia,tristate = <TEGRA_PIN_ENABLE>;
96 }; 100 };
97 i2c1 { 101 gmi-gpio2 {
98 nvidia,pins = "rm"; 102 nvidia,pins = "lcsn", "ldc", "lm0", "lsdi";
99 nvidia,function = "i2c1"; 103 nvidia,function = "rsvd4";
100 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
101 nvidia,tristate = <TEGRA_PIN_ENABLE>; 104 nvidia,tristate = <TEGRA_PIN_ENABLE>;
102 }; 105 };
103 i2c3 { 106
104 nvidia,pins = "dtf"; 107 /* Colibri BL_ON */
105 nvidia,function = "i2c3"; 108 bl-on {
109 nvidia,pins = "dta";
110 nvidia,function = "rsvd1";
106 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 111 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
107 nvidia,tristate = <TEGRA_PIN_ENABLE>; 112 nvidia,tristate = <TEGRA_PIN_ENABLE>;
108 }; 113 };
109 i2cddc { 114
115 /* Colibri Backlight PWM<A>, PWM<B> */
116 pwm-a-b {
117 nvidia,pins = "sdc";
118 nvidia,function = "pwm";
119 nvidia,tristate = <TEGRA_PIN_ENABLE>;
120 };
121
122 /* Colibri DDC */
123 ddc {
110 nvidia,pins = "ddc"; 124 nvidia,pins = "ddc";
111 nvidia,function = "i2c2"; 125 nvidia,function = "i2c2";
112 nvidia,pull = <TEGRA_PIN_PULL_UP>; 126 nvidia,pull = <TEGRA_PIN_PULL_UP>;
113 nvidia,tristate = <TEGRA_PIN_ENABLE>; 127 nvidia,tristate = <TEGRA_PIN_ENABLE>;
114 }; 128 };
115 i2cp { 129
116 nvidia,pins = "i2cp"; 130 /*
117 nvidia,function = "i2cp"; 131 * Colibri EXT_IO*
132 * Note: dtf optionally used for I2C3
133 */
134 ext-io {
135 nvidia,pins = "dtf", "spdi";
136 nvidia,function = "rsvd2";
118 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 137 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
119 nvidia,tristate = <TEGRA_PIN_DISABLE>; 138 nvidia,tristate = <TEGRA_PIN_ENABLE>;
120 }; 139 };
121 irda { 140
122 nvidia,pins = "uad"; 141 /*
123 nvidia,function = "irda"; 142 * Colibri Ethernet (On-module)
143 * ULPI EHCI instance 1 USB2_DP/N -> AX88772B
144 */
145 ulpi {
146 nvidia,pins = "uaa", "uab", "uda";
147 nvidia,function = "ulpi";
124 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 148 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
125 nvidia,tristate = <TEGRA_PIN_ENABLE>; 149 nvidia,tristate = <TEGRA_PIN_DISABLE>;
126 }; 150 };
127 nand { 151 ulpi-refclk {
128 nvidia,pins = "kbca", "kbcc", "kbcd", 152 nvidia,pins = "cdev2";
129 "kbce", "kbcf"; 153 nvidia,function = "pllp_out4";
130 nvidia,function = "nand";
131 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 154 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
132 nvidia,tristate = <TEGRA_PIN_DISABLE>; 155 nvidia,tristate = <TEGRA_PIN_DISABLE>;
133 }; 156 };
134 owc { 157
135 nvidia,pins = "owc"; 158 /* Colibri HOTPLUG_DETECT (HDMI) */
136 nvidia,function = "owr"; 159 hotplug-detect {
160 nvidia,pins = "hdint";
161 nvidia,function = "hdmi";
162 nvidia,tristate = <TEGRA_PIN_ENABLE>;
163 };
164
165 /* Colibri I2C */
166 i2c {
167 nvidia,pins = "rm";
168 nvidia,function = "i2c1";
137 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 169 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
138 nvidia,tristate = <TEGRA_PIN_ENABLE>; 170 nvidia,tristate = <TEGRA_PIN_ENABLE>;
139 }; 171 };
140 pmc { 172
141 nvidia,pins = "pmc"; 173 /*
142 nvidia,function = "pwr_on"; 174 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
143 nvidia,tristate = <TEGRA_PIN_DISABLE>; 175 * today's display need DE, disable LCD_M1
176 */
177 lm1 {
178 nvidia,pins = "lm1";
179 nvidia,function = "rsvd3";
180 nvidia,tristate = <TEGRA_PIN_ENABLE>;
144 }; 181 };
145 pwm { 182
146 nvidia,pins = "sdb", "sdc", "sdd"; 183 /* Colibri LCD (L_* resp. LDD<*>) */
147 nvidia,function = "pwm"; 184 lcd {
185 nvidia,pins = "ld0", "ld1", "ld2", "ld3",
186 "ld4", "ld5", "ld6", "ld7",
187 "ld8", "ld9", "ld10", "ld11",
188 "ld12", "ld13", "ld14", "ld15",
189 "ld16", "ld17", "lhs", "lsc0",
190 "lspi", "lvs";
191 nvidia,function = "displaya";
148 nvidia,tristate = <TEGRA_PIN_ENABLE>; 192 nvidia,tristate = <TEGRA_PIN_ENABLE>;
149 }; 193 };
150 sdio4 { 194 /* Colibri LCD (Optional 24 BPP Support) */
151 nvidia,pins = "atb", "gma", "gme"; 195 lcd-24 {
196 nvidia,pins = "ldi", "lhp0", "lhp1", "lhp2",
197 "lpp", "lvp1";
198 nvidia,function = "displaya";
199 nvidia,tristate = <TEGRA_PIN_ENABLE>;
200 };
201
202 /* Colibri MMC */
203 mmc {
204 nvidia,pins = "atb", "gma";
152 nvidia,function = "sdio4"; 205 nvidia,function = "sdio4";
153 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 206 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
154 nvidia,tristate = <TEGRA_PIN_ENABLE>; 207 nvidia,tristate = <TEGRA_PIN_ENABLE>;
155 }; 208 };
156 spi1 { 209
157 nvidia,pins = "spid", "spie", "spif"; 210 /* Colibri MMCCD */
158 nvidia,function = "spi1"; 211 mmccd {
212 nvidia,pins = "gmb";
213 nvidia,function = "gmi_int";
159 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 214 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
160 nvidia,tristate = <TEGRA_PIN_ENABLE>; 215 nvidia,tristate = <TEGRA_PIN_ENABLE>;
161 }; 216 };
162 spi4 { 217
218 /* Colibri MMC (Optional 8-bit) */
219 mmc-8bit {
220 nvidia,pins = "gme";
221 nvidia,function = "sdio4";
222 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
223 nvidia,tristate = <TEGRA_PIN_ENABLE>;
224 };
225
226 /*
227 * Colibri Parallel Camera (Optional)
228 * pins multiplexed with others and therefore disabled
229 * Note: dta used for BL_ON by default
230 */
231 cif-mclk {
232 nvidia,pins = "csus";
233 nvidia,function = "vi_sensor_clk";
234 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
235 nvidia,tristate = <TEGRA_PIN_ENABLE>;
236 };
237 cif {
238 nvidia,pins = "dtb", "dtc", "dtd";
239 nvidia,function = "vi";
240 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
241 nvidia,tristate = <TEGRA_PIN_ENABLE>;
242 };
243
244 /* Colibri PWM<C>, PWM<D> */
245 pwm-c-d {
246 nvidia,pins = "sdb", "sdd";
247 nvidia,function = "pwm";
248 nvidia,tristate = <TEGRA_PIN_ENABLE>;
249 };
250
251 /* Colibri SSP */
252 ssp {
163 nvidia,pins = "slxa", "slxc", "slxd", "slxk"; 253 nvidia,pins = "slxa", "slxc", "slxd", "slxk";
164 nvidia,function = "spi4"; 254 nvidia,function = "spi4";
165 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 255 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
166 nvidia,tristate = <TEGRA_PIN_ENABLE>; 256 nvidia,tristate = <TEGRA_PIN_ENABLE>;
167 }; 257 };
168 uarta { 258
259 /* Colibri UART-A */
260 uart-a {
169 nvidia,pins = "sdio1"; 261 nvidia,pins = "sdio1";
170 nvidia,function = "uarta"; 262 nvidia,function = "uarta";
171 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 263 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
172 nvidia,tristate = <TEGRA_PIN_ENABLE>; 264 nvidia,tristate = <TEGRA_PIN_ENABLE>;
173 }; 265 };
174 uartd { 266 uart-a-dsr {
267 nvidia,pins = "lpw1";
268 nvidia,function = "rsvd3";
269 nvidia,tristate = <TEGRA_PIN_ENABLE>;
270 };
271 uart-a-dcd {
272 nvidia,pins = "lpw2";
273 nvidia,function = "hdmi";
274 nvidia,tristate = <TEGRA_PIN_ENABLE>;
275 };
276
277 /* Colibri UART-B */
278 uart-b {
175 nvidia,pins = "gmc"; 279 nvidia,pins = "gmc";
176 nvidia,function = "uartd"; 280 nvidia,function = "uartd";
177 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 281 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
178 nvidia,tristate = <TEGRA_PIN_ENABLE>; 282 nvidia,tristate = <TEGRA_PIN_ENABLE>;
179 }; 283 };
180 ulpi { 284
181 nvidia,pins = "uaa", "uab", "uda"; 285 /* Colibri UART-C */
182 nvidia,function = "ulpi"; 286 uart-c {
287 nvidia,pins = "uad";
288 nvidia,function = "irda";
289 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
290 nvidia,tristate = <TEGRA_PIN_ENABLE>;
291 };
292
293 /* Colibri USB_CDET */
294 usb-cdet {
295 nvidia,pins = "spdo";
296 nvidia,function = "rsvd2";
297 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
298 nvidia,tristate = <TEGRA_PIN_ENABLE>;
299 };
300
301 /* Colibri USBH_OC */
302 usbh-oc {
303 nvidia,pins = "spih";
304 nvidia,function = "spi2_alt";
305 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
306 nvidia,tristate = <TEGRA_PIN_ENABLE>;
307 };
308
309 /* Colibri USBH_PEN */
310 usbh-pen {
311 nvidia,pins = "spig";
312 nvidia,function = "spi2_alt";
313 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
314 nvidia,tristate = <TEGRA_PIN_ENABLE>;
315 };
316
317 /* Colibri VGA not supported */
318 vga {
319 nvidia,pins = "crtp";
320 nvidia,function = "crt";
321 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
322 nvidia,tristate = <TEGRA_PIN_ENABLE>;
323 };
324
325 /* I2C3 (Optional) */
326 i2c3 {
327 nvidia,pins = "dtf";
328 nvidia,function = "i2c3";
329 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
330 nvidia,tristate = <TEGRA_PIN_ENABLE>;
331 };
332
333 /* JTAG_RTCK */
334 jtag-rtck {
335 nvidia,pins = "gpu7";
336 nvidia,function = "rtck";
337 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
338 nvidia,tristate = <TEGRA_PIN_ENABLE>;
339 };
340
341 /*
342 * LAN_RESET, LAN_EXT_WAKEUP and LAN_PME
343 * (All On-module)
344 */
345 gpio-gpv {
346 nvidia,pins = "gpv";
347 nvidia,function = "rsvd2";
183 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 348 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
184 nvidia,tristate = <TEGRA_PIN_DISABLE>; 349 nvidia,tristate = <TEGRA_PIN_DISABLE>;
185 }; 350 };
186 ulpi_refclk { 351
187 nvidia,pins = "cdev2"; 352 /*
188 nvidia,function = "pllp_out4"; 353 * LAN_V_BUS, VDD_FAULT, BATT_FAULT, WM9712 PENDOWN
354 * (All On-module); Colibri CAN_INT
355 */
356 gpio-dte {
357 nvidia,pins = "dte";
358 nvidia,function = "rsvd1";
189 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 359 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
190 nvidia,tristate = <TEGRA_PIN_DISABLE>; 360 nvidia,tristate = <TEGRA_PIN_DISABLE>;
191 }; 361 };
192 usb_gpio { 362
193 nvidia,pins = "spig", "spih"; 363 /* NAND (On-module) */
194 nvidia,function = "spi2_alt"; 364 nand {
365 nvidia,pins = "kbca", "kbcb", "kbcc", "kbcd",
366 "kbce", "kbcf";
367 nvidia,function = "nand";
195 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 368 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
196 nvidia,tristate = <TEGRA_PIN_DISABLE>; 369 nvidia,tristate = <TEGRA_PIN_DISABLE>;
197 }; 370 };
198 vi { 371
199 nvidia,pins = "dta", "dtb", "dtc", "dtd"; 372 /* Onewire (Optional) */
200 nvidia,function = "vi"; 373 owr {
374 nvidia,pins = "owc";
375 nvidia,function = "owr";
201 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 376 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
202 nvidia,tristate = <TEGRA_PIN_ENABLE>; 377 nvidia,tristate = <TEGRA_PIN_ENABLE>;
203 }; 378 };
204 vi_sc { 379
205 nvidia,pins = "csus"; 380 /* Power I2C (On-module) */
206 nvidia,function = "vi_sensor_clk"; 381 i2cp {
382 nvidia,pins = "i2cp";
383 nvidia,function = "i2cp";
384 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
385 nvidia,tristate = <TEGRA_PIN_DISABLE>;
386 };
387
388 /* RESET_OUT */
389 reset-out {
390 nvidia,pins = "ata";
391 nvidia,function = "gmi";
392 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
393 nvidia,tristate = <TEGRA_PIN_DISABLE>;
394 };
395
396 /*
397 * SPI1 (Optional)
398 * Note: spid and spie used for Colibri Address/Data
399 * Bus (GMI)
400 */
401 spi1 {
402 nvidia,pins = "spid", "spie", "spif";
403 nvidia,function = "spi1";
207 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 404 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
208 nvidia,tristate = <TEGRA_PIN_ENABLE>; 405 nvidia,tristate = <TEGRA_PIN_ENABLE>;
209 }; 406 };
407
408 /*
409 * THERMD_ALERT# (On-module), unlatched I2C address pin
410 * of LM95245 temperature sensor therefore requires
411 * disabling for now
412 */
413 lvp0 {
414 nvidia,pins = "lvp0";
415 nvidia,function = "rsvd3";
416 nvidia,tristate = <TEGRA_PIN_ENABLE>;
417 };
210 }; 418 };
211 }; 419 };
212 420
213 ac97: ac97@70002000 { 421 tegra_ac97: ac97@70002000 {
214 status = "okay"; 422 status = "okay";
215 nvidia,codec-reset-gpio = <&gpio TEGRA_GPIO(V, 0) 423 nvidia,codec-reset-gpio =
216 GPIO_ACTIVE_HIGH>; 424 <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
217 nvidia,codec-sync-gpio = <&gpio TEGRA_GPIO(P, 0) 425 nvidia,codec-sync-gpio =
218 GPIO_ACTIVE_HIGH>; 426 <&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
427 };
428
429 serial@70006040 {
430 compatible = "nvidia,tegra20-hsuart";
431 };
432
433 serial@70006300 {
434 compatible = "nvidia,tegra20-hsuart";
219 }; 435 };
220 436
221 nand-controller@70008000 { 437 nand-controller@70008000 {
@@ -243,7 +459,7 @@
243 }; 459 };
244 460
245 /* DDC_SCL/SDA on X3 pin 15/16 (e.g. display EDID) */ 461 /* DDC_SCL/SDA on X3 pin 15/16 (e.g. display EDID) */
246 i2c_ddc: i2c@7000c400 { 462 hdmi_ddc: i2c@7000c400 {
247 clock-frequency = <10000>; 463 clock-frequency = <10000>;
248 }; 464 };
249 465
@@ -256,59 +472,45 @@
256 status = "okay"; 472 status = "okay";
257 clock-frequency = <100000>; 473 clock-frequency = <100000>;
258 474
259 pmic: tps6586x@34 { 475 pmic@34 {
260 compatible = "ti,tps6586x"; 476 compatible = "ti,tps6586x";
261 reg = <0x34>; 477 reg = <0x34>;
262 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 478 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
263
264 ti,system-power-controller; 479 ti,system-power-controller;
265
266 #gpio-cells = <2>; 480 #gpio-cells = <2>;
267 gpio-controller; 481 gpio-controller;
268 482 sys-supply = <&reg_module_3v3>;
269 sys-supply = <&vdd_3v3_reg>; 483 vin-sm0-supply = <&reg_3v3_vsys>;
270 vin-sm0-supply = <&sys_reg>; 484 vin-sm1-supply = <&reg_3v3_vsys>;
271 vin-sm1-supply = <&sys_reg>; 485 vin-sm2-supply = <&reg_3v3_vsys>;
272 vin-sm2-supply = <&sys_reg>; 486 vinldo01-supply = <&reg_1v8_vdd_ddr2>;
273 vinldo01-supply = <&sm2_reg>; 487 vinldo23-supply = <&reg_module_3v3>;
274 vinldo23-supply = <&vdd_3v3_reg>; 488 vinldo4-supply = <&reg_module_3v3>;
275 vinldo4-supply = <&vdd_3v3_reg>; 489 vinldo678-supply = <&reg_module_3v3>;
276 vinldo678-supply = <&vdd_3v3_reg>; 490 vinldo9-supply = <&reg_module_3v3>;
277 vinldo9-supply = <&vdd_3v3_reg>;
278 491
279 regulators { 492 regulators {
280 #address-cells = <1>; 493 reg_3v3_vsys: sys {
281 #size-cells = <0>; 494 regulator-name = "VSYS_3.3V";
282
283 sys_reg: regulator@0 {
284 reg = <0>;
285 regulator-compatible = "sys";
286 regulator-name = "vdd_sys";
287 regulator-always-on; 495 regulator-always-on;
288 }; 496 };
289 497
290 regulator@1 { 498 sm0 {
291 reg = <1>; 499 regulator-name = "VDD_CORE_1.2V";
292 regulator-compatible = "sm0";
293 regulator-name = "vdd_sm0,vdd_core";
294 regulator-min-microvolt = <1200000>; 500 regulator-min-microvolt = <1200000>;
295 regulator-max-microvolt = <1200000>; 501 regulator-max-microvolt = <1200000>;
296 regulator-always-on; 502 regulator-always-on;
297 }; 503 };
298 504
299 regulator@2 { 505 sm1 {
300 reg = <2>; 506 regulator-name = "VDD_CPU_1.0V";
301 regulator-compatible = "sm1";
302 regulator-name = "vdd_sm1,vdd_cpu";
303 regulator-min-microvolt = <1000000>; 507 regulator-min-microvolt = <1000000>;
304 regulator-max-microvolt = <1000000>; 508 regulator-max-microvolt = <1000000>;
305 regulator-always-on; 509 regulator-always-on;
306 }; 510 };
307 511
308 sm2_reg: regulator@3 { 512 reg_1v8_vdd_ddr2: sm2 {
309 reg = <3>; 513 regulator-name = "VDD_DDR2_1.8V";
310 regulator-compatible = "sm2";
311 regulator-name = "vdd_sm2,vin_ldo*";
312 regulator-min-microvolt = <1800000>; 514 regulator-min-microvolt = <1800000>;
313 regulator-max-microvolt = <1800000>; 515 regulator-max-microvolt = <1800000>;
314 regulator-always-on; 516 regulator-always-on;
@@ -316,80 +518,68 @@
316 518
317 /* LDO0 is not connected to anything */ 519 /* LDO0 is not connected to anything */
318 520
319 regulator@5 { 521 /*
320 reg = <5>; 522 * +3.3V_ENABLE_N switching via FET:
321 regulator-compatible = "ldo1"; 523 * AVDD_AUDIO_S and +3.3V
322 regulator-name = "vdd_ldo1,avdd_pll*"; 524 * see also +3.3V fixed supply
525 */
526 ldo1 {
527 regulator-name = "AVDD_PLL_1.1V";
323 regulator-min-microvolt = <1100000>; 528 regulator-min-microvolt = <1100000>;
324 regulator-max-microvolt = <1100000>; 529 regulator-max-microvolt = <1100000>;
325 regulator-always-on; 530 regulator-always-on;
326 }; 531 };
327 532
328 regulator@6 { 533 ldo2 {
329 reg = <6>; 534 regulator-name = "VDD_RTC_1.2V";
330 regulator-compatible = "ldo2";
331 regulator-name = "vdd_ldo2,vdd_rtc";
332 regulator-min-microvolt = <1200000>; 535 regulator-min-microvolt = <1200000>;
333 regulator-max-microvolt = <1200000>; 536 regulator-max-microvolt = <1200000>;
334 }; 537 };
335 538
336 /* LDO3 is not connected to anything */ 539 /* LDO3 is not connected to anything */
337 540
338 regulator@8 { 541 ldo4 {
339 reg = <8>; 542 regulator-name = "VDDIO_SYS_1.8V";
340 regulator-compatible = "ldo4";
341 regulator-name = "vdd_ldo4,avdd_osc,vddio_sys";
342 regulator-min-microvolt = <1800000>; 543 regulator-min-microvolt = <1800000>;
343 regulator-max-microvolt = <1800000>; 544 regulator-max-microvolt = <1800000>;
344 regulator-always-on; 545 regulator-always-on;
345 }; 546 };
346 547
347 ldo5_reg: regulator@9 { 548 /* Switched via FET from regular +3.3V */
348 reg = <9>; 549 ldo5 {
349 regulator-compatible = "ldo5"; 550 regulator-name = "+3.3V_USB";
350 regulator-name = "vdd_ldo5,vdd_fuse";
351 regulator-min-microvolt = <3300000>; 551 regulator-min-microvolt = <3300000>;
352 regulator-max-microvolt = <3300000>; 552 regulator-max-microvolt = <3300000>;
353 regulator-always-on; 553 regulator-always-on;
354 }; 554 };
355 555
356 regulator@10 { 556 ldo6 {
357 reg = <10>; 557 regulator-name = "AVDD_VDAC_2.85V";
358 regulator-compatible = "ldo6";
359 regulator-name = "vdd_ldo6,avdd_vdac,vddio_vi,vddio_cam";
360 regulator-min-microvolt = <2850000>; 558 regulator-min-microvolt = <2850000>;
361 regulator-max-microvolt = <2850000>; 559 regulator-max-microvolt = <2850000>;
362 }; 560 };
363 561
364 hdmi_vdd_reg: regulator@11 { 562 reg_3v3_avdd_hdmi: ldo7 {
365 reg = <11>; 563 regulator-name = "AVDD_HDMI_3.3V";
366 regulator-compatible = "ldo7";
367 regulator-name = "vdd_ldo7,avdd_hdmi";
368 regulator-min-microvolt = <3300000>; 564 regulator-min-microvolt = <3300000>;
369 regulator-max-microvolt = <3300000>; 565 regulator-max-microvolt = <3300000>;
370 }; 566 };
371 567
372 hdmi_pll_reg: regulator@12 { 568 reg_1v8_avdd_hdmi_pll: ldo8 {
373 reg = <12>; 569 regulator-name = "AVDD_HDMI_PLL_1.8V";
374 regulator-compatible = "ldo8";
375 regulator-name = "vdd_ldo8,avdd_hdmi_pll";
376 regulator-min-microvolt = <1800000>; 570 regulator-min-microvolt = <1800000>;
377 regulator-max-microvolt = <1800000>; 571 regulator-max-microvolt = <1800000>;
378 }; 572 };
379 573
380 regulator@13 { 574 ldo9 {
381 reg = <13>; 575 regulator-name = "VDDIO_RX_DDR_2.85V";
382 regulator-compatible = "ldo9";
383 regulator-name = "vdd_ldo9,avdd_2v85,vdd_ddr_rx";
384 regulator-min-microvolt = <2850000>; 576 regulator-min-microvolt = <2850000>;
385 regulator-max-microvolt = <2850000>; 577 regulator-max-microvolt = <2850000>;
386 regulator-always-on; 578 regulator-always-on;
387 }; 579 };
388 580
389 regulator@14 { 581 ldo_rtc {
390 reg = <14>; 582 regulator-name = "VCC_BATT";
391 regulator-compatible = "ldo_rtc";
392 regulator-name = "vdd_rtc_out,vdd_cell";
393 regulator-min-microvolt = <3300000>; 583 regulator-min-microvolt = <3300000>;
394 regulator-max-microvolt = <3300000>; 584 regulator-max-microvolt = <3300000>;
395 regulator-always-on; 585 regulator-always-on;
@@ -397,7 +587,8 @@
397 }; 587 };
398 }; 588 };
399 589
400 temperature-sensor@4c { 590 /* LM95245 temperature sensor */
591 temp-sensor@4c {
401 compatible = "national,lm95245"; 592 compatible = "national,lm95245";
402 reg = <0x4c>; 593 reg = <0x4c>;
403 }; 594 };
@@ -410,6 +601,14 @@
410 nvidia,core-pwr-good-time = <3845 3845>; 601 nvidia,core-pwr-good-time = <3845 3845>;
411 nvidia,core-pwr-off-time = <3875>; 602 nvidia,core-pwr-off-time = <3875>;
412 nvidia,sys-clock-req-active-high; 603 nvidia,sys-clock-req-active-high;
604
605 /* Set SLEEP MODE bit in SUPPLYENE register of TPS658643 PMIC */
606 i2c-thermtrip {
607 nvidia,i2c-controller-id = <3>;
608 nvidia,bus-addr = <0x34>;
609 nvidia,reg-addr = <0x14>;
610 nvidia,reg-data = <0x8>;
611 };
413 }; 612 };
414 613
415 memory-controller@7000f400 { 614 memory-controller@7000f400 {
@@ -483,79 +682,87 @@
483 }; 682 };
484 }; 683 };
485 684
685 /* EHCI instance 1: ULPI PHY -> AX88772B (On-module) */
486 usb@c5004000 { 686 usb@c5004000 {
487 status = "okay"; 687 status = "okay";
488 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1) 688 #address-cells = <1>;
489 GPIO_ACTIVE_LOW>; 689 #size-cells = <0>;
690
691 asix@1 {
692 reg = <1>;
693 local-mac-address = [00 00 00 00 00 00];
694 };
490 }; 695 };
491 696
492 usb-phy@c5004000 { 697 usb-phy@c5004000 {
493 status = "okay"; 698 status = "okay";
494 nvidia,phy-reset-gpio = <&gpio TEGRA_GPIO(V, 1) 699 nvidia,phy-reset-gpio =
495 GPIO_ACTIVE_LOW>; 700 <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
701 vbus-supply = <&reg_lan_v_bus>;
496 }; 702 };
497 703
498 sdhci@c8000600 { 704 clk32k_in: xtal3 {
499 cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; 705 compatible = "fixed-clock";
706 #clock-cells = <0>;
707 clock-frequency = <32768>;
500 }; 708 };
501 709
502 clocks { 710 reg_lan_v_bus: regulator-lan-v-bus {
503 compatible = "simple-bus"; 711 compatible = "regulator-fixed";
504 #address-cells = <1>; 712 regulator-name = "LAN_V_BUS";
505 #size-cells = <0>; 713 regulator-min-microvolt = <5000000>;
506 714 regulator-max-microvolt = <5000000>;
507 clk32k_in: clock@0 { 715 enable-active-high;
508 compatible = "fixed-clock"; 716 gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
509 reg = <0>;
510 #clock-cells = <0>;
511 clock-frequency = <32768>;
512 };
513 }; 717 };
514 718
515 regulators { 719 reg_module_3v3: regulator-module-3v3 {
516 compatible = "simple-bus"; 720 compatible = "regulator-fixed";
517 #address-cells = <1>; 721 regulator-name = "+V3.3";
518 #size-cells = <0>; 722 regulator-min-microvolt = <3300000>;
519 723 regulator-max-microvolt = <3300000>;
520 vdd_3v3_reg: regulator@100 { 724 regulator-always-on;
521 compatible = "regulator-fixed";
522 reg = <100>;
523 regulator-name = "vdd_3v3";
524 regulator-min-microvolt = <3300000>;
525 regulator-max-microvolt = <3300000>;
526 regulator-always-on;
527 };
528
529 regulator@101 {
530 compatible = "regulator-fixed";
531 reg = <101>;
532 regulator-name = "internal_usb";
533 regulator-min-microvolt = <5000000>;
534 regulator-max-microvolt = <5000000>;
535 enable-active-high;
536 regulator-boot-on;
537 regulator-always-on;
538 gpio = <&gpio TEGRA_GPIO(BB, 1) GPIO_ACTIVE_HIGH>;
539 };
540 }; 725 };
541 726
542 sound { 727 sound {
543 compatible = "nvidia,tegra-audio-wm9712-colibri_t20", 728 compatible = "nvidia,tegra-audio-wm9712-colibri_t20",
544 "nvidia,tegra-audio-wm9712"; 729 "nvidia,tegra-audio-wm9712";
545 nvidia,model = "Colibri T20 AC97 Audio"; 730 nvidia,model = "Toradex Colibri T20";
546
547 nvidia,audio-routing = 731 nvidia,audio-routing =
548 "Headphone", "HPOUTL", 732 "Headphone", "HPOUTL",
549 "Headphone", "HPOUTR", 733 "Headphone", "HPOUTR",
550 "LineIn", "LINEINL", 734 "LineIn", "LINEINL",
551 "LineIn", "LINEINR", 735 "LineIn", "LINEINR",
552 "Mic", "MIC1"; 736 "Mic", "MIC1";
553 737 nvidia,ac97-controller = <&tegra_ac97>;
554 nvidia,ac97-controller = <&ac97>;
555
556 clocks = <&tegra_car TEGRA20_CLK_PLL_A>, 738 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
557 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>, 739 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
558 <&tegra_car TEGRA20_CLK_CDEV1>; 740 <&tegra_car TEGRA20_CLK_CDEV1>;
559 clock-names = "pll_a", "pll_a_out0", "mclk"; 741 clock-names = "pll_a", "pll_a_out0", "mclk";
560 }; 742 };
561}; 743};
744
745&gpio {
746 lan-reset-n {
747 gpio-hog;
748 gpios = <TEGRA_GPIO(V, 4) GPIO_ACTIVE_HIGH>;
749 output-high;
750 line-name = "LAN_RESET#";
751 };
752
753 /* Tri-stating GMI_WR_N on SODIMM pin 99 nPWE */
754 npwe {
755 gpio-hog;
756 gpios = <TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
757 output-high;
758 line-name = "Tri-state nPWE";
759 };
760
761 /* Not tri-stating GMI_WR_N on SODIMM pin 93 RDnWR */
762 rdnwr {
763 gpio-hog;
764 gpios = <TEGRA_GPIO(T, 6) GPIO_ACTIVE_HIGH>;
765 output-low;
766 line-name = "Not tri-state RDnWR";
767 };
768};
diff --git a/arch/arm/boot/dts/tegra20-paz00.dts b/arch/arm/boot/dts/tegra20-paz00.dts
index ef245291924f..8861e0976e37 100644
--- a/arch/arm/boot/dts/tegra20-paz00.dts
+++ b/arch/arm/boot/dts/tegra20-paz00.dts
@@ -303,7 +303,7 @@
303 request-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; 303 request-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
304 slave-addr = <138>; 304 slave-addr = <138>;
305 clocks = <&tegra_car TEGRA20_CLK_I2C3>, 305 clocks = <&tegra_car TEGRA20_CLK_I2C3>,
306 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>; 306 <&tegra_car TEGRA20_CLK_PLL_P_OUT3>;
307 clock-names = "div-clk", "fast-clk"; 307 clock-names = "div-clk", "fast-clk";
308 resets = <&tegra_car 67>; 308 resets = <&tegra_car 67>;
309 reset-names = "i2c"; 309 reset-names = "i2c";
@@ -524,10 +524,10 @@
524 gpio-keys { 524 gpio-keys {
525 compatible = "gpio-keys"; 525 compatible = "gpio-keys";
526 526
527 power { 527 wakeup {
528 label = "Power"; 528 label = "Wakeup";
529 gpios = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_LOW>; 529 gpios = <&gpio TEGRA_GPIO(J, 7) GPIO_ACTIVE_LOW>;
530 linux,code = <KEY_POWER>; 530 linux,code = <KEY_WAKEUP>;
531 wakeup-source; 531 wakeup-source;
532 }; 532 };
533 }; 533 };
@@ -599,8 +599,8 @@
599 GPIO_ACTIVE_HIGH>; 599 GPIO_ACTIVE_HIGH>;
600 600
601 clocks = <&tegra_car TEGRA20_CLK_PLL_A>, 601 clocks = <&tegra_car TEGRA20_CLK_PLL_A>,
602 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>, 602 <&tegra_car TEGRA20_CLK_PLL_A_OUT0>,
603 <&tegra_car TEGRA20_CLK_CDEV1>; 603 <&tegra_car TEGRA20_CLK_CDEV1>;
604 clock-names = "pll_a", "pll_a_out0", "mclk"; 604 clock-names = "pll_a", "pll_a_out0", "mclk";
605 }; 605 };
606}; 606};
diff --git a/arch/arm/boot/dts/tegra20.dtsi b/arch/arm/boot/dts/tegra20.dtsi
index 15b73bd377f0..20869757d32f 100644
--- a/arch/arm/boot/dts/tegra20.dtsi
+++ b/arch/arm/boot/dts/tegra20.dtsi
@@ -419,19 +419,6 @@
419 status = "disabled"; 419 status = "disabled";
420 }; 420 };
421 421
422 gmi@70009000 {
423 compatible = "nvidia,tegra20-gmi";
424 reg = <0x70009000 0x1000>;
425 #address-cells = <2>;
426 #size-cells = <1>;
427 ranges = <0 0 0xd0000000 0xfffffff>;
428 clocks = <&tegra_car TEGRA20_CLK_NOR>;
429 clock-names = "gmi";
430 resets = <&tegra_car 42>;
431 reset-names = "gmi";
432 status = "disabled";
433 };
434
435 nand-controller@70008000 { 422 nand-controller@70008000 {
436 compatible = "nvidia,tegra20-nand"; 423 compatible = "nvidia,tegra20-nand";
437 reg = <0x70008000 0x100>; 424 reg = <0x70008000 0x100>;
@@ -447,6 +434,19 @@
447 status = "disabled"; 434 status = "disabled";
448 }; 435 };
449 436
437 gmi@70009000 {
438 compatible = "nvidia,tegra20-gmi";
439 reg = <0x70009000 0x1000>;
440 #address-cells = <2>;
441 #size-cells = <1>;
442 ranges = <0 0 0xd0000000 0xfffffff>;
443 clocks = <&tegra_car TEGRA20_CLK_NOR>;
444 clock-names = "gmi";
445 resets = <&tegra_car 42>;
446 reset-names = "gmi";
447 status = "disabled";
448 };
449
450 pwm: pwm@7000a000 { 450 pwm: pwm@7000a000 {
451 compatible = "nvidia,tegra20-pwm"; 451 compatible = "nvidia,tegra20-pwm";
452 reg = <0x7000a000 0x100>; 452 reg = <0x7000a000 0x100>;
@@ -865,5 +865,7 @@
865 compatible = "arm,cortex-a9-pmu"; 865 compatible = "arm,cortex-a9-pmu";
866 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, 866 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
867 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; 867 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
868 interrupt-affinity = <&{/cpus/cpu@0}>,
869 <&{/cpus/cpu@1}>;
868 }; 870 };
869}; 871};
diff --git a/arch/arm/boot/dts/tegra30-apalis-eval.dts b/arch/arm/boot/dts/tegra30-apalis-eval.dts
index 0dc85a20bd45..749fc6d1ff70 100644
--- a/arch/arm/boot/dts/tegra30-apalis-eval.dts
+++ b/arch/arm/boot/dts/tegra30-apalis-eval.dts
@@ -6,11 +6,12 @@
6 6
7/ { 7/ {
8 model = "Toradex Apalis T30 on Apalis Evaluation Board"; 8 model = "Toradex Apalis T30 on Apalis Evaluation Board";
9 compatible = "toradex,apalis_t30-eval", "toradex,apalis_t30", "nvidia,tegra30"; 9 compatible = "toradex,apalis_t30-eval", "toradex,apalis_t30",
10 "nvidia,tegra30";
10 11
11 aliases { 12 aliases {
12 rtc0 = "/i2c@7000c000/rtc@68"; 13 rtc0 = "/i2c@7000c000/rtc@68";
13 rtc1 = "/i2c@7000d000/tps65911@2d"; 14 rtc1 = "/i2c@7000d000/pmic@2d";
14 rtc2 = "/rtc@7000e000"; 15 rtc2 = "/rtc@7000e000";
15 serial0 = &uarta; 16 serial0 = &uarta;
16 serial1 = &uartb; 17 serial1 = &uartb;
@@ -23,8 +24,6 @@
23 }; 24 };
24 25
25 pcie@3000 { 26 pcie@3000 {
26 status = "okay";
27
28 pci@1,0 { 27 pci@1,0 {
29 status = "okay"; 28 status = "okay";
30 }; 29 };
@@ -32,10 +31,6 @@
32 pci@2,0 { 31 pci@2,0 {
33 status = "okay"; 32 status = "okay";
34 }; 33 };
35
36 pci@3,0 {
37 status = "okay";
38 };
39 }; 34 };
40 35
41 host1x@50000000 { 36 host1x@50000000 {
@@ -45,27 +40,30 @@
45 nvidia,panel = <&panel>; 40 nvidia,panel = <&panel>;
46 }; 41 };
47 }; 42 };
43
48 hdmi@54280000 { 44 hdmi@54280000 {
49 status = "okay"; 45 status = "okay";
46 hdmi-supply = <&reg_5v0>;
50 }; 47 };
51 }; 48 };
52 49
50 /* Apalis UART1 */
53 serial@70006000 { 51 serial@70006000 {
54 status = "okay"; 52 status = "okay";
55 }; 53 };
56 54
55 /* Apalis UART2 */
57 serial@70006040 { 56 serial@70006040 {
58 compatible = "nvidia,tegra30-hsuart";
59 status = "okay"; 57 status = "okay";
60 }; 58 };
61 59
60 /* Apalis UART3 */
62 serial@70006200 { 61 serial@70006200 {
63 compatible = "nvidia,tegra30-hsuart";
64 status = "okay"; 62 status = "okay";
65 }; 63 };
66 64
65 /* Apalis UART4 */
67 serial@70006300 { 66 serial@70006300 {
68 compatible = "nvidia,tegra30-hsuart";
69 status = "okay"; 67 status = "okay";
70 }; 68 };
71 69
@@ -99,13 +97,13 @@
99 * CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on 97 * CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on
100 * carrier board) 98 * carrier board)
101 */ 99 */
102 cami2c: i2c@7000c500 { 100 i2c@7000c500 {
103 status = "okay"; 101 status = "okay";
104 clock-frequency = <400000>; 102 clock-frequency = <400000>;
105 }; 103 };
106 104
107 /* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */ 105 /* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */
108 hdmiddc: i2c@7000c700 { 106 i2c@7000c700 {
109 status = "okay"; 107 status = "okay";
110 }; 108 };
111 109
@@ -113,29 +111,16 @@
113 spi@7000d400 { 111 spi@7000d400 {
114 status = "okay"; 112 status = "okay";
115 spi-max-frequency = <25000000>; 113 spi-max-frequency = <25000000>;
116 spidev0: spidev@1 {
117 compatible = "spidev";
118 reg = <1>;
119 spi-max-frequency = <25000000>;
120 };
121 }; 114 };
122 115
123 /* SPI5: Apalis SPI2 */ 116 /* SPI5: Apalis SPI2 */
124 spi@7000dc00 { 117 spi@7000dc00 {
125 status = "okay"; 118 status = "okay";
126 spi-max-frequency = <25000000>; 119 spi-max-frequency = <25000000>;
127 spidev1: spidev@2 {
128 compatible = "spidev";
129 reg = <2>;
130 spi-max-frequency = <25000000>;
131 };
132 };
133
134 hda@70030000 {
135 status = "okay";
136 }; 120 };
137 121
138 sd1: sdhci@78000000 { 122 /* Apalis SD1 */
123 sdhci@78000000 {
139 status = "okay"; 124 status = "okay";
140 bus-width = <4>; 125 bus-width = <4>;
141 /* SD1_CD# */ 126 /* SD1_CD# */
@@ -143,7 +128,8 @@
143 no-1-8-v; 128 no-1-8-v;
144 }; 129 };
145 130
146 mmc1: sdhci@78000400 { 131 /* Apalis MMC1 */
132 sdhci@78000400 {
147 status = "okay"; 133 status = "okay";
148 bus-width = <8>; 134 bus-width = <8>;
149 /* MMC1_CD# */ 135 /* MMC1_CD# */
@@ -154,12 +140,12 @@
154 /* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */ 140 /* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
155 usb@7d000000 { 141 usb@7d000000 {
156 status = "okay"; 142 status = "okay";
143 dr_mode = "otg";
157 }; 144 };
158 145
159 usb-phy@7d000000 { 146 usb-phy@7d000000 {
160 status = "okay"; 147 status = "okay";
161 dr_mode = "otg"; 148 vbus-supply = <&reg_usbo1_vbus>;
162 vbus-supply = <&usbo1_vbus_reg>;
163 }; 149 };
164 150
165 /* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */ 151 /* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
@@ -169,7 +155,7 @@
169 155
170 usb-phy@7d004000 { 156 usb-phy@7d004000 {
171 status = "okay"; 157 status = "okay";
172 vbus-supply = <&usbh_vbus_reg>; 158 vbus-supply = <&reg_usbh_vbus>;
173 }; 159 };
174 160
175 /* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */ 161 /* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */
@@ -179,18 +165,17 @@
179 165
180 usb-phy@7d008000 { 166 usb-phy@7d008000 {
181 status = "okay"; 167 status = "okay";
182 vbus-supply = <&usbh_vbus_reg>; 168 vbus-supply = <&reg_usbh_vbus>;
183 }; 169 };
184 170
185 backlight: backlight { 171 backlight: backlight {
186 compatible = "pwm-backlight"; 172 compatible = "pwm-backlight";
187
188 /* PWM_BKL1 */
189 pwms = <&pwm 0 5000000>;
190 brightness-levels = <255 231 223 207 191 159 127 0>; 173 brightness-levels = <255 231 223 207 191 159 127 0>;
191 default-brightness-level = <6>; 174 default-brightness-level = <6>;
192 /* BKL1_ON */ 175 /* BKL1_ON */
193 enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; 176 enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
177 power-supply = <&reg_3v3>;
178 pwms = <&pwm 0 5000000>; /* BKL1_PWM */
194 }; 179 };
195 180
196 gpio-keys { 181 gpio-keys {
@@ -211,64 +196,53 @@
211 * edt,et070080dh6: EDT 7.0" LCD TFT 196 * edt,et070080dh6: EDT 7.0" LCD TFT
212 */ 197 */
213 compatible = "edt,et057090dhu", "simple-panel"; 198 compatible = "edt,et057090dhu", "simple-panel";
214
215 backlight = <&backlight>; 199 backlight = <&backlight>;
200 power-supply = <&reg_3v3>;
216 }; 201 };
217 202
218 pwmleds { 203 reg_3v3: regulator-3v3 {
219 compatible = "pwm-leds"; 204 compatible = "regulator-fixed";
220 205 regulator-name = "3.3V_SW";
221 pwm1 { 206 regulator-min-microvolt = <3300000>;
222 label = "PWM1"; 207 regulator-max-microvolt = <3300000>;
223 pwms = <&pwm 3 19600>; 208 };
224 max-brightness = <255>;
225 };
226
227 pwm2 {
228 label = "PWM2";
229 pwms = <&pwm 2 19600>;
230 max-brightness = <255>;
231 };
232 209
233 pwm3 { 210 reg_5v0: regulator-5v0 {
234 label = "PWM3"; 211 compatible = "regulator-fixed";
235 pwms = <&pwm 1 19600>; 212 regulator-name = "5V_SW";
236 max-brightness = <255>; 213 regulator-min-microvolt = <5000000>;
237 }; 214 regulator-max-microvolt = <5000000>;
238 }; 215 };
239 216
240 regulators { 217 /* USBO1_EN */
241 sys_5v0_reg: regulator@1 { 218 reg_usbo1_vbus: regulator-usbo1-vbus {
242 compatible = "regulator-fixed"; 219 compatible = "regulator-fixed";
243 reg = <1>; 220 regulator-name = "VCC_USBO1";
244 regulator-name = "5v0"; 221 regulator-min-microvolt = <5000000>;
245 regulator-min-microvolt = <5000000>; 222 regulator-max-microvolt = <5000000>;
246 regulator-max-microvolt = <5000000>; 223 gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
247 regulator-always-on; 224 enable-active-high;
248 }; 225 vin-supply = <&reg_5v0>;
226 };
249 227
250 /* USBO1_EN */ 228 /* USBH_EN */
251 usbo1_vbus_reg: regulator@2 { 229 reg_usbh_vbus: regulator-usbh-vbus {
252 compatible = "regulator-fixed"; 230 compatible = "regulator-fixed";
253 reg = <2>; 231 regulator-name = "VCC_USBH(2A|2C|2D|3|4)";
254 regulator-name = "usbo1_vbus"; 232 regulator-min-microvolt = <5000000>;
255 regulator-min-microvolt = <5000000>; 233 regulator-max-microvolt = <5000000>;
256 regulator-max-microvolt = <5000000>; 234 gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
257 gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>; 235 enable-active-high;
258 enable-active-high; 236 vin-supply = <&reg_5v0>;
259 vin-supply = <&sys_5v0_reg>; 237 };
260 }; 238};
261 239
262 /* USBH_EN */ 240&gpio {
263 usbh_vbus_reg: regulator@3 { 241 /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
264 compatible = "regulator-fixed"; 242 pex-perst-n {
265 reg = <3>; 243 gpio-hog;
266 regulator-name = "usbh_vbus"; 244 gpios = <TEGRA_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
267 regulator-min-microvolt = <5000000>; 245 output-high;
268 regulator-max-microvolt = <5000000>; 246 line-name = "PEX_PERST_N";
269 gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
270 enable-active-high;
271 vin-supply = <&sys_5v0_reg>;
272 };
273 }; 247 };
274}; 248};
diff --git a/arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts b/arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts
new file mode 100644
index 000000000000..0be50e881684
--- /dev/null
+++ b/arch/arm/boot/dts/tegra30-apalis-v1.1-eval.dts
@@ -0,0 +1,266 @@
1// SPDX-License-Identifier: GPL-2.0 OR MIT
2/dts-v1/;
3
4#include <dt-bindings/input/input.h>
5#include "tegra30-apalis-v1.1.dtsi"
6
7/ {
8 model = "Toradex Apalis T30 on Apalis Evaluation Board";
9 compatible = "toradex,apalis_t30-v1.1-eval", "toradex,apalis_t30-eval",
10 "toradex,apalis_t30-v1.1", "toradex,apalis_t30",
11 "nvidia,tegra30";
12
13 aliases {
14 rtc0 = "/i2c@7000c000/rtc@68";
15 rtc1 = "/i2c@7000d000/pmic@2d";
16 rtc2 = "/rtc@7000e000";
17 serial0 = &uarta;
18 serial1 = &uartb;
19 serial2 = &uartc;
20 serial3 = &uartd;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 };
26
27 pcie@3000 {
28 pci@1,0 {
29 status = "okay";
30 };
31
32 pci@2,0 {
33 status = "okay";
34 };
35 };
36
37 host1x@50000000 {
38 dc@54200000 {
39 rgb {
40 status = "okay";
41 nvidia,panel = <&panel>;
42 };
43 };
44
45 hdmi@54280000 {
46 status = "okay";
47 hdmi-supply = <&reg_5v0>;
48 };
49 };
50
51 /* Apalis UART1 */
52 serial@70006000 {
53 status = "okay";
54 };
55
56 /* Apalis UART2 */
57 serial@70006040 {
58 status = "okay";
59 };
60
61 /* Apalis UART3 */
62 serial@70006200 {
63 status = "okay";
64 };
65
66 /* Apalis UART4 */
67 serial@70006300 {
68 status = "okay";
69 };
70
71 pwm@7000a000 {
72 status = "okay";
73 };
74
75 /*
76 * GEN1_I2C: I2C1_SDA/SCL on MXM3 pin 209/211 (e.g. RTC on carrier
77 * board)
78 */
79 i2c@7000c000 {
80 status = "okay";
81 clock-frequency = <400000>;
82
83 pcie-switch@58 {
84 compatible = "plx,pex8605";
85 reg = <0x58>;
86 };
87
88 /* M41T0M6 real time clock on carrier board */
89 rtc@68 {
90 compatible = "st,m41t0";
91 reg = <0x68>;
92 };
93 };
94
95 /* GEN2_I2C: unused */
96
97 /*
98 * CAM_I2C: I2C3_SDA/SCL on MXM3 pin 201/203 (e.g. camera sensor on
99 * carrier board)
100 */
101 i2c@7000c500 {
102 status = "okay";
103 clock-frequency = <400000>;
104 };
105
106 /* DDC: I2C2_SDA/SCL on MXM3 pin 205/207 (e.g. display EDID) */
107 i2c@7000c700 {
108 status = "okay";
109 };
110
111 /* SPI1: Apalis SPI1 */
112 spi@7000d400 {
113 status = "okay";
114 spi-max-frequency = <25000000>;
115 };
116
117 /* SPI5: Apalis SPI2 */
118 spi@7000dc00 {
119 status = "okay";
120 spi-max-frequency = <25000000>;
121 };
122
123 /* Apalis SD1 */
124 sdhci@78000000 {
125 status = "okay";
126 bus-width = <4>;
127 /* SD1_CD# */
128 cd-gpios = <&gpio TEGRA_GPIO(CC, 5) GPIO_ACTIVE_LOW>;
129 no-1-8-v;
130 };
131
132 /* Apalis MMC1 */
133 sdhci@78000400 {
134 status = "okay";
135 bus-width = <8>;
136 /* MMC1_CD# */
137 cd-gpios = <&gpio TEGRA_GPIO(V, 3) GPIO_ACTIVE_LOW>;
138 vqmmc-supply = <&reg_vddio_sdmmc3>;
139 };
140
141 /* EHCI instance 0: USB1_DP/N -> USBO1_DP/N */
142 usb@7d000000 {
143 status = "okay";
144 dr_mode = "otg";
145 };
146
147 usb-phy@7d000000 {
148 status = "okay";
149 vbus-supply = <&reg_usbo1_vbus>;
150 };
151
152 /* EHCI instance 1: USB2_DP/N -> USBH2_DP/N */
153 usb@7d004000 {
154 status = "okay";
155 };
156
157 usb-phy@7d004000 {
158 status = "okay";
159 vbus-supply = <&reg_usbh_vbus>;
160 };
161
162 /* EHCI instance 2: USB3_DP/N -> USBH3_DP/N */
163 usb@7d008000 {
164 status = "okay";
165 };
166
167 usb-phy@7d008000 {
168 status = "okay";
169 vbus-supply = <&reg_usbh_vbus>;
170 };
171
172 backlight: backlight {
173 compatible = "pwm-backlight";
174 brightness-levels = <255 231 223 207 191 159 127 0>;
175 default-brightness-level = <6>;
176 /* BKL1_ON */
177 enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
178 power-supply = <&reg_3v3>;
179 pwms = <&pwm 0 5000000>; /* BKL1_PWM */
180 };
181
182 gpio-keys {
183 compatible = "gpio-keys";
184
185 wakeup {
186 label = "WAKE1_MICO";
187 gpios = <&gpio TEGRA_GPIO(V, 1) GPIO_ACTIVE_LOW>;
188 linux,code = <KEY_WAKEUP>;
189 debounce-interval = <10>;
190 wakeup-source;
191 };
192 };
193
194 panel: panel {
195 /*
196 * edt,et057090dhu: EDT 5.7" LCD TFT
197 * edt,et070080dh6: EDT 7.0" LCD TFT
198 */
199 compatible = "edt,et057090dhu", "simple-panel";
200 backlight = <&backlight>;
201 power-supply = <&reg_3v3>;
202 };
203
204 reg_3v3: regulator-3v3 {
205 compatible = "regulator-fixed";
206 regulator-name = "3.3V_SW";
207 regulator-min-microvolt = <3300000>;
208 regulator-max-microvolt = <3300000>;
209 };
210
211 reg_5v0: regulator-5v0 {
212 compatible = "regulator-fixed";
213 regulator-name = "5V_SW";
214 regulator-min-microvolt = <5000000>;
215 regulator-max-microvolt = <5000000>;
216 };
217
218 /* USBO1_EN */
219 reg_usbo1_vbus: regulator-usbo1-vbus {
220 compatible = "regulator-fixed";
221 regulator-name = "VCC_USBO1";
222 regulator-min-microvolt = <5000000>;
223 regulator-max-microvolt = <5000000>;
224 gpio = <&gpio TEGRA_GPIO(T, 5) GPIO_ACTIVE_HIGH>;
225 enable-active-high;
226 vin-supply = <&reg_5v0>;
227 };
228
229 /* USBH_EN */
230 reg_usbh_vbus: regulator-usbh-vbus {
231 compatible = "regulator-fixed";
232 regulator-name = "VCC_USBH(2A|2C|2D|3|4)";
233 regulator-min-microvolt = <5000000>;
234 regulator-max-microvolt = <5000000>;
235 gpio = <&gpio TEGRA_GPIO(DD, 1) GPIO_ACTIVE_HIGH>;
236 enable-active-high;
237 vin-supply = <&reg_5v0>;
238 };
239
240 /*
241 * 1.8 volt resp. 3.3 volt VDDIO_SDMMC3 depending on
242 * EN_+3.3_SDMMC3 GPIO
243 */
244 reg_vddio_sdmmc3: regulator-vddio-sdmmc3 {
245 compatible = "regulator-gpio";
246 regulator-name = "VDDIO_SDMMC3";
247 regulator-min-microvolt = <1800000>;
248 regulator-max-microvolt = <3300000>;
249 regulator-type = "voltage";
250 gpios = <&gpio TEGRA_GPIO(J, 5) GPIO_ACTIVE_HIGH>;
251 states = <1800000 0x0
252 3300000 0x1>;
253 startup-delay-us = <100000>;
254 vin-supply = <&vddio_sdmmc_1v8_reg>;
255 };
256};
257
258&gpio {
259 /* Apalis GPIO7 MXM3 pin 15 PLX PEX 8605 PCIe Switch Reset */
260 pex-perst-n {
261 gpio-hog;
262 gpios = <TEGRA_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
263 output-high;
264 line-name = "PEX_PERST_N";
265 };
266};
diff --git a/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi b/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
new file mode 100644
index 000000000000..02f8126481a2
--- /dev/null
+++ b/arch/arm/boot/dts/tegra30-apalis-v1.1.dtsi
@@ -0,0 +1,1189 @@
1// SPDX-License-Identifier: GPL-2.0 OR MIT
2#include "tegra30.dtsi"
3
4/*
5 * Toradex Apalis T30 Module Device Tree
6 * Compatible for Revisions 1GB: V1.1A, V1.1B; 1GB IT: V1.1A, V1.1B;
7 * 2GB: V1.1A, V1.1B
8 */
9/ {
10 memory@80000000 {
11 reg = <0x80000000 0x40000000>;
12 };
13
14 pcie@3000 {
15 status = "okay";
16 avdd-pexa-supply = <&vdd2_reg>;
17 avdd-pexb-supply = <&vdd2_reg>;
18 avdd-pex-pll-supply = <&vdd2_reg>;
19 avdd-plle-supply = <&ldo6_reg>;
20 hvdd-pex-supply = <&reg_module_3v3>;
21 vddio-pex-ctl-supply = <&reg_module_3v3>;
22 vdd-pexa-supply = <&vdd2_reg>;
23 vdd-pexb-supply = <&vdd2_reg>;
24
25 /* Apalis type specific */
26 pci@1,0 {
27 nvidia,num-lanes = <4>;
28 };
29
30 /* Apalis PCIe */
31 pci@2,0 {
32 nvidia,num-lanes = <1>;
33 };
34
35 /* I210/I211 Gigabit Ethernet Controller (on-module) */
36 pci@3,0 {
37 status = "okay";
38 nvidia,num-lanes = <1>;
39
40 pcie@0 {
41 reg = <0 0 0 0 0>;
42 local-mac-address = [00 00 00 00 00 00];
43 };
44 };
45 };
46
47 host1x@50000000 {
48 hdmi@54280000 {
49 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
50 nvidia,hpd-gpio =
51 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
52 pll-supply = <&reg_1v8_avdd_hdmi_pll>;
53 vdd-supply = <&reg_3v3_avdd_hdmi>;
54 };
55 };
56
57 pinmux@70000868 {
58 pinctrl-names = "default";
59 pinctrl-0 = <&state_default>;
60
61 state_default: pinmux {
62 /* Analogue Audio (On-module) */
63 clk1-out-pw4 {
64 nvidia,pins = "clk1_out_pw4";
65 nvidia,function = "extperiph1";
66 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
67 nvidia,tristate = <TEGRA_PIN_DISABLE>;
68 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
69 };
70 dap3-fs-pp0 {
71 nvidia,pins = "dap3_fs_pp0",
72 "dap3_sclk_pp3",
73 "dap3_din_pp1",
74 "dap3_dout_pp2";
75 nvidia,function = "i2s2";
76 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
77 nvidia,tristate = <TEGRA_PIN_DISABLE>;
78 };
79
80 /* Apalis BKL1_ON */
81 pv2 {
82 nvidia,pins = "pv2";
83 nvidia,function = "rsvd4";
84 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
85 nvidia,tristate = <TEGRA_PIN_DISABLE>;
86 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
87 };
88
89 /* Apalis BKL1_PWM */
90 uart3-rts-n-pc0 {
91 nvidia,pins = "uart3_rts_n_pc0";
92 nvidia,function = "pwm0";
93 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
94 nvidia,tristate = <TEGRA_PIN_DISABLE>;
95 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
96 };
97 /* BKL1_PWM_EN#, disable TPS65911 PMIC PWM backlight */
98 uart3-cts-n-pa1 {
99 nvidia,pins = "uart3_cts_n_pa1";
100 nvidia,function = "rsvd2";
101 nvidia,pull = <TEGRA_PIN_PULL_UP>;
102 nvidia,tristate = <TEGRA_PIN_DISABLE>;
103 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
104 };
105
106 /* Apalis CAN1 on SPI6 */
107 spi2-cs0-n-px3 {
108 nvidia,pins = "spi2_cs0_n_px3",
109 "spi2_miso_px1",
110 "spi2_mosi_px0",
111 "spi2_sck_px2";
112 nvidia,function = "spi6";
113 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
114 nvidia,tristate = <TEGRA_PIN_DISABLE>;
115 };
116 /* CAN_INT1 */
117 spi2-cs1-n-pw2 {
118 nvidia,pins = "spi2_cs1_n_pw2";
119 nvidia,function = "spi3";
120 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
121 nvidia,tristate = <TEGRA_PIN_DISABLE>;
122 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
123 };
124
125 /* Apalis CAN2 on SPI4 */
126 gmi-a16-pj7 {
127 nvidia,pins = "gmi_a16_pj7",
128 "gmi_a17_pb0",
129 "gmi_a18_pb1",
130 "gmi_a19_pk7";
131 nvidia,function = "spi4";
132 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
133 nvidia,tristate = <TEGRA_PIN_DISABLE>;
134 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
135 };
136 /* CAN_INT2 */
137 spi2-cs2-n-pw3 {
138 nvidia,pins = "spi2_cs2_n_pw3";
139 nvidia,function = "spi3";
140 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
141 nvidia,tristate = <TEGRA_PIN_DISABLE>;
142 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
143 };
144
145 /* Apalis Digital Audio */
146 clk1-req-pee2 {
147 nvidia,pins = "clk1_req_pee2";
148 nvidia,function = "hda";
149 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
150 nvidia,tristate = <TEGRA_PIN_DISABLE>;
151 };
152 clk2-out-pw5 {
153 nvidia,pins = "clk2_out_pw5";
154 nvidia,function = "extperiph2";
155 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
156 nvidia,tristate = <TEGRA_PIN_DISABLE>;
157 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
158 };
159 dap1-fs-pn0 {
160 nvidia,pins = "dap1_fs_pn0",
161 "dap1_din_pn1",
162 "dap1_dout_pn2",
163 "dap1_sclk_pn3";
164 nvidia,function = "hda";
165 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
166 nvidia,tristate = <TEGRA_PIN_DISABLE>;
167 };
168
169 /* Apalis GPIO */
170 kb-col0-pq0 {
171 nvidia,pins = "kb_col0_pq0",
172 "kb_col1_pq1",
173 "kb_row10_ps2",
174 "kb_row11_ps3",
175 "kb_row12_ps4",
176 "kb_row13_ps5",
177 "kb_row14_ps6",
178 "kb_row15_ps7";
179 nvidia,function = "kbc";
180 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
181 nvidia,tristate = <TEGRA_PIN_DISABLE>;
182 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
183 };
184 /* Multiplexed and therefore disabled */
185 owr {
186 nvidia,pins = "owr";
187 nvidia,function = "rsvd3";
188 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
189 nvidia,tristate = <TEGRA_PIN_ENABLE>;
190 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
191 };
192
193 /* Apalis HDMI1 */
194 hdmi-cec-pee3 {
195 nvidia,pins = "hdmi_cec_pee3";
196 nvidia,function = "cec";
197 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
198 nvidia,tristate = <TEGRA_PIN_DISABLE>;
199 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
200 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
201 };
202 hdmi-int-pn7 {
203 nvidia,pins = "hdmi_int_pn7";
204 nvidia,function = "hdmi";
205 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
206 nvidia,tristate = <TEGRA_PIN_ENABLE>;
207 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
208 };
209
210 /* Apalis I2C1 */
211 gen1-i2c-scl-pc4 {
212 nvidia,pins = "gen1_i2c_scl_pc4",
213 "gen1_i2c_sda_pc5";
214 nvidia,function = "i2c1";
215 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
216 nvidia,tristate = <TEGRA_PIN_DISABLE>;
217 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
218 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
219 };
220
221 /* Apalis I2C2 (DDC) */
222 ddc-scl-pv4 {
223 nvidia,pins = "ddc_scl_pv4",
224 "ddc_sda_pv5";
225 nvidia,function = "i2c4";
226 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
227 nvidia,tristate = <TEGRA_PIN_DISABLE>;
228 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
229 };
230
231 /* Apalis I2C3 (CAM) */
232 cam-i2c-scl-pbb1 {
233 nvidia,pins = "cam_i2c_scl_pbb1",
234 "cam_i2c_sda_pbb2";
235 nvidia,function = "i2c3";
236 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
237 nvidia,tristate = <TEGRA_PIN_DISABLE>;
238 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
239 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
240 };
241
242 /* Apalis LCD1 */
243 lcd-d0-pe0 {
244 nvidia,pins = "lcd_d0_pe0",
245 "lcd_d1_pe1",
246 "lcd_d2_pe2",
247 "lcd_d3_pe3",
248 "lcd_d4_pe4",
249 "lcd_d5_pe5",
250 "lcd_d6_pe6",
251 "lcd_d7_pe7",
252 "lcd_d8_pf0",
253 "lcd_d9_pf1",
254 "lcd_d10_pf2",
255 "lcd_d11_pf3",
256 "lcd_d12_pf4",
257 "lcd_d13_pf5",
258 "lcd_d14_pf6",
259 "lcd_d15_pf7",
260 "lcd_d16_pm0",
261 "lcd_d17_pm1",
262 "lcd_d18_pm2",
263 "lcd_d19_pm3",
264 "lcd_d20_pm4",
265 "lcd_d21_pm5",
266 "lcd_d22_pm6",
267 "lcd_d23_pm7",
268 "lcd_de_pj1",
269 "lcd_hsync_pj3",
270 "lcd_pclk_pb3",
271 "lcd_vsync_pj4";
272 nvidia,function = "displaya";
273 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
274 nvidia,tristate = <TEGRA_PIN_DISABLE>;
275 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
276 };
277
278 /* Apalis MMC1 */
279 sdmmc3-clk-pa6 {
280 nvidia,pins = "sdmmc3_clk_pa6";
281 nvidia,function = "sdmmc3";
282 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
283 nvidia,tristate = <TEGRA_PIN_DISABLE>;
284 };
285 sdmmc3-dat0-pb7 {
286 nvidia,pins = "sdmmc3_cmd_pa7",
287 "sdmmc3_dat0_pb7",
288 "sdmmc3_dat1_pb6",
289 "sdmmc3_dat2_pb5",
290 "sdmmc3_dat3_pb4",
291 "sdmmc3_dat4_pd1",
292 "sdmmc3_dat5_pd0",
293 "sdmmc3_dat6_pd3",
294 "sdmmc3_dat7_pd4";
295 nvidia,function = "sdmmc3";
296 nvidia,pull = <TEGRA_PIN_PULL_UP>;
297 nvidia,tristate = <TEGRA_PIN_DISABLE>;
298 };
299 /* Apalis MMC1_CD# */
300 pv3 {
301 nvidia,pins = "pv3";
302 nvidia,function = "rsvd2";
303 nvidia,pull = <TEGRA_PIN_PULL_UP>;
304 nvidia,tristate = <TEGRA_PIN_DISABLE>;
305 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
306 };
307
308 /* Apalis Parallel Camera */
309 cam-mclk-pcc0 {
310 nvidia,pins = "cam_mclk_pcc0";
311 nvidia,function = "vi_alt3";
312 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
313 nvidia,tristate = <TEGRA_PIN_DISABLE>;
314 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
315 };
316 vi-vsync-pd6 {
317 nvidia,pins = "vi_d0_pt4",
318 "vi_d1_pd5",
319 "vi_d2_pl0",
320 "vi_d3_pl1",
321 "vi_d4_pl2",
322 "vi_d5_pl3",
323 "vi_d6_pl4",
324 "vi_d7_pl5",
325 "vi_d8_pl6",
326 "vi_d9_pl7",
327 "vi_d10_pt2",
328 "vi_d11_pt3",
329 "vi_hsync_pd7",
330 "vi_pclk_pt0",
331 "vi_vsync_pd6";
332 nvidia,function = "vi";
333 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
334 nvidia,tristate = <TEGRA_PIN_DISABLE>;
335 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
336 };
337 /* Multiplexed and therefore disabled */
338 kb-col2-pq2 {
339 nvidia,pins = "kb_col2_pq2",
340 "kb_col3_pq3",
341 "kb_col4_pq4",
342 "kb_row4_pr4";
343 nvidia,function = "rsvd4";
344 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
345 nvidia,tristate = <TEGRA_PIN_ENABLE>;
346 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
347 };
348 kb-row0-pr0 {
349 nvidia,pins = "kb_row0_pr0",
350 "kb_row1_pr1",
351 "kb_row2_pr2",
352 "kb_row3_pr3";
353 nvidia,function = "rsvd3";
354 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
355 nvidia,tristate = <TEGRA_PIN_ENABLE>;
356 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
357 };
358 kb-row5-pr5 {
359 nvidia,pins = "kb_row5_pr5",
360 "kb_row6_pr6",
361 "kb_row7_pr7";
362 nvidia,function = "kbc";
363 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
364 nvidia,tristate = <TEGRA_PIN_ENABLE>;
365 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
366 };
367 /*
368 * VI level-shifter direction
369 * (pull-down => default direction input)
370 */
371 vi-mclk-pt1 {
372 nvidia,pins = "vi_mclk_pt1";
373 nvidia,function = "vi_alt3";
374 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
375 nvidia,tristate = <TEGRA_PIN_ENABLE>;
376 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
377 };
378
379 /* Apalis PWM1 */
380 pu6 {
381 nvidia,pins = "pu6";
382 nvidia,function = "pwm3";
383 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
384 nvidia,tristate = <TEGRA_PIN_DISABLE>;
385 };
386
387 /* Apalis PWM2 */
388 pu5 {
389 nvidia,pins = "pu5";
390 nvidia,function = "pwm2";
391 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
392 nvidia,tristate = <TEGRA_PIN_DISABLE>;
393 };
394
395 /* Apalis PWM3 */
396 pu4 {
397 nvidia,pins = "pu4";
398 nvidia,function = "pwm1";
399 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
400 nvidia,tristate = <TEGRA_PIN_DISABLE>;
401 };
402
403 /* Apalis PWM4 */
404 pu3 {
405 nvidia,pins = "pu3";
406 nvidia,function = "pwm0";
407 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
408 nvidia,tristate = <TEGRA_PIN_DISABLE>;
409 };
410
411 /* Apalis RESET_MOCI# */
412 gmi-rst-n-pi4 {
413 nvidia,pins = "gmi_rst_n_pi4";
414 nvidia,function = "gmi";
415 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
416 nvidia,tristate = <TEGRA_PIN_DISABLE>;
417 };
418
419 /* Apalis SATA1_ACT# */
420 pex-l0-prsnt-n-pdd0 {
421 nvidia,pins = "pex_l0_prsnt_n_pdd0";
422 nvidia,function = "rsvd3";
423 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
424 nvidia,tristate = <TEGRA_PIN_DISABLE>;
425 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
426 };
427
428 /* Apalis SD1 */
429 sdmmc1-clk-pz0 {
430 nvidia,pins = "sdmmc1_clk_pz0";
431 nvidia,function = "sdmmc1";
432 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
433 nvidia,tristate = <TEGRA_PIN_DISABLE>;
434 };
435 sdmmc1-cmd-pz1 {
436 nvidia,pins = "sdmmc1_cmd_pz1",
437 "sdmmc1_dat0_py7",
438 "sdmmc1_dat1_py6",
439 "sdmmc1_dat2_py5",
440 "sdmmc1_dat3_py4";
441 nvidia,function = "sdmmc1";
442 nvidia,pull = <TEGRA_PIN_PULL_UP>;
443 nvidia,tristate = <TEGRA_PIN_DISABLE>;
444 };
445 /* Apalis SD1_CD# */
446 clk2-req-pcc5 {
447 nvidia,pins = "clk2_req_pcc5";
448 nvidia,function = "rsvd2";
449 nvidia,pull = <TEGRA_PIN_PULL_UP>;
450 nvidia,tristate = <TEGRA_PIN_DISABLE>;
451 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
452 };
453
454 /* Apalis SPDIF1 */
455 spdif-out-pk5 {
456 nvidia,pins = "spdif_out_pk5",
457 "spdif_in_pk6";
458 nvidia,function = "spdif";
459 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
460 nvidia,tristate = <TEGRA_PIN_DISABLE>;
461 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
462 };
463
464 /* Apalis SPI1 */
465 spi1-sck-px5 {
466 nvidia,pins = "spi1_sck_px5",
467 "spi1_mosi_px4",
468 "spi1_miso_px7",
469 "spi1_cs0_n_px6";
470 nvidia,function = "spi1";
471 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
472 nvidia,tristate = <TEGRA_PIN_DISABLE>;
473 };
474
475 /* Apalis SPI2 */
476 lcd-sck-pz4 {
477 nvidia,pins = "lcd_sck_pz4",
478 "lcd_sdout_pn5",
479 "lcd_sdin_pz2",
480 "lcd_cs0_n_pn4";
481 nvidia,function = "spi5";
482 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
483 nvidia,tristate = <TEGRA_PIN_DISABLE>;
484 };
485
486 /*
487 * Apalis TS (Low-speed type specific)
488 * pins may be used as GPIOs
489 */
490 kb-col5-pq5 {
491 nvidia,pins = "kb_col5_pq5";
492 nvidia,function = "rsvd4";
493 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
494 nvidia,tristate = <TEGRA_PIN_DISABLE>;
495 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
496 };
497 kb-col6-pq6 {
498 nvidia,pins = "kb_col6_pq6",
499 "kb_col7_pq7",
500 "kb_row8_ps0",
501 "kb_row9_ps1";
502 nvidia,function = "kbc";
503 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
504 nvidia,tristate = <TEGRA_PIN_DISABLE>;
505 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
506 };
507
508 /* Apalis UART1 */
509 ulpi-data0 {
510 nvidia,pins = "ulpi_data0_po1",
511 "ulpi_data1_po2",
512 "ulpi_data2_po3",
513 "ulpi_data3_po4",
514 "ulpi_data4_po5",
515 "ulpi_data5_po6",
516 "ulpi_data6_po7",
517 "ulpi_data7_po0";
518 nvidia,function = "uarta";
519 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
520 nvidia,tristate = <TEGRA_PIN_DISABLE>;
521 };
522
523 /* Apalis UART2 */
524 ulpi-clk-py0 {
525 nvidia,pins = "ulpi_clk_py0",
526 "ulpi_dir_py1",
527 "ulpi_nxt_py2",
528 "ulpi_stp_py3";
529 nvidia,function = "uartd";
530 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
531 nvidia,tristate = <TEGRA_PIN_DISABLE>;
532 };
533
534 /* Apalis UART3 */
535 uart2-rxd-pc3 {
536 nvidia,pins = "uart2_rxd_pc3",
537 "uart2_txd_pc2";
538 nvidia,function = "uartb";
539 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
540 nvidia,tristate = <TEGRA_PIN_DISABLE>;
541 };
542
543 /* Apalis UART4 */
544 uart3-rxd-pw7 {
545 nvidia,pins = "uart3_rxd_pw7",
546 "uart3_txd_pw6";
547 nvidia,function = "uartc";
548 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
549 nvidia,tristate = <TEGRA_PIN_DISABLE>;
550 };
551
552 /* Apalis USBH_EN */
553 pex-l0-rst-n-pdd1 {
554 nvidia,pins = "pex_l0_rst_n_pdd1";
555 nvidia,function = "rsvd3";
556 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
557 nvidia,tristate = <TEGRA_PIN_DISABLE>;
558 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
559 };
560
561 /* Apalis USBH_OC# */
562 pex-l0-clkreq-n-pdd2 {
563 nvidia,pins = "pex_l0_clkreq_n_pdd2";
564 nvidia,function = "rsvd3";
565 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
566 nvidia,tristate = <TEGRA_PIN_DISABLE>;
567 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
568 };
569
570 /* Apalis USBO1_EN */
571 gen2-i2c-scl-pt5 {
572 nvidia,pins = "gen2_i2c_scl_pt5";
573 nvidia,function = "rsvd4";
574 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
575 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
576 nvidia,tristate = <TEGRA_PIN_DISABLE>;
577 };
578
579 /* Apalis USBO1_OC# */
580 gen2-i2c-sda-pt6 {
581 nvidia,pins = "gen2_i2c_sda_pt6";
582 nvidia,function = "rsvd4";
583 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
584 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
585 nvidia,tristate = <TEGRA_PIN_DISABLE>;
586 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
587 };
588
589 /* Apalis VGA1 not supported and therefore disabled */
590 crt-hsync-pv6 {
591 nvidia,pins = "crt_hsync_pv6",
592 "crt_vsync_pv7";
593 nvidia,function = "rsvd2";
594 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
595 nvidia,tristate = <TEGRA_PIN_ENABLE>;
596 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
597 };
598
599 /* Apalis WAKE1_MICO */
600 pv1 {
601 nvidia,pins = "pv1";
602 nvidia,function = "rsvd1";
603 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
604 nvidia,tristate = <TEGRA_PIN_DISABLE>;
605 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
606 };
607
608 /* eMMC (On-module) */
609 sdmmc4-clk-pcc4 {
610 nvidia,pins = "sdmmc4_clk_pcc4",
611 "sdmmc4_cmd_pt7",
612 "sdmmc4_rst_n_pcc3";
613 nvidia,function = "sdmmc4";
614 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
615 nvidia,tristate = <TEGRA_PIN_DISABLE>;
616 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
617 };
618 sdmmc4-dat0-paa0 {
619 nvidia,pins = "sdmmc4_dat0_paa0",
620 "sdmmc4_dat1_paa1",
621 "sdmmc4_dat2_paa2",
622 "sdmmc4_dat3_paa3",
623 "sdmmc4_dat4_paa4",
624 "sdmmc4_dat5_paa5",
625 "sdmmc4_dat6_paa6",
626 "sdmmc4_dat7_paa7";
627 nvidia,function = "sdmmc4";
628 nvidia,pull = <TEGRA_PIN_PULL_UP>;
629 nvidia,tristate = <TEGRA_PIN_DISABLE>;
630 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
631 };
632
633 /* EN_+3.3_SDMMC3 */
634 uart2-cts-n-pj5 {
635 nvidia,pins = "uart2_cts_n_pj5";
636 nvidia,function = "gmi";
637 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
638 nvidia,tristate = <TEGRA_PIN_DISABLE>;
639 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
640 };
641
642 /* LAN i210/i211 DEV_OFF_N, PE_RST_N (On-module) */
643 pex-l2-prsnt-n-pdd7 {
644 nvidia,pins = "pex_l2_prsnt_n_pdd7",
645 "pex_l2_rst_n_pcc6";
646 nvidia,function = "pcie";
647 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
648 nvidia,tristate = <TEGRA_PIN_DISABLE>;
649 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
650 };
651 /* LAN i210/i211 PE_WAKE_N, SDP3 (On-module) */
652 pex-wake-n-pdd3 {
653 nvidia,pins = "pex_wake_n_pdd3",
654 "pex_l2_clkreq_n_pcc7";
655 nvidia,function = "pcie";
656 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
657 nvidia,tristate = <TEGRA_PIN_DISABLE>;
658 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
659 };
660 /* LAN i210/i211 SMB_ALERT_N (On-module) */
661 sys-clk-req-pz5 {
662 nvidia,pins = "sys_clk_req_pz5";
663 nvidia,function = "rsvd2";
664 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
665 nvidia,tristate = <TEGRA_PIN_DISABLE>;
666 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
667 };
668
669 /* LVDS Transceiver Configuration */
670 pbb0 {
671 nvidia,pins = "pbb0",
672 "pbb7",
673 "pcc1",
674 "pcc2";
675 nvidia,function = "rsvd2";
676 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
677 nvidia,tristate = <TEGRA_PIN_DISABLE>;
678 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
679 };
680 pbb3 {
681 nvidia,pins = "pbb3",
682 "pbb4",
683 "pbb5",
684 "pbb6";
685 nvidia,function = "displayb";
686 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
687 nvidia,tristate = <TEGRA_PIN_DISABLE>;
688 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
689 };
690
691 /* Not connected and therefore disabled */
692 clk-32k-out-pa0 {
693 nvidia,pins = "clk3_out_pee0",
694 "clk3_req_pee1",
695 "clk_32k_out_pa0",
696 "dap4_din_pp5",
697 "dap4_dout_pp6",
698 "dap4_fs_pp4",
699 "dap4_sclk_pp7";
700 nvidia,function = "rsvd2";
701 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
702 nvidia,tristate = <TEGRA_PIN_ENABLE>;
703 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
704 };
705 dap2-fs-pa2 {
706 nvidia,pins = "dap2_fs_pa2",
707 "dap2_sclk_pa3",
708 "dap2_din_pa4",
709 "dap2_dout_pa5",
710 "lcd_dc0_pn6",
711 "lcd_m1_pw1",
712 "lcd_pwr1_pc1",
713 "pex_l1_clkreq_n_pdd6",
714 "pex_l1_prsnt_n_pdd4",
715 "pex_l1_rst_n_pdd5";
716 nvidia,function = "rsvd3";
717 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
718 nvidia,tristate = <TEGRA_PIN_ENABLE>;
719 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
720 };
721 gmi-ad0-pg0 {
722 nvidia,pins = "gmi_ad0_pg0",
723 "gmi_ad2_pg2",
724 "gmi_ad3_pg3",
725 "gmi_ad4_pg4",
726 "gmi_ad5_pg5",
727 "gmi_ad6_pg6",
728 "gmi_ad7_pg7",
729 "gmi_ad8_ph0",
730 "gmi_ad9_ph1",
731 "gmi_ad10_ph2",
732 "gmi_ad11_ph3",
733 "gmi_ad12_ph4",
734 "gmi_ad13_ph5",
735 "gmi_ad14_ph6",
736 "gmi_ad15_ph7",
737 "gmi_adv_n_pk0",
738 "gmi_clk_pk1",
739 "gmi_cs4_n_pk2",
740 "gmi_cs2_n_pk3",
741 "gmi_dqs_pi2",
742 "gmi_iordy_pi5",
743 "gmi_oe_n_pi1",
744 "gmi_wait_pi7",
745 "gmi_wr_n_pi0",
746 "lcd_cs1_n_pw0",
747 "pu0",
748 "pu1",
749 "pu2";
750 nvidia,function = "rsvd4";
751 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
752 nvidia,tristate = <TEGRA_PIN_ENABLE>;
753 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
754 };
755 gmi-cs0-n-pj0 {
756 nvidia,pins = "gmi_cs0_n_pj0",
757 "gmi_cs1_n_pj2",
758 "gmi_cs3_n_pk4";
759 nvidia,function = "rsvd1";
760 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
761 nvidia,tristate = <TEGRA_PIN_ENABLE>;
762 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
763 };
764 gmi-cs6-n-pi3 {
765 nvidia,pins = "gmi_cs6_n_pi3";
766 nvidia,function = "sata";
767 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
768 nvidia,tristate = <TEGRA_PIN_ENABLE>;
769 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
770 };
771 gmi-cs7-n-pi6 {
772 nvidia,pins = "gmi_cs7_n_pi6";
773 nvidia,function = "gmi_alt";
774 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
775 nvidia,tristate = <TEGRA_PIN_ENABLE>;
776 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
777 };
778 lcd-pwr0-pb2 {
779 nvidia,pins = "lcd_pwr0_pb2",
780 "lcd_pwr2_pc6",
781 "lcd_wr_n_pz3";
782 nvidia,function = "hdcp";
783 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
784 nvidia,tristate = <TEGRA_PIN_ENABLE>;
785 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
786 };
787 uart2-rts-n-pj6 {
788 nvidia,pins = "uart2_rts_n_pj6";
789 nvidia,function = "gmi";
790 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
791 nvidia,tristate = <TEGRA_PIN_ENABLE>;
792 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
793 };
794
795 /* Power I2C (On-module) */
796 pwr-i2c-scl-pz6 {
797 nvidia,pins = "pwr_i2c_scl_pz6",
798 "pwr_i2c_sda_pz7";
799 nvidia,function = "i2cpwr";
800 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
801 nvidia,tristate = <TEGRA_PIN_DISABLE>;
802 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
803 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
804 };
805
806 /*
807 * THERMD_ALERT#, unlatched I2C address pin of LM95245
808 * temperature sensor therefore requires disabling for
809 * now
810 */
811 lcd-dc1-pd2 {
812 nvidia,pins = "lcd_dc1_pd2";
813 nvidia,function = "rsvd3";
814 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
815 nvidia,tristate = <TEGRA_PIN_ENABLE>;
816 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
817 };
818
819 /* TOUCH_PEN_INT# (On-module) */
820 pv0 {
821 nvidia,pins = "pv0";
822 nvidia,function = "rsvd1";
823 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
824 nvidia,tristate = <TEGRA_PIN_DISABLE>;
825 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
826 };
827 };
828 };
829
830 serial@70006040 {
831 compatible = "nvidia,tegra30-hsuart";
832 };
833
834 serial@70006200 {
835 compatible = "nvidia,tegra30-hsuart";
836 };
837
838 serial@70006300 {
839 compatible = "nvidia,tegra30-hsuart";
840 };
841
842 hdmi_ddc: i2c@7000c700 {
843 clock-frequency = <10000>;
844 };
845
846 /*
847 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
848 * touch screen controller
849 */
850 i2c@7000d000 {
851 status = "okay";
852 clock-frequency = <100000>;
853
854 /* SGTL5000 audio codec */
855 sgtl5000: codec@a {
856 compatible = "fsl,sgtl5000";
857 reg = <0x0a>;
858 VDDA-supply = <&reg_module_3v3_audio>;
859 VDDD-supply = <&reg_1v8_vio>;
860 VDDIO-supply = <&reg_module_3v3>;
861 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
862 };
863
864 pmic: pmic@2d {
865 compatible = "ti,tps65911";
866 reg = <0x2d>;
867
868 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
869 #interrupt-cells = <2>;
870 interrupt-controller;
871
872 ti,system-power-controller;
873
874 #gpio-cells = <2>;
875 gpio-controller;
876
877 vcc1-supply = <&reg_module_3v3>;
878 vcc2-supply = <&reg_module_3v3>;
879 vcc3-supply = <&reg_1v8_vio>;
880 vcc4-supply = <&reg_module_3v3>;
881 vcc5-supply = <&reg_module_3v3>;
882 vcc6-supply = <&reg_1v8_vio>;
883 vcc7-supply = <&reg_5v0_charge_pump>;
884 vccio-supply = <&reg_module_3v3>;
885
886 regulators {
887 vdd1_reg: vdd1 {
888 regulator-name = "+V1.35_VDDIO_DDR";
889 regulator-min-microvolt = <1350000>;
890 regulator-max-microvolt = <1350000>;
891 regulator-always-on;
892 };
893
894 vdd2_reg: vdd2 {
895 regulator-name = "+V1.05";
896 regulator-min-microvolt = <1050000>;
897 regulator-max-microvolt = <1050000>;
898 };
899
900 vddctrl_reg: vddctrl {
901 regulator-name = "+V1.0_VDD_CPU";
902 regulator-min-microvolt = <1150000>;
903 regulator-max-microvolt = <1150000>;
904 regulator-always-on;
905 };
906
907 reg_1v8_vio: vio {
908 regulator-name = "+V1.8";
909 regulator-min-microvolt = <1800000>;
910 regulator-max-microvolt = <1800000>;
911 regulator-always-on;
912 };
913
914 /*
915 * 1.8 volt +VDDIO_SDMMC3 in case EN_+3.3_SDMMC3
916 * is off
917 */
918 vddio_sdmmc_1v8_reg: ldo1 {
919 regulator-name = "+VDDIO_SDMMC3_1V8";
920 regulator-min-microvolt = <1800000>;
921 regulator-max-microvolt = <1800000>;
922 regulator-always-on;
923 };
924
925 /*
926 * EN_+V3.3 switching via FET:
927 * +V3.3_AUDIO_AVDD_S, +V3.3
928 * see also +V3.3 fixed supply
929 */
930 ldo2_reg: ldo2 {
931 regulator-name = "EN_+V3.3";
932 regulator-min-microvolt = <3300000>;
933 regulator-max-microvolt = <3300000>;
934 regulator-always-on;
935 };
936
937 ldo3_reg: ldo3 {
938 regulator-name = "+V1.2_CSI";
939 regulator-min-microvolt = <1200000>;
940 regulator-max-microvolt = <1200000>;
941 };
942
943 ldo4_reg: ldo4 {
944 regulator-name = "+V1.2_VDD_RTC";
945 regulator-min-microvolt = <1200000>;
946 regulator-max-microvolt = <1200000>;
947 regulator-always-on;
948 };
949
950 /*
951 * +V2.8_AVDD_VDAC:
952 * only required for (unsupported) analog RGB
953 */
954 ldo5_reg: ldo5 {
955 regulator-name = "+V2.8_AVDD_VDAC";
956 regulator-min-microvolt = <2800000>;
957 regulator-max-microvolt = <2800000>;
958 regulator-always-on;
959 };
960
961 /*
962 * +V1.05_AVDD_PLLE: avdd_plle should be 1.05V
963 * but LDO6 can't set voltage in 50mV
964 * granularity
965 */
966 ldo6_reg: ldo6 {
967 regulator-name = "+V1.05_AVDD_PLLE";
968 regulator-min-microvolt = <1100000>;
969 regulator-max-microvolt = <1100000>;
970 };
971
972 ldo7_reg: ldo7 {
973 regulator-name = "+V1.2_AVDD_PLL";
974 regulator-min-microvolt = <1200000>;
975 regulator-max-microvolt = <1200000>;
976 regulator-always-on;
977 };
978
979 ldo8_reg: ldo8 {
980 regulator-name = "+V1.0_VDD_DDR_HS";
981 regulator-min-microvolt = <1000000>;
982 regulator-max-microvolt = <1000000>;
983 regulator-always-on;
984 };
985 };
986 };
987
988 /* STMPE811 touch screen controller */
989 touchscreen@41 {
990 compatible = "st,stmpe811";
991 reg = <0x41>;
992 irq-gpio = <&gpio TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>;
993 interrupt-controller;
994 id = <0>;
995 blocks = <0x5>;
996 irq-trigger = <0x1>;
997
998 stmpe_touchscreen {
999 compatible = "st,stmpe-ts";
1000 /* 3.25 MHz ADC clock speed */
1001 st,adc-freq = <1>;
1002 /* 8 sample average control */
1003 st,ave-ctrl = <3>;
1004 /* 7 length fractional part in z */
1005 st,fraction-z = <7>;
1006 /*
1007 * 50 mA typical 80 mA max touchscreen drivers
1008 * current limit value
1009 */
1010 st,i-drive = <1>;
1011 /* 12-bit ADC */
1012 st,mod-12b = <1>;
1013 /* internal ADC reference */
1014 st,ref-sel = <0>;
1015 /* ADC converstion time: 80 clocks */
1016 st,sample-time = <4>;
1017 /* 1 ms panel driver settling time */
1018 st,settling = <3>;
1019 /* 5 ms touch detect interrupt delay */
1020 st,touch-det-delay = <5>;
1021 };
1022 };
1023
1024 /*
1025 * LM95245 temperature sensor
1026 * Note: OVERT1# directly connected to TPS65911 PMIC PWRDN
1027 */
1028 temp-sensor@4c {
1029 compatible = "national,lm95245";
1030 reg = <0x4c>;
1031 };
1032
1033 /* SW: +V1.2_VDD_CORE */
1034 regulator@60 {
1035 compatible = "ti,tps62362";
1036 reg = <0x60>;
1037
1038 regulator-name = "tps62362-vout";
1039 regulator-min-microvolt = <900000>;
1040 regulator-max-microvolt = <1400000>;
1041 regulator-boot-on;
1042 regulator-always-on;
1043 ti,vsel0-state-low;
1044 /* VSEL1: EN_CORE_DVFS_N low for DVFS */
1045 ti,vsel1-state-low;
1046 };
1047 };
1048
1049 /* SPI4: CAN2 */
1050 spi@7000da00 {
1051 status = "okay";
1052 spi-max-frequency = <10000000>;
1053
1054 can@1 {
1055 compatible = "microchip,mcp2515";
1056 reg = <1>;
1057 clocks = <&clk16m>;
1058 interrupt-parent = <&gpio>;
1059 interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>;
1060 spi-max-frequency = <10000000>;
1061 };
1062 };
1063
1064 /* SPI6: CAN1 */
1065 spi@7000de00 {
1066 status = "okay";
1067 spi-max-frequency = <10000000>;
1068
1069 can@0 {
1070 compatible = "microchip,mcp2515";
1071 reg = <0>;
1072 clocks = <&clk16m>;
1073 interrupt-parent = <&gpio>;
1074 interrupts = <TEGRA_GPIO(W, 2) IRQ_TYPE_EDGE_FALLING>;
1075 spi-max-frequency = <10000000>;
1076 };
1077 };
1078
1079 pmc@7000e400 {
1080 nvidia,invert-interrupt;
1081 nvidia,suspend-mode = <1>;
1082 nvidia,cpu-pwr-good-time = <5000>;
1083 nvidia,cpu-pwr-off-time = <5000>;
1084 nvidia,core-pwr-good-time = <3845 3845>;
1085 nvidia,core-pwr-off-time = <0>;
1086 nvidia,core-power-req-active-high;
1087 nvidia,sys-clock-req-active-high;
1088
1089 /* Set DEV_OFF bit in DCDC control register of TPS65911 PMIC */
1090 i2c-thermtrip {
1091 nvidia,i2c-controller-id = <4>;
1092 nvidia,bus-addr = <0x2d>;
1093 nvidia,reg-addr = <0x3f>;
1094 nvidia,reg-data = <0x1>;
1095 };
1096 };
1097
1098 hda@70030000 {
1099 status = "okay";
1100 };
1101
1102 ahub@70080000 {
1103 i2s@70080500 {
1104 status = "okay";
1105 };
1106 };
1107
1108 /* eMMC */
1109 sdhci@78000600 {
1110 status = "okay";
1111 bus-width = <8>;
1112 non-removable;
1113 vmmc-supply = <&reg_module_3v3>; /* VCC */
1114 vqmmc-supply = <&reg_1v8_vio>; /* VCCQ */
1115 mmc-ddr-1_8v;
1116 };
1117
1118 clk32k_in: xtal1 {
1119 compatible = "fixed-clock";
1120 #clock-cells = <0>;
1121 clock-frequency = <32768>;
1122 };
1123
1124 clk16m: osc4 {
1125 compatible = "fixed-clock";
1126 #clock-cells = <0>;
1127 clock-frequency = <16000000>;
1128 };
1129
1130 reg_1v8_avdd_hdmi_pll: regulator-1v8-avdd-hdmi-pll {
1131 compatible = "regulator-fixed";
1132 regulator-name = "+V1.8_AVDD_HDMI_PLL";
1133 regulator-min-microvolt = <1800000>;
1134 regulator-max-microvolt = <1800000>;
1135 enable-active-high;
1136 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
1137 vin-supply = <&reg_1v8_vio>;
1138 };
1139
1140 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
1141 compatible = "regulator-fixed";
1142 regulator-name = "+V3.3_AVDD_HDMI";
1143 regulator-min-microvolt = <3300000>;
1144 regulator-max-microvolt = <3300000>;
1145 enable-active-high;
1146 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
1147 vin-supply = <&reg_module_3v3>;
1148 };
1149
1150 reg_5v0_charge_pump: regulator-5v0-charge-pump {
1151 compatible = "regulator-fixed";
1152 regulator-name = "+V5.0";
1153 regulator-min-microvolt = <5000000>;
1154 regulator-max-microvolt = <5000000>;
1155 regulator-always-on;
1156 };
1157
1158 reg_module_3v3: regulator-module-3v3 {
1159 compatible = "regulator-fixed";
1160 regulator-name = "+V3.3";
1161 regulator-min-microvolt = <3300000>;
1162 regulator-max-microvolt = <3300000>;
1163 regulator-always-on;
1164 };
1165
1166 reg_module_3v3_audio: regulator-module-3v3-audio {
1167 compatible = "regulator-fixed";
1168 regulator-name = "+V3.3_AUDIO_AVDD_S";
1169 regulator-min-microvolt = <3300000>;
1170 regulator-max-microvolt = <3300000>;
1171 regulator-always-on;
1172 };
1173
1174 sound {
1175 compatible = "toradex,tegra-audio-sgtl5000-apalis_t30",
1176 "nvidia,tegra-audio-sgtl5000";
1177 nvidia,model = "Toradex Apalis T30";
1178 nvidia,audio-routing =
1179 "Headphone Jack", "HP_OUT",
1180 "LINE_IN", "Line In Jack",
1181 "MIC_IN", "Mic Jack";
1182 nvidia,i2s-controller = <&tegra_i2s2>;
1183 nvidia,audio-codec = <&sgtl5000>;
1184 clocks = <&tegra_car TEGRA30_CLK_PLL_A>,
1185 <&tegra_car TEGRA30_CLK_PLL_A_OUT0>,
1186 <&tegra_car TEGRA30_CLK_EXTERN1>;
1187 clock-names = "pll_a", "pll_a_out0", "mclk";
1188 };
1189};
diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi
index 2f807d40c1b7..7f112f192fe9 100644
--- a/arch/arm/boot/dts/tegra30-apalis.dtsi
+++ b/arch/arm/boot/dts/tegra30-apalis.dtsi
@@ -3,48 +3,53 @@
3 3
4/* 4/*
5 * Toradex Apalis T30 Module Device Tree 5 * Toradex Apalis T30 Module Device Tree
6 * Compatible for Revisions 1GB: V1.0A, V1.1A; 1GB IT: V1.1A; 6 * Compatible for Revisions 1GB: V1.0A; 2GB: V1.0B, V1.0C, V1.0E
7 * 2GB: V1.0B, V1.0C, V1.0E, V1.1A
8 */ 7 */
9/ { 8/ {
10 model = "Toradex Apalis T30";
11 compatible = "toradex,apalis_t30", "nvidia,tegra30";
12
13 memory@80000000 { 9 memory@80000000 {
14 reg = <0x80000000 0x40000000>; 10 reg = <0x80000000 0x40000000>;
15 }; 11 };
16 12
17 pcie@3000 { 13 pcie@3000 {
14 status = "okay";
18 avdd-pexa-supply = <&vdd2_reg>; 15 avdd-pexa-supply = <&vdd2_reg>;
19 vdd-pexa-supply = <&vdd2_reg>;
20 avdd-pexb-supply = <&vdd2_reg>; 16 avdd-pexb-supply = <&vdd2_reg>;
21 vdd-pexb-supply = <&vdd2_reg>;
22 avdd-pex-pll-supply = <&vdd2_reg>; 17 avdd-pex-pll-supply = <&vdd2_reg>;
23 avdd-plle-supply = <&ldo6_reg>; 18 avdd-plle-supply = <&ldo6_reg>;
24 vddio-pex-ctl-supply = <&sys_3v3_reg>; 19 hvdd-pex-supply = <&reg_module_3v3>;
25 hvdd-pex-supply = <&sys_3v3_reg>; 20 vddio-pex-ctl-supply = <&reg_module_3v3>;
21 vdd-pexa-supply = <&vdd2_reg>;
22 vdd-pexb-supply = <&vdd2_reg>;
26 23
24 /* Apalis type specific */
27 pci@1,0 { 25 pci@1,0 {
28 nvidia,num-lanes = <4>; 26 nvidia,num-lanes = <4>;
29 }; 27 };
30 28
29 /* Apalis PCIe */
31 pci@2,0 { 30 pci@2,0 {
32 nvidia,num-lanes = <1>; 31 nvidia,num-lanes = <1>;
33 }; 32 };
34 33
34 /* I210/I211 Gigabit Ethernet Controller (on-module) */
35 pci@3,0 { 35 pci@3,0 {
36 status = "okay";
36 nvidia,num-lanes = <1>; 37 nvidia,num-lanes = <1>;
38
39 pcie@0 {
40 reg = <0 0 0 0 0>;
41 local-mac-address = [00 00 00 00 00 00];
42 };
37 }; 43 };
38 }; 44 };
39 45
40 host1x@50000000 { 46 host1x@50000000 {
41 hdmi@54280000 { 47 hdmi@54280000 {
42 vdd-supply = <&avdd_hdmi_3v3_reg>; 48 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
43 pll-supply = <&avdd_hdmi_pll_1v8_reg>;
44
45 nvidia,hpd-gpio = 49 nvidia,hpd-gpio =
46 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 50 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
47 nvidia,ddc-i2c-bus = <&hdmiddc>; 51 pll-supply = <&reg_1v8_avdd_hdmi_pll>;
52 vdd-supply = <&reg_3v3_avdd_hdmi>;
48 }; 53 };
49 }; 54 };
50 55
@@ -54,18 +59,18 @@
54 59
55 state_default: pinmux { 60 state_default: pinmux {
56 /* Analogue Audio (On-module) */ 61 /* Analogue Audio (On-module) */
57 clk1_out_pw4 { 62 clk1-out-pw4 {
58 nvidia,pins = "clk1_out_pw4"; 63 nvidia,pins = "clk1_out_pw4";
59 nvidia,function = "extperiph1"; 64 nvidia,function = "extperiph1";
60 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 65 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
61 nvidia,tristate = <TEGRA_PIN_DISABLE>; 66 nvidia,tristate = <TEGRA_PIN_DISABLE>;
62 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 67 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
63 }; 68 };
64 dap3_fs_pp0 { 69 dap3-fs-pp0 {
65 nvidia,pins = "dap3_fs_pp0", 70 nvidia,pins = "dap3_fs_pp0",
66 "dap3_sclk_pp3", 71 "dap3_sclk_pp3",
67 "dap3_din_pp1", 72 "dap3_din_pp1",
68 "dap3_dout_pp2"; 73 "dap3_dout_pp2";
69 nvidia,function = "i2s2"; 74 nvidia,function = "i2s2";
70 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 75 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
71 nvidia,tristate = <TEGRA_PIN_DISABLE>; 76 nvidia,tristate = <TEGRA_PIN_DISABLE>;
@@ -77,25 +82,28 @@
77 nvidia,function = "rsvd4"; 82 nvidia,function = "rsvd4";
78 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 83 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
79 nvidia,tristate = <TEGRA_PIN_DISABLE>; 84 nvidia,tristate = <TEGRA_PIN_DISABLE>;
85 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
80 }; 86 };
81 87
82 /* Apalis BKL1_PWM */ 88 /* Apalis BKL1_PWM */
83 uart3_rts_n_pc0 { 89 uart3-rts-n-pc0 {
84 nvidia,pins = "uart3_rts_n_pc0"; 90 nvidia,pins = "uart3_rts_n_pc0";
85 nvidia,function = "pwm0"; 91 nvidia,function = "pwm0";
86 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 92 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
87 nvidia,tristate = <TEGRA_PIN_DISABLE>; 93 nvidia,tristate = <TEGRA_PIN_DISABLE>;
94 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
88 }; 95 };
89 /* BKL1_PWM_EN#, disable TPS65911 PMIC PWM backlight */ 96 /* BKL1_PWM_EN#, disable TPS65911 PMIC PWM backlight */
90 uart3_cts_n_pa1 { 97 uart3-cts-n-pa1 {
91 nvidia,pins = "uart3_cts_n_pa1"; 98 nvidia,pins = "uart3_cts_n_pa1";
92 nvidia,function = "rsvd2"; 99 nvidia,function = "rsvd2";
93 nvidia,pull = <TEGRA_PIN_PULL_UP>; 100 nvidia,pull = <TEGRA_PIN_PULL_UP>;
94 nvidia,tristate = <TEGRA_PIN_DISABLE>; 101 nvidia,tristate = <TEGRA_PIN_DISABLE>;
102 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
95 }; 103 };
96 104
97 /* Apalis CAN1 on SPI6 */ 105 /* Apalis CAN1 on SPI6 */
98 spi2_cs0_n_px3 { 106 spi2-cs0-n-px3 {
99 nvidia,pins = "spi2_cs0_n_px3", 107 nvidia,pins = "spi2_cs0_n_px3",
100 "spi2_miso_px1", 108 "spi2_miso_px1",
101 "spi2_mosi_px0", 109 "spi2_mosi_px0",
@@ -105,7 +113,7 @@
105 nvidia,tristate = <TEGRA_PIN_DISABLE>; 113 nvidia,tristate = <TEGRA_PIN_DISABLE>;
106 }; 114 };
107 /* CAN_INT1 */ 115 /* CAN_INT1 */
108 spi2_cs1_n_pw2 { 116 spi2-cs1-n-pw2 {
109 nvidia,pins = "spi2_cs1_n_pw2"; 117 nvidia,pins = "spi2_cs1_n_pw2";
110 nvidia,function = "spi3"; 118 nvidia,function = "spi3";
111 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 119 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -114,7 +122,7 @@
114 }; 122 };
115 123
116 /* Apalis CAN2 on SPI4 */ 124 /* Apalis CAN2 on SPI4 */
117 gmi_a16_pj7 { 125 gmi-a16-pj7 {
118 nvidia,pins = "gmi_a16_pj7", 126 nvidia,pins = "gmi_a16_pj7",
119 "gmi_a17_pb0", 127 "gmi_a17_pb0",
120 "gmi_a18_pb1", 128 "gmi_a18_pb1",
@@ -125,7 +133,7 @@
125 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 133 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
126 }; 134 };
127 /* CAN_INT2 */ 135 /* CAN_INT2 */
128 spi2_cs2_n_pw3 { 136 spi2-cs2-n-pw3 {
129 nvidia,pins = "spi2_cs2_n_pw3"; 137 nvidia,pins = "spi2_cs2_n_pw3";
130 nvidia,function = "spi3"; 138 nvidia,function = "spi3";
131 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 139 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -134,20 +142,20 @@
134 }; 142 };
135 143
136 /* Apalis Digital Audio */ 144 /* Apalis Digital Audio */
137 clk1_req_pee2 { 145 clk1-req-pee2 {
138 nvidia,pins = "clk1_req_pee2"; 146 nvidia,pins = "clk1_req_pee2";
139 nvidia,function = "hda"; 147 nvidia,function = "hda";
140 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 148 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
141 nvidia,tristate = <TEGRA_PIN_DISABLE>; 149 nvidia,tristate = <TEGRA_PIN_DISABLE>;
142 }; 150 };
143 clk2_out_pw5 { 151 clk2-out-pw5 {
144 nvidia,pins = "clk2_out_pw5"; 152 nvidia,pins = "clk2_out_pw5";
145 nvidia,function = "extperiph2"; 153 nvidia,function = "extperiph2";
146 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 154 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
147 nvidia,tristate = <TEGRA_PIN_DISABLE>; 155 nvidia,tristate = <TEGRA_PIN_DISABLE>;
148 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 156 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
149 }; 157 };
150 dap1_fs_pn0 { 158 dap1-fs-pn0 {
151 nvidia,pins = "dap1_fs_pn0", 159 nvidia,pins = "dap1_fs_pn0",
152 "dap1_din_pn1", 160 "dap1_din_pn1",
153 "dap1_dout_pn2", 161 "dap1_dout_pn2",
@@ -157,28 +165,125 @@
157 nvidia,tristate = <TEGRA_PIN_DISABLE>; 165 nvidia,tristate = <TEGRA_PIN_DISABLE>;
158 }; 166 };
159 167
160 /* Apalis I2C3 */ 168 /* Apalis GPIO */
161 cam_i2c_scl_pbb1 { 169 kb-col0-pq0 {
170 nvidia,pins = "kb_col0_pq0",
171 "kb_col1_pq1",
172 "kb_row10_ps2",
173 "kb_row11_ps3",
174 "kb_row12_ps4",
175 "kb_row13_ps5",
176 "kb_row14_ps6",
177 "kb_row15_ps7";
178 nvidia,function = "kbc";
179 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
180 nvidia,tristate = <TEGRA_PIN_DISABLE>;
181 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
182 };
183 /* Multiplexed and therefore disabled */
184 owr {
185 nvidia,pins = "owr";
186 nvidia,function = "rsvd3";
187 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
188 nvidia,tristate = <TEGRA_PIN_ENABLE>;
189 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
190 };
191
192 /* Apalis HDMI1 */
193 hdmi-cec-pee3 {
194 nvidia,pins = "hdmi_cec_pee3";
195 nvidia,function = "cec";
196 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
197 nvidia,tristate = <TEGRA_PIN_DISABLE>;
198 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
199 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
200 };
201 hdmi-int-pn7 {
202 nvidia,pins = "hdmi_int_pn7";
203 nvidia,function = "hdmi";
204 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
205 nvidia,tristate = <TEGRA_PIN_ENABLE>;
206 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
207 };
208
209 /* Apalis I2C1 */
210 gen1-i2c-scl-pc4 {
211 nvidia,pins = "gen1_i2c_scl_pc4",
212 "gen1_i2c_sda_pc5";
213 nvidia,function = "i2c1";
214 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
215 nvidia,tristate = <TEGRA_PIN_DISABLE>;
216 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
217 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
218 };
219
220 /* Apalis I2C2 (DDC) */
221 ddc-scl-pv4 {
222 nvidia,pins = "ddc_scl_pv4",
223 "ddc_sda_pv5";
224 nvidia,function = "i2c4";
225 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
226 nvidia,tristate = <TEGRA_PIN_DISABLE>;
227 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
228 };
229
230 /* Apalis I2C3 (CAM) */
231 cam-i2c-scl-pbb1 {
162 nvidia,pins = "cam_i2c_scl_pbb1", 232 nvidia,pins = "cam_i2c_scl_pbb1",
163 "cam_i2c_sda_pbb2"; 233 "cam_i2c_sda_pbb2";
164 nvidia,function = "i2c3"; 234 nvidia,function = "i2c3";
165 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 235 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
166 nvidia,tristate = <TEGRA_PIN_DISABLE>; 236 nvidia,tristate = <TEGRA_PIN_DISABLE>;
167 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 237 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
168 nvidia,lock = <TEGRA_PIN_DISABLE>;
169 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 238 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
170 }; 239 };
171 240
241 /* Apalis LCD1 */
242 lcd-d0-pe0 {
243 nvidia,pins = "lcd_d0_pe0",
244 "lcd_d1_pe1",
245 "lcd_d2_pe2",
246 "lcd_d3_pe3",
247 "lcd_d4_pe4",
248 "lcd_d5_pe5",
249 "lcd_d6_pe6",
250 "lcd_d7_pe7",
251 "lcd_d8_pf0",
252 "lcd_d9_pf1",
253 "lcd_d10_pf2",
254 "lcd_d11_pf3",
255 "lcd_d12_pf4",
256 "lcd_d13_pf5",
257 "lcd_d14_pf6",
258 "lcd_d15_pf7",
259 "lcd_d16_pm0",
260 "lcd_d17_pm1",
261 "lcd_d18_pm2",
262 "lcd_d19_pm3",
263 "lcd_d20_pm4",
264 "lcd_d21_pm5",
265 "lcd_d22_pm6",
266 "lcd_d23_pm7",
267 "lcd_de_pj1",
268 "lcd_hsync_pj3",
269 "lcd_pclk_pb3",
270 "lcd_vsync_pj4";
271 nvidia,function = "displaya";
272 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
273 nvidia,tristate = <TEGRA_PIN_DISABLE>;
274 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
275 };
276
172 /* Apalis MMC1 */ 277 /* Apalis MMC1 */
173 sdmmc3_clk_pa6 { 278 sdmmc3-clk-pa6 {
174 nvidia,pins = "sdmmc3_clk_pa6", 279 nvidia,pins = "sdmmc3_clk_pa6";
175 "sdmmc3_cmd_pa7";
176 nvidia,function = "sdmmc3"; 280 nvidia,function = "sdmmc3";
177 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 281 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
178 nvidia,tristate = <TEGRA_PIN_DISABLE>; 282 nvidia,tristate = <TEGRA_PIN_DISABLE>;
179 }; 283 };
180 sdmmc3_dat0_pb7 { 284 sdmmc3-dat0-pb7 {
181 nvidia,pins = "sdmmc3_dat0_pb7", 285 nvidia,pins = "sdmmc3_cmd_pa7",
286 "sdmmc3_dat0_pb7",
182 "sdmmc3_dat1_pb6", 287 "sdmmc3_dat1_pb6",
183 "sdmmc3_dat2_pb5", 288 "sdmmc3_dat2_pb5",
184 "sdmmc3_dat3_pb4", 289 "sdmmc3_dat3_pb4",
@@ -194,10 +299,81 @@
194 pv3 { 299 pv3 {
195 nvidia,pins = "pv3"; 300 nvidia,pins = "pv3";
196 nvidia,function = "rsvd2"; 301 nvidia,function = "rsvd2";
302 nvidia,pull = <TEGRA_PIN_PULL_UP>;
303 nvidia,tristate = <TEGRA_PIN_DISABLE>;
304 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
305 };
306
307 /* Apalis Parallel Camera */
308 cam-mclk-pcc0 {
309 nvidia,pins = "cam_mclk_pcc0";
310 nvidia,function = "vi_alt3";
311 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
312 nvidia,tristate = <TEGRA_PIN_DISABLE>;
313 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
314 };
315 vi-vsync-pd6 {
316 nvidia,pins = "vi_d0_pt4",
317 "vi_d1_pd5",
318 "vi_d2_pl0",
319 "vi_d3_pl1",
320 "vi_d4_pl2",
321 "vi_d5_pl3",
322 "vi_d6_pl4",
323 "vi_d7_pl5",
324 "vi_d8_pl6",
325 "vi_d9_pl7",
326 "vi_d10_pt2",
327 "vi_d11_pt3",
328 "vi_hsync_pd7",
329 "vi_pclk_pt0",
330 "vi_vsync_pd6";
331 nvidia,function = "vi";
197 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 332 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
198 nvidia,tristate = <TEGRA_PIN_DISABLE>; 333 nvidia,tristate = <TEGRA_PIN_DISABLE>;
199 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 334 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
200 }; 335 };
336 /* Multiplexed and therefore disabled */
337 kb-col2-pq2 {
338 nvidia,pins = "kb_col2_pq2",
339 "kb_col3_pq3",
340 "kb_col4_pq4",
341 "kb_row4_pr4";
342 nvidia,function = "rsvd4";
343 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
344 nvidia,tristate = <TEGRA_PIN_ENABLE>;
345 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
346 };
347 kb-row0-pr0 {
348 nvidia,pins = "kb_row0_pr0",
349 "kb_row1_pr1",
350 "kb_row2_pr2",
351 "kb_row3_pr3";
352 nvidia,function = "rsvd3";
353 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
354 nvidia,tristate = <TEGRA_PIN_ENABLE>;
355 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
356 };
357 kb-row5-pr5 {
358 nvidia,pins = "kb_row5_pr5",
359 "kb_row6_pr6",
360 "kb_row7_pr7";
361 nvidia,function = "kbc";
362 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
363 nvidia,tristate = <TEGRA_PIN_ENABLE>;
364 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
365 };
366 /*
367 * VI level-shifter direction
368 * (pull-down => default direction input)
369 */
370 vi-mclk-pt1 {
371 nvidia,pins = "vi_mclk_pt1";
372 nvidia,function = "vi_alt3";
373 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
374 nvidia,tristate = <TEGRA_PIN_ENABLE>;
375 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
376 };
201 377
202 /* Apalis PWM1 */ 378 /* Apalis PWM1 */
203 pu6 { 379 pu6 {
@@ -232,21 +408,30 @@
232 }; 408 };
233 409
234 /* Apalis RESET_MOCI# */ 410 /* Apalis RESET_MOCI# */
235 gmi_rst_n_pi4 { 411 gmi-rst-n-pi4 {
236 nvidia,pins = "gmi_rst_n_pi4"; 412 nvidia,pins = "gmi_rst_n_pi4";
237 nvidia,function = "gmi"; 413 nvidia,function = "gmi";
238 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 414 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
239 nvidia,tristate = <TEGRA_PIN_DISABLE>; 415 nvidia,tristate = <TEGRA_PIN_DISABLE>;
240 }; 416 };
241 417
418 /* Apalis SATA1_ACT# */
419 pex-l0-prsnt-n-pdd0 {
420 nvidia,pins = "pex_l0_prsnt_n_pdd0";
421 nvidia,function = "rsvd3";
422 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
423 nvidia,tristate = <TEGRA_PIN_DISABLE>;
424 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
425 };
426
242 /* Apalis SD1 */ 427 /* Apalis SD1 */
243 sdmmc1_clk_pz0 { 428 sdmmc1-clk-pz0 {
244 nvidia,pins = "sdmmc1_clk_pz0"; 429 nvidia,pins = "sdmmc1_clk_pz0";
245 nvidia,function = "sdmmc1"; 430 nvidia,function = "sdmmc1";
246 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 431 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
247 nvidia,tristate = <TEGRA_PIN_DISABLE>; 432 nvidia,tristate = <TEGRA_PIN_DISABLE>;
248 }; 433 };
249 sdmmc1_cmd_pz1 { 434 sdmmc1-cmd-pz1 {
250 nvidia,pins = "sdmmc1_cmd_pz1", 435 nvidia,pins = "sdmmc1_cmd_pz1",
251 "sdmmc1_dat0_py7", 436 "sdmmc1_dat0_py7",
252 "sdmmc1_dat1_py6", 437 "sdmmc1_dat1_py6",
@@ -257,16 +442,26 @@
257 nvidia,tristate = <TEGRA_PIN_DISABLE>; 442 nvidia,tristate = <TEGRA_PIN_DISABLE>;
258 }; 443 };
259 /* Apalis SD1_CD# */ 444 /* Apalis SD1_CD# */
260 clk2_req_pcc5 { 445 clk2-req-pcc5 {
261 nvidia,pins = "clk2_req_pcc5"; 446 nvidia,pins = "clk2_req_pcc5";
262 nvidia,function = "rsvd2"; 447 nvidia,function = "rsvd2";
448 nvidia,pull = <TEGRA_PIN_PULL_UP>;
449 nvidia,tristate = <TEGRA_PIN_DISABLE>;
450 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
451 };
452
453 /* Apalis SPDIF1 */
454 spdif-out-pk5 {
455 nvidia,pins = "spdif_out_pk5",
456 "spdif_in_pk6";
457 nvidia,function = "spdif";
263 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 458 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
264 nvidia,tristate = <TEGRA_PIN_DISABLE>; 459 nvidia,tristate = <TEGRA_PIN_DISABLE>;
265 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 460 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
266 }; 461 };
267 462
268 /* Apalis SPI1 */ 463 /* Apalis SPI1 */
269 spi1_sck_px5 { 464 spi1-sck-px5 {
270 nvidia,pins = "spi1_sck_px5", 465 nvidia,pins = "spi1_sck_px5",
271 "spi1_mosi_px4", 466 "spi1_mosi_px4",
272 "spi1_miso_px7", 467 "spi1_miso_px7",
@@ -277,7 +472,7 @@
277 }; 472 };
278 473
279 /* Apalis SPI2 */ 474 /* Apalis SPI2 */
280 lcd_sck_pz4 { 475 lcd-sck-pz4 {
281 nvidia,pins = "lcd_sck_pz4", 476 nvidia,pins = "lcd_sck_pz4",
282 "lcd_sdout_pn5", 477 "lcd_sdout_pn5",
283 "lcd_sdin_pz2", 478 "lcd_sdin_pz2",
@@ -287,8 +482,30 @@
287 nvidia,tristate = <TEGRA_PIN_DISABLE>; 482 nvidia,tristate = <TEGRA_PIN_DISABLE>;
288 }; 483 };
289 484
485 /*
486 * Apalis TS (Low-speed type specific)
487 * pins may be used as GPIOs
488 */
489 kb-col5-pq5 {
490 nvidia,pins = "kb_col5_pq5";
491 nvidia,function = "rsvd4";
492 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
493 nvidia,tristate = <TEGRA_PIN_DISABLE>;
494 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
495 };
496 kb-col6-pq6 {
497 nvidia,pins = "kb_col6_pq6",
498 "kb_col7_pq7",
499 "kb_row8_ps0",
500 "kb_row9_ps1";
501 nvidia,function = "kbc";
502 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
503 nvidia,tristate = <TEGRA_PIN_DISABLE>;
504 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
505 };
506
290 /* Apalis UART1 */ 507 /* Apalis UART1 */
291 ulpi_data0 { 508 ulpi-data0 {
292 nvidia,pins = "ulpi_data0_po1", 509 nvidia,pins = "ulpi_data0_po1",
293 "ulpi_data1_po2", 510 "ulpi_data1_po2",
294 "ulpi_data2_po3", 511 "ulpi_data2_po3",
@@ -303,7 +520,7 @@
303 }; 520 };
304 521
305 /* Apalis UART2 */ 522 /* Apalis UART2 */
306 ulpi_clk_py0 { 523 ulpi-clk-py0 {
307 nvidia,pins = "ulpi_clk_py0", 524 nvidia,pins = "ulpi_clk_py0",
308 "ulpi_dir_py1", 525 "ulpi_dir_py1",
309 "ulpi_nxt_py2", 526 "ulpi_nxt_py2",
@@ -314,7 +531,7 @@
314 }; 531 };
315 532
316 /* Apalis UART3 */ 533 /* Apalis UART3 */
317 uart2_rxd_pc3 { 534 uart2-rxd-pc3 {
318 nvidia,pins = "uart2_rxd_pc3", 535 nvidia,pins = "uart2_rxd_pc3",
319 "uart2_txd_pc2"; 536 "uart2_txd_pc2";
320 nvidia,function = "uartb"; 537 nvidia,function = "uartb";
@@ -323,7 +540,7 @@
323 }; 540 };
324 541
325 /* Apalis UART4 */ 542 /* Apalis UART4 */
326 uart3_rxd_pw7 { 543 uart3-rxd-pw7 {
327 nvidia,pins = "uart3_rxd_pw7", 544 nvidia,pins = "uart3_rxd_pw7",
328 "uart3_txd_pw6"; 545 "uart3_txd_pw6";
329 nvidia,function = "uartc"; 546 nvidia,function = "uartc";
@@ -331,8 +548,26 @@
331 nvidia,tristate = <TEGRA_PIN_DISABLE>; 548 nvidia,tristate = <TEGRA_PIN_DISABLE>;
332 }; 549 };
333 550
551 /* Apalis USBH_EN */
552 pex-l0-rst-n-pdd1 {
553 nvidia,pins = "pex_l0_rst_n_pdd1";
554 nvidia,function = "rsvd3";
555 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
556 nvidia,tristate = <TEGRA_PIN_DISABLE>;
557 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
558 };
559
560 /* Apalis USBH_OC# */
561 pex-l0-clkreq-n-pdd2 {
562 nvidia,pins = "pex_l0_clkreq_n_pdd2";
563 nvidia,function = "rsvd3";
564 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
565 nvidia,tristate = <TEGRA_PIN_DISABLE>;
566 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
567 };
568
334 /* Apalis USBO1_EN */ 569 /* Apalis USBO1_EN */
335 gen2_i2c_scl_pt5 { 570 gen2-i2c-scl-pt5 {
336 nvidia,pins = "gen2_i2c_scl_pt5"; 571 nvidia,pins = "gen2_i2c_scl_pt5";
337 nvidia,function = "rsvd4"; 572 nvidia,function = "rsvd4";
338 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 573 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
@@ -341,7 +576,7 @@
341 }; 576 };
342 577
343 /* Apalis USBO1_OC# */ 578 /* Apalis USBO1_OC# */
344 gen2_i2c_sda_pt6 { 579 gen2-i2c-sda-pt6 {
345 nvidia,pins = "gen2_i2c_sda_pt6"; 580 nvidia,pins = "gen2_i2c_sda_pt6";
346 nvidia,function = "rsvd4"; 581 nvidia,function = "rsvd4";
347 nvidia,open-drain = <TEGRA_PIN_DISABLE>; 582 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
@@ -350,6 +585,16 @@
350 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 585 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
351 }; 586 };
352 587
588 /* Apalis VGA1 not supported and therefore disabled */
589 crt-hsync-pv6 {
590 nvidia,pins = "crt_hsync_pv6",
591 "crt_vsync_pv7";
592 nvidia,function = "rsvd2";
593 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
594 nvidia,tristate = <TEGRA_PIN_ENABLE>;
595 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
596 };
597
353 /* Apalis WAKE1_MICO */ 598 /* Apalis WAKE1_MICO */
354 pv1 { 599 pv1 {
355 nvidia,pins = "pv1"; 600 nvidia,pins = "pv1";
@@ -360,14 +605,16 @@
360 }; 605 };
361 606
362 /* eMMC (On-module) */ 607 /* eMMC (On-module) */
363 sdmmc4_clk_pcc4 { 608 sdmmc4-clk-pcc4 {
364 nvidia,pins = "sdmmc4_clk_pcc4", 609 nvidia,pins = "sdmmc4_clk_pcc4",
610 "sdmmc4_cmd_pt7",
365 "sdmmc4_rst_n_pcc3"; 611 "sdmmc4_rst_n_pcc3";
366 nvidia,function = "sdmmc4"; 612 nvidia,function = "sdmmc4";
367 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 613 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
368 nvidia,tristate = <TEGRA_PIN_DISABLE>; 614 nvidia,tristate = <TEGRA_PIN_DISABLE>;
615 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
369 }; 616 };
370 sdmmc4_dat0_paa0 { 617 sdmmc4-dat0-paa0 {
371 nvidia,pins = "sdmmc4_dat0_paa0", 618 nvidia,pins = "sdmmc4_dat0_paa0",
372 "sdmmc4_dat1_paa1", 619 "sdmmc4_dat1_paa1",
373 "sdmmc4_dat2_paa2", 620 "sdmmc4_dat2_paa2",
@@ -379,6 +626,34 @@
379 nvidia,function = "sdmmc4"; 626 nvidia,function = "sdmmc4";
380 nvidia,pull = <TEGRA_PIN_PULL_UP>; 627 nvidia,pull = <TEGRA_PIN_PULL_UP>;
381 nvidia,tristate = <TEGRA_PIN_DISABLE>; 628 nvidia,tristate = <TEGRA_PIN_DISABLE>;
629 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
630 };
631
632 /* LAN i210/i211 DEV_OFF_N, PE_RST_N (On-module) */
633 pex-l2-prsnt-n-pdd7 {
634 nvidia,pins = "pex_l2_prsnt_n_pdd7",
635 "pex_l2_rst_n_pcc6";
636 nvidia,function = "pcie";
637 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
638 nvidia,tristate = <TEGRA_PIN_DISABLE>;
639 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
640 };
641 /* LAN i210/i211 PE_WAKE_N, SDP3 (On-module) */
642 pex-wake-n-pdd3 {
643 nvidia,pins = "pex_wake_n_pdd3",
644 "pex_l2_clkreq_n_pcc7";
645 nvidia,function = "pcie";
646 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
647 nvidia,tristate = <TEGRA_PIN_DISABLE>;
648 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
649 };
650 /* LAN i210/i211 SMB_ALERT_N (On-module) */
651 sys-clk-req-pz5 {
652 nvidia,pins = "sys_clk_req_pz5";
653 nvidia,function = "rsvd2";
654 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
655 nvidia,tristate = <TEGRA_PIN_DISABLE>;
656 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
382 }; 657 };
383 658
384 /* LVDS Transceiver Configuration */ 659 /* LVDS Transceiver Configuration */
@@ -391,7 +666,6 @@
391 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 666 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
392 nvidia,tristate = <TEGRA_PIN_DISABLE>; 667 nvidia,tristate = <TEGRA_PIN_DISABLE>;
393 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 668 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
394 nvidia,lock = <TEGRA_PIN_DISABLE>;
395 }; 669 };
396 pbb3 { 670 pbb3 {
397 nvidia,pins = "pbb3", 671 nvidia,pins = "pbb3",
@@ -402,18 +676,121 @@
402 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 676 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
403 nvidia,tristate = <TEGRA_PIN_DISABLE>; 677 nvidia,tristate = <TEGRA_PIN_DISABLE>;
404 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 678 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
405 nvidia,lock = <TEGRA_PIN_DISABLE>; 679 };
680
681 /* Not connected and therefore disabled */
682 clk-32k-out-pa0 {
683 nvidia,pins = "clk3_out_pee0",
684 "clk3_req_pee1",
685 "clk_32k_out_pa0",
686 "dap4_din_pp5",
687 "dap4_dout_pp6",
688 "dap4_fs_pp4",
689 "dap4_sclk_pp7";
690 nvidia,function = "rsvd2";
691 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
692 nvidia,tristate = <TEGRA_PIN_ENABLE>;
693 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
694 };
695 dap2-fs-pa2 {
696 nvidia,pins = "dap2_fs_pa2",
697 "dap2_sclk_pa3",
698 "dap2_din_pa4",
699 "dap2_dout_pa5",
700 "lcd_dc0_pn6",
701 "lcd_m1_pw1",
702 "lcd_pwr1_pc1",
703 "pex_l1_clkreq_n_pdd6",
704 "pex_l1_prsnt_n_pdd4",
705 "pex_l1_rst_n_pdd5";
706 nvidia,function = "rsvd3";
707 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
708 nvidia,tristate = <TEGRA_PIN_ENABLE>;
709 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
710 };
711 gmi-ad0-pg0 {
712 nvidia,pins = "gmi_ad0_pg0",
713 "gmi_ad2_pg2",
714 "gmi_ad3_pg3",
715 "gmi_ad4_pg4",
716 "gmi_ad5_pg5",
717 "gmi_ad6_pg6",
718 "gmi_ad7_pg7",
719 "gmi_ad8_ph0",
720 "gmi_ad9_ph1",
721 "gmi_ad10_ph2",
722 "gmi_ad11_ph3",
723 "gmi_ad12_ph4",
724 "gmi_ad13_ph5",
725 "gmi_ad14_ph6",
726 "gmi_ad15_ph7",
727 "gmi_adv_n_pk0",
728 "gmi_clk_pk1",
729 "gmi_cs4_n_pk2",
730 "gmi_cs2_n_pk3",
731 "gmi_dqs_pi2",
732 "gmi_iordy_pi5",
733 "gmi_oe_n_pi1",
734 "gmi_wait_pi7",
735 "gmi_wr_n_pi0",
736 "lcd_cs1_n_pw0",
737 "pu0",
738 "pu1",
739 "pu2";
740 nvidia,function = "rsvd4";
741 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
742 nvidia,tristate = <TEGRA_PIN_ENABLE>;
743 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
744 };
745 gmi-cs0-n-pj0 {
746 nvidia,pins = "gmi_cs0_n_pj0",
747 "gmi_cs1_n_pj2",
748 "gmi_cs3_n_pk4";
749 nvidia,function = "rsvd1";
750 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
751 nvidia,tristate = <TEGRA_PIN_ENABLE>;
752 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
753 };
754 gmi-cs6-n-pi3 {
755 nvidia,pins = "gmi_cs6_n_pi3";
756 nvidia,function = "sata";
757 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
758 nvidia,tristate = <TEGRA_PIN_ENABLE>;
759 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
760 };
761 gmi-cs7-n-pi6 {
762 nvidia,pins = "gmi_cs7_n_pi6";
763 nvidia,function = "gmi_alt";
764 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
765 nvidia,tristate = <TEGRA_PIN_ENABLE>;
766 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
767 };
768 lcd-pwr0-pb2 {
769 nvidia,pins = "lcd_pwr0_pb2",
770 "lcd_pwr2_pc6",
771 "lcd_wr_n_pz3";
772 nvidia,function = "hdcp";
773 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
774 nvidia,tristate = <TEGRA_PIN_ENABLE>;
775 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
776 };
777 uart2-cts-n-pj5 {
778 nvidia,pins = "uart2_cts_n_pj5",
779 "uart2_rts_n_pj6";
780 nvidia,function = "gmi";
781 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
782 nvidia,tristate = <TEGRA_PIN_ENABLE>;
783 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
406 }; 784 };
407 785
408 /* Power I2C (On-module) */ 786 /* Power I2C (On-module) */
409 pwr_i2c_scl_pz6 { 787 pwr-i2c-scl-pz6 {
410 nvidia,pins = "pwr_i2c_scl_pz6", 788 nvidia,pins = "pwr_i2c_scl_pz6",
411 "pwr_i2c_sda_pz7"; 789 "pwr_i2c_sda_pz7";
412 nvidia,function = "i2cpwr"; 790 nvidia,function = "i2cpwr";
413 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 791 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
414 nvidia,tristate = <TEGRA_PIN_DISABLE>; 792 nvidia,tristate = <TEGRA_PIN_DISABLE>;
415 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 793 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
416 nvidia,lock = <TEGRA_PIN_DISABLE>;
417 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 794 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
418 }; 795 };
419 796
@@ -422,15 +799,15 @@
422 * temperature sensor therefore requires disabling for 799 * temperature sensor therefore requires disabling for
423 * now 800 * now
424 */ 801 */
425 lcd_dc1_pd2 { 802 lcd-dc1-pd2 {
426 nvidia,pins = "lcd_dc1_pd2"; 803 nvidia,pins = "lcd_dc1_pd2";
427 nvidia,function = "rsvd3"; 804 nvidia,function = "rsvd3";
428 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 805 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
429 nvidia,tristate = <TEGRA_PIN_DISABLE>; 806 nvidia,tristate = <TEGRA_PIN_ENABLE>;
430 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 807 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
431 }; 808 };
432 809
433 /* TOUCH_PEN_INT# */ 810 /* TOUCH_PEN_INT# (On-module) */
434 pv0 { 811 pv0 {
435 nvidia,pins = "pv0"; 812 nvidia,pins = "pv0";
436 nvidia,function = "rsvd1"; 813 nvidia,function = "rsvd1";
@@ -441,7 +818,19 @@
441 }; 818 };
442 }; 819 };
443 820
444 hdmiddc: i2c@7000c700 { 821 serial@70006040 {
822 compatible = "nvidia,tegra30-hsuart";
823 };
824
825 serial@70006200 {
826 compatible = "nvidia,tegra30-hsuart";
827 };
828
829 serial@70006300 {
830 compatible = "nvidia,tegra30-hsuart";
831 };
832
833 hdmi_ddc: i2c@7000c700 {
445 clock-frequency = <10000>; 834 clock-frequency = <10000>;
446 }; 835 };
447 836
@@ -457,12 +846,13 @@
457 sgtl5000: codec@a { 846 sgtl5000: codec@a {
458 compatible = "fsl,sgtl5000"; 847 compatible = "fsl,sgtl5000";
459 reg = <0x0a>; 848 reg = <0x0a>;
460 VDDA-supply = <&sys_3v3_reg>; 849 VDDA-supply = <&reg_module_3v3_audio>;
461 VDDIO-supply = <&sys_3v3_reg>; 850 VDDD-supply = <&reg_1v8_vio>;
851 VDDIO-supply = <&reg_module_3v3>;
462 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>; 852 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
463 }; 853 };
464 854
465 pmic: tps65911@2d { 855 pmic: pmic@2d {
466 compatible = "ti,tps65911"; 856 compatible = "ti,tps65911";
467 reg = <0x2d>; 857 reg = <0x2d>;
468 858
@@ -475,43 +865,38 @@
475 #gpio-cells = <2>; 865 #gpio-cells = <2>;
476 gpio-controller; 866 gpio-controller;
477 867
478 vcc1-supply = <&sys_3v3_reg>; 868 vcc1-supply = <&reg_module_3v3>;
479 vcc2-supply = <&sys_3v3_reg>; 869 vcc2-supply = <&reg_module_3v3>;
480 vcc3-supply = <&vio_reg>; 870 vcc3-supply = <&reg_1v8_vio>;
481 vcc4-supply = <&sys_3v3_reg>; 871 vcc4-supply = <&reg_module_3v3>;
482 vcc5-supply = <&sys_3v3_reg>; 872 vcc5-supply = <&reg_module_3v3>;
483 vcc6-supply = <&vio_reg>; 873 vcc6-supply = <&reg_1v8_vio>;
484 vcc7-supply = <&charge_pump_5v0_reg>; 874 vcc7-supply = <&reg_5v0_charge_pump>;
485 vccio-supply = <&sys_3v3_reg>; 875 vccio-supply = <&reg_module_3v3>;
486 876
487 regulators { 877 regulators {
488 /* SW1: +V1.35_VDDIO_DDR */
489 vdd1_reg: vdd1 { 878 vdd1_reg: vdd1 {
490 regulator-name = "vddio_ddr_1v35"; 879 regulator-name = "+V1.35_VDDIO_DDR";
491 regulator-min-microvolt = <1350000>; 880 regulator-min-microvolt = <1350000>;
492 regulator-max-microvolt = <1350000>; 881 regulator-max-microvolt = <1350000>;
493 regulator-always-on; 882 regulator-always-on;
494 }; 883 };
495 884
496 /* SW2: +V1.05 */
497 vdd2_reg: vdd2 { 885 vdd2_reg: vdd2 {
498 regulator-name = 886 regulator-name = "+V1.05";
499 "vdd_pexa,vdd_pexb,vdd_sata";
500 regulator-min-microvolt = <1050000>; 887 regulator-min-microvolt = <1050000>;
501 regulator-max-microvolt = <1050000>; 888 regulator-max-microvolt = <1050000>;
502 }; 889 };
503 890
504 /* SW CTRL: +V1.0_VDD_CPU */
505 vddctrl_reg: vddctrl { 891 vddctrl_reg: vddctrl {
506 regulator-name = "vdd_cpu,vdd_sys"; 892 regulator-name = "+V1.0_VDD_CPU";
507 regulator-min-microvolt = <1150000>; 893 regulator-min-microvolt = <1150000>;
508 regulator-max-microvolt = <1150000>; 894 regulator-max-microvolt = <1150000>;
509 regulator-always-on; 895 regulator-always-on;
510 }; 896 };
511 897
512 /* SWIO: +V1.8 */ 898 reg_1v8_vio: vio {
513 vio_reg: vio { 899 regulator-name = "+V1.8";
514 regulator-name = "vdd_1v8_gen";
515 regulator-min-microvolt = <1800000>; 900 regulator-min-microvolt = <1800000>;
516 regulator-max-microvolt = <1800000>; 901 regulator-max-microvolt = <1800000>;
517 regulator-always-on; 902 regulator-always-on;
@@ -521,27 +906,24 @@
521 906
522 /* 907 /*
523 * EN_+V3.3 switching via FET: 908 * EN_+V3.3 switching via FET:
524 * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN 909 * +V3.3_AUDIO_AVDD_S, +V3.3
525 * see also v3_3 fixed supply 910 * see also +V3.3 fixed supply
526 */ 911 */
527 ldo2_reg: ldo2 { 912 ldo2_reg: ldo2 {
528 regulator-name = "en_3v3"; 913 regulator-name = "EN_+V3.3";
529 regulator-min-microvolt = <3300000>; 914 regulator-min-microvolt = <3300000>;
530 regulator-max-microvolt = <3300000>; 915 regulator-max-microvolt = <3300000>;
531 regulator-always-on; 916 regulator-always-on;
532 }; 917 };
533 918
534 /* +V1.2_CSI */
535 ldo3_reg: ldo3 { 919 ldo3_reg: ldo3 {
536 regulator-name = 920 regulator-name = "+V1.2_CSI";
537 "avdd_dsi_csi,pwrdet_mipi";
538 regulator-min-microvolt = <1200000>; 921 regulator-min-microvolt = <1200000>;
539 regulator-max-microvolt = <1200000>; 922 regulator-max-microvolt = <1200000>;
540 }; 923 };
541 924
542 /* +V1.2_VDD_RTC */
543 ldo4_reg: ldo4 { 925 ldo4_reg: ldo4 {
544 regulator-name = "vdd_rtc"; 926 regulator-name = "+V1.2_VDD_RTC";
545 regulator-min-microvolt = <1200000>; 927 regulator-min-microvolt = <1200000>;
546 regulator-max-microvolt = <1200000>; 928 regulator-max-microvolt = <1200000>;
547 regulator-always-on; 929 regulator-always-on;
@@ -549,10 +931,10 @@
549 931
550 /* 932 /*
551 * +V2.8_AVDD_VDAC: 933 * +V2.8_AVDD_VDAC:
552 * only required for analog RGB 934 * only required for (unsupported) analog RGB
553 */ 935 */
554 ldo5_reg: ldo5 { 936 ldo5_reg: ldo5 {
555 regulator-name = "avdd_vdac"; 937 regulator-name = "+V2.8_AVDD_VDAC";
556 regulator-min-microvolt = <2800000>; 938 regulator-min-microvolt = <2800000>;
557 regulator-max-microvolt = <2800000>; 939 regulator-max-microvolt = <2800000>;
558 regulator-always-on; 940 regulator-always-on;
@@ -564,22 +946,20 @@
564 * granularity 946 * granularity
565 */ 947 */
566 ldo6_reg: ldo6 { 948 ldo6_reg: ldo6 {
567 regulator-name = "avdd_plle"; 949 regulator-name = "+V1.05_AVDD_PLLE";
568 regulator-min-microvolt = <1100000>; 950 regulator-min-microvolt = <1100000>;
569 regulator-max-microvolt = <1100000>; 951 regulator-max-microvolt = <1100000>;
570 }; 952 };
571 953
572 /* +V1.2_AVDD_PLL */
573 ldo7_reg: ldo7 { 954 ldo7_reg: ldo7 {
574 regulator-name = "avdd_pll"; 955 regulator-name = "+V1.2_AVDD_PLL";
575 regulator-min-microvolt = <1200000>; 956 regulator-min-microvolt = <1200000>;
576 regulator-max-microvolt = <1200000>; 957 regulator-max-microvolt = <1200000>;
577 regulator-always-on; 958 regulator-always-on;
578 }; 959 };
579 960
580 /* +V1.0_VDD_DDR_HS */
581 ldo8_reg: ldo8 { 961 ldo8_reg: ldo8 {
582 regulator-name = "vdd_ddr_hs"; 962 regulator-name = "+V1.0_VDD_DDR_HS";
583 regulator-min-microvolt = <1000000>; 963 regulator-min-microvolt = <1000000>;
584 regulator-max-microvolt = <1000000>; 964 regulator-max-microvolt = <1000000>;
585 regulator-always-on; 965 regulator-always-on;
@@ -588,11 +968,10 @@
588 }; 968 };
589 969
590 /* STMPE811 touch screen controller */ 970 /* STMPE811 touch screen controller */
591 stmpe811@41 { 971 touchscreen@41 {
592 compatible = "st,stmpe811"; 972 compatible = "st,stmpe811";
593 reg = <0x41>; 973 reg = <0x41>;
594 interrupts = <TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>; 974 irq-gpio = <&gpio TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>;
595 interrupt-parent = <&gpio>;
596 interrupt-controller; 975 interrupt-controller;
597 id = <0>; 976 id = <0>;
598 blocks = <0x5>; 977 blocks = <0x5>;
@@ -626,7 +1005,7 @@
626 1005
627 /* 1006 /*
628 * LM95245 temperature sensor 1007 * LM95245 temperature sensor
629 * Note: OVERT_N directly connected to PMIC PWRDN 1008 * Note: OVERT1# directly connected to TPS65911 PMIC PWRDN
630 */ 1009 */
631 temp-sensor@4c { 1010 temp-sensor@4c {
632 compatible = "national,lm95245"; 1011 compatible = "national,lm95245";
@@ -634,7 +1013,7 @@
634 }; 1013 };
635 1014
636 /* SW: +V1.2_VDD_CORE */ 1015 /* SW: +V1.2_VDD_CORE */
637 tps62362@60 { 1016 regulator@60 {
638 compatible = "ti,tps62362"; 1017 compatible = "ti,tps62362";
639 reg = <0x60>; 1018 reg = <0x60>;
640 1019
@@ -659,7 +1038,7 @@
659 reg = <1>; 1038 reg = <1>;
660 clocks = <&clk16m>; 1039 clocks = <&clk16m>;
661 interrupt-parent = <&gpio>; 1040 interrupt-parent = <&gpio>;
662 interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_RISING>; 1041 interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_EDGE_FALLING>;
663 spi-max-frequency = <10000000>; 1042 spi-max-frequency = <10000000>;
664 }; 1043 };
665 }; 1044 };
@@ -674,7 +1053,7 @@
674 reg = <0>; 1053 reg = <0>;
675 clocks = <&clk16m>; 1054 clocks = <&clk16m>;
676 interrupt-parent = <&gpio>; 1055 interrupt-parent = <&gpio>;
677 interrupts = <TEGRA_GPIO(W, 2) IRQ_TYPE_EDGE_RISING>; 1056 interrupts = <TEGRA_GPIO(W, 2) IRQ_TYPE_EDGE_FALLING>;
678 spi-max-frequency = <10000000>; 1057 spi-max-frequency = <10000000>;
679 }; 1058 };
680 }; 1059 };
@@ -688,6 +1067,18 @@
688 nvidia,core-pwr-off-time = <0>; 1067 nvidia,core-pwr-off-time = <0>;
689 nvidia,core-power-req-active-high; 1068 nvidia,core-power-req-active-high;
690 nvidia,sys-clock-req-active-high; 1069 nvidia,sys-clock-req-active-high;
1070
1071 /* Set DEV_OFF bit in DCDC control register of TPS65911 PMIC */
1072 i2c-thermtrip {
1073 nvidia,i2c-controller-id = <4>;
1074 nvidia,bus-addr = <0x2d>;
1075 nvidia,reg-addr = <0x3f>;
1076 nvidia,reg-data = <0x1>;
1077 };
1078 };
1079
1080 hda@70030000 {
1081 status = "okay";
691 }; 1082 };
692 1083
693 ahub@70080000 { 1084 ahub@70080000 {
@@ -701,73 +1092,65 @@
701 status = "okay"; 1092 status = "okay";
702 bus-width = <8>; 1093 bus-width = <8>;
703 non-removable; 1094 non-removable;
1095 vmmc-supply = <&reg_module_3v3>; /* VCC */
1096 vqmmc-supply = <&reg_1v8_vio>; /* VCCQ */
1097 mmc-ddr-1_8v;
704 }; 1098 };
705 1099
706 clocks { 1100 clk32k_in: xtal1 {
707 compatible = "simple-bus"; 1101 compatible = "fixed-clock";
708 #address-cells = <1>; 1102 #clock-cells = <0>;
709 #size-cells = <0>; 1103 clock-frequency = <32768>;
1104 };
710 1105
711 clk32k_in: clk@0 { 1106 clk16m: osc4 {
712 compatible = "fixed-clock"; 1107 compatible = "fixed-clock";
713 reg = <0>; 1108 #clock-cells = <0>;
714 #clock-cells = <0>; 1109 clock-frequency = <16000000>;
715 clock-frequency = <32768>; 1110 };
716 };
717 1111
718 clk16m: clk@1 { 1112 reg_1v8_avdd_hdmi_pll: regulator-1v8-avdd-hdmi-pll {
719 compatible = "fixed-clock"; 1113 compatible = "regulator-fixed";
720 reg = <1>; 1114 regulator-name = "+V1.8_AVDD_HDMI_PLL";
721 #clock-cells = <0>; 1115 regulator-min-microvolt = <1800000>;
722 clock-frequency = <16000000>; 1116 regulator-max-microvolt = <1800000>;
723 clock-output-names = "clk16m"; 1117 enable-active-high;
724 }; 1118 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
1119 vin-supply = <&reg_1v8_vio>;
725 }; 1120 };
726 1121
727 regulators { 1122 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
728 compatible = "simple-bus"; 1123 compatible = "regulator-fixed";
729 #address-cells = <1>; 1124 regulator-name = "+V3.3_AVDD_HDMI";
730 #size-cells = <0>; 1125 regulator-min-microvolt = <3300000>;
731 1126 regulator-max-microvolt = <3300000>;
732 avdd_hdmi_pll_1v8_reg: regulator@100 { 1127 enable-active-high;
733 compatible = "regulator-fixed"; 1128 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
734 reg = <100>; 1129 vin-supply = <&reg_module_3v3>;
735 regulator-name = "+V1.8_AVDD_HDMI_PLL"; 1130 };
736 regulator-min-microvolt = <1800000>;
737 regulator-max-microvolt = <1800000>;
738 enable-active-high;
739 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
740 vin-supply = <&vio_reg>;
741 };
742 1131
743 sys_3v3_reg: regulator@101 { 1132 reg_5v0_charge_pump: regulator-5v0-charge-pump {
744 compatible = "regulator-fixed"; 1133 compatible = "regulator-fixed";
745 reg = <101>; 1134 regulator-name = "+V5.0";
746 regulator-name = "3v3"; 1135 regulator-min-microvolt = <5000000>;
747 regulator-min-microvolt = <3300000>; 1136 regulator-max-microvolt = <5000000>;
748 regulator-max-microvolt = <3300000>; 1137 regulator-always-on;
749 regulator-always-on; 1138 };
750 };
751 1139
752 avdd_hdmi_3v3_reg: regulator@102 { 1140 reg_module_3v3: regulator-module-3v3 {
753 compatible = "regulator-fixed"; 1141 compatible = "regulator-fixed";
754 reg = <102>; 1142 regulator-name = "+V3.3";
755 regulator-name = "+V3.3_AVDD_HDMI"; 1143 regulator-min-microvolt = <3300000>;
756 regulator-min-microvolt = <3300000>; 1144 regulator-max-microvolt = <3300000>;
757 regulator-max-microvolt = <3300000>; 1145 regulator-always-on;
758 enable-active-high; 1146 };
759 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
760 vin-supply = <&sys_3v3_reg>;
761 };
762 1147
763 charge_pump_5v0_reg: regulator@103 { 1148 reg_module_3v3_audio: regulator-module-3v3-audio {
764 compatible = "regulator-fixed"; 1149 compatible = "regulator-fixed";
765 reg = <103>; 1150 regulator-name = "+V3.3_AUDIO_AVDD_S";
766 regulator-name = "5v0"; 1151 regulator-min-microvolt = <3300000>;
767 regulator-min-microvolt = <5000000>; 1152 regulator-max-microvolt = <3300000>;
768 regulator-max-microvolt = <5000000>; 1153 regulator-always-on;
769 regulator-always-on;
770 };
771 }; 1154 };
772 1155
773 sound { 1156 sound {
diff --git a/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts b/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
index 16e1f387aa6d..5965150ecdd2 100644
--- a/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
+++ b/arch/arm/boot/dts/tegra30-colibri-eval-v3.dts
@@ -1,15 +1,17 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/; 2/dts-v1/;
3 3
4#include <dt-bindings/input/input.h>
4#include "tegra30-colibri.dtsi" 5#include "tegra30-colibri.dtsi"
5 6
6/ { 7/ {
7 model = "Toradex Colibri T30 on Colibri Evaluation Board"; 8 model = "Toradex Colibri T30 on Colibri Evaluation Board";
8 compatible = "toradex,colibri_t30-eval-v3", "toradex,colibri_t30", "nvidia,tegra30"; 9 compatible = "toradex,colibri_t30-eval-v3", "toradex,colibri_t30",
10 "nvidia,tegra30";
9 11
10 aliases { 12 aliases {
11 rtc0 = "/i2c@7000c000/rtc@68"; 13 rtc0 = "/i2c@7000c000/rtc@68";
12 rtc1 = "/i2c@7000d000/tps65911@2d"; 14 rtc1 = "/i2c@7000d000/pmic@2d";
13 rtc2 = "/rtc@7000e000"; 15 rtc2 = "/rtc@7000e000";
14 serial0 = &uarta; 16 serial0 = &uarta;
15 serial1 = &uartb; 17 serial1 = &uartb;
@@ -27,22 +29,25 @@
27 nvidia,panel = <&panel>; 29 nvidia,panel = <&panel>;
28 }; 30 };
29 }; 31 };
32
30 hdmi@54280000 { 33 hdmi@54280000 {
31 status = "okay"; 34 status = "okay";
35 hdmi-supply = <&reg_5v0>;
32 }; 36 };
33 }; 37 };
34 38
39 /* Colibri UART-A */
35 serial@70006000 { 40 serial@70006000 {
36 status = "okay"; 41 status = "okay";
37 }; 42 };
38 43
44 /* Colibri UART-C */
39 serial@70006040 { 45 serial@70006040 {
40 compatible = "nvidia,tegra30-hsuart";
41 status = "okay"; 46 status = "okay";
42 }; 47 };
43 48
49 /* Colibri UART-B */
44 serial@70006300 { 50 serial@70006300 {
45 compatible = "nvidia,tegra30-hsuart";
46 status = "okay"; 51 status = "okay";
47 }; 52 };
48 53
@@ -65,8 +70,12 @@
65 }; 70 };
66 }; 71 };
67 72
73 /* GEN2_I2C: unused */
74
75 /* CAM_I2C (I2C3): unused */
76
68 /* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */ 77 /* DDC_CLOCK/DATA on X3 pin 15/16 (e.g. display EDID) */
69 hdmiddc: i2c@7000c700 { 78 i2c@7000c700 {
70 status = "okay"; 79 status = "okay";
71 }; 80 };
72 81
@@ -74,18 +83,17 @@
74 spi@7000d400 { 83 spi@7000d400 {
75 status = "okay"; 84 status = "okay";
76 spi-max-frequency = <25000000>; 85 spi-max-frequency = <25000000>;
77 can0: can@0 { 86
87 can@0 {
78 compatible = "microchip,mcp2515"; 88 compatible = "microchip,mcp2515";
79 reg = <0>; 89 reg = <0>;
80 clocks = <&clk16m>; 90 clocks = <&clk16m>;
81 interrupt-parent = <&gpio>; 91 interrupt-parent = <&gpio>;
82 interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_EDGE_RISING>; 92 /* CAN_INT */
93 interrupts = <TEGRA_GPIO(S, 0) IRQ_TYPE_EDGE_FALLING>;
83 spi-max-frequency = <10000000>; 94 spi-max-frequency = <10000000>;
84 }; 95 vdd-supply = <&reg_3v3>;
85 spidev0: spi@1 { 96 xceiver-supply = <&reg_5v0>;
86 compatible = "spidev";
87 reg = <1>;
88 spi-max-frequency = <25000000>;
89 }; 97 };
90 }; 98 };
91 99
@@ -93,19 +101,19 @@
93 sdhci@78000200 { 101 sdhci@78000200 {
94 status = "okay"; 102 status = "okay";
95 bus-width = <4>; 103 bus-width = <4>;
96 cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; 104 cd-gpios = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>; /* MMCD */
97 no-1-8-v; 105 no-1-8-v;
98 }; 106 };
99 107
100 /* EHCI instance 0: USB1_DP/N -> USBC_P/N */ 108 /* EHCI instance 0: USB1_DP/N -> USBC_P/N */
101 usb@7d000000 { 109 usb@7d000000 {
102 status = "okay"; 110 status = "okay";
111 dr_mode = "otg";
103 }; 112 };
104 113
105 usb-phy@7d000000 { 114 usb-phy@7d000000 {
106 status = "okay"; 115 status = "okay";
107 dr_mode = "otg"; 116 vbus-supply = <&reg_usbc_vbus>;
108 vbus-supply = <&usbc_vbus_reg>;
109 }; 117 };
110 118
111 /* EHCI instance 2: USB3_DP/N -> USBH_P/N */ 119 /* EHCI instance 2: USB3_DP/N -> USBH_P/N */
@@ -115,28 +123,23 @@
115 123
116 usb-phy@7d008000 { 124 usb-phy@7d008000 {
117 status = "okay"; 125 status = "okay";
118 vbus-supply = <&usbh_vbus_reg>; 126 vbus-supply = <&reg_usbh_vbus>;
119 }; 127 };
120 128
121 backlight: backlight { 129 backlight: backlight {
122 compatible = "pwm-backlight"; 130 compatible = "pwm-backlight";
123
124 /* PWM<A> */
125 pwms = <&pwm 0 5000000>;
126 brightness-levels = <255 128 64 32 16 8 4 0>; 131 brightness-levels = <255 128 64 32 16 8 4 0>;
127 default-brightness-level = <6>; 132 default-brightness-level = <6>;
128 /* BL_ON */ 133 /* BL_ON */
129 enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>; 134 enable-gpios = <&gpio TEGRA_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
135 power-supply = <&reg_3v3>;
136 pwms = <&pwm 0 5000000>; /* PWM<A> */
130 }; 137 };
131 138
132 clocks { 139 clk16m: osc3 {
133 clk16m: clk@1 { 140 compatible = "fixed-clock";
134 compatible = "fixed-clock"; 141 #clock-cells = <0>;
135 reg = <1>; 142 clock-frequency = <16000000>;
136 #clock-cells = <0>;
137 clock-frequency = <16000000>;
138 clock-output-names = "clk16m";
139 };
140 }; 143 };
141 144
142 gpio-keys { 145 gpio-keys {
@@ -157,58 +160,39 @@
157 * edt,et070080dh6: EDT 7.0" LCD TFT 160 * edt,et070080dh6: EDT 7.0" LCD TFT
158 */ 161 */
159 compatible = "edt,et057090dhu", "simple-panel"; 162 compatible = "edt,et057090dhu", "simple-panel";
160
161 backlight = <&backlight>; 163 backlight = <&backlight>;
164 power-supply = <&reg_3v3>;
162 }; 165 };
163 166
164 pwmleds { 167 reg_3v3: regulator-3v3 {
165 compatible = "pwm-leds"; 168 compatible = "regulator-fixed";
166 169 regulator-name = "3.3V_SW";
167 pwmb { 170 regulator-min-microvolt = <3300000>;
168 label = "PWM<B>"; 171 regulator-max-microvolt = <3300000>;
169 pwms = <&pwm 1 19600>;
170 max-brightness = <255>;
171 };
172 pwmc {
173 label = "PWM<C>";
174 pwms = <&pwm 2 19600>;
175 max-brightness = <255>;
176 };
177 pwmd {
178 label = "PWM<D>";
179 pwms = <&pwm 3 19600>;
180 max-brightness = <255>;
181 };
182 }; 172 };
183 173
184 regulators { 174 reg_5v0: regulator-5v0 {
185 sys_5v0_reg: regulator@1 { 175 compatible = "regulator-fixed";
186 compatible = "regulator-fixed"; 176 regulator-name = "5V_SW";
187 reg = <1>; 177 regulator-min-microvolt = <5000000>;
188 regulator-name = "5v0"; 178 regulator-max-microvolt = <5000000>;
189 regulator-min-microvolt = <5000000>; 179 };
190 regulator-max-microvolt = <5000000>;
191 regulator-always-on;
192 };
193 180
194 usbc_vbus_reg: regulator@2 { 181 reg_usbc_vbus: regulator-usbc-vbus {
195 compatible = "regulator-fixed"; 182 compatible = "regulator-fixed";
196 reg = <2>; 183 regulator-name = "VCC_USB5";
197 regulator-name = "usbc_vbus"; 184 regulator-min-microvolt = <5000000>;
198 regulator-min-microvolt = <5000000>; 185 regulator-max-microvolt = <5000000>;
199 regulator-max-microvolt = <5000000>; 186 vin-supply = <&reg_5v0>;
200 vin-supply = <&sys_5v0_reg>; 187 };
201 };
202 188
203 /* USBH_PEN */ 189 /* USBH_PEN resp. USB_P_EN */
204 usbh_vbus_reg: regulator@3 { 190 reg_usbh_vbus: regulator-usbh-vbus {
205 compatible = "regulator-fixed"; 191 compatible = "regulator-fixed";
206 reg = <3>; 192 regulator-name = "VCC_USB[1-4]";
207 regulator-name = "usbh_vbus"; 193 regulator-min-microvolt = <5000000>;
208 regulator-min-microvolt = <5000000>; 194 regulator-max-microvolt = <5000000>;
209 regulator-max-microvolt = <5000000>; 195 gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>;
210 gpio = <&gpio TEGRA_GPIO(W, 2) GPIO_ACTIVE_LOW>; 196 vin-supply = <&reg_5v0>;
211 vin-supply = <&sys_5v0_reg>;
212 };
213 }; 197 };
214}; 198};
diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi
index 526ed71cf7a3..35af03ca9e90 100644
--- a/arch/arm/boot/dts/tegra30-colibri.dtsi
+++ b/arch/arm/boot/dts/tegra30-colibri.dtsi
@@ -1,27 +1,22 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/input/input.h>
3#include "tegra30.dtsi" 2#include "tegra30.dtsi"
4 3
5/* 4/*
6 * Toradex Colibri T30 Module Device Tree 5 * Toradex Colibri T30 Module Device Tree
7 * Compatible for Revisions V1.1B, V1.1C, V1.1D, V1.1E; IT: V1.1A 6 * Compatible for Revisions V1.1B, V1.1C, V1.1D, V1.1E, V1.1F; IT: V1.1A, V1.1B
8 */ 7 */
9/ { 8/ {
10 model = "Toradex Colibri T30";
11 compatible = "toradex,colibri_t30", "nvidia,tegra30";
12
13 memory@80000000 { 9 memory@80000000 {
14 reg = <0x80000000 0x40000000>; 10 reg = <0x80000000 0x40000000>;
15 }; 11 };
16 12
17 host1x@50000000 { 13 host1x@50000000 {
18 hdmi@54280000 { 14 hdmi@54280000 {
19 vdd-supply = <&avdd_hdmi_3v3_reg>; 15 nvidia,ddc-i2c-bus = <&hdmi_ddc>;
20 pll-supply = <&avdd_hdmi_pll_1v8_reg>;
21
22 nvidia,hpd-gpio = 16 nvidia,hpd-gpio =
23 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>; 17 <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
24 nvidia,ddc-i2c-bus = <&hdmiddc>; 18 pll-supply = <&reg_1v8_avdd_hdmi_pll>;
19 vdd-supply = <&reg_3v3_avdd_hdmi>;
25 }; 20 };
26 }; 21 };
27 22
@@ -31,23 +26,173 @@
31 26
32 state_default: pinmux { 27 state_default: pinmux {
33 /* Analogue Audio (On-module) */ 28 /* Analogue Audio (On-module) */
34 clk1_out_pw4 { 29 clk1-out-pw4 {
35 nvidia,pins = "clk1_out_pw4"; 30 nvidia,pins = "clk1_out_pw4";
36 nvidia,function = "extperiph1"; 31 nvidia,function = "extperiph1";
37 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 32 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
38 nvidia,tristate = <TEGRA_PIN_DISABLE>; 33 nvidia,tristate = <TEGRA_PIN_DISABLE>;
39 nvidia,enable-input = <TEGRA_PIN_DISABLE>; 34 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
40 }; 35 };
41 dap3_fs_pp0 { 36 dap3-fs-pp0 {
42 nvidia,pins = "dap3_fs_pp0", 37 nvidia,pins = "dap3_fs_pp0",
43 "dap3_sclk_pp3", 38 "dap3_sclk_pp3",
44 "dap3_din_pp1", 39 "dap3_din_pp1",
45 "dap3_dout_pp2"; 40 "dap3_dout_pp2";
46 nvidia,function = "i2s2"; 41 nvidia,function = "i2s2";
47 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 42 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
48 nvidia,tristate = <TEGRA_PIN_DISABLE>; 43 nvidia,tristate = <TEGRA_PIN_DISABLE>;
49 }; 44 };
50 45
46 /* Colibri Address/Data Bus (GMI) */
47 gmi-ad0-pg0 {
48 nvidia,pins = "gmi_ad0_pg0",
49 "gmi_ad2_pg2",
50 "gmi_ad3_pg3",
51 "gmi_ad4_pg4",
52 "gmi_ad5_pg5",
53 "gmi_ad6_pg6",
54 "gmi_ad7_pg7",
55 "gmi_ad8_ph0",
56 "gmi_ad9_ph1",
57 "gmi_ad10_ph2",
58 "gmi_ad11_ph3",
59 "gmi_ad12_ph4",
60 "gmi_ad13_ph5",
61 "gmi_ad14_ph6",
62 "gmi_ad15_ph7",
63 "gmi_adv_n_pk0",
64 "gmi_clk_pk1",
65 "gmi_cs4_n_pk2",
66 "gmi_cs2_n_pk3",
67 "gmi_iordy_pi5",
68 "gmi_oe_n_pi1",
69 "gmi_wait_pi7",
70 "gmi_wr_n_pi0",
71 "dap1_fs_pn0",
72 "dap1_din_pn1",
73 "dap1_dout_pn2",
74 "dap1_sclk_pn3",
75 "dap2_fs_pa2",
76 "dap2_sclk_pa3",
77 "dap2_din_pa4",
78 "dap2_dout_pa5",
79 "spi1_sck_px5",
80 "spi1_mosi_px4",
81 "spi1_cs0_n_px6",
82 "spi2_cs0_n_px3",
83 "spi2_miso_px1",
84 "spi2_mosi_px0",
85 "spi2_sck_px2",
86 "uart2_cts_n_pj5",
87 "uart2_rts_n_pj6";
88 nvidia,function = "gmi";
89 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
90 nvidia,tristate = <TEGRA_PIN_DISABLE>;
91 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
92 };
93 /* Further pins may be used as GPIOs */
94 dap4-din-pp5 {
95 nvidia,pins = "dap4_din_pp5",
96 "dap4_dout_pp6",
97 "dap4_fs_pp4",
98 "dap4_sclk_pp7",
99 "pbb7",
100 "sdmmc1_clk_pz0",
101 "sdmmc1_cmd_pz1",
102 "sdmmc1_dat0_py7",
103 "sdmmc1_dat1_py6",
104 "sdmmc1_dat3_py4",
105 "uart3_cts_n_pa1",
106 "uart3_txd_pw6",
107 "uart3_rxd_pw7";
108 nvidia,function = "rsvd2";
109 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
110 nvidia,tristate = <TEGRA_PIN_DISABLE>;
111 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
112 };
113 lcd-d18-pm2 {
114 nvidia,pins = "lcd_d18_pm2",
115 "lcd_d19_pm3",
116 "lcd_d20_pm4",
117 "lcd_d21_pm5",
118 "lcd_d22_pm6",
119 "lcd_d23_pm7",
120 "lcd_dc0_pn6",
121 "pex_l2_clkreq_n_pcc7";
122 nvidia,function = "rsvd3";
123 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
124 nvidia,tristate = <TEGRA_PIN_DISABLE>;
125 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
126 };
127 lcd-cs0-n-pn4 {
128 nvidia,pins = "lcd_cs0_n_pn4",
129 "lcd_sdin_pz2",
130 "pu0",
131 "pu1",
132 "pu2",
133 "pu3",
134 "pu4",
135 "pu5",
136 "pu6",
137 "spi1_miso_px7",
138 "uart3_rts_n_pc0";
139 nvidia,function = "rsvd4";
140 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
141 nvidia,tristate = <TEGRA_PIN_DISABLE>;
142 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
143 };
144 lcd-pwr0-pb2 {
145 nvidia,pins = "lcd_pwr0_pb2",
146 "lcd_sck_pz4",
147 "lcd_sdout_pn5",
148 "lcd_wr_n_pz3";
149 nvidia,function = "hdcp";
150 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
151 nvidia,tristate = <TEGRA_PIN_DISABLE>;
152 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
153 };
154 pbb4 {
155 nvidia,pins = "pbb4",
156 "pbb5",
157 "pbb6";
158 nvidia,function = "displayb";
159 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
160 nvidia,tristate = <TEGRA_PIN_DISABLE>;
161 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
162 };
163 /* Multiplexed RDnWR and therefore disabled */
164 lcd-cs1-n-pw0 {
165 nvidia,pins = "lcd_cs1_n_pw0";
166 nvidia,function = "rsvd4";
167 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
168 nvidia,tristate = <TEGRA_PIN_ENABLE>;
169 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
170 };
171 /* Multiplexed GMI_CLK and therefore disabled */
172 owr {
173 nvidia,pins = "owr";
174 nvidia,function = "rsvd3";
175 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
176 nvidia,tristate = <TEGRA_PIN_ENABLE>;
177 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
178 };
179 /* Tri-stating GMI_WR_N on nPWE SODIMM pin 99 */
180 sdmmc3-dat4-pd1 {
181 nvidia,pins = "sdmmc3_dat4_pd1";
182 nvidia,function = "sdmmc3";
183 nvidia,pull = <TEGRA_PIN_PULL_UP>;
184 nvidia,tristate = <TEGRA_PIN_ENABLE>;
185 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
186 };
187 /* Not tri-stating GMI_WR_N on RDnWR SODIMM pin 93 */
188 sdmmc3-dat5-pd0 {
189 nvidia,pins = "sdmmc3_dat5_pd0";
190 nvidia,function = "sdmmc3";
191 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
192 nvidia,tristate = <TEGRA_PIN_ENABLE>;
193 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
194 };
195
51 /* Colibri BL_ON */ 196 /* Colibri BL_ON */
52 pv2 { 197 pv2 {
53 nvidia,pins = "pv2"; 198 nvidia,pins = "pv2";
@@ -57,7 +202,7 @@
57 }; 202 };
58 203
59 /* Colibri Backlight PWM<A> */ 204 /* Colibri Backlight PWM<A> */
60 sdmmc3_dat3_pb4 { 205 sdmmc3-dat3-pb4 {
61 nvidia,pins = "sdmmc3_dat3_pb4"; 206 nvidia,pins = "sdmmc3_dat3_pb4";
62 nvidia,function = "pwm0"; 207 nvidia,function = "pwm0";
63 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 208 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -65,7 +210,7 @@
65 }; 210 };
66 211
67 /* Colibri CAN_INT */ 212 /* Colibri CAN_INT */
68 kb_row8_ps0 { 213 kb-row8-ps0 {
69 nvidia,pins = "kb_row8_ps0"; 214 nvidia,pins = "kb_row8_ps0";
70 nvidia,function = "kbc"; 215 nvidia,function = "kbc";
71 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 216 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
@@ -73,26 +218,133 @@
73 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 218 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
74 }; 219 };
75 220
221 /* Colibri DDC */
222 ddc-scl-pv4 {
223 nvidia,pins = "ddc_scl_pv4",
224 "ddc_sda_pv5";
225 nvidia,function = "i2c4";
226 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
227 nvidia,tristate = <TEGRA_PIN_DISABLE>;
228 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
229 };
230
231 /* Colibri EXT_IO* */
232 gen2-i2c-scl-pt5 {
233 nvidia,pins = "gen2_i2c_scl_pt5",
234 "gen2_i2c_sda_pt6";
235 nvidia,function = "rsvd4";
236 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
237 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
238 nvidia,tristate = <TEGRA_PIN_DISABLE>;
239 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
240 };
241 spdif-in-pk6 {
242 nvidia,pins = "spdif_in_pk6";
243 nvidia,function = "hda";
244 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
245 nvidia,tristate = <TEGRA_PIN_DISABLE>;
246 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
247 };
248
249 /* Colibri GPIO */
250 clk2-out-pw5 {
251 nvidia,pins = "clk2_out_pw5",
252 "pcc2",
253 "pv3",
254 "sdmmc1_dat2_py5";
255 nvidia,function = "rsvd2";
256 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
257 nvidia,tristate = <TEGRA_PIN_DISABLE>;
258 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
259 };
260 lcd-pwr1-pc1 {
261 nvidia,pins = "lcd_pwr1_pc1",
262 "pex_l1_clkreq_n_pdd6",
263 "pex_l1_rst_n_pdd5";
264 nvidia,function = "rsvd3";
265 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
266 nvidia,tristate = <TEGRA_PIN_DISABLE>;
267 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
268 };
269 pv1 {
270 nvidia,pins = "pv1",
271 "sdmmc3_dat0_pb7",
272 "sdmmc3_dat1_pb6";
273 nvidia,function = "rsvd1";
274 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
275 nvidia,tristate = <TEGRA_PIN_DISABLE>;
276 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
277 };
278
279 /* Colibri HOTPLUG_DETECT (HDMI) */
280 hdmi-int-pn7 {
281 nvidia,pins = "hdmi_int_pn7";
282 nvidia,function = "hdmi";
283 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
284 nvidia,tristate = <TEGRA_PIN_ENABLE>;
285 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
286 };
287
288 /* Colibri I2C */
289 gen1-i2c-scl-pc4 {
290 nvidia,pins = "gen1_i2c_scl_pc4",
291 "gen1_i2c_sda_pc5";
292 nvidia,function = "i2c1";
293 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
294 nvidia,tristate = <TEGRA_PIN_DISABLE>;
295 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
296 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
297 };
298
299 /* Colibri LCD (L_* resp. LDD<*>) */
300 lcd-d0-pe0 {
301 nvidia,pins = "lcd_d0_pe0",
302 "lcd_d1_pe1",
303 "lcd_d2_pe2",
304 "lcd_d3_pe3",
305 "lcd_d4_pe4",
306 "lcd_d5_pe5",
307 "lcd_d6_pe6",
308 "lcd_d7_pe7",
309 "lcd_d8_pf0",
310 "lcd_d9_pf1",
311 "lcd_d10_pf2",
312 "lcd_d11_pf3",
313 "lcd_d12_pf4",
314 "lcd_d13_pf5",
315 "lcd_d14_pf6",
316 "lcd_d15_pf7",
317 "lcd_d16_pm0",
318 "lcd_d17_pm1",
319 "lcd_de_pj1",
320 "lcd_hsync_pj3",
321 "lcd_pclk_pb3",
322 "lcd_vsync_pj4";
323 nvidia,function = "displaya";
324 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
325 nvidia,tristate = <TEGRA_PIN_DISABLE>;
326 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
327 };
76 /* 328 /*
77 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE 329 * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
78 * todays display need DE, disable LCD_M1 330 * today's display need DE, disable LCD_M1
79 */ 331 */
80 lcd_m1_pw1 { 332 lcd-m1-pw1 {
81 nvidia,pins = "lcd_m1_pw1"; 333 nvidia,pins = "lcd_m1_pw1";
82 nvidia,function = "rsvd3"; 334 nvidia,function = "rsvd3";
83 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 335 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
84 nvidia,tristate = <TEGRA_PIN_DISABLE>; 336 nvidia,tristate = <TEGRA_PIN_ENABLE>;
85 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 337 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
86 }; 338 };
87 339
88 /* Colibri MMC */ 340 /* Colibri MMC */
89 kb_row10_ps2 { 341 kb-row10-ps2 {
90 nvidia,pins = "kb_row10_ps2"; 342 nvidia,pins = "kb_row10_ps2";
91 nvidia,function = "sdmmc2"; 343 nvidia,function = "sdmmc2";
92 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 344 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
93 nvidia,tristate = <TEGRA_PIN_DISABLE>; 345 nvidia,tristate = <TEGRA_PIN_DISABLE>;
94 }; 346 };
95 kb_row11_ps3 { 347 kb-row11-ps3 {
96 nvidia,pins = "kb_row11_ps3", 348 nvidia,pins = "kb_row11_ps3",
97 "kb_row12_ps4", 349 "kb_row12_ps4",
98 "kb_row13_ps5", 350 "kb_row13_ps5",
@@ -102,9 +354,108 @@
102 nvidia,pull = <TEGRA_PIN_PULL_UP>; 354 nvidia,pull = <TEGRA_PIN_PULL_UP>;
103 nvidia,tristate = <TEGRA_PIN_DISABLE>; 355 nvidia,tristate = <TEGRA_PIN_DISABLE>;
104 }; 356 };
357 /* Colibri MMC_CD */
358 gmi-wp-n-pc7 {
359 nvidia,pins = "gmi_wp_n_pc7";
360 nvidia,function = "rsvd1";
361 nvidia,pull = <TEGRA_PIN_PULL_UP>;
362 nvidia,tristate = <TEGRA_PIN_DISABLE>;
363 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
364 };
365 /* Multiplexed and therefore disabled */
366 cam-mclk-pcc0 {
367 nvidia,pins = "cam_mclk_pcc0";
368 nvidia,function = "vi_alt3";
369 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
370 nvidia,tristate = <TEGRA_PIN_ENABLE>;
371 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
372 };
373 cam-i2c-scl-pbb1 {
374 nvidia,pins = "cam_i2c_scl_pbb1",
375 "cam_i2c_sda_pbb2";
376 nvidia,function = "rsvd3";
377 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
378 nvidia,tristate = <TEGRA_PIN_ENABLE>;
379 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
380 nvidia,open-drain = <TEGRA_PIN_DISABLE>;
381 };
382 pbb0 {
383 nvidia,pins = "pbb0",
384 "pcc1";
385 nvidia,function = "rsvd2";
386 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
387 nvidia,tristate = <TEGRA_PIN_ENABLE>;
388 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
389 };
390 pbb3 {
391 nvidia,pins = "pbb3";
392 nvidia,function = "displayb";
393 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
394 nvidia,tristate = <TEGRA_PIN_ENABLE>;
395 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
396 };
397
398 /* Colibri nRESET_OUT */
399 gmi-rst-n-pi4 {
400 nvidia,pins = "gmi_rst_n_pi4";
401 nvidia,function = "gmi";
402 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
403 nvidia,tristate = <TEGRA_PIN_DISABLE>;
404 };
405
406 /*
407 * Colibri Parallel Camera (Optional)
408 * pins multiplexed with others and therefore disabled
409 */
410 vi-vsync-pd6 {
411 nvidia,pins = "vi_d0_pt4",
412 "vi_d1_pd5",
413 "vi_d2_pl0",
414 "vi_d3_pl1",
415 "vi_d4_pl2",
416 "vi_d5_pl3",
417 "vi_d6_pl4",
418 "vi_d7_pl5",
419 "vi_d8_pl6",
420 "vi_d9_pl7",
421 "vi_d10_pt2",
422 "vi_d11_pt3",
423 "vi_hsync_pd7",
424 "vi_mclk_pt1",
425 "vi_pclk_pt0",
426 "vi_vsync_pd6";
427 nvidia,function = "vi";
428 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
429 nvidia,tristate = <TEGRA_PIN_ENABLE>;
430 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
431 };
432
433 /* Colibri PWM<B> */
434 sdmmc3-dat2-pb5 {
435 nvidia,pins = "sdmmc3_dat2_pb5";
436 nvidia,function = "pwm1";
437 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
438 nvidia,tristate = <TEGRA_PIN_DISABLE>;
439 };
440
441 /* Colibri PWM<C> */
442 sdmmc3-clk-pa6 {
443 nvidia,pins = "sdmmc3_clk_pa6";
444 nvidia,function = "pwm2";
445 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
446 nvidia,tristate = <TEGRA_PIN_DISABLE>;
447 };
448
449 /* Colibri PWM<D> */
450 sdmmc3-cmd-pa7 {
451 nvidia,pins = "sdmmc3_cmd_pa7";
452 nvidia,function = "pwm3";
453 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
454 nvidia,tristate = <TEGRA_PIN_DISABLE>;
455 };
105 456
106 /* Colibri SSP */ 457 /* Colibri SSP */
107 ulpi_clk_py0 { 458 ulpi-clk-py0 {
108 nvidia,pins = "ulpi_clk_py0", 459 nvidia,pins = "ulpi_clk_py0",
109 "ulpi_dir_py1", 460 "ulpi_dir_py1",
110 "ulpi_nxt_py2", 461 "ulpi_nxt_py2",
@@ -113,16 +464,18 @@
113 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 464 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
114 nvidia,tristate = <TEGRA_PIN_DISABLE>; 465 nvidia,tristate = <TEGRA_PIN_DISABLE>;
115 }; 466 };
116 sdmmc3_dat6_pd3 { 467 /* Multiplexed SSPFRM, SSPTXD and therefore disabled */
468 sdmmc3-dat6-pd3 {
117 nvidia,pins = "sdmmc3_dat6_pd3", 469 nvidia,pins = "sdmmc3_dat6_pd3",
118 "sdmmc3_dat7_pd4"; 470 "sdmmc3_dat7_pd4";
119 nvidia,function = "spdif"; 471 nvidia,function = "spdif";
120 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 472 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
121 nvidia,tristate = <TEGRA_PIN_ENABLE>; 473 nvidia,tristate = <TEGRA_PIN_ENABLE>;
474 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
122 }; 475 };
123 476
124 /* Colibri UART_A */ 477 /* Colibri UART-A */
125 ulpi_data0 { 478 ulpi-data0 {
126 nvidia,pins = "ulpi_data0_po1", 479 nvidia,pins = "ulpi_data0_po1",
127 "ulpi_data1_po2", 480 "ulpi_data1_po2",
128 "ulpi_data2_po3", 481 "ulpi_data2_po3",
@@ -136,8 +489,8 @@
136 nvidia,tristate = <TEGRA_PIN_DISABLE>; 489 nvidia,tristate = <TEGRA_PIN_DISABLE>;
137 }; 490 };
138 491
139 /* Colibri UART_B */ 492 /* Colibri UART-B */
140 gmi_a16_pj7 { 493 gmi-a16-pj7 {
141 nvidia,pins = "gmi_a16_pj7", 494 nvidia,pins = "gmi_a16_pj7",
142 "gmi_a17_pb0", 495 "gmi_a17_pb0",
143 "gmi_a18_pb1", 496 "gmi_a18_pb1",
@@ -147,8 +500,8 @@
147 nvidia,tristate = <TEGRA_PIN_DISABLE>; 500 nvidia,tristate = <TEGRA_PIN_DISABLE>;
148 }; 501 };
149 502
150 /* Colibri UART_C */ 503 /* Colibri UART-C */
151 uart2_rxd { 504 uart2-rxd {
152 nvidia,pins = "uart2_rxd_pc3", 505 nvidia,pins = "uart2_rxd_pc3",
153 "uart2_txd_pc2"; 506 "uart2_txd_pc2";
154 nvidia,function = "uartb"; 507 nvidia,function = "uartb";
@@ -156,15 +509,53 @@
156 nvidia,tristate = <TEGRA_PIN_DISABLE>; 509 nvidia,tristate = <TEGRA_PIN_DISABLE>;
157 }; 510 };
158 511
159 /* eMMC */ 512 /* Colibri USBC_DET */
160 sdmmc4_clk_pcc4 { 513 spdif-out-pk5 {
514 nvidia,pins = "spdif_out_pk5";
515 nvidia,function = "rsvd2";
516 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
517 nvidia,tristate = <TEGRA_PIN_DISABLE>;
518 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
519 };
520
521 /* Colibri USBH_PEN */
522 spi2-cs1-n-pw2 {
523 nvidia,pins = "spi2_cs1_n_pw2";
524 nvidia,function = "spi2_alt";
525 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
526 nvidia,tristate = <TEGRA_PIN_DISABLE>;
527 };
528
529 /* Colibri USBH_OC */
530 spi2-cs2-n-pw3, {
531 nvidia,pins = "spi2_cs2_n_pw3";
532 nvidia,function = "spi2_alt";
533 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
534 nvidia,tristate = <TEGRA_PIN_DISABLE>;
535 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
536 };
537
538 /* Colibri VGA not supported and therefore disabled */
539 crt-hsync-pv6 {
540 nvidia,pins = "crt_hsync_pv6",
541 "crt_vsync_pv7";
542 nvidia,function = "rsvd2";
543 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
544 nvidia,tristate = <TEGRA_PIN_ENABLE>;
545 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
546 };
547
548 /* eMMC (On-module) */
549 sdmmc4-clk-pcc4 {
161 nvidia,pins = "sdmmc4_clk_pcc4", 550 nvidia,pins = "sdmmc4_clk_pcc4",
551 "sdmmc4_cmd_pt7",
162 "sdmmc4_rst_n_pcc3"; 552 "sdmmc4_rst_n_pcc3";
163 nvidia,function = "sdmmc4"; 553 nvidia,function = "sdmmc4";
164 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 554 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
165 nvidia,tristate = <TEGRA_PIN_DISABLE>; 555 nvidia,tristate = <TEGRA_PIN_DISABLE>;
556 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
166 }; 557 };
167 sdmmc4_dat0_paa0 { 558 sdmmc4-dat0-paa0 {
168 nvidia,pins = "sdmmc4_dat0_paa0", 559 nvidia,pins = "sdmmc4_dat0_paa0",
169 "sdmmc4_dat1_paa1", 560 "sdmmc4_dat1_paa1",
170 "sdmmc4_dat2_paa2", 561 "sdmmc4_dat2_paa2",
@@ -176,17 +567,111 @@
176 nvidia,function = "sdmmc4"; 567 nvidia,function = "sdmmc4";
177 nvidia,pull = <TEGRA_PIN_PULL_UP>; 568 nvidia,pull = <TEGRA_PIN_PULL_UP>;
178 nvidia,tristate = <TEGRA_PIN_DISABLE>; 569 nvidia,tristate = <TEGRA_PIN_DISABLE>;
570 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
571 };
572
573 /* LAN_EXT_WAKEUP#, LAN_PME (On-module) */
574 pex-l0-rst-n-pdd1 {
575 nvidia,pins = "pex_l0_rst_n_pdd1",
576 "pex_wake_n_pdd3";
577 nvidia,function = "rsvd3";
578 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
579 nvidia,tristate = <TEGRA_PIN_DISABLE>;
580 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
581 };
582 /* LAN_V_BUS, LAN_RESET# (On-module) */
583 pex-l0-clkreq-n-pdd2 {
584 nvidia,pins = "pex_l0_clkreq_n_pdd2",
585 "pex_l0_prsnt_n_pdd0";
586 nvidia,function = "rsvd3";
587 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
588 nvidia,tristate = <TEGRA_PIN_DISABLE>;
589 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
590 };
591
592 /* nBATT_FAULT(SENSE), nVDD_FAULT(SENSE) */
593 pex-l2-rst-n-pcc6 {
594 nvidia,pins = "pex_l2_rst_n_pcc6",
595 "pex_l2_prsnt_n_pdd7";
596 nvidia,function = "rsvd3";
597 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
598 nvidia,tristate = <TEGRA_PIN_DISABLE>;
599 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
600 };
601
602 /* Not connected and therefore disabled */
603 clk1-req-pee2 {
604 nvidia,pins = "clk1_req_pee2",
605 "pex_l1_prsnt_n_pdd4";
606 nvidia,function = "rsvd3";
607 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
608 nvidia,tristate = <TEGRA_PIN_ENABLE>;
609 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
610 };
611 clk2-req-pcc5 {
612 nvidia,pins = "clk2_req_pcc5",
613 "clk3_out_pee0",
614 "clk3_req_pee1",
615 "clk_32k_out_pa0",
616 "hdmi_cec_pee3",
617 "sys_clk_req_pz5";
618 nvidia,function = "rsvd2";
619 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
620 nvidia,tristate = <TEGRA_PIN_ENABLE>;
621 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
622 };
623 gmi-dqs-pi2 {
624 nvidia,pins = "gmi_dqs_pi2",
625 "kb_col2_pq2",
626 "kb_col3_pq3",
627 "kb_col4_pq4",
628 "kb_col5_pq5",
629 "kb_row4_pr4";
630 nvidia,function = "rsvd4";
631 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
632 nvidia,tristate = <TEGRA_PIN_ENABLE>;
633 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
634 };
635 kb-col0-pq0 {
636 nvidia,pins = "kb_col0_pq0",
637 "kb_col1_pq1",
638 "kb_col6_pq6",
639 "kb_col7_pq7",
640 "kb_row5_pr5",
641 "kb_row6_pr6",
642 "kb_row7_pr7",
643 "kb_row9_ps1";
644 nvidia,function = "kbc";
645 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
646 nvidia,tristate = <TEGRA_PIN_ENABLE>;
647 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
648 };
649 kb-row0-pr0 {
650 nvidia,pins = "kb_row0_pr0",
651 "kb_row1_pr1",
652 "kb_row2_pr2",
653 "kb_row3_pr3";
654 nvidia,function = "rsvd3";
655 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
656 nvidia,tristate = <TEGRA_PIN_ENABLE>;
657 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
658 };
659 lcd-pwr2-pc6 {
660 nvidia,pins = "lcd_pwr2_pc6";
661 nvidia,function = "hdcp";
662 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
663 nvidia,tristate = <TEGRA_PIN_ENABLE>;
664 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
179 }; 665 };
180 666
181 /* Power I2C (On-module) */ 667 /* Power I2C (On-module) */
182 pwr_i2c_scl_pz6 { 668 pwr-i2c-scl-pz6 {
183 nvidia,pins = "pwr_i2c_scl_pz6", 669 nvidia,pins = "pwr_i2c_scl_pz6",
184 "pwr_i2c_sda_pz7"; 670 "pwr_i2c_sda_pz7";
185 nvidia,function = "i2cpwr"; 671 nvidia,function = "i2cpwr";
186 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 672 nvidia,pull = <TEGRA_PIN_PULL_NONE>;
187 nvidia,tristate = <TEGRA_PIN_DISABLE>; 673 nvidia,tristate = <TEGRA_PIN_DISABLE>;
188 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 674 nvidia,enable-input = <TEGRA_PIN_ENABLE>;
189 nvidia,lock = <TEGRA_PIN_DISABLE>;
190 nvidia,open-drain = <TEGRA_PIN_ENABLE>; 675 nvidia,open-drain = <TEGRA_PIN_ENABLE>;
191 }; 676 };
192 677
@@ -195,15 +680,15 @@
195 * temperature sensor therefore requires disabling for 680 * temperature sensor therefore requires disabling for
196 * now 681 * now
197 */ 682 */
198 lcd_dc1_pd2 { 683 lcd-dc1-pd2 {
199 nvidia,pins = "lcd_dc1_pd2"; 684 nvidia,pins = "lcd_dc1_pd2";
200 nvidia,function = "rsvd3"; 685 nvidia,function = "rsvd3";
201 nvidia,pull = <TEGRA_PIN_PULL_NONE>; 686 nvidia,pull = <TEGRA_PIN_PULL_DOWN>;
202 nvidia,tristate = <TEGRA_PIN_DISABLE>; 687 nvidia,tristate = <TEGRA_PIN_ENABLE>;
203 nvidia,enable-input = <TEGRA_PIN_ENABLE>; 688 nvidia,enable-input = <TEGRA_PIN_DISABLE>;
204 }; 689 };
205 690
206 /* TOUCH_PEN_INT# */ 691 /* TOUCH_PEN_INT# (On-module) */
207 pv0 { 692 pv0 {
208 nvidia,pins = "pv0"; 693 nvidia,pins = "pv0";
209 nvidia,function = "rsvd1"; 694 nvidia,function = "rsvd1";
@@ -214,13 +699,21 @@
214 }; 699 };
215 }; 700 };
216 701
217 hdmiddc: i2c@7000c700 { 702 serial@70006040 {
703 compatible = "nvidia,tegra30-hsuart";
704 };
705
706 serial@70006300 {
707 compatible = "nvidia,tegra30-hsuart";
708 };
709
710 hdmi_ddc: i2c@7000c700 {
218 clock-frequency = <10000>; 711 clock-frequency = <10000>;
219 }; 712 };
220 713
221 /* 714 /*
222 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and 715 * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
223 * touch screen controller 716 * touch screen controller (On-module)
224 */ 717 */
225 i2c@7000d000 { 718 i2c@7000d000 {
226 status = "okay"; 719 status = "okay";
@@ -230,12 +723,13 @@
230 sgtl5000: codec@a { 723 sgtl5000: codec@a {
231 compatible = "fsl,sgtl5000"; 724 compatible = "fsl,sgtl5000";
232 reg = <0x0a>; 725 reg = <0x0a>;
233 VDDA-supply = <&sys_3v3_reg>; 726 VDDA-supply = <&reg_module_3v3_audio>;
234 VDDIO-supply = <&sys_3v3_reg>; 727 VDDD-supply = <&reg_1v8_vio>;
728 VDDIO-supply = <&reg_module_3v3>;
235 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>; 729 clocks = <&tegra_car TEGRA30_CLK_EXTERN1>;
236 }; 730 };
237 731
238 pmic: tps65911@2d { 732 pmic: pmic@2d {
239 compatible = "ti,tps65911"; 733 compatible = "ti,tps65911";
240 reg = <0x2d>; 734 reg = <0x2d>;
241 735
@@ -248,19 +742,18 @@
248 #gpio-cells = <2>; 742 #gpio-cells = <2>;
249 gpio-controller; 743 gpio-controller;
250 744
251 vcc1-supply = <&sys_3v3_reg>; 745 vcc1-supply = <&reg_module_3v3>;
252 vcc2-supply = <&sys_3v3_reg>; 746 vcc2-supply = <&reg_module_3v3>;
253 vcc3-supply = <&vio_reg>; 747 vcc3-supply = <&reg_1v8_vio>;
254 vcc4-supply = <&sys_3v3_reg>; 748 vcc4-supply = <&reg_module_3v3>;
255 vcc5-supply = <&sys_3v3_reg>; 749 vcc5-supply = <&reg_module_3v3>;
256 vcc6-supply = <&vio_reg>; 750 vcc6-supply = <&reg_1v8_vio>;
257 vcc7-supply = <&charge_pump_5v0_reg>; 751 vcc7-supply = <&reg_5v0_charge_pump>;
258 vccio-supply = <&sys_3v3_reg>; 752 vccio-supply = <&reg_module_3v3>;
259 753
260 regulators { 754 regulators {
261 /* SW1: +V1.35_VDDIO_DDR */
262 vdd1_reg: vdd1 { 755 vdd1_reg: vdd1 {
263 regulator-name = "vddio_ddr_1v35"; 756 regulator-name = "+V1.35_VDDIO_DDR";
264 regulator-min-microvolt = <1350000>; 757 regulator-min-microvolt = <1350000>;
265 regulator-max-microvolt = <1350000>; 758 regulator-max-microvolt = <1350000>;
266 regulator-always-on; 759 regulator-always-on;
@@ -268,17 +761,15 @@
268 761
269 /* SW2: unused */ 762 /* SW2: unused */
270 763
271 /* SW CTRL: +V1.0_VDD_CPU */
272 vddctrl_reg: vddctrl { 764 vddctrl_reg: vddctrl {
273 regulator-name = "vdd_cpu,vdd_sys"; 765 regulator-name = "+V1.0_VDD_CPU";
274 regulator-min-microvolt = <1150000>; 766 regulator-min-microvolt = <1150000>;
275 regulator-max-microvolt = <1150000>; 767 regulator-max-microvolt = <1150000>;
276 regulator-always-on; 768 regulator-always-on;
277 }; 769 };
278 770
279 /* SWIO: +V1.8 */ 771 reg_1v8_vio: vio {
280 vio_reg: vio { 772 regulator-name = "+V1.8";
281 regulator-name = "vdd_1v8_gen";
282 regulator-min-microvolt = <1800000>; 773 regulator-min-microvolt = <1800000>;
283 regulator-max-microvolt = <1800000>; 774 regulator-max-microvolt = <1800000>;
284 regulator-always-on; 775 regulator-always-on;
@@ -289,10 +780,10 @@
289 /* 780 /*
290 * EN_+V3.3 switching via FET: 781 * EN_+V3.3 switching via FET:
291 * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN 782 * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN
292 * see also 3v3 fixed supply 783 * see also +V3.3 fixed supply
293 */ 784 */
294 ldo2_reg: ldo2 { 785 ldo2_reg: ldo2 {
295 regulator-name = "en_3v3"; 786 regulator-name = "EN_+V3.3";
296 regulator-min-microvolt = <3300000>; 787 regulator-min-microvolt = <3300000>;
297 regulator-max-microvolt = <3300000>; 788 regulator-max-microvolt = <3300000>;
298 regulator-always-on; 789 regulator-always-on;
@@ -300,9 +791,8 @@
300 791
301 /* LDO3: unused */ 792 /* LDO3: unused */
302 793
303 /* +V1.2_VDD_RTC */
304 ldo4_reg: ldo4 { 794 ldo4_reg: ldo4 {
305 regulator-name = "vdd_rtc"; 795 regulator-name = "+V1.2_VDD_RTC";
306 regulator-min-microvolt = <1200000>; 796 regulator-min-microvolt = <1200000>;
307 regulator-max-microvolt = <1200000>; 797 regulator-max-microvolt = <1200000>;
308 regulator-always-on; 798 regulator-always-on;
@@ -310,10 +800,10 @@
310 800
311 /* 801 /*
312 * +V2.8_AVDD_VDAC: 802 * +V2.8_AVDD_VDAC:
313 * only required for analog RGB 803 * only required for (unsupported) analog RGB
314 */ 804 */
315 ldo5_reg: ldo5 { 805 ldo5_reg: ldo5 {
316 regulator-name = "avdd_vdac"; 806 regulator-name = "+V2.8_AVDD_VDAC";
317 regulator-min-microvolt = <2800000>; 807 regulator-min-microvolt = <2800000>;
318 regulator-max-microvolt = <2800000>; 808 regulator-max-microvolt = <2800000>;
319 regulator-always-on; 809 regulator-always-on;
@@ -325,22 +815,20 @@
325 * granularity 815 * granularity
326 */ 816 */
327 ldo6_reg: ldo6 { 817 ldo6_reg: ldo6 {
328 regulator-name = "avdd_plle"; 818 regulator-name = "+V1.05_AVDD_PLLE";
329 regulator-min-microvolt = <1100000>; 819 regulator-min-microvolt = <1100000>;
330 regulator-max-microvolt = <1100000>; 820 regulator-max-microvolt = <1100000>;
331 }; 821 };
332 822
333 /* +V1.2_AVDD_PLL */
334 ldo7_reg: ldo7 { 823 ldo7_reg: ldo7 {
335 regulator-name = "avdd_pll"; 824 regulator-name = "+V1.2_AVDD_PLL";
336 regulator-min-microvolt = <1200000>; 825 regulator-min-microvolt = <1200000>;
337 regulator-max-microvolt = <1200000>; 826 regulator-max-microvolt = <1200000>;
338 regulator-always-on; 827 regulator-always-on;
339 }; 828 };
340 829
341 /* +V1.0_VDD_DDR_HS */
342 ldo8_reg: ldo8 { 830 ldo8_reg: ldo8 {
343 regulator-name = "vdd_ddr_hs"; 831 regulator-name = "+V1.0_VDD_DDR_HS";
344 regulator-min-microvolt = <1000000>; 832 regulator-min-microvolt = <1000000>;
345 regulator-max-microvolt = <1000000>; 833 regulator-max-microvolt = <1000000>;
346 regulator-always-on; 834 regulator-always-on;
@@ -349,11 +837,10 @@
349 }; 837 };
350 838
351 /* STMPE811 touch screen controller */ 839 /* STMPE811 touch screen controller */
352 stmpe811@41 { 840 touchscreen@41 {
353 compatible = "st,stmpe811"; 841 compatible = "st,stmpe811";
354 reg = <0x41>; 842 reg = <0x41>;
355 interrupts = <TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>; 843 irq-gpio = <&gpio TEGRA_GPIO(V, 0) IRQ_TYPE_LEVEL_LOW>;
356 interrupt-parent = <&gpio>;
357 interrupt-controller; 844 interrupt-controller;
358 id = <0>; 845 id = <0>;
359 blocks = <0x5>; 846 blocks = <0x5>;
@@ -387,7 +874,7 @@
387 874
388 /* 875 /*
389 * LM95245 temperature sensor 876 * LM95245 temperature sensor
390 * Note: OVERT_N directly connected to PMIC PWRDN 877 * Note: OVERT1# directly connected to TPS65911 PMIC PWRDN
391 */ 878 */
392 temp-sensor@4c { 879 temp-sensor@4c {
393 compatible = "national,lm95245"; 880 compatible = "national,lm95245";
@@ -395,7 +882,7 @@
395 }; 882 };
396 883
397 /* SW: +V1.2_VDD_CORE */ 884 /* SW: +V1.2_VDD_CORE */
398 tps62362@60 { 885 regulator@60 {
399 compatible = "ti,tps62362"; 886 compatible = "ti,tps62362";
400 reg = <0x60>; 887 reg = <0x60>;
401 888
@@ -419,6 +906,18 @@
419 nvidia,core-pwr-off-time = <0>; 906 nvidia,core-pwr-off-time = <0>;
420 nvidia,core-power-req-active-high; 907 nvidia,core-power-req-active-high;
421 nvidia,sys-clock-req-active-high; 908 nvidia,sys-clock-req-active-high;
909
910 /* Set DEV_OFF bit in DCDC control register of TPS65911 PMIC */
911 i2c-thermtrip {
912 nvidia,i2c-controller-id = <4>;
913 nvidia,bus-addr = <0x2d>;
914 nvidia,reg-addr = <0x3f>;
915 nvidia,reg-data = <0x1>;
916 };
917 };
918
919 hda@70030000 {
920 status = "okay";
422 }; 921 };
423 922
424 ahub@70080000 { 923 ahub@70080000 {
@@ -432,75 +931,85 @@
432 status = "okay"; 931 status = "okay";
433 bus-width = <8>; 932 bus-width = <8>;
434 non-removable; 933 non-removable;
934 vmmc-supply = <&reg_module_3v3>; /* VCC */
935 vqmmc-supply = <&reg_1v8_vio>; /* VCCQ */
936 mmc-ddr-1_8v;
435 }; 937 };
436 938
437 /* EHCI instance 1: USB2_DP/N -> AX88772B */ 939 /* EHCI instance 1: USB2_DP/N -> AX88772B (On-module) */
438 usb@7d004000 { 940 usb@7d004000 {
439 status = "okay"; 941 status = "okay";
942 #address-cells = <1>;
943 #size-cells = <0>;
944
945 asix@1 {
946 reg = <1>;
947 local-mac-address = [00 00 00 00 00 00];
948 };
440 }; 949 };
441 950
442 usb-phy@7d004000 { 951 usb-phy@7d004000 {
443 status = "okay"; 952 status = "okay";
444 nvidia,is-wired = <1>; 953 vbus-supply = <&reg_lan_v_bus>;
445 }; 954 };
446 955
447 clocks { 956 clk32k_in: xtal1 {
448 compatible = "simple-bus"; 957 compatible = "fixed-clock";
449 #address-cells = <1>; 958 #clock-cells = <0>;
450 #size-cells = <0>; 959 clock-frequency = <32768>;
960 };
451 961
452 clk32k_in: clk@0 { 962 reg_1v8_avdd_hdmi_pll: regulator-1v8-avdd-hdmi-pll {
453 compatible = "fixed-clock"; 963 compatible = "regulator-fixed";
454 reg = <0>; 964 regulator-name = "+V1.8_AVDD_HDMI_PLL";
455 #clock-cells = <0>; 965 regulator-min-microvolt = <1800000>;
456 clock-frequency = <32768>; 966 regulator-max-microvolt = <1800000>;
457 }; 967 enable-active-high;
968 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
969 vin-supply = <&reg_1v8_vio>;
458 }; 970 };
459 971
460 regulators { 972 reg_3v3_avdd_hdmi: regulator-3v3-avdd-hdmi {
461 compatible = "simple-bus"; 973 compatible = "regulator-fixed";
462 #address-cells = <1>; 974 regulator-name = "+V3.3_AVDD_HDMI";
463 #size-cells = <0>; 975 regulator-min-microvolt = <3300000>;
976 regulator-max-microvolt = <3300000>;
977 enable-active-high;
978 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
979 vin-supply = <&reg_module_3v3>;
980 };
464 981
465 avdd_hdmi_pll_1v8_reg: regulator@100 { 982 reg_5v0_charge_pump: regulator-5v0-charge-pump {
466 compatible = "regulator-fixed"; 983 compatible = "regulator-fixed";
467 reg = <100>; 984 regulator-name = "+V5.0";
468 regulator-name = "+V1.8_AVDD_HDMI_PLL"; 985 regulator-min-microvolt = <5000000>;
469 regulator-min-microvolt = <1800000>; 986 regulator-max-microvolt = <5000000>;
470 regulator-max-microvolt = <1800000>; 987 regulator-always-on;
471 enable-active-high; 988 };
472 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
473 vin-supply = <&vio_reg>;
474 };
475 989
476 sys_3v3_reg: regulator@101 { 990 reg_lan_v_bus: regulator-lan-v-bus {
477 compatible = "regulator-fixed"; 991 compatible = "regulator-fixed";
478 reg = <101>; 992 regulator-name = "LAN_V_BUS";
479 regulator-name = "3v3"; 993 regulator-min-microvolt = <5000000>;
480 regulator-min-microvolt = <3300000>; 994 regulator-max-microvolt = <5000000>;
481 regulator-max-microvolt = <3300000>; 995 enable-active-high;
482 regulator-always-on; 996 gpio = <&gpio TEGRA_GPIO(DD, 2) GPIO_ACTIVE_HIGH>;
483 }; 997 };
484 998
485 avdd_hdmi_3v3_reg: regulator@102 { 999 reg_module_3v3: regulator-module-3v3 {
486 compatible = "regulator-fixed"; 1000 compatible = "regulator-fixed";
487 reg = <102>; 1001 regulator-name = "+V3.3";
488 regulator-name = "+V3.3_AVDD_HDMI"; 1002 regulator-min-microvolt = <3300000>;
489 regulator-min-microvolt = <3300000>; 1003 regulator-max-microvolt = <3300000>;
490 regulator-max-microvolt = <3300000>; 1004 regulator-always-on;
491 enable-active-high; 1005 };
492 gpio = <&pmic 6 GPIO_ACTIVE_HIGH>;
493 vin-supply = <&sys_3v3_reg>;
494 };
495 1006
496 charge_pump_5v0_reg: regulator@103 { 1007 reg_module_3v3_audio: regulator-module-3v3-audio {
497 compatible = "regulator-fixed"; 1008 compatible = "regulator-fixed";
498 reg = <103>; 1009 regulator-name = "+V3.3_AUDIO_AVDD_S";
499 regulator-name = "5v0"; 1010 regulator-min-microvolt = <3300000>;
500 regulator-min-microvolt = <5000000>; 1011 regulator-max-microvolt = <3300000>;
501 regulator-max-microvolt = <5000000>; 1012 regulator-always-on;
502 regulator-always-on;
503 };
504 }; 1013 };
505 1014
506 sound { 1015 sound {
@@ -519,3 +1028,12 @@
519 clock-names = "pll_a", "pll_a_out0", "mclk"; 1028 clock-names = "pll_a", "pll_a_out0", "mclk";
520 }; 1029 };
521}; 1030};
1031
1032&gpio {
1033 lan-reset-n {
1034 gpio-hog;
1035 gpios = <TEGRA_GPIO(DD, 0) GPIO_ACTIVE_HIGH>;
1036 output-high;
1037 line-name = "LAN_RESET#";
1038 };
1039};
diff --git a/arch/arm/boot/dts/tegra30.dtsi b/arch/arm/boot/dts/tegra30.dtsi
index a6781f653310..d2b553f76719 100644
--- a/arch/arm/boot/dts/tegra30.dtsi
+++ b/arch/arm/boot/dts/tegra30.dtsi
@@ -896,7 +896,7 @@
896 nvidia,elastic-limit = <16>; 896 nvidia,elastic-limit = <16>;
897 nvidia,term-range-adj = <6>; 897 nvidia,term-range-adj = <6>;
898 nvidia,xcvr-setup = <51>; 898 nvidia,xcvr-setup = <51>;
899 nvidia.xcvr-setup-use-fuses; 899 nvidia,xcvr-setup-use-fuses;
900 nvidia,xcvr-lsfslew = <1>; 900 nvidia,xcvr-lsfslew = <1>;
901 nvidia,xcvr-lsrslew = <1>; 901 nvidia,xcvr-lsrslew = <1>;
902 nvidia,xcvr-hsslew = <32>; 902 nvidia,xcvr-hsslew = <32>;
@@ -933,7 +933,7 @@
933 nvidia,elastic-limit = <16>; 933 nvidia,elastic-limit = <16>;
934 nvidia,term-range-adj = <6>; 934 nvidia,term-range-adj = <6>;
935 nvidia,xcvr-setup = <51>; 935 nvidia,xcvr-setup = <51>;
936 nvidia.xcvr-setup-use-fuses; 936 nvidia,xcvr-setup-use-fuses;
937 nvidia,xcvr-lsfslew = <2>; 937 nvidia,xcvr-lsfslew = <2>;
938 nvidia,xcvr-lsrslew = <2>; 938 nvidia,xcvr-lsrslew = <2>;
939 nvidia,xcvr-hsslew = <32>; 939 nvidia,xcvr-hsslew = <32>;
@@ -969,7 +969,7 @@
969 nvidia,elastic-limit = <16>; 969 nvidia,elastic-limit = <16>;
970 nvidia,term-range-adj = <6>; 970 nvidia,term-range-adj = <6>;
971 nvidia,xcvr-setup = <51>; 971 nvidia,xcvr-setup = <51>;
972 nvidia.xcvr-setup-use-fuses; 972 nvidia,xcvr-setup-use-fuses;
973 nvidia,xcvr-lsfslew = <2>; 973 nvidia,xcvr-lsfslew = <2>;
974 nvidia,xcvr-lsrslew = <2>; 974 nvidia,xcvr-lsrslew = <2>;
975 nvidia,xcvr-hsslew = <32>; 975 nvidia,xcvr-hsslew = <32>;
@@ -1013,5 +1013,9 @@
1013 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>, 1013 <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1014 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>, 1014 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1015 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 1015 <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
1016 interrupt-affinity = <&{/cpus/cpu@0}>,
1017 <&{/cpus/cpu@1}>,
1018 <&{/cpus/cpu@2}>,
1019 <&{/cpus/cpu@3}>;
1016 }; 1020 };
1017}; 1021};
diff --git a/arch/arm/boot/dts/uniphier-ld4-ref.dts b/arch/arm/boot/dts/uniphier-ld4-ref.dts
index 21407e159bf7..3aaca10f6644 100644
--- a/arch/arm/boot/dts/uniphier-ld4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ld4-ref.dts
@@ -63,6 +63,10 @@
63 status = "okay"; 63 status = "okay";
64}; 64};
65 65
66&sd {
67 status = "okay";
68};
69
66&usb0 { 70&usb0 {
67 status = "okay"; 71 status = "okay";
68}; 72};
diff --git a/arch/arm/boot/dts/uniphier-ld4.dtsi b/arch/arm/boot/dts/uniphier-ld4.dtsi
index 37950ad2de7c..b73d594b6dcd 100644
--- a/arch/arm/boot/dts/uniphier-ld4.dtsi
+++ b/arch/arm/boot/dts/uniphier-ld4.dtsi
@@ -63,6 +63,17 @@
63 cache-level = <2>; 63 cache-level = <2>;
64 }; 64 };
65 65
66 spi: spi@54006000 {
67 compatible = "socionext,uniphier-scssi";
68 status = "disabled";
69 reg = <0x54006000 0x100>;
70 interrupts = <0 39 4>;
71 pinctrl-names = "default";
72 pinctrl-0 = <&pinctrl_spi0>;
73 clocks = <&peri_clk 11>;
74 resets = <&peri_rst 11>;
75 };
76
66 serial0: serial@54006800 { 77 serial0: serial@54006800 {
67 compatible = "socionext,uniphier-uart"; 78 compatible = "socionext,uniphier-uart";
68 status = "disabled"; 79 status = "disabled";
@@ -224,6 +235,40 @@
224 }; 235 };
225 }; 236 };
226 237
238 sd: sdhc@5a400000 {
239 compatible = "socionext,uniphier-sd-v2.91";
240 status = "disabled";
241 reg = <0x5a400000 0x200>;
242 interrupts = <0 76 4>;
243 pinctrl-names = "default", "uhs";
244 pinctrl-0 = <&pinctrl_sd>;
245 pinctrl-1 = <&pinctrl_sd_uhs>;
246 clocks = <&mio_clk 0>;
247 reset-names = "host", "bridge";
248 resets = <&mio_rst 0>, <&mio_rst 3>;
249 bus-width = <4>;
250 cap-sd-highspeed;
251 sd-uhs-sdr12;
252 sd-uhs-sdr25;
253 sd-uhs-sdr50;
254 };
255
256 emmc: sdhc@5a500000 {
257 compatible = "socionext,uniphier-sd-v2.91";
258 status = "disabled";
259 reg = <0x5a500000 0x200>;
260 interrupts = <0 78 4>;
261 pinctrl-names = "default";
262 pinctrl-0 = <&pinctrl_emmc>;
263 clocks = <&mio_clk 1>;
264 reset-names = "host", "bridge", "hw";
265 resets = <&mio_rst 1>, <&mio_rst 4>, <&mio_rst 6>;
266 bus-width = <8>;
267 cap-mmc-highspeed;
268 cap-mmc-hw-reset;
269 non-removable;
270 };
271
227 usb0: usb@5a800100 { 272 usb0: usb@5a800100 {
228 compatible = "socionext,uniphier-ehci", "generic-ehci"; 273 compatible = "socionext,uniphier-ehci", "generic-ehci";
229 status = "disabled"; 274 status = "disabled";
@@ -347,7 +392,8 @@
347 interrupts = <0 65 4>; 392 interrupts = <0 65 4>;
348 pinctrl-names = "default"; 393 pinctrl-names = "default";
349 pinctrl-0 = <&pinctrl_nand2cs>; 394 pinctrl-0 = <&pinctrl_nand2cs>;
350 clocks = <&sys_clk 2>; 395 clock-names = "nand", "nand_x", "ecc";
396 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
351 resets = <&sys_rst 2>; 397 resets = <&sys_rst 2>;
352 }; 398 };
353 }; 399 };
diff --git a/arch/arm/boot/dts/uniphier-ld6b-ref.dts b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
index a0a44a422e12..3d9080ee7aef 100644
--- a/arch/arm/boot/dts/uniphier-ld6b-ref.dts
+++ b/arch/arm/boot/dts/uniphier-ld6b-ref.dts
@@ -65,6 +65,10 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&sd {
69 status = "okay";
70};
71
68&eth { 72&eth {
69 status = "okay"; 73 status = "okay";
70 phy-handle = <&ethphy>; 74 phy-handle = <&ethphy>;
@@ -76,6 +80,14 @@
76 }; 80 };
77}; 81};
78 82
83&usb0 {
84 status = "okay";
85};
86
87&usb1 {
88 status = "okay";
89};
90
79&nand { 91&nand {
80 status = "okay"; 92 status = "okay";
81}; 93};
diff --git a/arch/arm/boot/dts/uniphier-pinctrl.dtsi b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
index 51f0e69f49fd..1fee5ffbfb9c 100644
--- a/arch/arm/boot/dts/uniphier-pinctrl.dtsi
+++ b/arch/arm/boot/dts/uniphier-pinctrl.dtsi
@@ -121,11 +121,36 @@
121 function = "sd"; 121 function = "sd";
122 }; 122 };
123 123
124 pinctrl_sd_uhs: sd-uhs {
125 groups = "sd";
126 function = "sd";
127 };
128
124 pinctrl_sd1: sd1 { 129 pinctrl_sd1: sd1 {
125 groups = "sd1"; 130 groups = "sd1";
126 function = "sd1"; 131 function = "sd1";
127 }; 132 };
128 133
134 pinctrl_spi0: spi0 {
135 groups = "spi0";
136 function = "spi0";
137 };
138
139 pinctrl_spi1: spi1 {
140 groups = "spi1";
141 function = "spi1";
142 };
143
144 pinctrl_spi2: spi2 {
145 groups = "spi2";
146 function = "spi2";
147 };
148
149 pinctrl_spi3: spi3 {
150 groups = "spi3";
151 function = "spi3";
152 };
153
129 pinctrl_system_bus: system-bus { 154 pinctrl_system_bus: system-bus {
130 groups = "system_bus", "system_bus_cs1"; 155 groups = "system_bus", "system_bus_cs1";
131 function = "system_bus"; 156 function = "system_bus";
diff --git a/arch/arm/boot/dts/uniphier-pro4-ace.dts b/arch/arm/boot/dts/uniphier-pro4-ace.dts
index db1b08935ae5..92cc48dd86d0 100644
--- a/arch/arm/boot/dts/uniphier-pro4-ace.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-ace.dts
@@ -68,6 +68,10 @@
68 status = "okay"; 68 status = "okay";
69}; 69};
70 70
71&sd {
72 status = "okay";
73};
74
71&usb2 { 75&usb2 {
72 status = "okay"; 76 status = "okay";
73}; 77};
@@ -86,3 +90,11 @@
86 reg = <1>; 90 reg = <1>;
87 }; 91 };
88}; 92};
93
94&usb0 {
95 status = "okay";
96};
97
98&usb1 {
99 status = "okay";
100};
diff --git a/arch/arm/boot/dts/uniphier-pro4-ref.dts b/arch/arm/boot/dts/uniphier-pro4-ref.dts
index efb084983b82..28038b17bbb3 100644
--- a/arch/arm/boot/dts/uniphier-pro4-ref.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-ref.dts
@@ -65,6 +65,10 @@
65 status = "okay"; 65 status = "okay";
66}; 66};
67 67
68&sd {
69 status = "okay";
70};
71
68&usb2 { 72&usb2 {
69 status = "okay"; 73 status = "okay";
70}; 74};
@@ -84,6 +88,14 @@
84 }; 88 };
85}; 89};
86 90
91&usb0 {
92 status = "okay";
93};
94
95&usb1 {
96 status = "okay";
97};
98
87&nand { 99&nand {
88 status = "okay"; 100 status = "okay";
89}; 101};
diff --git a/arch/arm/boot/dts/uniphier-pro4-sanji.dts b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
index dac4d6679a32..dda1a2f214a8 100644
--- a/arch/arm/boot/dts/uniphier-pro4-sanji.dts
+++ b/arch/arm/boot/dts/uniphier-pro4-sanji.dts
@@ -71,6 +71,10 @@
71 status = "okay"; 71 status = "okay";
72}; 72};
73 73
74&emmc {
75 status = "okay";
76};
77
74&eth { 78&eth {
75 status = "okay"; 79 status = "okay";
76 phy-handle = <&ethphy>; 80 phy-handle = <&ethphy>;
@@ -81,3 +85,11 @@
81 reg = <1>; 85 reg = <1>;
82 }; 86 };
83}; 87};
88
89&usb0 {
90 status = "okay";
91};
92
93&usb1 {
94 status = "okay";
95};
diff --git a/arch/arm/boot/dts/uniphier-pro4.dtsi b/arch/arm/boot/dts/uniphier-pro4.dtsi
index 49539f035219..0beb606cf3c8 100644
--- a/arch/arm/boot/dts/uniphier-pro4.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro4.dtsi
@@ -71,6 +71,17 @@
71 cache-level = <2>; 71 cache-level = <2>;
72 }; 72 };
73 73
74 spi0: spi@54006000 {
75 compatible = "socionext,uniphier-scssi";
76 status = "disabled";
77 reg = <0x54006000 0x100>;
78 interrupts = <0 39 4>;
79 pinctrl-names = "default";
80 pinctrl-0 = <&pinctrl_spi0>;
81 clocks = <&peri_clk 11>;
82 resets = <&peri_rst 11>;
83 };
84
74 serial0: serial@54006800 { 85 serial0: serial@54006800 {
75 compatible = "socionext,uniphier-uart"; 86 compatible = "socionext,uniphier-uart";
76 status = "disabled"; 87 status = "disabled";
@@ -258,6 +269,54 @@
258 }; 269 };
259 }; 270 };
260 271
272 sd: sdhc@5a400000 {
273 compatible = "socionext,uniphier-sd-v2.91";
274 status = "disabled";
275 reg = <0x5a400000 0x200>;
276 interrupts = <0 76 4>;
277 pinctrl-names = "default", "uhs";
278 pinctrl-0 = <&pinctrl_sd>;
279 pinctrl-1 = <&pinctrl_sd_uhs>;
280 clocks = <&mio_clk 0>;
281 reset-names = "host", "bridge";
282 resets = <&mio_rst 0>, <&mio_rst 3>;
283 bus-width = <4>;
284 cap-sd-highspeed;
285 sd-uhs-sdr12;
286 sd-uhs-sdr25;
287 sd-uhs-sdr50;
288 };
289
290 emmc: sdhc@5a500000 {
291 compatible = "socionext,uniphier-sd-v2.91";
292 status = "disabled";
293 reg = <0x5a500000 0x200>;
294 interrupts = <0 78 4>;
295 pinctrl-names = "default";
296 pinctrl-0 = <&pinctrl_emmc>;
297 clocks = <&mio_clk 1>;
298 reset-names = "host", "bridge", "hw";
299 resets = <&mio_rst 1>, <&mio_rst 4>, <&mio_rst 6>;
300 bus-width = <8>;
301 cap-mmc-highspeed;
302 cap-mmc-hw-reset;
303 non-removable;
304 };
305
306 sd1: sdhc@5a600000 {
307 compatible = "socionext,uniphier-sd-v2.91";
308 status = "disabled";
309 reg = <0x5a600000 0x200>;
310 interrupts = <0 85 4>;
311 pinctrl-names = "default";
312 pinctrl-0 = <&pinctrl_sd1>;
313 clocks = <&mio_clk 2>;
314 reset-names = "host", "bridge";
315 resets = <&mio_rst 2>, <&mio_rst 5>;
316 bus-width = <4>;
317 cap-sd-highspeed;
318 };
319
261 usb2: usb@5a800100 { 320 usb2: usb@5a800100 {
262 compatible = "socionext,uniphier-ehci", "generic-ehci"; 321 compatible = "socionext,uniphier-ehci", "generic-ehci";
263 status = "disabled"; 322 status = "disabled";
@@ -269,6 +328,8 @@
269 <&mio_clk 12>; 328 <&mio_clk 12>;
270 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>, 329 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
271 <&mio_rst 12>; 330 <&mio_rst 12>;
331 phy-names = "usb";
332 phys = <&usb_phy0>;
272 has-transaction-translator; 333 has-transaction-translator;
273 }; 334 };
274 335
@@ -283,6 +344,8 @@
283 <&mio_clk 13>; 344 <&mio_clk 13>;
284 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>, 345 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
285 <&mio_rst 13>; 346 <&mio_rst 13>;
347 phy-names = "usb";
348 phys = <&usb_phy1>;
286 has-transaction-translator; 349 has-transaction-translator;
287 }; 350 };
288 351
@@ -294,6 +357,34 @@
294 pinctrl: pinctrl { 357 pinctrl: pinctrl {
295 compatible = "socionext,uniphier-pro4-pinctrl"; 358 compatible = "socionext,uniphier-pro4-pinctrl";
296 }; 359 };
360
361 usb-phy {
362 compatible = "socionext,uniphier-pro4-usb2-phy";
363 #address-cells = <1>;
364 #size-cells = <0>;
365
366 usb_phy0: phy@0 {
367 reg = <0>;
368 #phy-cells = <0>;
369 };
370
371 usb_phy1: phy@1 {
372 reg = <1>;
373 #phy-cells = <0>;
374 };
375
376 usb_phy2: phy@2 {
377 reg = <2>;
378 #phy-cells = <0>;
379 vbus-supply = <&usb0_vbus>;
380 };
381
382 usb_phy3: phy@3 {
383 reg = <3>;
384 #phy-cells = <0>;
385 vbus-supply = <&usb1_vbus>;
386 };
387 };
297 }; 388 };
298 389
299 soc-glue@5f900000 { 390 soc-glue@5f900000 {
@@ -386,6 +477,101 @@
386 }; 477 };
387 }; 478 };
388 479
480 usb0: usb@65a00000 {
481 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
482 status = "disabled";
483 reg = <0x65a00000 0xcd00>;
484 interrupt-names = "host", "peripheral";
485 interrupts = <0 134 4>, <0 135 4>;
486 pinctrl-names = "default";
487 pinctrl-0 = <&pinctrl_usb0>;
488 clock-names = "ref", "bus_early", "suspend";
489 clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
490 resets = <&usb0_rst 4>;
491 phys = <&usb_phy2>, <&usb0_ssphy>;
492 dr_mode = "host";
493 };
494
495 usb-glue@65b00000 {
496 compatible = "socionext,uniphier-pro4-dwc3-glue",
497 "simple-mfd";
498 #address-cells = <1>;
499 #size-cells = <1>;
500 ranges = <0 0x65b00000 0x100>;
501
502 usb0_vbus: regulator@0 {
503 compatible = "socionext,uniphier-pro4-usb3-regulator";
504 reg = <0 0x10>;
505 clock-names = "gio", "link";
506 clocks = <&sys_clk 12>, <&sys_clk 14>;
507 reset-names = "gio", "link";
508 resets = <&sys_rst 12>, <&sys_rst 14>;
509 };
510
511 usb0_ssphy: ss-phy@10 {
512 compatible = "socionext,uniphier-pro4-usb3-ssphy";
513 reg = <0x10 0x10>;
514 #phy-cells = <0>;
515 clock-names = "gio", "link";
516 clocks = <&sys_clk 12>, <&sys_clk 14>;
517 reset-names = "gio", "link";
518 resets = <&sys_rst 12>, <&sys_rst 14>;
519 vbus-supply = <&usb0_vbus>;
520 };
521
522 usb0_rst: reset@40 {
523 compatible = "socionext,uniphier-pro4-usb3-reset";
524 reg = <0x40 0x4>;
525 #reset-cells = <1>;
526 clock-names = "gio", "link";
527 clocks = <&sys_clk 12>, <&sys_clk 14>;
528 reset-names = "gio", "link";
529 resets = <&sys_rst 12>, <&sys_rst 14>;
530 };
531 };
532
533 usb1: usb@65c00000 {
534 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
535 status = "disabled";
536 reg = <0x65c00000 0xcd00>;
537 interrupt-names = "host", "peripheral";
538 interrupts = <0 137 4>, <0 138 4>;
539 pinctrl-names = "default";
540 pinctrl-0 = <&pinctrl_usb1>;
541 clock-names = "ref", "bus_early", "suspend";
542 clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
543 resets = <&usb1_rst 4>;
544 phys = <&usb_phy3>;
545 dr_mode = "host";
546 };
547
548 usb-glue@65d00000 {
549 compatible = "socionext,uniphier-pro4-dwc3-glue",
550 "simple-mfd";
551 #address-cells = <1>;
552 #size-cells = <1>;
553 ranges = <0 0x65d00000 0x100>;
554
555 usb1_vbus: regulator@0 {
556 compatible = "socionext,uniphier-pro4-usb3-regulator";
557 reg = <0 0x10>;
558 clock-names = "gio", "link";
559 clocks = <&sys_clk 12>, <&sys_clk 15>;
560 reset-names = "gio", "link";
561 resets = <&sys_rst 12>, <&sys_rst 15>;
562 };
563
564 usb1_rst: reset@40 {
565 compatible = "socionext,uniphier-pro4-usb3-reset";
566 reg = <0x40 0x4>;
567 #reset-cells = <1>;
568 clock-names = "gio", "link";
569 clocks = <&sys_clk 12>, <&sys_clk 15>;
570 reset-names = "gio", "link";
571 resets = <&sys_rst 12>, <&sys_rst 15>;
572 };
573 };
574
389 nand: nand@68000000 { 575 nand: nand@68000000 {
390 compatible = "socionext,uniphier-denali-nand-v5a"; 576 compatible = "socionext,uniphier-denali-nand-v5a";
391 status = "disabled"; 577 status = "disabled";
@@ -394,7 +580,8 @@
394 interrupts = <0 65 4>; 580 interrupts = <0 65 4>;
395 pinctrl-names = "default"; 581 pinctrl-names = "default";
396 pinctrl-0 = <&pinctrl_nand>; 582 pinctrl-0 = <&pinctrl_nand>;
397 clocks = <&sys_clk 2>; 583 clock-names = "nand", "nand_x", "ecc";
584 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
398 resets = <&sys_rst 2>; 585 resets = <&sys_rst 2>;
399 }; 586 };
400 }; 587 };
diff --git a/arch/arm/boot/dts/uniphier-pro5.dtsi b/arch/arm/boot/dts/uniphier-pro5.dtsi
index 06c2cef91ec7..365738739412 100644
--- a/arch/arm/boot/dts/uniphier-pro5.dtsi
+++ b/arch/arm/boot/dts/uniphier-pro5.dtsi
@@ -156,6 +156,28 @@
156 cache-level = <3>; 156 cache-level = <3>;
157 }; 157 };
158 158
159 spi0: spi@54006000 {
160 compatible = "socionext,uniphier-scssi";
161 status = "disabled";
162 reg = <0x54006000 0x100>;
163 interrupts = <0 39 4>;
164 pinctrl-names = "default";
165 pinctrl-0 = <&pinctrl_spi0>;
166 clocks = <&peri_clk 11>;
167 resets = <&peri_rst 11>;
168 };
169
170 spi1: spi@54006100 {
171 compatible = "socionext,uniphier-scssi";
172 status = "disabled";
173 reg = <0x54006100 0x100>;
174 interrupts = <0 216 4>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_spi1>;
177 clocks = <&peri_clk 11>;
178 resets = <&peri_rst 11>;
179 };
180
159 serial0: serial@54006800 { 181 serial0: serial@54006800 {
160 compatible = "socionext,uniphier-uart"; 182 compatible = "socionext,uniphier-uart";
161 status = "disabled"; 183 status = "disabled";
@@ -439,9 +461,44 @@
439 interrupts = <0 65 4>; 461 interrupts = <0 65 4>;
440 pinctrl-names = "default"; 462 pinctrl-names = "default";
441 pinctrl-0 = <&pinctrl_nand2cs>; 463 pinctrl-0 = <&pinctrl_nand2cs>;
442 clocks = <&sys_clk 2>; 464 clock-names = "nand", "nand_x", "ecc";
465 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
443 resets = <&sys_rst 2>; 466 resets = <&sys_rst 2>;
444 }; 467 };
468
469 emmc: sdhc@68400000 {
470 compatible = "socionext,uniphier-sd-v3.1";
471 status = "disabled";
472 reg = <0x68400000 0x800>;
473 interrupts = <0 78 4>;
474 pinctrl-names = "default";
475 pinctrl-0 = <&pinctrl_emmc>;
476 clocks = <&sd_clk 1>;
477 reset-names = "host", "hw";
478 resets = <&sd_rst 1>, <&sd_rst 6>;
479 bus-width = <8>;
480 cap-mmc-highspeed;
481 cap-mmc-hw-reset;
482 non-removable;
483 };
484
485 sd: sdhc@68800000 {
486 compatible = "socionext,uniphier-sd-v3.1";
487 status = "disabled";
488 reg = <0x68800000 0x800>;
489 interrupts = <0 76 4>;
490 pinctrl-names = "default", "uhs";
491 pinctrl-0 = <&pinctrl_sd>;
492 pinctrl-1 = <&pinctrl_sd_uhs>;
493 clocks = <&sd_clk 0>;
494 reset-names = "host";
495 resets = <&sd_rst 0>;
496 bus-width = <4>;
497 cap-sd-highspeed;
498 sd-uhs-sdr12;
499 sd-uhs-sdr25;
500 sd-uhs-sdr50;
501 };
445 }; 502 };
446}; 503};
447 504
diff --git a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
index bed26b8ed9a3..e27fd4f2a569 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-gentil.dts
@@ -76,6 +76,10 @@
76 }; 76 };
77}; 77};
78 78
79&emmc {
80 status = "okay";
81};
82
79&eth { 83&eth {
80 status = "okay"; 84 status = "okay";
81 phy-handle = <&ethphy>; 85 phy-handle = <&ethphy>;
@@ -86,3 +90,11 @@
86 reg = <1>; 90 reg = <1>;
87 }; 91 };
88}; 92};
93
94&usb0 {
95 status = "okay";
96};
97
98&usb1 {
99 status = "okay";
100};
diff --git a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
index b13d2d16ddad..23fe42b7408b 100644
--- a/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
+++ b/arch/arm/boot/dts/uniphier-pxs2-vodka.dts
@@ -77,6 +77,10 @@
77 status = "okay"; 77 status = "okay";
78}; 78};
79 79
80&emmc {
81 status = "okay";
82};
83
80&eth { 84&eth {
81 status = "okay"; 85 status = "okay";
82 phy-handle = <&ethphy>; 86 phy-handle = <&ethphy>;
@@ -87,3 +91,7 @@
87 reg = <1>; 91 reg = <1>;
88 }; 92 };
89}; 93};
94
95&usb0 {
96 status = "okay";
97};
diff --git a/arch/arm/boot/dts/uniphier-pxs2.dtsi b/arch/arm/boot/dts/uniphier-pxs2.dtsi
index e2d1a22c5950..8d20e9548e39 100644
--- a/arch/arm/boot/dts/uniphier-pxs2.dtsi
+++ b/arch/arm/boot/dts/uniphier-pxs2.dtsi
@@ -167,6 +167,28 @@
167 cache-level = <2>; 167 cache-level = <2>;
168 }; 168 };
169 169
170 spi0: spi@54006000 {
171 compatible = "socionext,uniphier-scssi";
172 status = "disabled";
173 reg = <0x54006000 0x100>;
174 interrupts = <0 39 4>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&pinctrl_spi0>;
177 clocks = <&peri_clk 11>;
178 resets = <&peri_rst 11>;
179 };
180
181 spi1: spi@54006100 {
182 compatible = "socionext,uniphier-scssi";
183 status = "disabled";
184 reg = <0x54006100 0x100>;
185 interrupts = <0 216 4>;
186 pinctrl-names = "default";
187 pinctrl-0 = <&pinctrl_spi1>;
188 clocks = <&peri_clk 11>;
189 resets = <&peri_rst 11>;
190 };
191
170 serial0: serial@54006800 { 192 serial0: serial@54006800 {
171 compatible = "socionext,uniphier-uart"; 193 compatible = "socionext,uniphier-uart";
172 status = "disabled"; 194 status = "disabled";
@@ -422,6 +444,40 @@
422 }; 444 };
423 }; 445 };
424 446
447 emmc: sdhc@5a000000 {
448 compatible = "socionext,uniphier-sd-v3.1.1";
449 status = "disabled";
450 reg = <0x5a000000 0x800>;
451 interrupts = <0 78 4>;
452 pinctrl-names = "default";
453 pinctrl-0 = <&pinctrl_emmc>;
454 clocks = <&sd_clk 1>;
455 reset-names = "host", "hw";
456 resets = <&sd_rst 1>, <&sd_rst 6>;
457 bus-width = <8>;
458 cap-mmc-highspeed;
459 cap-mmc-hw-reset;
460 non-removable;
461 };
462
463 sd: sdhc@5a400000 {
464 compatible = "socionext,uniphier-sd-v3.1.1";
465 status = "disabled";
466 reg = <0x5a400000 0x800>;
467 interrupts = <0 76 4>;
468 pinctrl-names = "default", "uhs";
469 pinctrl-0 = <&pinctrl_sd>;
470 pinctrl-1 = <&pinctrl_sd_uhs>;
471 clocks = <&sd_clk 0>;
472 reset-names = "host";
473 resets = <&sd_rst 0>;
474 bus-width = <4>;
475 cap-sd-highspeed;
476 sd-uhs-sdr12;
477 sd-uhs-sdr25;
478 sd-uhs-sdr50;
479 };
480
425 soc_glue: soc-glue@5f800000 { 481 soc_glue: soc-glue@5f800000 {
426 compatible = "socionext,uniphier-pxs2-soc-glue", 482 compatible = "socionext,uniphier-pxs2-soc-glue",
427 "simple-mfd", "syscon"; 483 "simple-mfd", "syscon";
@@ -523,6 +579,186 @@
523 }; 579 };
524 }; 580 };
525 581
582 usb0: usb@65a00000 {
583 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
584 status = "disabled";
585 reg = <0x65a00000 0xcd00>;
586 interrupt-names = "host", "peripheral";
587 interrupts = <0 134 4>, <0 135 4>;
588 pinctrl-names = "default";
589 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
590 clock-names = "ref", "bus_early", "suspend";
591 clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
592 resets = <&usb0_rst 15>;
593 phys = <&usb0_hsphy0>, <&usb0_hsphy1>,
594 <&usb0_ssphy0>, <&usb0_ssphy1>;
595 dr_mode = "host";
596 };
597
598 usb-glue@65b00000 {
599 compatible = "socionext,uniphier-pxs2-dwc3-glue",
600 "simple-mfd";
601 #address-cells = <1>;
602 #size-cells = <1>;
603 ranges = <0 0x65b00000 0x400>;
604
605 usb0_rst: reset@0 {
606 compatible = "socionext,uniphier-pxs2-usb3-reset";
607 reg = <0x0 0x4>;
608 #reset-cells = <1>;
609 clock-names = "link";
610 clocks = <&sys_clk 14>;
611 reset-names = "link";
612 resets = <&sys_rst 14>;
613 };
614
615 usb0_vbus0: regulator@100 {
616 compatible = "socionext,uniphier-pxs2-usb3-regulator";
617 reg = <0x100 0x10>;
618 clock-names = "link";
619 clocks = <&sys_clk 14>;
620 reset-names = "link";
621 resets = <&sys_rst 14>;
622 };
623
624 usb0_vbus1: regulator@110 {
625 compatible = "socionext,uniphier-pxs2-usb3-regulator";
626 reg = <0x110 0x10>;
627 clock-names = "link";
628 clocks = <&sys_clk 14>;
629 reset-names = "link";
630 resets = <&sys_rst 14>;
631 };
632
633 usb0_hsphy0: hs-phy@200 {
634 compatible = "socionext,uniphier-pxs2-usb3-hsphy";
635 reg = <0x200 0x10>;
636 #phy-cells = <0>;
637 clock-names = "link", "phy";
638 clocks = <&sys_clk 14>, <&sys_clk 16>;
639 reset-names = "link", "phy";
640 resets = <&sys_rst 14>, <&sys_rst 16>;
641 vbus-supply = <&usb0_vbus0>;
642 };
643
644 usb0_hsphy1: hs-phy@210 {
645 compatible = "socionext,uniphier-pxs2-usb3-hsphy";
646 reg = <0x210 0x10>;
647 #phy-cells = <0>;
648 clock-names = "link", "phy";
649 clocks = <&sys_clk 14>, <&sys_clk 16>;
650 reset-names = "link", "phy";
651 resets = <&sys_rst 14>, <&sys_rst 16>;
652 vbus-supply = <&usb0_vbus1>;
653 };
654
655 usb0_ssphy0: ss-phy@300 {
656 compatible = "socionext,uniphier-pxs2-usb3-ssphy";
657 reg = <0x300 0x10>;
658 #phy-cells = <0>;
659 clock-names = "link", "phy";
660 clocks = <&sys_clk 14>, <&sys_clk 17>;
661 reset-names = "link", "phy";
662 resets = <&sys_rst 14>, <&sys_rst 17>;
663 vbus-supply = <&usb0_vbus0>;
664 };
665
666 usb0_ssphy1: ss-phy@310 {
667 compatible = "socionext,uniphier-pxs2-usb3-ssphy";
668 reg = <0x310 0x10>;
669 #phy-cells = <0>;
670 clock-names = "link", "phy";
671 clocks = <&sys_clk 14>, <&sys_clk 18>;
672 reset-names = "link", "phy";
673 resets = <&sys_rst 14>, <&sys_rst 18>;
674 vbus-supply = <&usb0_vbus1>;
675 };
676 };
677
678 usb1: usb@65c00000 {
679 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
680 status = "disabled";
681 reg = <0x65c00000 0xcd00>;
682 interrupt-names = "host", "peripheral";
683 interrupts = <0 137 4>, <0 138 4>;
684 pinctrl-names = "default";
685 pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
686 clock-names = "ref", "bus_early", "suspend";
687 clocks = <&sys_clk 15>, <&sys_clk 15>, <&sys_clk 15>;
688 resets = <&usb1_rst 15>;
689 phys = <&usb1_hsphy0>, <&usb1_hsphy1>, <&usb1_ssphy0>;
690 dr_mode = "host";
691 };
692
693 usb-glue@65d00000 {
694 compatible = "socionext,uniphier-pxs2-dwc3-glue",
695 "simple-mfd";
696 #address-cells = <1>;
697 #size-cells = <1>;
698 ranges = <0 0x65d00000 0x400>;
699
700 usb1_rst: reset@0 {
701 compatible = "socionext,uniphier-pxs2-usb3-reset";
702 reg = <0x0 0x4>;
703 #reset-cells = <1>;
704 clock-names = "link";
705 clocks = <&sys_clk 15>;
706 reset-names = "link";
707 resets = <&sys_rst 15>;
708 };
709
710 usb1_vbus0: regulator@100 {
711 compatible = "socionext,uniphier-pxs2-usb3-regulator";
712 reg = <0x100 0x10>;
713 clock-names = "link";
714 clocks = <&sys_clk 15>;
715 reset-names = "link";
716 resets = <&sys_rst 15>;
717 };
718
719 usb1_vbus1: regulator@110 {
720 compatible = "socionext,uniphier-pxs2-usb3-regulator";
721 reg = <0x110 0x10>;
722 clock-names = "link";
723 clocks = <&sys_clk 15>;
724 reset-names = "link";
725 resets = <&sys_rst 15>;
726 };
727
728 usb1_hsphy0: hs-phy@200 {
729 compatible = "socionext,uniphier-pxs2-usb3-hsphy";
730 reg = <0x200 0x10>;
731 #phy-cells = <0>;
732 clock-names = "link", "phy";
733 clocks = <&sys_clk 15>, <&sys_clk 20>;
734 reset-names = "link", "phy";
735 resets = <&sys_rst 15>, <&sys_rst 20>;
736 vbus-supply = <&usb1_vbus0>;
737 };
738
739 usb1_hsphy1: hs-phy@210 {
740 compatible = "socionext,uniphier-pxs2-usb3-hsphy";
741 reg = <0x210 0x10>;
742 #phy-cells = <0>;
743 clock-names = "link", "phy";
744 clocks = <&sys_clk 15>, <&sys_clk 20>;
745 reset-names = "link", "phy";
746 resets = <&sys_rst 15>, <&sys_rst 20>;
747 vbus-supply = <&usb1_vbus1>;
748 };
749
750 usb1_ssphy0: ss-phy@300 {
751 compatible = "socionext,uniphier-pxs2-usb3-ssphy";
752 reg = <0x300 0x10>;
753 #phy-cells = <0>;
754 clock-names = "link", "phy";
755 clocks = <&sys_clk 15>, <&sys_clk 21>;
756 reset-names = "link", "phy";
757 resets = <&sys_rst 15>, <&sys_rst 21>;
758 vbus-supply = <&usb1_vbus0>;
759 };
760 };
761
526 nand: nand@68000000 { 762 nand: nand@68000000 {
527 compatible = "socionext,uniphier-denali-nand-v5b"; 763 compatible = "socionext,uniphier-denali-nand-v5b";
528 status = "disabled"; 764 status = "disabled";
@@ -531,7 +767,8 @@
531 interrupts = <0 65 4>; 767 interrupts = <0 65 4>;
532 pinctrl-names = "default"; 768 pinctrl-names = "default";
533 pinctrl-0 = <&pinctrl_nand2cs>; 769 pinctrl-0 = <&pinctrl_nand2cs>;
534 clocks = <&sys_clk 2>; 770 clock-names = "nand", "nand_x", "ecc";
771 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
535 resets = <&sys_rst 2>; 772 resets = <&sys_rst 2>;
536 }; 773 };
537 }; 774 };
diff --git a/arch/arm/boot/dts/uniphier-sld8-ref.dts b/arch/arm/boot/dts/uniphier-sld8-ref.dts
index fe386fa2ea4b..01bf94c6b93a 100644
--- a/arch/arm/boot/dts/uniphier-sld8-ref.dts
+++ b/arch/arm/boot/dts/uniphier-sld8-ref.dts
@@ -63,6 +63,10 @@
63 status = "okay"; 63 status = "okay";
64}; 64};
65 65
66&sd {
67 status = "okay";
68};
69
66&usb0 { 70&usb0 {
67 status = "okay"; 71 status = "okay";
68}; 72};
diff --git a/arch/arm/boot/dts/uniphier-sld8.dtsi b/arch/arm/boot/dts/uniphier-sld8.dtsi
index e9b9b4f3c558..f7fcf6b45995 100644
--- a/arch/arm/boot/dts/uniphier-sld8.dtsi
+++ b/arch/arm/boot/dts/uniphier-sld8.dtsi
@@ -63,6 +63,17 @@
63 cache-level = <2>; 63 cache-level = <2>;
64 }; 64 };
65 65
66 spi: spi@54006000 {
67 compatible = "socionext,uniphier-scssi";
68 status = "disabled";
69 reg = <0x54006000 0x100>;
70 interrupts = <0 39 4>;
71 pinctrl-names = "default";
72 pinctrl-0 = <&pinctrl_spi0>;
73 clocks = <&peri_clk 11>;
74 resets = <&peri_rst 11>;
75 };
76
66 serial0: serial@54006800 { 77 serial0: serial@54006800 {
67 compatible = "socionext,uniphier-uart"; 78 compatible = "socionext,uniphier-uart";
68 status = "disabled"; 79 status = "disabled";
@@ -228,6 +239,40 @@
228 }; 239 };
229 }; 240 };
230 241
242 sd: sdhc@5a400000 {
243 compatible = "socionext,uniphier-sd-v2.91";
244 status = "disabled";
245 reg = <0x5a400000 0x200>;
246 interrupts = <0 76 4>;
247 pinctrl-names = "default", "uhs";
248 pinctrl-0 = <&pinctrl_sd>;
249 pinctrl-1 = <&pinctrl_sd_uhs>;
250 clocks = <&mio_clk 0>;
251 reset-names = "host", "bridge";
252 resets = <&mio_rst 0>, <&mio_rst 3>;
253 bus-width = <4>;
254 cap-sd-highspeed;
255 sd-uhs-sdr12;
256 sd-uhs-sdr25;
257 sd-uhs-sdr50;
258 };
259
260 emmc: sdhc@5a500000 {
261 compatible = "socionext,uniphier-sd-v2.91";
262 status = "disabled";
263 reg = <0x5a500000 0x200>;
264 interrupts = <0 78 4>;
265 pinctrl-names = "default";
266 pinctrl-0 = <&pinctrl_emmc>;
267 clocks = <&mio_clk 1>;
268 reset-names = "host", "bridge", "hw";
269 resets = <&mio_rst 1>, <&mio_rst 4>, <&mio_rst 6>;
270 bus-width = <8>;
271 cap-mmc-highspeed;
272 cap-mmc-hw-reset;
273 non-removable;
274 };
275
231 usb0: usb@5a800100 { 276 usb0: usb@5a800100 {
232 compatible = "socionext,uniphier-ehci", "generic-ehci"; 277 compatible = "socionext,uniphier-ehci", "generic-ehci";
233 status = "disabled"; 278 status = "disabled";
@@ -351,7 +396,8 @@
351 interrupts = <0 65 4>; 396 interrupts = <0 65 4>;
352 pinctrl-names = "default"; 397 pinctrl-names = "default";
353 pinctrl-0 = <&pinctrl_nand2cs>; 398 pinctrl-0 = <&pinctrl_nand2cs>;
354 clocks = <&sys_clk 2>; 399 clock-names = "nand", "nand_x", "ecc";
400 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
355 resets = <&sys_rst 2>; 401 resets = <&sys_rst 2>;
356 }; 402 };
357 }; 403 };
diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts
index 5f61d3609027..6f4f60ba5429 100644
--- a/arch/arm/boot/dts/versatile-ab.dts
+++ b/arch/arm/boot/dts/versatile-ab.dts
@@ -373,7 +373,7 @@
373 clock-names = "apb_pclk"; 373 clock-names = "apb_pclk";
374 }; 374 };
375 375
376 ssp@101f4000 { 376 spi@101f4000 {
377 compatible = "arm,pl022", "arm,primecell"; 377 compatible = "arm,pl022", "arm,primecell";
378 reg = <0x101f4000 0x1000>; 378 reg = <0x101f4000 0x1000>;
379 interrupts = <11>; 379 interrupts = <11>;
diff --git a/arch/arm/boot/dts/vf500.dtsi b/arch/arm/boot/dts/vf500.dtsi
index bbff0115e2fb..76a0949df4a8 100644
--- a/arch/arm/boot/dts/vf500.dtsi
+++ b/arch/arm/boot/dts/vf500.dtsi
@@ -1,43 +1,6 @@
1/* 1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 * Copyright 2013 Freescale Semiconductor, Inc. 2//
3 * 3// Copyright 2013 Freescale Semiconductor, Inc.
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 "AS IS", 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 4
42#include "vfxxx.dtsi" 5#include "vfxxx.dtsi"
43#include <dt-bindings/interrupt-controller/arm-gic.h> 6#include <dt-bindings/interrupt-controller/arm-gic.h>
diff --git a/arch/arm/boot/dts/vf610-twr.dts b/arch/arm/boot/dts/vf610-twr.dts
index 6be7a828ae64..59fceea8805d 100644
--- a/arch/arm/boot/dts/vf610-twr.dts
+++ b/arch/arm/boot/dts/vf610-twr.dts
@@ -1,43 +1,6 @@
1/* 1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 * Copyright 2013 Freescale Semiconductor, Inc. 2//
3 * 3// Copyright 2013 Freescale Semiconductor, Inc.
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 "AS IS", 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 4
42/dts-v1/; 5/dts-v1/;
43#include "vf610.dtsi" 6#include "vf610.dtsi"
diff --git a/arch/arm/boot/dts/vf610-zii-cfu1.dts b/arch/arm/boot/dts/vf610-zii-cfu1.dts
index 37777cf22e67..b76c3d0413df 100644
--- a/arch/arm/boot/dts/vf610-zii-cfu1.dts
+++ b/arch/arm/boot/dts/vf610-zii-cfu1.dts
@@ -66,6 +66,15 @@
66 regulator-min-microvolt = <3300000>; 66 regulator-min-microvolt = <3300000>;
67 regulator-max-microvolt = <3300000>; 67 regulator-max-microvolt = <3300000>;
68 }; 68 };
69
70 sff: sfp {
71 compatible = "sff,sff";
72 pinctrl-0 = <&pinctrl_optical>;
73 pinctrl-names = "default";
74 i2c-bus = <&i2c0>;
75 los-gpio = <&gpio4 4 GPIO_ACTIVE_HIGH>;
76 tx-disable-gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
77 };
69}; 78};
70 79
71&adc0 { 80&adc0 {
@@ -113,6 +122,8 @@
113 non-removable; 122 non-removable;
114 no-1-8-v; 123 no-1-8-v;
115 keep-power-in-suspend; 124 keep-power-in-suspend;
125 no-sdio;
126 no-sd;
116 status = "okay"; 127 status = "okay";
117}; 128};
118 129
@@ -120,6 +131,7 @@
120 pinctrl-names = "default"; 131 pinctrl-names = "default";
121 pinctrl-0 = <&pinctrl_esdhc1>; 132 pinctrl-0 = <&pinctrl_esdhc1>;
122 bus-width = <4>; 133 bus-width = <4>;
134 no-sdio;
123 status = "okay"; 135 status = "okay";
124}; 136};
125 137
@@ -170,6 +182,14 @@
170 label = "eth_cu_1000_3"; 182 label = "eth_cu_1000_3";
171 }; 183 };
172 184
185 port@5 {
186 reg = <5>;
187 label = "eth_fc_1000_1";
188 phy-mode = "1000base-x";
189 managed = "in-band-status";
190 sfp = <&sff>;
191 };
192
173 port@6 { 193 port@6 {
174 reg = <6>; 194 reg = <6>;
175 label = "cpu"; 195 label = "cpu";
@@ -289,6 +309,16 @@
289 >; 309 >;
290 }; 310 };
291 311
312 pinctrl_optical: optical-grp {
313 fsl,pins = <
314 /* SFF SD input */
315 VF610_PAD_PTE27__GPIO_132 0x3061
316
317 /* SFF Transmit disable output */
318 VF610_PAD_PTE13__GPIO_118 0x3043
319 >;
320 };
321
292 pinctrl_switch: switch-grp { 322 pinctrl_switch: switch-grp {
293 fsl,pins = < 323 fsl,pins = <
294 VF610_PAD_PTB28__GPIO_98 0x3061 324 VF610_PAD_PTB28__GPIO_98 0x3061
diff --git a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
index 0b1e94c6f25b..6f4a5602cefd 100644
--- a/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
+++ b/arch/arm/boot/dts/vf610-zii-dev-rev-c.dts
@@ -200,6 +200,13 @@
200 phy-handle = <&switch1phy4>; 200 phy-handle = <&switch1phy4>;
201 }; 201 };
202 202
203 port@9 {
204 reg = <9>;
205 label = "sff2";
206 phy-mode = "sgmii";
207 managed = "in-band-status";
208 sfp = <&sff2>;
209 };
203 210
204 switch1port10: port@10 { 211 switch1port10: port@10 {
205 reg = <10>; 212 reg = <10>;
@@ -245,6 +252,22 @@
245 #size-cells = <0>; 252 #size-cells = <0>;
246 }; 253 };
247 }; 254 };
255
256 sff2: sff2 {
257 /* lower */
258 compatible = "sff,sff";
259 i2c-bus = <&sff2_i2c>;
260 los-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
261 tx-disable-gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>;
262 };
263
264 sff3: sff3 {
265 /* upper */
266 compatible = "sff,sff";
267 i2c-bus = <&sff3_i2c>;
268 los-gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>;
269 tx-disable-gpios = <&gpio6 15 GPIO_ACTIVE_HIGH>;
270 };
248}; 271};
249 272
250&dspi0 { 273&dspi0 {
@@ -329,13 +352,6 @@
329 interrupts = <23 IRQ_TYPE_EDGE_FALLING>; 352 interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
330 gpio-controller; 353 gpio-controller;
331 interrupt-controller; 354 interrupt-controller;
332
333 enet_swr_en {
334 gpio-hog;
335 gpios = <0 GPIO_ACTIVE_HIGH>;
336 output-high;
337 line-name = "enet-swr-en";
338 };
339 }; 355 };
340 356
341 /* 357 /*
@@ -378,26 +394,16 @@
378 reg = <0>; 394 reg = <0>;
379 }; 395 };
380 396
381 i2c@1 { 397 sff2_i2c: i2c@1 {
382 #address-cells = <1>; 398 #address-cells = <1>;
383 #size-cells = <0>; 399 #size-cells = <0>;
384 reg = <1>; 400 reg = <1>;
385
386 sfp2: at24c04@50 {
387 compatible = "atmel,24c02";
388 reg = <0x50>;
389 };
390 }; 401 };
391 402
392 i2c@2 { 403 sff3_i2c: i2c@2 {
393 #address-cells = <1>; 404 #address-cells = <1>;
394 #size-cells = <0>; 405 #size-cells = <0>;
395 reg = <2>; 406 reg = <2>;
396
397 sfp3: at24c04@50 {
398 compatible = "atmel,24c02";
399 reg = <0x50>;
400 };
401 }; 407 };
402 408
403 i2c@3 { 409 i2c@3 {
diff --git a/arch/arm/boot/dts/vf610.dtsi b/arch/arm/boot/dts/vf610.dtsi
index 80fef182c672..7fd39817f8ab 100644
--- a/arch/arm/boot/dts/vf610.dtsi
+++ b/arch/arm/boot/dts/vf610.dtsi
@@ -1,43 +1,7 @@
1/* 1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 * Copyright 2013 Freescale Semiconductor, Inc. 2//
3 * 3// Copyright 2013 Freescale Semiconductor, Inc.
4 * This file is dual-licensed: you can use it either under the terms 4
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 "AS IS", 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 5
42#include "vf500.dtsi" 6#include "vf500.dtsi"
43 7
diff --git a/arch/arm/boot/dts/vfxxx.dtsi b/arch/arm/boot/dts/vfxxx.dtsi
index d392794d9c13..028e0ec30e0c 100644
--- a/arch/arm/boot/dts/vfxxx.dtsi
+++ b/arch/arm/boot/dts/vfxxx.dtsi
@@ -1,43 +1,6 @@
1/* 1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 * Copyright 2013 Freescale Semiconductor, Inc. 2//
3 * 3// Copyright 2013 Freescale Semiconductor, Inc.
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 "AS IS", 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 4
42#include "vf610-pinfunc.h" 5#include "vf610-pinfunc.h"
43#include <dt-bindings/clock/vf610-clock.h> 6#include <dt-bindings/clock/vf610-clock.h>
@@ -190,7 +153,7 @@
190 status = "disabled"; 153 status = "disabled";
191 }; 154 };
192 155
193 dspi0: dspi0@4002c000 { 156 dspi0: spi@4002c000 {
194 #address-cells = <1>; 157 #address-cells = <1>;
195 #size-cells = <0>; 158 #size-cells = <0>;
196 compatible = "fsl,vf610-dspi"; 159 compatible = "fsl,vf610-dspi";
@@ -205,7 +168,7 @@
205 status = "disabled"; 168 status = "disabled";
206 }; 169 };
207 170
208 dspi1: dspi1@4002d000 { 171 dspi1: spi@4002d000 {
209 #address-cells = <1>; 172 #address-cells = <1>;
210 #size-cells = <0>; 173 #size-cells = <0>;
211 compatible = "fsl,vf610-dspi"; 174 compatible = "fsl,vf610-dspi";
@@ -339,7 +302,7 @@
339 status = "disabled"; 302 status = "disabled";
340 }; 303 };
341 304
342 qspi0: quadspi@40044000 { 305 qspi0: spi@40044000 {
343 #address-cells = <1>; 306 #address-cells = <1>;
344 #size-cells = <0>; 307 #size-cells = <0>;
345 compatible = "fsl,vf610-qspi"; 308 compatible = "fsl,vf610-qspi";
@@ -569,7 +532,7 @@
569 status = "disabled"; 532 status = "disabled";
570 }; 533 };
571 534
572 dspi2: dspi2@400ac000 { 535 dspi2: spi@400ac000 {
573 #address-cells = <1>; 536 #address-cells = <1>;
574 #size-cells = <0>; 537 #size-cells = <0>;
575 compatible = "fsl,vf610-dspi"; 538 compatible = "fsl,vf610-dspi";
@@ -584,7 +547,7 @@
584 status = "disabled"; 547 status = "disabled";
585 }; 548 };
586 549
587 dspi3: dspi3@400ad000 { 550 dspi3: spi@400ad000 {
588 #address-cells = <1>; 551 #address-cells = <1>;
589 #size-cells = <0>; 552 #size-cells = <0>;
590 compatible = "fsl,vf610-dspi"; 553 compatible = "fsl,vf610-dspi";
@@ -665,7 +628,7 @@
665 status = "disabled"; 628 status = "disabled";
666 }; 629 };
667 630
668 qspi1: quadspi@400c4000 { 631 qspi1: spi@400c4000 {
669 #address-cells = <1>; 632 #address-cells = <1>;
670 #size-cells = <0>; 633 #size-cells = <0>;
671 compatible = "fsl,vf610-qspi"; 634 compatible = "fsl,vf610-qspi";
diff --git a/arch/arm/boot/dts/zynq-zc702.dts b/arch/arm/boot/dts/zynq-zc702.dts
index cc5a3dc2b4a0..27cd6cb52f1b 100644
--- a/arch/arm/boot/dts/zynq-zc702.dts
+++ b/arch/arm/boot/dts/zynq-zc702.dts
@@ -174,17 +174,17 @@
174 #address-cells = <1>; 174 #address-cells = <1>;
175 #size-cells = <0>; 175 #size-cells = <0>;
176 reg = <7>; 176 reg = <7>;
177 hwmon@52 { 177 hwmon@34 {
178 compatible = "ti,ucd9248"; 178 compatible = "ti,ucd9248";
179 reg = <52>; 179 reg = <0x34>;
180 }; 180 };
181 hwmon@53 { 181 hwmon@35 {
182 compatible = "ti,ucd9248"; 182 compatible = "ti,ucd9248";
183 reg = <53>; 183 reg = <0x35>;
184 }; 184 };
185 hwmon@54 { 185 hwmon@36 {
186 compatible = "ti,ucd9248"; 186 compatible = "ti,ucd9248";
187 reg = <54>; 187 reg = <0x36>;
188 }; 188 };
189 }; 189 };
190 }; 190 };
diff --git a/arch/arm/boot/dts/zynq-zc770-xm010.dts b/arch/arm/boot/dts/zynq-zc770-xm010.dts
index 0e1bfdd3421f..0dd352289a45 100644
--- a/arch/arm/boot/dts/zynq-zc770-xm010.dts
+++ b/arch/arm/boot/dts/zynq-zc770-xm010.dts
@@ -68,7 +68,7 @@
68 status = "okay"; 68 status = "okay";
69 num-cs = <4>; 69 num-cs = <4>;
70 is-decoded-cs = <0>; 70 is-decoded-cs = <0>;
71 flash@0 { 71 flash@1 {
72 compatible = "sst25wf080", "jedec,spi-nor"; 72 compatible = "sst25wf080", "jedec,spi-nor";
73 reg = <1>; 73 reg = <1>;
74 spi-max-frequency = <1000000>; 74 spi-max-frequency = <1000000>;
diff --git a/arch/arm/boot/dts/zynq-zc770-xm013.dts b/arch/arm/boot/dts/zynq-zc770-xm013.dts
index 651913f1afa2..4ae2c85df3a0 100644
--- a/arch/arm/boot/dts/zynq-zc770-xm013.dts
+++ b/arch/arm/boot/dts/zynq-zc770-xm013.dts
@@ -62,7 +62,7 @@
62 status = "okay"; 62 status = "okay";
63 num-cs = <4>; 63 num-cs = <4>;
64 is-decoded-cs = <0>; 64 is-decoded-cs = <0>;
65 eeprom: eeprom@0 { 65 eeprom: eeprom@2 {
66 at25,byte-len = <8192>; 66 at25,byte-len = <8192>;
67 at25,addr-mode = <2>; 67 at25,addr-mode = <2>;
68 at25,page-size = <32>; 68 at25,page-size = <32>;
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index dcd21bb95e3b..f96730cce6e8 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -110,6 +110,7 @@ void exynos_firmware_init(void);
110#define EXYNOS_SLEEP_MAGIC 0x00000bad 110#define EXYNOS_SLEEP_MAGIC 0x00000bad
111#define EXYNOS_AFTR_MAGIC 0xfcba0d10 111#define EXYNOS_AFTR_MAGIC 0xfcba0d10
112 112
113bool __init exynos_secure_firmware_available(void);
113void exynos_set_boot_flag(unsigned int cpu, unsigned int mode); 114void exynos_set_boot_flag(unsigned int cpu, unsigned int mode);
114void exynos_clear_boot_flag(unsigned int cpu, unsigned int mode); 115void exynos_clear_boot_flag(unsigned int cpu, unsigned int mode);
115 116
diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
index be1f20fe28f4..d602e3bf3f96 100644
--- a/arch/arm/mach-exynos/firmware.c
+++ b/arch/arm/mach-exynos/firmware.c
@@ -185,7 +185,7 @@ static void exynos_l2_configure(const struct l2x0_regs *regs)
185 exynos_smc(SMC_CMD_L2X0SETUP2, regs->pwr_ctrl, regs->aux_ctrl, 0); 185 exynos_smc(SMC_CMD_L2X0SETUP2, regs->pwr_ctrl, regs->aux_ctrl, 0);
186} 186}
187 187
188void __init exynos_firmware_init(void) 188bool __init exynos_secure_firmware_available(void)
189{ 189{
190 struct device_node *nd; 190 struct device_node *nd;
191 const __be32 *addr; 191 const __be32 *addr;
@@ -193,14 +193,22 @@ void __init exynos_firmware_init(void)
193 nd = of_find_compatible_node(NULL, NULL, 193 nd = of_find_compatible_node(NULL, NULL,
194 "samsung,secure-firmware"); 194 "samsung,secure-firmware");
195 if (!nd) 195 if (!nd)
196 return; 196 return false;
197 197
198 addr = of_get_address(nd, 0, NULL, NULL); 198 addr = of_get_address(nd, 0, NULL, NULL);
199 if (!addr) { 199 if (!addr) {
200 pr_err("%s: No address specified.\n", __func__); 200 pr_err("%s: No address specified.\n", __func__);
201 return; 201 return false;
202 } 202 }
203 203
204 return true;
205}
206
207void __init exynos_firmware_init(void)
208{
209 if (!exynos_secure_firmware_available())
210 return;
211
204 pr_info("Running under secure firmware.\n"); 212 pr_info("Running under secure firmware.\n");
205 213
206 register_firmware_ops(&exynos_firmware_ops); 214 register_firmware_ops(&exynos_firmware_ops);
diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
index 7ead3acd6fa4..bb8e3985acdb 100644
--- a/arch/arm/mach-exynos/suspend.c
+++ b/arch/arm/mach-exynos/suspend.c
@@ -59,10 +59,15 @@ struct exynos_pm_data {
59 int (*cpu_suspend)(unsigned long); 59 int (*cpu_suspend)(unsigned long);
60}; 60};
61 61
62static const struct exynos_pm_data *pm_data __ro_after_init; 62/* Used only on Exynos542x/5800 */
63struct exynos_pm_state {
64 int cpu_state;
65 unsigned int pmu_spare3;
66 void __iomem *sysram_base;
67};
63 68
64static int exynos5420_cpu_state; 69static const struct exynos_pm_data *pm_data __ro_after_init;
65static unsigned int exynos_pmu_spare3; 70static struct exynos_pm_state pm_state;
66 71
67/* 72/*
68 * GIC wake-up support 73 * GIC wake-up support
@@ -257,7 +262,7 @@ static int exynos5420_cpu_suspend(unsigned long arg)
257 unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1); 262 unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
258 unsigned int cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); 263 unsigned int cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
259 264
260 writel_relaxed(0x0, sysram_base_addr + EXYNOS5420_CPU_STATE); 265 writel_relaxed(0x0, pm_state.sysram_base + EXYNOS5420_CPU_STATE);
261 266
262 if (IS_ENABLED(CONFIG_EXYNOS5420_MCPM)) { 267 if (IS_ENABLED(CONFIG_EXYNOS5420_MCPM)) {
263 mcpm_set_entry_vector(cpu, cluster, exynos_cpu_resume); 268 mcpm_set_entry_vector(cpu, cluster, exynos_cpu_resume);
@@ -321,7 +326,7 @@ static void exynos5420_pm_prepare(void)
321 /* Set wake-up mask registers */ 326 /* Set wake-up mask registers */
322 exynos_pm_set_wakeup_mask(); 327 exynos_pm_set_wakeup_mask();
323 328
324 exynos_pmu_spare3 = pmu_raw_readl(S5P_PMU_SPARE3); 329 pm_state.pmu_spare3 = pmu_raw_readl(S5P_PMU_SPARE3);
325 /* 330 /*
326 * The cpu state needs to be saved and restored so that the 331 * The cpu state needs to be saved and restored so that the
327 * secondary CPUs will enter low power start. Though the U-Boot 332 * secondary CPUs will enter low power start. Though the U-Boot
@@ -329,8 +334,8 @@ static void exynos5420_pm_prepare(void)
329 * needs to restore it back in case, the primary cpu fails to 334 * needs to restore it back in case, the primary cpu fails to
330 * suspend for any reason. 335 * suspend for any reason.
331 */ 336 */
332 exynos5420_cpu_state = readl_relaxed(sysram_base_addr + 337 pm_state.cpu_state = readl_relaxed(pm_state.sysram_base +
333 EXYNOS5420_CPU_STATE); 338 EXYNOS5420_CPU_STATE);
334 339
335 exynos_pm_enter_sleep_mode(); 340 exynos_pm_enter_sleep_mode();
336 341
@@ -448,8 +453,8 @@ static void exynos5420_pm_resume(void)
448 EXYNOS5_ARM_CORE0_SYS_PWR_REG); 453 EXYNOS5_ARM_CORE0_SYS_PWR_REG);
449 454
450 /* Restore the sysram cpu state register */ 455 /* Restore the sysram cpu state register */
451 writel_relaxed(exynos5420_cpu_state, 456 writel_relaxed(pm_state.cpu_state,
452 sysram_base_addr + EXYNOS5420_CPU_STATE); 457 pm_state.sysram_base + EXYNOS5420_CPU_STATE);
453 458
454 pmu_raw_writel(EXYNOS5420_USE_STANDBY_WFI_ALL, 459 pmu_raw_writel(EXYNOS5420_USE_STANDBY_WFI_ALL,
455 S5P_CENTRAL_SEQ_OPTION); 460 S5P_CENTRAL_SEQ_OPTION);
@@ -457,7 +462,7 @@ static void exynos5420_pm_resume(void)
457 if (exynos_pm_central_resume()) 462 if (exynos_pm_central_resume())
458 goto early_wakeup; 463 goto early_wakeup;
459 464
460 pmu_raw_writel(exynos_pmu_spare3, S5P_PMU_SPARE3); 465 pmu_raw_writel(pm_state.pmu_spare3, S5P_PMU_SPARE3);
461 466
462early_wakeup: 467early_wakeup:
463 468
@@ -654,4 +659,13 @@ void __init exynos_pm_init(void)
654 659
655 register_syscore_ops(&exynos_pm_syscore_ops); 660 register_syscore_ops(&exynos_pm_syscore_ops);
656 suspend_set_ops(&exynos_suspend_ops); 661 suspend_set_ops(&exynos_suspend_ops);
662
663 /*
664 * Applicable as of now only to Exynos542x. If booted under secure
665 * firmware, the non-secure region of sysram should be used.
666 */
667 if (exynos_secure_firmware_available())
668 pm_state.sysram_base = sysram_ns_base_addr;
669 else
670 pm_state.sysram_base = sysram_base_addr;
657} 671}
diff --git a/arch/arm/mach-s3c24xx/mach-gta02.c b/arch/arm/mach-s3c24xx/mach-gta02.c
index 9d5595c4ad99..594901f3b8e5 100644
--- a/arch/arm/mach-s3c24xx/mach-gta02.c
+++ b/arch/arm/mach-s3c24xx/mach-gta02.c
@@ -219,17 +219,6 @@ static void gta02_udc_vbus_draw(unsigned int ma)
219#define gta02_udc_vbus_draw NULL 219#define gta02_udc_vbus_draw NULL
220#endif 220#endif
221 221
222/*
223 * This is called when pc50633 is probed, unfortunately quite late in the
224 * day since it is an I2C bus device. Here we can belatedly define some
225 * platform devices with the advantage that we can mark the pcf50633 as the
226 * parent. This makes them get suspended and resumed with their parent
227 * the pcf50633 still around.
228 */
229
230static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf);
231
232
233static char *gta02_batteries[] = { 222static char *gta02_batteries[] = {
234 "battery", 223 "battery",
235}; 224};
@@ -355,7 +344,6 @@ static struct pcf50633_platform_data gta02_pcf_pdata = {
355 }, 344 },
356 345
357 }, 346 },
358 .probe_done = gta02_pmu_attach_child_devices,
359 .mbc_event_callback = gta02_pmu_event_callback, 347 .mbc_event_callback = gta02_pmu_event_callback,
360}; 348};
361 349
@@ -512,36 +500,6 @@ static struct platform_device *gta02_devices[] __initdata = {
512 &s3c_device_ts, 500 &s3c_device_ts,
513}; 501};
514 502
515/* These guys DO need to be children of PMU. */
516
517static struct platform_device *gta02_devices_pmu_children[] = {
518};
519
520
521/*
522 * This is called when pc50633 is probed, quite late in the day since it is an
523 * I2C bus device. Here we can define platform devices with the advantage that
524 * we can mark the pcf50633 as the parent. This makes them get suspended and
525 * resumed with their parent the pcf50633 still around. All devices whose
526 * operation depends on something from pcf50633 must have this relationship
527 * made explicit like this, or suspend and resume will become an unreliable
528 * hellworld.
529 */
530
531static void gta02_pmu_attach_child_devices(struct pcf50633 *pcf)
532{
533 int n;
534
535 /* Grab a copy of the now probed PMU pointer. */
536 gta02_pcf = pcf;
537
538 for (n = 0; n < ARRAY_SIZE(gta02_devices_pmu_children); n++)
539 gta02_devices_pmu_children[n]->dev.parent = pcf->dev;
540
541 platform_add_devices(gta02_devices_pmu_children,
542 ARRAY_SIZE(gta02_devices_pmu_children));
543}
544
545static void gta02_poweroff(void) 503static void gta02_poweroff(void)
546{ 504{
547 pcf50633_reg_set_bit_mask(gta02_pcf, PCF50633_REG_OOCSHDWN, 1, 1); 505 pcf50633_reg_set_bit_mask(gta02_pcf, PCF50633_REG_OOCSHDWN, 1, 1);
diff --git a/arch/arm/mach-s3c24xx/mach-mini2440.c b/arch/arm/mach-s3c24xx/mach-mini2440.c
index f9fc1f8d2b28..50d67d760efd 100644
--- a/arch/arm/mach-s3c24xx/mach-mini2440.c
+++ b/arch/arm/mach-s3c24xx/mach-mini2440.c
@@ -64,31 +64,31 @@ static struct map_desc mini2440_iodesc[] __initdata = {
64}; 64};
65 65
66#define UCON S3C2410_UCON_DEFAULT 66#define UCON S3C2410_UCON_DEFAULT
67#define ULCON S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB 67#define ULCON (S3C2410_LCON_CS8 | S3C2410_LCON_PNONE | S3C2410_LCON_STOPB)
68#define UFCON S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE 68#define UFCON (S3C2410_UFCON_RXTRIG8 | S3C2410_UFCON_FIFOMODE)
69 69
70 70
71static struct s3c2410_uartcfg mini2440_uartcfgs[] __initdata = { 71static struct s3c2410_uartcfg mini2440_uartcfgs[] __initdata = {
72 [0] = { 72 [0] = {
73 .hwport = 0, 73 .hwport = 0,
74 .flags = 0, 74 .flags = 0,
75 .ucon = UCON, 75 .ucon = UCON,
76 .ulcon = ULCON, 76 .ulcon = ULCON,
77 .ufcon = UFCON, 77 .ufcon = UFCON,
78 }, 78 },
79 [1] = { 79 [1] = {
80 .hwport = 1, 80 .hwport = 1,
81 .flags = 0, 81 .flags = 0,
82 .ucon = UCON, 82 .ucon = UCON,
83 .ulcon = ULCON, 83 .ulcon = ULCON,
84 .ufcon = UFCON, 84 .ufcon = UFCON,
85 }, 85 },
86 [2] = { 86 [2] = {
87 .hwport = 2, 87 .hwport = 2,
88 .flags = 0, 88 .flags = 0,
89 .ucon = UCON, 89 .ucon = UCON,
90 .ulcon = ULCON, 90 .ulcon = ULCON,
91 .ufcon = UFCON, 91 .ufcon = UFCON,
92 }, 92 },
93}; 93};
94 94
@@ -104,8 +104,8 @@ static struct s3c2410_udc_mach_info mini2440_udc_cfg __initdata = {
104/* 104/*
105 * This macro simplifies the table bellow 105 * This macro simplifies the table bellow
106 */ 106 */
107#define _LCD_DECLARE(_clock,_xres,margin_left,margin_right,hsync, \ 107#define _LCD_DECLARE(_clock, _xres, margin_left, margin_right, hsync, \
108 _yres,margin_top,margin_bottom,vsync, refresh) \ 108 _yres, margin_top, margin_bottom, vsync, refresh) \
109 .width = _xres, \ 109 .width = _xres, \
110 .xres = _xres, \ 110 .xres = _xres, \
111 .height = _yres, \ 111 .height = _yres, \
@@ -128,7 +128,7 @@ static struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
128 [0] = { /* mini2440 + 3.5" TFT + touchscreen */ 128 [0] = { /* mini2440 + 3.5" TFT + touchscreen */
129 _LCD_DECLARE( 129 _LCD_DECLARE(
130 7, /* The 3.5 is quite fast */ 130 7, /* The 3.5 is quite fast */
131 240, 21, 38, 6, /* x timing */ 131 240, 21, 38, 6, /* x timing */
132 320, 4, 4, 2, /* y timing */ 132 320, 4, 4, 2, /* y timing */
133 60), /* refresh rate */ 133 60), /* refresh rate */
134 .lcdcon5 = (S3C2410_LCDCON5_FRM565 | 134 .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
@@ -140,7 +140,7 @@ static struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
140 [1] = { /* mini2440 + 7" TFT + touchscreen */ 140 [1] = { /* mini2440 + 7" TFT + touchscreen */
141 _LCD_DECLARE( 141 _LCD_DECLARE(
142 10, /* the 7" runs slower */ 142 10, /* the 7" runs slower */
143 800, 40, 40, 48, /* x timing */ 143 800, 40, 40, 48, /* x timing */
144 480, 29, 3, 3, /* y timing */ 144 480, 29, 3, 3, /* y timing */
145 50), /* refresh rate */ 145 50), /* refresh rate */
146 .lcdcon5 = (S3C2410_LCDCON5_FRM565 | 146 .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
@@ -148,7 +148,7 @@ static struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
148 S3C2410_LCDCON5_INVVFRAME | 148 S3C2410_LCDCON5_INVVFRAME |
149 S3C2410_LCDCON5_PWREN), 149 S3C2410_LCDCON5_PWREN),
150 }, 150 },
151 /* The VGA shield can outout at several resolutions. All share 151 /* The VGA shield can outout at several resolutions. All share
152 * the same timings, however, anything smaller than 1024x768 152 * the same timings, however, anything smaller than 1024x768
153 * will only be displayed in the top left corner of a 1024x768 153 * will only be displayed in the top left corner of a 1024x768
154 * XGA output unless you add optional dip switches to the shield. 154 * XGA output unless you add optional dip switches to the shield.
@@ -158,9 +158,10 @@ static struct s3c2410fb_display mini2440_lcd_cfg[] __initdata = {
158 _LCD_DECLARE( 158 _LCD_DECLARE(
159 10, 159 10,
160 1024, 1, 2, 2, /* y timing */ 160 1024, 1, 2, 2, /* y timing */
161 768, 200, 16, 16, /* x timing */ 161 768, 200, 16, 16, /* x timing */
162 24), /* refresh rate, maximum stable, 162 24), /* refresh rate, maximum stable,
163 tested with the FPGA shield */ 163 * tested with the FPGA shield
164 */
164 .lcdcon5 = (S3C2410_LCDCON5_FRM565 | 165 .lcdcon5 = (S3C2410_LCDCON5_FRM565 |
165 S3C2410_LCDCON5_HWSWP), 166 S3C2410_LCDCON5_HWSWP),
166 }, 167 },
@@ -196,7 +197,8 @@ static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
196 197
197 /* Enable VD[2..7], VD[10..15], VD[18..23] and VCLK, syncs, VDEN 198 /* Enable VD[2..7], VD[10..15], VD[18..23] and VCLK, syncs, VDEN
198 * and disable the pull down resistors on pins we are using for LCD 199 * and disable the pull down resistors on pins we are using for LCD
199 * data. */ 200 * data.
201 */
200 202
201 .gpcup = (0xf << 1) | (0x3f << 10), 203 .gpcup = (0xf << 1) | (0x3f << 10),
202 204
@@ -232,10 +234,11 @@ static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
232/* MMC/SD */ 234/* MMC/SD */
233 235
234static struct s3c24xx_mci_pdata mini2440_mmc_cfg __initdata = { 236static struct s3c24xx_mci_pdata mini2440_mmc_cfg __initdata = {
235 .gpio_detect = S3C2410_GPG(8), 237 .gpio_detect = S3C2410_GPG(8),
236 .gpio_wprotect = S3C2410_GPH(8), 238 .gpio_wprotect = S3C2410_GPH(8),
237 .set_power = NULL, 239 .wprotect_invert = 1,
238 .ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34, 240 .set_power = NULL,
241 .ocr_avail = MMC_VDD_32_33|MMC_VDD_33_34,
239}; 242};
240 243
241/* NAND Flash on MINI2440 board */ 244/* NAND Flash on MINI2440 board */
@@ -254,7 +257,8 @@ static struct mtd_partition mini2440_default_nand_part[] __initdata = {
254 [2] = { 257 [2] = {
255 .name = "kernel", 258 .name = "kernel",
256 /* 5 megabytes, for a kernel with no modules 259 /* 5 megabytes, for a kernel with no modules
257 * or a uImage with a ramdisk attached */ 260 * or a uImage with a ramdisk attached
261 */
258 .size = 0x00500000, 262 .size = 0x00500000,
259 .offset = SZ_256K + SZ_128K, 263 .offset = SZ_256K + SZ_128K,
260 }, 264 },
@@ -271,7 +275,7 @@ static struct s3c2410_nand_set mini2440_nand_sets[] __initdata = {
271 .nr_chips = 1, 275 .nr_chips = 1,
272 .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part), 276 .nr_partitions = ARRAY_SIZE(mini2440_default_nand_part),
273 .partitions = mini2440_default_nand_part, 277 .partitions = mini2440_default_nand_part,
274 .flash_bbt = 1, /* we use u-boot to create a BBT */ 278 .flash_bbt = 1, /* we use u-boot to create a BBT */
275 }, 279 },
276}; 280};
277 281
@@ -282,7 +286,7 @@ static struct s3c2410_platform_nand mini2440_nand_info __initdata = {
282 .nr_sets = ARRAY_SIZE(mini2440_nand_sets), 286 .nr_sets = ARRAY_SIZE(mini2440_nand_sets),
283 .sets = mini2440_nand_sets, 287 .sets = mini2440_nand_sets,
284 .ignore_unset_ecc = 1, 288 .ignore_unset_ecc = 1,
285 .ecc_mode = NAND_ECC_HW, 289 .ecc_mode = NAND_ECC_HW,
286}; 290};
287 291
288/* DM9000AEP 10/100 ethernet controller */ 292/* DM9000AEP 10/100 ethernet controller */
@@ -290,7 +294,7 @@ static struct s3c2410_platform_nand mini2440_nand_info __initdata = {
290static struct resource mini2440_dm9k_resource[] = { 294static struct resource mini2440_dm9k_resource[] = {
291 [0] = DEFINE_RES_MEM(MACH_MINI2440_DM9K_BASE, 4), 295 [0] = DEFINE_RES_MEM(MACH_MINI2440_DM9K_BASE, 4),
292 [1] = DEFINE_RES_MEM(MACH_MINI2440_DM9K_BASE + 4, 4), 296 [1] = DEFINE_RES_MEM(MACH_MINI2440_DM9K_BASE + 4, 4),
293 [2] = DEFINE_RES_NAMED(IRQ_EINT7, 1, NULL, IORESOURCE_IRQ \ 297 [2] = DEFINE_RES_NAMED(IRQ_EINT7, 1, NULL, IORESOURCE_IRQ
294 | IORESOURCE_IRQ_HIGHEDGE), 298 | IORESOURCE_IRQ_HIGHEDGE),
295}; 299};
296 300
@@ -362,7 +366,8 @@ static struct gpio_keys_button mini2440_buttons[] = {
362 }, 366 },
363#if 0 367#if 0
364 /* this pin is also known as TCLK1 and seems to already 368 /* this pin is also known as TCLK1 and seems to already
365 * marked as "in use" somehow in the kernel -- possibly wrongly */ 369 * marked as "in use" somehow in the kernel -- possibly wrongly
370 */
366 { 371 {
367 .gpio = S3C2410_GPG(11), /* K6 */ 372 .gpio = S3C2410_GPG(11), /* K6 */
368 .code = KEY_F6, 373 .code = KEY_F6,
@@ -564,7 +569,8 @@ static char mini2440_features_str[12] __initdata = "0tb";
564static int __init mini2440_features_setup(char *str) 569static int __init mini2440_features_setup(char *str)
565{ 570{
566 if (str) 571 if (str)
567 strlcpy(mini2440_features_str, str, sizeof(mini2440_features_str)); 572 strlcpy(mini2440_features_str, str,
573 sizeof(mini2440_features_str));
568 return 1; 574 return 1;
569} 575}
570 576
@@ -583,10 +589,10 @@ struct mini2440_features_t {
583}; 589};
584 590
585static void __init mini2440_parse_features( 591static void __init mini2440_parse_features(
586 struct mini2440_features_t * features, 592 struct mini2440_features_t *features,
587 const char * features_str ) 593 const char *features_str)
588{ 594{
589 const char * fp = features_str; 595 const char *fp = features_str;
590 596
591 features->count = 0; 597 features->count = 0;
592 features->done = 0; 598 features->done = 0;
@@ -598,13 +604,14 @@ static void __init mini2440_parse_features(
598 switch (f) { 604 switch (f) {
599 case '0'...'9': /* tft screen */ 605 case '0'...'9': /* tft screen */
600 if (features->done & FEATURE_SCREEN) { 606 if (features->done & FEATURE_SCREEN) {
601 printk(KERN_INFO "MINI2440: '%c' ignored, " 607 pr_info("MINI2440: '%c' ignored, screen type already set\n",
602 "screen type already set\n", f); 608 f);
603 } else { 609 } else {
604 int li = f - '0'; 610 int li = f - '0';
611
605 if (li >= ARRAY_SIZE(mini2440_lcd_cfg)) 612 if (li >= ARRAY_SIZE(mini2440_lcd_cfg))
606 printk(KERN_INFO "MINI2440: " 613 pr_info("MINI2440: '%c' out of range LCD mode\n",
607 "'%c' out of range LCD mode\n", f); 614 f);
608 else { 615 else {
609 features->optional[features->count++] = 616 features->optional[features->count++] =
610 &s3c_device_lcd; 617 &s3c_device_lcd;
@@ -615,8 +622,8 @@ static void __init mini2440_parse_features(
615 break; 622 break;
616 case 'b': 623 case 'b':
617 if (features->done & FEATURE_BACKLIGHT) 624 if (features->done & FEATURE_BACKLIGHT)
618 printk(KERN_INFO "MINI2440: '%c' ignored, " 625 pr_info("MINI2440: '%c' ignored, backlight already set\n",
619 "backlight already set\n", f); 626 f);
620 else { 627 else {
621 features->optional[features->count++] = 628 features->optional[features->count++] =
622 &mini2440_led_backlight; 629 &mini2440_led_backlight;
@@ -624,13 +631,13 @@ static void __init mini2440_parse_features(
624 features->done |= FEATURE_BACKLIGHT; 631 features->done |= FEATURE_BACKLIGHT;
625 break; 632 break;
626 case 't': 633 case 't':
627 printk(KERN_INFO "MINI2440: '%c' ignored, " 634 pr_info("MINI2440: '%c' ignored, touchscreen not compiled in\n",
628 "touchscreen not compiled in\n", f); 635 f);
629 break; 636 break;
630 case 'c': 637 case 'c':
631 if (features->done & FEATURE_CAMERA) 638 if (features->done & FEATURE_CAMERA)
632 printk(KERN_INFO "MINI2440: '%c' ignored, " 639 pr_info("MINI2440: '%c' ignored, camera already registered\n",
633 "camera already registered\n", f); 640 f);
634 else 641 else
635 features->optional[features->count++] = 642 features->optional[features->count++] =
636 &s3c_device_camif; 643 &s3c_device_camif;
@@ -645,7 +652,7 @@ static void __init mini2440_init(void)
645 struct mini2440_features_t features = { 0 }; 652 struct mini2440_features_t features = { 0 };
646 int i; 653 int i;
647 654
648 printk(KERN_INFO "MINI2440: Option string mini2440=%s\n", 655 pr_info("MINI2440: Option string mini2440=%s\n",
649 mini2440_features_str); 656 mini2440_features_str);
650 657
651 /* Parse the feature string */ 658 /* Parse the feature string */
@@ -674,17 +681,17 @@ static void __init mini2440_init(void)
674 mini2440_fb_info.displays = 681 mini2440_fb_info.displays =
675 &mini2440_lcd_cfg[features.lcd_index]; 682 &mini2440_lcd_cfg[features.lcd_index];
676 683
677 printk(KERN_INFO "MINI2440: LCD"); 684 pr_info("MINI2440: LCD");
678 for (li = 0; li < ARRAY_SIZE(mini2440_lcd_cfg); li++) 685 for (li = 0; li < ARRAY_SIZE(mini2440_lcd_cfg); li++)
679 if (li == features.lcd_index) 686 if (li == features.lcd_index)
680 printk(" [%d:%dx%d]", li, 687 pr_cont(" [%d:%dx%d]", li,
681 mini2440_lcd_cfg[li].width, 688 mini2440_lcd_cfg[li].width,
682 mini2440_lcd_cfg[li].height); 689 mini2440_lcd_cfg[li].height);
683 else 690 else
684 printk(" %d:%dx%d", li, 691 pr_cont(" %d:%dx%d", li,
685 mini2440_lcd_cfg[li].width, 692 mini2440_lcd_cfg[li].width,
686 mini2440_lcd_cfg[li].height); 693 mini2440_lcd_cfg[li].height);
687 printk("\n"); 694 pr_cont("\n");
688 s3c24xx_fb_set_platdata(&mini2440_fb_info); 695 s3c24xx_fb_set_platdata(&mini2440_fb_info);
689 } 696 }
690 697
diff --git a/arch/arm64/boot/dts/actions/Makefile b/arch/arm64/boot/dts/actions/Makefile
index d8b923480f5a..b57fd2372ecd 100644
--- a/arch/arm64/boot/dts/actions/Makefile
+++ b/arch/arm64/boot/dts/actions/Makefile
@@ -1,3 +1,5 @@
1# SPDX-License-Identifier: GPL-2.0+
2
1dtb-$(CONFIG_ARCH_ACTIONS) += s700-cubieboard7.dtb 3dtb-$(CONFIG_ARCH_ACTIONS) += s700-cubieboard7.dtb
2 4
3dtb-$(CONFIG_ARCH_ACTIONS) += s900-bubblegum-96.dtb 5dtb-$(CONFIG_ARCH_ACTIONS) += s900-bubblegum-96.dtb
diff --git a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
index ef79d7905f44..28f3f4a0f7f0 100644
--- a/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
+++ b/arch/arm64/boot/dts/actions/s700-cubieboard7.dts
@@ -28,12 +28,6 @@
28 device_type = "memory"; 28 device_type = "memory";
29 reg = <0x1 0xe0000000 0x0 0x0>; 29 reg = <0x1 0xe0000000 0x0 0x0>;
30 }; 30 };
31
32 uart3_clk: uart3-clk {
33 compatible = "fixed-clock";
34 clock-frequency = <921600>;
35 #clock-cells = <0>;
36 };
37}; 31};
38 32
39&timer { 33&timer {
@@ -42,5 +36,4 @@
42 36
43&uart3 { 37&uart3 {
44 status = "okay"; 38 status = "okay";
45 clocks = <&uart3_clk>;
46}; 39};
diff --git a/arch/arm64/boot/dts/actions/s700.dtsi b/arch/arm64/boot/dts/actions/s700.dtsi
index 66dd5309f0a2..192c7b39c8c1 100644
--- a/arch/arm64/boot/dts/actions/s700.dtsi
+++ b/arch/arm64/boot/dts/actions/s700.dtsi
@@ -3,6 +3,7 @@
3 * Copyright (c) 2017 Andreas Färber 3 * Copyright (c) 2017 Andreas Färber
4 */ 4 */
5 5
6#include <dt-bindings/clock/actions,s700-cmu.h>
6#include <dt-bindings/interrupt-controller/arm-gic.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h>
7 8
8/ { 9/ {
@@ -87,6 +88,12 @@
87 #clock-cells = <0>; 88 #clock-cells = <0>;
88 }; 89 };
89 90
91 losc: losc {
92 compatible = "fixed-clock";
93 clock-frequency = <32768>;
94 #clock-cells = <0>;
95 };
96
90 soc { 97 soc {
91 compatible = "simple-bus"; 98 compatible = "simple-bus";
92 #address-cells = <2>; 99 #address-cells = <2>;
@@ -107,6 +114,7 @@
107 uart0: serial@e0120000 { 114 uart0: serial@e0120000 {
108 compatible = "actions,s900-uart", "actions,owl-uart"; 115 compatible = "actions,s900-uart", "actions,owl-uart";
109 reg = <0x0 0xe0120000 0x0 0x2000>; 116 reg = <0x0 0xe0120000 0x0 0x2000>;
117 clocks = <&cmu CLK_UART0>;
110 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 118 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
111 status = "disabled"; 119 status = "disabled";
112 }; 120 };
@@ -114,6 +122,7 @@
114 uart1: serial@e0122000 { 122 uart1: serial@e0122000 {
115 compatible = "actions,s900-uart", "actions,owl-uart"; 123 compatible = "actions,s900-uart", "actions,owl-uart";
116 reg = <0x0 0xe0122000 0x0 0x2000>; 124 reg = <0x0 0xe0122000 0x0 0x2000>;
125 clocks = <&cmu CLK_UART1>;
117 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 126 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
118 status = "disabled"; 127 status = "disabled";
119 }; 128 };
@@ -121,6 +130,7 @@
121 uart2: serial@e0124000 { 130 uart2: serial@e0124000 {
122 compatible = "actions,s900-uart", "actions,owl-uart"; 131 compatible = "actions,s900-uart", "actions,owl-uart";
123 reg = <0x0 0xe0124000 0x0 0x2000>; 132 reg = <0x0 0xe0124000 0x0 0x2000>;
133 clocks = <&cmu CLK_UART2>;
124 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 134 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
125 status = "disabled"; 135 status = "disabled";
126 }; 136 };
@@ -128,6 +138,7 @@
128 uart3: serial@e0126000 { 138 uart3: serial@e0126000 {
129 compatible = "actions,s900-uart", "actions,owl-uart"; 139 compatible = "actions,s900-uart", "actions,owl-uart";
130 reg = <0x0 0xe0126000 0x0 0x2000>; 140 reg = <0x0 0xe0126000 0x0 0x2000>;
141 clocks = <&cmu CLK_UART3>;
131 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 142 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
132 status = "disabled"; 143 status = "disabled";
133 }; 144 };
@@ -135,6 +146,7 @@
135 uart4: serial@e0128000 { 146 uart4: serial@e0128000 {
136 compatible = "actions,s900-uart", "actions,owl-uart"; 147 compatible = "actions,s900-uart", "actions,owl-uart";
137 reg = <0x0 0xe0128000 0x0 0x2000>; 148 reg = <0x0 0xe0128000 0x0 0x2000>;
149 clocks = <&cmu CLK_UART4>;
138 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 150 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
139 status = "disabled"; 151 status = "disabled";
140 }; 152 };
@@ -142,6 +154,7 @@
142 uart5: serial@e012a000 { 154 uart5: serial@e012a000 {
143 compatible = "actions,s900-uart", "actions,owl-uart"; 155 compatible = "actions,s900-uart", "actions,owl-uart";
144 reg = <0x0 0xe012a000 0x0 0x2000>; 156 reg = <0x0 0xe012a000 0x0 0x2000>;
157 clocks = <&cmu CLK_UART5>;
145 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 158 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
146 status = "disabled"; 159 status = "disabled";
147 }; 160 };
@@ -149,10 +162,18 @@
149 uart6: serial@e012c000 { 162 uart6: serial@e012c000 {
150 compatible = "actions,s900-uart", "actions,owl-uart"; 163 compatible = "actions,s900-uart", "actions,owl-uart";
151 reg = <0x0 0xe012c000 0x0 0x2000>; 164 reg = <0x0 0xe012c000 0x0 0x2000>;
165 clocks = <&cmu CLK_UART6>;
152 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 166 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
153 status = "disabled"; 167 status = "disabled";
154 }; 168 };
155 169
170 cmu: clock-controller@e0168000 {
171 compatible = "actions,s700-cmu";
172 reg = <0x0 0xe0168000 0x0 0x1000>;
173 clocks = <&hosc>, <&losc>;
174 #clock-cells = <1>;
175 };
176
156 sps: power-controller@e01b0100 { 177 sps: power-controller@e01b0100 {
157 compatible = "actions,s700-sps"; 178 compatible = "actions,s700-sps";
158 reg = <0x0 0xe01b0100 0x0 0x100>; 179 reg = <0x0 0xe01b0100 0x0 0x100>;
diff --git a/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts b/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
index 21ca80f9941c..732daaa6e9d3 100644
--- a/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
+++ b/arch/arm64/boot/dts/actions/s900-bubblegum-96.dts
@@ -1,7 +1,6 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (c) 2017 Andreas Färber 3 * Copyright (c) 2017 Andreas Färber
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */ 4 */
6 5
7/dts-v1/; 6/dts-v1/;
@@ -24,11 +23,223 @@
24 device_type = "memory"; 23 device_type = "memory";
25 reg = <0x0 0x0 0x0 0x80000000>; 24 reg = <0x0 0x0 0x0 0x80000000>;
26 }; 25 };
26};
27
28&i2c0 {
29 status = "disabled";
30 pinctrl-names = "default";
31 pinctrl-0 = <&i2c0_default>;
32};
33
34&i2c1 {
35 status = "okay";
36 pinctrl-names = "default";
37 pinctrl-0 = <&i2c1_default>;
38};
39
40&i2c2 {
41 status = "okay";
42 pinctrl-names = "default";
43 pinctrl-0 = <&i2c2_default>;
44};
45
46/*
47 * GPIO name legend: proper name = the GPIO line is used as GPIO
48 * NC = not connected (pin out but not routed from the chip to
49 * anything the board)
50 * "[PER]" = pin is muxed for [peripheral] (not GPIO)
51 * LSEC = Low Speed External Connector
52 * HSEC = High Speed External Connector
53 *
54 * Line names are taken from the schematic "Schematics Bubblegum96"
55 * version v1.0
56 *
57 * For the lines routed to the external connectors the
58 * lines are named after the 96Boards CE Specification 1.0,
59 * Appendix "Expansion Connector Signal Description".
60 *
61 * When the 96Boards naming of a line and the schematic name of
62 * the same line are in conflict, the 96Boards specification
63 * takes precedence, which means that the external UART on the
64 * LSEC is named UART0 while the schematic and SoC names this
65 * UART2. Only exception is the I2C lines for which the schematic
66 * naming has been preferred. This is only for the informational
67 * lines i.e. "[FOO]", the GPIO named lines "GPIO-A" thru "GPIO-L"
68 * are the only ones actually used for GPIO.
69 */
70
71&pinctrl {
72 gpio-line-names =
73 "GPIO-A", /* GPIO_0, LSEC pin 23 */
74 "GPIO-B", /* GPIO_1, LSEC pin 24 */
75 "GPIO-C", /* GPIO_2, LSEC pin 25 */
76 "GPIO-D", /* GPIO_3, LSEC pin 26 */
77 "GPIO-E", /* GPIO_4, LSEC pin 27 */
78 "GPIO-F", /* GPIO_5, LSEC pin 28 */
79 "GPIO-G", /* GPIO_6, LSEC pin 29 */
80 "GPIO-H", /* GPIO_7, LSEC pin 30 */
81 "GPIO-I", /* GPIO_8, LSEC pin 31 */
82 "GPIO-J", /* GPIO_9, LSEC pin 32 */
83 "NC", /* GPIO_10 */
84 "NC", /* GPIO_11 */
85 "SIRQ2_1V8", /* GPIO_12 */
86 "PCM0_OUT", /* GPIO_13 */
87 "WIFI_LED", /* GPIO_14 */
88 "PCM0_SYNC", /* GPIO_15 */
89 "PCM0_CLK", /* GPIO_16 */
90 "PCM0_IN", /* GPIO_17 */
91 "BT_LED", /* GPIO_18 */
92 "LED0", /* GPIO_19 */
93 "LED1", /* GPIO_20 */
94 "JTAG_TCK", /* GPIO_21 */
95 "JTAG_TMS", /* GPIO_22 */
96 "JTAG_TDI", /* GPIO_23 */
97 "JTAG_TDO", /* GPIO_24 */
98 "[UART1_RxD]", /* GPIO_25, LSEC pin 13 */
99 "NC", /* GPIO_26 */
100 "[UART1_TxD]", /* GPIO_27, LSEC pin 11 */
101 "SD0_D0", /* GPIO_28 */
102 "SD0_D1", /* GPIO_29 */
103 "SD0_D2", /* GPIO_30 */
104 "SD0_D3", /* GPIO_31 */
105 "SD1_D0", /* GPIO_32 */
106 "SD1_D1", /* GPIO_33 */
107 "SD1_D2", /* GPIO_34 */
108 "SD1_D3", /* GPIO_35 */
109 "SD0_CMD", /* GPIO_36 */
110 "SD0_CLK", /* GPIO_37 */
111 "SD1_CMD", /* GPIO_38 */
112 "SD1_CLK", /* GPIO_39 */
113 "SPI0_SCLK", /* GPIO_40, LSEC pin 8 */
114 "SPI0_CS", /* GPIO_41, LSEC pin 12 */
115 "SPI0_DIN", /* GPIO_42, LSEC pin 10 */
116 "SPI0_DOUT", /* GPIO_43, LSEC pin 14 */
117 "I2C5_SDATA", /* GPIO_44, HSEC pin 36 */
118 "I2C5_SCLK", /* GPIO_45, HSEC pin 38 */
119 "UART0_RX", /* GPIO_46, LSEC pin 7 */
120 "UART0_TX", /* GPIO_47, LSEC pin 5 */
121 "UART0_RTSB", /* GPIO_48, LSEC pin 9 */
122 "UART0_CTSB", /* GPIO_49, LSEC pin 3 */
123 "I2C4_SCLK", /* GPIO_50, HSEC pin 32 */
124 "I2C4_SDATA", /* GPIO_51, HSEC pin 34 */
125 "I2C0_SCLK", /* GPIO_52 */
126 "I2C0_SDATA", /* GPIO_53 */
127 "I2C1_SCLK", /* GPIO_54, LSEC pin 15 */
128 "I2C1_SDATA", /* GPIO_55, LSEC pin 17 */
129 "I2C2_SCLK", /* GPIO_56, LSEC pin 19 */
130 "I2C2_SDATA", /* GPIO_57, LSEC pin 21 */
131 "CSI0_DN0", /* GPIO_58, HSEC pin 10 */
132 "CSI0_DP0", /* GPIO_59, HSEC pin 8 */
133 "CSI0_DN1", /* GPIO_60, HSEC pin 16 */
134 "CSI0_DP1", /* GPIO_61, HSEC pin 14 */
135 "CSI0_CN", /* GPIO_62, HSEC pin 4 */
136 "CSI0_CP", /* GPIO_63, HSEC pin 2 */
137 "CSI0_DN2", /* GPIO_64, HSEC pin 22 */
138 "CSI0_DP2", /* GPIO_65, HSEC pin 20 */
139 "CSI0_DN3", /* GPIO_66, HSEC pin 28 */
140 "CSI0_DP3", /* GPIO_67, HSEC pin 26 */
141 "[CLK0]", /* GPIO_68, HSEC pin 15 */
142 "CSI1_DN0", /* GPIO_69, HSEC pin 44 */
143 "CSI1_DP0", /* GPIO_70, HSEC pin 42 */
144 "CSI1_DN1", /* GPIO_71, HSEC pin 50 */
145 "CSI1_DP1", /* GPIO_72, HSEC pin 48 */
146 "CSI1_CN", /* GPIO_73, HSEC pin 56 */
147 "CSI1_CP", /* GPIO_74, HSEC pin 54 */
148 "[CLK1]", /* GPIO_75, HSEC pin 17 */
149 "[GPIOD0]", /* GPIO_76 */
150 "[GPIOD1]", /* GPIO_77 */
151 "BT_RST_N", /* GPIO_78 */
152 "EXT_DC_EN", /* GPIO_79 */
153 "[PCM_DI]", /* GPIO_80, LSEC pin 22 */
154 "[PCM_DO]", /* GPIO_81, LSEC pin 20 */
155 "[PCM_CLK]", /* GPIO_82, LSEC pin 18 */
156 "[PCM_FS]", /* GPIO_83, LSEC pin 16 */
157 "WAKE_BT", /* GPIO_84 */
158 "WL_REG_ON", /* GPIO_85 */
159 "NC", /* GPIO_86 */
160 "NC", /* GPIO_87 */
161 "NC", /* GPIO_88 */
162 "NC", /* GPIO_89 */
163 "NC", /* GPIO_90 */
164 "WIFI_WAKE", /* GPIO_91 */
165 "BT_WAKE", /* GPIO_92 */
166 "NC", /* GPIO_93 */
167 "OTG_EN2", /* GPIO_94 */
168 "OTG_EN", /* GPIO_95 */
169 "DSI_DP3", /* GPIO_96, HSEC pin 45 */
170 "DSI_DN3", /* GPIO_97, HSEC pin 47 */
171 "DSI_DP1", /* GPIO_98, HSEC pin 33 */
172 "DSI_DN1", /* GPIO_99, HSEC pin 35 */
173 "DSI_CP", /* GPIO_100, HSEC pin 21 */
174 "DSI_CN", /* GPIO_101, HSEC pin 23 */
175 "DSI_DP0", /* GPIO_102, HSEC pin 27 */
176 "DSI_DN0", /* GPIO_103, HSEC pin 29 */
177 "DSI_DP2", /* GPIO_104, HSEC pin 39 */
178 "DSI_DN2", /* GPIO_105, HSEC pin 41 */
179 "N0_D0", /* GPIO_106 */
180 "N0_D1", /* GPIO_107 */
181 "N0_D2", /* GPIO_108 */
182 "N0_D3", /* GPIO_109 */
183 "N0_D4", /* GPIO_110 */
184 "N0_D5", /* GPIO_111 */
185 "N0_D6", /* GPIO_112 */
186 "N0_D7", /* GPIO_113 */
187 "N0_DQS", /* GPIO_114 */
188 "N0_DQSN", /* GPIO_115 */
189 "NC", /* GPIO_116 */
190 "NC", /* GPIO_117 */
191 "NC", /* GPIO_118 */
192 "N0_CEB1", /* GPIO_119 */
193 "CARD_DT", /* GPIO_120 */
194 "N0_CEB3", /* GPIO_121 */
195 "SD_DAT0", /* GPIO_122, HSEC pin 1 */
196 "SD_DAT1", /* GPIO_123, HSEC pin 3 */
197 "SD_DAT2", /* GPIO_124, HSEC pin 5 */
198 "SD_DAT3", /* GPIO_125, HSEC pin 7 */
199 "NC", /* GPIO_126 */
200 "NC", /* GPIO_127 */
201 "[PWR_BTN_N]", /* GPIO_128, LSEC pin 4 */
202 "[RST_BTN_N]", /* GPIO_129, LSEC pin 6 */
203 "NC", /* GPIO_130 */
204 "SD_CMD", /* GPIO_131 */
205 "GPIO-L", /* GPIO_132, LSEC pin 34 */
206 "GPIO-K", /* GPIO_133, LSEC pin 33 */
207 "NC", /* GPIO_134 */
208 "SD_SCLK", /* GPIO_135 */
209 "NC", /* GPIO_136 */
210 "JTAG_TRST", /* GPIO_137 */
211 "I2C3_SCLK", /* GPIO_138 */
212 "LED2", /* GPIO_139 */
213 "LED3", /* GPIO_140 */
214 "I2C3_SDATA", /* GPIO_141 */
215 "UART3_RX", /* GPIO_142 */
216 "UART3_TX", /* GPIO_143 */
217 "UART3_RTSB", /* GPIO_144 */
218 "UART3_CTSB"; /* GPIO_145 */
219
220 i2c0_default: i2c0-default {
221 pinmux {
222 groups = "i2c0_mfp";
223 function = "i2c0";
224 };
225 pinconf {
226 pins = "i2c0_sclk", "i2c0_sdata";
227 bias-pull-up;
228 };
229 };
230
231 i2c1_default: i2c1-default {
232 pinconf {
233 pins = "i2c1_sclk", "i2c1_sdata";
234 bias-pull-up;
235 };
236 };
27 237
28 uart5_clk: uart5-clk { 238 i2c2_default: i2c2-default {
29 compatible = "fixed-clock"; 239 pinconf {
30 clock-frequency = <921600>; 240 pins = "i2c2_sclk", "i2c2_sdata";
31 #clock-cells = <0>; 241 bias-pull-up;
242 };
32 }; 243 };
33}; 244};
34 245
@@ -38,5 +249,4 @@
38 249
39&uart5 { 250&uart5 {
40 status = "okay"; 251 status = "okay";
41 clocks = <&uart5_clk>;
42}; 252};
diff --git a/arch/arm64/boot/dts/actions/s900.dtsi b/arch/arm64/boot/dts/actions/s900.dtsi
index 11406f6d3a6d..491ddccc9038 100644
--- a/arch/arm64/boot/dts/actions/s900.dtsi
+++ b/arch/arm64/boot/dts/actions/s900.dtsi
@@ -1,9 +1,9 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
1/* 2/*
2 * Copyright (c) 2017 Andreas Färber 3 * Copyright (c) 2017 Andreas Färber
3 *
4 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
5 */ 4 */
6 5
6#include <dt-bindings/clock/actions,s900-cmu.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h>
8 8
9/ { 9/ {
@@ -88,6 +88,18 @@
88 #clock-cells = <0>; 88 #clock-cells = <0>;
89 }; 89 };
90 90
91 losc: losc {
92 compatible = "fixed-clock";
93 clock-frequency = <32768>;
94 #clock-cells = <0>;
95 };
96
97 diff24M: diff24M {
98 compatible = "fixed-clock";
99 clock-frequency = <24000000>;
100 #clock-cells = <0>;
101 };
102
91 soc { 103 soc {
92 compatible = "simple-bus"; 104 compatible = "simple-bus";
93 #address-cells = <2>; 105 #address-cells = <2>;
@@ -108,6 +120,7 @@
108 uart0: serial@e0120000 { 120 uart0: serial@e0120000 {
109 compatible = "actions,s900-uart", "actions,owl-uart"; 121 compatible = "actions,s900-uart", "actions,owl-uart";
110 reg = <0x0 0xe0120000 0x0 0x2000>; 122 reg = <0x0 0xe0120000 0x0 0x2000>;
123 clocks = <&cmu CLK_UART0>;
111 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 124 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
112 status = "disabled"; 125 status = "disabled";
113 }; 126 };
@@ -115,6 +128,7 @@
115 uart1: serial@e0122000 { 128 uart1: serial@e0122000 {
116 compatible = "actions,s900-uart", "actions,owl-uart"; 129 compatible = "actions,s900-uart", "actions,owl-uart";
117 reg = <0x0 0xe0122000 0x0 0x2000>; 130 reg = <0x0 0xe0122000 0x0 0x2000>;
131 clocks = <&cmu CLK_UART1>;
118 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 132 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
119 status = "disabled"; 133 status = "disabled";
120 }; 134 };
@@ -122,6 +136,7 @@
122 uart2: serial@e0124000 { 136 uart2: serial@e0124000 {
123 compatible = "actions,s900-uart", "actions,owl-uart"; 137 compatible = "actions,s900-uart", "actions,owl-uart";
124 reg = <0x0 0xe0124000 0x0 0x2000>; 138 reg = <0x0 0xe0124000 0x0 0x2000>;
139 clocks = <&cmu CLK_UART2>;
125 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 140 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
126 status = "disabled"; 141 status = "disabled";
127 }; 142 };
@@ -129,6 +144,7 @@
129 uart3: serial@e0126000 { 144 uart3: serial@e0126000 {
130 compatible = "actions,s900-uart", "actions,owl-uart"; 145 compatible = "actions,s900-uart", "actions,owl-uart";
131 reg = <0x0 0xe0126000 0x0 0x2000>; 146 reg = <0x0 0xe0126000 0x0 0x2000>;
147 clocks = <&cmu CLK_UART3>;
132 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 148 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
133 status = "disabled"; 149 status = "disabled";
134 }; 150 };
@@ -136,6 +152,7 @@
136 uart4: serial@e0128000 { 152 uart4: serial@e0128000 {
137 compatible = "actions,s900-uart", "actions,owl-uart"; 153 compatible = "actions,s900-uart", "actions,owl-uart";
138 reg = <0x0 0xe0128000 0x0 0x2000>; 154 reg = <0x0 0xe0128000 0x0 0x2000>;
155 clocks = <&cmu CLK_UART4>;
139 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 156 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
140 status = "disabled"; 157 status = "disabled";
141 }; 158 };
@@ -143,6 +160,7 @@
143 uart5: serial@e012a000 { 160 uart5: serial@e012a000 {
144 compatible = "actions,s900-uart", "actions,owl-uart"; 161 compatible = "actions,s900-uart", "actions,owl-uart";
145 reg = <0x0 0xe012a000 0x0 0x2000>; 162 reg = <0x0 0xe012a000 0x0 0x2000>;
163 clocks = <&cmu CLK_UART5>;
146 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 164 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
147 status = "disabled"; 165 status = "disabled";
148 }; 166 };
@@ -150,15 +168,111 @@
150 uart6: serial@e012c000 { 168 uart6: serial@e012c000 {
151 compatible = "actions,s900-uart", "actions,owl-uart"; 169 compatible = "actions,s900-uart", "actions,owl-uart";
152 reg = <0x0 0xe012c000 0x0 0x2000>; 170 reg = <0x0 0xe012c000 0x0 0x2000>;
171 clocks = <&cmu CLK_UART6>;
153 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>; 172 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
154 status = "disabled"; 173 status = "disabled";
155 }; 174 };
156 175
176 sps: power-controller@e012e000 {
177 compatible = "actions,s900-sps";
178 reg = <0x0 0xe012e000 0x0 0x2000>;
179 #power-domain-cells = <1>;
180 };
181
182 cmu: clock-controller@e0160000 {
183 compatible = "actions,s900-cmu";
184 reg = <0x0 0xe0160000 0x0 0x1000>;
185 clocks = <&hosc>, <&losc>;
186 #clock-cells = <1>;
187 };
188
189 i2c0: i2c@e0170000 {
190 compatible = "actions,s900-i2c";
191 reg = <0 0xe0170000 0 0x1000>;
192 clocks = <&cmu CLK_I2C0>;
193 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
194 #address-cells = <1>;
195 #size-cells = <0>;
196 status = "disabled";
197 };
198
199 i2c1: i2c@e0172000 {
200 compatible = "actions,s900-i2c";
201 reg = <0 0xe0172000 0 0x1000>;
202 clocks = <&cmu CLK_I2C1>;
203 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
204 #address-cells = <1>;
205 #size-cells = <0>;
206 status = "disabled";
207 };
208
209 i2c2: i2c@e0174000 {
210 compatible = "actions,s900-i2c";
211 reg = <0 0xe0174000 0 0x1000>;
212 clocks = <&cmu CLK_I2C2>;
213 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
214 #address-cells = <1>;
215 #size-cells = <0>;
216 status = "disabled";
217 };
218
219 i2c3: i2c@e0176000 {
220 compatible = "actions,s900-i2c";
221 reg = <0 0xe0176000 0 0x1000>;
222 clocks = <&cmu CLK_I2C3>;
223 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
224 #address-cells = <1>;
225 #size-cells = <0>;
226 status = "disabled";
227 };
228
229 i2c4: i2c@e0178000 {
230 compatible = "actions,s900-i2c";
231 reg = <0 0xe0178000 0 0x1000>;
232 clocks = <&cmu CLK_I2C4>;
233 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
234 #address-cells = <1>;
235 #size-cells = <0>;
236 status = "disabled";
237 };
238
239 i2c5: i2c@e017a000 {
240 compatible = "actions,s900-i2c";
241 reg = <0 0xe017a000 0 0x1000>;
242 clocks = <&cmu CLK_I2C5>;
243 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
244 #address-cells = <1>;
245 #size-cells = <0>;
246 status = "disabled";
247 };
248
249 pinctrl: pinctrl@e01b0000 {
250 compatible = "actions,s900-pinctrl";
251 reg = <0x0 0xe01b0000 0x0 0x1000>;
252 clocks = <&cmu CLK_GPIO>;
253 gpio-controller;
254 gpio-ranges = <&pinctrl 0 0 146>;
255 #gpio-cells = <2>;
256 };
257
157 timer: timer@e0228000 { 258 timer: timer@e0228000 {
158 compatible = "actions,s900-timer"; 259 compatible = "actions,s900-timer";
159 reg = <0x0 0xe0228000 0x0 0x8000>; 260 reg = <0x0 0xe0228000 0x0 0x8000>;
160 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 261 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
161 interrupt-names = "timer1"; 262 interrupt-names = "timer1";
162 }; 263 };
264
265 dma: dma-controller@e0260000 {
266 compatible = "actions,s900-dma";
267 reg = <0x0 0xe0260000 0x0 0x1000>;
268 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
269 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
270 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
271 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
272 #dma-cells = <1>;
273 dma-channels = <12>;
274 dma-requests = <46>;
275 clocks = <&cmu CLK_DMAC>;
276 };
163 }; 277 };
164}; 278};
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 9ffa7a038791..8d4f97f279e0 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -4,10 +4,13 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb
4dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb 4dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb
5dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb 5dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb
6dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb 6dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb
7dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-lts.dtb
7dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb 8dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
8dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb 9dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinebook.dtb
9dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb 10dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
10dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb 11dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
12dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
13dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus-v1.2.dtb
11dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h3-cc.dtb 14dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-libretech-all-h3-cc.dtb
12dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb 15dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo2.dtb
13dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb 16dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-nanopi-neo-plus2.dtb
@@ -15,4 +18,5 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-pc2.dtb
15dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb 18dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-prime.dtb
16dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb 19dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb
17dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb 20dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb
21dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb
18dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb 22dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts
index eac4793c8502..6cb2b7f0c817 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts
@@ -203,7 +203,7 @@
203 203
204&uart0 { 204&uart0 {
205 pinctrl-names = "default"; 205 pinctrl-names = "default";
206 pinctrl-0 = <&uart0_pins_a>; 206 pinctrl-0 = <&uart0_pb_pins>;
207 status = "okay"; 207 status = "okay";
208}; 208};
209 209
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
index 094cfed13df9..ef1c90401bb2 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
@@ -60,6 +60,17 @@
60 stdout-path = "serial0:115200n8"; 60 stdout-path = "serial0:115200n8";
61 }; 61 };
62 62
63 hdmi-connector {
64 compatible = "hdmi-connector";
65 type = "a";
66
67 port {
68 hdmi_con_in: endpoint {
69 remote-endpoint = <&hdmi_out_con>;
70 };
71 };
72 };
73
63 leds { 74 leds {
64 compatible = "gpio-leds"; 75 compatible = "gpio-leds";
65 76
@@ -86,6 +97,10 @@
86 }; 97 };
87}; 98};
88 99
100&de {
101 status = "okay";
102};
103
89&ehci0 { 104&ehci0 {
90 status = "okay"; 105 status = "okay";
91}; 106};
@@ -103,6 +118,17 @@
103 status = "okay"; 118 status = "okay";
104}; 119};
105 120
121&hdmi {
122 hvcc-supply = <&reg_dldo1>;
123 status = "okay";
124};
125
126&hdmi_out {
127 hdmi_out_con: endpoint {
128 remote-endpoint = <&hdmi_con_in>;
129 };
130};
131
106&i2c1 { 132&i2c1 {
107 pinctrl-names = "default"; 133 pinctrl-names = "default";
108 pinctrl-0 = <&i2c1_pins>; 134 pinctrl-0 = <&i2c1_pins>;
@@ -151,7 +177,7 @@
151 177
152&mmc2 { 178&mmc2 {
153 pinctrl-names = "default"; 179 pinctrl-names = "default";
154 pinctrl-0 = <&mmc2_pins>; 180 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
155 vmmc-supply = <&reg_dcdc1>; 181 vmmc-supply = <&reg_dcdc1>;
156 bus-width = <8>; 182 bus-width = <8>;
157 non-removable; 183 non-removable;
@@ -302,7 +328,7 @@
302 328
303&uart0 { 329&uart0 {
304 pinctrl-names = "default"; 330 pinctrl-names = "default";
305 pinctrl-0 = <&uart0_pins_a>; 331 pinctrl-0 = <&uart0_pb_pins>;
306 status = "okay"; 332 status = "okay";
307}; 333};
308 334
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
index 98dbff19f5cc..31884dbc8838 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
@@ -51,12 +51,44 @@
51 compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64"; 51 compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64";
52 52
53 aliases { 53 aliases {
54 ethernet0 = &emac;
54 serial0 = &uart0; 55 serial0 = &uart0;
55 }; 56 };
56 57
57 chosen { 58 chosen {
58 stdout-path = "serial0:115200n8"; 59 stdout-path = "serial0:115200n8";
59 }; 60 };
61
62 hdmi-connector {
63 compatible = "hdmi-connector";
64 type = "a";
65
66 port {
67 hdmi_con_in: endpoint {
68 remote-endpoint = <&hdmi_out_con>;
69 };
70 };
71 };
72
73 leds {
74 compatible = "gpio-leds";
75
76 blue {
77 label = "nanopi-a64:blue:status";
78 gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
79 };
80 };
81
82 wifi_pwrseq: wifi_pwrseq {
83 compatible = "mmc-pwrseq-simple";
84 clocks = <&rtc 1>;
85 clock-names = "ext_clock";
86 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
87 };
88};
89
90&de {
91 status = "okay";
60}; 92};
61 93
62&ehci0 { 94&ehci0 {
@@ -67,6 +99,26 @@
67 status = "okay"; 99 status = "okay";
68}; 100};
69 101
102&emac {
103 pinctrl-names = "default";
104 pinctrl-0 = <&rgmii_pins>;
105 phy-mode = "rgmii";
106 phy-handle = <&ext_rgmii_phy>;
107 phy-supply = <&reg_dcdc1>;
108 status = "okay";
109};
110
111&hdmi {
112 hvcc-supply = <&reg_dldo1>;
113 status = "okay";
114};
115
116&hdmi_out {
117 hdmi_out_con: endpoint {
118 remote-endpoint = <&hdmi_con_in>;
119 };
120};
121
70/* i2c1 connected with gpio headers like pine64, bananapi */ 122/* i2c1 connected with gpio headers like pine64, bananapi */
71&i2c1 { 123&i2c1 {
72 pinctrl-names = "default"; 124 pinctrl-names = "default";
@@ -78,6 +130,13 @@
78 bias-pull-up; 130 bias-pull-up;
79}; 131};
80 132
133&mdio {
134 ext_rgmii_phy: ethernet-phy@1 {
135 compatible = "ethernet-phy-ieee802.3-c22";
136 reg = <7>;
137 };
138};
139
81&mmc0 { 140&mmc0 {
82 pinctrl-names = "default"; 141 pinctrl-names = "default";
83 pinctrl-0 = <&mmc0_pins>; 142 pinctrl-0 = <&mmc0_pins>;
@@ -88,6 +147,24 @@
88 status = "okay"; 147 status = "okay";
89}; 148};
90 149
150&mmc1 {
151 pinctrl-names = "default";
152 pinctrl-0 = <&mmc1_pins>;
153 vmmc-supply = <&reg_dcdc1>;
154 vqmmc-supply = <&reg_dldo4>;
155 mmc-pwrseq = <&wifi_pwrseq>;
156 bus-width = <4>;
157 non-removable;
158 status = "okay";
159
160 rtl8189etv: wifi@1 {
161 reg = <1>;
162 interrupt-parent = <&r_pio>;
163 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
164 interrupt-names = "host-wake";
165 };
166};
167
91&ohci0 { 168&ohci0 {
92 status = "okay"; 169 status = "okay";
93}; 170};
@@ -125,9 +202,9 @@
125 202
126&reg_dcdc1 { 203&reg_dcdc1 {
127 regulator-always-on; 204 regulator-always-on;
128 regulator-min-microvolt = <3000000>; 205 regulator-min-microvolt = <3300000>;
129 regulator-max-microvolt = <3000000>; 206 regulator-max-microvolt = <3300000>;
130 regulator-name = "vcc-3v"; 207 regulator-name = "vcc-3v3";
131}; 208};
132 209
133&reg_dcdc2 { 210&reg_dcdc2 {
@@ -201,7 +278,7 @@
201 278
202&uart0 { 279&uart0 {
203 pinctrl-names = "default"; 280 pinctrl-names = "default";
204 pinctrl-0 = <&uart0_pins_a>; 281 pinctrl-0 = <&uart0_pb_pins>;
205 status = "okay"; 282 status = "okay";
206}; 283};
207 284
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
index 3f531393eaee..f7a4bccaa5d4 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
@@ -51,6 +51,7 @@
51 compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64"; 51 compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64";
52 52
53 aliases { 53 aliases {
54 ethernet0 = &emac;
54 serial0 = &uart0; 55 serial0 = &uart0;
55 }; 56 };
56 57
@@ -58,12 +59,74 @@
58 stdout-path = "serial0:115200n8"; 59 stdout-path = "serial0:115200n8";
59 }; 60 };
60 61
62 hdmi-connector {
63 compatible = "hdmi-connector";
64 type = "a";
65
66 port {
67 hdmi_con_in: endpoint {
68 remote-endpoint = <&hdmi_out_con>;
69 };
70 };
71 };
72
73 reg_usb1_vbus: usb1-vbus {
74 compatible = "regulator-fixed";
75 regulator-name = "usb1-vbus";
76 regulator-min-microvolt = <5000000>;
77 regulator-max-microvolt = <5000000>;
78 regulator-boot-on;
79 enable-active-high;
80 gpio = <&pio 6 9 GPIO_ACTIVE_HIGH>; /* PG9 */
81 status = "okay";
82 };
83
61 wifi_pwrseq: wifi_pwrseq { 84 wifi_pwrseq: wifi_pwrseq {
62 compatible = "mmc-pwrseq-simple"; 85 compatible = "mmc-pwrseq-simple";
63 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */ 86 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
64 }; 87 };
65}; 88};
66 89
90&de {
91 status = "okay";
92};
93
94&ehci0 {
95 status = "okay";
96};
97
98&ehci1 {
99 status = "okay";
100};
101
102&emac {
103 pinctrl-names = "default";
104 pinctrl-0 = <&rgmii_pins>;
105 phy-mode = "rgmii";
106 phy-handle = <&ext_rgmii_phy>;
107 phy-supply = <&reg_dcdc1>;
108 allwinner,tx-delay-ps = <600>;
109 status = "okay";
110};
111
112&hdmi {
113 hvcc-supply = <&reg_dldo1>;
114 status = "okay";
115};
116
117&hdmi_out {
118 hdmi_out_con: endpoint {
119 remote-endpoint = <&hdmi_con_in>;
120 };
121};
122
123&mdio {
124 ext_rgmii_phy: ethernet-phy@1 {
125 compatible = "ethernet-phy-ieee802.3-c22";
126 reg = <1>;
127 };
128};
129
67&mmc0 { 130&mmc0 {
68 pinctrl-names = "default"; 131 pinctrl-names = "default";
69 pinctrl-0 = <&mmc0_pins>; 132 pinctrl-0 = <&mmc0_pins>;
@@ -92,6 +155,14 @@
92 }; 155 };
93}; 156};
94 157
158&ohci0 {
159 status = "okay";
160};
161
162&ohci1 {
163 status = "okay";
164};
165
95&r_rsb { 166&r_rsb {
96 status = "okay"; 167 status = "okay";
97 168
@@ -100,6 +171,7 @@
100 reg = <0x3a3>; 171 reg = <0x3a3>;
101 interrupt-parent = <&r_intc>; 172 interrupt-parent = <&r_intc>;
102 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 173 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
174 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
103 }; 175 };
104}; 176};
105 177
@@ -142,10 +214,14 @@
142 214
143/* DCDC3 is polyphased with DCDC2 */ 215/* DCDC3 is polyphased with DCDC2 */
144 216
217/*
218 * The board uses DDR3L DRAM chips. 1.36V is the closest to the nominal
219 * 1.35V that the PMIC can drive.
220 */
145&reg_dcdc5 { 221&reg_dcdc5 {
146 regulator-always-on; 222 regulator-always-on;
147 regulator-min-microvolt = <1500000>; 223 regulator-min-microvolt = <1360000>;
148 regulator-max-microvolt = <1500000>; 224 regulator-max-microvolt = <1360000>;
149 regulator-name = "vcc-ddr3"; 225 regulator-name = "vcc-ddr3";
150}; 226};
151 227
@@ -180,6 +256,11 @@
180 regulator-name = "vcc-wifi-io"; 256 regulator-name = "vcc-wifi-io";
181}; 257};
182 258
259&reg_drivevbus {
260 regulator-name = "usb0-vbus";
261 status = "okay";
262};
263
183&reg_eldo1 { 264&reg_eldo1 {
184 regulator-min-microvolt = <1800000>; 265 regulator-min-microvolt = <1800000>;
185 regulator-max-microvolt = <1800000>; 266 regulator-max-microvolt = <1800000>;
@@ -220,6 +301,18 @@
220 301
221&uart0 { 302&uart0 {
222 pinctrl-names = "default"; 303 pinctrl-names = "default";
223 pinctrl-0 = <&uart0_pins_a>; 304 pinctrl-0 = <&uart0_pb_pins>;
305 status = "okay";
306};
307
308&usb_otg {
309 dr_mode = "otg";
310 status = "okay";
311};
312
313&usbphy {
224 status = "okay"; 314 status = "okay";
315 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
316 usb0_vbus-supply = <&reg_drivevbus>;
317 usb1_vbus-supply = <&reg_usb1_vbus>;
225}; 318};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
index 1221764f5719..b0c64f75792c 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
@@ -1,5 +1,6 @@
1/* 1/*
2 * Copyright (C) 2017 Jagan Teki <jteki@openedev.com> 2 * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
3 * Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org>
3 * 4 *
4 * This file is dual-licensed: you can use it either under the terms 5 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual 6 * of the GPL or the X11 license, at your option. Note that this dual
@@ -51,23 +52,127 @@
51 compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64"; 52 compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64";
52 53
53 aliases { 54 aliases {
55 ethernet0 = &emac;
54 serial0 = &uart0; 56 serial0 = &uart0;
57 serial1 = &uart1;
58 serial2 = &uart2;
59 serial3 = &uart3;
60 serial4 = &uart4;
55 }; 61 };
56 62
57 chosen { 63 chosen {
58 stdout-path = "serial0:115200n8"; 64 stdout-path = "serial0:115200n8";
59 }; 65 };
66
67 hdmi-connector {
68 compatible = "hdmi-connector";
69 type = "a";
70
71 port {
72 hdmi_con_in: endpoint {
73 remote-endpoint = <&hdmi_out_con>;
74 };
75 };
76 };
77
78 leds {
79 compatible = "gpio-leds";
80
81 status {
82 label = "orangepi:green:status";
83 gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
84 };
85 };
86
87 reg_gmac_3v3: gmac-3v3 {
88 compatible = "regulator-fixed";
89 regulator-name = "gmac-3v3";
90 regulator-min-microvolt = <3300000>;
91 regulator-max-microvolt = <3300000>;
92 regulator-boot-on;
93 enable-active-high;
94 gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */
95 status = "okay";
96 };
97
98 reg_usb1_vbus: usb1-vbus {
99 compatible = "regulator-fixed";
100 regulator-name = "usb1-vbus";
101 regulator-min-microvolt = <5000000>;
102 regulator-max-microvolt = <5000000>;
103 regulator-boot-on;
104 enable-active-high;
105 gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */
106 status = "okay";
107 };
108
109 wifi_pwrseq: wifi_pwrseq {
110 compatible = "mmc-pwrseq-simple";
111 reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
112 };
113};
114
115&de {
116 status = "okay";
117};
118
119&ehci0 {
120 status = "okay";
60}; 121};
61 122
62&ehci1 { 123&ehci1 {
63 status = "okay"; 124 status = "okay";
64}; 125};
65 126
127&emac {
128 pinctrl-names = "default";
129 pinctrl-0 = <&rgmii_pins>;
130 phy-mode = "rgmii";
131 phy-handle = <&ext_rgmii_phy>;
132 phy-supply = <&reg_gmac_3v3>;
133 status = "okay";
134};
135
136&hdmi {
137 hvcc-supply = <&reg_dldo1>;
138 status = "okay";
139};
140
141&hdmi_out {
142 hdmi_out_con: endpoint {
143 remote-endpoint = <&hdmi_con_in>;
144 };
145};
146
147&mdio {
148 ext_rgmii_phy: ethernet-phy@1 {
149 compatible = "ethernet-phy-ieee802.3-c22";
150 reg = <1>;
151 };
152};
153
66&mmc0 { 154&mmc0 {
67 pinctrl-names = "default"; 155 pinctrl-names = "default";
68 pinctrl-0 = <&mmc0_pins>; 156 pinctrl-0 = <&mmc0_pins>;
69 vmmc-supply = <&reg_dcdc1>; 157 vmmc-supply = <&reg_dcdc1>;
70 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; 158 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
159 disable-wp;
160 bus-width = <4>;
161 status = "okay";
162};
163
164&mmc1 {
165 pinctrl-names = "default";
166 pinctrl-0 = <&mmc1_pins>;
167 vmmc-supply = <&reg_dldo2>;
168 vqmmc-supply = <&reg_dldo4>;
169 mmc-pwrseq = <&wifi_pwrseq>;
170 bus-width = <4>;
171 non-removable;
172 status = "okay";
173};
174
175&ohci0 {
71 status = "okay"; 176 status = "okay";
72}; 177};
73 178
@@ -89,9 +194,8 @@
89#include "axp803.dtsi" 194#include "axp803.dtsi"
90 195
91&reg_aldo1 { 196&reg_aldo1 {
92 regulator-always-on; 197 regulator-min-microvolt = <2800000>;
93 regulator-min-microvolt = <1800000>; 198 regulator-max-microvolt = <2800000>;
94 regulator-max-microvolt = <3300000>;
95 regulator-name = "afvcc-csi"; 199 regulator-name = "afvcc-csi";
96}; 200};
97 201
@@ -163,12 +267,23 @@
163 regulator-name = "vcc-wifi-io"; 267 regulator-name = "vcc-wifi-io";
164}; 268};
165 269
270&reg_drivevbus {
271 regulator-name = "usb0-vbus";
272 status = "okay";
273};
274
166&reg_eldo1 { 275&reg_eldo1 {
167 regulator-min-microvolt = <1800000>; 276 regulator-min-microvolt = <1800000>;
168 regulator-max-microvolt = <1800000>; 277 regulator-max-microvolt = <1800000>;
169 regulator-name = "cpvdd"; 278 regulator-name = "cpvdd";
170}; 279};
171 280
281&reg_eldo3 {
282 regulator-min-microvolt = <1500000>;
283 regulator-max-microvolt = <1800000>;
284 regulator-name = "dvdd-csi";
285};
286
172&reg_fldo1 { 287&reg_fldo1 {
173 regulator-min-microvolt = <1200000>; 288 regulator-min-microvolt = <1200000>;
174 regulator-max-microvolt = <1200000>; 289 regulator-max-microvolt = <1200000>;
@@ -195,13 +310,61 @@
195 vcc-hdmi-supply = <&reg_dldo1>; 310 vcc-hdmi-supply = <&reg_dldo1>;
196}; 311};
197 312
313&spi0 {
314 status = "okay";
315
316 spi-flash@0 {
317 compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
318 reg = <0>;
319 spi-max-frequency = <80000000>;
320 m25p,fast-read;
321 status = "okay";
322 };
323};
324
325/* On debug connector */
198&uart0 { 326&uart0 {
199 pinctrl-names = "default"; 327 pinctrl-names = "default";
200 pinctrl-0 = <&uart0_pins_a>; 328 pinctrl-0 = <&uart0_pb_pins>;
201 status = "okay"; 329 status = "okay";
202}; 330};
203 331
204&usbphy { 332/* Bluetooth */
333&uart1 {
334 pinctrl-names = "default";
335 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
205 status = "okay"; 336 status = "okay";
206}; 337};
207 338
339/* On Pi-2 connector, RTS/CTS optional */
340&uart2 {
341 pinctrl-names = "default";
342 pinctrl-0 = <&uart2_pins>;
343 status = "disabled";
344};
345
346/* On Pi-2 connector, RTS/CTS optional */
347&uart3 {
348 pinctrl-names = "default";
349 pinctrl-0 = <&uart3_pins>;
350 status = "disabled";
351};
352
353/* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */
354&uart4 {
355 pinctrl-names = "default";
356 pinctrl-0 = <&uart4_pins>;
357 status = "disabled";
358};
359
360&usb_otg {
361 dr_mode = "otg";
362 status = "okay";
363};
364
365&usbphy {
366 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
367 usb0_vbus-supply = <&reg_drivevbus>;
368 usb1_vbus-supply = <&reg_usb1_vbus>;
369 status = "okay";
370};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
new file mode 100644
index 000000000000..72d6961dc312
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-lts.dts
@@ -0,0 +1,13 @@
1/*
2 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 *
4 * Copyright (c) 2018 ARM Ltd.
5 */
6
7#include "sun50i-a64-sopine-baseboard.dts"
8
9/ {
10 model = "Pine64 LTS";
11 compatible = "pine64,pine64-lts", "allwinner,sun50i-r18",
12 "allwinner,sun50i-a64";
13};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
index 1b9b92e541d2..c077b6c1f458 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
@@ -62,6 +62,21 @@
62 chosen { 62 chosen {
63 stdout-path = "serial0:115200n8"; 63 stdout-path = "serial0:115200n8";
64 }; 64 };
65
66 hdmi-connector {
67 compatible = "hdmi-connector";
68 type = "a";
69
70 port {
71 hdmi_con_in: endpoint {
72 remote-endpoint = <&hdmi_out_con>;
73 };
74 };
75 };
76};
77
78&de {
79 status = "okay";
65}; 80};
66 81
67&ehci0 { 82&ehci0 {
@@ -82,6 +97,17 @@
82 97
83}; 98};
84 99
100&hdmi {
101 hvcc-supply = <&reg_dldo1>;
102 status = "okay";
103};
104
105&hdmi_out {
106 hdmi_out_con: endpoint {
107 remote-endpoint = <&hdmi_con_in>;
108 };
109};
110
85&i2c1 { 111&i2c1 {
86 pinctrl-names = "default"; 112 pinctrl-names = "default";
87 pinctrl-0 = <&i2c1_pins>; 113 pinctrl-0 = <&i2c1_pins>;
@@ -241,7 +267,7 @@
241/* On Exp and Euler connectors */ 267/* On Exp and Euler connectors */
242&uart0 { 268&uart0 {
243 pinctrl-names = "default"; 269 pinctrl-names = "default";
244 pinctrl-0 = <&uart0_pins_a>; 270 pinctrl-0 = <&uart0_pb_pins>;
245 status = "okay"; 271 status = "okay";
246}; 272};
247 273
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
index 897e60cbe38d..77fac84797e9 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
@@ -80,8 +80,7 @@
80 pinctrl-names = "default"; 80 pinctrl-names = "default";
81 pinctrl-0 = <&mmc0_pins>; 81 pinctrl-0 = <&mmc0_pins>;
82 vmmc-supply = <&reg_dcdc1>; 82 vmmc-supply = <&reg_dcdc1>;
83 cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; 83 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
84 cd-inverted;
85 disable-wp; 84 disable-wp;
86 bus-width = <4>; 85 bus-width = <4>;
87 status = "okay"; 86 status = "okay";
@@ -104,7 +103,7 @@
104 103
105&mmc2 { 104&mmc2 {
106 pinctrl-names = "default"; 105 pinctrl-names = "default";
107 pinctrl-0 = <&mmc2_pins>; 106 pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
108 vmmc-supply = <&reg_dcdc1>; 107 vmmc-supply = <&reg_dcdc1>;
109 vqmmc-supply = <&reg_eldo1>; 108 vqmmc-supply = <&reg_eldo1>;
110 bus-width = <8>; 109 bus-width = <8>;
@@ -143,7 +142,7 @@
143&r_i2c { 142&r_i2c {
144 clock-frequency = <100000>; 143 clock-frequency = <100000>;
145 pinctrl-names = "default"; 144 pinctrl-names = "default";
146 pinctrl-0 = <&r_i2c_pins_a>; 145 pinctrl-0 = <&r_i2c_pl89_pins>;
147 status = "okay"; 146 status = "okay";
148}; 147};
149 148
@@ -270,7 +269,7 @@
270 269
271&uart0 { 270&uart0 {
272 pinctrl-names = "default"; 271 pinctrl-names = "default";
273 pinctrl-0 = <&uart0_pins_a>; 272 pinctrl-0 = <&uart0_pb_pins>;
274 status = "okay"; 273 status = "okay";
275}; 274};
276 275
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
index c21f2331add6..53fcc9098df3 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
@@ -61,6 +61,17 @@
61 stdout-path = "serial0:115200n8"; 61 stdout-path = "serial0:115200n8";
62 }; 62 };
63 63
64 hdmi-connector {
65 compatible = "hdmi-connector";
66 type = "a";
67
68 port {
69 hdmi_con_in: endpoint {
70 remote-endpoint = <&hdmi_out_con>;
71 };
72 };
73 };
74
64 reg_vcc1v8: vcc1v8 { 75 reg_vcc1v8: vcc1v8 {
65 compatible = "regulator-fixed"; 76 compatible = "regulator-fixed";
66 regulator-name = "vcc1v8"; 77 regulator-name = "vcc1v8";
@@ -69,6 +80,10 @@
69 }; 80 };
70}; 81};
71 82
83&de {
84 status = "okay";
85};
86
72&ehci0 { 87&ehci0 {
73 status = "okay"; 88 status = "okay";
74}; 89};
@@ -86,6 +101,17 @@
86 status = "okay"; 101 status = "okay";
87}; 102};
88 103
104&hdmi {
105 hvcc-supply = <&reg_dldo1>;
106 status = "okay";
107};
108
109&hdmi_out {
110 hdmi_out_con: endpoint {
111 remote-endpoint = <&hdmi_con_in>;
112 };
113};
114
89&mdio { 115&mdio {
90 ext_rgmii_phy: ethernet-phy@1 { 116 ext_rgmii_phy: ethernet-phy@1 {
91 compatible = "ethernet-phy-ieee802.3-c22"; 117 compatible = "ethernet-phy-ieee802.3-c22";
@@ -140,7 +166,7 @@
140 166
141&uart0 { 167&uart0 {
142 pinctrl-names = "default"; 168 pinctrl-names = "default";
143 pinctrl-0 = <&uart0_pins_a>; 169 pinctrl-0 = <&uart0_pb_pins>;
144 status = "okay"; 170 status = "okay";
145}; 171};
146 172
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
index 81f8e0098699..c455b24dd079 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
@@ -260,7 +260,7 @@
260 260
261&uart0 { 261&uart0 {
262 pinctrl-names = "default"; 262 pinctrl-names = "default";
263 pinctrl-0 = <&uart0_pins_a>; 263 pinctrl-0 = <&uart0_pb_pins>;
264 status = "okay"; 264 status = "okay";
265}; 265};
266 266
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index d3daf90a8715..f3a66f888205 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -88,6 +88,7 @@
88 device_type = "cpu"; 88 device_type = "cpu";
89 reg = <0>; 89 reg = <0>;
90 enable-method = "psci"; 90 enable-method = "psci";
91 next-level-cache = <&L2>;
91 }; 92 };
92 93
93 cpu1: cpu@1 { 94 cpu1: cpu@1 {
@@ -95,6 +96,7 @@
95 device_type = "cpu"; 96 device_type = "cpu";
96 reg = <1>; 97 reg = <1>;
97 enable-method = "psci"; 98 enable-method = "psci";
99 next-level-cache = <&L2>;
98 }; 100 };
99 101
100 cpu2: cpu@2 { 102 cpu2: cpu@2 {
@@ -102,6 +104,7 @@
102 device_type = "cpu"; 104 device_type = "cpu";
103 reg = <2>; 105 reg = <2>;
104 enable-method = "psci"; 106 enable-method = "psci";
107 next-level-cache = <&L2>;
105 }; 108 };
106 109
107 cpu3: cpu@3 { 110 cpu3: cpu@3 {
@@ -109,7 +112,20 @@
109 device_type = "cpu"; 112 device_type = "cpu";
110 reg = <3>; 113 reg = <3>;
111 enable-method = "psci"; 114 enable-method = "psci";
115 next-level-cache = <&L2>;
112 }; 116 };
117
118 L2: l2-cache {
119 compatible = "cache";
120 cache-level = <2>;
121 };
122 };
123
124 de: display-engine {
125 compatible = "allwinner,sun50i-a64-display-engine";
126 allwinner,pipelines = <&mixer0>,
127 <&mixer1>;
128 status = "disabled";
113 }; 129 };
114 130
115 osc24M: osc24M_clk { 131 osc24M: osc24M_clk {
@@ -194,6 +210,52 @@
194 #clock-cells = <1>; 210 #clock-cells = <1>;
195 #reset-cells = <1>; 211 #reset-cells = <1>;
196 }; 212 };
213
214 mixer0: mixer@100000 {
215 compatible = "allwinner,sun50i-a64-de2-mixer-0";
216 reg = <0x100000 0x100000>;
217 clocks = <&display_clocks CLK_BUS_MIXER0>,
218 <&display_clocks CLK_MIXER0>;
219 clock-names = "bus",
220 "mod";
221 resets = <&display_clocks RST_MIXER0>;
222
223 ports {
224 #address-cells = <1>;
225 #size-cells = <0>;
226
227 mixer0_out: port@1 {
228 reg = <1>;
229
230 mixer0_out_tcon0: endpoint {
231 remote-endpoint = <&tcon0_in_mixer0>;
232 };
233 };
234 };
235 };
236
237 mixer1: mixer@200000 {
238 compatible = "allwinner,sun50i-a64-de2-mixer-1";
239 reg = <0x200000 0x100000>;
240 clocks = <&display_clocks CLK_BUS_MIXER1>,
241 <&display_clocks CLK_MIXER1>;
242 clock-names = "bus",
243 "mod";
244 resets = <&display_clocks RST_MIXER1>;
245
246 ports {
247 #address-cells = <1>;
248 #size-cells = <0>;
249
250 mixer1_out: port@1 {
251 reg = <1>;
252
253 mixer1_out_tcon1: endpoint {
254 remote-endpoint = <&tcon1_in_mixer1>;
255 };
256 };
257 };
258 };
197 }; 259 };
198 260
199 syscon: syscon@1c00000 { 261 syscon: syscon@1c00000 {
@@ -228,6 +290,75 @@
228 #dma-cells = <1>; 290 #dma-cells = <1>;
229 }; 291 };
230 292
293 tcon0: lcd-controller@1c0c000 {
294 compatible = "allwinner,sun50i-a64-tcon-lcd",
295 "allwinner,sun8i-a83t-tcon-lcd";
296 reg = <0x01c0c000 0x1000>;
297 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
298 clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
299 clock-names = "ahb", "tcon-ch0";
300 clock-output-names = "tcon-pixel-clock";
301 resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
302 reset-names = "lcd", "lvds";
303
304 ports {
305 #address-cells = <1>;
306 #size-cells = <0>;
307
308 tcon0_in: port@0 {
309 #address-cells = <1>;
310 #size-cells = <0>;
311 reg = <0>;
312
313 tcon0_in_mixer0: endpoint@0 {
314 reg = <0>;
315 remote-endpoint = <&mixer0_out_tcon0>;
316 };
317 };
318
319 tcon0_out: port@1 {
320 #address-cells = <1>;
321 #size-cells = <0>;
322 reg = <1>;
323 };
324 };
325 };
326
327 tcon1: lcd-controller@1c0d000 {
328 compatible = "allwinner,sun50i-a64-tcon-tv",
329 "allwinner,sun8i-a83t-tcon-tv";
330 reg = <0x01c0d000 0x1000>;
331 interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
332 clocks = <&ccu CLK_BUS_TCON1>, <&ccu CLK_TCON1>;
333 clock-names = "ahb", "tcon-ch1";
334 resets = <&ccu RST_BUS_TCON1>;
335 reset-names = "lcd";
336
337 ports {
338 #address-cells = <1>;
339 #size-cells = <0>;
340
341 tcon1_in: port@0 {
342 reg = <0>;
343
344 tcon1_in_mixer1: endpoint {
345 remote-endpoint = <&mixer1_out_tcon1>;
346 };
347 };
348
349 tcon1_out: port@1 {
350 #address-cells = <1>;
351 #size-cells = <0>;
352 reg = <1>;
353
354 tcon1_out_hdmi: endpoint@1 {
355 reg = <1>;
356 remote-endpoint = <&hdmi_in_tcon1>;
357 };
358 };
359 };
360 };
361
231 mmc0: mmc@1c0f000 { 362 mmc0: mmc@1c0f000 {
232 compatible = "allwinner,sun50i-a64-mmc"; 363 compatible = "allwinner,sun50i-a64-mmc";
233 reg = <0x01c0f000 0x1000>; 364 reg = <0x01c0f000 0x1000>;
@@ -270,6 +401,11 @@
270 #size-cells = <0>; 401 #size-cells = <0>;
271 }; 402 };
272 403
404 sid: eeprom@1c14000 {
405 compatible = "allwinner,sun50i-a64-sid";
406 reg = <0x1c14000 0x400>;
407 };
408
273 usb_otg: usb@1c19000 { 409 usb_otg: usb@1c19000 {
274 compatible = "allwinner,sun8i-a33-musb"; 410 compatible = "allwinner,sun8i-a33-musb";
275 reg = <0x01c19000 0x0400>; 411 reg = <0x01c19000 0x0400>;
@@ -399,7 +535,7 @@
399 }; 535 };
400 536
401 mmc2_pins: mmc2-pins { 537 mmc2_pins: mmc2-pins {
402 pins = "PC1", "PC5", "PC6", "PC8", "PC9", 538 pins = "PC5", "PC6", "PC8", "PC9",
403 "PC10","PC11", "PC12", "PC13", 539 "PC10","PC11", "PC12", "PC13",
404 "PC14", "PC15", "PC16"; 540 "PC14", "PC15", "PC16";
405 function = "mmc2"; 541 function = "mmc2";
@@ -407,6 +543,13 @@
407 bias-pull-up; 543 bias-pull-up;
408 }; 544 };
409 545
546 mmc2_ds_pin: mmc2-ds-pin {
547 pins = "PC1";
548 function = "mmc2";
549 drive-strength = <30>;
550 bias-pull-up;
551 };
552
410 pwm_pin: pwm_pin { 553 pwm_pin: pwm_pin {
411 pins = "PD22"; 554 pins = "PD22";
412 function = "pwm"; 555 function = "pwm";
@@ -442,7 +585,7 @@
442 function = "spi1"; 585 function = "spi1";
443 }; 586 };
444 587
445 uart0_pins_a: uart0 { 588 uart0_pb_pins: uart0-pb-pins {
446 pins = "PB8", "PB9"; 589 pins = "PB8", "PB9";
447 function = "uart0"; 590 function = "uart0";
448 }; 591 };
@@ -686,6 +829,50 @@
686 status = "disabled"; 829 status = "disabled";
687 }; 830 };
688 831
832 hdmi: hdmi@1ee0000 {
833 compatible = "allwinner,sun50i-a64-dw-hdmi",
834 "allwinner,sun8i-a83t-dw-hdmi";
835 reg = <0x01ee0000 0x10000>;
836 reg-io-width = <1>;
837 interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
838 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
839 <&ccu CLK_HDMI>;
840 clock-names = "iahb", "isfr", "tmds";
841 resets = <&ccu RST_BUS_HDMI1>;
842 reset-names = "ctrl";
843 phys = <&hdmi_phy>;
844 phy-names = "hdmi-phy";
845 status = "disabled";
846
847 ports {
848 #address-cells = <1>;
849 #size-cells = <0>;
850
851 hdmi_in: port@0 {
852 reg = <0>;
853
854 hdmi_in_tcon1: endpoint {
855 remote-endpoint = <&tcon1_out_hdmi>;
856 };
857 };
858
859 hdmi_out: port@1 {
860 reg = <1>;
861 };
862 };
863 };
864
865 hdmi_phy: hdmi-phy@1ef0000 {
866 compatible = "allwinner,sun50i-a64-hdmi-phy";
867 reg = <0x01ef0000 0x10000>;
868 clocks = <&ccu CLK_BUS_HDMI>, <&ccu CLK_HDMI_DDC>,
869 <&ccu 7>;
870 clock-names = "bus", "mod", "pll-0";
871 resets = <&ccu RST_BUS_HDMI0>;
872 reset-names = "phy";
873 #phy-cells = <0>;
874 };
875
689 rtc: rtc@1f00000 { 876 rtc: rtc@1f00000 {
690 compatible = "allwinner,sun6i-a31-rtc"; 877 compatible = "allwinner,sun6i-a31-rtc";
691 reg = <0x01f00000 0x54>; 878 reg = <0x01f00000 0x54>;
@@ -749,7 +936,7 @@
749 interrupt-controller; 936 interrupt-controller;
750 #interrupt-cells = <3>; 937 #interrupt-cells = <3>;
751 938
752 r_i2c_pins_a: i2c-a { 939 r_i2c_pl89_pins: r-i2c-pl89-pins {
753 pins = "PL8", "PL9"; 940 pins = "PL8", "PL9";
754 function = "s_i2c"; 941 function = "s_i2c";
755 }; 942 };
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus-v1.2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus-v1.2.dts
new file mode 100644
index 000000000000..2e2b14c0ae75
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus-v1.2.dts
@@ -0,0 +1,11 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2018 Chen-Yu Tsai <wens@csie.org>
3
4/dts-v1/;
5#include "sun50i-h5.dtsi"
6#include <arm/sunxi-bananapi-m2-plus-v1.2.dtsi>
7
8/ {
9 model = "Banana Pi BPI-M2-Plus v1.2 H5";
10 compatible = "bananapi,bpi-m2-plus-v1.2", "allwinner,sun50i-h5";
11};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus.dts
new file mode 100644
index 000000000000..77661006dfba
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5-bananapi-m2-plus.dts
@@ -0,0 +1,11 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2// Copyright (C) 2018 Chen-Yu Tsai <wens@csie.org>
3
4/dts-v1/;
5#include "sun50i-h5.dtsi"
6#include <arm/sunxi-bananapi-m2-plus.dtsi>
7
8/ {
9 model = "Banana Pi BPI-M2-Plus H5";
10 compatible = "sinovoip,bpi-m2-plus", "allwinner,sun50i-h5";
11};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
index 62d646baac3c..b41dc1aab67d 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi
@@ -92,6 +92,49 @@
92 <GIC_PPI 10 92 <GIC_PPI 10
93 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; 93 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
94 }; 94 };
95
96 soc {
97 mali: gpu@1e80000 {
98 compatible = "allwinner,sun50i-h5-mali", "arm,mali-450";
99 reg = <0x01e80000 0x30000>;
100 /*
101 * While the datasheet lists an interrupt for the
102 * PMU, the actual silicon does not have the PMU
103 * block. Reads all return zero, and writes are
104 * ignored.
105 */
106 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
107 <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
108 <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
109 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
110 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
111 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
112 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
113 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
114 <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
115 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
116 <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
117 <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
118 interrupt-names = "gp",
119 "gpmmu",
120 "pp",
121 "pp0",
122 "ppmmu0",
123 "pp1",
124 "ppmmu1",
125 "pp2",
126 "ppmmu2",
127 "pp3",
128 "ppmmu3",
129 "pmu";
130 clocks = <&ccu CLK_BUS_GPU>, <&ccu CLK_GPU>;
131 clock-names = "bus", "core";
132 resets = <&ccu RST_BUS_GPU>;
133
134 assigned-clocks = <&ccu CLK_GPU>;
135 assigned-clock-rates = <384000000>;
136 };
137 };
95}; 138};
96 139
97&ccu { 140&ccu {
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts
new file mode 100644
index 000000000000..0612c19cd994
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-one-plus.dts
@@ -0,0 +1,150 @@
1// SPDX-License-Identifier: (GPL-2.0+ or MIT)
2/*
3 * Copyright (C) 2018 Amarula Solutions
4 * Author: Jagan Teki <jagan@amarulasolutions.com>
5 */
6
7/dts-v1/;
8
9#include "sun50i-h6.dtsi"
10
11#include <dt-bindings/gpio/gpio.h>
12
13/ {
14 model = "OrangePi One Plus";
15 compatible = "xunlong,orangepi-one-plus", "allwinner,sun50i-h6";
16
17 aliases {
18 serial0 = &uart0;
19 };
20
21 chosen {
22 stdout-path = "serial0:115200n8";
23 };
24};
25
26&mmc0 {
27 pinctrl-names = "default";
28 pinctrl-0 = <&mmc0_pins>;
29 vmmc-supply = <&reg_cldo1>;
30 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
31 bus-width = <4>;
32 status = "okay";
33};
34
35&r_i2c {
36 status = "okay";
37
38 axp805: pmic@36 {
39 compatible = "x-powers,axp805", "x-powers,axp806";
40 reg = <0x36>;
41 interrupt-parent = <&r_intc>;
42 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
43 interrupt-controller;
44 #interrupt-cells = <1>;
45 x-powers,self-working-mode;
46
47 regulators {
48 reg_aldo1: aldo1 {
49 regulator-always-on;
50 regulator-min-microvolt = <3300000>;
51 regulator-max-microvolt = <3300000>;
52 regulator-name = "vcc-pl";
53 };
54
55 reg_aldo2: aldo2 {
56 regulator-min-microvolt = <3300000>;
57 regulator-max-microvolt = <3300000>;
58 regulator-name = "vcc-ac200";
59 };
60
61 reg_aldo3: aldo3 {
62 regulator-always-on;
63 regulator-min-microvolt = <3300000>;
64 regulator-max-microvolt = <3300000>;
65 regulator-name = "vcc25-dram";
66 };
67
68 reg_bldo1: bldo1 {
69 regulator-always-on;
70 regulator-min-microvolt = <1800000>;
71 regulator-max-microvolt = <1800000>;
72 regulator-name = "vcc-bias-pll";
73 };
74
75 reg_bldo2: bldo2 {
76 regulator-always-on;
77 regulator-min-microvolt = <1800000>;
78 regulator-max-microvolt = <1800000>;
79 regulator-name = "vcc-efuse-pcie-hdmi-io";
80 };
81
82 reg_bldo3: bldo3 {
83 regulator-always-on;
84 regulator-min-microvolt = <1800000>;
85 regulator-max-microvolt = <1800000>;
86 regulator-name = "vcc-dcxoio";
87 };
88
89 bldo4 {
90 /* unused */
91 };
92
93 reg_cldo1: cldo1 {
94 regulator-always-on;
95 regulator-min-microvolt = <3300000>;
96 regulator-max-microvolt = <3300000>;
97 regulator-name = "vcc-3v3";
98 };
99
100 reg_cldo2: cldo2 {
101 regulator-min-microvolt = <3300000>;
102 regulator-max-microvolt = <3300000>;
103 regulator-name = "vcc-wifi-1";
104 };
105
106 reg_cldo3: cldo3 {
107 regulator-min-microvolt = <3300000>;
108 regulator-max-microvolt = <3300000>;
109 regulator-name = "vcc-wifi-2";
110 };
111
112 reg_dcdca: dcdca {
113 regulator-always-on;
114 regulator-min-microvolt = <810000>;
115 regulator-max-microvolt = <1080000>;
116 regulator-name = "vdd-cpu";
117 };
118
119 reg_dcdcc: dcdcc {
120 regulator-min-microvolt = <810000>;
121 regulator-max-microvolt = <1080000>;
122 regulator-name = "vdd-gpu";
123 };
124
125 reg_dcdcd: dcdcd {
126 regulator-always-on;
127 regulator-min-microvolt = <960000>;
128 regulator-max-microvolt = <960000>;
129 regulator-name = "vdd-sys";
130 };
131
132 reg_dcdce: dcdce {
133 regulator-always-on;
134 regulator-min-microvolt = <1200000>;
135 regulator-max-microvolt = <1200000>;
136 regulator-name = "vcc-dram";
137 };
138
139 sw {
140 /* unused */
141 };
142 };
143 };
144};
145
146&uart0 {
147 pinctrl-names = "default";
148 pinctrl-0 = <&uart0_ph_pins>;
149 status = "okay";
150};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
index cfa5fffcf62b..040828d2e2c0 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
@@ -92,6 +92,29 @@
92 #size-cells = <1>; 92 #size-cells = <1>;
93 ranges; 93 ranges;
94 94
95 syscon: syscon@3000000 {
96 compatible = "allwinner,sun50i-h6-system-control",
97 "allwinner,sun50i-a64-system-control";
98 reg = <0x03000000 0x1000>;
99 #address-cells = <1>;
100 #size-cells = <1>;
101 ranges;
102
103 sram_c: sram@28000 {
104 compatible = "mmio-sram";
105 reg = <0x00028000 0x1e000>;
106 #address-cells = <1>;
107 #size-cells = <1>;
108 ranges = <0 0x00028000 0x1e000>;
109
110 de2_sram: sram-section@0 {
111 compatible = "allwinner,sun50i-h6-sram-c",
112 "allwinner,sun50i-a64-sram-c";
113 reg = <0x0000 0x1e000>;
114 };
115 };
116 };
117
95 ccu: clock@3001000 { 118 ccu: clock@3001000 {
96 compatible = "allwinner,sun50i-h6-ccu"; 119 compatible = "allwinner,sun50i-h6-ccu";
97 reg = <0x03001000 0x1000>; 120 reg = <0x03001000 0x1000>;
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
index fb3d2ee77c56..8253a1a9e985 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
@@ -341,7 +341,7 @@
341 341
342 sysmgr: sysmgr@ffd12000 { 342 sysmgr: sysmgr@ffd12000 {
343 compatible = "altr,sys-mgr", "syscon"; 343 compatible = "altr,sys-mgr", "syscon";
344 reg = <0xffd12000 0x1000>; 344 reg = <0xffd12000 0x228>;
345 }; 345 };
346 346
347 /* Local timer */ 347 /* Local timer */
diff --git a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
index 7c661753bfaf..2e3863ee12b3 100644
--- a/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
+++ b/arch/arm64/boot/dts/altera/socfpga_stratix10_socdk.dts
@@ -21,6 +21,9 @@
21 21
22 aliases { 22 aliases {
23 serial0 = &uart0; 23 serial0 = &uart0;
24 ethernet0 = &gmac0;
25 ethernet1 = &gmac1;
26 ethernet2 = &gmac2;
24 }; 27 };
25 28
26 chosen { 29 chosen {
@@ -124,6 +127,8 @@
124&i2c1 { 127&i2c1 {
125 status = "okay"; 128 status = "okay";
126 clock-frequency = <100000>; 129 clock-frequency = <100000>;
130 i2c-sda-falling-time-ns = <890>; /* hcnt */
131 i2c-sdl-falling-time-ns = <890>; /* lcnt */
127 132
128 adc@14 { 133 adc@14 {
129 compatible = "lltc,ltc2497"; 134 compatible = "lltc,ltc2497";
diff --git a/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi b/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi
index 125f4deb52fe..b664e7af74eb 100644
--- a/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi
+++ b/arch/arm64/boot/dts/amd/amd-seattle-soc.dtsi
@@ -107,7 +107,7 @@
107 clock-names = "uartclk", "apb_pclk"; 107 clock-names = "uartclk", "apb_pclk";
108 }; 108 };
109 109
110 spi0: ssp@e1020000 { 110 spi0: spi@e1020000 {
111 status = "disabled"; 111 status = "disabled";
112 compatible = "arm,pl022", "arm,primecell"; 112 compatible = "arm,pl022", "arm,primecell";
113 reg = <0 0xe1020000 0 0x1000>; 113 reg = <0 0xe1020000 0 0x1000>;
@@ -117,7 +117,7 @@
117 clock-names = "apb_pclk"; 117 clock-names = "apb_pclk";
118 }; 118 };
119 119
120 spi1: ssp@e1030000 { 120 spi1: spi@e1030000 {
121 status = "disabled"; 121 status = "disabled";
122 compatible = "arm,pl022", "arm,primecell"; 122 compatible = "arm,pl022", "arm,primecell";
123 reg = <0 0xe1030000 0 0x1000>; 123 reg = <0 0xe1030000 0 0x1000>;
diff --git a/arch/arm64/boot/dts/amlogic/Makefile b/arch/arm64/boot/dts/amlogic/Makefile
index a97c0e2d7bc6..c31f29d660de 100644
--- a/arch/arm64/boot/dts/amlogic/Makefile
+++ b/arch/arm64/boot/dts/amlogic/Makefile
@@ -1,5 +1,6 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb 2dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
3dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
3dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb 4dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
4dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb 5dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb
5dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb 6dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts
index d5c01427a5ca..18778ada7bd3 100644
--- a/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-axg-s400.dts
@@ -60,6 +60,55 @@
60 serial1 = &uart_A; 60 serial1 = &uart_A;
61 }; 61 };
62 62
63 linein: audio-codec@0 {
64 #sound-dai-cells = <0>;
65 compatible = "everest,es7241";
66 VDDA-supply = <&vcc_3v3>;
67 VDDP-supply = <&vcc_3v3>;
68 VDDD-supply = <&vcc_3v3>;
69 status = "okay";
70 sound-name-prefix = "Linein";
71 };
72
73 lineout: audio-codec@1 {
74 #sound-dai-cells = <0>;
75 compatible = "everest,es7154";
76 VDD-supply = <&vcc_3v3>;
77 PVDD-supply = <&vcc_5v>;
78 status = "okay";
79 sound-name-prefix = "Lineout";
80 };
81
82 spdif_dit: audio-codec@2 {
83 #sound-dai-cells = <0>;
84 compatible = "linux,spdif-dit";
85 status = "okay";
86 sound-name-prefix = "DIT";
87 };
88
89 dmics: audio-codec@3 {
90 #sound-dai-cells = <0>;
91 compatible = "dmic-codec";
92 num-channels = <7>;
93 wakeup-delay-ms = <50>;
94 status = "okay";
95 sound-name-prefix = "MIC";
96 };
97
98 emmc_pwrseq: emmc-pwrseq {
99 compatible = "mmc-pwrseq-emmc";
100 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
101 };
102
103 chosen {
104 stdout-path = "serial0:115200n8";
105 };
106
107 memory@0 {
108 device_type = "memory";
109 reg = <0x0 0x0 0x0 0x40000000>;
110 };
111
63 main_12v: regulator-main_12v { 112 main_12v: regulator-main_12v {
64 compatible = "regulator-fixed"; 113 compatible = "regulator-fixed";
65 regulator-name = "12V"; 114 regulator-name = "12V";
@@ -68,15 +117,26 @@
68 regulator-always-on; 117 regulator-always-on;
69 }; 118 };
70 119
71 vddio_boot: regulator-vddio_boot { 120 vcc_3v3: regulator-vcc_3v3 {
72 compatible = "regulator-fixed"; 121 compatible = "regulator-fixed";
73 regulator-name = "VDDIO_BOOT"; 122 regulator-name = "VCC_3V3";
74 regulator-min-microvolt = <1800000>; 123 regulator-min-microvolt = <3300000>;
75 regulator-max-microvolt = <1800000>; 124 regulator-max-microvolt = <3300000>;
76 vin-supply = <&vddao_3v3>; 125 vin-supply = <&vddao_3v3>;
77 regulator-always-on; 126 regulator-always-on;
78 }; 127 };
79 128
129 vcc_5v: regulator-vcc_5v {
130 compatible = "regulator-fixed";
131 regulator-name = "VCC5V";
132 regulator-min-microvolt = <5000000>;
133 regulator-max-microvolt = <5000000>;
134 vin-supply = <&main_12v>;
135
136 gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
137 enable-active-high;
138 };
139
80 vddao_3v3: regulator-vddao_3v3 { 140 vddao_3v3: regulator-vddao_3v3 {
81 compatible = "regulator-fixed"; 141 compatible = "regulator-fixed";
82 regulator-name = "VDDAO_3V3"; 142 regulator-name = "VDDAO_3V3";
@@ -95,26 +155,15 @@
95 regulator-always-on; 155 regulator-always-on;
96 }; 156 };
97 157
98 vcc_3v3: regulator-vcc_3v3 { 158 vddio_boot: regulator-vddio_boot {
99 compatible = "regulator-fixed"; 159 compatible = "regulator-fixed";
100 regulator-name = "VCC_3V3"; 160 regulator-name = "VDDIO_BOOT";
101 regulator-min-microvolt = <3300000>; 161 regulator-min-microvolt = <1800000>;
102 regulator-max-microvolt = <3300000>; 162 regulator-max-microvolt = <1800000>;
103 vin-supply = <&vddao_3v3>; 163 vin-supply = <&vddao_3v3>;
104 regulator-always-on; 164 regulator-always-on;
105 }; 165 };
106 166
107 vcc_5v: regulator-vcc_5v {
108 compatible = "regulator-fixed";
109 regulator-name = "VCC5V";
110 regulator-min-microvolt = <5000000>;
111 regulator-max-microvolt = <5000000>;
112 vin-supply = <&main_12v>;
113
114 gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
115 enable-active-high;
116 };
117
118 usb_pwr: regulator-usb_pwr { 167 usb_pwr: regulator-usb_pwr {
119 compatible = "regulator-fixed"; 168 compatible = "regulator-fixed";
120 regulator-name = "USB_PWR"; 169 regulator-name = "USB_PWR";
@@ -126,11 +175,6 @@
126 enable-active-high; 175 enable-active-high;
127 }; 176 };
128 177
129 emmc_pwrseq: emmc-pwrseq {
130 compatible = "mmc-pwrseq-emmc";
131 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
132 };
133
134 sdio_pwrseq: sdio-pwrseq { 178 sdio_pwrseq: sdio-pwrseq {
135 compatible = "mmc-pwrseq-simple"; 179 compatible = "mmc-pwrseq-simple";
136 reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>; 180 reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
@@ -138,13 +182,6 @@
138 clock-names = "ext_clock"; 182 clock-names = "ext_clock";
139 }; 183 };
140 184
141 wifi32k: wifi32k {
142 compatible = "pwm-clock";
143 #clock-cells = <0>;
144 clock-frequency = <32768>;
145 pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
146 };
147
148 speaker-leds { 185 speaker-leds {
149 compatible = "gpio-leds"; 186 compatible = "gpio-leds";
150 187
@@ -179,30 +216,129 @@
179 }; 216 };
180 }; 217 };
181 218
182 linein: audio-codec@0 { 219 sound {
183 #sound-dai-cells = <0>; 220 compatible = "amlogic,axg-sound-card";
184 compatible = "everest,es7241"; 221 model = "AXG-S400";
185 VDDA-supply = <&vcc_3v3>; 222 audio-aux-devs = <&tdmin_a>, <&tdmin_b>, <&tdmin_c>,
186 VDDP-supply = <&vcc_3v3>; 223 <&tdmin_lb>, <&tdmout_c>;
187 VDDD-supply = <&vcc_3v3>; 224 audio-widgets = "Line", "Lineout",
225 "Line", "Linein",
226 "Speaker", "Speaker1 Left",
227 "Speaker", "Speaker1 Right";
228 audio-routing = "TDMOUT_C IN 0", "FRDDR_A OUT 2",
229 "SPDIFOUT IN 0", "FRDDR_A OUT 3",
230 "TDMOUT_C IN 1", "FRDDR_B OUT 2",
231 "SPDIFOUT IN 1", "FRDDR_B OUT 3",
232 "TDMOUT_C IN 2", "FRDDR_C OUT 2",
233 "SPDIFOUT IN 2", "FRDDR_C OUT 3",
234 "TDM_C Playback", "TDMOUT_C OUT",
235 "TDMIN_A IN 2", "TDM_C Capture",
236 "TDMIN_A IN 5", "TDM_C Loopback",
237 "TDMIN_B IN 2", "TDM_C Capture",
238 "TDMIN_B IN 5", "TDM_C Loopback",
239 "TDMIN_C IN 2", "TDM_C Capture",
240 "TDMIN_C IN 5", "TDM_C Loopback",
241 "TDMIN_LB IN 2", "TDM_C Loopback",
242 "TDMIN_LB IN 5", "TDM_C Capture",
243 "TODDR_A IN 0", "TDMIN_A OUT",
244 "TODDR_B IN 0", "TDMIN_A OUT",
245 "TODDR_C IN 0", "TDMIN_A OUT",
246 "TODDR_A IN 1", "TDMIN_B OUT",
247 "TODDR_B IN 1", "TDMIN_B OUT",
248 "TODDR_C IN 1", "TDMIN_B OUT",
249 "TODDR_A IN 2", "TDMIN_C OUT",
250 "TODDR_B IN 2", "TDMIN_C OUT",
251 "TODDR_C IN 2", "TDMIN_C OUT",
252 "TODDR_A IN 4", "PDM Capture",
253 "TODDR_B IN 4", "PDM Capture",
254 "TODDR_C IN 4", "PDM Capture",
255 "TODDR_A IN 6", "TDMIN_LB OUT",
256 "TODDR_B IN 6", "TDMIN_LB OUT",
257 "TODDR_C IN 6", "TDMIN_LB OUT",
258 "Lineout", "Lineout AOUTL",
259 "Lineout", "Lineout AOUTR",
260 "Speaker1 Left", "SPK1 OUT_A",
261 "Speaker1 Left", "SPK1 OUT_B",
262 "Speaker1 Right", "SPK1 OUT_C",
263 "Speaker1 Right", "SPK1 OUT_D",
264 "Linein AINL", "Linein",
265 "Linein AINR", "Linein";
266 assigned-clocks = <&clkc CLKID_HIFI_PLL>,
267 <&clkc CLKID_MPLL0>,
268 <&clkc CLKID_MPLL1>;
269 assigned-clock-parents = <0>, <0>, <0>;
270 assigned-clock-rates = <589824000>,
271 <270950400>,
272 <393216000>;
188 status = "okay"; 273 status = "okay";
189 sound-name-prefix = "Linein";
190 };
191 274
192 lineout: audio-codec@1 { 275 dai-link@0 {
193 #sound-dai-cells = <0>; 276 sound-dai = <&frddr_a>;
194 compatible = "everest,es7154"; 277 };
195 VDD-supply = <&vcc_3v3>; 278
196 PVDD-supply = <&vcc_5v>; 279 dai-link@1 {
197 status = "okay"; 280 sound-dai = <&frddr_b>;
198 sound-name-prefix = "Lineout"; 281 };
282
283 dai-link@2 {
284 sound-dai = <&frddr_c>;
285 };
286
287 dai-link@3 {
288 sound-dai = <&toddr_a>;
289 };
290
291 dai-link@4 {
292 sound-dai = <&toddr_b>;
293 };
294
295 dai-link@5 {
296 sound-dai = <&toddr_c>;
297 };
298
299 dai-link@6 {
300 sound-dai = <&tdmif_c>;
301 dai-format = "i2s";
302 dai-tdm-slot-tx-mask-2 = <1 1>;
303 dai-tdm-slot-rx-mask-1 = <1 1>;
304 mclk-fs = <256>;
305
306 codec@0 {
307 sound-dai = <&lineout>;
308 };
309
310 codec@1 {
311 sound-dai = <&speaker_amp1>;
312 };
313
314 codec@2 {
315 sound-dai = <&linein>;
316 };
317
318 };
319
320 dai-link@7 {
321 sound-dai = <&spdifout>;
322
323 codec {
324 sound-dai = <&spdif_dit>;
325 };
326 };
327
328 dai-link@8 {
329 sound-dai = <&pdm>;
330
331 codec {
332 sound-dai = <&dmics>;
333 };
334 };
199 }; 335 };
200 336
201 spdif_dit: audio-codec@2 { 337 wifi32k: wifi32k {
202 #sound-dai-cells = <0>; 338 compatible = "pwm-clock";
203 compatible = "linux,spdif-dit"; 339 #clock-cells = <0>;
204 status = "okay"; 340 clock-frequency = <32768>;
205 sound-name-prefix = "DIT"; 341 pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
206 }; 342 };
207}; 343};
208 344
@@ -226,16 +362,16 @@
226 }; 362 };
227}; 363};
228 364
229&uart_A { 365&frddr_a {
230 status = "okay"; 366 status = "okay";
231 pinctrl-0 = <&uart_a_pins>;
232 pinctrl-names = "default";
233}; 367};
234 368
235&uart_AO { 369&frddr_b {
370 status = "okay";
371};
372
373&frddr_c {
236 status = "okay"; 374 status = "okay";
237 pinctrl-0 = <&uart_ao_a_pins>;
238 pinctrl-names = "default";
239}; 375};
240 376
241&ir { 377&ir {
@@ -260,6 +396,7 @@
260 PVDD_B-supply = <&main_12v>; 396 PVDD_B-supply = <&main_12v>;
261 PVDD_C-supply = <&main_12v>; 397 PVDD_C-supply = <&main_12v>;
262 PVDD_D-supply = <&main_12v>; 398 PVDD_D-supply = <&main_12v>;
399 sound-name-prefix = "SPK1";
263 }; 400 };
264}; 401};
265 402
@@ -277,30 +414,22 @@
277 }; 414 };
278}; 415};
279 416
417&pdm {
418 pinctrl-0 = <&pdm_dclk_a14_pins>, <&pdm_din0_pins>,
419 <&pdm_din1_pins>, <&pdm_din2_pins>, <&pdm_din3_pins>;
420 pinctrl-names = "default";
421 status = "okay";
422};
423
280&pwm_ab { 424&pwm_ab {
281 status = "okay"; 425 status = "okay";
282 pinctrl-0 = <&pwm_a_x20_pins>; 426 pinctrl-0 = <&pwm_a_x20_pins>;
283 pinctrl-names = "default"; 427 pinctrl-names = "default";
284}; 428};
285 429
286/* emmc storage */ 430&saradc {
287&sd_emmc_c {
288 status = "okay"; 431 status = "okay";
289 pinctrl-0 = <&emmc_pins>; 432 vref-supply = <&vddio_ao18>;
290 pinctrl-1 = <&emmc_clk_gate_pins>;
291 pinctrl-names = "default", "clk-gate";
292
293 bus-width = <8>;
294 cap-sd-highspeed;
295 cap-mmc-highspeed;
296 max-frequency = <180000000>;
297 non-removable;
298 disable-wp;
299 mmc-ddr-1_8v;
300 mmc-hs200-1_8v;
301
302 vmmc-supply = <&vcc_3v3>;
303 vqmmc-supply = <&vddio_boot>;
304}; 433};
305 434
306/* wifi module */ 435/* wifi module */
@@ -330,7 +459,96 @@
330 }; 459 };
331}; 460};
332 461
333&saradc { 462/* emmc storage */
463&sd_emmc_c {
464 status = "disabled";
465 pinctrl-0 = <&emmc_pins>;
466 pinctrl-1 = <&emmc_clk_gate_pins>;
467 pinctrl-names = "default", "clk-gate";
468
469 bus-width = <8>;
470 cap-sd-highspeed;
471 cap-mmc-highspeed;
472 max-frequency = <180000000>;
473 non-removable;
474 disable-wp;
475 mmc-ddr-1_8v;
476 mmc-hs200-1_8v;
477
478 mmc-pwrseq = <&emmc_pwrseq>;
479
480 vmmc-supply = <&vcc_3v3>;
481 vqmmc-supply = <&vddio_boot>;
482};
483
484&spdifout {
485 pinctrl-0 = <&spdif_out_a20_pins>;
486 pinctrl-names = "default";
334 status = "okay"; 487 status = "okay";
335 vref-supply = <&vddio_ao18>; 488};
489
490&tdmif_a {
491 pinctrl-0 = <&tdma_sclk_pins>, <&tdma_fs_pins>,
492 <&tdma_din0_pins>, <&tdma_dout0_x15_pins>;
493 pinctrl-names = "default";
494 status = "okay";
495};
496
497&tdmif_b {
498 pinctrl-0 = <&tdmb_sclk_pins>, <&tdmb_fs_pins>,
499 <&tdmb_din3_pins>, <&mclk_b_pins>;
500 pinctrl-names = "default";
501 status = "okay";
502};
503
504&tdmif_c {
505 pinctrl-0 = <&tdmc_sclk_pins>, <&tdmc_fs_pins>,
506 <&tdmc_din1_pins>, <&tdmc_dout2_pins>,
507 <&mclk_c_pins>;
508 pinctrl-names = "default";
509 status = "okay";
510};
511
512&tdmin_a {
513 status = "okay";
514};
515
516&tdmin_b {
517 status = "okay";
518};
519
520&tdmin_c {
521 status = "okay";
522};
523
524&tdmin_lb {
525 status = "okay";
526};
527
528&tdmout_c {
529 status = "okay";
530};
531
532&toddr_a {
533 status = "okay";
534};
535
536&toddr_b {
537 status = "okay";
538};
539
540&toddr_c {
541 status = "okay";
542};
543
544&uart_A {
545 status = "okay";
546 pinctrl-0 = <&uart_a_pins>;
547 pinctrl-names = "default";
548};
549
550&uart_AO {
551 status = "okay";
552 pinctrl-0 = <&uart_ao_a_pins>;
553 pinctrl-names = "default";
336}; 554};
diff --git a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
index c518130e5ce7..df017dbd2e57 100644
--- a/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-axg.dtsi
@@ -3,13 +3,14 @@
3 * Copyright (c) 2017 Amlogic, Inc. All rights reserved. 3 * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
4 */ 4 */
5 5
6#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/clock/axg-aoclkc.h>
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/clock/axg-audio-clkc.h> 7#include <dt-bindings/clock/axg-audio-clkc.h>
10#include <dt-bindings/clock/axg-clkc.h> 8#include <dt-bindings/clock/axg-clkc.h>
11#include <dt-bindings/clock/axg-aoclkc.h> 9#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/gpio/meson-axg-gpio.h> 10#include <dt-bindings/gpio/meson-axg-gpio.h>
11#include <dt-bindings/interrupt-controller/irq.h>
12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/reset/amlogic,meson-axg-audio-arb.h>
13#include <dt-bindings/reset/amlogic,meson-axg-reset.h> 14#include <dt-bindings/reset/amlogic,meson-axg-reset.h>
14 15
15/ { 16/ {
@@ -19,22 +20,53 @@
19 #address-cells = <2>; 20 #address-cells = <2>;
20 #size-cells = <2>; 21 #size-cells = <2>;
21 22
22 reserved-memory { 23 tdmif_a: audio-controller@0 {
23 #address-cells = <2>; 24 compatible = "amlogic,axg-tdm-iface";
24 #size-cells = <2>; 25 #sound-dai-cells = <0>;
25 ranges; 26 sound-name-prefix = "TDM_A";
27 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
28 <&clkc_audio AUD_CLKID_MST_A_SCLK>,
29 <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
30 clock-names = "mclk", "sclk", "lrclk";
31 status = "disabled";
32 };
26 33
27 /* 16 MiB reserved for Hardware ROM Firmware */ 34 tdmif_b: audio-controller@1 {
28 hwrom_reserved: hwrom@0 { 35 compatible = "amlogic,axg-tdm-iface";
29 reg = <0x0 0x0 0x0 0x1000000>; 36 #sound-dai-cells = <0>;
30 no-map; 37 sound-name-prefix = "TDM_B";
31 }; 38 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
39 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
40 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
41 clock-names = "mclk", "sclk", "lrclk";
42 status = "disabled";
43 };
32 44
33 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */ 45 tdmif_c: audio-controller@2 {
34 secmon_reserved: secmon@5000000 { 46 compatible = "amlogic,axg-tdm-iface";
35 reg = <0x0 0x05000000 0x0 0x300000>; 47 #sound-dai-cells = <0>;
36 no-map; 48 sound-name-prefix = "TDM_C";
37 }; 49 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
50 <&clkc_audio AUD_CLKID_MST_C_SCLK>,
51 <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
52 clock-names = "mclk", "sclk", "lrclk";
53 status = "disabled";
54 };
55
56 ao_alt_xtal: ao_alt_xtal-clk {
57 compatible = "fixed-clock";
58 clock-frequency = <32000000>;
59 clock-output-names = "ao_alt_xtal";
60 #clock-cells = <0>;
61 };
62
63 arm-pmu {
64 compatible = "arm,cortex-a53-pmu";
65 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
66 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
67 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
68 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
69 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
38 }; 70 };
39 71
40 cpus { 72 cpus {
@@ -78,77 +110,27 @@
78 }; 110 };
79 }; 111 };
80 112
81 arm-pmu {
82 compatible = "arm,cortex-a53-pmu";
83 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
84 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
85 <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
86 <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
87 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
88 };
89
90 psci { 113 psci {
91 compatible = "arm,psci-1.0"; 114 compatible = "arm,psci-1.0";
92 method = "smc"; 115 method = "smc";
93 }; 116 };
94 117
95 tdmif_a: audio-controller@0 { 118 reserved-memory {
96 compatible = "amlogic,axg-tdm-iface"; 119 #address-cells = <2>;
97 #sound-dai-cells = <0>; 120 #size-cells = <2>;
98 sound-name-prefix = "TDM_A"; 121 ranges;
99 clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
100 <&clkc_audio AUD_CLKID_MST_A_SCLK>,
101 <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
102 clock-names = "mclk", "sclk", "lrclk";
103 status = "disabled";
104 };
105
106 tdmif_b: audio-controller@1 {
107 compatible = "amlogic,axg-tdm-iface";
108 #sound-dai-cells = <0>;
109 sound-name-prefix = "TDM_B";
110 clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
111 <&clkc_audio AUD_CLKID_MST_B_SCLK>,
112 <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
113 clock-names = "mclk", "sclk", "lrclk";
114 status = "disabled";
115 };
116
117 tdmif_c: audio-controller@2 {
118 compatible = "amlogic,axg-tdm-iface";
119 #sound-dai-cells = <0>;
120 sound-name-prefix = "TDM_C";
121 clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
122 <&clkc_audio AUD_CLKID_MST_C_SCLK>,
123 <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
124 clock-names = "mclk", "sclk", "lrclk";
125 status = "disabled";
126 };
127
128 timer {
129 compatible = "arm,armv8-timer";
130 interrupts = <GIC_PPI 13
131 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
132 <GIC_PPI 14
133 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
134 <GIC_PPI 11
135 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
136 <GIC_PPI 10
137 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
138 };
139 122
140 xtal: xtal-clk { 123 /* 16 MiB reserved for Hardware ROM Firmware */
141 compatible = "fixed-clock"; 124 hwrom_reserved: hwrom@0 {
142 clock-frequency = <24000000>; 125 reg = <0x0 0x0 0x0 0x1000000>;
143 clock-output-names = "xtal"; 126 no-map;
144 #clock-cells = <0>; 127 };
145 };
146 128
147 ao_alt_xtal: ao_alt_xtal-clk { 129 /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
148 compatible = "fixed-clock"; 130 secmon_reserved: secmon@5000000 {
149 clock-frequency = <32000000>; 131 reg = <0x0 0x05000000 0x0 0x300000>;
150 clock-output-names = "ao_alt_xtal"; 132 no-map;
151 #clock-cells = <0>; 133 };
152 }; 134 };
153 135
154 soc { 136 soc {
@@ -157,310 +139,10 @@
157 #size-cells = <2>; 139 #size-cells = <2>;
158 ranges; 140 ranges;
159 141
160 apb: apb@ffe00000 {
161 compatible = "simple-bus";
162 reg = <0x0 0xffe00000 0x0 0x200000>;
163 #address-cells = <2>;
164 #size-cells = <2>;
165 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
166
167 sd_emmc_b: sd@5000 {
168 compatible = "amlogic,meson-axg-mmc";
169 reg = <0x0 0x5000 0x0 0x800>;
170 interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
171 status = "disabled";
172 clocks = <&clkc CLKID_SD_EMMC_B>,
173 <&clkc CLKID_SD_EMMC_B_CLK0>,
174 <&clkc CLKID_FCLK_DIV2>;
175 clock-names = "core", "clkin0", "clkin1";
176 resets = <&reset RESET_SD_EMMC_B>;
177 };
178
179 sd_emmc_c: mmc@7000 {
180 compatible = "amlogic,meson-axg-mmc";
181 reg = <0x0 0x7000 0x0 0x800>;
182 interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
183 status = "disabled";
184 clocks = <&clkc CLKID_SD_EMMC_C>,
185 <&clkc CLKID_SD_EMMC_C_CLK0>,
186 <&clkc CLKID_FCLK_DIV2>;
187 clock-names = "core", "clkin0", "clkin1";
188 resets = <&reset RESET_SD_EMMC_C>;
189 };
190 };
191
192 audio: bus@ff642000 {
193 compatible = "simple-bus";
194 reg = <0x0 0xff642000 0x0 0x2000>;
195 #address-cells = <2>;
196 #size-cells = <2>;
197 ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
198
199 clkc_audio: clock-controller@0 {
200 compatible = "amlogic,axg-audio-clkc";
201 reg = <0x0 0x0 0x0 0xb4>;
202 #clock-cells = <1>;
203
204 clocks = <&clkc CLKID_AUDIO>,
205 <&clkc CLKID_MPLL0>,
206 <&clkc CLKID_MPLL1>,
207 <&clkc CLKID_MPLL2>,
208 <&clkc CLKID_MPLL3>,
209 <&clkc CLKID_HIFI_PLL>,
210 <&clkc CLKID_FCLK_DIV3>,
211 <&clkc CLKID_FCLK_DIV4>,
212 <&clkc CLKID_GP0_PLL>;
213 clock-names = "pclk",
214 "mst_in0",
215 "mst_in1",
216 "mst_in2",
217 "mst_in3",
218 "mst_in4",
219 "mst_in5",
220 "mst_in6",
221 "mst_in7";
222
223 resets = <&reset RESET_AUDIO>;
224 };
225
226 arb: reset-controller@280 {
227 compatible = "amlogic,meson-axg-audio-arb";
228 reg = <0x0 0x280 0x0 0x4>;
229 #reset-cells = <1>;
230 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
231 };
232
233 tdmin_a: audio-controller@300 {
234 compatible = "amlogic,axg-tdmin";
235 reg = <0x0 0x300 0x0 0x40>;
236 sound-name-prefix = "TDMIN_A";
237 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
238 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
239 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
240 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
241 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
242 clock-names = "pclk", "sclk", "sclk_sel",
243 "lrclk", "lrclk_sel";
244 status = "disabled";
245 };
246
247 tdmin_b: audio-controller@340 {
248 compatible = "amlogic,axg-tdmin";
249 reg = <0x0 0x340 0x0 0x40>;
250 sound-name-prefix = "TDMIN_B";
251 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
252 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
253 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
254 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
255 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
256 clock-names = "pclk", "sclk", "sclk_sel",
257 "lrclk", "lrclk_sel";
258 status = "disabled";
259 };
260
261 tdmin_c: audio-controller@380 {
262 compatible = "amlogic,axg-tdmin";
263 reg = <0x0 0x380 0x0 0x40>;
264 sound-name-prefix = "TDMIN_C";
265 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
266 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
267 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
268 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
269 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
270 clock-names = "pclk", "sclk", "sclk_sel",
271 "lrclk", "lrclk_sel";
272 status = "disabled";
273 };
274
275 tdmin_lb: audio-controller@3c0 {
276 compatible = "amlogic,axg-tdmin";
277 reg = <0x0 0x3c0 0x0 0x40>;
278 sound-name-prefix = "TDMIN_LB";
279 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
280 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
281 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
282 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
283 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
284 clock-names = "pclk", "sclk", "sclk_sel",
285 "lrclk", "lrclk_sel";
286 status = "disabled";
287 };
288
289 spdifout: audio-controller@480 {
290 compatible = "amlogic,axg-spdifout";
291 reg = <0x0 0x480 0x0 0x50>;
292 #sound-dai-cells = <0>;
293 sound-name-prefix = "SPDIFOUT";
294 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
295 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
296 clock-names = "pclk", "mclk";
297 status = "disabled";
298 };
299
300 tdmout_a: audio-controller@500 {
301 compatible = "amlogic,axg-tdmout";
302 reg = <0x0 0x500 0x0 0x40>;
303 sound-name-prefix = "TDMOUT_A";
304 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
305 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
306 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
307 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
308 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
309 clock-names = "pclk", "sclk", "sclk_sel",
310 "lrclk", "lrclk_sel";
311 status = "disabled";
312 };
313
314 tdmout_b: audio-controller@540 {
315 compatible = "amlogic,axg-tdmout";
316 reg = <0x0 0x540 0x0 0x40>;
317 sound-name-prefix = "TDMOUT_B";
318 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
319 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
320 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
321 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
322 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
323 clock-names = "pclk", "sclk", "sclk_sel",
324 "lrclk", "lrclk_sel";
325 status = "disabled";
326 };
327
328 tdmout_c: audio-controller@580 {
329 compatible = "amlogic,axg-tdmout";
330 reg = <0x0 0x580 0x0 0x40>;
331 sound-name-prefix = "TDMOUT_C";
332 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
333 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
334 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
335 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
336 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
337 clock-names = "pclk", "sclk", "sclk_sel",
338 "lrclk", "lrclk_sel";
339 status = "disabled";
340 };
341 };
342
343 cbus: bus@ffd00000 {
344 compatible = "simple-bus";
345 reg = <0x0 0xffd00000 0x0 0x25000>;
346 #address-cells = <2>;
347 #size-cells = <2>;
348 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
349
350 gpio_intc: interrupt-controller@f080 {
351 compatible = "amlogic,meson-gpio-intc";
352 reg = <0x0 0xf080 0x0 0x10>;
353 interrupt-controller;
354 #interrupt-cells = <2>;
355 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
356 status = "disabled";
357 };
358
359 pwm_ab: pwm@1b000 {
360 compatible = "amlogic,meson-axg-ee-pwm";
361 reg = <0x0 0x1b000 0x0 0x20>;
362 #pwm-cells = <3>;
363 status = "disabled";
364 };
365
366 pwm_cd: pwm@1a000 {
367 compatible = "amlogic,meson-axg-ee-pwm";
368 reg = <0x0 0x1a000 0x0 0x20>;
369 #pwm-cells = <3>;
370 status = "disabled";
371 };
372
373 reset: reset-controller@1004 {
374 compatible = "amlogic,meson-axg-reset";
375 reg = <0x0 0x01004 0x0 0x9c>;
376 #reset-cells = <1>;
377 };
378
379 spicc0: spi@13000 {
380 compatible = "amlogic,meson-axg-spicc";
381 reg = <0x0 0x13000 0x0 0x3c>;
382 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
383 clocks = <&clkc CLKID_SPICC0>;
384 clock-names = "core";
385 #address-cells = <1>;
386 #size-cells = <0>;
387 status = "disabled";
388 };
389
390 spicc1: spi@15000 {
391 compatible = "amlogic,meson-axg-spicc";
392 reg = <0x0 0x15000 0x0 0x3c>;
393 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
394 clocks = <&clkc CLKID_SPICC1>;
395 clock-names = "core";
396 #address-cells = <1>;
397 #size-cells = <0>;
398 status = "disabled";
399 };
400
401 i2c0: i2c@1f000 {
402 compatible = "amlogic,meson-axg-i2c";
403 reg = <0x0 0x1f000 0x0 0x20>;
404 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
405 clocks = <&clkc CLKID_I2C>;
406 #address-cells = <1>;
407 #size-cells = <0>;
408 status = "disabled";
409 };
410
411 i2c1: i2c@1e000 {
412 compatible = "amlogic,meson-axg-i2c";
413 reg = <0x0 0x1e000 0x0 0x20>;
414 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
415 clocks = <&clkc CLKID_I2C>;
416 #address-cells = <1>;
417 #size-cells = <0>;
418 status = "disabled";
419 };
420
421 i2c2: i2c@1d000 {
422 compatible = "amlogic,meson-axg-i2c";
423 reg = <0x0 0x1d000 0x0 0x20>;
424 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
425 clocks = <&clkc CLKID_I2C>;
426 #address-cells = <1>;
427 #size-cells = <0>;
428 status = "disabled";
429 };
430
431 i2c3: i2c@1c000 {
432 compatible = "amlogic,meson-axg-i2c";
433 reg = <0x0 0x1c000 0x0 0x20>;
434 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
435 clocks = <&clkc CLKID_I2C>;
436 #address-cells = <1>;
437 #size-cells = <0>;
438 status = "disabled";
439 };
440
441 uart_A: serial@24000 {
442 compatible = "amlogic,meson-gx-uart";
443 reg = <0x0 0x24000 0x0 0x18>;
444 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
445 status = "disabled";
446 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
447 clock-names = "xtal", "pclk", "baud";
448 };
449
450 uart_B: serial@23000 {
451 compatible = "amlogic,meson-gx-uart";
452 reg = <0x0 0x23000 0x0 0x18>;
453 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
454 status = "disabled";
455 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
456 clock-names = "xtal", "pclk", "baud";
457 };
458 };
459
460 ethmac: ethernet@ff3f0000 { 142 ethmac: ethernet@ff3f0000 {
461 compatible = "amlogic,meson-gxbb-dwmac", "snps,dwmac"; 143 compatible = "amlogic,meson-axg-dwmac", "snps,dwmac";
462 reg = <0x0 0xff3f0000 0x0 0x10000 144 reg = <0x0 0xff3f0000 0x0 0x10000
463 0x0 0xff634540 0x0 0x8>; 145 0x0 0xff634540 0x0 0x8>;
464 interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>; 146 interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
465 interrupt-names = "macirq"; 147 interrupt-names = "macirq";
466 clocks = <&clkc CLKID_ETH>, 148 clocks = <&clkc CLKID_ETH>,
@@ -470,54 +152,26 @@
470 status = "disabled"; 152 status = "disabled";
471 }; 153 };
472 154
473 gic: interrupt-controller@ffc01000 { 155 pdm: audio-controller@ff632000 {
474 compatible = "arm,gic-400"; 156 compatible = "amlogic,axg-pdm";
475 reg = <0x0 0xffc01000 0 0x1000>, 157 reg = <0x0 0xff632000 0x0 0x34>;
476 <0x0 0xffc02000 0 0x2000>, 158 #sound-dai-cells = <0>;
477 <0x0 0xffc04000 0 0x2000>, 159 sound-name-prefix = "PDM";
478 <0x0 0xffc06000 0 0x2000>; 160 clocks = <&clkc_audio AUD_CLKID_PDM>,
479 interrupt-controller; 161 <&clkc_audio AUD_CLKID_PDM_DCLK>,
480 interrupts = <GIC_PPI 9 162 <&clkc_audio AUD_CLKID_PDM_SYSCLK>;
481 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>; 163 clock-names = "pclk", "dclk", "sysclk";
482 #interrupt-cells = <3>; 164 status = "disabled";
483 #address-cells = <0>;
484 };
485
486 hiubus: bus@ff63c000 {
487 compatible = "simple-bus";
488 reg = <0x0 0xff63c000 0x0 0x1c00>;
489 #address-cells = <2>;
490 #size-cells = <2>;
491 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
492
493 sysctrl: system-controller@0 {
494 compatible = "amlogic,meson-axg-hhi-sysctrl", "syscon", "simple-mfd";
495 reg = <0 0 0 0x400>;
496
497 clkc: clock-controller {
498 compatible = "amlogic,axg-clkc";
499 #clock-cells = <1>;
500 };
501 };
502 };
503
504 mailbox: mailbox@ff63dc00 {
505 compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
506 reg = <0 0xff63dc00 0 0x400>;
507 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
508 <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
509 <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
510 #mbox-cells = <1>;
511 }; 165 };
512 166
513 periphs: periphs@ff634000 { 167 periphs: bus@ff634000 {
514 compatible = "simple-bus"; 168 compatible = "simple-bus";
515 reg = <0x0 0xff634000 0x0 0x2000>; 169 reg = <0x0 0xff634000 0x0 0x2000>;
516 #address-cells = <2>; 170 #address-cells = <2>;
517 #size-cells = <2>; 171 #size-cells = <2>;
518 ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>; 172 ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
519 173
520 hwrng: rng { 174 hwrng: rng@18 {
521 compatible = "amlogic,meson-rng"; 175 compatible = "amlogic,meson-rng";
522 reg = <0x0 0x18 0x0 0x4>; 176 reg = <0x0 0x18 0x0 0x4>;
523 clocks = <&clkc CLKID_RNG0>; 177 clocks = <&clkc CLKID_RNG0>;
@@ -532,28 +186,92 @@
532 186
533 gpio: bank@480 { 187 gpio: bank@480 {
534 reg = <0x0 0x00480 0x0 0x40>, 188 reg = <0x0 0x00480 0x0 0x40>,
535 <0x0 0x004e8 0x0 0x14>, 189 <0x0 0x004e8 0x0 0x14>,
536 <0x0 0x00520 0x0 0x14>, 190 <0x0 0x00520 0x0 0x14>,
537 <0x0 0x00430 0x0 0x3c>; 191 <0x0 0x00430 0x0 0x3c>;
538 reg-names = "mux", "pull", "pull-enable", "gpio"; 192 reg-names = "mux", "pull", "pull-enable", "gpio";
539 gpio-controller; 193 gpio-controller;
540 #gpio-cells = <2>; 194 #gpio-cells = <2>;
541 gpio-ranges = <&pinctrl_periphs 0 0 86>; 195 gpio-ranges = <&pinctrl_periphs 0 0 86>;
542 }; 196 };
543 197
198 i2c0_pins: i2c0 {
199 mux {
200 groups = "i2c0_sck",
201 "i2c0_sda";
202 function = "i2c0";
203 };
204 };
205
206 i2c1_x_pins: i2c1_x {
207 mux {
208 groups = "i2c1_sck_x",
209 "i2c1_sda_x";
210 function = "i2c1";
211 };
212 };
213
214 i2c1_z_pins: i2c1_z {
215 mux {
216 groups = "i2c1_sck_z",
217 "i2c1_sda_z";
218 function = "i2c1";
219 };
220 };
221
222 i2c2_a_pins: i2c2_a {
223 mux {
224 groups = "i2c2_sck_a",
225 "i2c2_sda_a";
226 function = "i2c2";
227 };
228 };
229
230 i2c2_x_pins: i2c2_x {
231 mux {
232 groups = "i2c2_sck_x",
233 "i2c2_sda_x";
234 function = "i2c2";
235 };
236 };
237
238 i2c3_a6_pins: i2c3_a6 {
239 mux {
240 groups = "i2c3_sda_a6",
241 "i2c3_sck_a7";
242 function = "i2c3";
243 };
244 };
245
246 i2c3_a12_pins: i2c3_a12 {
247 mux {
248 groups = "i2c3_sda_a12",
249 "i2c3_sck_a13";
250 function = "i2c3";
251 };
252 };
253
254 i2c3_a19_pins: i2c3_a19 {
255 mux {
256 groups = "i2c3_sda_a19",
257 "i2c3_sck_a20";
258 function = "i2c3";
259 };
260 };
261
544 emmc_pins: emmc { 262 emmc_pins: emmc {
545 mux { 263 mux {
546 groups = "emmc_nand_d0", 264 groups = "emmc_nand_d0",
547 "emmc_nand_d1", 265 "emmc_nand_d1",
548 "emmc_nand_d2", 266 "emmc_nand_d2",
549 "emmc_nand_d3", 267 "emmc_nand_d3",
550 "emmc_nand_d4", 268 "emmc_nand_d4",
551 "emmc_nand_d5", 269 "emmc_nand_d5",
552 "emmc_nand_d6", 270 "emmc_nand_d6",
553 "emmc_nand_d7", 271 "emmc_nand_d7",
554 "emmc_clk", 272 "emmc_clk",
555 "emmc_cmd", 273 "emmc_cmd",
556 "emmc_ds"; 274 "emmc_ds";
557 function = "emmc"; 275 function = "emmc";
558 }; 276 };
559 }; 277 };
@@ -569,40 +287,57 @@
569 }; 287 };
570 }; 288 };
571 289
572 sdio_pins: sdio { 290 eth_rgmii_x_pins: eth-x-rgmii {
573 mux { 291 mux {
574 groups = "sdio_d0", 292 groups = "eth_mdio_x",
575 "sdio_d1", 293 "eth_mdc_x",
576 "sdio_d2", 294 "eth_rgmii_rx_clk_x",
577 "sdio_d3", 295 "eth_rx_dv_x",
578 "sdio_cmd", 296 "eth_rxd0_x",
579 "sdio_clk"; 297 "eth_rxd1_x",
580 function = "sdio"; 298 "eth_rxd2_rgmii",
299 "eth_rxd3_rgmii",
300 "eth_rgmii_tx_clk",
301 "eth_txen_x",
302 "eth_txd0_x",
303 "eth_txd1_x",
304 "eth_txd2_rgmii",
305 "eth_txd3_rgmii";
306 function = "eth";
581 }; 307 };
582 }; 308 };
583 309
584 sdio_clk_gate_pins: sdio_clk_gate { 310 eth_rgmii_y_pins: eth-y-rgmii {
585 mux { 311 mux {
586 groups = "GPIOX_4"; 312 groups = "eth_mdio_y",
587 function = "gpio_periphs"; 313 "eth_mdc_y",
588 }; 314 "eth_rgmii_rx_clk_y",
589 cfg-pull-down { 315 "eth_rx_dv_y",
590 pins = "GPIOX_4"; 316 "eth_rxd0_y",
591 bias-pull-down; 317 "eth_rxd1_y",
318 "eth_rxd2_rgmii",
319 "eth_rxd3_rgmii",
320 "eth_rgmii_tx_clk",
321 "eth_txen_y",
322 "eth_txd0_y",
323 "eth_txd1_y",
324 "eth_txd2_rgmii",
325 "eth_txd3_rgmii";
326 function = "eth";
592 }; 327 };
593 }; 328 };
594 329
595 eth_rmii_x_pins: eth-x-rmii { 330 eth_rmii_x_pins: eth-x-rmii {
596 mux { 331 mux {
597 groups = "eth_mdio_x", 332 groups = "eth_mdio_x",
598 "eth_mdc_x", 333 "eth_mdc_x",
599 "eth_rgmii_rx_clk_x", 334 "eth_rgmii_rx_clk_x",
600 "eth_rx_dv_x", 335 "eth_rx_dv_x",
601 "eth_rxd0_x", 336 "eth_rxd0_x",
602 "eth_rxd1_x", 337 "eth_rxd1_x",
603 "eth_txen_x", 338 "eth_txen_x",
604 "eth_txd0_x", 339 "eth_txd0_x",
605 "eth_txd1_x"; 340 "eth_txd1_x";
606 function = "eth"; 341 function = "eth";
607 }; 342 };
608 }; 343 };
@@ -610,55 +345,29 @@
610 eth_rmii_y_pins: eth-y-rmii { 345 eth_rmii_y_pins: eth-y-rmii {
611 mux { 346 mux {
612 groups = "eth_mdio_y", 347 groups = "eth_mdio_y",
613 "eth_mdc_y", 348 "eth_mdc_y",
614 "eth_rgmii_rx_clk_y", 349 "eth_rgmii_rx_clk_y",
615 "eth_rx_dv_y", 350 "eth_rx_dv_y",
616 "eth_rxd0_y", 351 "eth_rxd0_y",
617 "eth_rxd1_y", 352 "eth_rxd1_y",
618 "eth_txen_y", 353 "eth_txen_y",
619 "eth_txd0_y", 354 "eth_txd0_y",
620 "eth_txd1_y"; 355 "eth_txd1_y";
621 function = "eth"; 356 function = "eth";
622 }; 357 };
623 }; 358 };
624 359
625 eth_rgmii_x_pins: eth-x-rgmii { 360 mclk_b_pins: mclk_b {
626 mux { 361 mux {
627 groups = "eth_mdio_x", 362 groups = "mclk_b";
628 "eth_mdc_x", 363 function = "mclk_b";
629 "eth_rgmii_rx_clk_x",
630 "eth_rx_dv_x",
631 "eth_rxd0_x",
632 "eth_rxd1_x",
633 "eth_rxd2_rgmii",
634 "eth_rxd3_rgmii",
635 "eth_rgmii_tx_clk",
636 "eth_txen_x",
637 "eth_txd0_x",
638 "eth_txd1_x",
639 "eth_txd2_rgmii",
640 "eth_txd3_rgmii";
641 function = "eth";
642 }; 364 };
643 }; 365 };
644 366
645 eth_rgmii_y_pins: eth-y-rgmii { 367 mclk_c_pins: mclk_c {
646 mux { 368 mux {
647 groups = "eth_mdio_y", 369 groups = "mclk_c";
648 "eth_mdc_y", 370 function = "mclk_c";
649 "eth_rgmii_rx_clk_y",
650 "eth_rx_dv_y",
651 "eth_rxd0_y",
652 "eth_rxd1_y",
653 "eth_rxd2_rgmii",
654 "eth_rxd3_rgmii",
655 "eth_rgmii_tx_clk",
656 "eth_txen_y",
657 "eth_txd0_y",
658 "eth_txd1_y",
659 "eth_txd2_rgmii",
660 "eth_txd3_rgmii";
661 function = "eth";
662 }; 371 };
663 }; 372 };
664 373
@@ -788,6 +497,29 @@
788 }; 497 };
789 }; 498 };
790 499
500 sdio_pins: sdio {
501 mux {
502 groups = "sdio_d0",
503 "sdio_d1",
504 "sdio_d2",
505 "sdio_d3",
506 "sdio_cmd",
507 "sdio_clk";
508 function = "sdio";
509 };
510 };
511
512 sdio_clk_gate_pins: sdio_clk_gate {
513 mux {
514 groups = "GPIOX_4";
515 function = "gpio_periphs";
516 };
517 cfg-pull-down {
518 pins = "GPIOX_4";
519 bias-pull-down;
520 };
521 };
522
791 spdif_in_z_pins: spdif_in_z { 523 spdif_in_z_pins: spdif_in_z {
792 mux { 524 mux {
793 groups = "spdif_in_z"; 525 groups = "spdif_in_z";
@@ -823,13 +555,6 @@
823 }; 555 };
824 }; 556 };
825 557
826 spdif_out_z_pins: spdif_out_z {
827 mux {
828 groups = "spdif_out_z";
829 function = "spdif_out";
830 };
831 };
832
833 spdif_out_a1_pins: spdif_out_a1 { 558 spdif_out_a1_pins: spdif_out_a1 {
834 mux { 559 mux {
835 groups = "spdif_out_a1"; 560 groups = "spdif_out_a1";
@@ -858,11 +583,18 @@
858 }; 583 };
859 }; 584 };
860 585
586 spdif_out_z_pins: spdif_out_z {
587 mux {
588 groups = "spdif_out_z";
589 function = "spdif_out";
590 };
591 };
592
861 spi0_pins: spi0 { 593 spi0_pins: spi0 {
862 mux { 594 mux {
863 groups = "spi0_miso", 595 groups = "spi0_miso",
864 "spi0_mosi", 596 "spi0_mosi",
865 "spi0_clk"; 597 "spi0_clk";
866 function = "spi0"; 598 function = "spi0";
867 }; 599 };
868 }; 600 };
@@ -888,12 +620,11 @@
888 }; 620 };
889 }; 621 };
890 622
891
892 spi1_a_pins: spi1_a { 623 spi1_a_pins: spi1_a {
893 mux { 624 mux {
894 groups = "spi1_miso_a", 625 groups = "spi1_miso_a",
895 "spi1_mosi_a", 626 "spi1_mosi_a",
896 "spi1_clk_a"; 627 "spi1_clk_a";
897 function = "spi1"; 628 function = "spi1";
898 }; 629 };
899 }; 630 };
@@ -915,8 +646,8 @@
915 spi1_x_pins: spi1_x { 646 spi1_x_pins: spi1_x {
916 mux { 647 mux {
917 groups = "spi1_miso_x", 648 groups = "spi1_miso_x",
918 "spi1_mosi_x", 649 "spi1_mosi_x",
919 "spi1_clk_x"; 650 "spi1_clk_x";
920 function = "spi1"; 651 function = "spi1";
921 }; 652 };
922 }; 653 };
@@ -928,145 +659,52 @@
928 }; 659 };
929 }; 660 };
930 661
931 i2c0_pins: i2c0 { 662 tdma_din0_pins: tdma_din0 {
932 mux {
933 groups = "i2c0_sck",
934 "i2c0_sda";
935 function = "i2c0";
936 };
937 };
938
939 i2c1_z_pins: i2c1_z {
940 mux {
941 groups = "i2c1_sck_z",
942 "i2c1_sda_z";
943 function = "i2c1";
944 };
945 };
946
947 i2c1_x_pins: i2c1_x {
948 mux {
949 groups = "i2c1_sck_x",
950 "i2c1_sda_x";
951 function = "i2c1";
952 };
953 };
954
955 i2c2_x_pins: i2c2_x {
956 mux {
957 groups = "i2c2_sck_x",
958 "i2c2_sda_x";
959 function = "i2c2";
960 };
961 };
962
963 i2c2_a_pins: i2c2_a {
964 mux {
965 groups = "i2c2_sck_a",
966 "i2c2_sda_a";
967 function = "i2c2";
968 };
969 };
970
971 i2c3_a6_pins: i2c3_a6 {
972 mux {
973 groups = "i2c3_sda_a6",
974 "i2c3_sck_a7";
975 function = "i2c3";
976 };
977 };
978
979 i2c3_a12_pins: i2c3_a12 {
980 mux {
981 groups = "i2c3_sda_a12",
982 "i2c3_sck_a13";
983 function = "i2c3";
984 };
985 };
986
987 i2c3_a19_pins: i2c3_a19 {
988 mux {
989 groups = "i2c3_sda_a19",
990 "i2c3_sck_a20";
991 function = "i2c3";
992 };
993 };
994
995 uart_a_pins: uart_a {
996 mux {
997 groups = "uart_tx_a",
998 "uart_rx_a";
999 function = "uart_a";
1000 };
1001 };
1002
1003 uart_a_cts_rts_pins: uart_a_cts_rts {
1004 mux {
1005 groups = "uart_cts_a",
1006 "uart_rts_a";
1007 function = "uart_a";
1008 };
1009 };
1010
1011 uart_b_x_pins: uart_b_x {
1012 mux {
1013 groups = "uart_tx_b_x",
1014 "uart_rx_b_x";
1015 function = "uart_b";
1016 };
1017 };
1018
1019 uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
1020 mux { 663 mux {
1021 groups = "uart_cts_b_x", 664 groups = "tdma_din0";
1022 "uart_rts_b_x"; 665 function = "tdma";
1023 function = "uart_b";
1024 }; 666 };
1025 }; 667 };
1026 668
1027 uart_b_z_pins: uart_b_z { 669 tdma_dout0_x14_pins: tdma_dout0_x14 {
1028 mux { 670 mux {
1029 groups = "uart_tx_b_z", 671 groups = "tdma_dout0_x14";
1030 "uart_rx_b_z"; 672 function = "tdma";
1031 function = "uart_b";
1032 }; 673 };
1033 }; 674 };
1034 675
1035 uart_b_z_cts_rts_pins: uart_b_z_cts_rts { 676 tdma_dout0_x15_pins: tdma_dout0_x15 {
1036 mux { 677 mux {
1037 groups = "uart_cts_b_z", 678 groups = "tdma_dout0_x15";
1038 "uart_rts_b_z"; 679 function = "tdma";
1039 function = "uart_b";
1040 }; 680 };
1041 }; 681 };
1042 682
1043 uart_ao_b_z_pins: uart_ao_b_z { 683 tdma_dout1_pins: tdma_dout1 {
1044 mux { 684 mux {
1045 groups = "uart_ao_tx_b_z", 685 groups = "tdma_dout1";
1046 "uart_ao_rx_b_z"; 686 function = "tdma";
1047 function = "uart_ao_b_z";
1048 }; 687 };
1049 }; 688 };
1050 689
1051 uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts { 690 tdma_din1_pins: tdma_din1 {
1052 mux { 691 mux {
1053 groups = "uart_ao_cts_b_z", 692 groups = "tdma_din1";
1054 "uart_ao_rts_b_z"; 693 function = "tdma";
1055 function = "uart_ao_b_z";
1056 }; 694 };
1057 }; 695 };
1058 696
1059 mclk_b_pins: mclk_b { 697 tdma_fs_pins: tdma_fs {
1060 mux { 698 mux {
1061 groups = "mclk_b"; 699 groups = "tdma_fs";
1062 function = "mclk_b"; 700 function = "tdma";
1063 }; 701 };
1064 }; 702 };
1065 703
1066 mclk_c_pins: mclk_c { 704 tdma_fs_slv_pins: tdma_fs_slv {
1067 mux { 705 mux {
1068 groups = "mclk_c"; 706 groups = "tdma_fs_slv";
1069 function = "mclk_c"; 707 function = "tdma";
1070 }; 708 };
1071 }; 709 };
1072 710
@@ -1084,65 +722,58 @@
1084 }; 722 };
1085 }; 723 };
1086 724
1087 tdma_fs_pins: tdma_fs { 725 tdmb_din0_pins: tdmb_din0 {
1088 mux {
1089 groups = "tdma_fs";
1090 function = "tdma";
1091 };
1092 };
1093
1094 tdma_fs_slv_pins: tdma_fs_slv {
1095 mux { 726 mux {
1096 groups = "tdma_fs_slv"; 727 groups = "tdmb_din0";
1097 function = "tdma"; 728 function = "tdmb";
1098 }; 729 };
1099 }; 730 };
1100 731
1101 tdma_din0_pins: tdma_din0 { 732 tdmb_din1_pins: tdmb_din1 {
1102 mux { 733 mux {
1103 groups = "tdma_din0"; 734 groups = "tdmb_din1";
1104 function = "tdma"; 735 function = "tdmb";
1105 }; 736 };
1106 }; 737 };
1107 738
1108 tdma_dout0_x14_pins: tdma_dout0_x14 { 739 tdmb_din2_pins: tdmb_din2 {
1109 mux { 740 mux {
1110 groups = "tdma_dout0_x14"; 741 groups = "tdmb_din2";
1111 function = "tdma"; 742 function = "tdmb";
1112 }; 743 };
1113 }; 744 };
1114 745
1115 tdma_dout0_x15_pins: tdma_dout0_x15 { 746 tdmb_din3_pins: tdmb_din3 {
1116 mux { 747 mux {
1117 groups = "tdma_dout0_x15"; 748 groups = "tdmb_din3";
1118 function = "tdma"; 749 function = "tdmb";
1119 }; 750 };
1120 }; 751 };
1121 752
1122 tdma_dout1_pins: tdma_dout1 { 753 tdmb_dout0_pins: tdmb_dout0 {
1123 mux { 754 mux {
1124 groups = "tdma_dout1"; 755 groups = "tdmb_dout0";
1125 function = "tdma"; 756 function = "tdmb";
1126 }; 757 };
1127 }; 758 };
1128 759
1129 tdma_din1_pins: tdma_din1 { 760 tdmb_dout1_pins: tdmb_dout1 {
1130 mux { 761 mux {
1131 groups = "tdma_din1"; 762 groups = "tdmb_dout1";
1132 function = "tdma"; 763 function = "tdmb";
1133 }; 764 };
1134 }; 765 };
1135 766
1136 tdmb_sclk_pins: tdmb_sclk { 767 tdmb_dout2_pins: tdmb_dout2 {
1137 mux { 768 mux {
1138 groups = "tdmb_sclk"; 769 groups = "tdmb_dout2";
1139 function = "tdmb"; 770 function = "tdmb";
1140 }; 771 };
1141 }; 772 };
1142 773
1143 tdmb_sclk_slv_pins: tdmb_sclk_slv { 774 tdmb_dout3_pins: tdmb_dout3 {
1144 mux { 775 mux {
1145 groups = "tdmb_sclk_slv"; 776 groups = "tdmb_dout3";
1146 function = "tdmb"; 777 function = "tdmb";
1147 }; 778 };
1148 }; 779 };
@@ -1161,163 +792,412 @@
1161 }; 792 };
1162 }; 793 };
1163 794
1164 tdmb_din0_pins: tdmb_din0 { 795 tdmb_sclk_pins: tdmb_sclk {
1165 mux { 796 mux {
1166 groups = "tdmb_din0"; 797 groups = "tdmb_sclk";
1167 function = "tdmb"; 798 function = "tdmb";
1168 }; 799 };
1169 }; 800 };
1170 801
1171 tdmb_dout0_pins: tdmb_dout0 { 802 tdmb_sclk_slv_pins: tdmb_sclk_slv {
1172 mux { 803 mux {
1173 groups = "tdmb_dout0"; 804 groups = "tdmb_sclk_slv";
1174 function = "tdmb"; 805 function = "tdmb";
1175 }; 806 };
1176 }; 807 };
1177 808
1178 tdmb_din1_pins: tdmb_din1 { 809 tdmc_fs_pins: tdmc_fs {
1179 mux { 810 mux {
1180 groups = "tdmb_din1"; 811 groups = "tdmc_fs";
1181 function = "tdmb"; 812 function = "tdmc";
1182 }; 813 };
1183 }; 814 };
1184 815
1185 tdmb_dout1_pins: tdmb_dout1 { 816 tdmc_fs_slv_pins: tdmc_fs_slv {
1186 mux { 817 mux {
1187 groups = "tdmb_dout1"; 818 groups = "tdmc_fs_slv";
1188 function = "tdmb"; 819 function = "tdmc";
1189 }; 820 };
1190 }; 821 };
1191 822
1192 tdmb_din2_pins: tdmb_din2 { 823 tdmc_sclk_pins: tdmc_sclk {
1193 mux { 824 mux {
1194 groups = "tdmb_din2"; 825 groups = "tdmc_sclk";
1195 function = "tdmb"; 826 function = "tdmc";
1196 }; 827 };
1197 }; 828 };
1198 829
1199 tdmb_dout2_pins: tdmb_dout2 { 830 tdmc_sclk_slv_pins: tdmc_sclk_slv {
1200 mux { 831 mux {
1201 groups = "tdmb_dout2"; 832 groups = "tdmc_sclk_slv";
1202 function = "tdmb"; 833 function = "tdmc";
1203 }; 834 };
1204 }; 835 };
1205 836
1206 tdmb_din3_pins: tdmb_din3 { 837 tdmc_din0_pins: tdmc_din0 {
1207 mux { 838 mux {
1208 groups = "tdmb_din3"; 839 groups = "tdmc_din0";
1209 function = "tdmb"; 840 function = "tdmc";
1210 }; 841 };
1211 }; 842 };
1212 843
1213 tdmb_dout3_pins: tdmb_dout3 { 844 tdmc_din1_pins: tdmc_din1 {
1214 mux { 845 mux {
1215 groups = "tdmb_dout3"; 846 groups = "tdmc_din1";
1216 function = "tdmb"; 847 function = "tdmc";
1217 }; 848 };
1218 }; 849 };
1219 850
1220 tdmc_sclk_pins: tdmc_sclk { 851 tdmc_din2_pins: tdmc_din2 {
1221 mux { 852 mux {
1222 groups = "tdmc_sclk"; 853 groups = "tdmc_din2";
1223 function = "tdmc"; 854 function = "tdmc";
1224 }; 855 };
1225 }; 856 };
1226 857
1227 tdmc_sclk_slv_pins: tdmc_sclk_slv { 858 tdmc_din3_pins: tdmc_din3 {
1228 mux { 859 mux {
1229 groups = "tdmc_sclk_slv"; 860 groups = "tdmc_din3";
1230 function = "tdmc"; 861 function = "tdmc";
1231 }; 862 };
1232 }; 863 };
1233 864
1234 tdmc_fs_pins: tdmc_fs { 865 tdmc_dout0_pins: tdmc_dout0 {
1235 mux { 866 mux {
1236 groups = "tdmc_fs"; 867 groups = "tdmc_dout0";
1237 function = "tdmc"; 868 function = "tdmc";
1238 }; 869 };
1239 }; 870 };
1240 871
1241 tdmc_fs_slv_pins: tdmc_fs_slv { 872 tdmc_dout1_pins: tdmc_dout1 {
1242 mux { 873 mux {
1243 groups = "tdmc_fs_slv"; 874 groups = "tdmc_dout1";
1244 function = "tdmc"; 875 function = "tdmc";
1245 }; 876 };
1246 }; 877 };
1247 878
1248 tdmc_din0_pins: tdmc_din0 { 879 tdmc_dout2_pins: tdmc_dout2 {
1249 mux { 880 mux {
1250 groups = "tdmc_din0"; 881 groups = "tdmc_dout2";
1251 function = "tdmc"; 882 function = "tdmc";
1252 }; 883 };
1253 }; 884 };
1254 885
1255 tdmc_dout0_pins: tdmc_dout0 { 886 tdmc_dout3_pins: tdmc_dout3 {
1256 mux { 887 mux {
1257 groups = "tdmc_dout0"; 888 groups = "tdmc_dout3";
1258 function = "tdmc"; 889 function = "tdmc";
1259 }; 890 };
1260 }; 891 };
1261 892
1262 tdmc_din1_pins: tdmc_din1 { 893 uart_a_pins: uart_a {
1263 mux { 894 mux {
1264 groups = "tdmc_din1"; 895 groups = "uart_tx_a",
1265 function = "tdmc"; 896 "uart_rx_a";
897 function = "uart_a";
1266 }; 898 };
1267 }; 899 };
1268 900
1269 tdmc_dout1_pins: tdmc_dout1 { 901 uart_a_cts_rts_pins: uart_a_cts_rts {
1270 mux { 902 mux {
1271 groups = "tdmc_dout1"; 903 groups = "uart_cts_a",
1272 function = "tdmc"; 904 "uart_rts_a";
905 function = "uart_a";
1273 }; 906 };
1274 }; 907 };
1275 908
1276 tdmc_din2_pins: tdmc_din2 { 909 uart_b_x_pins: uart_b_x {
1277 mux { 910 mux {
1278 groups = "tdmc_din2"; 911 groups = "uart_tx_b_x",
1279 function = "tdmc"; 912 "uart_rx_b_x";
913 function = "uart_b";
1280 }; 914 };
1281 }; 915 };
1282 916
1283 tdmc_dout2_pins: tdmc_dout2 { 917 uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
1284 mux { 918 mux {
1285 groups = "tdmc_dout2"; 919 groups = "uart_cts_b_x",
1286 function = "tdmc"; 920 "uart_rts_b_x";
921 function = "uart_b";
1287 }; 922 };
1288 }; 923 };
1289 924
1290 tdmc_din3_pins: tdmc_din3 { 925 uart_b_z_pins: uart_b_z {
1291 mux { 926 mux {
1292 groups = "tdmc_din3"; 927 groups = "uart_tx_b_z",
1293 function = "tdmc"; 928 "uart_rx_b_z";
929 function = "uart_b";
1294 }; 930 };
1295 }; 931 };
1296 932
1297 tdmc_dout3_pins: tdmc_dout3 { 933 uart_b_z_cts_rts_pins: uart_b_z_cts_rts {
1298 mux { 934 mux {
1299 groups = "tdmc_dout3"; 935 groups = "uart_cts_b_z",
1300 function = "tdmc"; 936 "uart_rts_b_z";
937 function = "uart_b";
938 };
939 };
940
941 uart_ao_b_z_pins: uart_ao_b_z {
942 mux {
943 groups = "uart_ao_tx_b_z",
944 "uart_ao_rx_b_z";
945 function = "uart_ao_b_z";
946 };
947 };
948
949 uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts {
950 mux {
951 groups = "uart_ao_cts_b_z",
952 "uart_ao_rts_b_z";
953 function = "uart_ao_b_z";
1301 }; 954 };
1302 }; 955 };
1303 }; 956 };
1304 }; 957 };
1305 958
1306 sram: sram@fffc0000 { 959 hiubus: bus@ff63c000 {
1307 compatible = "amlogic,meson-axg-sram", "mmio-sram"; 960 compatible = "simple-bus";
1308 reg = <0x0 0xfffc0000 0x0 0x20000>; 961 reg = <0x0 0xff63c000 0x0 0x1c00>;
1309 #address-cells = <1>; 962 #address-cells = <2>;
1310 #size-cells = <1>; 963 #size-cells = <2>;
1311 ranges = <0 0x0 0xfffc0000 0x20000>; 964 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
1312 965
1313 cpu_scp_lpri: scp-shmem@0 { 966 sysctrl: system-controller@0 {
1314 compatible = "amlogic,meson-axg-scp-shmem"; 967 compatible = "amlogic,meson-axg-hhi-sysctrl",
1315 reg = <0x13000 0x400>; 968 "simple-mfd", "syscon";
969 reg = <0 0 0 0x400>;
970
971 clkc: clock-controller {
972 compatible = "amlogic,axg-clkc";
973 #clock-cells = <1>;
974 };
1316 }; 975 };
976 };
1317 977
1318 cpu_scp_hpri: scp-shmem@200 { 978 mailbox: mailbox@ff63dc00 {
1319 compatible = "amlogic,meson-axg-scp-shmem"; 979 compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
1320 reg = <0x13400 0x400>; 980 reg = <0 0xff63dc00 0 0x400>;
981 interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
982 <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
983 <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
984 #mbox-cells = <1>;
985 };
986
987 audio: bus@ff642000 {
988 compatible = "simple-bus";
989 reg = <0x0 0xff642000 0x0 0x2000>;
990 #address-cells = <2>;
991 #size-cells = <2>;
992 ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
993
994 clkc_audio: clock-controller@0 {
995 compatible = "amlogic,axg-audio-clkc";
996 reg = <0x0 0x0 0x0 0xb4>;
997 #clock-cells = <1>;
998
999 clocks = <&clkc CLKID_AUDIO>,
1000 <&clkc CLKID_MPLL0>,
1001 <&clkc CLKID_MPLL1>,
1002 <&clkc CLKID_MPLL2>,
1003 <&clkc CLKID_MPLL3>,
1004 <&clkc CLKID_HIFI_PLL>,
1005 <&clkc CLKID_FCLK_DIV3>,
1006 <&clkc CLKID_FCLK_DIV4>,
1007 <&clkc CLKID_GP0_PLL>;
1008 clock-names = "pclk",
1009 "mst_in0",
1010 "mst_in1",
1011 "mst_in2",
1012 "mst_in3",
1013 "mst_in4",
1014 "mst_in5",
1015 "mst_in6",
1016 "mst_in7";
1017
1018 resets = <&reset RESET_AUDIO>;
1019 };
1020
1021 toddr_a: audio-controller@100 {
1022 compatible = "amlogic,axg-toddr";
1023 reg = <0x0 0x100 0x0 0x1c>;
1024 #sound-dai-cells = <0>;
1025 sound-name-prefix = "TODDR_A";
1026 interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
1027 clocks = <&clkc_audio AUD_CLKID_TODDR_A>;
1028 resets = <&arb AXG_ARB_TODDR_A>;
1029 status = "disabled";
1030 };
1031
1032 toddr_b: audio-controller@140 {
1033 compatible = "amlogic,axg-toddr";
1034 reg = <0x0 0x140 0x0 0x1c>;
1035 #sound-dai-cells = <0>;
1036 sound-name-prefix = "TODDR_B";
1037 interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
1038 clocks = <&clkc_audio AUD_CLKID_TODDR_B>;
1039 resets = <&arb AXG_ARB_TODDR_B>;
1040 status = "disabled";
1041 };
1042
1043 toddr_c: audio-controller@180 {
1044 compatible = "amlogic,axg-toddr";
1045 reg = <0x0 0x180 0x0 0x1c>;
1046 #sound-dai-cells = <0>;
1047 sound-name-prefix = "TODDR_C";
1048 interrupts = <GIC_SPI 86 IRQ_TYPE_EDGE_RISING>;
1049 clocks = <&clkc_audio AUD_CLKID_TODDR_C>;
1050 resets = <&arb AXG_ARB_TODDR_C>;
1051 status = "disabled";
1052 };
1053
1054 frddr_a: audio-controller@1c0 {
1055 compatible = "amlogic,axg-frddr";
1056 reg = <0x0 0x1c0 0x0 0x1c>;
1057 #sound-dai-cells = <0>;
1058 sound-name-prefix = "FRDDR_A";
1059 interrupts = <GIC_SPI 88 IRQ_TYPE_EDGE_RISING>;
1060 clocks = <&clkc_audio AUD_CLKID_FRDDR_A>;
1061 resets = <&arb AXG_ARB_FRDDR_A>;
1062 status = "disabled";
1063 };
1064
1065 frddr_b: audio-controller@200 {
1066 compatible = "amlogic,axg-frddr";
1067 reg = <0x0 0x200 0x0 0x1c>;
1068 #sound-dai-cells = <0>;
1069 sound-name-prefix = "FRDDR_B";
1070 interrupts = <GIC_SPI 89 IRQ_TYPE_EDGE_RISING>;
1071 clocks = <&clkc_audio AUD_CLKID_FRDDR_B>;
1072 resets = <&arb AXG_ARB_FRDDR_B>;
1073 status = "disabled";
1074 };
1075
1076 frddr_c: audio-controller@240 {
1077 compatible = "amlogic,axg-frddr";
1078 reg = <0x0 0x240 0x0 0x1c>;
1079 #sound-dai-cells = <0>;
1080 sound-name-prefix = "FRDDR_C";
1081 interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
1082 clocks = <&clkc_audio AUD_CLKID_FRDDR_C>;
1083 resets = <&arb AXG_ARB_FRDDR_C>;
1084 status = "disabled";
1085 };
1086
1087 arb: reset-controller@280 {
1088 compatible = "amlogic,meson-axg-audio-arb";
1089 reg = <0x0 0x280 0x0 0x4>;
1090 #reset-cells = <1>;
1091 clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
1092 };
1093
1094 tdmin_a: audio-controller@300 {
1095 compatible = "amlogic,axg-tdmin";
1096 reg = <0x0 0x300 0x0 0x40>;
1097 sound-name-prefix = "TDMIN_A";
1098 clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
1099 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
1100 <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
1101 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
1102 <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
1103 clock-names = "pclk", "sclk", "sclk_sel",
1104 "lrclk", "lrclk_sel";
1105 status = "disabled";
1106 };
1107
1108 tdmin_b: audio-controller@340 {
1109 compatible = "amlogic,axg-tdmin";
1110 reg = <0x0 0x340 0x0 0x40>;
1111 sound-name-prefix = "TDMIN_B";
1112 clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
1113 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
1114 <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
1115 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
1116 <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
1117 clock-names = "pclk", "sclk", "sclk_sel",
1118 "lrclk", "lrclk_sel";
1119 status = "disabled";
1120 };
1121
1122 tdmin_c: audio-controller@380 {
1123 compatible = "amlogic,axg-tdmin";
1124 reg = <0x0 0x380 0x0 0x40>;
1125 sound-name-prefix = "TDMIN_C";
1126 clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
1127 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
1128 <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
1129 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
1130 <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
1131 clock-names = "pclk", "sclk", "sclk_sel",
1132 "lrclk", "lrclk_sel";
1133 status = "disabled";
1134 };
1135
1136 tdmin_lb: audio-controller@3c0 {
1137 compatible = "amlogic,axg-tdmin";
1138 reg = <0x0 0x3c0 0x0 0x40>;
1139 sound-name-prefix = "TDMIN_LB";
1140 clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
1141 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
1142 <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
1143 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
1144 <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
1145 clock-names = "pclk", "sclk", "sclk_sel",
1146 "lrclk", "lrclk_sel";
1147 status = "disabled";
1148 };
1149
1150 spdifout: audio-controller@480 {
1151 compatible = "amlogic,axg-spdifout";
1152 reg = <0x0 0x480 0x0 0x50>;
1153 #sound-dai-cells = <0>;
1154 sound-name-prefix = "SPDIFOUT";
1155 clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
1156 <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
1157 clock-names = "pclk", "mclk";
1158 status = "disabled";
1159 };
1160
1161 tdmout_a: audio-controller@500 {
1162 compatible = "amlogic,axg-tdmout";
1163 reg = <0x0 0x500 0x0 0x40>;
1164 sound-name-prefix = "TDMOUT_A";
1165 clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
1166 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
1167 <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
1168 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
1169 <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
1170 clock-names = "pclk", "sclk", "sclk_sel",
1171 "lrclk", "lrclk_sel";
1172 status = "disabled";
1173 };
1174
1175 tdmout_b: audio-controller@540 {
1176 compatible = "amlogic,axg-tdmout";
1177 reg = <0x0 0x540 0x0 0x40>;
1178 sound-name-prefix = "TDMOUT_B";
1179 clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
1180 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
1181 <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
1182 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
1183 <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
1184 clock-names = "pclk", "sclk", "sclk_sel",
1185 "lrclk", "lrclk_sel";
1186 status = "disabled";
1187 };
1188
1189 tdmout_c: audio-controller@580 {
1190 compatible = "amlogic,axg-tdmout";
1191 reg = <0x0 0x580 0x0 0x40>;
1192 sound-name-prefix = "TDMOUT_C";
1193 clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
1194 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
1195 <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
1196 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
1197 <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
1198 clock-names = "pclk", "sclk", "sclk_sel",
1199 "lrclk", "lrclk_sel";
1200 status = "disabled";
1321 }; 1201 };
1322 }; 1202 };
1323 1203
@@ -1329,7 +1209,7 @@
1329 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>; 1209 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
1330 1210
1331 sysctrl_AO: sys-ctrl@0 { 1211 sysctrl_AO: sys-ctrl@0 {
1332 compatible = "amlogic,meson-axg-ao-sysctrl", "syscon", "simple-mfd"; 1212 compatible = "amlogic,meson-axg-ao-sysctrl", "simple-mfd", "syscon";
1333 reg = <0x0 0x0 0x0 0x100>; 1213 reg = <0x0 0x0 0x0 0x100>;
1334 1214
1335 clkc_AO: clock-controller { 1215 clkc_AO: clock-controller {
@@ -1347,8 +1227,8 @@
1347 1227
1348 gpio_ao: bank@14 { 1228 gpio_ao: bank@14 {
1349 reg = <0x0 0x00014 0x0 0x8>, 1229 reg = <0x0 0x00014 0x0 0x8>,
1350 <0x0 0x0002c 0x0 0x4>, 1230 <0x0 0x0002c 0x0 0x4>,
1351 <0x0 0x00024 0x0 0x8>; 1231 <0x0 0x00024 0x0 0x8>;
1352 reg-names = "mux", "pull", "gpio"; 1232 reg-names = "mux", "pull", "gpio";
1353 gpio-controller; 1233 gpio-controller;
1354 #gpio-cells = <2>; 1234 #gpio-cells = <2>;
@@ -1407,7 +1287,7 @@
1407 uart_ao_a_pins: uart_ao_a { 1287 uart_ao_a_pins: uart_ao_a {
1408 mux { 1288 mux {
1409 groups = "uart_ao_tx_a", 1289 groups = "uart_ao_tx_a",
1410 "uart_ao_rx_a"; 1290 "uart_ao_rx_a";
1411 function = "uart_ao_a"; 1291 function = "uart_ao_a";
1412 }; 1292 };
1413 }; 1293 };
@@ -1415,7 +1295,7 @@
1415 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts { 1295 uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
1416 mux { 1296 mux {
1417 groups = "uart_ao_cts_a", 1297 groups = "uart_ao_cts_a",
1418 "uart_ao_rts_a"; 1298 "uart_ao_rts_a";
1419 function = "uart_ao_a"; 1299 function = "uart_ao_a";
1420 }; 1300 };
1421 }; 1301 };
@@ -1423,7 +1303,7 @@
1423 uart_ao_b_pins: uart_ao_b { 1303 uart_ao_b_pins: uart_ao_b {
1424 mux { 1304 mux {
1425 groups = "uart_ao_tx_b", 1305 groups = "uart_ao_tx_b",
1426 "uart_ao_rx_b"; 1306 "uart_ao_rx_b";
1427 function = "uart_ao_b"; 1307 function = "uart_ao_b";
1428 }; 1308 };
1429 }; 1309 };
@@ -1431,7 +1311,7 @@
1431 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts { 1311 uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
1432 mux { 1312 mux {
1433 groups = "uart_ao_cts_b", 1313 groups = "uart_ao_cts_b",
1434 "uart_ao_rts_b"; 1314 "uart_ao_rts_b";
1435 function = "uart_ao_b"; 1315 function = "uart_ao_b";
1436 }; 1316 };
1437 }; 1317 };
@@ -1443,13 +1323,6 @@
1443 amlogic,has-chip-id; 1323 amlogic,has-chip-id;
1444 }; 1324 };
1445 1325
1446 pwm_AO_ab: pwm@7000 {
1447 compatible = "amlogic,meson-axg-ao-pwm";
1448 reg = <0x0 0x07000 0x0 0x20>;
1449 #pwm-cells = <3>;
1450 status = "disabled";
1451 };
1452
1453 pwm_AO_cd: pwm@2000 { 1326 pwm_AO_cd: pwm@2000 {
1454 compatible = "amlogic,meson-axg-ao-pwm"; 1327 compatible = "amlogic,meson-axg-ao-pwm";
1455 reg = <0x0 0x02000 0x0 0x20>; 1328 reg = <0x0 0x02000 0x0 0x20>;
@@ -1457,16 +1330,6 @@
1457 status = "disabled"; 1330 status = "disabled";
1458 }; 1331 };
1459 1332
1460 i2c_AO: i2c@5000 {
1461 compatible = "amlogic,meson-axg-i2c";
1462 reg = <0x0 0x05000 0x0 0x20>;
1463 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
1464 clocks = <&clkc CLKID_AO_I2C>;
1465 #address-cells = <1>;
1466 #size-cells = <0>;
1467 status = "disabled";
1468 };
1469
1470 uart_AO: serial@3000 { 1333 uart_AO: serial@3000 {
1471 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart"; 1334 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
1472 reg = <0x0 0x3000 0x0 0x18>; 1335 reg = <0x0 0x3000 0x0 0x18>;
@@ -1485,6 +1348,23 @@
1485 status = "disabled"; 1348 status = "disabled";
1486 }; 1349 };
1487 1350
1351 i2c_AO: i2c@5000 {
1352 compatible = "amlogic,meson-axg-i2c";
1353 reg = <0x0 0x05000 0x0 0x20>;
1354 interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
1355 clocks = <&clkc CLKID_AO_I2C>;
1356 #address-cells = <1>;
1357 #size-cells = <0>;
1358 status = "disabled";
1359 };
1360
1361 pwm_AO_ab: pwm@7000 {
1362 compatible = "amlogic,meson-axg-ao-pwm";
1363 reg = <0x0 0x07000 0x0 0x20>;
1364 #pwm-cells = <3>;
1365 status = "disabled";
1366 };
1367
1488 ir: ir@8000 { 1368 ir: ir@8000 {
1489 compatible = "amlogic,meson-gxbb-ir"; 1369 compatible = "amlogic,meson-gxbb-ir";
1490 reg = <0x0 0x8000 0x0 0x20>; 1370 reg = <0x0 0x8000 0x0 0x20>;
@@ -1499,12 +1379,211 @@
1499 #io-channel-cells = <1>; 1379 #io-channel-cells = <1>;
1500 interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>; 1380 interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
1501 clocks = <&xtal>, 1381 clocks = <&xtal>,
1502 <&clkc_AO CLKID_AO_SAR_ADC>, 1382 <&clkc_AO CLKID_AO_SAR_ADC>,
1503 <&clkc_AO CLKID_AO_SAR_ADC_CLK>, 1383 <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
1504 <&clkc_AO CLKID_AO_SAR_ADC_SEL>; 1384 <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
1505 clock-names = "clkin", "core", "adc_clk", "adc_sel"; 1385 clock-names = "clkin", "core", "adc_clk", "adc_sel";
1506 status = "disabled"; 1386 status = "disabled";
1507 }; 1387 };
1508 }; 1388 };
1389
1390 gic: interrupt-controller@ffc01000 {
1391 compatible = "arm,gic-400";
1392 reg = <0x0 0xffc01000 0 0x1000>,
1393 <0x0 0xffc02000 0 0x2000>,
1394 <0x0 0xffc04000 0 0x2000>,
1395 <0x0 0xffc06000 0 0x2000>;
1396 interrupt-controller;
1397 interrupts = <GIC_PPI 9
1398 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
1399 #interrupt-cells = <3>;
1400 #address-cells = <0>;
1401 };
1402
1403 cbus: bus@ffd00000 {
1404 compatible = "simple-bus";
1405 reg = <0x0 0xffd00000 0x0 0x25000>;
1406 #address-cells = <2>;
1407 #size-cells = <2>;
1408 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
1409
1410 reset: reset-controller@1004 {
1411 compatible = "amlogic,meson-axg-reset";
1412 reg = <0x0 0x01004 0x0 0x9c>;
1413 #reset-cells = <1>;
1414 };
1415
1416 gpio_intc: interrupt-controller@f080 {
1417 compatible = "amlogic,meson-gpio-intc";
1418 reg = <0x0 0xf080 0x0 0x10>;
1419 interrupt-controller;
1420 #interrupt-cells = <2>;
1421 amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
1422 status = "disabled";
1423 };
1424
1425 pwm_ab: pwm@1b000 {
1426 compatible = "amlogic,meson-axg-ee-pwm";
1427 reg = <0x0 0x1b000 0x0 0x20>;
1428 #pwm-cells = <3>;
1429 status = "disabled";
1430 };
1431
1432 pwm_cd: pwm@1a000 {
1433 compatible = "amlogic,meson-axg-ee-pwm";
1434 reg = <0x0 0x1a000 0x0 0x20>;
1435 #pwm-cells = <3>;
1436 status = "disabled";
1437 };
1438
1439 spicc0: spi@13000 {
1440 compatible = "amlogic,meson-axg-spicc";
1441 reg = <0x0 0x13000 0x0 0x3c>;
1442 interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
1443 clocks = <&clkc CLKID_SPICC0>;
1444 clock-names = "core";
1445 #address-cells = <1>;
1446 #size-cells = <0>;
1447 status = "disabled";
1448 };
1449
1450 spicc1: spi@15000 {
1451 compatible = "amlogic,meson-axg-spicc";
1452 reg = <0x0 0x15000 0x0 0x3c>;
1453 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1454 clocks = <&clkc CLKID_SPICC1>;
1455 clock-names = "core";
1456 #address-cells = <1>;
1457 #size-cells = <0>;
1458 status = "disabled";
1459 };
1460
1461 i2c3: i2c@1c000 {
1462 compatible = "amlogic,meson-axg-i2c";
1463 reg = <0x0 0x1c000 0x0 0x20>;
1464 interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
1465 clocks = <&clkc CLKID_I2C>;
1466 #address-cells = <1>;
1467 #size-cells = <0>;
1468 status = "disabled";
1469 };
1470
1471 i2c2: i2c@1d000 {
1472 compatible = "amlogic,meson-axg-i2c";
1473 reg = <0x0 0x1d000 0x0 0x20>;
1474 interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
1475 clocks = <&clkc CLKID_I2C>;
1476 #address-cells = <1>;
1477 #size-cells = <0>;
1478 status = "disabled";
1479 };
1480
1481 i2c1: i2c@1e000 {
1482 compatible = "amlogic,meson-axg-i2c";
1483 reg = <0x0 0x1e000 0x0 0x20>;
1484 interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
1485 clocks = <&clkc CLKID_I2C>;
1486 #address-cells = <1>;
1487 #size-cells = <0>;
1488 status = "disabled";
1489 };
1490
1491 i2c0: i2c@1f000 {
1492 compatible = "amlogic,meson-axg-i2c";
1493 reg = <0x0 0x1f000 0x0 0x20>;
1494 interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
1495 clocks = <&clkc CLKID_I2C>;
1496 #address-cells = <1>;
1497 #size-cells = <0>;
1498 status = "disabled";
1499 };
1500
1501 uart_B: serial@23000 {
1502 compatible = "amlogic,meson-gx-uart";
1503 reg = <0x0 0x23000 0x0 0x18>;
1504 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
1505 status = "disabled";
1506 clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
1507 clock-names = "xtal", "pclk", "baud";
1508 };
1509
1510 uart_A: serial@24000 {
1511 compatible = "amlogic,meson-gx-uart";
1512 reg = <0x0 0x24000 0x0 0x18>;
1513 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
1514 status = "disabled";
1515 clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
1516 clock-names = "xtal", "pclk", "baud";
1517 };
1518 };
1519
1520 apb: bus@ffe00000 {
1521 compatible = "simple-bus";
1522 reg = <0x0 0xffe00000 0x0 0x200000>;
1523 #address-cells = <2>;
1524 #size-cells = <2>;
1525 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
1526
1527 sd_emmc_b: sd@5000 {
1528 compatible = "amlogic,meson-axg-mmc";
1529 reg = <0x0 0x5000 0x0 0x800>;
1530 interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
1531 status = "disabled";
1532 clocks = <&clkc CLKID_SD_EMMC_B>,
1533 <&clkc CLKID_SD_EMMC_B_CLK0>,
1534 <&clkc CLKID_FCLK_DIV2>;
1535 clock-names = "core", "clkin0", "clkin1";
1536 resets = <&reset RESET_SD_EMMC_B>;
1537 };
1538
1539 sd_emmc_c: mmc@7000 {
1540 compatible = "amlogic,meson-axg-mmc";
1541 reg = <0x0 0x7000 0x0 0x800>;
1542 interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
1543 status = "disabled";
1544 clocks = <&clkc CLKID_SD_EMMC_C>,
1545 <&clkc CLKID_SD_EMMC_C_CLK0>,
1546 <&clkc CLKID_FCLK_DIV2>;
1547 clock-names = "core", "clkin0", "clkin1";
1548 resets = <&reset RESET_SD_EMMC_C>;
1549 };
1550 };
1551
1552 sram: sram@fffc0000 {
1553 compatible = "amlogic,meson-axg-sram", "mmio-sram";
1554 reg = <0x0 0xfffc0000 0x0 0x20000>;
1555 #address-cells = <1>;
1556 #size-cells = <1>;
1557 ranges = <0 0x0 0xfffc0000 0x20000>;
1558
1559 cpu_scp_lpri: scp-shmem@0 {
1560 compatible = "amlogic,meson-axg-scp-shmem";
1561 reg = <0x13000 0x400>;
1562 };
1563
1564 cpu_scp_hpri: scp-shmem@200 {
1565 compatible = "amlogic,meson-axg-scp-shmem";
1566 reg = <0x13400 0x400>;
1567 };
1568 };
1569 };
1570
1571 timer {
1572 compatible = "arm,armv8-timer";
1573 interrupts = <GIC_PPI 13
1574 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1575 <GIC_PPI 14
1576 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1577 <GIC_PPI 11
1578 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
1579 <GIC_PPI 10
1580 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
1581 };
1582
1583 xtal: xtal-clk {
1584 compatible = "fixed-clock";
1585 clock-frequency = <24000000>;
1586 clock-output-names = "xtal";
1587 #clock-cells = <0>;
1509 }; 1588 };
1510}; 1589};
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
new file mode 100644
index 000000000000..c44dbdddf2cf
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
@@ -0,0 +1,29 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include "meson-g12a.dtsi"
9
10/ {
11 compatible = "amlogic,u200", "amlogic,g12a";
12 model = "Amlogic Meson G12A U200 Development Board";
13
14 aliases {
15 serial0 = &uart_AO;
16 };
17 chosen {
18 stdout-path = "serial0:115200n8";
19 };
20 memory@0 {
21 device_type = "memory";
22 reg = <0x0 0x0 0x0 0x40000000>;
23 };
24};
25
26&uart_AO {
27 status = "okay";
28};
29
diff --git a/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi
new file mode 100644
index 000000000000..3b82a975c663
--- /dev/null
+++ b/arch/arm64/boot/dts/amlogic/meson-g12a.dtsi
@@ -0,0 +1,172 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Amlogic, Inc. All rights reserved.
4 */
5
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/interrupt-controller/irq.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9
10/ {
11 compatible = "amlogic,g12a";
12
13 interrupt-parent = <&gic>;
14 #address-cells = <2>;
15 #size-cells = <2>;
16
17 cpus {
18 #address-cells = <0x2>;
19 #size-cells = <0x0>;
20
21 cpu0: cpu@0 {
22 device_type = "cpu";
23 compatible = "arm,cortex-a53", "arm,armv8";
24 reg = <0x0 0x0>;
25 enable-method = "psci";
26 next-level-cache = <&l2>;
27 };
28
29 cpu1: cpu@1 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a53", "arm,armv8";
32 reg = <0x0 0x1>;
33 enable-method = "psci";
34 next-level-cache = <&l2>;
35 };
36
37 cpu2: cpu@2 {
38 device_type = "cpu";
39 compatible = "arm,cortex-a53", "arm,armv8";
40 reg = <0x0 0x2>;
41 enable-method = "psci";
42 next-level-cache = <&l2>;
43 };
44
45 cpu3: cpu@3 {
46 device_type = "cpu";
47 compatible = "arm,cortex-a53", "arm,armv8";
48 reg = <0x0 0x3>;
49 enable-method = "psci";
50 next-level-cache = <&l2>;
51 };
52
53 l2: l2-cache0 {
54 compatible = "cache";
55 };
56 };
57
58 psci {
59 compatible = "arm,psci-1.0";
60 method = "smc";
61 };
62
63 reserved-memory {
64 #address-cells = <2>;
65 #size-cells = <2>;
66 ranges;
67
68 /* 3 MiB reserved for ARM Trusted Firmware (BL31) */
69 secmon_reserved: secmon@5000000 {
70 reg = <0x0 0x05000000 0x0 0x300000>;
71 no-map;
72 };
73 };
74
75 soc {
76 compatible = "simple-bus";
77 #address-cells = <2>;
78 #size-cells = <2>;
79 ranges;
80
81 periphs: periphs@ff634000 {
82 compatible = "simple-bus";
83 reg = <0x0 0xff634000 0x0 0x2000>;
84 #address-cells = <2>;
85 #size-cells = <2>;
86 ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
87 };
88
89 hiubus: bus@ff63c000 {
90 compatible = "simple-bus";
91 reg = <0x0 0xff63c000 0x0 0x1c00>;
92 #address-cells = <2>;
93 #size-cells = <2>;
94 ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
95 };
96
97 aobus: bus@ff800000 {
98 compatible = "simple-bus";
99 reg = <0x0 0xff800000 0x0 0x100000>;
100 #address-cells = <2>;
101 #size-cells = <2>;
102 ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
103
104 uart_AO: serial@3000 {
105 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
106 reg = <0x0 0x3000 0x0 0x18>;
107 interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
108 clocks = <&xtal>, <&xtal>, <&xtal>;
109 clock-names = "xtal", "pclk", "baud";
110 status = "disabled";
111 };
112
113 uart_AO_B: serial@4000 {
114 compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
115 reg = <0x0 0x4000 0x0 0x18>;
116 interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
117 clocks = <&xtal>, <&xtal>, <&xtal>;
118 clock-names = "xtal", "pclk", "baud";
119 status = "disabled";
120 };
121 };
122
123 gic: interrupt-controller@ffc01000 {
124 compatible = "arm,gic-400";
125 reg = <0x0 0xffc01000 0 0x1000>,
126 <0x0 0xffc02000 0 0x2000>,
127 <0x0 0xffc04000 0 0x2000>,
128 <0x0 0xffc06000 0 0x2000>;
129 interrupt-controller;
130 interrupts = <GIC_PPI 9
131 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
132 #interrupt-cells = <3>;
133 #address-cells = <0>;
134 };
135
136 cbus: bus@ffd00000 {
137 compatible = "simple-bus";
138 reg = <0x0 0xffd00000 0x0 0x25000>;
139 #address-cells = <2>;
140 #size-cells = <2>;
141 ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
142 };
143
144 apb: apb@ffe00000 {
145 compatible = "simple-bus";
146 reg = <0x0 0xffe00000 0x0 0x200000>;
147 #address-cells = <2>;
148 #size-cells = <2>;
149 ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
150 };
151 };
152
153 timer {
154 compatible = "arm,armv8-timer";
155 interrupts = <GIC_PPI 13
156 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
157 <GIC_PPI 14
158 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
159 <GIC_PPI 11
160 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
161 <GIC_PPI 10
162 (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
163 };
164
165 xtal: xtal-clk {
166 compatible = "fixed-clock";
167 clock-frequency = <24000000>;
168 clock-output-names = "xtal";
169 #clock-cells = <0>;
170 };
171
172};
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index b8dc4dbb391b..f1e5cdbade5e 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -44,7 +44,7 @@
44 linux,cma { 44 linux,cma {
45 compatible = "shared-dma-pool"; 45 compatible = "shared-dma-pool";
46 reusable; 46 reusable;
47 size = <0x0 0xbc00000>; 47 size = <0x0 0x10000000>;
48 alignment = <0x0 0x400000>; 48 alignment = <0x0 0x400000>;
49 linux,cma-default; 49 linux,cma-default;
50 }; 50 };
@@ -344,7 +344,7 @@
344 ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>; 344 ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>;
345 345
346 sysctrl_AO: sys-ctrl@0 { 346 sysctrl_AO: sys-ctrl@0 {
347 compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd"; 347 compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon";
348 reg = <0x0 0x0 0x0 0x100>; 348 reg = <0x0 0x0 0x0 0x100>;
349 349
350 pwrc_vpu: power-controller-vpu { 350 pwrc_vpu: power-controller-vpu {
@@ -423,6 +423,19 @@
423 }; 423 };
424 }; 424 };
425 425
426 dmcbus: bus@c8838000 {
427 compatible = "simple-bus";
428 reg = <0x0 0xc8838000 0x0 0x400>;
429 #address-cells = <2>;
430 #size-cells = <2>;
431 ranges = <0x0 0x0 0x0 0xc8838000 0x0 0x400>;
432
433 canvas: video-lut@48 {
434 compatible = "amlogic,canvas";
435 reg = <0x0 0x48 0x0 0x14>;
436 };
437 };
438
426 hiubus: bus@c883c000 { 439 hiubus: bus@c883c000 {
427 compatible = "simple-bus"; 440 compatible = "simple-bus";
428 reg = <0x0 0xc883c000 0x0 0x2000>; 441 reg = <0x0 0xc883c000 0x0 0x2000>;
@@ -431,7 +444,7 @@
431 ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>; 444 ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>;
432 445
433 sysctrl: system-controller@0 { 446 sysctrl: system-controller@0 {
434 compatible = "amlogic,meson-gx-hhi-sysctrl", "syscon", "simple-mfd"; 447 compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
435 reg = <0 0 0 0x400>; 448 reg = <0 0 0 0x400>;
436 }; 449 };
437 450
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
index 98cbba6809ca..1ade7e486828 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
@@ -390,7 +390,7 @@
390 }; 390 };
391 }; 391 };
392 392
393 spi_pins: spi { 393 spi_pins: spi-pins {
394 mux { 394 mux {
395 groups = "spi_miso", 395 groups = "spi_miso",
396 "spi_mosi", 396 "spi_mosi",
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index f63bceb88caa..90a56af967a7 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -13,7 +13,7 @@
13 13
14/ { 14/ {
15 compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl"; 15 compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl";
16 model = "Libre Technology CC"; 16 model = "Libre Computer Board AML-S905X-CC";
17 17
18 aliases { 18 aliases {
19 serial0 = &uart_AO; 19 serial0 = &uart_AO;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
index c87a80e9bcc6..8f0bb3c44bd6 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
@@ -337,7 +337,7 @@
337 }; 337 };
338 }; 338 };
339 339
340 spi_pins: spi { 340 spi_pins: spi-pins {
341 mux { 341 mux {
342 groups = "spi_miso", 342 groups = "spi_miso",
343 "spi_mosi", 343 "spi_mosi",
diff --git a/arch/arm64/boot/dts/arm/juno-base.dtsi b/arch/arm64/boot/dts/arm/juno-base.dtsi
index ce56a4acda4f..ed774ee8f659 100644
--- a/arch/arm64/boot/dts/arm/juno-base.dtsi
+++ b/arch/arm64/boot/dts/arm/juno-base.dtsi
@@ -115,22 +115,17 @@
115 clocks = <&soc_smc50mhz>; 115 clocks = <&soc_smc50mhz>;
116 clock-names = "apb_pclk"; 116 clock-names = "apb_pclk";
117 power-domains = <&scpi_devpd 0>; 117 power-domains = <&scpi_devpd 0>;
118 ports {
119 #address-cells = <1>;
120 #size-cells = <0>;
121 118
122 /* input port */ 119 in-ports {
123 port@0 { 120 port {
124 reg = <0>;
125 etf0_in_port: endpoint { 121 etf0_in_port: endpoint {
126 slave-mode;
127 remote-endpoint = <&main_funnel_out_port>; 122 remote-endpoint = <&main_funnel_out_port>;
128 }; 123 };
129 }; 124 };
125 };
130 126
131 /* output port */ 127 out-ports {
132 port@1 { 128 port {
133 reg = <0>;
134 etf0_out_port: endpoint { 129 etf0_out_port: endpoint {
135 }; 130 };
136 }; 131 };
@@ -144,10 +139,11 @@
144 clocks = <&soc_smc50mhz>; 139 clocks = <&soc_smc50mhz>;
145 clock-names = "apb_pclk"; 140 clock-names = "apb_pclk";
146 power-domains = <&scpi_devpd 0>; 141 power-domains = <&scpi_devpd 0>;
147 port { 142 in-ports {
148 tpiu_in_port: endpoint { 143 port {
149 slave-mode; 144 tpiu_in_port: endpoint {
150 remote-endpoint = <&replicator_out_port0>; 145 remote-endpoint = <&replicator_out_port0>;
146 };
151 }; 147 };
152 }; 148 };
153 }; 149 };
@@ -160,31 +156,29 @@
160 clocks = <&soc_smc50mhz>; 156 clocks = <&soc_smc50mhz>;
161 clock-names = "apb_pclk"; 157 clock-names = "apb_pclk";
162 power-domains = <&scpi_devpd 0>; 158 power-domains = <&scpi_devpd 0>;
163 ports {
164 #address-cells = <1>;
165 #size-cells = <0>;
166 159
167 /* output port */ 160 out-ports {
168 port@0 { 161 port {
169 reg = <0>;
170 main_funnel_out_port: endpoint { 162 main_funnel_out_port: endpoint {
171 remote-endpoint = <&etf0_in_port>; 163 remote-endpoint = <&etf0_in_port>;
172 }; 164 };
173 }; 165 };
166 };
174 167
175 /* input ports */ 168 main_funnel_in_ports: in-ports {
176 port@1 { 169 #address-cells = <1>;
170 #size-cells = <0>;
171
172 port@0 {
177 reg = <0>; 173 reg = <0>;
178 main_funnel_in_port0: endpoint { 174 main_funnel_in_port0: endpoint {
179 slave-mode;
180 remote-endpoint = <&cluster0_funnel_out_port>; 175 remote-endpoint = <&cluster0_funnel_out_port>;
181 }; 176 };
182 }; 177 };
183 178
184 port@2 { 179 port@1 {
185 reg = <1>; 180 reg = <1>;
186 main_funnel_in_port1: endpoint { 181 main_funnel_in_port1: endpoint {
187 slave-mode;
188 remote-endpoint = <&cluster1_funnel_out_port>; 182 remote-endpoint = <&cluster1_funnel_out_port>;
189 }; 183 };
190 }; 184 };
@@ -199,10 +193,12 @@
199 clocks = <&soc_smc50mhz>; 193 clocks = <&soc_smc50mhz>;
200 clock-names = "apb_pclk"; 194 clock-names = "apb_pclk";
201 power-domains = <&scpi_devpd 0>; 195 power-domains = <&scpi_devpd 0>;
202 port { 196 arm,scatter-gather;
203 etr_in_port: endpoint { 197 in-ports {
204 slave-mode; 198 port {
205 remote-endpoint = <&replicator_out_port1>; 199 etr_in_port: endpoint {
200 remote-endpoint = <&replicator_out_port1>;
201 };
206 }; 202 };
207 }; 203 };
208 }; 204 };
@@ -216,8 +212,10 @@
216 clocks = <&soc_smc50mhz>; 212 clocks = <&soc_smc50mhz>;
217 clock-names = "apb_pclk"; 213 clock-names = "apb_pclk";
218 power-domains = <&scpi_devpd 0>; 214 power-domains = <&scpi_devpd 0>;
219 port { 215 out-ports {
220 stm_out_port: endpoint { 216 port {
217 stm_out_port: endpoint {
218 };
221 }; 219 };
222 }; 220 };
223 }; 221 };
@@ -238,9 +236,11 @@
238 clocks = <&soc_smc50mhz>; 236 clocks = <&soc_smc50mhz>;
239 clock-names = "apb_pclk"; 237 clock-names = "apb_pclk";
240 power-domains = <&scpi_devpd 0>; 238 power-domains = <&scpi_devpd 0>;
241 port { 239 out-ports {
242 cluster0_etm0_out_port: endpoint { 240 port {
243 remote-endpoint = <&cluster0_funnel_in_port0>; 241 cluster0_etm0_out_port: endpoint {
242 remote-endpoint = <&cluster0_funnel_in_port0>;
243 };
244 }; 244 };
245 }; 245 };
246 }; 246 };
@@ -252,29 +252,28 @@
252 clocks = <&soc_smc50mhz>; 252 clocks = <&soc_smc50mhz>;
253 clock-names = "apb_pclk"; 253 clock-names = "apb_pclk";
254 power-domains = <&scpi_devpd 0>; 254 power-domains = <&scpi_devpd 0>;
255 ports { 255 out-ports {
256 #address-cells = <1>; 256 port {
257 #size-cells = <0>;
258
259 port@0 {
260 reg = <0>;
261 cluster0_funnel_out_port: endpoint { 257 cluster0_funnel_out_port: endpoint {
262 remote-endpoint = <&main_funnel_in_port0>; 258 remote-endpoint = <&main_funnel_in_port0>;
263 }; 259 };
264 }; 260 };
261 };
265 262
266 port@1 { 263 in-ports {
264 #address-cells = <1>;
265 #size-cells = <0>;
266
267 port@0 {
267 reg = <0>; 268 reg = <0>;
268 cluster0_funnel_in_port0: endpoint { 269 cluster0_funnel_in_port0: endpoint {
269 slave-mode;
270 remote-endpoint = <&cluster0_etm0_out_port>; 270 remote-endpoint = <&cluster0_etm0_out_port>;
271 }; 271 };
272 }; 272 };
273 273
274 port@2 { 274 port@1 {
275 reg = <1>; 275 reg = <1>;
276 cluster0_funnel_in_port1: endpoint { 276 cluster0_funnel_in_port1: endpoint {
277 slave-mode;
278 remote-endpoint = <&cluster0_etm1_out_port>; 277 remote-endpoint = <&cluster0_etm1_out_port>;
279 }; 278 };
280 }; 279 };
@@ -297,9 +296,11 @@
297 clocks = <&soc_smc50mhz>; 296 clocks = <&soc_smc50mhz>;
298 clock-names = "apb_pclk"; 297 clock-names = "apb_pclk";
299 power-domains = <&scpi_devpd 0>; 298 power-domains = <&scpi_devpd 0>;
300 port { 299 out-ports {
301 cluster0_etm1_out_port: endpoint { 300 port {
302 remote-endpoint = <&cluster0_funnel_in_port1>; 301 cluster0_etm1_out_port: endpoint {
302 remote-endpoint = <&cluster0_funnel_in_port1>;
303 };
303 }; 304 };
304 }; 305 };
305 }; 306 };
@@ -320,9 +321,11 @@
320 clocks = <&soc_smc50mhz>; 321 clocks = <&soc_smc50mhz>;
321 clock-names = "apb_pclk"; 322 clock-names = "apb_pclk";
322 power-domains = <&scpi_devpd 0>; 323 power-domains = <&scpi_devpd 0>;
323 port { 324 out-ports {
324 cluster1_etm0_out_port: endpoint { 325 port {
325 remote-endpoint = <&cluster1_funnel_in_port0>; 326 cluster1_etm0_out_port: endpoint {
327 remote-endpoint = <&cluster1_funnel_in_port0>;
328 };
326 }; 329 };
327 }; 330 };
328 }; 331 };
@@ -334,43 +337,40 @@
334 clocks = <&soc_smc50mhz>; 337 clocks = <&soc_smc50mhz>;
335 clock-names = "apb_pclk"; 338 clock-names = "apb_pclk";
336 power-domains = <&scpi_devpd 0>; 339 power-domains = <&scpi_devpd 0>;
337 ports { 340 out-ports {
338 #address-cells = <1>; 341 port {
339 #size-cells = <0>;
340
341 port@0 {
342 reg = <0>;
343 cluster1_funnel_out_port: endpoint { 342 cluster1_funnel_out_port: endpoint {
344 remote-endpoint = <&main_funnel_in_port1>; 343 remote-endpoint = <&main_funnel_in_port1>;
345 }; 344 };
346 }; 345 };
346 };
347 347
348 port@1 { 348 in-ports {
349 #address-cells = <1>;
350 #size-cells = <0>;
351
352 port@0 {
349 reg = <0>; 353 reg = <0>;
350 cluster1_funnel_in_port0: endpoint { 354 cluster1_funnel_in_port0: endpoint {
351 slave-mode;
352 remote-endpoint = <&cluster1_etm0_out_port>; 355 remote-endpoint = <&cluster1_etm0_out_port>;
353 }; 356 };
354 }; 357 };
355 358
356 port@2 { 359 port@1 {
357 reg = <1>; 360 reg = <1>;
358 cluster1_funnel_in_port1: endpoint { 361 cluster1_funnel_in_port1: endpoint {
359 slave-mode;
360 remote-endpoint = <&cluster1_etm1_out_port>; 362 remote-endpoint = <&cluster1_etm1_out_port>;
361 }; 363 };
362 }; 364 };
363 port@3 { 365 port@2 {
364 reg = <2>; 366 reg = <2>;
365 cluster1_funnel_in_port2: endpoint { 367 cluster1_funnel_in_port2: endpoint {
366 slave-mode;
367 remote-endpoint = <&cluster1_etm2_out_port>; 368 remote-endpoint = <&cluster1_etm2_out_port>;
368 }; 369 };
369 }; 370 };
370 port@4 { 371 port@3 {
371 reg = <3>; 372 reg = <3>;
372 cluster1_funnel_in_port3: endpoint { 373 cluster1_funnel_in_port3: endpoint {
373 slave-mode;
374 remote-endpoint = <&cluster1_etm3_out_port>; 374 remote-endpoint = <&cluster1_etm3_out_port>;
375 }; 375 };
376 }; 376 };
@@ -393,9 +393,11 @@
393 clocks = <&soc_smc50mhz>; 393 clocks = <&soc_smc50mhz>;
394 clock-names = "apb_pclk"; 394 clock-names = "apb_pclk";
395 power-domains = <&scpi_devpd 0>; 395 power-domains = <&scpi_devpd 0>;
396 port { 396 out-ports {
397 cluster1_etm1_out_port: endpoint { 397 port {
398 remote-endpoint = <&cluster1_funnel_in_port1>; 398 cluster1_etm1_out_port: endpoint {
399 remote-endpoint = <&cluster1_funnel_in_port1>;
400 };
399 }; 401 };
400 }; 402 };
401 }; 403 };
@@ -416,9 +418,11 @@
416 clocks = <&soc_smc50mhz>; 418 clocks = <&soc_smc50mhz>;
417 clock-names = "apb_pclk"; 419 clock-names = "apb_pclk";
418 power-domains = <&scpi_devpd 0>; 420 power-domains = <&scpi_devpd 0>;
419 port { 421 out-ports {
420 cluster1_etm2_out_port: endpoint { 422 port {
421 remote-endpoint = <&cluster1_funnel_in_port2>; 423 cluster1_etm2_out_port: endpoint {
424 remote-endpoint = <&cluster1_funnel_in_port2>;
425 };
422 }; 426 };
423 }; 427 };
424 }; 428 };
@@ -439,9 +443,11 @@
439 clocks = <&soc_smc50mhz>; 443 clocks = <&soc_smc50mhz>;
440 clock-names = "apb_pclk"; 444 clock-names = "apb_pclk";
441 power-domains = <&scpi_devpd 0>; 445 power-domains = <&scpi_devpd 0>;
442 port { 446 out-ports {
443 cluster1_etm3_out_port: endpoint { 447 port {
444 remote-endpoint = <&cluster1_funnel_in_port3>; 448 cluster1_etm3_out_port: endpoint {
449 remote-endpoint = <&cluster1_funnel_in_port3>;
450 };
445 }; 451 };
446 }; 452 };
447 }; 453 };
@@ -454,7 +460,7 @@
454 clock-names = "apb_pclk"; 460 clock-names = "apb_pclk";
455 power-domains = <&scpi_devpd 0>; 461 power-domains = <&scpi_devpd 0>;
456 462
457 ports { 463 out-ports {
458 #address-cells = <1>; 464 #address-cells = <1>;
459 #size-cells = <0>; 465 #size-cells = <0>;
460 466
@@ -472,12 +478,10 @@
472 remote-endpoint = <&etr_in_port>; 478 remote-endpoint = <&etr_in_port>;
473 }; 479 };
474 }; 480 };
475 481 };
476 /* replicator input port */ 482 in-ports {
477 port@2 { 483 port {
478 reg = <0>;
479 replicator_in_port0: endpoint { 484 replicator_in_port0: endpoint {
480 slave-mode;
481 }; 485 };
482 }; 486 };
483 }; 487 };
diff --git a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
index 0c43fb3525eb..cf285152deab 100644
--- a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
+++ b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
@@ -7,23 +7,16 @@
7 clocks = <&soc_smc50mhz>; 7 clocks = <&soc_smc50mhz>;
8 clock-names = "apb_pclk"; 8 clock-names = "apb_pclk";
9 power-domains = <&scpi_devpd 0>; 9 power-domains = <&scpi_devpd 0>;
10 ports { 10 out-ports {
11 #address-cells = <1>; 11 port {
12 #size-cells = <0>;
13
14 /* output port */
15 port@0 {
16 reg = <0>;
17 csys1_funnel_out_port: endpoint { 12 csys1_funnel_out_port: endpoint {
18 remote-endpoint = <&etf1_in_port>; 13 remote-endpoint = <&etf1_in_port>;
19 }; 14 };
20 }; 15 };
21 16 };
22 /* input port */ 17 in-ports {
23 port@1 { 18 port {
24 reg = <0>;
25 csys1_funnel_in_port0: endpoint { 19 csys1_funnel_in_port0: endpoint {
26 slave-mode;
27 }; 20 };
28 }; 21 };
29 22
@@ -37,22 +30,15 @@
37 clocks = <&soc_smc50mhz>; 30 clocks = <&soc_smc50mhz>;
38 clock-names = "apb_pclk"; 31 clock-names = "apb_pclk";
39 power-domains = <&scpi_devpd 0>; 32 power-domains = <&scpi_devpd 0>;
40 ports { 33 in-ports {
41 #address-cells = <1>; 34 port {
42 #size-cells = <0>;
43
44 /* input port */
45 port@0 {
46 reg = <0>;
47 etf1_in_port: endpoint { 35 etf1_in_port: endpoint {
48 slave-mode;
49 remote-endpoint = <&csys1_funnel_out_port>; 36 remote-endpoint = <&csys1_funnel_out_port>;
50 }; 37 };
51 }; 38 };
52 39 };
53 /* output port */ 40 out-ports {
54 port@1 { 41 port {
55 reg = <0>;
56 etf1_out_port: endpoint { 42 etf1_out_port: endpoint {
57 remote-endpoint = <&csys2_funnel_in_port1>; 43 remote-endpoint = <&csys2_funnel_in_port1>;
58 }; 44 };
@@ -67,20 +53,18 @@
67 clocks = <&soc_smc50mhz>; 53 clocks = <&soc_smc50mhz>;
68 clock-names = "apb_pclk"; 54 clock-names = "apb_pclk";
69 power-domains = <&scpi_devpd 0>; 55 power-domains = <&scpi_devpd 0>;
70 ports { 56 out-ports {
71 #address-cells = <1>; 57 port {
72 #size-cells = <0>;
73
74 /* output port */
75 port@0 {
76 reg = <0>;
77 csys2_funnel_out_port: endpoint { 58 csys2_funnel_out_port: endpoint {
78 remote-endpoint = <&replicator_in_port0>; 59 remote-endpoint = <&replicator_in_port0>;
79 }; 60 };
80 }; 61 };
62 };
81 63
82 /* input ports */ 64 in-ports {
83 port@1 { 65 #address-cells = <1>;
66 #size-cells = <0>;
67 port@0 {
84 reg = <0>; 68 reg = <0>;
85 csys2_funnel_in_port0: endpoint { 69 csys2_funnel_in_port0: endpoint {
86 slave-mode; 70 slave-mode;
@@ -88,7 +72,7 @@
88 }; 72 };
89 }; 73 };
90 74
91 port@2 { 75 port@1 {
92 reg = <1>; 76 reg = <1>;
93 csys2_funnel_in_port1: endpoint { 77 csys2_funnel_in_port1: endpoint {
94 slave-mode; 78 slave-mode;
diff --git a/arch/arm64/boot/dts/arm/juno.dts b/arch/arm64/boot/dts/arm/juno.dts
index 1fb5c5a0f32e..08d4ba1716c3 100644
--- a/arch/arm64/boot/dts/arm/juno.dts
+++ b/arch/arm64/boot/dts/arm/juno.dts
@@ -257,14 +257,11 @@
257 remote-endpoint = <&main_funnel_in_port2>; 257 remote-endpoint = <&main_funnel_in_port2>;
258}; 258};
259 259
260&main_funnel { 260&main_funnel_in_ports {
261 ports { 261 port@2 {
262 port@3 { 262 reg = <2>;
263 reg = <2>; 263 main_funnel_in_port2: endpoint {
264 main_funnel_in_port2: endpoint { 264 remote-endpoint = <&stm_out_port>;
265 slave-mode;
266 remote-endpoint = <&stm_out_port>;
267 };
268 }; 265 };
269 }; 266 };
270}; 267};
diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
index 1193a9e34bbb..667ca989c11b 100644
--- a/arch/arm64/boot/dts/broadcom/Makefile
+++ b/arch/arm64/boot/dts/broadcom/Makefile
@@ -1,6 +1,7 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \ 2dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb \
3 bcm2837-rpi-3-b-plus.dtb 3 bcm2837-rpi-3-b-plus.dtb \
4 bcm2837-rpi-cm3-io3.dtb
4 5
5subdir-y += northstar2 6subdir-y += northstar2
6subdir-y += stingray 7subdir-y += stingray
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts
new file mode 100644
index 000000000000..b1c4ab212c64
--- /dev/null
+++ b/arch/arm64/boot/dts/broadcom/bcm2837-rpi-cm3-io3.dts
@@ -0,0 +1,2 @@
1// SPDX-License-Identifier: GPL-2.0
2#include "arm/bcm2837-rpi-cm3-io3.dts"
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi b/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
index 1a406a76c86a..ea854f689fda 100644
--- a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
+++ b/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
@@ -639,7 +639,7 @@
639 status = "disabled"; 639 status = "disabled";
640 }; 640 };
641 641
642 ssp0: ssp@66180000 { 642 ssp0: spi@66180000 {
643 compatible = "arm,pl022", "arm,primecell"; 643 compatible = "arm,pl022", "arm,primecell";
644 reg = <0x66180000 0x1000>; 644 reg = <0x66180000 0x1000>;
645 interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>; 645 interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
@@ -650,7 +650,7 @@
650 status = "disabled"; 650 status = "disabled";
651 }; 651 };
652 652
653 ssp1: ssp@66190000 { 653 ssp1: spi@66190000 {
654 compatible = "arm,pl022", "arm,primecell"; 654 compatible = "arm,pl022", "arm,primecell";
655 reg = <0x66190000 0x1000>; 655 reg = <0x66190000 0x1000>;
656 interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>; 656 interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi b/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi
index bc299c3d9068..a9b92e52d50e 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi
@@ -138,7 +138,7 @@
138&i2c1 { 138&i2c1 {
139 status = "okay"; 139 status = "okay";
140 140
141 pcf8574: pcf8574@20 { 141 pcf8574: pcf8574@27 {
142 compatible = "nxp,pcf8574a"; 142 compatible = "nxp,pcf8574a";
143 gpio-controller; 143 gpio-controller;
144 #gpio-cells = <2>; 144 #gpio-cells = <2>;
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
index e283480bfc7e..cfeaa855bd05 100644
--- a/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
+++ b/arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
@@ -521,7 +521,7 @@
521 status = "disabled"; 521 status = "disabled";
522 }; 522 };
523 523
524 ssp0: ssp@180000 { 524 ssp0: spi@180000 {
525 compatible = "arm,pl022", "arm,primecell"; 525 compatible = "arm,pl022", "arm,primecell";
526 reg = <0x00180000 0x1000>; 526 reg = <0x00180000 0x1000>;
527 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 527 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
@@ -533,7 +533,7 @@
533 status = "disabled"; 533 status = "disabled";
534 }; 534 };
535 535
536 ssp1: ssp@190000 { 536 ssp1: spi@190000 {
537 compatible = "arm,pl022", "arm,primecell"; 537 compatible = "arm,pl022", "arm,primecell";
538 reg = <0x00190000 0x1000>; 538 reg = <0x00190000 0x1000>;
539 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 539 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
index a1e3194b7483..f3ed4c078ba5 100644
--- a/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
+++ b/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
@@ -868,6 +868,14 @@
868 }; 868 };
869 }; 869 };
870 }; 870 };
871
872 ports {
873 port {
874 muic_to_usb: endpoint {
875 remote-endpoint = <&usb_to_muic>;
876 };
877 };
878 };
871 }; 879 };
872 880
873 regulators { 881 regulators {
@@ -939,8 +947,7 @@
939 status = "okay"; 947 status = "okay";
940 cap-sd-highspeed; 948 cap-sd-highspeed;
941 disable-wp; 949 disable-wp;
942 cd-gpios = <&gpa2 4 GPIO_ACTIVE_HIGH>; 950 cd-gpios = <&gpa2 4 GPIO_ACTIVE_LOW>;
943 cd-inverted;
944 card-detect-delay = <200>; 951 card-detect-delay = <200>;
945 samsung,dw-mshc-ciu-div = <3>; 952 samsung,dw-mshc-ciu-div = <3>;
946 samsung,dw-mshc-sdr-timing = <0 4>; 953 samsung,dw-mshc-sdr-timing = <0 4>;
@@ -1283,12 +1290,17 @@
1283 1290
1284&usbdrd_dwc3 { 1291&usbdrd_dwc3 {
1285 dr_mode = "otg"; 1292 dr_mode = "otg";
1286 extcon = <&muic>;
1287}; 1293};
1288 1294
1289&usbdrd30_phy { 1295&usbdrd30_phy {
1290 vbus-supply = <&safeout1_reg>; 1296 vbus-supply = <&safeout1_reg>;
1291 status = "okay"; 1297 status = "okay";
1298
1299 port {
1300 usb_to_muic: endpoint {
1301 remote-endpoint = <&muic_to_usb>;
1302 };
1303 };
1292}; 1304};
1293 1305
1294&xxti { 1306&xxti {
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
index 68ac78c4564d..5da732f82fa0 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
@@ -337,7 +337,7 @@
337 status = "disabled"; 337 status = "disabled";
338 }; 338 };
339 339
340 dspi: dspi@2100000 { 340 dspi: spi@2100000 {
341 compatible = "fsl,ls1012a-dspi", "fsl,ls1021a-v1.0-dspi"; 341 compatible = "fsl,ls1012a-dspi", "fsl,ls1021a-v1.0-dspi";
342 #address-cells = <1>; 342 #address-cells = <1>;
343 #size-cells = <0>; 343 #size-cells = <0>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
index c7b8d2c009cd..dff3d648172e 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dts
@@ -3,6 +3,7 @@
3 * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 * Device Tree Include file for Freescale Layerscape-1043A family SoC.
4 * 4 *
5 * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 * Copyright 2014-2015 Freescale Semiconductor, Inc.
6 * Copyright 2018 NXP
6 * 7 *
7 * Mingkai Hu <Mingkai.hu@freescale.com> 8 * Mingkai Hu <Mingkai.hu@freescale.com>
8 */ 9 */
@@ -50,6 +51,7 @@
50 nor@0,0 { 51 nor@0,0 {
51 compatible = "cfi-flash"; 52 compatible = "cfi-flash";
52 reg = <0x0 0x0 0x8000000>; 53 reg = <0x0 0x0 0x8000000>;
54 big-endian;
53 bank-width = <2>; 55 bank-width = <2>;
54 device-width = <1>; 56 device-width = <1>;
55 }; 57 };
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
index 7b01ba8d3b7e..17ca357e854f 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a-rdb.dts
@@ -3,6 +3,7 @@
3 * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 * Device Tree Include file for Freescale Layerscape-1043A family SoC.
4 * 4 *
5 * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 * Copyright 2014-2015 Freescale Semiconductor, Inc.
6 * Copyright 2018 NXP
6 * 7 *
7 * Mingkai Hu <Mingkai.hu@freescale.com> 8 * Mingkai Hu <Mingkai.hu@freescale.com>
8 */ 9 */
@@ -65,6 +66,7 @@
65 #address-cells = <1>; 66 #address-cells = <1>;
66 #size-cells = <1>; 67 #size-cells = <1>;
67 reg = <0x0 0x0 0x8000000>; 68 reg = <0x0 0x0 0x8000000>;
69 big-endian;
68 bank-width = <2>; 70 bank-width = <2>;
69 device-width = <1>; 71 device-width = <1>;
70 }; 72 };
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
index 7881e3d81a9a..3fed504b5381 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
@@ -3,6 +3,7 @@
3 * Device Tree Include file for Freescale Layerscape-1043A family SoC. 3 * Device Tree Include file for Freescale Layerscape-1043A family SoC.
4 * 4 *
5 * Copyright 2014-2015 Freescale Semiconductor, Inc. 5 * Copyright 2014-2015 Freescale Semiconductor, Inc.
6 * Copyright 2018 NXP
6 * 7 *
7 * Mingkai Hu <Mingkai.hu@freescale.com> 8 * Mingkai Hu <Mingkai.hu@freescale.com>
8 */ 9 */
@@ -280,11 +281,10 @@
280 ifc: ifc@1530000 { 281 ifc: ifc@1530000 {
281 compatible = "fsl,ifc", "simple-bus"; 282 compatible = "fsl,ifc", "simple-bus";
282 reg = <0x0 0x1530000 0x0 0x10000>; 283 reg = <0x0 0x1530000 0x0 0x10000>;
283 big-endian;
284 interrupts = <0 43 0x4>; 284 interrupts = <0 43 0x4>;
285 }; 285 };
286 286
287 qspi: quadspi@1550000 { 287 qspi: spi@1550000 {
288 compatible = "fsl,ls1043a-qspi", "fsl,ls1021a-qspi"; 288 compatible = "fsl,ls1043a-qspi", "fsl,ls1021a-qspi";
289 #address-cells = <1>; 289 #address-cells = <1>;
290 #size-cells = <0>; 290 #size-cells = <0>;
@@ -382,7 +382,7 @@
382 ranges = <0x0 0x5 0x00000000 0x8000000>; 382 ranges = <0x0 0x5 0x00000000 0x8000000>;
383 }; 383 };
384 384
385 dspi0: dspi@2100000 { 385 dspi0: spi@2100000 {
386 compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; 386 compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi";
387 #address-cells = <1>; 387 #address-cells = <1>;
388 #size-cells = <0>; 388 #size-cells = <0>;
@@ -395,7 +395,7 @@
395 status = "disabled"; 395 status = "disabled";
396 }; 396 };
397 397
398 dspi1: dspi@2110000 { 398 dspi1: spi@2110000 {
399 compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi"; 399 compatible = "fsl,ls1043a-dspi", "fsl,ls1021a-v1.0-dspi";
400 #address-cells = <1>; 400 #address-cells = <1>;
401 #size-cells = <0>; 401 #size-cells = <0>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
index e69306e6b0b1..e58a8ca1386c 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-qds.dts
@@ -3,6 +3,7 @@
3 * Device Tree Include file for Freescale Layerscape-1046A family SoC. 3 * Device Tree Include file for Freescale Layerscape-1046A family SoC.
4 * 4 *
5 * Copyright 2016 Freescale Semiconductor, Inc. 5 * Copyright 2016 Freescale Semiconductor, Inc.
6 * Copyright 2018 NXP
6 * 7 *
7 * Shaohui Xie <Shaohui.Xie@nxp.com> 8 * Shaohui Xie <Shaohui.Xie@nxp.com>
8 */ 9 */
@@ -141,6 +142,7 @@
141 nor@0,0 { 142 nor@0,0 {
142 compatible = "cfi-flash"; 143 compatible = "cfi-flash";
143 reg = <0x0 0x0 0x8000000>; 144 reg = <0x0 0x0 0x8000000>;
145 big-endian;
144 bank-width = <2>; 146 bank-width = <2>;
145 device-width = <1>; 147 device-width = <1>;
146 }; 148 };
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
index 440e111651d5..a59b48203688 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts
@@ -57,12 +57,12 @@
57 reg = <0x4c>; 57 reg = <0x4c>;
58 }; 58 };
59 59
60 eeprom@56 { 60 eeprom@52 {
61 compatible = "atmel,24c512"; 61 compatible = "atmel,24c512";
62 reg = <0x52>; 62 reg = <0x52>;
63 }; 63 };
64 64
65 eeprom@57 { 65 eeprom@53 {
66 compatible = "atmel,24c512"; 66 compatible = "atmel,24c512";
67 reg = <0x53>; 67 reg = <0x53>;
68 }; 68 };
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
index ef83786b8b90..51cbd50012d6 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
@@ -3,6 +3,7 @@
3 * Device Tree Include file for Freescale Layerscape-1046A family SoC. 3 * Device Tree Include file for Freescale Layerscape-1046A family SoC.
4 * 4 *
5 * Copyright 2016 Freescale Semiconductor, Inc. 5 * Copyright 2016 Freescale Semiconductor, Inc.
6 * Copyright 2018 NXP
6 * 7 *
7 * Mingkai Hu <mingkai.hu@nxp.com> 8 * Mingkai Hu <mingkai.hu@nxp.com>
8 */ 9 */
@@ -198,11 +199,10 @@
198 ifc: ifc@1530000 { 199 ifc: ifc@1530000 {
199 compatible = "fsl,ifc", "simple-bus"; 200 compatible = "fsl,ifc", "simple-bus";
200 reg = <0x0 0x1530000 0x0 0x10000>; 201 reg = <0x0 0x1530000 0x0 0x10000>;
201 big-endian;
202 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>; 202 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
203 }; 203 };
204 204
205 qspi: quadspi@1550000 { 205 qspi: spi@1550000 {
206 compatible = "fsl,ls1021a-qspi"; 206 compatible = "fsl,ls1021a-qspi";
207 #address-cells = <1>; 207 #address-cells = <1>;
208 #size-cells = <0>; 208 #size-cells = <0>;
@@ -361,7 +361,7 @@
361 #thermal-sensor-cells = <1>; 361 #thermal-sensor-cells = <1>;
362 }; 362 };
363 363
364 dspi: dspi@2100000 { 364 dspi: spi@2100000 {
365 compatible = "fsl,ls1021a-v1.0-dspi"; 365 compatible = "fsl,ls1021a-v1.0-dspi";
366 #address-cells = <1>; 366 #address-cells = <1>;
367 #size-cells = <0>; 367 #size-cells = <0>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
index 90c0faf8579f..d188774a36e8 100644
--- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
@@ -22,6 +22,8 @@
22 crypto = &crypto; 22 crypto = &crypto;
23 serial0 = &serial0; 23 serial0 = &serial0;
24 serial1 = &serial1; 24 serial1 = &serial1;
25 serial2 = &serial2;
26 serial3 = &serial3;
25 }; 27 };
26 28
27 cpu: cpus { 29 cpu: cpus {
@@ -222,6 +224,20 @@
222 interrupts = <0 32 0x4>; /* Level high type */ 224 interrupts = <0 32 0x4>; /* Level high type */
223 }; 225 };
224 226
227 serial2: serial@21d0500 {
228 compatible = "fsl,ns16550", "ns16550a";
229 reg = <0x0 0x21d0500 0x0 0x100>;
230 clocks = <&clockgen 4 3>;
231 interrupts = <0 33 0x4>; /* Level high type */
232 };
233
234 serial3: serial@21d0600 {
235 compatible = "fsl,ns16550", "ns16550a";
236 reg = <0x0 0x21d0600 0x0 0x100>;
237 clocks = <&clockgen 4 3>;
238 interrupts = <0 33 0x4>; /* Level high type */
239 };
240
225 cluster1_core0_watchdog: wdt@c000000 { 241 cluster1_core0_watchdog: wdt@c000000 {
226 compatible = "arm,sp805-wdt", "arm,primecell"; 242 compatible = "arm,sp805-wdt", "arm,primecell";
227 reg = <0x0 0xc000000 0x0 0x1000>; 243 reg = <0x0 0xc000000 0x0 0x1000>;
@@ -474,7 +490,7 @@
474 <0 208 4>, <0 209 4>; 490 <0 208 4>, <0 209 4>;
475 }; 491 };
476 492
477 dspi: dspi@2100000 { 493 dspi: spi@2100000 {
478 status = "disabled"; 494 status = "disabled";
479 compatible = "fsl,ls2080a-dspi", "fsl,ls2085a-dspi"; 495 compatible = "fsl,ls2080a-dspi", "fsl,ls2085a-dspi";
480 #address-cells = <1>; 496 #address-cells = <1>;
@@ -600,7 +616,7 @@
600 3 0 0x5 0x20000000 0x00010000>; 616 3 0 0x5 0x20000000 0x00010000>;
601 }; 617 };
602 618
603 qspi: quadspi@20c0000 { 619 qspi: spi@20c0000 {
604 status = "disabled"; 620 status = "disabled";
605 compatible = "fsl,ls2080a-qspi", "fsl,ls1021a-qspi"; 621 compatible = "fsl,ls2080a-qspi", "fsl,ls1021a-qspi";
606 #address-cells = <1>; 622 #address-cells = <1>;
diff --git a/arch/arm64/boot/dts/hisilicon/Makefile b/arch/arm64/boot/dts/hisilicon/Makefile
index 03d93f8ef8a9..f4d68caeba83 100644
--- a/arch/arm64/boot/dts/hisilicon/Makefile
+++ b/arch/arm64/boot/dts/hisilicon/Makefile
@@ -1,5 +1,6 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_HISI) += hi3660-hikey960.dtb 2dtb-$(CONFIG_ARCH_HISI) += hi3660-hikey960.dtb
3dtb-$(CONFIG_ARCH_HISI) += hi3670-hikey970.dtb
3dtb-$(CONFIG_ARCH_HISI) += hi3798cv200-poplar.dtb 4dtb-$(CONFIG_ARCH_HISI) += hi3798cv200-poplar.dtb
4dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb 5dtb-$(CONFIG_ARCH_HISI) += hi6220-hikey.dtb
5dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb 6dtb-$(CONFIG_ARCH_HISI) += hip05-d02.dtb
diff --git a/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
new file mode 100644
index 000000000000..4f5118642024
--- /dev/null
+++ b/arch/arm64/boot/dts/hisilicon/hi3670-hikey970.dts
@@ -0,0 +1,35 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * dts file for Hisilicon HiKey970 Development Board
4 *
5 * Copyright (C) 2016, Hisilicon Ltd.
6 * Copyright (C) 2018, Linaro Ltd.
7 *
8 */
9
10/dts-v1/;
11
12#include "hi3670.dtsi"
13
14/ {
15 model = "HiKey970";
16 compatible = "hisilicon,hi3670-hikey970", "hisilicon,hi3670";
17
18 aliases {
19 serial6 = &uart6; /* console UART */
20 };
21
22 chosen {
23 stdout-path = "serial6:115200n8";
24 };
25
26 memory@0 {
27 device_type = "memory";
28 /* expect bootloader to fill in this region */
29 reg = <0x0 0x0 0x0 0x0>;
30 };
31};
32
33&uart6 {
34 status = "okay";
35};
diff --git a/arch/arm64/boot/dts/hisilicon/hi3670.dtsi b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
new file mode 100644
index 000000000000..c90e6f6a34ec
--- /dev/null
+++ b/arch/arm64/boot/dts/hisilicon/hi3670.dtsi
@@ -0,0 +1,162 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * dts file for Hisilicon Hi3670 SoC
4 *
5 * Copyright (C) 2016, Hisilicon Ltd.
6 * Copyright (C) 2018, Linaro Ltd.
7 */
8
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10
11/ {
12 compatible = "hisilicon,hi3670";
13 interrupt-parent = <&gic>;
14 #address-cells = <2>;
15 #size-cells = <2>;
16
17 psci {
18 compatible = "arm,psci-0.2";
19 method = "smc";
20 };
21
22 cpus {
23 #address-cells = <2>;
24 #size-cells = <0>;
25
26 cpu-map {
27 cluster0 {
28 core0 {
29 cpu = <&cpu0>;
30 };
31 core1 {
32 cpu = <&cpu1>;
33 };
34 core2 {
35 cpu = <&cpu2>;
36 };
37 core3 {
38 cpu = <&cpu3>;
39 };
40 };
41 cluster1 {
42 core0 {
43 cpu = <&cpu4>;
44 };
45 core1 {
46 cpu = <&cpu5>;
47 };
48 core2 {
49 cpu = <&cpu6>;
50 };
51 core3 {
52 cpu = <&cpu7>;
53 };
54 };
55 };
56
57 cpu0: cpu@0 {
58 compatible = "arm,cortex-a53", "arm,armv8";
59 device_type = "cpu";
60 reg = <0x0 0x0>;
61 enable-method = "psci";
62 };
63
64 cpu1: cpu@1 {
65 compatible = "arm,cortex-a53", "arm,armv8";
66 device_type = "cpu";
67 reg = <0x0 0x1>;
68 enable-method = "psci";
69 };
70
71 cpu2: cpu@2 {
72 compatible = "arm,cortex-a53", "arm,armv8";
73 device_type = "cpu";
74 reg = <0x0 0x2>;
75 enable-method = "psci";
76 };
77
78 cpu3: cpu@3 {
79 compatible = "arm,cortex-a53", "arm,armv8";
80 device_type = "cpu";
81 reg = <0x0 0x3>;
82 enable-method = "psci";
83 };
84
85 cpu4: cpu@100 {
86 compatible = "arm,cortex-a73", "arm,armv8";
87 device_type = "cpu";
88 reg = <0x0 0x100>;
89 enable-method = "psci";
90 };
91
92 cpu5: cpu@101 {
93 compatible = "arm,cortex-a73", "arm,armv8";
94 device_type = "cpu";
95 reg = <0x0 0x101>;
96 enable-method = "psci";
97 };
98
99 cpu6: cpu@102 {
100 compatible = "arm,cortex-a73", "arm,armv8";
101 device_type = "cpu";
102 reg = <0x0 0x102>;
103 enable-method = "psci";
104 };
105
106 cpu7: cpu@103 {
107 compatible = "arm,cortex-a73", "arm,armv8";
108 device_type = "cpu";
109 reg = <0x0 0x103>;
110 enable-method = "psci";
111 };
112 };
113
114 gic: interrupt-controller@e82b0000 {
115 compatible = "arm,gic-400";
116 reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
117 <0x0 0xe82b2000 0 0x2000>, /* GICC */
118 <0x0 0xe82b4000 0 0x2000>, /* GICH */
119 <0x0 0xe82b6000 0 0x2000>; /* GICV */
120 #interrupt-cells = <3>;
121 #address-cells = <0>;
122 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
123 IRQ_TYPE_LEVEL_HIGH)>;
124 interrupt-controller;
125 };
126
127 timer {
128 compatible = "arm,armv8-timer";
129 interrupt-parent = <&gic>;
130 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
131 IRQ_TYPE_LEVEL_LOW)>,
132 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
133 IRQ_TYPE_LEVEL_LOW)>,
134 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
135 IRQ_TYPE_LEVEL_LOW)>,
136 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
137 IRQ_TYPE_LEVEL_LOW)>;
138 clock-frequency = <1920000>;
139 };
140
141 soc {
142 compatible = "simple-bus";
143 #address-cells = <2>;
144 #size-cells = <2>;
145 ranges;
146
147 uart6_clk: clk_19_2M {
148 compatible = "fixed-clock";
149 #clock-cells = <0>;
150 clock-frequency = <19200000>;
151 };
152
153 uart6: serial@fff32000 {
154 compatible = "arm,pl011", "arm,primecell";
155 reg = <0x0 0xfff32000 0x0 0x1000>;
156 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
157 clocks = <&uart6_clk &uart6_clk>;
158 clock-names = "uartclk", "apb_pclk";
159 status = "disabled";
160 };
161 };
162};
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi
index 7afee5d5087b..68c52f1149be 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220-coresight.dtsi
@@ -20,22 +20,18 @@
20 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>; 20 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
21 clock-names = "apb_pclk"; 21 clock-names = "apb_pclk";
22 22
23 ports { 23 out-ports {
24 #address-cells = <1>; 24 port {
25 #size-cells = <0>;
26
27 port@0 {
28 reg = <0>;
29 soc_funnel_out: endpoint { 25 soc_funnel_out: endpoint {
30 remote-endpoint = 26 remote-endpoint =
31 <&etf_in>; 27 <&etf_in>;
32 }; 28 };
33 }; 29 };
30 };
34 31
35 port@1 { 32 in-ports {
36 reg = <0>; 33 port {
37 soc_funnel_in: endpoint { 34 soc_funnel_in: endpoint {
38 slave-mode;
39 remote-endpoint = 35 remote-endpoint =
40 <&acpu_funnel_out>; 36 <&acpu_funnel_out>;
41 }; 37 };
@@ -49,21 +45,17 @@
49 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>; 45 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
50 clock-names = "apb_pclk"; 46 clock-names = "apb_pclk";
51 47
52 ports { 48 in-ports {
53 #address-cells = <1>; 49 port {
54 #size-cells = <0>;
55
56 port@0 {
57 reg = <0>;
58 etf_in: endpoint { 50 etf_in: endpoint {
59 slave-mode;
60 remote-endpoint = 51 remote-endpoint =
61 <&soc_funnel_out>; 52 <&soc_funnel_out>;
62 }; 53 };
63 }; 54 };
55 };
64 56
65 port@1 { 57 out-ports {
66 reg = <0>; 58 port {
67 etf_out: endpoint { 59 etf_out: endpoint {
68 remote-endpoint = 60 remote-endpoint =
69 <&replicator_in>; 61 <&replicator_in>;
@@ -77,20 +69,20 @@
77 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>; 69 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
78 clock-names = "apb_pclk"; 70 clock-names = "apb_pclk";
79 71
80 ports { 72 in-ports {
81 #address-cells = <1>; 73 port {
82 #size-cells = <0>;
83
84 port@0 {
85 reg = <0>;
86 replicator_in: endpoint { 74 replicator_in: endpoint {
87 slave-mode;
88 remote-endpoint = 75 remote-endpoint =
89 <&etf_out>; 76 <&etf_out>;
90 }; 77 };
91 }; 78 };
79 };
92 80
93 port@1 { 81 out-ports {
82 #address-cells = <1>;
83 #size-cells = <0>;
84
85 port@0 {
94 reg = <0>; 86 reg = <0>;
95 replicator_out0: endpoint { 87 replicator_out0: endpoint {
96 remote-endpoint = 88 remote-endpoint =
@@ -98,7 +90,7 @@
98 }; 90 };
99 }; 91 };
100 92
101 port@2 { 93 port@1 {
102 reg = <1>; 94 reg = <1>;
103 replicator_out1: endpoint { 95 replicator_out1: endpoint {
104 remote-endpoint = 96 remote-endpoint =
@@ -114,14 +106,9 @@
114 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>; 106 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
115 clock-names = "apb_pclk"; 107 clock-names = "apb_pclk";
116 108
117 ports { 109 in-ports {
118 #address-cells = <1>; 110 port {
119 #size-cells = <0>;
120
121 port@0 {
122 reg = <0>;
123 etr_in: endpoint { 111 etr_in: endpoint {
124 slave-mode;
125 remote-endpoint = 112 remote-endpoint =
126 <&replicator_out0>; 113 <&replicator_out0>;
127 }; 114 };
@@ -135,14 +122,9 @@
135 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>; 122 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
136 clock-names = "apb_pclk"; 123 clock-names = "apb_pclk";
137 124
138 ports { 125 in-ports {
139 #address-cells = <1>; 126 port {
140 #size-cells = <0>;
141
142 port@0 {
143 reg = <0>;
144 tpiu_in: endpoint { 127 tpiu_in: endpoint {
145 slave-mode;
146 remote-endpoint = 128 remote-endpoint =
147 <&replicator_out1>; 129 <&replicator_out1>;
148 }; 130 };
@@ -156,85 +138,78 @@
156 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>; 138 clocks = <&acpu_sctrl HI6220_ACPU_SFT_AT_S>;
157 clock-names = "apb_pclk"; 139 clock-names = "apb_pclk";
158 140
159 ports { 141 out-ports {
160 #address-cells = <1>; 142 port {
161 #size-cells = <0>;
162
163 port@0 {
164 reg = <0>;
165 acpu_funnel_out: endpoint { 143 acpu_funnel_out: endpoint {
166 remote-endpoint = 144 remote-endpoint =
167 <&soc_funnel_in>; 145 <&soc_funnel_in>;
168 }; 146 };
169 }; 147 };
148 };
170 149
171 port@1 { 150 in-ports {
151 #address-cells = <1>;
152 #size-cells = <0>;
153
154 port@0 {
172 reg = <0>; 155 reg = <0>;
173 acpu_funnel_in0: endpoint { 156 acpu_funnel_in0: endpoint {
174 slave-mode;
175 remote-endpoint = 157 remote-endpoint =
176 <&etm0_out>; 158 <&etm0_out>;
177 }; 159 };
178 }; 160 };
179 161
180 port@2 { 162 port@1 {
181 reg = <1>; 163 reg = <1>;
182 acpu_funnel_in1: endpoint { 164 acpu_funnel_in1: endpoint {
183 slave-mode;
184 remote-endpoint = 165 remote-endpoint =
185 <&etm1_out>; 166 <&etm1_out>;
186 }; 167 };
187 }; 168 };
188 169
189 port@3 { 170 port@2 {
190 reg = <2>; 171 reg = <2>;
191 acpu_funnel_in2: endpoint { 172 acpu_funnel_in2: endpoint {
192 slave-mode;
193 remote-endpoint = 173 remote-endpoint =
194 <&etm2_out>; 174 <&etm2_out>;
195 }; 175 };
196 }; 176 };
197 177
198 port@4 { 178 port@3 {
199 reg = <3>; 179 reg = <3>;
200 acpu_funnel_in3: endpoint { 180 acpu_funnel_in3: endpoint {
201 slave-mode;
202 remote-endpoint = 181 remote-endpoint =
203 <&etm3_out>; 182 <&etm3_out>;
204 }; 183 };
205 }; 184 };
206 185
207 port@5 { 186 port@4 {
208 reg = <4>; 187 reg = <4>;
209 acpu_funnel_in4: endpoint { 188 acpu_funnel_in4: endpoint {
210 slave-mode;
211 remote-endpoint = 189 remote-endpoint =
212 <&etm4_out>; 190 <&etm4_out>;
213 }; 191 };
214 }; 192 };
215 193
216 port@6 { 194 port@5 {
217 reg = <5>; 195 reg = <5>;
218 acpu_funnel_in5: endpoint { 196 acpu_funnel_in5: endpoint {
219 slave-mode;
220 remote-endpoint = 197 remote-endpoint =
221 <&etm5_out>; 198 <&etm5_out>;
222 }; 199 };
223 }; 200 };
224 201
225 port@7 { 202 port@6 {
226 reg = <6>; 203 reg = <6>;
227 acpu_funnel_in6: endpoint { 204 acpu_funnel_in6: endpoint {
228 slave-mode;
229 remote-endpoint = 205 remote-endpoint =
230 <&etm6_out>; 206 <&etm6_out>;
231 }; 207 };
232 }; 208 };
233 209
234 port@8 { 210 port@7 {
235 reg = <7>; 211 reg = <7>;
236 acpu_funnel_in7: endpoint { 212 acpu_funnel_in7: endpoint {
237 slave-mode;
238 remote-endpoint = 213 remote-endpoint =
239 <&etm7_out>; 214 <&etm7_out>;
240 }; 215 };
@@ -251,10 +226,12 @@
251 226
252 cpu = <&cpu0>; 227 cpu = <&cpu0>;
253 228
254 port { 229 out-ports {
255 etm0_out: endpoint { 230 port {
256 remote-endpoint = 231 etm0_out: endpoint {
257 <&acpu_funnel_in0>; 232 remote-endpoint =
233 <&acpu_funnel_in0>;
234 };
258 }; 235 };
259 }; 236 };
260 }; 237 };
@@ -268,10 +245,12 @@
268 245
269 cpu = <&cpu1>; 246 cpu = <&cpu1>;
270 247
271 port { 248 out-ports {
272 etm1_out: endpoint { 249 port {
273 remote-endpoint = 250 etm1_out: endpoint {
274 <&acpu_funnel_in1>; 251 remote-endpoint =
252 <&acpu_funnel_in1>;
253 };
275 }; 254 };
276 }; 255 };
277 }; 256 };
@@ -285,10 +264,12 @@
285 264
286 cpu = <&cpu2>; 265 cpu = <&cpu2>;
287 266
288 port { 267 out-ports {
289 etm2_out: endpoint { 268 port {
290 remote-endpoint = 269 etm2_out: endpoint {
291 <&acpu_funnel_in2>; 270 remote-endpoint =
271 <&acpu_funnel_in2>;
272 };
292 }; 273 };
293 }; 274 };
294 }; 275 };
@@ -302,10 +283,12 @@
302 283
303 cpu = <&cpu3>; 284 cpu = <&cpu3>;
304 285
305 port { 286 out-ports {
306 etm3_out: endpoint { 287 port {
307 remote-endpoint = 288 etm3_out: endpoint {
308 <&acpu_funnel_in3>; 289 remote-endpoint =
290 <&acpu_funnel_in3>;
291 };
309 }; 292 };
310 }; 293 };
311 }; 294 };
@@ -319,10 +302,12 @@
319 302
320 cpu = <&cpu4>; 303 cpu = <&cpu4>;
321 304
322 port { 305 out-ports {
323 etm4_out: endpoint { 306 port {
324 remote-endpoint = 307 etm4_out: endpoint {
325 <&acpu_funnel_in4>; 308 remote-endpoint =
309 <&acpu_funnel_in4>;
310 };
326 }; 311 };
327 }; 312 };
328 }; 313 };
@@ -336,10 +321,12 @@
336 321
337 cpu = <&cpu5>; 322 cpu = <&cpu5>;
338 323
339 port { 324 out-ports {
340 etm5_out: endpoint { 325 port {
341 remote-endpoint = 326 etm5_out: endpoint {
342 <&acpu_funnel_in5>; 327 remote-endpoint =
328 <&acpu_funnel_in5>;
329 };
343 }; 330 };
344 }; 331 };
345 }; 332 };
@@ -353,10 +340,12 @@
353 340
354 cpu = <&cpu6>; 341 cpu = <&cpu6>;
355 342
356 port { 343 out-ports {
357 etm6_out: endpoint { 344 port {
358 remote-endpoint = 345 etm6_out: endpoint {
359 <&acpu_funnel_in6>; 346 remote-endpoint =
347 <&acpu_funnel_in6>;
348 };
360 }; 349 };
361 }; 350 };
362 }; 351 };
@@ -370,10 +359,12 @@
370 359
371 cpu = <&cpu7>; 360 cpu = <&cpu7>;
372 361
373 port { 362 out-ports {
374 etm7_out: endpoint { 363 port {
375 remote-endpoint = 364 etm7_out: endpoint {
376 <&acpu_funnel_in7>; 365 remote-endpoint =
366 <&acpu_funnel_in7>;
367 };
377 }; 368 };
378 }; 369 };
379 }; 370 };
diff --git a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
index 247024df714f..97d5bf2c6ec5 100644
--- a/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
+++ b/arch/arm64/boot/dts/hisilicon/hi6220.dtsi
@@ -99,6 +99,7 @@
99 reg = <0x0 0x1>; 99 reg = <0x0 0x1>;
100 enable-method = "psci"; 100 enable-method = "psci";
101 next-level-cache = <&CLUSTER0_L2>; 101 next-level-cache = <&CLUSTER0_L2>;
102 clocks = <&stub_clock 0>;
102 operating-points-v2 = <&cpu_opp_table>; 103 operating-points-v2 = <&cpu_opp_table>;
103 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 104 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
104 #cooling-cells = <2>; /* min followed by max */ 105 #cooling-cells = <2>; /* min followed by max */
@@ -111,6 +112,7 @@
111 reg = <0x0 0x2>; 112 reg = <0x0 0x2>;
112 enable-method = "psci"; 113 enable-method = "psci";
113 next-level-cache = <&CLUSTER0_L2>; 114 next-level-cache = <&CLUSTER0_L2>;
115 clocks = <&stub_clock 0>;
114 operating-points-v2 = <&cpu_opp_table>; 116 operating-points-v2 = <&cpu_opp_table>;
115 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 117 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
116 #cooling-cells = <2>; /* min followed by max */ 118 #cooling-cells = <2>; /* min followed by max */
@@ -123,6 +125,7 @@
123 reg = <0x0 0x3>; 125 reg = <0x0 0x3>;
124 enable-method = "psci"; 126 enable-method = "psci";
125 next-level-cache = <&CLUSTER0_L2>; 127 next-level-cache = <&CLUSTER0_L2>;
128 clocks = <&stub_clock 0>;
126 operating-points-v2 = <&cpu_opp_table>; 129 operating-points-v2 = <&cpu_opp_table>;
127 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 130 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
128 #cooling-cells = <2>; /* min followed by max */ 131 #cooling-cells = <2>; /* min followed by max */
@@ -135,6 +138,7 @@
135 reg = <0x0 0x100>; 138 reg = <0x0 0x100>;
136 enable-method = "psci"; 139 enable-method = "psci";
137 next-level-cache = <&CLUSTER1_L2>; 140 next-level-cache = <&CLUSTER1_L2>;
141 clocks = <&stub_clock 0>;
138 operating-points-v2 = <&cpu_opp_table>; 142 operating-points-v2 = <&cpu_opp_table>;
139 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 143 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
140 #cooling-cells = <2>; /* min followed by max */ 144 #cooling-cells = <2>; /* min followed by max */
@@ -147,6 +151,7 @@
147 reg = <0x0 0x101>; 151 reg = <0x0 0x101>;
148 enable-method = "psci"; 152 enable-method = "psci";
149 next-level-cache = <&CLUSTER1_L2>; 153 next-level-cache = <&CLUSTER1_L2>;
154 clocks = <&stub_clock 0>;
150 operating-points-v2 = <&cpu_opp_table>; 155 operating-points-v2 = <&cpu_opp_table>;
151 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 156 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
152 #cooling-cells = <2>; /* min followed by max */ 157 #cooling-cells = <2>; /* min followed by max */
@@ -159,6 +164,7 @@
159 reg = <0x0 0x102>; 164 reg = <0x0 0x102>;
160 enable-method = "psci"; 165 enable-method = "psci";
161 next-level-cache = <&CLUSTER1_L2>; 166 next-level-cache = <&CLUSTER1_L2>;
167 clocks = <&stub_clock 0>;
162 operating-points-v2 = <&cpu_opp_table>; 168 operating-points-v2 = <&cpu_opp_table>;
163 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 169 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
164 #cooling-cells = <2>; /* min followed by max */ 170 #cooling-cells = <2>; /* min followed by max */
@@ -171,6 +177,7 @@
171 reg = <0x0 0x103>; 177 reg = <0x0 0x103>;
172 enable-method = "psci"; 178 enable-method = "psci";
173 next-level-cache = <&CLUSTER1_L2>; 179 next-level-cache = <&CLUSTER1_L2>;
180 clocks = <&stub_clock 0>;
174 operating-points-v2 = <&cpu_opp_table>; 181 operating-points-v2 = <&cpu_opp_table>;
175 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>; 182 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
176 #cooling-cells = <2>; /* min followed by max */ 183 #cooling-cells = <2>; /* min followed by max */
diff --git a/arch/arm64/boot/dts/lg/lg1312.dtsi b/arch/arm64/boot/dts/lg/lg1312.dtsi
index 860c8fb10795..4bde7b6f2b11 100644
--- a/arch/arm64/boot/dts/lg/lg1312.dtsi
+++ b/arch/arm64/boot/dts/lg/lg1312.dtsi
@@ -168,14 +168,14 @@
168 clock-names = "apb_pclk"; 168 clock-names = "apb_pclk";
169 status="disabled"; 169 status="disabled";
170 }; 170 };
171 spi0: ssp@fe800000 { 171 spi0: spi@fe800000 {
172 compatible = "arm,pl022", "arm,primecell"; 172 compatible = "arm,pl022", "arm,primecell";
173 reg = <0x0 0xfe800000 0x1000>; 173 reg = <0x0 0xfe800000 0x1000>;
174 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 174 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
175 clocks = <&clk_bus>; 175 clocks = <&clk_bus>;
176 clock-names = "apb_pclk"; 176 clock-names = "apb_pclk";
177 }; 177 };
178 spi1: ssp@fe900000 { 178 spi1: spi@fe900000 {
179 compatible = "arm,pl022", "arm,primecell"; 179 compatible = "arm,pl022", "arm,primecell";
180 reg = <0x0 0xfe900000 0x1000>; 180 reg = <0x0 0xfe900000 0x1000>;
181 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 181 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/lg/lg1313.dtsi b/arch/arm64/boot/dts/lg/lg1313.dtsi
index 1887af654a7d..16ced1ff1ad3 100644
--- a/arch/arm64/boot/dts/lg/lg1313.dtsi
+++ b/arch/arm64/boot/dts/lg/lg1313.dtsi
@@ -168,14 +168,14 @@
168 clock-names = "apb_pclk"; 168 clock-names = "apb_pclk";
169 status="disabled"; 169 status="disabled";
170 }; 170 };
171 spi0: ssp@fe800000 { 171 spi0: spi@fe800000 {
172 compatible = "arm,pl022", "arm,primecell"; 172 compatible = "arm,pl022", "arm,primecell";
173 reg = <0x0 0xfe800000 0x1000>; 173 reg = <0x0 0xfe800000 0x1000>;
174 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>; 174 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
175 clocks = <&clk_bus>; 175 clocks = <&clk_bus>;
176 clock-names = "apb_pclk"; 176 clock-names = "apb_pclk";
177 }; 177 };
178 spi1: ssp@fe900000 { 178 spi1: spi@fe900000 {
179 compatible = "arm,pl022", "arm,primecell"; 179 compatible = "arm,pl022", "arm,primecell";
180 reg = <0x0 0xfe900000 0x1000>; 180 reg = <0x0 0xfe900000 0x1000>;
181 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; 181 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/arch/arm64/boot/dts/marvell/Makefile b/arch/arm64/boot/dts/marvell/Makefile
index ea9d49f2a911..eca8bac6303a 100644
--- a/arch/arm64/boot/dts/marvell/Makefile
+++ b/arch/arm64/boot/dts/marvell/Makefile
@@ -3,6 +3,7 @@
3dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb 3dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-db.dtb
4dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb 4dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
5dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb 5dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
6dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-clearfog-gt-8k.dtb
6dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb 7dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
7dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb 8dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb
8dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb 9dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb
diff --git a/arch/arm64/boot/dts/marvell/armada-372x.dtsi b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
index 97558a64e276..6800945a88ad 100644
--- a/arch/arm64/boot/dts/marvell/armada-372x.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-372x.dtsi
@@ -16,7 +16,7 @@
16 compatible = "marvell,armada3720", "marvell,armada3710"; 16 compatible = "marvell,armada3720", "marvell,armada3710";
17 17
18 cpus { 18 cpus {
19 cpu@1 { 19 cpu1: cpu@1 {
20 device_type = "cpu"; 20 device_type = "cpu";
21 compatible = "arm,cortex-a53","arm,armv8"; 21 compatible = "arm,cortex-a53","arm,armv8";
22 reg = <0x1>; 22 reg = <0x1>;
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index d9531e242eb4..4472bcd8f9fb 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -40,7 +40,7 @@
40 cpus { 40 cpus {
41 #address-cells = <1>; 41 #address-cells = <1>;
42 #size-cells = <0>; 42 #size-cells = <0>;
43 cpu@0 { 43 cpu0: cpu@0 {
44 device_type = "cpu"; 44 device_type = "cpu";
45 compatible = "arm,cortex-a53", "arm,armv8"; 45 compatible = "arm,cortex-a53", "arm,armv8";
46 reg = <0>; 46 reg = <0>;
@@ -80,6 +80,19 @@
80 /* 32M internal register @ 0xd000_0000 */ 80 /* 32M internal register @ 0xd000_0000 */
81 ranges = <0x0 0x0 0xd0000000 0x2000000>; 81 ranges = <0x0 0x0 0xd0000000 0x2000000>;
82 82
83 wdt: watchdog@8300 {
84 compatible = "marvell,armada-3700-wdt";
85 reg = <0x8300 0x40>;
86 marvell,system-controller = <&cpu_misc>;
87 clocks = <&xtalclk>;
88 };
89
90 cpu_misc: system-controller@d000 {
91 compatible = "marvell,armada-3700-cpu-misc",
92 "syscon";
93 reg = <0xd000 0x1000>;
94 };
95
83 spi0: spi@10600 { 96 spi0: spi@10600 {
84 compatible = "marvell,armada-3700-spi"; 97 compatible = "marvell,armada-3700-spi";
85 #address-cells = <1>; 98 #address-cells = <1>;
diff --git a/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts b/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
new file mode 100644
index 000000000000..9473d40a292a
--- /dev/null
+++ b/arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
@@ -0,0 +1,441 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2018 SolidRun ltd.
4 * Based on Marvell MACCHIATOBin board
5 *
6 * Device Tree file for SolidRun's ClearFog GT 8K
7 */
8
9#include "armada-8040.dtsi"
10
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/gpio/gpio.h>
13
14/ {
15 model = "SolidRun ClearFog GT 8K";
16 compatible = "solidrun,clearfog-gt-8k", "marvell,armada8040",
17 "marvell,armada-ap806-quad", "marvell,armada-ap806";
18
19 chosen {
20 stdout-path = "serial0:115200n8";
21 };
22
23 memory@00000000 {
24 device_type = "memory";
25 reg = <0x0 0x0 0x0 0x80000000>;
26 };
27
28 aliases {
29 ethernet0 = &cp1_eth1;
30 ethernet1 = &cp0_eth0;
31 ethernet2 = &cp1_eth2;
32 };
33
34 v_3_3: regulator-3-3v {
35 compatible = "regulator-fixed";
36 regulator-name = "v_3_3";
37 regulator-min-microvolt = <3300000>;
38 regulator-max-microvolt = <3300000>;
39 regulator-always-on;
40 status = "okay";
41 };
42
43 v_5v0_usb3_hst_vbus: regulator-usb3-vbus0 {
44 compatible = "regulator-fixed";
45 gpio = <&cp0_gpio2 15 GPIO_ACTIVE_HIGH>;
46 pinctrl-names = "default";
47 pinctrl-0 = <&cp0_xhci_vbus_pins>;
48 regulator-name = "v_5v0_usb3_hst_vbus";
49 regulator-min-microvolt = <5000000>;
50 regulator-max-microvolt = <5000000>;
51 status = "okay";
52 };
53
54 usb3h0_phy: usb3_phy0 {
55 compatible = "usb-nop-xceiv";
56 vcc-supply = <&v_5v0_usb3_hst_vbus>;
57 };
58
59 sfp_cp0_eth0: sfp-cp0-eth0 {
60 compatible = "sff,sfp";
61 i2c-bus = <&cp0_i2c1>;
62 mod-def0-gpio = <&cp0_gpio2 17 GPIO_ACTIVE_LOW>;
63 tx-disable-gpio = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
64 pinctrl-names = "default";
65 pinctrl-0 = <&cp0_sfp_present_pins &cp1_sfp_tx_disable_pins>;
66 };
67
68 leds {
69 compatible = "gpio-leds";
70 pinctrl-0 = <&cp0_led0_pins
71 &cp0_led1_pins>;
72 pinctrl-names = "default";
73 /* No designated function for these LEDs at the moment */
74 led0 {
75 label = "clearfog-gt-8k:green:led0";
76 gpios = <&cp0_gpio2 8 GPIO_ACTIVE_LOW>;
77 default-state = "on";
78 };
79 led1 {
80 label = "clearfog-gt-8k:green:led1";
81 gpios = <&cp0_gpio2 9 GPIO_ACTIVE_LOW>;
82 default-state = "on";
83 };
84 };
85
86 keys {
87 compatible = "gpio-keys";
88 pinctrl-0 = <&cp0_gpio_reset_pins &cp1_wps_button_pins>;
89 pinctrl-names = "default";
90
91 button_0 {
92 /* The rear button */
93 label = "Rear Button";
94 gpios = <&cp0_gpio2 7 GPIO_ACTIVE_LOW>;
95 linux,can-disable;
96 linux,code = <BTN_0>;
97 };
98
99 button_1 {
100 /* The wps button */
101 label = "WPS Button";
102 gpios = <&cp1_gpio1 30 GPIO_ACTIVE_LOW>;
103 linux,can-disable;
104 linux,code = <KEY_WPS_BUTTON>;
105 };
106 };
107};
108
109&uart0 {
110 status = "okay";
111 pinctrl-0 = <&uart0_pins>;
112 pinctrl-names = "default";
113};
114
115&ap_sdhci0 {
116 bus-width = <8>;
117 no-1-8-v;
118 no-sd;
119 no-sdio;
120 non-removable;
121 status = "okay";
122 vqmmc-supply = <&v_3_3>;
123};
124
125&cp0_i2c0 {
126 clock-frequency = <100000>;
127 pinctrl-names = "default";
128 pinctrl-0 = <&cp0_i2c0_pins>;
129 status = "okay";
130};
131
132&cp0_i2c1 {
133 clock-frequency = <100000>;
134 pinctrl-names = "default";
135 pinctrl-0 = <&cp0_i2c1_pins>;
136 status = "okay";
137};
138
139&cp0_pinctrl {
140 /*
141 * MPP Bus:
142 * [0-31] = 0xff: Keep default CP0_shared_pins:
143 * [11] CLKOUT_MPP_11 (out)
144 * [23] LINK_RD_IN_CP2CP (in)
145 * [25] CLKOUT_MPP_25 (out)
146 * [29] AVS_FB_IN_CP2CP (in)
147 * [32, 33, 34] pci0/1/2 reset
148 * [35-38] CP0 I2C1 and I2C0
149 * [39] GPIO reset button
150 * [40,41] LED0 and LED1
151 * [43] 1512 phy reset
152 * [47] USB VBUS EN (active low)
153 * [48] FAN PWM
154 * [49] SFP+ present signal
155 * [50] TPM interrupt
156 * [51] WLAN0 disable
157 * [52] WLAN1 disable
158 * [53] LTE disable
159 * [54] NFC reset
160 * [55] Micro SD card detect
161 * [56-61] Micro SD
162 */
163
164 cp0_pci0_reset_pins: pci0-reset-pins {
165 marvell,pins = "mpp32";
166 marvell,function = "gpio";
167 };
168
169 cp0_pci1_reset_pins: pci1-reset-pins {
170 marvell,pins = "mpp33";
171 marvell,function = "gpio";
172 };
173
174 cp0_pci2_reset_pins: pci2-reset-pins {
175 marvell,pins = "mpp34";
176 marvell,function = "gpio";
177 };
178
179 cp0_i2c1_pins: i2c1-pins {
180 marvell,pins = "mpp35", "mpp36";
181 marvell,function = "i2c1";
182 };
183
184 cp0_i2c0_pins: i2c0-pins {
185 marvell,pins = "mpp37", "mpp38";
186 marvell,function = "i2c0";
187 };
188
189 cp0_gpio_reset_pins: gpio-reset-pins {
190 marvell,pins = "mpp39";
191 marvell,function = "gpio";
192 };
193
194 cp0_led0_pins: led0-pins {
195 marvell,pins = "mpp40";
196 marvell,function = "gpio";
197 };
198
199 cp0_led1_pins: led1-pins {
200 marvell,pins = "mpp41";
201 marvell,function = "gpio";
202 };
203
204 cp0_copper_eth_phy_reset: copper-eth-phy-reset {
205 marvell,pins = "mpp43";
206 marvell,function = "gpio";
207 };
208
209 cp0_xhci_vbus_pins: xhci0-vbus-pins {
210 marvell,pins = "mpp47";
211 marvell,function = "gpio";
212 };
213
214 cp0_fan_pwm_pins: fan-pwm-pins {
215 marvell,pins = "mpp48";
216 marvell,function = "gpio";
217 };
218
219 cp0_sfp_present_pins: sfp-present-pins {
220 marvell,pins = "mpp49";
221 marvell,function = "gpio";
222 };
223
224 cp0_tpm_irq_pins: tpm-irq-pins {
225 marvell,pins = "mpp50";
226 marvell,function = "gpio";
227 };
228
229 cp0_sdhci_pins: sdhci-pins {
230 marvell,pins = "mpp55", "mpp56", "mpp57", "mpp58", "mpp59",
231 "mpp60", "mpp61";
232 marvell,function = "sdio";
233 };
234};
235
236&cp0_pcie0 {
237 pinctrl-names = "default";
238 pinctrl-0 = <&cp0_pci0_reset_pins>;
239 reset-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
240 status = "okay";
241};
242
243&cp0_gpio2 {
244 sata_reset {
245 gpio-hog;
246 gpios = <1 GPIO_ACTIVE_HIGH>;
247 output-high;
248 };
249};
250
251&cp0_ethernet {
252 status = "okay";
253};
254
255/* SFP */
256&cp0_eth0 {
257 status = "okay";
258 phy-mode = "10gbase-kr";
259 managed = "in-band-status";
260 phys = <&cp0_comphy2 0>;
261 sfp = <&sfp_cp0_eth0>;
262};
263
264&cp0_sdhci0 {
265 broken-cd;
266 bus-width = <4>;
267 pinctrl-names = "default";
268 pinctrl-0 = <&cp0_sdhci_pins>;
269 status = "okay";
270 vqmmc-supply = <&v_3_3>;
271};
272
273&cp1_pinctrl {
274 /*
275 * MPP Bus:
276 * [0-5] TDM
277 * [6] VHV Enable
278 * [7] CP1 SPI0 CSn1 (FXS)
279 * [8] CP1 SPI0 CSn0 (TPM)
280 * [9.11]CP1 SPI0 MOSI/MISO/CLK
281 * [13] CP1 SPI1 MISO (TDM and SPI ROM shared)
282 * [14] CP1 SPI1 CS0n (64Mb SPI ROM)
283 * [15] CP1 SPI1 MOSI (TDM and SPI ROM shared)
284 * [16] CP1 SPI1 CLK (TDM and SPI ROM shared)
285 * [24] Topaz switch reset
286 * [26] Buzzer
287 * [27] CP1 SMI MDIO
288 * [28] CP1 SMI MDC
289 * [29] CP0 10G SFP TX Disable
290 * [30] WPS button
291 * [31] Front panel button
292 */
293
294 cp1_spi1_pins: spi1-pins {
295 marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
296 marvell,function = "spi1";
297 };
298
299 cp1_switch_reset_pins: switch-reset-pins {
300 marvell,pins = "mpp24";
301 marvell,function = "gpio";
302 };
303
304 cp1_ge_mdio_pins: ge-mdio-pins {
305 marvell,pins = "mpp27", "mpp28";
306 marvell,function = "ge";
307 };
308
309 cp1_sfp_tx_disable_pins: sfp-tx-disable-pins {
310 marvell,pins = "mpp29";
311 marvell,function = "gpio";
312 };
313
314 cp1_wps_button_pins: wps-button-pins {
315 marvell,pins = "mpp30";
316 marvell,function = "gpio";
317 };
318};
319
320&cp1_sata0 {
321 pinctrl-0 = <&cp0_pci1_reset_pins>;
322 status = "okay";
323};
324
325&cp1_mdio {
326 pinctrl-names = "default";
327 pinctrl-0 = <&cp1_ge_mdio_pins>;
328 status = "okay";
329
330 ge_phy: ethernet-phy@0 {
331 /* LED0 - GB link
332 * LED1 - on: link, blink: activity
333 */
334 marvell,reg-init = <3 16 0 0x1017>;
335 reg = <0>;
336 };
337
338 switch0: switch0@4 {
339 compatible = "marvell,mv88e6085";
340 reg = <4>;
341 pinctrl-names = "default";
342 pinctrl-0 = <&cp1_switch_reset_pins>;
343 reset-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_LOW>;
344
345 ports {
346 #address-cells = <1>;
347 #size-cells = <0>;
348
349 port@1 {
350 reg = <1>;
351 label = "lan2";
352 phy-handle = <&switch0phy0>;
353 };
354
355 port@2 {
356 reg = <2>;
357 label = "lan1";
358 phy-handle = <&switch0phy1>;
359 };
360
361 port@3 {
362 reg = <3>;
363 label = "lan4";
364 phy-handle = <&switch0phy2>;
365 };
366
367 port@4 {
368 reg = <4>;
369 label = "lan3";
370 phy-handle = <&switch0phy3>;
371 };
372
373 port@5 {
374 reg = <5>;
375 label = "cpu";
376 ethernet = <&cp1_eth2>;
377 };
378 };
379
380 mdio {
381 #address-cells = <1>;
382 #size-cells = <0>;
383
384 switch0phy0: switch0phy0@11 {
385 reg = <0x11>;
386 };
387
388 switch0phy1: switch0phy1@12 {
389 reg = <0x12>;
390 };
391
392 switch0phy2: switch0phy2@13 {
393 reg = <0x13>;
394 };
395
396 switch0phy3: switch0phy3@14 {
397 reg = <0x14>;
398 };
399 };
400 };
401};
402
403&cp1_ethernet {
404 status = "okay";
405};
406
407/* 1G copper */
408&cp1_eth1 {
409 status = "okay";
410 phy-mode = "sgmii";
411 phy = <&ge_phy>;
412 phys = <&cp1_comphy3 1>;
413};
414
415/* Switch uplink */
416&cp1_eth2 {
417 status = "okay";
418 phy-mode = "2500base-x";
419 phys = <&cp1_comphy5 2>;
420 fixed-link {
421 speed = <2500>;
422 full-duplex;
423 };
424};
425
426&cp1_spi1 {
427 pinctrl-names = "default";
428 pinctrl-0 = <&cp1_spi1_pins>;
429 status = "okay";
430
431 spi-flash@0 {
432 compatible = "st,w25q32";
433 spi-max-frequency = <50000000>;
434 reg = <0>;
435 };
436};
437
438&cp1_usb3_0 {
439 usb-phy = <&usb3h0_phy>;
440 status = "okay";
441};
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
index 64b5e61a698e..d3c0636558ff 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-dual.dtsi
@@ -15,13 +15,13 @@
15 #address-cells = <1>; 15 #address-cells = <1>;
16 #size-cells = <0>; 16 #size-cells = <0>;
17 17
18 cpu@0 { 18 cpu0: cpu@0 {
19 device_type = "cpu"; 19 device_type = "cpu";
20 compatible = "arm,cortex-a72", "arm,armv8"; 20 compatible = "arm,cortex-a72", "arm,armv8";
21 reg = <0x000>; 21 reg = <0x000>;
22 enable-method = "psci"; 22 enable-method = "psci";
23 }; 23 };
24 cpu@1 { 24 cpu1: cpu@1 {
25 device_type = "cpu"; 25 device_type = "cpu";
26 compatible = "arm,cortex-a72", "arm,armv8"; 26 compatible = "arm,cortex-a72", "arm,armv8";
27 reg = <0x001>; 27 reg = <0x001>;
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
index 746e792767f5..64632c873888 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806-quad.dtsi
@@ -15,29 +15,33 @@
15 #address-cells = <1>; 15 #address-cells = <1>;
16 #size-cells = <0>; 16 #size-cells = <0>;
17 17
18 cpu@0 { 18 cpu0: cpu@0 {
19 device_type = "cpu"; 19 device_type = "cpu";
20 compatible = "arm,cortex-a72", "arm,armv8"; 20 compatible = "arm,cortex-a72", "arm,armv8";
21 reg = <0x000>; 21 reg = <0x000>;
22 enable-method = "psci"; 22 enable-method = "psci";
23 cpu-idle-states = <&CPU_SLEEP_0>;
23 }; 24 };
24 cpu@1 { 25 cpu1: cpu@1 {
25 device_type = "cpu"; 26 device_type = "cpu";
26 compatible = "arm,cortex-a72", "arm,armv8"; 27 compatible = "arm,cortex-a72", "arm,armv8";
27 reg = <0x001>; 28 reg = <0x001>;
28 enable-method = "psci"; 29 enable-method = "psci";
30 cpu-idle-states = <&CPU_SLEEP_0>;
29 }; 31 };
30 cpu@100 { 32 cpu2: cpu@100 {
31 device_type = "cpu"; 33 device_type = "cpu";
32 compatible = "arm,cortex-a72", "arm,armv8"; 34 compatible = "arm,cortex-a72", "arm,armv8";
33 reg = <0x100>; 35 reg = <0x100>;
34 enable-method = "psci"; 36 enable-method = "psci";
37 cpu-idle-states = <&CPU_SLEEP_0>;
35 }; 38 };
36 cpu@101 { 39 cpu3: cpu@101 {
37 device_type = "cpu"; 40 device_type = "cpu";
38 compatible = "arm,cortex-a72", "arm,armv8"; 41 compatible = "arm,cortex-a72", "arm,armv8";
39 reg = <0x101>; 42 reg = <0x101>;
40 enable-method = "psci"; 43 enable-method = "psci";
44 cpu-idle-states = <&CPU_SLEEP_0>;
41 }; 45 };
42 }; 46 };
43}; 47};
diff --git a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
index 176e38d54872..073610ac0a53 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap806.dtsi
@@ -6,6 +6,7 @@
6 */ 6 */
7 7
8#include <dt-bindings/interrupt-controller/arm-gic.h> 8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/thermal/thermal.h>
9 10
10/dts-v1/; 11/dts-v1/;
11 12
@@ -27,6 +28,33 @@
27 method = "smc"; 28 method = "smc";
28 }; 29 };
29 30
31 cpus {
32 #address-cells = <1>;
33 #size-cells = <0>;
34
35 idle_states {
36 entry_method = "arm,pcsi";
37
38 CPU_SLEEP_0: cpu-sleep-0 {
39 compatible = "arm,idle-state";
40 local-timer-stop;
41 arm,psci-suspend-param = <0x0010000>;
42 entry-latency-us = <80>;
43 exit-latency-us = <160>;
44 min-residency-us = <320>;
45 };
46
47 CLUSTER_SLEEP_0: cluster-sleep-0 {
48 compatible = "arm,idle-state";
49 local-timer-stop;
50 arm,psci-suspend-param = <0x1010000>;
51 entry-latency-us = <500>;
52 exit-latency-us = <1000>;
53 min-residency-us = <2500>;
54 };
55 };
56 };
57
30 ap806 { 58 ap806 {
31 #address-cells = <2>; 59 #address-cells = <2>;
32 #size-cells = <2>; 60 #size-cells = <2>;
@@ -124,6 +152,15 @@
124 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 152 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
125 }; 153 };
126 154
155 sei: interrupt-controller@3f0200 {
156 compatible = "marvell,ap806-sei";
157 reg = <0x3f0200 0x40>;
158 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
159 #interrupt-cells = <1>;
160 interrupt-controller;
161 msi-controller;
162 };
163
127 xor@400000 { 164 xor@400000 {
128 compatible = "marvell,armada-7k-xor", "marvell,xor-v2"; 165 compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
129 reg = <0x400000 0x1000>, 166 reg = <0x400000 0x1000>,
@@ -247,11 +284,76 @@
247 }; 284 };
248 }; 285 };
249 286
250 ap_thermal: thermal@6f808c { 287 ap_syscon1: system-controller@6f8000 {
251 compatible = "marvell,armada-ap806-thermal"; 288 compatible = "syscon", "simple-mfd";
252 reg = <0x6f808c 0x4>, 289 reg = <0x6f8000 0x1000>;
253 <0x6f8084 0x8>; 290 #address-cells = <1>;
291 #size-cells = <1>;
292
293 ap_thermal: thermal-sensor@80 {
294 compatible = "marvell,armada-ap806-thermal";
295 reg = <0x80 0x10>;
296 #thermal-sensor-cells = <1>;
297 };
254 }; 298 };
255 }; 299 };
256 }; 300 };
301
302 /*
303 * The thermal IP features one internal sensor plus, if applicable, one
304 * remote channel wired to one sensor per CPU.
305 *
306 * The cooling maps are always empty as there are no cooling devices.
307 */
308 thermal-zones {
309 ap_thermal_ic: ap-thermal-ic {
310 polling-delay-passive = <1000>;
311 polling-delay = <1000>;
312
313 thermal-sensors = <&ap_thermal 0>;
314
315 trips { };
316 cooling-maps { };
317 };
318
319 ap_thermal_cpu1: ap-thermal-cpu1 {
320 polling-delay-passive = <1000>;
321 polling-delay = <1000>;
322
323 thermal-sensors = <&ap_thermal 1>;
324
325 trips { };
326 cooling-maps { };
327 };
328
329 ap_thermal_cpu2: ap-thermal-cpu2 {
330 polling-delay-passive = <1000>;
331 polling-delay = <1000>;
332
333 thermal-sensors = <&ap_thermal 2>;
334
335 trips { };
336 cooling-maps { };
337 };
338
339 ap_thermal_cpu3: ap-thermal-cpu3 {
340 polling-delay-passive = <1000>;
341 polling-delay = <1000>;
342
343 thermal-sensors = <&ap_thermal 3>;
344
345 trips { };
346 cooling-maps { };
347 };
348
349 ap_thermal_cpu4: ap-thermal-cpu4 {
350 polling-delay-passive = <1000>;
351 polling-delay = <1000>;
352
353 thermal-sensors = <&ap_thermal 4>;
354
355 trips { };
356 cooling-maps { };
357 };
358 };
257}; 359};
diff --git a/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi b/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
index 7d00ae78fc79..b788cb63caf2 100644
--- a/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi
@@ -13,49 +13,49 @@
13 #size-cells = <0>; 13 #size-cells = <0>;
14 compatible = "marvell,armada-ap810-octa"; 14 compatible = "marvell,armada-ap810-octa";
15 15
16 cpu@0 { 16 cpu0: cpu@0 {
17 device_type = "cpu"; 17 device_type = "cpu";
18 compatible = "arm,cortex-a72", "arm,armv8"; 18 compatible = "arm,cortex-a72", "arm,armv8";
19 reg = <0x000>; 19 reg = <0x000>;
20 enable-method = "psci"; 20 enable-method = "psci";
21 }; 21 };
22 cpu@1 { 22 cpu1: cpu@1 {
23 device_type = "cpu"; 23 device_type = "cpu";
24 compatible = "arm,cortex-a72", "arm,armv8"; 24 compatible = "arm,cortex-a72", "arm,armv8";
25 reg = <0x001>; 25 reg = <0x001>;
26 enable-method = "psci"; 26 enable-method = "psci";
27 }; 27 };
28 cpu@100 { 28 cpu2: cpu@100 {
29 device_type = "cpu"; 29 device_type = "cpu";
30 compatible = "arm,cortex-a72", "arm,armv8"; 30 compatible = "arm,cortex-a72", "arm,armv8";
31 reg = <0x100>; 31 reg = <0x100>;
32 enable-method = "psci"; 32 enable-method = "psci";
33 }; 33 };
34 cpu@101 { 34 cpu3: cpu@101 {
35 device_type = "cpu"; 35 device_type = "cpu";
36 compatible = "arm,cortex-a72", "arm,armv8"; 36 compatible = "arm,cortex-a72", "arm,armv8";
37 reg = <0x101>; 37 reg = <0x101>;
38 enable-method = "psci"; 38 enable-method = "psci";
39 }; 39 };
40 cpu@200 { 40 cpu4: cpu@200 {
41 device_type = "cpu"; 41 device_type = "cpu";
42 compatible = "arm,cortex-a72", "arm,armv8"; 42 compatible = "arm,cortex-a72", "arm,armv8";
43 reg = <0x200>; 43 reg = <0x200>;
44 enable-method = "psci"; 44 enable-method = "psci";
45 }; 45 };
46 cpu@201 { 46 cpu5: cpu@201 {
47 device_type = "cpu"; 47 device_type = "cpu";
48 compatible = "arm,cortex-a72", "arm,armv8"; 48 compatible = "arm,cortex-a72", "arm,armv8";
49 reg = <0x201>; 49 reg = <0x201>;
50 enable-method = "psci"; 50 enable-method = "psci";
51 }; 51 };
52 cpu@300 { 52 cpu6: cpu@300 {
53 device_type = "cpu"; 53 device_type = "cpu";
54 compatible = "arm,cortex-a72", "arm,armv8"; 54 compatible = "arm,cortex-a72", "arm,armv8";
55 reg = <0x300>; 55 reg = <0x300>;
56 enable-method = "psci"; 56 enable-method = "psci";
57 }; 57 };
58 cpu@301 { 58 cpu7: cpu@301 {
59 device_type = "cpu"; 59 device_type = "cpu";
60 compatible = "arm,cortex-a72", "arm,armv8"; 60 compatible = "arm,cortex-a72", "arm,armv8";
61 reg = <0x301>; 61 reg = <0x301>;
diff --git a/arch/arm64/boot/dts/marvell/armada-common.dtsi b/arch/arm64/boot/dts/marvell/armada-common.dtsi
index d5e8aedec188..b29c6405d214 100644
--- a/arch/arm64/boot/dts/marvell/armada-common.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-common.dtsi
@@ -7,4 +7,5 @@
7#define PASTER(x, y) x ## y 7#define PASTER(x, y) x ## y
8#define EVALUATOR(x, y) PASTER(x, y) 8#define EVALUATOR(x, y) PASTER(x, y)
9#define CP110_LABEL(name) EVALUATOR(CP110_NAME, EVALUATOR(_, name)) 9#define CP110_LABEL(name) EVALUATOR(CP110_NAME, EVALUATOR(_, name))
10#define CP110_NODE_NAME(name) EVALUATOR(CP110_NAME, EVALUATOR(-, name))
10#define ADDRESSIFY(addr) EVALUATOR(0x, addr) 11#define ADDRESSIFY(addr) EVALUATOR(0x, addr)
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
index 840c8454d03e..b9d9f31e3ba1 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110.dtsi
@@ -6,6 +6,7 @@
6 */ 6 */
7 7
8#include <dt-bindings/interrupt-controller/mvebu-icu.h> 8#include <dt-bindings/interrupt-controller/mvebu-icu.h>
9#include <dt-bindings/thermal/thermal.h>
9 10
10#include "armada-common.dtsi" 11#include "armada-common.dtsi"
11 12
@@ -19,13 +20,30 @@
19 * save one indentation level 20 * save one indentation level
20 */ 21 */
21 CP110_NAME: CP110_NAME { }; 22 CP110_NAME: CP110_NAME { };
23
24 /*
25 * CPs only have one sensor in the thermal IC.
26 *
27 * The cooling maps are empty as there are no cooling devices.
28 */
29 thermal-zones {
30 CP110_LABEL(thermal_ic): CP110_NODE_NAME(thermal-ic) {
31 polling-delay-passive = <1000>;
32 polling-delay = <1000>;
33
34 thermal-sensors = <&CP110_LABEL(thermal) 0>;
35
36 trips { };
37 cooling-maps { };
38 };
39 };
22}; 40};
23 41
24&CP110_NAME { 42&CP110_NAME {
25 #address-cells = <2>; 43 #address-cells = <2>;
26 #size-cells = <2>; 44 #size-cells = <2>;
27 compatible = "simple-bus"; 45 compatible = "simple-bus";
28 interrupt-parent = <&CP110_LABEL(icu)>; 46 interrupt-parent = <&CP110_LABEL(icu_nsr)>;
29 ranges; 47 ranges;
30 48
31 config-space@CP110_BASE { 49 config-space@CP110_BASE {
@@ -47,42 +65,57 @@
47 dma-coherent; 65 dma-coherent;
48 66
49 CP110_LABEL(eth0): eth0 { 67 CP110_LABEL(eth0): eth0 {
50 interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>, 68 interrupts = <39 IRQ_TYPE_LEVEL_HIGH>,
51 <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>, 69 <43 IRQ_TYPE_LEVEL_HIGH>,
52 <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>, 70 <47 IRQ_TYPE_LEVEL_HIGH>,
53 <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>, 71 <51 IRQ_TYPE_LEVEL_HIGH>,
54 <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>, 72 <55 IRQ_TYPE_LEVEL_HIGH>,
55 <ICU_GRP_NSR 129 IRQ_TYPE_LEVEL_HIGH>; 73 <59 IRQ_TYPE_LEVEL_HIGH>,
56 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 74 <63 IRQ_TYPE_LEVEL_HIGH>,
57 "tx-cpu3", "rx-shared", "link"; 75 <67 IRQ_TYPE_LEVEL_HIGH>,
76 <71 IRQ_TYPE_LEVEL_HIGH>,
77 <129 IRQ_TYPE_LEVEL_HIGH>;
78 interrupt-names = "hif0", "hif1", "hif2",
79 "hif3", "hif4", "hif5", "hif6", "hif7",
80 "hif8", "link";
58 port-id = <0>; 81 port-id = <0>;
59 gop-port-id = <0>; 82 gop-port-id = <0>;
60 status = "disabled"; 83 status = "disabled";
61 }; 84 };
62 85
63 CP110_LABEL(eth1): eth1 { 86 CP110_LABEL(eth1): eth1 {
64 interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>, 87 interrupts = <40 IRQ_TYPE_LEVEL_HIGH>,
65 <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>, 88 <44 IRQ_TYPE_LEVEL_HIGH>,
66 <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>, 89 <48 IRQ_TYPE_LEVEL_HIGH>,
67 <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>, 90 <52 IRQ_TYPE_LEVEL_HIGH>,
68 <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>, 91 <56 IRQ_TYPE_LEVEL_HIGH>,
69 <ICU_GRP_NSR 128 IRQ_TYPE_LEVEL_HIGH>; 92 <60 IRQ_TYPE_LEVEL_HIGH>,
70 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 93 <64 IRQ_TYPE_LEVEL_HIGH>,
71 "tx-cpu3", "rx-shared", "link"; 94 <68 IRQ_TYPE_LEVEL_HIGH>,
95 <72 IRQ_TYPE_LEVEL_HIGH>,
96 <128 IRQ_TYPE_LEVEL_HIGH>;
97 interrupt-names = "hif0", "hif1", "hif2",
98 "hif3", "hif4", "hif5", "hif6", "hif7",
99 "hif8", "link";
72 port-id = <1>; 100 port-id = <1>;
73 gop-port-id = <2>; 101 gop-port-id = <2>;
74 status = "disabled"; 102 status = "disabled";
75 }; 103 };
76 104
77 CP110_LABEL(eth2): eth2 { 105 CP110_LABEL(eth2): eth2 {
78 interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>, 106 interrupts = <41 IRQ_TYPE_LEVEL_HIGH>,
79 <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>, 107 <45 IRQ_TYPE_LEVEL_HIGH>,
80 <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>, 108 <49 IRQ_TYPE_LEVEL_HIGH>,
81 <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>, 109 <53 IRQ_TYPE_LEVEL_HIGH>,
82 <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>, 110 <57 IRQ_TYPE_LEVEL_HIGH>,
83 <ICU_GRP_NSR 127 IRQ_TYPE_LEVEL_HIGH>; 111 <61 IRQ_TYPE_LEVEL_HIGH>,
84 interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2", 112 <65 IRQ_TYPE_LEVEL_HIGH>,
85 "tx-cpu3", "rx-shared", "link"; 113 <69 IRQ_TYPE_LEVEL_HIGH>,
114 <73 IRQ_TYPE_LEVEL_HIGH>,
115 <127 IRQ_TYPE_LEVEL_HIGH>;
116 interrupt-names = "hif0", "hif1", "hif2",
117 "hif3", "hif4", "hif5", "hif6", "hif7",
118 "hif8", "link";
86 port-id = <2>; 119 port-id = <2>;
87 gop-port-id = <3>; 120 gop-port-id = <3>;
88 status = "disabled"; 121 status = "disabled";
@@ -150,22 +183,31 @@
150 CP110_LABEL(icu): interrupt-controller@1e0000 { 183 CP110_LABEL(icu): interrupt-controller@1e0000 {
151 compatible = "marvell,cp110-icu"; 184 compatible = "marvell,cp110-icu";
152 reg = <0x1e0000 0x440>; 185 reg = <0x1e0000 0x440>;
153 #interrupt-cells = <3>; 186 #address-cells = <1>;
154 interrupt-controller; 187 #size-cells = <1>;
155 msi-parent = <&gicp>; 188
189 CP110_LABEL(icu_nsr): interrupt-controller@10 {
190 compatible = "marvell,cp110-icu-nsr";
191 reg = <0x10 0x20>;
192 #interrupt-cells = <2>;
193 interrupt-controller;
194 msi-parent = <&gicp>;
195 };
196
197 CP110_LABEL(icu_sei): interrupt-controller@50 {
198 compatible = "marvell,cp110-icu-sei";
199 reg = <0x50 0x10>;
200 #interrupt-cells = <2>;
201 interrupt-controller;
202 msi-parent = <&sei>;
203 };
156 }; 204 };
157 205
158 CP110_LABEL(rtc): rtc@284000 { 206 CP110_LABEL(rtc): rtc@284000 {
159 compatible = "marvell,armada-8k-rtc"; 207 compatible = "marvell,armada-8k-rtc";
160 reg = <0x284000 0x20>, <0x284080 0x24>; 208 reg = <0x284000 0x20>, <0x284080 0x24>;
161 reg-names = "rtc", "rtc-soc"; 209 reg-names = "rtc", "rtc-soc";
162 interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>; 210 interrupts = <77 IRQ_TYPE_LEVEL_HIGH>;
163 };
164
165 CP110_LABEL(thermal): thermal@400078 {
166 compatible = "marvell,armada-cp110-thermal";
167 reg = <0x400078 0x4>,
168 <0x400070 0x8>;
169 }; 211 };
170 212
171 CP110_LABEL(syscon0): system-controller@440000 { 213 CP110_LABEL(syscon0): system-controller@440000 {
@@ -185,10 +227,10 @@
185 #gpio-cells = <2>; 227 #gpio-cells = <2>;
186 gpio-ranges = <&CP110_LABEL(pinctrl) 0 0 32>; 228 gpio-ranges = <&CP110_LABEL(pinctrl) 0 0 32>;
187 interrupt-controller; 229 interrupt-controller;
188 interrupts = <ICU_GRP_NSR 86 IRQ_TYPE_LEVEL_HIGH>, 230 interrupts = <86 IRQ_TYPE_LEVEL_HIGH>,
189 <ICU_GRP_NSR 85 IRQ_TYPE_LEVEL_HIGH>, 231 <85 IRQ_TYPE_LEVEL_HIGH>,
190 <ICU_GRP_NSR 84 IRQ_TYPE_LEVEL_HIGH>, 232 <84 IRQ_TYPE_LEVEL_HIGH>,
191 <ICU_GRP_NSR 83 IRQ_TYPE_LEVEL_HIGH>; 233 <83 IRQ_TYPE_LEVEL_HIGH>;
192 status = "disabled"; 234 status = "disabled";
193 }; 235 };
194 236
@@ -200,20 +242,33 @@
200 #gpio-cells = <2>; 242 #gpio-cells = <2>;
201 gpio-ranges = <&CP110_LABEL(pinctrl) 0 32 31>; 243 gpio-ranges = <&CP110_LABEL(pinctrl) 0 32 31>;
202 interrupt-controller; 244 interrupt-controller;
203 interrupts = <ICU_GRP_NSR 82 IRQ_TYPE_LEVEL_HIGH>, 245 interrupts = <82 IRQ_TYPE_LEVEL_HIGH>,
204 <ICU_GRP_NSR 81 IRQ_TYPE_LEVEL_HIGH>, 246 <81 IRQ_TYPE_LEVEL_HIGH>,
205 <ICU_GRP_NSR 80 IRQ_TYPE_LEVEL_HIGH>, 247 <80 IRQ_TYPE_LEVEL_HIGH>,
206 <ICU_GRP_NSR 79 IRQ_TYPE_LEVEL_HIGH>; 248 <79 IRQ_TYPE_LEVEL_HIGH>;
207 status = "disabled"; 249 status = "disabled";
208 }; 250 };
209 }; 251 };
210 252
253 CP110_LABEL(syscon1): system-controller@400000 {
254 compatible = "syscon", "simple-mfd";
255 reg = <0x400000 0x1000>;
256 #address-cells = <1>;
257 #size-cells = <1>;
258
259 CP110_LABEL(thermal): thermal-sensor@70 {
260 compatible = "marvell,armada-cp110-thermal";
261 reg = <0x70 0x10>;
262 #thermal-sensor-cells = <1>;
263 };
264 };
265
211 CP110_LABEL(usb3_0): usb3@500000 { 266 CP110_LABEL(usb3_0): usb3@500000 {
212 compatible = "marvell,armada-8k-xhci", 267 compatible = "marvell,armada-8k-xhci",
213 "generic-xhci"; 268 "generic-xhci";
214 reg = <0x500000 0x4000>; 269 reg = <0x500000 0x4000>;
215 dma-coherent; 270 dma-coherent;
216 interrupts = <ICU_GRP_NSR 106 IRQ_TYPE_LEVEL_HIGH>; 271 interrupts = <106 IRQ_TYPE_LEVEL_HIGH>;
217 clock-names = "core", "reg"; 272 clock-names = "core", "reg";
218 clocks = <&CP110_LABEL(clk) 1 22>, 273 clocks = <&CP110_LABEL(clk) 1 22>,
219 <&CP110_LABEL(clk) 1 16>; 274 <&CP110_LABEL(clk) 1 16>;
@@ -225,7 +280,7 @@
225 "generic-xhci"; 280 "generic-xhci";
226 reg = <0x510000 0x4000>; 281 reg = <0x510000 0x4000>;
227 dma-coherent; 282 dma-coherent;
228 interrupts = <ICU_GRP_NSR 105 IRQ_TYPE_LEVEL_HIGH>; 283 interrupts = <105 IRQ_TYPE_LEVEL_HIGH>;
229 clock-names = "core", "reg"; 284 clock-names = "core", "reg";
230 clocks = <&CP110_LABEL(clk) 1 23>, 285 clocks = <&CP110_LABEL(clk) 1 23>,
231 <&CP110_LABEL(clk) 1 16>; 286 <&CP110_LABEL(clk) 1 16>;
@@ -237,7 +292,7 @@
237 "generic-ahci"; 292 "generic-ahci";
238 reg = <0x540000 0x30000>; 293 reg = <0x540000 0x30000>;
239 dma-coherent; 294 dma-coherent;
240 interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>; 295 interrupts = <107 IRQ_TYPE_LEVEL_HIGH>;
241 clocks = <&CP110_LABEL(clk) 1 15>, 296 clocks = <&CP110_LABEL(clk) 1 15>,
242 <&CP110_LABEL(clk) 1 16>; 297 <&CP110_LABEL(clk) 1 16>;
243 status = "disabled"; 298 status = "disabled";
@@ -290,7 +345,7 @@
290 reg = <0x701000 0x20>; 345 reg = <0x701000 0x20>;
291 #address-cells = <1>; 346 #address-cells = <1>;
292 #size-cells = <0>; 347 #size-cells = <0>;
293 interrupts = <ICU_GRP_NSR 120 IRQ_TYPE_LEVEL_HIGH>; 348 interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
294 clock-names = "core", "reg"; 349 clock-names = "core", "reg";
295 clocks = <&CP110_LABEL(clk) 1 21>, 350 clocks = <&CP110_LABEL(clk) 1 21>,
296 <&CP110_LABEL(clk) 1 17>; 351 <&CP110_LABEL(clk) 1 17>;
@@ -302,7 +357,7 @@
302 reg = <0x701100 0x20>; 357 reg = <0x701100 0x20>;
303 #address-cells = <1>; 358 #address-cells = <1>;
304 #size-cells = <0>; 359 #size-cells = <0>;
305 interrupts = <ICU_GRP_NSR 121 IRQ_TYPE_LEVEL_HIGH>; 360 interrupts = <121 IRQ_TYPE_LEVEL_HIGH>;
306 clock-names = "core", "reg"; 361 clock-names = "core", "reg";
307 clocks = <&CP110_LABEL(clk) 1 21>, 362 clocks = <&CP110_LABEL(clk) 1 21>,
308 <&CP110_LABEL(clk) 1 17>; 363 <&CP110_LABEL(clk) 1 17>;
@@ -313,7 +368,7 @@
313 compatible = "snps,dw-apb-uart"; 368 compatible = "snps,dw-apb-uart";
314 reg = <0x702000 0x100>; 369 reg = <0x702000 0x100>;
315 reg-shift = <2>; 370 reg-shift = <2>;
316 interrupts = <ICU_GRP_NSR 122 IRQ_TYPE_LEVEL_HIGH>; 371 interrupts = <122 IRQ_TYPE_LEVEL_HIGH>;
317 reg-io-width = <1>; 372 reg-io-width = <1>;
318 clock-names = "baudclk", "apb_pclk"; 373 clock-names = "baudclk", "apb_pclk";
319 clocks = <&CP110_LABEL(clk) 1 21>, 374 clocks = <&CP110_LABEL(clk) 1 21>,
@@ -325,7 +380,7 @@
325 compatible = "snps,dw-apb-uart"; 380 compatible = "snps,dw-apb-uart";
326 reg = <0x702100 0x100>; 381 reg = <0x702100 0x100>;
327 reg-shift = <2>; 382 reg-shift = <2>;
328 interrupts = <ICU_GRP_NSR 123 IRQ_TYPE_LEVEL_HIGH>; 383 interrupts = <123 IRQ_TYPE_LEVEL_HIGH>;
329 reg-io-width = <1>; 384 reg-io-width = <1>;
330 clock-names = "baudclk", "apb_pclk"; 385 clock-names = "baudclk", "apb_pclk";
331 clocks = <&CP110_LABEL(clk) 1 21>, 386 clocks = <&CP110_LABEL(clk) 1 21>,
@@ -337,7 +392,7 @@
337 compatible = "snps,dw-apb-uart"; 392 compatible = "snps,dw-apb-uart";
338 reg = <0x702200 0x100>; 393 reg = <0x702200 0x100>;
339 reg-shift = <2>; 394 reg-shift = <2>;
340 interrupts = <ICU_GRP_NSR 124 IRQ_TYPE_LEVEL_HIGH>; 395 interrupts = <124 IRQ_TYPE_LEVEL_HIGH>;
341 reg-io-width = <1>; 396 reg-io-width = <1>;
342 clock-names = "baudclk", "apb_pclk"; 397 clock-names = "baudclk", "apb_pclk";
343 clocks = <&CP110_LABEL(clk) 1 21>, 398 clocks = <&CP110_LABEL(clk) 1 21>,
@@ -349,7 +404,7 @@
349 compatible = "snps,dw-apb-uart"; 404 compatible = "snps,dw-apb-uart";
350 reg = <0x702300 0x100>; 405 reg = <0x702300 0x100>;
351 reg-shift = <2>; 406 reg-shift = <2>;
352 interrupts = <ICU_GRP_NSR 125 IRQ_TYPE_LEVEL_HIGH>; 407 interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
353 reg-io-width = <1>; 408 reg-io-width = <1>;
354 clock-names = "baudclk", "apb_pclk"; 409 clock-names = "baudclk", "apb_pclk";
355 clocks = <&CP110_LABEL(clk) 1 21>, 410 clocks = <&CP110_LABEL(clk) 1 21>,
@@ -368,7 +423,7 @@
368 reg = <0x720000 0x54>; 423 reg = <0x720000 0x54>;
369 #address-cells = <1>; 424 #address-cells = <1>;
370 #size-cells = <0>; 425 #size-cells = <0>;
371 interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>; 426 interrupts = <115 IRQ_TYPE_LEVEL_HIGH>;
372 clock-names = "core", "reg"; 427 clock-names = "core", "reg";
373 clocks = <&CP110_LABEL(clk) 1 2>, 428 clocks = <&CP110_LABEL(clk) 1 2>,
374 <&CP110_LABEL(clk) 1 17>; 429 <&CP110_LABEL(clk) 1 17>;
@@ -380,7 +435,7 @@
380 compatible = "marvell,armada-8k-rng", 435 compatible = "marvell,armada-8k-rng",
381 "inside-secure,safexcel-eip76"; 436 "inside-secure,safexcel-eip76";
382 reg = <0x760000 0x7d>; 437 reg = <0x760000 0x7d>;
383 interrupts = <ICU_GRP_NSR 95 IRQ_TYPE_LEVEL_HIGH>; 438 interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
384 clock-names = "core", "reg"; 439 clock-names = "core", "reg";
385 clocks = <&CP110_LABEL(clk) 1 25>, 440 clocks = <&CP110_LABEL(clk) 1 25>,
386 <&CP110_LABEL(clk) 1 17>; 441 <&CP110_LABEL(clk) 1 17>;
@@ -390,7 +445,7 @@
390 CP110_LABEL(sdhci0): sdhci@780000 { 445 CP110_LABEL(sdhci0): sdhci@780000 {
391 compatible = "marvell,armada-cp110-sdhci"; 446 compatible = "marvell,armada-cp110-sdhci";
392 reg = <0x780000 0x300>; 447 reg = <0x780000 0x300>;
393 interrupts = <ICU_GRP_NSR 27 IRQ_TYPE_LEVEL_HIGH>; 448 interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
394 clock-names = "core", "axi"; 449 clock-names = "core", "axi";
395 clocks = <&CP110_LABEL(clk) 1 4>, <&CP110_LABEL(clk) 1 18>; 450 clocks = <&CP110_LABEL(clk) 1 4>, <&CP110_LABEL(clk) 1 18>;
396 dma-coherent; 451 dma-coherent;
@@ -400,12 +455,12 @@
400 CP110_LABEL(crypto): crypto@800000 { 455 CP110_LABEL(crypto): crypto@800000 {
401 compatible = "inside-secure,safexcel-eip197b"; 456 compatible = "inside-secure,safexcel-eip197b";
402 reg = <0x800000 0x200000>; 457 reg = <0x800000 0x200000>;
403 interrupts = <ICU_GRP_NSR 87 IRQ_TYPE_LEVEL_HIGH>, 458 interrupts = <87 IRQ_TYPE_LEVEL_HIGH>,
404 <ICU_GRP_NSR 88 IRQ_TYPE_LEVEL_HIGH>, 459 <88 IRQ_TYPE_LEVEL_HIGH>,
405 <ICU_GRP_NSR 89 IRQ_TYPE_LEVEL_HIGH>, 460 <89 IRQ_TYPE_LEVEL_HIGH>,
406 <ICU_GRP_NSR 90 IRQ_TYPE_LEVEL_HIGH>, 461 <90 IRQ_TYPE_LEVEL_HIGH>,
407 <ICU_GRP_NSR 91 IRQ_TYPE_LEVEL_HIGH>, 462 <91 IRQ_TYPE_LEVEL_HIGH>,
408 <ICU_GRP_NSR 92 IRQ_TYPE_LEVEL_HIGH>; 463 <92 IRQ_TYPE_LEVEL_HIGH>;
409 interrupt-names = "mem", "ring0", "ring1", 464 interrupt-names = "mem", "ring0", "ring1",
410 "ring2", "ring3", "eip"; 465 "ring2", "ring3", "eip";
411 clock-names = "core", "reg"; 466 clock-names = "core", "reg";
@@ -434,8 +489,8 @@
434 /* non-prefetchable memory */ 489 /* non-prefetchable memory */
435 0x82000000 0 CP110_PCIEx_MEM_BASE(0) 0 CP110_PCIEx_MEM_BASE(0) 0 0xf00000>; 490 0x82000000 0 CP110_PCIEx_MEM_BASE(0) 0 CP110_PCIEx_MEM_BASE(0) 0 0xf00000>;
436 interrupt-map-mask = <0 0 0 0>; 491 interrupt-map-mask = <0 0 0 0>;
437 interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 492 interrupt-map = <0 0 0 0 &CP110_LABEL(icu_nsr) 22 IRQ_TYPE_LEVEL_HIGH>;
438 interrupts = <ICU_GRP_NSR 22 IRQ_TYPE_LEVEL_HIGH>; 493 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
439 num-lanes = <1>; 494 num-lanes = <1>;
440 clock-names = "core", "reg"; 495 clock-names = "core", "reg";
441 clocks = <&CP110_LABEL(clk) 1 13>, <&CP110_LABEL(clk) 1 14>; 496 clocks = <&CP110_LABEL(clk) 1 13>, <&CP110_LABEL(clk) 1 14>;
@@ -461,8 +516,8 @@
461 /* non-prefetchable memory */ 516 /* non-prefetchable memory */
462 0x82000000 0 CP110_PCIEx_MEM_BASE(1) 0 CP110_PCIEx_MEM_BASE(1) 0 0xf00000>; 517 0x82000000 0 CP110_PCIEx_MEM_BASE(1) 0 CP110_PCIEx_MEM_BASE(1) 0 0xf00000>;
463 interrupt-map-mask = <0 0 0 0>; 518 interrupt-map-mask = <0 0 0 0>;
464 interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 519 interrupt-map = <0 0 0 0 &CP110_LABEL(icu_nsr) 24 IRQ_TYPE_LEVEL_HIGH>;
465 interrupts = <ICU_GRP_NSR 24 IRQ_TYPE_LEVEL_HIGH>; 520 interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
466 521
467 num-lanes = <1>; 522 num-lanes = <1>;
468 clock-names = "core", "reg"; 523 clock-names = "core", "reg";
@@ -489,8 +544,8 @@
489 /* non-prefetchable memory */ 544 /* non-prefetchable memory */
490 0x82000000 0 CP110_PCIEx_MEM_BASE(2) 0 CP110_PCIEx_MEM_BASE(2) 0 0xf00000>; 545 0x82000000 0 CP110_PCIEx_MEM_BASE(2) 0 CP110_PCIEx_MEM_BASE(2) 0 0xf00000>;
491 interrupt-map-mask = <0 0 0 0>; 546 interrupt-map-mask = <0 0 0 0>;
492 interrupt-map = <0 0 0 0 &CP110_LABEL(icu) ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 547 interrupt-map = <0 0 0 0 &CP110_LABEL(icu_nsr) 23 IRQ_TYPE_LEVEL_HIGH>;
493 interrupts = <ICU_GRP_NSR 23 IRQ_TYPE_LEVEL_HIGH>; 548 interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
494 549
495 num-lanes = <1>; 550 num-lanes = <1>;
496 clock-names = "core", "reg"; 551 clock-names = "core", "reg";
diff --git a/arch/arm64/boot/dts/mediatek/Makefile b/arch/arm64/boot/dts/mediatek/Makefile
index 5b7fd6ad96e4..e8f952fb279b 100644
--- a/arch/arm64/boot/dts/mediatek/Makefile
+++ b/arch/arm64/boot/dts/mediatek/Makefile
@@ -5,4 +5,5 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb
5dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb 5dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb
6dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb 6dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-x20-dev.dtb
7dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb 7dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
8dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-bananapi-bpi-r64.dtb
8dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb 9dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
diff --git a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi b/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
index 75cc0f7cc088..ee627a7c7b45 100644
--- a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
@@ -301,6 +301,17 @@
301 status = "disabled"; 301 status = "disabled";
302 }; 302 };
303 303
304 spis1: spi@10013000 {
305 compatible = "mediatek,mt2712-spi-slave";
306 reg = <0 0x10013000 0 0x100>;
307 interrupts = <GIC_SPI 283 IRQ_TYPE_LEVEL_LOW>;
308 clocks = <&infracfg CLK_INFRA_AO_SPI1>;
309 clock-names = "spi";
310 assigned-clocks = <&topckgen CLK_TOP_SPISLV_SEL>;
311 assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL1_D2>;
312 status = "disabled";
313 };
314
304 apmixedsys: syscon@10209000 { 315 apmixedsys: syscon@10209000 {
305 compatible = "mediatek,mt2712-apmixedsys", "syscon"; 316 compatible = "mediatek,mt2712-apmixedsys", "syscon";
306 reg = <0 0x10209000 0 0x1000>; 317 reg = <0 0x10209000 0 0x1000>;
diff --git a/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
new file mode 100644
index 000000000000..5d6005c9b097
--- /dev/null
+++ b/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts
@@ -0,0 +1,530 @@
1/*
2 * Copyright (c) 2018 MediaTek Inc.
3 * Author: Ryder Lee <ryder.lee@mediatek.com>
4 *
5 * SPDX-License-Identifier: (GPL-2.0 OR MIT)
6 */
7
8/dts-v1/;
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/gpio/gpio.h>
11
12#include "mt7622.dtsi"
13#include "mt6380.dtsi"
14
15/ {
16 model = "Bananapi BPI-R64";
17 compatible = "bananapi,bpi-r64", "mediatek,mt7622";
18
19 chosen {
20 bootargs = "earlycon=uart8250,mmio32,0x11002000 console=ttyS0,115200n1 swiotlb=512";
21 };
22
23 cpus {
24 cpu@0 {
25 proc-supply = <&mt6380_vcpu_reg>;
26 sram-supply = <&mt6380_vm_reg>;
27 };
28
29 cpu@1 {
30 proc-supply = <&mt6380_vcpu_reg>;
31 sram-supply = <&mt6380_vm_reg>;
32 };
33 };
34
35 gpio-keys {
36 compatible = "gpio-keys";
37
38 factory {
39 label = "factory";
40 linux,code = <BTN_0>;
41 gpios = <&pio 0 GPIO_ACTIVE_HIGH>;
42 };
43
44 wps {
45 label = "wps";
46 linux,code = <KEY_WPS_BUTTON>;
47 gpios = <&pio 102 GPIO_ACTIVE_HIGH>;
48 };
49 };
50
51 leds {
52 compatible = "gpio-leds";
53
54 green {
55 label = "bpi-r64:pio:green";
56 gpios = <&pio 89 GPIO_ACTIVE_HIGH>;
57 default-state = "off";
58 };
59
60 red {
61 label = "bpi-r64:pio:red";
62 gpios = <&pio 88 GPIO_ACTIVE_HIGH>;
63 default-state = "off";
64 };
65 };
66
67 memory {
68 reg = <0 0x40000000 0 0x40000000>;
69 };
70
71 reg_1p8v: regulator-1p8v {
72 compatible = "regulator-fixed";
73 regulator-name = "fixed-1.8V";
74 regulator-min-microvolt = <1800000>;
75 regulator-max-microvolt = <1800000>;
76 regulator-always-on;
77 };
78
79 reg_3p3v: regulator-3p3v {
80 compatible = "regulator-fixed";
81 regulator-name = "fixed-3.3V";
82 regulator-min-microvolt = <3300000>;
83 regulator-max-microvolt = <3300000>;
84 regulator-boot-on;
85 regulator-always-on;
86 };
87
88 reg_5v: regulator-5v {
89 compatible = "regulator-fixed";
90 regulator-name = "fixed-5V";
91 regulator-min-microvolt = <5000000>;
92 regulator-max-microvolt = <5000000>;
93 regulator-boot-on;
94 regulator-always-on;
95 };
96};
97
98&bch {
99 status = "disabled";
100};
101
102&btif {
103 status = "okay";
104};
105
106&cir {
107 pinctrl-names = "default";
108 pinctrl-0 = <&irrx_pins>;
109 status = "okay";
110};
111
112&eth {
113 pinctrl-names = "default";
114 pinctrl-0 = <&eth_pins>;
115 status = "okay";
116
117 gmac1: mac@1 {
118 compatible = "mediatek,eth-mac";
119 reg = <1>;
120 phy-handle = <&phy5>;
121 };
122
123 mdio-bus {
124 #address-cells = <1>;
125 #size-cells = <0>;
126
127 phy5: ethernet-phy@5 {
128 reg = <5>;
129 phy-mode = "sgmii";
130 };
131 };
132};
133
134&i2c1 {
135 pinctrl-names = "default";
136 pinctrl-0 = <&i2c1_pins>;
137 status = "okay";
138};
139
140&i2c2 {
141 pinctrl-names = "default";
142 pinctrl-0 = <&i2c2_pins>;
143 status = "okay";
144};
145
146&mmc0 {
147 pinctrl-names = "default", "state_uhs";
148 pinctrl-0 = <&emmc_pins_default>;
149 pinctrl-1 = <&emmc_pins_uhs>;
150 status = "okay";
151 bus-width = <8>;
152 max-frequency = <50000000>;
153 cap-mmc-highspeed;
154 mmc-hs200-1_8v;
155 vmmc-supply = <&reg_3p3v>;
156 vqmmc-supply = <&reg_1p8v>;
157 assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
158 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
159 non-removable;
160};
161
162&mmc1 {
163 pinctrl-names = "default", "state_uhs";
164 pinctrl-0 = <&sd0_pins_default>;
165 pinctrl-1 = <&sd0_pins_uhs>;
166 status = "okay";
167 bus-width = <4>;
168 max-frequency = <50000000>;
169 cap-sd-highspeed;
170 r_smpl = <1>;
171 cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
172 vmmc-supply = <&reg_3p3v>;
173 vqmmc-supply = <&reg_3p3v>;
174 assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
175 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
176};
177
178&nandc {
179 pinctrl-names = "default";
180 pinctrl-0 = <&parallel_nand_pins>;
181 status = "disabled";
182};
183
184&nor_flash {
185 pinctrl-names = "default";
186 pinctrl-0 = <&spi_nor_pins>;
187 status = "disabled";
188
189 flash@0 {
190 compatible = "jedec,spi-nor";
191 reg = <0>;
192 };
193};
194
195&pcie {
196 pinctrl-names = "default";
197 pinctrl-0 = <&pcie0_pins>, <&pcie1_pins>;
198 status = "okay";
199
200 pcie@0,0 {
201 status = "okay";
202 };
203
204 pcie@1,0 {
205 status = "okay";
206 };
207};
208
209&pio {
210 /* Attention: GPIO 90 is used to switch between PCIe@1,0 and
211 * SATA functions. i.e. output-high: PCIe, output-low: SATA
212 */
213 asm_sel {
214 gpio-hog;
215 gpios = <90 GPIO_ACTIVE_HIGH>;
216 output-high;
217 };
218
219 /* eMMC is shared pin with parallel NAND */
220 emmc_pins_default: emmc-pins-default {
221 mux {
222 function = "emmc", "emmc_rst";
223 groups = "emmc";
224 };
225
226 /* "NDL0","NDL1","NDL2","NDL3","NDL4","NDL5","NDL6","NDL7",
227 * "NRB","NCLE" pins are used as DAT0,DAT1,DAT2,DAT3,DAT4,
228 * DAT5,DAT6,DAT7,CMD,CLK for eMMC respectively
229 */
230 conf-cmd-dat {
231 pins = "NDL0", "NDL1", "NDL2",
232 "NDL3", "NDL4", "NDL5",
233 "NDL6", "NDL7", "NRB";
234 input-enable;
235 bias-pull-up;
236 };
237
238 conf-clk {
239 pins = "NCLE";
240 bias-pull-down;
241 };
242 };
243
244 emmc_pins_uhs: emmc-pins-uhs {
245 mux {
246 function = "emmc";
247 groups = "emmc";
248 };
249
250 conf-cmd-dat {
251 pins = "NDL0", "NDL1", "NDL2",
252 "NDL3", "NDL4", "NDL5",
253 "NDL6", "NDL7", "NRB";
254 input-enable;
255 drive-strength = <4>;
256 bias-pull-up;
257 };
258
259 conf-clk {
260 pins = "NCLE";
261 drive-strength = <4>;
262 bias-pull-down;
263 };
264 };
265
266 eth_pins: eth-pins {
267 mux {
268 function = "eth";
269 groups = "mdc_mdio", "rgmii_via_gmac2";
270 };
271 };
272
273 i2c1_pins: i2c1-pins {
274 mux {
275 function = "i2c";
276 groups = "i2c1_0";
277 };
278 };
279
280 i2c2_pins: i2c2-pins {
281 mux {
282 function = "i2c";
283 groups = "i2c2_0";
284 };
285 };
286
287 i2s1_pins: i2s1-pins {
288 mux {
289 function = "i2s";
290 groups = "i2s_out_mclk_bclk_ws",
291 "i2s1_in_data",
292 "i2s1_out_data";
293 };
294
295 conf {
296 pins = "I2S1_IN", "I2S1_OUT", "I2S_BCLK",
297 "I2S_WS", "I2S_MCLK";
298 drive-strength = <12>;
299 bias-pull-down;
300 };
301 };
302
303 irrx_pins: irrx-pins {
304 mux {
305 function = "ir";
306 groups = "ir_1_rx";
307 };
308 };
309
310 irtx_pins: irtx-pins {
311 mux {
312 function = "ir";
313 groups = "ir_1_tx";
314 };
315 };
316
317 /* Parallel nand is shared pin with eMMC */
318 parallel_nand_pins: parallel-nand-pins {
319 mux {
320 function = "flash";
321 groups = "par_nand";
322 };
323 };
324
325 pcie0_pins: pcie0-pins {
326 mux {
327 function = "pcie";
328 groups = "pcie0_pad_perst",
329 "pcie0_1_waken",
330 "pcie0_1_clkreq";
331 };
332 };
333
334 pcie1_pins: pcie1-pins {
335 mux {
336 function = "pcie";
337 groups = "pcie1_pad_perst",
338 "pcie1_0_waken",
339 "pcie1_0_clkreq";
340 };
341 };
342
343 pmic_bus_pins: pmic-bus-pins {
344 mux {
345 function = "pmic";
346 groups = "pmic_bus";
347 };
348 };
349
350 pwm7_pins: pwm1-2-pins {
351 mux {
352 function = "pwm";
353 groups = "pwm_ch7_2";
354 };
355 };
356
357 wled_pins: wled-pins {
358 mux {
359 function = "led";
360 groups = "wled";
361 };
362 };
363
364 sd0_pins_default: sd0-pins-default {
365 mux {
366 function = "sd";
367 groups = "sd_0";
368 };
369
370 /* "I2S2_OUT, "I2S4_IN"", "I2S3_IN", "I2S2_IN",
371 * "I2S4_OUT", "I2S3_OUT" are used as DAT0, DAT1,
372 * DAT2, DAT3, CMD, CLK for SD respectively.
373 */
374 conf-cmd-data {
375 pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
376 "I2S2_IN","I2S4_OUT";
377 input-enable;
378 drive-strength = <8>;
379 bias-pull-up;
380 };
381 conf-clk {
382 pins = "I2S3_OUT";
383 drive-strength = <12>;
384 bias-pull-down;
385 };
386 conf-cd {
387 pins = "TXD3";
388 bias-pull-up;
389 };
390 };
391
392 sd0_pins_uhs: sd0-pins-uhs {
393 mux {
394 function = "sd";
395 groups = "sd_0";
396 };
397
398 conf-cmd-data {
399 pins = "I2S2_OUT", "I2S4_IN", "I2S3_IN",
400 "I2S2_IN","I2S4_OUT";
401 input-enable;
402 bias-pull-up;
403 };
404
405 conf-clk {
406 pins = "I2S3_OUT";
407 bias-pull-down;
408 };
409 };
410
411 /* Serial NAND is shared pin with SPI-NOR */
412 serial_nand_pins: serial-nand-pins {
413 mux {
414 function = "flash";
415 groups = "snfi";
416 };
417 };
418
419 spic0_pins: spic0-pins {
420 mux {
421 function = "spi";
422 groups = "spic0_0";
423 };
424 };
425
426 spic1_pins: spic1-pins {
427 mux {
428 function = "spi";
429 groups = "spic1_0";
430 };
431 };
432
433 /* SPI-NOR is shared pin with serial NAND */
434 spi_nor_pins: spi-nor-pins {
435 mux {
436 function = "flash";
437 groups = "spi_nor";
438 };
439 };
440
441 /* serial NAND is shared pin with SPI-NOR */
442 serial_nand_pins: serial-nand-pins {
443 mux {
444 function = "flash";
445 groups = "snfi";
446 };
447 };
448
449 uart0_pins: uart0-pins {
450 mux {
451 function = "uart";
452 groups = "uart0_0_tx_rx" ;
453 };
454 };
455
456 uart2_pins: uart2-pins {
457 mux {
458 function = "uart";
459 groups = "uart2_1_tx_rx" ;
460 };
461 };
462
463 watchdog_pins: watchdog-pins {
464 mux {
465 function = "watchdog";
466 groups = "watchdog";
467 };
468 };
469};
470
471&pwm {
472 pinctrl-names = "default";
473 pinctrl-0 = <&pwm7_pins>;
474 status = "okay";
475};
476
477&pwrap {
478 pinctrl-names = "default";
479 pinctrl-0 = <&pmic_bus_pins>;
480
481 status = "okay";
482};
483
484&sata {
485 status = "disable";
486};
487
488&sata_phy {
489 status = "disable";
490};
491
492&spi0 {
493 pinctrl-names = "default";
494 pinctrl-0 = <&spic0_pins>;
495 status = "okay";
496};
497
498&spi1 {
499 pinctrl-names = "default";
500 pinctrl-0 = <&spic1_pins>;
501 status = "okay";
502};
503
504&ssusb {
505 vusb33-supply = <&reg_3p3v>;
506 vbus-supply = <&reg_5v>;
507 status = "okay";
508};
509
510&u3phy {
511 status = "okay";
512};
513
514&uart0 {
515 pinctrl-names = "default";
516 pinctrl-0 = <&uart0_pins>;
517 status = "okay";
518};
519
520&uart2 {
521 pinctrl-names = "default";
522 pinctrl-0 = <&uart2_pins>;
523 status = "okay";
524};
525
526&watchdog {
527 pinctrl-names = "default";
528 pinctrl-0 = <&watchdog_pins>;
529 status = "okay";
530};
diff --git a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
index a747b7bf132d..dcad0869b84c 100644
--- a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
+++ b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
@@ -51,7 +51,7 @@
51 }; 51 };
52 52
53 memory { 53 memory {
54 reg = <0 0x40000000 0 0x3F000000>; 54 reg = <0 0x40000000 0 0x20000000>;
55 }; 55 };
56 56
57 reg_1p8v: regulator-1p8v { 57 reg_1p8v: regulator-1p8v {
@@ -81,6 +81,103 @@
81 }; 81 };
82}; 82};
83 83
84&bch {
85 status = "disabled";
86};
87
88&btif {
89 status = "okay";
90};
91
92&cir {
93 pinctrl-names = "default";
94 pinctrl-0 = <&irrx_pins>;
95 status = "okay";
96};
97
98&eth {
99 pinctrl-names = "default";
100 pinctrl-0 = <&eth_pins>;
101 status = "okay";
102
103 gmac1: mac@1 {
104 compatible = "mediatek,eth-mac";
105 reg = <1>;
106 phy-handle = <&phy5>;
107 };
108
109 mdio-bus {
110 #address-cells = <1>;
111 #size-cells = <0>;
112
113 phy5: ethernet-phy@5 {
114 reg = <5>;
115 phy-mode = "sgmii";
116 };
117 };
118};
119
120&i2c1 {
121 pinctrl-names = "default";
122 pinctrl-0 = <&i2c1_pins>;
123 status = "okay";
124};
125
126&i2c2 {
127 pinctrl-names = "default";
128 pinctrl-0 = <&i2c2_pins>;
129 status = "okay";
130};
131
132&mmc0 {
133 pinctrl-names = "default", "state_uhs";
134 pinctrl-0 = <&emmc_pins_default>;
135 pinctrl-1 = <&emmc_pins_uhs>;
136 status = "okay";
137 bus-width = <8>;
138 max-frequency = <50000000>;
139 cap-mmc-highspeed;
140 mmc-hs200-1_8v;
141 vmmc-supply = <&reg_3p3v>;
142 vqmmc-supply = <&reg_1p8v>;
143 assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
144 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
145 non-removable;
146};
147
148&mmc1 {
149 pinctrl-names = "default", "state_uhs";
150 pinctrl-0 = <&sd0_pins_default>;
151 pinctrl-1 = <&sd0_pins_uhs>;
152 status = "okay";
153 bus-width = <4>;
154 max-frequency = <50000000>;
155 cap-sd-highspeed;
156 r_smpl = <1>;
157 cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
158 vmmc-supply = <&reg_3p3v>;
159 vqmmc-supply = <&reg_3p3v>;
160 assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
161 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
162};
163
164&nandc {
165 pinctrl-names = "default";
166 pinctrl-0 = <&parallel_nand_pins>;
167 status = "disabled";
168};
169
170&nor_flash {
171 pinctrl-names = "default";
172 pinctrl-0 = <&spi_nor_pins>;
173 status = "disabled";
174
175 flash@0 {
176 compatible = "jedec,spi-nor";
177 reg = <0>;
178 };
179};
180
84&pcie { 181&pcie {
85 pinctrl-names = "default"; 182 pinctrl-names = "default";
86 pinctrl-0 = <&pcie0_pins>; 183 pinctrl-0 = <&pcie0_pins>;
@@ -344,103 +441,6 @@
344 }; 441 };
345}; 442};
346 443
347&bch {
348 status = "disabled";
349};
350
351&btif {
352 status = "okay";
353};
354
355&cir {
356 pinctrl-names = "default";
357 pinctrl-0 = <&irrx_pins>;
358 status = "okay";
359};
360
361&eth {
362 pinctrl-names = "default";
363 pinctrl-0 = <&eth_pins>;
364 status = "okay";
365
366 gmac1: mac@1 {
367 compatible = "mediatek,eth-mac";
368 reg = <1>;
369 phy-handle = <&phy5>;
370 };
371
372 mdio-bus {
373 #address-cells = <1>;
374 #size-cells = <0>;
375
376 phy5: ethernet-phy@5 {
377 reg = <5>;
378 phy-mode = "sgmii";
379 };
380 };
381};
382
383&i2c1 {
384 pinctrl-names = "default";
385 pinctrl-0 = <&i2c1_pins>;
386 status = "okay";
387};
388
389&i2c2 {
390 pinctrl-names = "default";
391 pinctrl-0 = <&i2c2_pins>;
392 status = "okay";
393};
394
395&mmc0 {
396 pinctrl-names = "default", "state_uhs";
397 pinctrl-0 = <&emmc_pins_default>;
398 pinctrl-1 = <&emmc_pins_uhs>;
399 status = "okay";
400 bus-width = <8>;
401 max-frequency = <50000000>;
402 cap-mmc-highspeed;
403 mmc-hs200-1_8v;
404 vmmc-supply = <&reg_3p3v>;
405 vqmmc-supply = <&reg_1p8v>;
406 assigned-clocks = <&topckgen CLK_TOP_MSDC30_0_SEL>;
407 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
408 non-removable;
409};
410
411&mmc1 {
412 pinctrl-names = "default", "state_uhs";
413 pinctrl-0 = <&sd0_pins_default>;
414 pinctrl-1 = <&sd0_pins_uhs>;
415 status = "okay";
416 bus-width = <4>;
417 max-frequency = <50000000>;
418 cap-sd-highspeed;
419 r_smpl = <1>;
420 cd-gpios = <&pio 81 GPIO_ACTIVE_LOW>;
421 vmmc-supply = <&reg_3p3v>;
422 vqmmc-supply = <&reg_3p3v>;
423 assigned-clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>;
424 assigned-clock-parents = <&topckgen CLK_TOP_UNIV48M>;
425};
426
427&nandc {
428 pinctrl-names = "default";
429 pinctrl-0 = <&parallel_nand_pins>;
430 status = "disabled";
431};
432
433&nor_flash {
434 pinctrl-names = "default";
435 pinctrl-0 = <&spi_nor_pins>;
436 status = "disabled";
437
438 flash@0 {
439 compatible = "jedec,spi-nor";
440 reg = <0>;
441 };
442};
443
444&pwm { 444&pwm {
445 pinctrl-names = "default"; 445 pinctrl-names = "default";
446 pinctrl-0 = <&pwm7_pins>; 446 pinctrl-0 = <&pwm7_pins>;
diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
index de2c47bdbe64..fe0c875f1d95 100644
--- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
@@ -79,6 +79,7 @@
79 #cooling-cells = <2>; 79 #cooling-cells = <2>;
80 enable-method = "psci"; 80 enable-method = "psci";
81 clock-frequency = <1300000000>; 81 clock-frequency = <1300000000>;
82 cci-control-port = <&cci_control2>;
82 }; 83 };
83 84
84 cpu1: cpu@1 { 85 cpu1: cpu@1 {
@@ -92,6 +93,7 @@
92 #cooling-cells = <2>; 93 #cooling-cells = <2>;
93 enable-method = "psci"; 94 enable-method = "psci";
94 clock-frequency = <1300000000>; 95 clock-frequency = <1300000000>;
96 cci-control-port = <&cci_control2>;
95 }; 97 };
96 }; 98 };
97 99
@@ -113,6 +115,13 @@
113 method = "smc"; 115 method = "smc";
114 }; 116 };
115 117
118 pmu {
119 compatible = "arm,cortex-a53-pmu";
120 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_LOW>,
121 <GIC_SPI 9 IRQ_TYPE_LEVEL_LOW>;
122 interrupt-affinity = <&cpu0>, <&cpu1>;
123 };
124
116 reserved-memory { 125 reserved-memory {
117 #address-cells = <2>; 126 #address-cells = <2>;
118 #size-cells = <2>; 127 #size-cells = <2>;
@@ -218,6 +227,16 @@
218 #reset-cells = <1>; 227 #reset-cells = <1>;
219 }; 228 };
220 229
230 timer: timer@10004000 {
231 compatible = "mediatek,mt7622-timer",
232 "mediatek,mt6577-timer";
233 reg = <0 0x10004000 0 0x80>;
234 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>;
235 clocks = <&infracfg CLK_INFRA_APXGPT_PD>,
236 <&topckgen CLK_TOP_RTC>;
237 clock-names = "system-clk", "rtc-clk";
238 };
239
221 scpsys: scpsys@10006000 { 240 scpsys: scpsys@10006000 {
222 compatible = "mediatek,mt7622-scpsys", 241 compatible = "mediatek,mt7622-scpsys",
223 "syscon"; 242 "syscon";
@@ -325,6 +344,42 @@
325 <0 0x10360000 0 0x2000>; 344 <0 0x10360000 0 0x2000>;
326 }; 345 };
327 346
347 cci: cci@10390000 {
348 compatible = "arm,cci-400";
349 #address-cells = <1>;
350 #size-cells = <1>;
351 reg = <0 0x10390000 0 0x1000>;
352 ranges = <0 0 0x10390000 0x10000>;
353
354 cci_control0: slave-if@1000 {
355 compatible = "arm,cci-400-ctrl-if";
356 interface-type = "ace-lite";
357 reg = <0x1000 0x1000>;
358 };
359
360 cci_control1: slave-if@4000 {
361 compatible = "arm,cci-400-ctrl-if";
362 interface-type = "ace";
363 reg = <0x4000 0x1000>;
364 };
365
366 cci_control2: slave-if@5000 {
367 compatible = "arm,cci-400-ctrl-if";
368 interface-type = "ace";
369 reg = <0x5000 0x1000>;
370 };
371
372 pmu@9000 {
373 compatible = "arm,cci-400-pmu,r1";
374 reg = <0x9000 0x5000>;
375 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
376 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
377 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
378 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
379 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
380 };
381 };
382
328 auxadc: adc@11001000 { 383 auxadc: adc@11001000 {
329 compatible = "mediatek,mt7622-auxadc"; 384 compatible = "mediatek,mt7622-auxadc";
330 reg = <0 0x11001000 0 0x1000>; 385 reg = <0 0x11001000 0 0x1000>;
@@ -475,6 +530,13 @@
475 reg-shift = <2>; 530 reg-shift = <2>;
476 reg-io-width = <4>; 531 reg-io-width = <4>;
477 status = "disabled"; 532 status = "disabled";
533
534 bluetooth {
535 compatible = "mediatek,mt7622-bluetooth";
536 power-domains = <&scpsys MT7622_POWER_DOMAIN_WB>;
537 clocks = <&clk25m>;
538 clock-names = "ref";
539 };
478 }; 540 };
479 541
480 nandc: nfi@1100d000 { 542 nandc: nfi@1100d000 {
diff --git a/arch/arm64/boot/dts/nvidia/tegra186.dtsi b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
index b762227f6aa1..2f3c8e29520d 100644
--- a/arch/arm64/boot/dts/nvidia/tegra186.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra186.dtsi
@@ -4,6 +4,7 @@
4#include <dt-bindings/interrupt-controller/arm-gic.h> 4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/mailbox/tegra186-hsp.h> 5#include <dt-bindings/mailbox/tegra186-hsp.h>
6#include <dt-bindings/memory/tegra186-mc.h> 6#include <dt-bindings/memory/tegra186-mc.h>
7#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
7#include <dt-bindings/power/tegra186-powergate.h> 8#include <dt-bindings/power/tegra186-powergate.h>
8#include <dt-bindings/reset/tegra186-reset.h> 9#include <dt-bindings/reset/tegra186-reset.h>
9#include <dt-bindings/thermal/tegra186-bpmp-thermal.h> 10#include <dt-bindings/thermal/tegra186-bpmp-thermal.h>
@@ -236,6 +237,20 @@
236 clock-names = "sdhci"; 237 clock-names = "sdhci";
237 resets = <&bpmp TEGRA186_RESET_SDMMC1>; 238 resets = <&bpmp TEGRA186_RESET_SDMMC1>;
238 reset-names = "sdhci"; 239 reset-names = "sdhci";
240 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
241 pinctrl-0 = <&sdmmc1_3v3>;
242 pinctrl-1 = <&sdmmc1_1v8>;
243 nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
244 nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
245 nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
246 nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
247 nvidia,pad-autocal-pull-up-offset-sdr104 = <0x03>;
248 nvidia,pad-autocal-pull-down-offset-sdr104 = <0x05>;
249 nvidia,default-tap = <0x5>;
250 nvidia,default-trim = <0xb>;
251 assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
252 <&bpmp TEGRA186_CLK_PLLP_OUT0>;
253 assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>;
239 status = "disabled"; 254 status = "disabled";
240 }; 255 };
241 256
@@ -247,6 +262,15 @@
247 clock-names = "sdhci"; 262 clock-names = "sdhci";
248 resets = <&bpmp TEGRA186_RESET_SDMMC2>; 263 resets = <&bpmp TEGRA186_RESET_SDMMC2>;
249 reset-names = "sdhci"; 264 reset-names = "sdhci";
265 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
266 pinctrl-0 = <&sdmmc2_3v3>;
267 pinctrl-1 = <&sdmmc2_1v8>;
268 nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
269 nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
270 nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
271 nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
272 nvidia,default-tap = <0x5>;
273 nvidia,default-trim = <0xb>;
250 status = "disabled"; 274 status = "disabled";
251 }; 275 };
252 276
@@ -258,6 +282,17 @@
258 clock-names = "sdhci"; 282 clock-names = "sdhci";
259 resets = <&bpmp TEGRA186_RESET_SDMMC3>; 283 resets = <&bpmp TEGRA186_RESET_SDMMC3>;
260 reset-names = "sdhci"; 284 reset-names = "sdhci";
285 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
286 pinctrl-0 = <&sdmmc3_3v3>;
287 pinctrl-1 = <&sdmmc3_1v8>;
288 nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
289 nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
290 nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
291 nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
292 nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
293 nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
294 nvidia,default-tap = <0x5>;
295 nvidia,default-trim = <0xb>;
261 status = "disabled"; 296 status = "disabled";
262 }; 297 };
263 298
@@ -267,8 +302,19 @@
267 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>; 302 interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
268 clocks = <&bpmp TEGRA186_CLK_SDMMC4>; 303 clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
269 clock-names = "sdhci"; 304 clock-names = "sdhci";
305 assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
306 <&bpmp TEGRA186_CLK_PLLC4_VCO>;
307 assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
270 resets = <&bpmp TEGRA186_RESET_SDMMC4>; 308 resets = <&bpmp TEGRA186_RESET_SDMMC4>;
271 reset-names = "sdhci"; 309 reset-names = "sdhci";
310 nvidia,pad-autocal-pull-up-offset-hs400 = <0x05>;
311 nvidia,pad-autocal-pull-down-offset-hs400 = <0x05>;
312 nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
313 nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x0a>;
314 nvidia,default-tap = <0x5>;
315 nvidia,default-trim = <0x9>;
316 nvidia,dqs-trim = <63>;
317 mmc-hs400-1_8v;
272 status = "disabled"; 318 status = "disabled";
273 }; 319 };
274 320
@@ -368,6 +414,36 @@
368 <0 0x0c380000 0 0x10000>, 414 <0 0x0c380000 0 0x10000>,
369 <0 0x0c390000 0 0x10000>; 415 <0 0x0c390000 0 0x10000>;
370 reg-names = "pmc", "wake", "aotag", "scratch"; 416 reg-names = "pmc", "wake", "aotag", "scratch";
417
418 sdmmc1_3v3: sdmmc1-3v3 {
419 pins = "sdmmc1-hv";
420 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
421 };
422
423 sdmmc1_1v8: sdmmc1-1v8 {
424 pins = "sdmmc1-hv";
425 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
426 };
427
428 sdmmc2_3v3: sdmmc2-3v3 {
429 pins = "sdmmc2-hv";
430 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
431 };
432
433 sdmmc2_1v8: sdmmc2-1v8 {
434 pins = "sdmmc2-hv";
435 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
436 };
437
438 sdmmc3_3v3: sdmmc3-3v3 {
439 pins = "sdmmc3-hv";
440 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
441 };
442
443 sdmmc3_1v8: sdmmc3-1v8 {
444 pins = "sdmmc3-hv";
445 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
446 };
371 }; 447 };
372 448
373 ccplex@e000000 { 449 ccplex@e000000 {
diff --git a/arch/arm64/boot/dts/nvidia/tegra194.dtsi b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
index a4dfcd19b9e8..9fc14bb9a0af 100644
--- a/arch/arm64/boot/dts/nvidia/tegra194.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra194.dtsi
@@ -118,7 +118,7 @@
118 }; 118 };
119 119
120 gen1_i2c: i2c@3160000 { 120 gen1_i2c: i2c@3160000 {
121 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 121 compatible = "nvidia,tegra194-i2c";
122 reg = <0x03160000 0x10000>; 122 reg = <0x03160000 0x10000>;
123 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; 123 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
124 #address-cells = <1>; 124 #address-cells = <1>;
@@ -143,7 +143,7 @@
143 }; 143 };
144 144
145 cam_i2c: i2c@3180000 { 145 cam_i2c: i2c@3180000 {
146 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 146 compatible = "nvidia,tegra194-i2c";
147 reg = <0x03180000 0x10000>; 147 reg = <0x03180000 0x10000>;
148 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>; 148 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
149 #address-cells = <1>; 149 #address-cells = <1>;
@@ -157,7 +157,7 @@
157 157
158 /* shares pads with dpaux1 */ 158 /* shares pads with dpaux1 */
159 dp_aux_ch1_i2c: i2c@3190000 { 159 dp_aux_ch1_i2c: i2c@3190000 {
160 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 160 compatible = "nvidia,tegra194-i2c";
161 reg = <0x03190000 0x10000>; 161 reg = <0x03190000 0x10000>;
162 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; 162 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
163 #address-cells = <1>; 163 #address-cells = <1>;
@@ -171,7 +171,7 @@
171 171
172 /* shares pads with dpaux0 */ 172 /* shares pads with dpaux0 */
173 dp_aux_ch0_i2c: i2c@31b0000 { 173 dp_aux_ch0_i2c: i2c@31b0000 {
174 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 174 compatible = "nvidia,tegra194-i2c";
175 reg = <0x031b0000 0x10000>; 175 reg = <0x031b0000 0x10000>;
176 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>; 176 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
177 #address-cells = <1>; 177 #address-cells = <1>;
@@ -184,7 +184,7 @@
184 }; 184 };
185 185
186 gen7_i2c: i2c@31c0000 { 186 gen7_i2c: i2c@31c0000 {
187 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 187 compatible = "nvidia,tegra194-i2c";
188 reg = <0x031c0000 0x10000>; 188 reg = <0x031c0000 0x10000>;
189 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; 189 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
190 #address-cells = <1>; 190 #address-cells = <1>;
@@ -197,7 +197,7 @@
197 }; 197 };
198 198
199 gen9_i2c: i2c@31e0000 { 199 gen9_i2c: i2c@31e0000 {
200 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 200 compatible = "nvidia,tegra194-i2c";
201 reg = <0x031e0000 0x10000>; 201 reg = <0x031e0000 0x10000>;
202 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>; 202 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
203 #address-cells = <1>; 203 #address-cells = <1>;
@@ -264,7 +264,7 @@
264 }; 264 };
265 265
266 gen2_i2c: i2c@c240000 { 266 gen2_i2c: i2c@c240000 {
267 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 267 compatible = "nvidia,tegra194-i2c";
268 reg = <0x0c240000 0x10000>; 268 reg = <0x0c240000 0x10000>;
269 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; 269 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
270 #address-cells = <1>; 270 #address-cells = <1>;
@@ -277,7 +277,7 @@
277 }; 277 };
278 278
279 gen8_i2c: i2c@c250000 { 279 gen8_i2c: i2c@c250000 {
280 compatible = "nvidia,tegra194-i2c", "nvidia,tegra114-i2c"; 280 compatible = "nvidia,tegra194-i2c";
281 reg = <0x0c250000 0x10000>; 281 reg = <0x0c250000 0x10000>;
282 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; 282 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
283 #address-cells = <1>; 283 #address-cells = <1>;
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
index 212e6634c9ba..053458a5db55 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi
@@ -178,16 +178,7 @@
178 178
179 vddio_sdmmc: ldo2 { 179 vddio_sdmmc: ldo2 {
180 regulator-name = "VDDIO_SDMMC"; 180 regulator-name = "VDDIO_SDMMC";
181 /* 181 regulator-min-microvolt = <1800000>;
182 * Technically this supply should have
183 * a supported range from 1.8 - 3.3 V.
184 * However, that would cause the SDHCI
185 * driver to request 2.7 V upon access
186 * and that in turn will cause traffic
187 * to be broken. Leave it at 3.3 V for
188 * now.
189 */
190 regulator-min-microvolt = <3300000>;
191 regulator-max-microvolt = <3300000>; 182 regulator-max-microvolt = <3300000>;
192 regulator-always-on; 183 regulator-always-on;
193 regulator-boot-on; 184 regulator-boot-on;
@@ -282,6 +273,7 @@
282 status = "okay"; 273 status = "okay";
283 bus-width = <8>; 274 bus-width = <8>;
284 non-removable; 275 non-removable;
276 vqmmc-supply = <&vdd_1v8>;
285 }; 277 };
286 278
287 clocks { 279 clocks {
diff --git a/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi b/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
index 9d5a0e6b2ca4..365726ddd418 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi
@@ -1452,7 +1452,6 @@
1452 sdhci@700b0000 { 1452 sdhci@700b0000 {
1453 status = "okay"; 1453 status = "okay";
1454 bus-width = <4>; 1454 bus-width = <4>;
1455 no-1-8-v;
1456 1455
1457 cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>; 1456 cd-gpios = <&gpio TEGRA_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
1458 1457
diff --git a/arch/arm64/boot/dts/nvidia/tegra210.dtsi b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
index 3be920efee82..8fe47d6445a5 100644
--- a/arch/arm64/boot/dts/nvidia/tegra210.dtsi
+++ b/arch/arm64/boot/dts/nvidia/tegra210.dtsi
@@ -3,6 +3,7 @@
3#include <dt-bindings/gpio/tegra-gpio.h> 3#include <dt-bindings/gpio/tegra-gpio.h>
4#include <dt-bindings/memory/tegra210-mc.h> 4#include <dt-bindings/memory/tegra210-mc.h>
5#include <dt-bindings/pinctrl/pinctrl-tegra.h> 5#include <dt-bindings/pinctrl/pinctrl-tegra.h>
6#include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
6#include <dt-bindings/interrupt-controller/arm-gic.h> 7#include <dt-bindings/interrupt-controller/arm-gic.h>
7#include <dt-bindings/thermal/tegra124-soctherm.h> 8#include <dt-bindings/thermal/tegra124-soctherm.h>
8 9
@@ -776,6 +777,26 @@
776 #power-domain-cells = <0>; 777 #power-domain-cells = <0>;
777 }; 778 };
778 }; 779 };
780
781 sdmmc1_3v3: sdmmc1-3v3 {
782 pins = "sdmmc1";
783 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
784 };
785
786 sdmmc1_1v8: sdmmc1-1v8 {
787 pins = "sdmmc1";
788 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
789 };
790
791 sdmmc3_3v3: sdmmc3-3v3 {
792 pins = "sdmmc3";
793 power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
794 };
795
796 sdmmc3_1v8: sdmmc3-1v8 {
797 pins = "sdmmc3";
798 power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
799 };
779 }; 800 };
780 801
781 fuse@7000f800 { 802 fuse@7000f800 {
@@ -1027,6 +1048,20 @@
1027 clock-names = "sdhci"; 1048 clock-names = "sdhci";
1028 resets = <&tegra_car 14>; 1049 resets = <&tegra_car 14>;
1029 reset-names = "sdhci"; 1050 reset-names = "sdhci";
1051 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
1052 pinctrl-0 = <&sdmmc1_3v3>;
1053 pinctrl-1 = <&sdmmc1_1v8>;
1054 nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
1055 nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
1056 nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
1057 nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
1058 nvidia,default-tap = <0x2>;
1059 nvidia,default-trim = <0x4>;
1060 assigned-clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
1061 <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>,
1062 <&tegra_car TEGRA210_CLK_PLL_C4>;
1063 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
1064 assigned-clock-rates = <200000000>, <1000000000>, <1000000000>;
1030 status = "disabled"; 1065 status = "disabled";
1031 }; 1066 };
1032 1067
@@ -1038,6 +1073,10 @@
1038 clock-names = "sdhci"; 1073 clock-names = "sdhci";
1039 resets = <&tegra_car 9>; 1074 resets = <&tegra_car 9>;
1040 reset-names = "sdhci"; 1075 reset-names = "sdhci";
1076 nvidia,pad-autocal-pull-up-offset-1v8 = <0x05>;
1077 nvidia,pad-autocal-pull-down-offset-1v8 = <0x05>;
1078 nvidia,default-tap = <0x8>;
1079 nvidia,default-trim = <0x0>;
1041 status = "disabled"; 1080 status = "disabled";
1042 }; 1081 };
1043 1082
@@ -1049,6 +1088,15 @@
1049 clock-names = "sdhci"; 1088 clock-names = "sdhci";
1050 resets = <&tegra_car 69>; 1089 resets = <&tegra_car 69>;
1051 reset-names = "sdhci"; 1090 reset-names = "sdhci";
1091 pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
1092 pinctrl-0 = <&sdmmc3_3v3>;
1093 pinctrl-1 = <&sdmmc3_1v8>;
1094 nvidia,pad-autocal-pull-up-offset-3v3 = <0x00>;
1095 nvidia,pad-autocal-pull-down-offset-3v3 = <0x7d>;
1096 nvidia,pad-autocal-pull-up-offset-1v8 = <0x7b>;
1097 nvidia,pad-autocal-pull-down-offset-1v8 = <0x7b>;
1098 nvidia,default-tap = <0x3>;
1099 nvidia,default-trim = <0x3>;
1052 status = "disabled"; 1100 status = "disabled";
1053 }; 1101 };
1054 1102
@@ -1060,6 +1108,15 @@
1060 clock-names = "sdhci"; 1108 clock-names = "sdhci";
1061 resets = <&tegra_car 15>; 1109 resets = <&tegra_car 15>;
1062 reset-names = "sdhci"; 1110 reset-names = "sdhci";
1111 nvidia,pad-autocal-pull-up-offset-1v8 = <0x05>;
1112 nvidia,pad-autocal-pull-down-offset-1v8 = <0x05>;
1113 nvidia,default-tap = <0x8>;
1114 nvidia,default-trim = <0x0>;
1115 assigned-clocks = <&tegra_car TEGRA210_CLK_SDMMC4>,
1116 <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
1117 assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_C4_OUT0>;
1118 nvidia,dqs-trim = <40>;
1119 mmc-hs400-1_8v;
1063 status = "disabled"; 1120 status = "disabled";
1064 }; 1121 };
1065 1122
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 9319e74b8906..a658c07652a7 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -6,4 +6,5 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb
6dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb 6dtb-$(CONFIG_ARCH_QCOM) += msm8992-bullhead-rev-101.dtb
7dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb 7dtb-$(CONFIG_ARCH_QCOM) += msm8994-angler-rev-101.dtb
8dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb 8dtb-$(CONFIG_ARCH_QCOM) += msm8996-mtp.dtb
9dtb-$(CONFIG_ARCH_QCOM) += msm8998-mtp.dtb
9dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb 10dtb-$(CONFIG_ARCH_QCOM) += sdm845-mtp.dtb
diff --git a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
index 78ce3979ef09..46feedf7c989 100644
--- a/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
+++ b/arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
@@ -545,6 +545,20 @@
545 }; 545 };
546}; 546};
547 547
548&spmi_bus {
549 pm8916_0: pm8916@0 {
550 pon@800 {
551 resin {
552 compatible = "qcom,pm8941-resin";
553 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
554 debounce = <15625>;
555 bias-pull-up;
556 linux,code = <KEY_VOLUMEDOWN>;
557 };
558 };
559 };
560};
561
548&wcd_codec { 562&wcd_codec {
549 status = "okay"; 563 status = "okay";
550 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>; 564 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
index 230e9c8484ac..da23bdafbd33 100644
--- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
+++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dts
@@ -17,5 +17,5 @@
17 17
18/ { 18/ {
19 model = "Qualcomm Technologies, Inc. DB820c"; 19 model = "Qualcomm Technologies, Inc. DB820c";
20 compatible = "arrow,apq8096-db820c", "qcom,apq8096-sbc"; 20 compatible = "arrow,apq8096-db820c", "qcom,apq8096-sbc", "qcom,apq8096";
21}; 21};
diff --git a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
index 0ef90c6554a9..bf20c55a6bc4 100644
--- a/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
+++ b/arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
@@ -623,3 +623,17 @@
623 }; 623 };
624 }; 624 };
625}; 625};
626
627&spmi_bus {
628 pmic@0 {
629 pon@800 {
630 resin {
631 compatible = "qcom,pm8941-resin";
632 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
633 debounce = <15625>;
634 bias-pull-up;
635 linux,code = <KEY_VOLUMEDOWN>;
636 };
637 };
638 };
639};
diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
index 7b32b8990d62..d302d8d639a1 100644
--- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
@@ -18,9 +18,6 @@
18#include <dt-bindings/thermal/thermal.h> 18#include <dt-bindings/thermal/thermal.h>
19 19
20/ { 20/ {
21 model = "Qualcomm Technologies, Inc. MSM8916";
22 compatible = "qcom,msm8916";
23
24 interrupt-parent = <&intc>; 21 interrupt-parent = <&intc>;
25 22
26 #address-cells = <2>; 23 #address-cells = <2>;
@@ -1099,10 +1096,11 @@
1099 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1096 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1100 clock-names = "apb_pclk", "atclk"; 1097 clock-names = "apb_pclk", "atclk";
1101 1098
1102 port { 1099 in-ports {
1103 tpiu_in: endpoint { 1100 port {
1104 slave-mode; 1101 tpiu_in: endpoint {
1105 remote-endpoint = <&replicator_out1>; 1102 remote-endpoint = <&replicator_out1>;
1103 };
1106 }; 1104 };
1107 }; 1105 };
1108 }; 1106 };
@@ -1114,7 +1112,7 @@
1114 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1112 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1115 clock-names = "apb_pclk", "atclk"; 1113 clock-names = "apb_pclk", "atclk";
1116 1114
1117 ports { 1115 in-ports {
1118 #address-cells = <1>; 1116 #address-cells = <1>;
1119 #size-cells = <0>; 1117 #size-cells = <0>;
1120 1118
@@ -1132,12 +1130,13 @@
1132 port@4 { 1130 port@4 {
1133 reg = <4>; 1131 reg = <4>;
1134 funnel0_in4: endpoint { 1132 funnel0_in4: endpoint {
1135 slave-mode;
1136 remote-endpoint = <&funnel1_out>; 1133 remote-endpoint = <&funnel1_out>;
1137 }; 1134 };
1138 }; 1135 };
1139 port@8 { 1136 };
1140 reg = <0>; 1137
1138 out-ports {
1139 port {
1141 funnel0_out: endpoint { 1140 funnel0_out: endpoint {
1142 remote-endpoint = <&etf_in>; 1141 remote-endpoint = <&etf_in>;
1143 }; 1142 };
@@ -1152,7 +1151,7 @@
1152 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1151 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1153 clock-names = "apb_pclk", "atclk"; 1152 clock-names = "apb_pclk", "atclk";
1154 1153
1155 ports { 1154 out-ports {
1156 #address-cells = <1>; 1155 #address-cells = <1>;
1157 #size-cells = <0>; 1156 #size-cells = <0>;
1158 1157
@@ -1168,10 +1167,11 @@
1168 remote-endpoint = <&tpiu_in>; 1167 remote-endpoint = <&tpiu_in>;
1169 }; 1168 };
1170 }; 1169 };
1171 port@2 { 1170 };
1172 reg = <0>; 1171
1172 in-ports {
1173 port {
1173 replicator_in: endpoint { 1174 replicator_in: endpoint {
1174 slave-mode;
1175 remote-endpoint = <&etf_out>; 1175 remote-endpoint = <&etf_out>;
1176 }; 1176 };
1177 }; 1177 };
@@ -1185,19 +1185,16 @@
1185 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1185 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1186 clock-names = "apb_pclk", "atclk"; 1186 clock-names = "apb_pclk", "atclk";
1187 1187
1188 ports { 1188 in-ports {
1189 #address-cells = <1>; 1189 port {
1190 #size-cells = <0>;
1191
1192 port@0 {
1193 reg = <0>;
1194 etf_in: endpoint { 1190 etf_in: endpoint {
1195 slave-mode;
1196 remote-endpoint = <&funnel0_out>; 1191 remote-endpoint = <&funnel0_out>;
1197 }; 1192 };
1198 }; 1193 };
1199 port@1 { 1194 };
1200 reg = <0>; 1195
1196 out-ports {
1197 port {
1201 etf_out: endpoint { 1198 etf_out: endpoint {
1202 remote-endpoint = <&replicator_in>; 1199 remote-endpoint = <&replicator_in>;
1203 }; 1200 };
@@ -1212,10 +1209,11 @@
1212 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1209 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1213 clock-names = "apb_pclk", "atclk"; 1210 clock-names = "apb_pclk", "atclk";
1214 1211
1215 port { 1212 in-ports {
1216 etr_in: endpoint { 1213 port {
1217 slave-mode; 1214 etr_in: endpoint {
1218 remote-endpoint = <&replicator_out0>; 1215 remote-endpoint = <&replicator_out0>;
1216 };
1219 }; 1217 };
1220 }; 1218 };
1221 }; 1219 };
@@ -1227,40 +1225,38 @@
1227 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>; 1225 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
1228 clock-names = "apb_pclk", "atclk"; 1226 clock-names = "apb_pclk", "atclk";
1229 1227
1230 ports { 1228 in-ports {
1231 #address-cells = <1>; 1229 #address-cells = <1>;
1232 #size-cells = <0>; 1230 #size-cells = <0>;
1233 1231
1234 port@0 { 1232 port@0 {
1235 reg = <0>; 1233 reg = <0>;
1236 funnel1_in0: endpoint { 1234 funnel1_in0: endpoint {
1237 slave-mode;
1238 remote-endpoint = <&etm0_out>; 1235 remote-endpoint = <&etm0_out>;
1239 }; 1236 };
1240 }; 1237 };
1241 port@1 { 1238 port@1 {
1242 reg = <1>; 1239 reg = <1>;
1243 funnel1_in1: endpoint { 1240 funnel1_in1: endpoint {
1244 slave-mode;
1245 remote-endpoint = <&etm1_out>; 1241 remote-endpoint = <&etm1_out>;
1246 }; 1242 };
1247 }; 1243 };
1248 port@2 { 1244 port@2 {
1249 reg = <2>; 1245 reg = <2>;
1250 funnel1_in2: endpoint { 1246 funnel1_in2: endpoint {
1251 slave-mode;
1252 remote-endpoint = <&etm2_out>; 1247 remote-endpoint = <&etm2_out>;
1253 }; 1248 };
1254 }; 1249 };
1255 port@3 { 1250 port@3 {
1256 reg = <3>; 1251 reg = <3>;
1257 funnel1_in3: endpoint { 1252 funnel1_in3: endpoint {
1258 slave-mode;
1259 remote-endpoint = <&etm3_out>; 1253 remote-endpoint = <&etm3_out>;
1260 }; 1254 };
1261 }; 1255 };
1262 port@4 { 1256 };
1263 reg = <0>; 1257
1258 out-ports {
1259 port {
1264 funnel1_out: endpoint { 1260 funnel1_out: endpoint {
1265 remote-endpoint = <&funnel0_in4>; 1261 remote-endpoint = <&funnel0_in4>;
1266 }; 1262 };
@@ -1309,9 +1305,11 @@
1309 1305
1310 cpu = <&CPU0>; 1306 cpu = <&CPU0>;
1311 1307
1312 port { 1308 out-ports {
1313 etm0_out: endpoint { 1309 port {
1314 remote-endpoint = <&funnel1_in0>; 1310 etm0_out: endpoint {
1311 remote-endpoint = <&funnel1_in0>;
1312 };
1315 }; 1313 };
1316 }; 1314 };
1317 }; 1315 };
@@ -1325,9 +1323,11 @@
1325 1323
1326 cpu = <&CPU1>; 1324 cpu = <&CPU1>;
1327 1325
1328 port { 1326 out-ports {
1329 etm1_out: endpoint { 1327 port {
1330 remote-endpoint = <&funnel1_in1>; 1328 etm1_out: endpoint {
1329 remote-endpoint = <&funnel1_in1>;
1330 };
1331 }; 1331 };
1332 }; 1332 };
1333 }; 1333 };
@@ -1341,9 +1341,11 @@
1341 1341
1342 cpu = <&CPU2>; 1342 cpu = <&CPU2>;
1343 1343
1344 port { 1344 out-ports {
1345 etm2_out: endpoint { 1345 port {
1346 remote-endpoint = <&funnel1_in2>; 1346 etm2_out: endpoint {
1347 remote-endpoint = <&funnel1_in2>;
1348 };
1347 }; 1349 };
1348 }; 1350 };
1349 }; 1351 };
@@ -1357,9 +1359,11 @@
1357 1359
1358 cpu = <&CPU3>; 1360 cpu = <&CPU3>;
1359 1361
1360 port { 1362 out-ports {
1361 etm3_out: endpoint { 1363 port {
1362 remote-endpoint = <&funnel1_in3>; 1364 etm3_out: endpoint {
1365 remote-endpoint = <&funnel1_in3>;
1366 };
1363 }; 1367 };
1364 }; 1368 };
1365 }; 1369 };
diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index cd3865e7a270..b29fe80d7288 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -16,8 +16,6 @@
16#include <dt-bindings/clock/qcom,rpmcc.h> 16#include <dt-bindings/clock/qcom,rpmcc.h>
17 17
18/ { 18/ {
19 model = "Qualcomm Technologies, Inc. MSM8996";
20
21 interrupt-parent = <&intc>; 19 interrupt-parent = <&intc>;
22 20
23 #address-cells = <2>; 21 #address-cells = <2>;
@@ -409,11 +407,6 @@
409 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 407 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
410 }; 408 };
411 409
412 apcs: syscon@9820000 {
413 compatible = "syscon";
414 reg = <0x9820000 0x1000>;
415 };
416
417 apcs_glb: mailbox@9820000 { 410 apcs_glb: mailbox@9820000 {
418 compatible = "qcom,msm8996-apcs-hmss-global"; 411 compatible = "qcom,msm8996-apcs-hmss-global";
419 reg = <0x9820000 0x1000>; 412 reg = <0x9820000 0x1000>;
@@ -1140,7 +1133,7 @@
1140 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>; 1133 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
1141 1134
1142 label = "lpass"; 1135 label = "lpass";
1143 qcom,ipc = <&apcs 16 8>; 1136 mboxes = <&apcs_glb 8>;
1144 qcom,smd-edge = <1>; 1137 qcom,smd-edge = <1>;
1145 qcom,remote-pid = <2>; 1138 qcom,remote-pid = <2>;
1146 }; 1139 };
@@ -1152,7 +1145,7 @@
1152 1145
1153 interrupts = <0 158 IRQ_TYPE_EDGE_RISING>; 1146 interrupts = <0 158 IRQ_TYPE_EDGE_RISING>;
1154 1147
1155 qcom,ipc = <&apcs 16 10>; 1148 mboxes = <&apcs_glb 10>;
1156 1149
1157 qcom,local-pid = <0>; 1150 qcom,local-pid = <0>;
1158 qcom,remote-pid = <2>; 1151 qcom,remote-pid = <2>;
@@ -1176,7 +1169,7 @@
1176 1169
1177 interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>; 1170 interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
1178 1171
1179 qcom,ipc = <&apcs 16 14>; 1172 mboxes = <&apcs_glb 14>;
1180 1173
1181 qcom,local-pid = <0>; 1174 qcom,local-pid = <0>;
1182 qcom,remote-pid = <1>; 1175 qcom,remote-pid = <1>;
@@ -1200,7 +1193,7 @@
1200 1193
1201 interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>; 1194 interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
1202 1195
1203 qcom,ipc = <&apcs 16 26>; 1196 mboxes = <&apcs_glb 26>;
1204 1197
1205 qcom,local-pid = <0>; 1198 qcom,local-pid = <0>;
1206 qcom,remote-pid = <3>; 1199 qcom,remote-pid = <3>;
diff --git a/arch/arm64/boot/dts/qcom/msm8998-mtp.dts b/arch/arm64/boot/dts/qcom/msm8998-mtp.dts
new file mode 100644
index 000000000000..66540d2ca13b
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8998-mtp.dts
@@ -0,0 +1,13 @@
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3
4/dts-v1/;
5
6#include "msm8998-mtp.dtsi"
7
8/ {
9 model = "Qualcomm Technologies, Inc. MSM8998 v1 MTP";
10 compatible = "qcom,msm8998-mtp";
11
12 qcom,board-id = <8 0>;
13};
diff --git a/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi b/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
new file mode 100644
index 000000000000..b4276da1fb0d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8998-mtp.dtsi
@@ -0,0 +1,243 @@
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3
4#include "msm8998.dtsi"
5#include "pm8998.dtsi"
6#include "pmi8998.dtsi"
7#include "pm8005.dtsi"
8
9/ {
10 aliases {
11 serial0 = &blsp2_uart1;
12 };
13
14 chosen {
15 stdout-path = "serial0:115200n8";
16 };
17
18 thermal-zones {
19 battery-thermal {
20 polling-delay-passive = <250>;
21 polling-delay = <1000>;
22
23 thermal-sensors = <&tsens0 0>;
24
25 trips {
26 battery_crit: trip0 {
27 temperature = <60000>;
28 hysteresis = <2000>;
29 type = "critical";
30 };
31 };
32 };
33
34 skin-thermal {
35 polling-delay-passive = <250>;
36 polling-delay = <1000>;
37
38 thermal-sensors = <&tsens1 5>;
39
40 trips {
41 skin_alert: trip0 {
42 temperature = <44000>;
43 hysteresis = <2000>;
44 type = "passive";
45 };
46
47 skip_crit: trip1 {
48 temperature = <70000>;
49 hysteresis = <2000>;
50 type = "critical";
51 };
52 };
53 };
54 };
55
56 vph_pwr: vph-pwr-regulator {
57 compatible = "regulator-fixed";
58 regulator-name = "vph_pwr";
59 regulator-always-on;
60 regulator-boot-on;
61 };
62};
63
64&blsp2_uart1 {
65 status = "okay";
66};
67
68&rpm_requests {
69 pm8998-regulators {
70 compatible = "qcom,rpm-pm8998-regulators";
71
72 vdd_s1-supply = <&vph_pwr>;
73 vdd_s2-supply = <&vph_pwr>;
74 vdd_s3-supply = <&vph_pwr>;
75 vdd_s4-supply = <&vph_pwr>;
76 vdd_s5-supply = <&vph_pwr>;
77 vdd_s6-supply = <&vph_pwr>;
78 vdd_s7-supply = <&vph_pwr>;
79 vdd_s8-supply = <&vph_pwr>;
80 vdd_s9-supply = <&vph_pwr>;
81 vdd_s10-supply = <&vph_pwr>;
82 vdd_s11-supply = <&vph_pwr>;
83 vdd_s12-supply = <&vph_pwr>;
84 vdd_s13-supply = <&vph_pwr>;
85 vdd_l1_l27-supply = <&vreg_s7a_1p025>;
86 vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
87 vdd_l3_l11-supply = <&vreg_s7a_1p025>;
88 vdd_l4_l5-supply = <&vreg_s7a_1p025>;
89 vdd_l6-supply = <&vreg_s5a_2p04>;
90 vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
91 vdd_l9-supply = <&vreg_bob>;
92 vdd_l10_l23_l25-supply = <&vreg_bob>;
93 vdd_l13_l19_l21-supply = <&vreg_bob>;
94 vdd_l16_l28-supply = <&vreg_bob>;
95 vdd_l18_l22-supply = <&vreg_bob>;
96 vdd_l20_l24-supply = <&vreg_bob>;
97 vdd_l26-supply = <&vreg_s3a_1p35>;
98 vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
99
100 vreg_s3a_1p35: s3 {
101 regulator-min-microvolt = <1352000>;
102 regulator-max-microvolt = <1352000>;
103 };
104 vreg_s4a_1p8: s4 {
105 regulator-min-microvolt = <1800000>;
106 regulator-max-microvolt = <1800000>;
107 };
108 vreg_s5a_2p04: s5 {
109 regulator-min-microvolt = <1904000>;
110 regulator-max-microvolt = <2040000>;
111 };
112 vreg_s7a_1p025: s7 {
113 regulator-min-microvolt = <900000>;
114 regulator-max-microvolt = <1028000>;
115 };
116 vreg_l1a_0p875: l1 {
117 regulator-min-microvolt = <880000>;
118 regulator-max-microvolt = <880000>;
119 };
120 vreg_l2a_1p2: l2 {
121 regulator-min-microvolt = <1200000>;
122 regulator-max-microvolt = <1200000>;
123 };
124 vreg_l3a_1p0: l3 {
125 regulator-min-microvolt = <1000000>;
126 regulator-max-microvolt = <1000000>;
127 };
128 vreg_l5a_0p8: l5 {
129 regulator-min-microvolt = <800000>;
130 regulator-max-microvolt = <800000>;
131 };
132 vreg_l6a_1p8: l6 {
133 regulator-min-microvolt = <1808000>;
134 regulator-max-microvolt = <1808000>;
135 };
136 vreg_l7a_1p8: l7 {
137 regulator-min-microvolt = <1800000>;
138 regulator-max-microvolt = <1800000>;
139 };
140 vreg_l8a_1p2: l8 {
141 regulator-min-microvolt = <1200000>;
142 regulator-max-microvolt = <1200000>;
143 };
144 vreg_l9a_1p8: l9 {
145 regulator-min-microvolt = <1808000>;
146 regulator-max-microvolt = <2960000>;
147 };
148 vreg_l10a_1p8: l10 {
149 regulator-min-microvolt = <1808000>;
150 regulator-max-microvolt = <2960000>;
151 };
152 vreg_l11a_1p0: l11 {
153 regulator-min-microvolt = <1000000>;
154 regulator-max-microvolt = <1000000>;
155 };
156 vreg_l12a_1p8: l12 {
157 regulator-min-microvolt = <1800000>;
158 regulator-max-microvolt = <1800000>;
159 };
160 vreg_l13a_2p95: l13 {
161 regulator-min-microvolt = <1808000>;
162 regulator-max-microvolt = <2960000>;
163 };
164 vreg_l14a_1p88: l14 {
165 regulator-min-microvolt = <1880000>;
166 regulator-max-microvolt = <1880000>;
167 };
168 vreg_15a_1p8: l15 {
169 regulator-min-microvolt = <1800000>;
170 regulator-max-microvolt = <1800000>;
171 };
172 vreg_l16a_2p7: l16 {
173 regulator-min-microvolt = <2704000>;
174 regulator-max-microvolt = <2704000>;
175 };
176 vreg_l17a_1p3: l17 {
177 regulator-min-microvolt = <1304000>;
178 regulator-max-microvolt = <1304000>;
179 };
180 vreg_l18a_2p7: l18 {
181 regulator-min-microvolt = <2704000>;
182 regulator-max-microvolt = <2704000>;
183 };
184 vreg_l19a_3p0: l19 {
185 regulator-min-microvolt = <3008000>;
186 regulator-max-microvolt = <3008000>;
187 };
188 vreg_l20a_2p95: l20 {
189 regulator-min-microvolt = <2960000>;
190 regulator-max-microvolt = <2960000>;
191 };
192 vreg_l21a_2p95: l21 {
193 regulator-min-microvolt = <2960000>;
194 regulator-max-microvolt = <2960000>;
195 };
196 vreg_l22a_2p85: l22 {
197 regulator-min-microvolt = <2864000>;
198 regulator-max-microvolt = <2864000>;
199 };
200 vreg_l23a_3p3: l23 {
201 regulator-min-microvolt = <3312000>;
202 regulator-max-microvolt = <3312000>;
203 };
204 vreg_l24a_3p075: l24 {
205 regulator-min-microvolt = <3088000>;
206 regulator-max-microvolt = <3088000>;
207 };
208 vreg_l25a_3p3: l25 {
209 regulator-min-microvolt = <3104000>;
210 regulator-max-microvolt = <3312000>;
211 };
212 vreg_l26a_1p2: l26 {
213 regulator-min-microvolt = <1200000>;
214 regulator-max-microvolt = <1200000>;
215 };
216 vreg_l28_3p0: l28 {
217 regulator-min-microvolt = <3008000>;
218 regulator-max-microvolt = <3008000>;
219 };
220
221 vreg_lvs1a_1p8: lvs1 {
222 regulator-min-microvolt = <1800000>;
223 regulator-max-microvolt = <1800000>;
224 };
225
226 vreg_lvs2a_1p8: lvs2 {
227 regulator-min-microvolt = <1800000>;
228 regulator-max-microvolt = <1800000>;
229 };
230
231 };
232
233 pmi8998-regulators {
234 compatible = "qcom,rpm-pmi8998-regulators";
235
236 vdd_bob-supply = <&vph_pwr>;
237
238 vreg_bob: bob {
239 regulator-min-microvolt = <3312000>;
240 regulator-max-microvolt = <3600000>;
241 };
242 };
243};
diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qcom/msm8998.dtsi
new file mode 100644
index 000000000000..78227cce16db
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -0,0 +1,690 @@
1// SPDX-License-Identifier: GPL-2.0
2/* Copyright (c) 2016, The Linux Foundation. All rights reserved. */
3
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/clock/qcom,gcc-msm8998.h>
6
7/ {
8 interrupt-parent = <&intc>;
9
10 qcom,msm-id = <292 0x0>;
11
12 #address-cells = <2>;
13 #size-cells = <2>;
14
15 chosen { };
16
17 memory {
18 device_type = "memory";
19 /* We expect the bootloader to fill in the reg */
20 reg = <0 0 0 0>;
21 };
22
23 reserved-memory {
24 #address-cells = <2>;
25 #size-cells = <2>;
26 ranges;
27
28 memory@85800000 {
29 reg = <0x0 0x85800000 0x0 0x800000>;
30 no-map;
31 };
32
33 smem_mem: smem-mem@86000000 {
34 reg = <0x0 0x86000000 0x0 0x200000>;
35 no-map;
36 };
37
38 memory@86200000 {
39 reg = <0x0 0x86200000 0x0 0x2600000>;
40 no-map;
41 };
42
43 rmtfs {
44 compatible = "qcom,rmtfs-mem";
45
46 size = <0x0 0x200000>;
47 alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>;
48 no-map;
49
50 qcom,client-id = <1>;
51 qcom,vmid = <15>;
52 };
53 };
54
55 clocks {
56 xo_board {
57 compatible = "fixed-clock";
58 #clock-cells = <0>;
59 clock-frequency = <19200000>;
60 };
61
62 sleep_clk {
63 compatible = "fixed-clock";
64 #clock-cells = <0>;
65 clock-frequency = <32764>;
66 };
67 };
68
69 cpus {
70 #address-cells = <2>;
71 #size-cells = <0>;
72
73 CPU0: cpu@0 {
74 device_type = "cpu";
75 compatible = "arm,armv8";
76 reg = <0x0 0x0>;
77 enable-method = "psci";
78 efficiency = <1024>;
79 next-level-cache = <&L2_0>;
80 L2_0: l2-cache {
81 compatible = "arm,arch-cache";
82 cache-level = <2>;
83 };
84 L1_I_0: l1-icache {
85 compatible = "arm,arch-cache";
86 };
87 L1_D_0: l1-dcache {
88 compatible = "arm,arch-cache";
89 };
90 };
91
92 CPU1: cpu@1 {
93 device_type = "cpu";
94 compatible = "arm,armv8";
95 reg = <0x0 0x1>;
96 enable-method = "psci";
97 efficiency = <1024>;
98 next-level-cache = <&L2_0>;
99 L1_I_1: l1-icache {
100 compatible = "arm,arch-cache";
101 };
102 L1_D_1: l1-dcache {
103 compatible = "arm,arch-cache";
104 };
105 };
106
107 CPU2: cpu@2 {
108 device_type = "cpu";
109 compatible = "arm,armv8";
110 reg = <0x0 0x2>;
111 enable-method = "psci";
112 efficiency = <1024>;
113 next-level-cache = <&L2_0>;
114 L1_I_2: l1-icache {
115 compatible = "arm,arch-cache";
116 };
117 L1_D_2: l1-dcache {
118 compatible = "arm,arch-cache";
119 };
120 };
121
122 CPU3: cpu@3 {
123 device_type = "cpu";
124 compatible = "arm,armv8";
125 reg = <0x0 0x3>;
126 enable-method = "psci";
127 efficiency = <1024>;
128 next-level-cache = <&L2_0>;
129 L1_I_3: l1-icache {
130 compatible = "arm,arch-cache";
131 };
132 L1_D_3: l1-dcache {
133 compatible = "arm,arch-cache";
134 };
135 };
136
137 CPU4: cpu@100 {
138 device_type = "cpu";
139 compatible = "arm,armv8";
140 reg = <0x0 0x100>;
141 enable-method = "psci";
142 efficiency = <1536>;
143 next-level-cache = <&L2_1>;
144 L2_1: l2-cache {
145 compatible = "arm,arch-cache";
146 cache-level = <2>;
147 };
148 L1_I_100: l1-icache {
149 compatible = "arm,arch-cache";
150 };
151 L1_D_100: l1-dcache {
152 compatible = "arm,arch-cache";
153 };
154 };
155
156 CPU5: cpu@101 {
157 device_type = "cpu";
158 compatible = "arm,armv8";
159 reg = <0x0 0x101>;
160 enable-method = "psci";
161 efficiency = <1536>;
162 next-level-cache = <&L2_1>;
163 L1_I_101: l1-icache {
164 compatible = "arm,arch-cache";
165 };
166 L1_D_101: l1-dcache {
167 compatible = "arm,arch-cache";
168 };
169 };
170
171 CPU6: cpu@102 {
172 device_type = "cpu";
173 compatible = "arm,armv8";
174 reg = <0x0 0x102>;
175 enable-method = "psci";
176 efficiency = <1536>;
177 next-level-cache = <&L2_1>;
178 L1_I_102: l1-icache {
179 compatible = "arm,arch-cache";
180 };
181 L1_D_102: l1-dcache {
182 compatible = "arm,arch-cache";
183 };
184 };
185
186 CPU7: cpu@103 {
187 device_type = "cpu";
188 compatible = "arm,armv8";
189 reg = <0x0 0x103>;
190 enable-method = "psci";
191 efficiency = <1536>;
192 next-level-cache = <&L2_1>;
193 L1_I_103: l1-icache {
194 compatible = "arm,arch-cache";
195 };
196 L1_D_103: l1-dcache {
197 compatible = "arm,arch-cache";
198 };
199 };
200
201 cpu-map {
202 cluster0 {
203 core0 {
204 cpu = <&CPU0>;
205 };
206
207 core1 {
208 cpu = <&CPU1>;
209 };
210
211 core2 {
212 cpu = <&CPU2>;
213 };
214
215 core3 {
216 cpu = <&CPU3>;
217 };
218 };
219
220 cluster1 {
221 core0 {
222 cpu = <&CPU4>;
223 };
224
225 core1 {
226 cpu = <&CPU5>;
227 };
228
229 core2 {
230 cpu = <&CPU6>;
231 };
232
233 core3 {
234 cpu = <&CPU7>;
235 };
236 };
237 };
238 };
239
240 firmware {
241 scm {
242 compatible = "qcom,scm-msm8998";
243 };
244 };
245
246 tcsr_mutex: hwlock {
247 compatible = "qcom,tcsr-mutex";
248 syscon = <&tcsr_mutex_regs 0 0x1000>;
249 #hwlock-cells = <1>;
250 };
251
252 psci {
253 compatible = "arm,psci-1.0";
254 method = "smc";
255 };
256
257 rpm-glink {
258 compatible = "qcom,glink-rpm";
259
260 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
261 qcom,rpm-msg-ram = <&rpm_msg_ram>;
262 mboxes = <&apcs_glb 0>;
263
264 rpm_requests: rpm-requests {
265 compatible = "qcom,rpm-msm8998";
266 qcom,glink-channels = "rpm_requests";
267 };
268 };
269
270 smem {
271 compatible = "qcom,smem";
272 memory-region = <&smem_mem>;
273 hwlocks = <&tcsr_mutex 3>;
274 };
275
276 smp2p-lpass {
277 compatible = "qcom,smp2p";
278 qcom,smem = <443>, <429>;
279
280 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
281
282 mboxes = <&apcs_glb 10>;
283
284 qcom,local-pid = <0>;
285 qcom,remote-pid = <2>;
286
287 adsp_smp2p_out: master-kernel {
288 qcom,entry-name = "master-kernel";
289 #qcom,smem-state-cells = <1>;
290 };
291
292 adsp_smp2p_in: slave-kernel {
293 qcom,entry-name = "slave-kernel";
294
295 interrupt-controller;
296 #interrupt-cells = <2>;
297 };
298 };
299
300 smp2p-mpss {
301 compatible = "qcom,smp2p";
302 qcom,smem = <435>, <428>;
303 interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
304 mboxes = <&apcs_glb 14>;
305 qcom,local-pid = <0>;
306 qcom,remote-pid = <1>;
307
308 modem_smp2p_out: master-kernel {
309 qcom,entry-name = "master-kernel";
310 #qcom,smem-state-cells = <1>;
311 };
312
313 modem_smp2p_in: slave-kernel {
314 qcom,entry-name = "slave-kernel";
315 interrupt-controller;
316 #interrupt-cells = <2>;
317 };
318 };
319
320 smp2p-slpi {
321 compatible = "qcom,smp2p";
322 qcom,smem = <481>, <430>;
323 interrupts = <GIC_SPI 178 IRQ_TYPE_EDGE_RISING>;
324 mboxes = <&apcs_glb 26>;
325 qcom,local-pid = <0>;
326 qcom,remote-pid = <3>;
327
328 slpi_smp2p_out: master-kernel {
329 qcom,entry-name = "master-kernel";
330 #qcom,smem-state-cells = <1>;
331 };
332
333 slpi_smp2p_in: slave-kernel {
334 qcom,entry-name = "slave-kernel";
335 interrupt-controller;
336 #interrupt-cells = <2>;
337 };
338 };
339
340 thermal-zones {
341 cpu-thermal0 {
342 polling-delay-passive = <250>;
343 polling-delay = <1000>;
344
345 thermal-sensors = <&tsens0 6>;
346
347 trips {
348 cpu_alert0: trip0 {
349 temperature = <75000>;
350 hysteresis = <2000>;
351 type = "passive";
352 };
353
354 cpu_crit0: trip1 {
355 temperature = <110000>;
356 hysteresis = <2000>;
357 type = "critical";
358 };
359 };
360 };
361
362 cpu-thermal1 {
363 polling-delay-passive = <250>;
364 polling-delay = <1000>;
365
366 thermal-sensors = <&tsens0 7>;
367
368 trips {
369 cpu_alert1: trip0 {
370 temperature = <75000>;
371 hysteresis = <2000>;
372 type = "passive";
373 };
374
375 cpu_crit1: trip1 {
376 temperature = <110000>;
377 hysteresis = <2000>;
378 type = "critical";
379 };
380 };
381 };
382
383 cpu-thermal2 {
384 polling-delay-passive = <250>;
385 polling-delay = <1000>;
386
387 thermal-sensors = <&tsens0 8>;
388
389 trips {
390 cpu_alert2: trip0 {
391 temperature = <75000>;
392 hysteresis = <2000>;
393 type = "passive";
394 };
395
396 cpu_crit2: trip1 {
397 temperature = <110000>;
398 hysteresis = <2000>;
399 type = "critical";
400 };
401 };
402 };
403
404 cpu-thermal3 {
405 polling-delay-passive = <250>;
406 polling-delay = <1000>;
407
408 thermal-sensors = <&tsens0 9>;
409
410 trips {
411 cpu_alert3: trip0 {
412 temperature = <75000>;
413 hysteresis = <2000>;
414 type = "passive";
415 };
416
417 cpu_crit3: trip1 {
418 temperature = <110000>;
419 hysteresis = <2000>;
420 type = "critical";
421 };
422 };
423 };
424
425 cpu-thermal4 {
426 polling-delay-passive = <250>;
427 polling-delay = <1000>;
428
429 thermal-sensors = <&tsens0 10>;
430
431 trips {
432 cpu_alert4: trip0 {
433 temperature = <75000>;
434 hysteresis = <2000>;
435 type = "passive";
436 };
437
438 cpu_crit4: trip1 {
439 temperature = <110000>;
440 hysteresis = <2000>;
441 type = "critical";
442 };
443 };
444 };
445
446 cpu-thermal5 {
447 polling-delay-passive = <250>;
448 polling-delay = <1000>;
449
450 thermal-sensors = <&tsens0 11>;
451
452 trips {
453 cpu_alert5: trip0 {
454 temperature = <75000>;
455 hysteresis = <2000>;
456 type = "passive";
457 };
458
459 cpu_crit5: trip1 {
460 temperature = <110000>;
461 hysteresis = <2000>;
462 type = "critical";
463 };
464 };
465 };
466
467 cpu-thermal6 {
468 polling-delay-passive = <250>;
469 polling-delay = <1000>;
470
471 thermal-sensors = <&tsens1 0>;
472
473 trips {
474 cpu_alert6: trip0 {
475 temperature = <75000>;
476 hysteresis = <2000>;
477 type = "passive";
478 };
479
480 cpu_crit6: trip1 {
481 temperature = <110000>;
482 hysteresis = <2000>;
483 type = "critical";
484 };
485 };
486 };
487
488 cpu-thermal7 {
489 polling-delay-passive = <250>;
490 polling-delay = <1000>;
491
492 thermal-sensors = <&tsens1 1>;
493
494 trips {
495 cpu_alert7: trip0 {
496 temperature = <75000>;
497 hysteresis = <2000>;
498 type = "passive";
499 };
500
501 cpu_crit7: trip1 {
502 temperature = <110000>;
503 hysteresis = <2000>;
504 type = "critical";
505 };
506 };
507 };
508
509 gpu-thermal {
510 polling-delay-passive = <250>;
511 polling-delay = <1000>;
512
513 thermal-sensors = <&tsens1 3>;
514 };
515 };
516
517 timer {
518 compatible = "arm,armv8-timer";
519 interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
520 <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
521 <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
522 <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
523 };
524
525 soc: soc {
526 #address-cells = <1>;
527 #size-cells = <1>;
528 ranges = <0 0 0 0xffffffff>;
529 compatible = "simple-bus";
530
531 rpm_msg_ram: memory@68000 {
532 compatible = "qcom,rpm-msg-ram";
533 reg = <0x778000 0x7000>;
534 };
535
536 qfprom: qfprom@780000 {
537 compatible = "qcom,qfprom";
538 reg = <0x780000 0x621c>;
539 #address-cells = <1>;
540 #size-cells = <1>;
541 };
542
543 gcc: clock-controller@100000 {
544 compatible = "qcom,gcc-msm8998";
545 #clock-cells = <1>;
546 #reset-cells = <1>;
547 #power-domain-cells = <1>;
548 reg = <0x100000 0xb0000>;
549 };
550
551 tlmm: pinctrl@3400000 {
552 compatible = "qcom,msm8998-pinctrl";
553 reg = <0x3400000 0xc00000>;
554 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
555 gpio-controller;
556 #gpio-cells = <0x2>;
557 interrupt-controller;
558 #interrupt-cells = <0x2>;
559 };
560
561 spmi_bus: spmi@800f000 {
562 compatible = "qcom,spmi-pmic-arb";
563 reg = <0x800f000 0x1000>,
564 <0x8400000 0x1000000>,
565 <0x9400000 0x1000000>,
566 <0xa400000 0x220000>,
567 <0x800a000 0x3000>;
568 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
569 interrupt-names = "periph_irq";
570 interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
571 qcom,ee = <0>;
572 qcom,channel = <0>;
573 #address-cells = <2>;
574 #size-cells = <0>;
575 interrupt-controller;
576 #interrupt-cells = <4>;
577 cell-index = <0>;
578 };
579
580 tsens0: thermal@10aa000 {
581 compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
582 reg = <0x10aa000 0x2000>;
583
584 #qcom,sensors = <12>;
585 #thermal-sensor-cells = <1>;
586 };
587
588 tsens1: thermal@10ad000 {
589 compatible = "qcom,msm8998-tsens", "qcom,tsens-v2";
590 reg = <0x10ad000 0x2000>;
591
592 #qcom,sensors = <8>;
593 #thermal-sensor-cells = <1>;
594 };
595
596 tcsr_mutex_regs: syscon@1f40000 {
597 compatible = "syscon";
598 reg = <0x1f40000 0x20000>;
599 };
600
601 apcs_glb: mailbox@9820000 {
602 compatible = "qcom,msm8998-apcs-hmss-global";
603 reg = <0x17911000 0x1000>;
604
605 #mbox-cells = <1>;
606 };
607
608 blsp2_uart1: serial@c1b0000 {
609 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
610 reg = <0xc1b0000 0x1000>;
611 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
612 clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
613 <&gcc GCC_BLSP2_AHB_CLK>;
614 clock-names = "core", "iface";
615 status = "disabled";
616 };
617
618 timer@17920000 {
619 #address-cells = <1>;
620 #size-cells = <1>;
621 ranges;
622 compatible = "arm,armv7-timer-mem";
623 reg = <0x17920000 0x1000>;
624
625 frame@17921000 {
626 frame-number = <0>;
627 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
628 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
629 reg = <0x17921000 0x1000>,
630 <0x17922000 0x1000>;
631 };
632
633 frame@17923000 {
634 frame-number = <1>;
635 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
636 reg = <0x17923000 0x1000>;
637 status = "disabled";
638 };
639
640 frame@17924000 {
641 frame-number = <2>;
642 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
643 reg = <0x17924000 0x1000>;
644 status = "disabled";
645 };
646
647 frame@17925000 {
648 frame-number = <3>;
649 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
650 reg = <0x17925000 0x1000>;
651 status = "disabled";
652 };
653
654 frame@17926000 {
655 frame-number = <4>;
656 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
657 reg = <0x17926000 0x1000>;
658 status = "disabled";
659 };
660
661 frame@17927000 {
662 frame-number = <5>;
663 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
664 reg = <0x17927000 0x1000>;
665 status = "disabled";
666 };
667
668 frame@17928000 {
669 frame-number = <6>;
670 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
671 reg = <0x17928000 0x1000>;
672 status = "disabled";
673 };
674 };
675
676 intc: interrupt-controller@17a00000 {
677 compatible = "arm,gic-v3";
678 reg = <0x17a00000 0x10000>, /* GICD */
679 <0x17b00000 0x100000>; /* GICR * 8 */
680 #interrupt-cells = <3>;
681 #address-cells = <1>;
682 #size-cells = <1>;
683 ranges;
684 interrupt-controller;
685 #redistributor-regions = <1>;
686 redistributor-stride = <0x0 0x20000>;
687 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
688 };
689 };
690};
diff --git a/arch/arm64/boot/dts/qcom/pm8916.dtsi b/arch/arm64/boot/dts/qcom/pm8916.dtsi
index 196b1c0ceb9b..15a37cbcd216 100644
--- a/arch/arm64/boot/dts/qcom/pm8916.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm8916.dtsi
@@ -1,6 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/iio/qcom,spmi-vadc.h> 2#include <dt-bindings/iio/qcom,spmi-vadc.h>
3#include <dt-bindings/interrupt-controller/irq.h> 3#include <dt-bindings/interrupt-controller/irq.h>
4#include <dt-bindings/input/linux-event-codes.h>
4#include <dt-bindings/spmi/spmi.h> 5#include <dt-bindings/spmi/spmi.h>
5 6
6&spmi_bus { 7&spmi_bus {
@@ -18,12 +19,19 @@
18 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 19 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
19 }; 20 };
20 21
21 pwrkey@800 { 22 pon@800 {
22 compatible = "qcom,pm8941-pwrkey"; 23 compatible = "qcom,pm8916-pon";
23 reg = <0x800>; 24 reg = <0x800>;
24 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>; 25 mode-bootloader = <0x2>;
25 debounce = <15625>; 26 mode-recovery = <0x1>;
26 bias-pull-up; 27
28 pwrkey {
29 compatible = "qcom,pm8941-pwrkey";
30 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
31 debounce = <15625>;
32 bias-pull-up;
33 linux,code = <KEY_POWER>;
34 };
27 }; 35 };
28 36
29 pm8916_gpios: gpios@c000 { 37 pm8916_gpios: gpios@c000 {
diff --git a/arch/arm64/boot/dts/qcom/pm8994.dtsi b/arch/arm64/boot/dts/qcom/pm8994.dtsi
index 80024c0b1c7c..76b5a3e6a2b5 100644
--- a/arch/arm64/boot/dts/qcom/pm8994.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm8994.dtsi
@@ -1,6 +1,7 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/interrupt-controller/irq.h> 2#include <dt-bindings/interrupt-controller/irq.h>
3#include <dt-bindings/spmi/spmi.h> 3#include <dt-bindings/spmi/spmi.h>
4#include <dt-bindings/input/linux-event-codes.h>
4 5
5&spmi_bus { 6&spmi_bus {
6 7
@@ -17,6 +18,23 @@
17 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; 18 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
18 }; 19 };
19 20
21 pon@800 {
22 compatible = "qcom,pm8916-pon";
23
24 reg = <0x800>;
25 mode-bootloader = <0x2>;
26 mode-recovery = <0x1>;
27
28 pwrkey {
29 compatible = "qcom,pm8941-pwrkey";
30 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
31 debounce = <15625>;
32 bias-pull-up;
33 linux,code = <KEY_POWER>;
34 };
35
36 };
37
20 pm8994_gpios: gpios@c000 { 38 pm8994_gpios: gpios@c000 {
21 compatible = "qcom,pm8994-gpio"; 39 compatible = "qcom,pm8994-gpio";
22 reg = <0xc000>; 40 reg = <0xc000>;
diff --git a/arch/arm64/boot/dts/qcom/pm8998.dtsi b/arch/arm64/boot/dts/qcom/pm8998.dtsi
index 92bed1e7d4bb..048f19fa0150 100644
--- a/arch/arm64/boot/dts/qcom/pm8998.dtsi
+++ b/arch/arm64/boot/dts/qcom/pm8998.dtsi
@@ -1,8 +1,35 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/* Copyright 2018 Google LLC. */ 2/* Copyright 2018 Google LLC. */
3 3
4#include <dt-bindings/spmi/spmi.h> 4#include <dt-bindings/iio/qcom,spmi-vadc.h>
5#include <dt-bindings/input/linux-event-codes.h>
5#include <dt-bindings/interrupt-controller/irq.h> 6#include <dt-bindings/interrupt-controller/irq.h>
7#include <dt-bindings/spmi/spmi.h>
8#include <dt-bindings/thermal/thermal.h>
9
10/ {
11 thermal-zones {
12 pm8998 {
13 polling-delay-passive = <250>;
14 polling-delay = <1000>;
15
16 thermal-sensors = <&pm8998_temp>;
17
18 trips {
19 pm8998_alert0: pm8998-alert0 {
20 temperature = <105000>;
21 hysteresis = <2000>;
22 type = "passive";
23 };
24 pm8998_crit: pm8998-crit {
25 temperature = <125000>;
26 hysteresis = <2000>;
27 type = "critical";
28 };
29 };
30 };
31 };
32};
6 33
7&spmi_bus { 34&spmi_bus {
8 pm8998_lsid0: pmic@0 { 35 pm8998_lsid0: pmic@0 {
@@ -11,6 +38,52 @@
11 #address-cells = <1>; 38 #address-cells = <1>;
12 #size-cells = <0>; 39 #size-cells = <0>;
13 40
41 pm8998_pon: pon@800 {
42 compatible = "qcom,pm8916-pon";
43
44 reg = <0x800>;
45 mode-bootloader = <0x2>;
46 mode-recovery = <0x1>;
47
48 pwrkey {
49 compatible = "qcom,pm8941-pwrkey";
50 interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
51 debounce = <15625>;
52 bias-pull-up;
53 linux,code = <KEY_POWER>;
54 };
55 };
56
57 pm8998_temp: temp-alarm@2400 {
58 compatible = "qcom,spmi-temp-alarm";
59 reg = <0x2400>;
60 interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
61 #thermal-sensor-cells = <0>;
62 };
63
64 pm8998_coincell: coincell@2800 {
65 compatible = "qcom,pm8941-coincell";
66 reg = <0x2800>;
67
68 status = "disabled";
69 };
70
71 pm8998_adc: adc@3100 {
72 compatible = "qcom,spmi-adc-rev2";
73 reg = <0x3100>;
74 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
75 #address-cells = <1>;
76 #size-cells = <0>;
77 #io-channel-cells = <1>;
78 };
79
80 rtc@6000 {
81 compatible = "qcom,pm8941-rtc";
82 reg = <0x6000>, <0x6100>;
83 reg-names = "rtc", "alarm";
84 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
85 };
86
14 pm8998_gpio: gpios@c000 { 87 pm8998_gpio: gpios@c000 {
15 compatible = "qcom,pm8998-gpio", "qcom,spmi-gpio"; 88 compatible = "qcom,pm8998-gpio", "qcom,spmi-gpio";
16 reg = <0xc000>; 89 reg = <0xc000>;
diff --git a/arch/arm64/boot/dts/qcom/pmi8998.dtsi b/arch/arm64/boot/dts/qcom/pmi8998.dtsi
new file mode 100644
index 000000000000..da3285e216e2
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/pmi8998.dtsi
@@ -0,0 +1,40 @@
1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/interrupt-controller/irq.h>
3#include <dt-bindings/spmi/spmi.h>
4
5&spmi_bus {
6 pmi8998_lsid0: pmic@2 {
7 compatible = "qcom,pmi8998", "qcom,spmi-pmic";
8 reg = <0x2 SPMI_USID>;
9 #address-cells = <1>;
10 #size-cells = <0>;
11
12 pmi8998_gpio: gpios@c000 {
13 compatible = "qcom,pmi8998-gpio", "qcom,spmi-gpio";
14 reg = <0xc000>;
15 gpio-controller;
16 #gpio-cells = <2>;
17 interrupts = <0 0xc0 0 IRQ_TYPE_NONE>,
18 <0 0xc1 0 IRQ_TYPE_NONE>,
19 <0 0xc2 0 IRQ_TYPE_NONE>,
20 <0 0xc3 0 IRQ_TYPE_NONE>,
21 <0 0xc4 0 IRQ_TYPE_NONE>,
22 <0 0xc5 0 IRQ_TYPE_NONE>,
23 <0 0xc6 0 IRQ_TYPE_NONE>,
24 <0 0xc7 0 IRQ_TYPE_NONE>,
25 <0 0xc8 0 IRQ_TYPE_NONE>,
26 <0 0xc9 0 IRQ_TYPE_NONE>,
27 <0 0xca 0 IRQ_TYPE_NONE>,
28 <0 0xcb 0 IRQ_TYPE_NONE>,
29 <0 0xcc 0 IRQ_TYPE_NONE>,
30 <0 0xcd 0 IRQ_TYPE_NONE>;
31 };
32 };
33
34 pmi8998_lsid1: pmic@3 {
35 compatible = "qcom,pmi8998", "qcom,spmi-pmic";
36 reg = <0x3 SPMI_USID>;
37 #address-cells = <1>;
38 #size-cells = <0>;
39 };
40};
diff --git a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
index 6d651f314193..eedfaf8922e2 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts
@@ -7,6 +7,7 @@
7 7
8/dts-v1/; 8/dts-v1/;
9 9
10#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
10#include "sdm845.dtsi" 11#include "sdm845.dtsi"
11 12
12/ { 13/ {
@@ -20,6 +21,326 @@
20 chosen { 21 chosen {
21 stdout-path = "serial0:115200n8"; 22 stdout-path = "serial0:115200n8";
22 }; 23 };
24
25 vph_pwr: vph-pwr-regulator {
26 compatible = "regulator-fixed";
27 regulator-name = "vph_pwr";
28 regulator-min-microvolt = <3700000>;
29 regulator-max-microvolt = <3700000>;
30 };
31
32 /*
33 * Apparently RPMh does not provide support for PM8998 S4 because it
34 * is always-on; model it as a fixed regulator.
35 */
36 vreg_s4a_1p8: pm8998-smps4 {
37 compatible = "regulator-fixed";
38 regulator-name = "vreg_s4a_1p8";
39
40 regulator-min-microvolt = <1800000>;
41 regulator-max-microvolt = <1800000>;
42
43 regulator-always-on;
44 regulator-boot-on;
45
46 vin-supply = <&vph_pwr>;
47 };
48};
49
50&apps_rsc {
51 pm8998-rpmh-regulators {
52 compatible = "qcom,pm8998-rpmh-regulators";
53 qcom,pmic-id = "a";
54
55 vdd-s1-supply = <&vph_pwr>;
56 vdd-s2-supply = <&vph_pwr>;
57 vdd-s3-supply = <&vph_pwr>;
58 vdd-s4-supply = <&vph_pwr>;
59 vdd-s5-supply = <&vph_pwr>;
60 vdd-s6-supply = <&vph_pwr>;
61 vdd-s7-supply = <&vph_pwr>;
62 vdd-s8-supply = <&vph_pwr>;
63 vdd-s9-supply = <&vph_pwr>;
64 vdd-s10-supply = <&vph_pwr>;
65 vdd-s11-supply = <&vph_pwr>;
66 vdd-s12-supply = <&vph_pwr>;
67 vdd-s13-supply = <&vph_pwr>;
68 vdd-l1-l27-supply = <&vreg_s7a_1p025>;
69 vdd-l2-l8-l17-supply = <&vreg_s3a_1p35>;
70 vdd-l3-l11-supply = <&vreg_s7a_1p025>;
71 vdd-l4-l5-supply = <&vreg_s7a_1p025>;
72 vdd-l6-supply = <&vph_pwr>;
73 vdd-l7-l12-l14-l15-supply = <&vreg_s5a_2p04>;
74 vdd-l9-supply = <&vreg_bob>;
75 vdd-l10-l23-l25-supply = <&vreg_bob>;
76 vdd-l13-l19-l21-supply = <&vreg_bob>;
77 vdd-l16-l28-supply = <&vreg_bob>;
78 vdd-l18-l22-supply = <&vreg_bob>;
79 vdd-l20-l24-supply = <&vreg_bob>;
80 vdd-l26-supply = <&vreg_s3a_1p35>;
81 vin-lvs-1-2-supply = <&vreg_s4a_1p8>;
82
83 vreg_s2a_1p125: smps2 {
84 regulator-min-microvolt = <1100000>;
85 regulator-max-microvolt = <1100000>;
86 };
87
88 vreg_s3a_1p35: smps3 {
89 regulator-min-microvolt = <1352000>;
90 regulator-max-microvolt = <1352000>;
91 };
92
93 vreg_s5a_2p04: smps5 {
94 regulator-min-microvolt = <1904000>;
95 regulator-max-microvolt = <2040000>;
96 };
97
98 vreg_s7a_1p025: smps7 {
99 regulator-min-microvolt = <900000>;
100 regulator-max-microvolt = <1028000>;
101 };
102
103 vdd_qusb_hs0:
104 vdda_hp_pcie_core:
105 vdda_mipi_csi0_0p9:
106 vdda_mipi_csi1_0p9:
107 vdda_mipi_csi2_0p9:
108 vdda_mipi_dsi0_pll:
109 vdda_mipi_dsi1_pll:
110 vdda_qlink_lv:
111 vdda_qlink_lv_ck:
112 vdda_qrefs_0p875:
113 vdda_pcie_core:
114 vdda_pll_cc_ebi01:
115 vdda_pll_cc_ebi23:
116 vdda_sp_sensor:
117 vdda_ufs1_core:
118 vdda_ufs2_core:
119 vdda_usb1_ss_core:
120 vdda_usb2_ss_core:
121 vreg_l1a_0p875: ldo1 {
122 regulator-min-microvolt = <880000>;
123 regulator-max-microvolt = <880000>;
124 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
125 };
126
127 vddpx_10:
128 vreg_l2a_1p2: ldo2 {
129 regulator-min-microvolt = <1200000>;
130 regulator-max-microvolt = <1200000>;
131 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
132 regulator-always-on;
133 };
134
135 vreg_l3a_1p0: ldo3 {
136 regulator-min-microvolt = <1000000>;
137 regulator-max-microvolt = <1000000>;
138 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
139 };
140
141 vdd_wcss_cx:
142 vdd_wcss_mx:
143 vdda_wcss_pll:
144 vreg_l5a_0p8: ldo5 {
145 regulator-min-microvolt = <800000>;
146 regulator-max-microvolt = <800000>;
147 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
148 };
149
150 vddpx_13:
151 vreg_l6a_1p8: ldo6 {
152 regulator-min-microvolt = <1856000>;
153 regulator-max-microvolt = <1856000>;
154 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
155 };
156
157 vreg_l7a_1p8: ldo7 {
158 regulator-min-microvolt = <1800000>;
159 regulator-max-microvolt = <1800000>;
160 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
161 };
162
163 vreg_l8a_1p2: ldo8 {
164 regulator-min-microvolt = <1200000>;
165 regulator-max-microvolt = <1248000>;
166 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
167 };
168
169 vreg_l9a_1p8: ldo9 {
170 regulator-min-microvolt = <1704000>;
171 regulator-max-microvolt = <2928000>;
172 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
173 };
174
175 vreg_l10a_1p8: ldo10 {
176 regulator-min-microvolt = <1704000>;
177 regulator-max-microvolt = <2928000>;
178 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
179 };
180
181 vreg_l11a_1p0: ldo11 {
182 regulator-min-microvolt = <1000000>;
183 regulator-max-microvolt = <1048000>;
184 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
185 };
186
187 vdd_qfprom:
188 vdd_qfprom_sp:
189 vdda_apc1_cs_1p8:
190 vdda_gfx_cs_1p8:
191 vdda_qrefs_1p8:
192 vdda_qusb_hs0_1p8:
193 vddpx_11:
194 vreg_l12a_1p8: ldo12 {
195 regulator-min-microvolt = <1800000>;
196 regulator-max-microvolt = <1800000>;
197 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
198 };
199
200 vddpx_2:
201 vreg_l13a_2p95: ldo13 {
202 regulator-min-microvolt = <1800000>;
203 regulator-max-microvolt = <2960000>;
204 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
205 };
206
207 vreg_l14a_1p88: ldo14 {
208 regulator-min-microvolt = <1800000>;
209 regulator-max-microvolt = <1800000>;
210 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
211 };
212
213 vreg_l15a_1p8: ldo15 {
214 regulator-min-microvolt = <1800000>;
215 regulator-max-microvolt = <1800000>;
216 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
217 };
218
219 vreg_l16a_2p7: ldo16 {
220 regulator-min-microvolt = <2704000>;
221 regulator-max-microvolt = <2704000>;
222 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
223 };
224
225 vreg_l17a_1p3: ldo17 {
226 regulator-min-microvolt = <1304000>;
227 regulator-max-microvolt = <1304000>;
228 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
229 };
230
231 vreg_l18a_2p7: ldo18 {
232 regulator-min-microvolt = <2704000>;
233 regulator-max-microvolt = <2960000>;
234 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
235 };
236
237 vreg_l19a_3p0: ldo19 {
238 regulator-min-microvolt = <2856000>;
239 regulator-max-microvolt = <3104000>;
240 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
241 };
242
243 vreg_l20a_2p95: ldo20 {
244 regulator-min-microvolt = <2704000>;
245 regulator-max-microvolt = <2960000>;
246 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
247 };
248
249 vreg_l21a_2p95: ldo21 {
250 regulator-min-microvolt = <2704000>;
251 regulator-max-microvolt = <2960000>;
252 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
253 };
254
255 vreg_l22a_2p85: ldo22 {
256 regulator-min-microvolt = <2864000>;
257 regulator-max-microvolt = <3312000>;
258 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
259 };
260
261 vreg_l23a_3p3: ldo23 {
262 regulator-min-microvolt = <3000000>;
263 regulator-max-microvolt = <3312000>;
264 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
265 };
266
267 vdda_qusb_hs0_3p1:
268 vreg_l24a_3p075: ldo24 {
269 regulator-min-microvolt = <3088000>;
270 regulator-max-microvolt = <3088000>;
271 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
272 };
273
274 vreg_l25a_3p3: ldo25 {
275 regulator-min-microvolt = <3300000>;
276 regulator-max-microvolt = <3312000>;
277 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
278 };
279
280 vdda_hp_pcie_1p2:
281 vdda_hv_ebi0:
282 vdda_hv_ebi1:
283 vdda_hv_ebi2:
284 vdda_hv_ebi3:
285 vdda_mipi_csi_1p25:
286 vdda_mipi_dsi0_1p2:
287 vdda_mipi_dsi1_1p2:
288 vdda_pcie_1p2:
289 vdda_ufs1_1p2:
290 vdda_ufs2_1p2:
291 vdda_usb1_ss_1p2:
292 vdda_usb2_ss_1p2:
293 vreg_l26a_1p2: ldo26 {
294 regulator-min-microvolt = <1200000>;
295 regulator-max-microvolt = <1200000>;
296 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
297 };
298
299 vreg_l28a_3p0: ldo28 {
300 regulator-min-microvolt = <2856000>;
301 regulator-max-microvolt = <3008000>;
302 regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
303 };
304
305 vreg_lvs1a_1p8: lvs1 {
306 regulator-min-microvolt = <1800000>;
307 regulator-max-microvolt = <1800000>;
308 };
309
310 vreg_lvs2a_1p8: lvs2 {
311 regulator-min-microvolt = <1800000>;
312 regulator-max-microvolt = <1800000>;
313 };
314 };
315
316 pmi8998-rpmh-regulators {
317 compatible = "qcom,pmi8998-rpmh-regulators";
318 qcom,pmic-id = "b";
319
320 vdd-bob-supply = <&vph_pwr>;
321
322 vreg_bob: bob {
323 regulator-min-microvolt = <3312000>;
324 regulator-max-microvolt = <3600000>;
325 regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
326 regulator-allow-bypass;
327 };
328 };
329
330 pm8005-rpmh-regulators {
331 compatible = "qcom,pm8005-rpmh-regulators";
332 qcom,pmic-id = "c";
333
334 vdd-s1-supply = <&vph_pwr>;
335 vdd-s2-supply = <&vph_pwr>;
336 vdd-s3-supply = <&vph_pwr>;
337 vdd-s4-supply = <&vph_pwr>;
338
339 vreg_s3c_0p6: smps3 {
340 regulator-min-microvolt = <600000>;
341 regulator-max-microvolt = <600000>;
342 };
343 };
23}; 344};
24 345
25&i2c10 { 346&i2c10 {
@@ -35,6 +356,67 @@
35 status = "okay"; 356 status = "okay";
36}; 357};
37 358
359&usb_1 {
360 status = "okay";
361};
362
363&usb_1_dwc3 {
364 /* Until we have Type C hooked up we'll force this as host. */
365 dr_mode = "host";
366};
367
368&usb_1_hsphy {
369 status = "okay";
370
371 vdd-supply = <&vdda_usb1_ss_core>;
372 vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
373 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
374
375 qcom,imp-res-offset-value = <8>;
376 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_21_6_MA>;
377 qcom,preemphasis-level = <QUSB2_V2_PREEMPHASIS_5_PERCENT>;
378 qcom,preemphasis-width = <QUSB2_V2_PREEMPHASIS_WIDTH_HALF_BIT>;
379};
380
381&usb_1_qmpphy {
382 status = "okay";
383
384 vdda-phy-supply = <&vdda_usb1_ss_1p2>;
385 vdda-pll-supply = <&vdda_usb1_ss_core>;
386};
387
388&usb_2 {
389 status = "okay";
390};
391
392&usb_2_dwc3 {
393 /*
394 * Though the USB block on SDM845 can support host, there's no vbus
395 * signal for this port on MTP. Thus (unless you have a non-compliant
396 * hub that works without vbus) the only sensible thing is to force
397 * peripheral mode.
398 */
399 dr_mode = "peripheral";
400};
401
402&usb_2_hsphy {
403 status = "okay";
404
405 vdd-supply = <&vdda_usb2_ss_core>;
406 vdda-pll-supply = <&vdda_qusb_hs0_1p8>;
407 vdda-phy-dpdm-supply = <&vdda_qusb_hs0_3p1>;
408
409 qcom,imp-res-offset-value = <8>;
410 qcom,hstx-trim-value = <QUSB2_V2_HSTX_TRIM_22_8_MA>;
411};
412
413&usb_2_qmpphy {
414 status = "okay";
415
416 vdda-phy-supply = <&vdda_usb2_ss_1p2>;
417 vdda-pll-supply = <&vdda_usb2_ss_core>;
418};
419
38/* PINCTRL - additions to nodes defined in sdm845.dtsi */ 420/* PINCTRL - additions to nodes defined in sdm845.dtsi */
39 421
40&qup_i2c10_default { 422&qup_i2c10_default {
diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index 0c9a2aa6a1b5..b72bdb0a31a5 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -5,9 +5,12 @@
5 * Copyright (c) 2018, The Linux Foundation. All rights reserved. 5 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
6 */ 6 */
7 7
8#include <dt-bindings/clock/qcom,dispcc-sdm845.h>
8#include <dt-bindings/clock/qcom,gcc-sdm845.h> 9#include <dt-bindings/clock/qcom,gcc-sdm845.h>
9#include <dt-bindings/clock/qcom,rpmh.h> 10#include <dt-bindings/clock/qcom,rpmh.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h> 11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include <dt-bindings/phy/phy-qcom-qusb2.h>
13#include <dt-bindings/reset/qcom,sdm845-aoss.h>
11#include <dt-bindings/soc/qcom,rpmh-rsc.h> 14#include <dt-bindings/soc/qcom,rpmh-rsc.h>
12 15
13/ { 16/ {
@@ -230,6 +233,94 @@
230 hwlocks = <&tcsr_mutex 3>; 233 hwlocks = <&tcsr_mutex 3>;
231 }; 234 };
232 235
236 smp2p-cdsp {
237 compatible = "qcom,smp2p";
238 qcom,smem = <94>, <432>;
239
240 interrupts = <GIC_SPI 576 IRQ_TYPE_EDGE_RISING>;
241
242 mboxes = <&apss_shared 6>;
243
244 qcom,local-pid = <0>;
245 qcom,remote-pid = <5>;
246
247 cdsp_smp2p_out: master-kernel {
248 qcom,entry-name = "master-kernel";
249 #qcom,smem-state-cells = <1>;
250 };
251
252 cdsp_smp2p_in: slave-kernel {
253 qcom,entry-name = "slave-kernel";
254
255 interrupt-controller;
256 #interrupt-cells = <2>;
257 };
258 };
259
260 smp2p-lpass {
261 compatible = "qcom,smp2p";
262 qcom,smem = <443>, <429>;
263
264 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
265
266 mboxes = <&apss_shared 10>;
267
268 qcom,local-pid = <0>;
269 qcom,remote-pid = <2>;
270
271 adsp_smp2p_out: master-kernel {
272 qcom,entry-name = "master-kernel";
273 #qcom,smem-state-cells = <1>;
274 };
275
276 adsp_smp2p_in: slave-kernel {
277 qcom,entry-name = "slave-kernel";
278
279 interrupt-controller;
280 #interrupt-cells = <2>;
281 };
282 };
283
284 smp2p-mpss {
285 compatible = "qcom,smp2p";
286 qcom,smem = <435>, <428>;
287 interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
288 mboxes = <&apss_shared 14>;
289 qcom,local-pid = <0>;
290 qcom,remote-pid = <1>;
291
292 modem_smp2p_out: master-kernel {
293 qcom,entry-name = "master-kernel";
294 #qcom,smem-state-cells = <1>;
295 };
296
297 modem_smp2p_in: slave-kernel {
298 qcom,entry-name = "slave-kernel";
299 interrupt-controller;
300 #interrupt-cells = <2>;
301 };
302 };
303
304 smp2p-slpi {
305 compatible = "qcom,smp2p";
306 qcom,smem = <481>, <430>;
307 interrupts = <GIC_SPI 172 IRQ_TYPE_EDGE_RISING>;
308 mboxes = <&apss_shared 26>;
309 qcom,local-pid = <0>;
310 qcom,remote-pid = <3>;
311
312 slpi_smp2p_out: master-kernel {
313 qcom,entry-name = "master-kernel";
314 #qcom,smem-state-cells = <1>;
315 };
316
317 slpi_smp2p_in: slave-kernel {
318 qcom,entry-name = "slave-kernel";
319 interrupt-controller;
320 #interrupt-cells = <2>;
321 };
322 };
323
233 psci { 324 psci {
234 compatible = "arm,psci-1.0"; 325 compatible = "arm,psci-1.0";
235 method = "smc"; 326 method = "smc";
@@ -249,6 +340,23 @@
249 #power-domain-cells = <1>; 340 #power-domain-cells = <1>;
250 }; 341 };
251 342
343 qfprom@784000 {
344 compatible = "qcom,qfprom";
345 reg = <0x784000 0x8ff>;
346 #address-cells = <1>;
347 #size-cells = <1>;
348
349 qusb2p_hstx_trim: hstx-trim-primary@1eb {
350 reg = <0x1eb 0x1>;
351 bits = <1 4>;
352 };
353
354 qusb2s_hstx_trim: hstx-trim-secondary@1eb {
355 reg = <0x1eb 0x2>;
356 bits = <6 4>;
357 };
358 };
359
252 qupv3_id_0: geniqup@8c0000 { 360 qupv3_id_0: geniqup@8c0000 {
253 compatible = "qcom,geni-se-qup"; 361 compatible = "qcom,geni-se-qup";
254 reg = <0x8c0000 0x6000>; 362 reg = <0x8c0000 0x6000>;
@@ -962,6 +1070,192 @@
962 }; 1070 };
963 }; 1071 };
964 1072
1073 usb_1_hsphy: phy@88e2000 {
1074 compatible = "qcom,sdm845-qusb2-phy";
1075 reg = <0x88e2000 0x400>;
1076 status = "disabled";
1077 #phy-cells = <0>;
1078
1079 clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1080 <&rpmhcc RPMH_CXO_CLK>;
1081 clock-names = "cfg_ahb", "ref";
1082
1083 resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
1084
1085 nvmem-cells = <&qusb2p_hstx_trim>;
1086 };
1087
1088 usb_2_hsphy: phy@88e3000 {
1089 compatible = "qcom,sdm845-qusb2-phy";
1090 reg = <0x88e3000 0x400>;
1091 status = "disabled";
1092 #phy-cells = <0>;
1093
1094 clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1095 <&rpmhcc RPMH_CXO_CLK>;
1096 clock-names = "cfg_ahb", "ref";
1097
1098 resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
1099
1100 nvmem-cells = <&qusb2s_hstx_trim>;
1101 };
1102
1103 usb_1_qmpphy: phy@88e9000 {
1104 compatible = "qcom,sdm845-qmp-usb3-phy";
1105 reg = <0x88e9000 0x18c>,
1106 <0x88e8000 0x10>;
1107 reg-names = "reg-base", "dp_com";
1108 status = "disabled";
1109 #clock-cells = <1>;
1110 #address-cells = <1>;
1111 #size-cells = <1>;
1112 ranges;
1113
1114 clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
1115 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1116 <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
1117 <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
1118 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
1119
1120 resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
1121 <&gcc GCC_USB3_PHY_PRIM_BCR>;
1122 reset-names = "phy", "common";
1123
1124 usb_1_ssphy: lane@88e9200 {
1125 reg = <0x88e9200 0x128>,
1126 <0x88e9400 0x200>,
1127 <0x88e9c00 0x218>,
1128 <0x88e9a00 0x100>;
1129 #phy-cells = <0>;
1130 clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
1131 clock-names = "pipe0";
1132 clock-output-names = "usb3_phy_pipe_clk_src";
1133 };
1134 };
1135
1136 usb_2_qmpphy: phy@88eb000 {
1137 compatible = "qcom,sdm845-qmp-usb3-uni-phy";
1138 reg = <0x88eb000 0x18c>;
1139 status = "disabled";
1140 #clock-cells = <1>;
1141 #address-cells = <1>;
1142 #size-cells = <1>;
1143 ranges;
1144
1145 clocks = <&gcc GCC_USB3_SEC_PHY_AUX_CLK>,
1146 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
1147 <&gcc GCC_USB3_SEC_CLKREF_CLK>,
1148 <&gcc GCC_USB3_SEC_PHY_COM_AUX_CLK>;
1149 clock-names = "aux", "cfg_ahb", "ref", "com_aux";
1150
1151 resets = <&gcc GCC_USB3PHY_PHY_SEC_BCR>,
1152 <&gcc GCC_USB3_PHY_SEC_BCR>;
1153 reset-names = "phy", "common";
1154
1155 usb_2_ssphy: lane@88eb200 {
1156 reg = <0x88eb200 0x128>,
1157 <0x88eb400 0x1fc>,
1158 <0x88eb800 0x218>,
1159 <0x88e9600 0x70>;
1160 #phy-cells = <0>;
1161 clocks = <&gcc GCC_USB3_SEC_PHY_PIPE_CLK>;
1162 clock-names = "pipe0";
1163 clock-output-names = "usb3_uni_phy_pipe_clk_src";
1164 };
1165 };
1166
1167 usb_1: usb@a6f8800 {
1168 compatible = "qcom,sdm845-dwc3", "qcom,dwc3";
1169 reg = <0xa6f8800 0x400>;
1170 status = "disabled";
1171 #address-cells = <1>;
1172 #size-cells = <1>;
1173 ranges;
1174
1175 clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1176 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1177 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
1178 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1179 <&gcc GCC_USB30_PRIM_SLEEP_CLK>;
1180 clock-names = "cfg_noc", "core", "iface", "mock_utmi",
1181 "sleep";
1182
1183 assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1184 <&gcc GCC_USB30_PRIM_MASTER_CLK>;
1185 assigned-clock-rates = <19200000>, <150000000>;
1186
1187 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
1188 <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
1189 <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
1190 <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
1191 interrupt-names = "hs_phy_irq", "ss_phy_irq",
1192 "dm_hs_phy_irq", "dp_hs_phy_irq";
1193
1194 power-domains = <&gcc USB30_PRIM_GDSC>;
1195
1196 resets = <&gcc GCC_USB30_PRIM_BCR>;
1197
1198 usb_1_dwc3: dwc3@a600000 {
1199 compatible = "snps,dwc3";
1200 reg = <0xa600000 0xcd00>;
1201 interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
1202 snps,dis_u2_susphy_quirk;
1203 snps,dis_enblslpm_quirk;
1204 phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
1205 phy-names = "usb2-phy", "usb3-phy";
1206 };
1207 };
1208
1209 usb_2: usb@a8f8800 {
1210 compatible = "qcom,sdm845-dwc3", "qcom,dwc3";
1211 reg = <0xa8f8800 0x400>;
1212 status = "disabled";
1213 #address-cells = <1>;
1214 #size-cells = <1>;
1215 ranges;
1216
1217 clocks = <&gcc GCC_CFG_NOC_USB3_SEC_AXI_CLK>,
1218 <&gcc GCC_USB30_SEC_MASTER_CLK>,
1219 <&gcc GCC_AGGRE_USB3_SEC_AXI_CLK>,
1220 <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
1221 <&gcc GCC_USB30_SEC_SLEEP_CLK>;
1222 clock-names = "cfg_noc", "core", "iface", "mock_utmi",
1223 "sleep";
1224
1225 assigned-clocks = <&gcc GCC_USB30_SEC_MOCK_UTMI_CLK>,
1226 <&gcc GCC_USB30_SEC_MASTER_CLK>;
1227 assigned-clock-rates = <19200000>, <150000000>;
1228
1229 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
1230 <GIC_SPI 487 IRQ_TYPE_LEVEL_HIGH>,
1231 <GIC_SPI 490 IRQ_TYPE_LEVEL_HIGH>,
1232 <GIC_SPI 491 IRQ_TYPE_LEVEL_HIGH>;
1233 interrupt-names = "hs_phy_irq", "ss_phy_irq",
1234 "dm_hs_phy_irq", "dp_hs_phy_irq";
1235
1236 power-domains = <&gcc USB30_SEC_GDSC>;
1237
1238 resets = <&gcc GCC_USB30_SEC_BCR>;
1239
1240 usb_2_dwc3: dwc3@a800000 {
1241 compatible = "snps,dwc3";
1242 reg = <0xa800000 0xcd00>;
1243 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1244 snps,dis_u2_susphy_quirk;
1245 snps,dis_enblslpm_quirk;
1246 phys = <&usb_2_hsphy>, <&usb_2_ssphy>;
1247 phy-names = "usb2-phy", "usb3-phy";
1248 };
1249 };
1250
1251 dispcc: clock-controller@af00000 {
1252 compatible = "qcom,sdm845-dispcc";
1253 reg = <0xaf00000 0x10000>;
1254 #clock-cells = <1>;
1255 #reset-cells = <1>;
1256 #power-domain-cells = <1>;
1257 };
1258
965 tsens0: thermal-sensor@c263000 { 1259 tsens0: thermal-sensor@c263000 {
966 compatible = "qcom,sdm845-tsens", "qcom,tsens-v2"; 1260 compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
967 reg = <0xc263000 0x1ff>, /* TM */ 1261 reg = <0xc263000 0x1ff>, /* TM */
@@ -978,6 +1272,12 @@
978 #thermal-sensor-cells = <1>; 1272 #thermal-sensor-cells = <1>;
979 }; 1273 };
980 1274
1275 aoss_reset: reset-controller@c2a0000 {
1276 compatible = "qcom,sdm845-aoss-cc";
1277 reg = <0xc2a0000 0x31000>;
1278 #reset-cells = <1>;
1279 };
1280
981 spmi_bus: spmi@c440000 { 1281 spmi_bus: spmi@c440000 {
982 compatible = "qcom,spmi-pmic-arb"; 1282 compatible = "qcom,spmi-pmic-arb";
983 reg = <0xc440000 0x1100>, 1283 reg = <0xc440000 0x1100>,
diff --git a/arch/arm64/boot/dts/renesas/Makefile b/arch/arm64/boot/dts/renesas/Makefile
index 9e2394bc3c62..a8ce6594342d 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -8,6 +8,8 @@ dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb
8dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-m3ulcb-kf.dtb 8dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-m3ulcb-kf.dtb
9dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-xs.dtb 9dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-xs.dtb
10dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-salvator-x.dtb r8a77965-salvator-xs.dtb 10dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-salvator-x.dtb r8a77965-salvator-xs.dtb
11dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-m3nulcb.dtb
12dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-m3nulcb-kf.dtb
11dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb r8a77970-v3msk.dtb 13dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb r8a77970-v3msk.dtb
12dtb-$(CONFIG_ARCH_R8A77980) += r8a77980-condor.dtb r8a77980-v3hsk.dtb 14dtb-$(CONFIG_ARCH_R8A77980) += r8a77980-condor.dtb r8a77980-v3hsk.dtb
13dtb-$(CONFIG_ARCH_R8A77990) += r8a77990-ebisu.dtb 15dtb-$(CONFIG_ARCH_R8A77990) += r8a77990-ebisu.dtb
diff --git a/arch/arm64/boot/dts/renesas/r8a774a1.dtsi b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
new file mode 100644
index 000000000000..012cbb64246e
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a774a1.dtsi
@@ -0,0 +1,1663 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the r8a774a1 SoC
4 *
5 * Copyright (C) 2018 Renesas Electronics Corp.
6 */
7
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/clock/renesas-cpg-mssr.h>
11
12/ {
13 compatible = "renesas,r8a774a1";
14 #address-cells = <2>;
15 #size-cells = <2>;
16
17 aliases {
18 i2c0 = &i2c0;
19 i2c1 = &i2c1;
20 i2c2 = &i2c2;
21 i2c3 = &i2c3;
22 i2c4 = &i2c4;
23 i2c5 = &i2c5;
24 i2c6 = &i2c6;
25 i2c7 = &i2c_dvfs;
26 };
27
28 /*
29 * The external audio clocks are configured as 0 Hz fixed frequency
30 * clocks by default.
31 * Boards that provide audio clocks should override them.
32 */
33 audio_clk_a: audio_clk_a {
34 compatible = "fixed-clock";
35 #clock-cells = <0>;
36 clock-frequency = <0>;
37 };
38
39 audio_clk_b: audio_clk_b {
40 compatible = "fixed-clock";
41 #clock-cells = <0>;
42 clock-frequency = <0>;
43 };
44
45 audio_clk_c: audio_clk_c {
46 compatible = "fixed-clock";
47 #clock-cells = <0>;
48 clock-frequency = <0>;
49 };
50
51 /* External CAN clock - to be overridden by boards that provide it */
52 can_clk: can {
53 compatible = "fixed-clock";
54 #clock-cells = <0>;
55 clock-frequency = <0>;
56 };
57
58 cpus {
59 #address-cells = <1>;
60 #size-cells = <0>;
61
62 a57_0: cpu@0 {
63 compatible = "arm,cortex-a57", "arm,armv8";
64 reg = <0x0>;
65 device_type = "cpu";
66 power-domains = <&sysc 0>;
67 next-level-cache = <&L2_CA57>;
68 enable-method = "psci";
69 clocks = <&cpg CPG_CORE 0>;
70 };
71
72 a57_1: cpu@1 {
73 compatible = "arm,cortex-a57", "arm,armv8";
74 reg = <0x1>;
75 device_type = "cpu";
76 power-domains = <&sysc 1>;
77 next-level-cache = <&L2_CA57>;
78 enable-method = "psci";
79 clocks = <&cpg CPG_CORE 0>;
80 };
81
82 a53_0: cpu@100 {
83 compatible = "arm,cortex-a53", "arm,armv8";
84 reg = <0x100>;
85 device_type = "cpu";
86 power-domains = <&sysc 5>;
87 next-level-cache = <&L2_CA53>;
88 enable-method = "psci";
89 clocks =<&cpg CPG_CORE 1>;
90 };
91
92 a53_1: cpu@101 {
93 compatible = "arm,cortex-a53", "arm,armv8";
94 reg = <0x101>;
95 device_type = "cpu";
96 power-domains = <&sysc 6>;
97 next-level-cache = <&L2_CA53>;
98 enable-method = "psci";
99 clocks =<&cpg CPG_CORE 1>;
100 };
101
102 a53_2: cpu@102 {
103 compatible = "arm,cortex-a53", "arm,armv8";
104 reg = <0x102>;
105 device_type = "cpu";
106 power-domains = <&sysc 7>;
107 next-level-cache = <&L2_CA53>;
108 enable-method = "psci";
109 clocks =<&cpg CPG_CORE 1>;
110 };
111
112 a53_3: cpu@103 {
113 compatible = "arm,cortex-a53", "arm,armv8";
114 reg = <0x103>;
115 device_type = "cpu";
116 power-domains = <&sysc 8>;
117 next-level-cache = <&L2_CA53>;
118 enable-method = "psci";
119 clocks =<&cpg CPG_CORE 1>;
120 };
121
122 L2_CA57: cache-controller-0 {
123 compatible = "cache";
124 power-domains = <&sysc 12>;
125 cache-unified;
126 cache-level = <2>;
127 };
128
129 L2_CA53: cache-controller-1 {
130 compatible = "cache";
131 power-domains = <&sysc 21>;
132 cache-unified;
133 cache-level = <2>;
134 };
135 };
136
137 extal_clk: extal {
138 compatible = "fixed-clock";
139 #clock-cells = <0>;
140 /* This value must be overridden by the board */
141 clock-frequency = <0>;
142 };
143
144 extalr_clk: extalr {
145 compatible = "fixed-clock";
146 #clock-cells = <0>;
147 /* This value must be overridden by the board */
148 clock-frequency = <0>;
149 };
150
151 /* External PCIe clock - can be overridden by the board */
152 pcie_bus_clk: pcie_bus {
153 compatible = "fixed-clock";
154 #clock-cells = <0>;
155 clock-frequency = <0>;
156 };
157
158 pmu_a53 {
159 compatible = "arm,cortex-a53-pmu";
160 interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
161 <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
162 <&gic GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
163 <&gic GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
164 interrupt-affinity = <&a53_0>, <&a53_1>, <&a53_2>, <&a53_3>;
165 };
166
167 pmu_a57 {
168 compatible = "arm,cortex-a57-pmu";
169 interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
170 <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
171 interrupt-affinity = <&a57_0>, <&a57_1>;
172 };
173
174 psci {
175 compatible = "arm,psci-1.0", "arm,psci-0.2";
176 method = "smc";
177 };
178
179 /* External SCIF clock - to be overridden by boards that provide it */
180 scif_clk: scif {
181 compatible = "fixed-clock";
182 #clock-cells = <0>;
183 clock-frequency = <0>;
184 };
185
186 soc {
187 compatible = "simple-bus";
188 interrupt-parent = <&gic>;
189 #address-cells = <2>;
190 #size-cells = <2>;
191 ranges;
192
193 rwdt: watchdog@e6020000 {
194 compatible = "renesas,r8a774a1-wdt",
195 "renesas,rcar-gen3-wdt";
196 reg = <0 0xe6020000 0 0x0c>;
197 clocks = <&cpg CPG_MOD 402>;
198 power-domains = <&sysc 32>;
199 resets = <&cpg 402>;
200 status = "disabled";
201 };
202
203 gpio0: gpio@e6050000 {
204 compatible = "renesas,gpio-r8a774a1",
205 "renesas,rcar-gen3-gpio";
206 reg = <0 0xe6050000 0 0x50>;
207 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
208 #gpio-cells = <2>;
209 gpio-controller;
210 gpio-ranges = <&pfc 0 0 16>;
211 #interrupt-cells = <2>;
212 interrupt-controller;
213 clocks = <&cpg CPG_MOD 912>;
214 power-domains = <&sysc 32>;
215 resets = <&cpg 912>;
216 };
217
218 gpio1: gpio@e6051000 {
219 compatible = "renesas,gpio-r8a774a1",
220 "renesas,rcar-gen3-gpio";
221 reg = <0 0xe6051000 0 0x50>;
222 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
223 #gpio-cells = <2>;
224 gpio-controller;
225 gpio-ranges = <&pfc 0 32 29>;
226 #interrupt-cells = <2>;
227 interrupt-controller;
228 clocks = <&cpg CPG_MOD 911>;
229 power-domains = <&sysc 32>;
230 resets = <&cpg 911>;
231 };
232
233 gpio2: gpio@e6052000 {
234 compatible = "renesas,gpio-r8a774a1",
235 "renesas,rcar-gen3-gpio";
236 reg = <0 0xe6052000 0 0x50>;
237 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
238 #gpio-cells = <2>;
239 gpio-controller;
240 gpio-ranges = <&pfc 0 64 15>;
241 #interrupt-cells = <2>;
242 interrupt-controller;
243 clocks = <&cpg CPG_MOD 910>;
244 power-domains = <&sysc 32>;
245 resets = <&cpg 910>;
246 };
247
248 gpio3: gpio@e6053000 {
249 compatible = "renesas,gpio-r8a774a1",
250 "renesas,rcar-gen3-gpio";
251 reg = <0 0xe6053000 0 0x50>;
252 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
253 #gpio-cells = <2>;
254 gpio-controller;
255 gpio-ranges = <&pfc 0 96 16>;
256 #interrupt-cells = <2>;
257 interrupt-controller;
258 clocks = <&cpg CPG_MOD 909>;
259 power-domains = <&sysc 32>;
260 resets = <&cpg 909>;
261 };
262
263 gpio4: gpio@e6054000 {
264 compatible = "renesas,gpio-r8a774a1",
265 "renesas,rcar-gen3-gpio";
266 reg = <0 0xe6054000 0 0x50>;
267 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
268 #gpio-cells = <2>;
269 gpio-controller;
270 gpio-ranges = <&pfc 0 128 18>;
271 #interrupt-cells = <2>;
272 interrupt-controller;
273 clocks = <&cpg CPG_MOD 908>;
274 power-domains = <&sysc 32>;
275 resets = <&cpg 908>;
276 };
277
278 gpio5: gpio@e6055000 {
279 compatible = "renesas,gpio-r8a774a1",
280 "renesas,rcar-gen3-gpio";
281 reg = <0 0xe6055000 0 0x50>;
282 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
283 #gpio-cells = <2>;
284 gpio-controller;
285 gpio-ranges = <&pfc 0 160 26>;
286 #interrupt-cells = <2>;
287 interrupt-controller;
288 clocks = <&cpg CPG_MOD 907>;
289 power-domains = <&sysc 32>;
290 resets = <&cpg 907>;
291 };
292
293 gpio6: gpio@e6055400 {
294 compatible = "renesas,gpio-r8a774a1",
295 "renesas,rcar-gen3-gpio";
296 reg = <0 0xe6055400 0 0x50>;
297 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
298 #gpio-cells = <2>;
299 gpio-controller;
300 gpio-ranges = <&pfc 0 192 32>;
301 #interrupt-cells = <2>;
302 interrupt-controller;
303 clocks = <&cpg CPG_MOD 906>;
304 power-domains = <&sysc 32>;
305 resets = <&cpg 906>;
306 };
307
308 gpio7: gpio@e6055800 {
309 compatible = "renesas,gpio-r8a774a1",
310 "renesas,rcar-gen3-gpio";
311 reg = <0 0xe6055800 0 0x50>;
312 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
313 #gpio-cells = <2>;
314 gpio-controller;
315 gpio-ranges = <&pfc 0 224 4>;
316 #interrupt-cells = <2>;
317 interrupt-controller;
318 clocks = <&cpg CPG_MOD 905>;
319 power-domains = <&sysc 32>;
320 resets = <&cpg 905>;
321 };
322
323 pfc: pin-controller@e6060000 {
324 compatible = "renesas,pfc-r8a774a1";
325 reg = <0 0xe6060000 0 0x50c>;
326 };
327
328 cpg: clock-controller@e6150000 {
329 compatible = "renesas,r8a774a1-cpg-mssr";
330 reg = <0 0xe6150000 0 0x0bb0>;
331 clocks = <&extal_clk>, <&extalr_clk>;
332 clock-names = "extal", "extalr";
333 #clock-cells = <2>;
334 #power-domain-cells = <0>;
335 #reset-cells = <1>;
336 };
337
338 rst: reset-controller@e6160000 {
339 compatible = "renesas,r8a774a1-rst";
340 reg = <0 0xe6160000 0 0x018c>;
341 };
342
343 sysc: system-controller@e6180000 {
344 compatible = "renesas,r8a774a1-sysc";
345 reg = <0 0xe6180000 0 0x0400>;
346 #power-domain-cells = <1>;
347 };
348
349 tsc: thermal@e6198000 {
350 compatible = "renesas,r8a774a1-thermal";
351 reg = <0 0xe6198000 0 0x100>,
352 <0 0xe61a0000 0 0x100>,
353 <0 0xe61a8000 0 0x100>;
354 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
355 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
356 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
357 clocks = <&cpg CPG_MOD 522>;
358 power-domains = <&sysc 32>;
359 resets = <&cpg 522>;
360 #thermal-sensor-cells = <1>;
361 };
362
363 intc_ex: interrupt-controller@e61c0000 {
364 compatible = "renesas,intc-ex-r8a774a1", "renesas,irqc";
365 #interrupt-cells = <2>;
366 interrupt-controller;
367 reg = <0 0xe61c0000 0 0x200>;
368 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
369 GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
370 GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
371 GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH
372 GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH
373 GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
374 clocks = <&cpg CPG_MOD 407>;
375 power-domains = <&sysc 32>;
376 resets = <&cpg 407>;
377 };
378
379 i2c0: i2c@e6500000 {
380 #address-cells = <1>;
381 #size-cells = <0>;
382 compatible = "renesas,i2c-r8a774a1",
383 "renesas,rcar-gen3-i2c";
384 reg = <0 0xe6500000 0 0x40>;
385 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
386 clocks = <&cpg CPG_MOD 931>;
387 power-domains = <&sysc 32>;
388 resets = <&cpg 931>;
389 dmas = <&dmac1 0x91>, <&dmac1 0x90>,
390 <&dmac2 0x91>, <&dmac2 0x90>;
391 dma-names = "tx", "rx", "tx", "rx";
392 i2c-scl-internal-delay-ns = <110>;
393 status = "disabled";
394 };
395
396 i2c1: i2c@e6508000 {
397 #address-cells = <1>;
398 #size-cells = <0>;
399 compatible = "renesas,i2c-r8a774a1",
400 "renesas,rcar-gen3-i2c";
401 reg = <0 0xe6508000 0 0x40>;
402 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
403 clocks = <&cpg CPG_MOD 930>;
404 power-domains = <&sysc 32>;
405 resets = <&cpg 930>;
406 dmas = <&dmac1 0x93>, <&dmac1 0x92>,
407 <&dmac2 0x93>, <&dmac2 0x92>;
408 dma-names = "tx", "rx", "tx", "rx";
409 i2c-scl-internal-delay-ns = <6>;
410 status = "disabled";
411 };
412
413 i2c2: i2c@e6510000 {
414 #address-cells = <1>;
415 #size-cells = <0>;
416 compatible = "renesas,i2c-r8a774a1",
417 "renesas,rcar-gen3-i2c";
418 reg = <0 0xe6510000 0 0x40>;
419 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
420 clocks = <&cpg CPG_MOD 929>;
421 power-domains = <&sysc 32>;
422 resets = <&cpg 929>;
423 dmas = <&dmac1 0x95>, <&dmac1 0x94>,
424 <&dmac2 0x95>, <&dmac2 0x94>;
425 dma-names = "tx", "rx", "tx", "rx";
426 i2c-scl-internal-delay-ns = <6>;
427 status = "disabled";
428 };
429
430 i2c3: i2c@e66d0000 {
431 #address-cells = <1>;
432 #size-cells = <0>;
433 compatible = "renesas,i2c-r8a774a1",
434 "renesas,rcar-gen3-i2c";
435 reg = <0 0xe66d0000 0 0x40>;
436 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
437 clocks = <&cpg CPG_MOD 928>;
438 power-domains = <&sysc 32>;
439 resets = <&cpg 928>;
440 dmas = <&dmac0 0x97>, <&dmac0 0x96>;
441 dma-names = "tx", "rx";
442 i2c-scl-internal-delay-ns = <110>;
443 status = "disabled";
444 };
445
446 i2c4: i2c@e66d8000 {
447 #address-cells = <1>;
448 #size-cells = <0>;
449 compatible = "renesas,i2c-r8a774a1",
450 "renesas,rcar-gen3-i2c";
451 reg = <0 0xe66d8000 0 0x40>;
452 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
453 clocks = <&cpg CPG_MOD 927>;
454 power-domains = <&sysc 32>;
455 resets = <&cpg 927>;
456 dmas = <&dmac0 0x99>, <&dmac0 0x98>;
457 dma-names = "tx", "rx";
458 i2c-scl-internal-delay-ns = <110>;
459 status = "disabled";
460 };
461
462 i2c5: i2c@e66e0000 {
463 #address-cells = <1>;
464 #size-cells = <0>;
465 compatible = "renesas,i2c-r8a774a1",
466 "renesas,rcar-gen3-i2c";
467 reg = <0 0xe66e0000 0 0x40>;
468 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
469 clocks = <&cpg CPG_MOD 919>;
470 power-domains = <&sysc 32>;
471 resets = <&cpg 919>;
472 dmas = <&dmac0 0x9b>, <&dmac0 0x9a>;
473 dma-names = "tx", "rx";
474 i2c-scl-internal-delay-ns = <110>;
475 status = "disabled";
476 };
477
478 i2c6: i2c@e66e8000 {
479 #address-cells = <1>;
480 #size-cells = <0>;
481 compatible = "renesas,i2c-r8a774a1",
482 "renesas,rcar-gen3-i2c";
483 reg = <0 0xe66e8000 0 0x40>;
484 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
485 clocks = <&cpg CPG_MOD 918>;
486 power-domains = <&sysc 32>;
487 resets = <&cpg 918>;
488 dmas = <&dmac0 0x9d>, <&dmac0 0x9c>;
489 dma-names = "tx", "rx";
490 i2c-scl-internal-delay-ns = <6>;
491 status = "disabled";
492 };
493
494 i2c_dvfs: i2c@e60b0000 {
495 #address-cells = <1>;
496 #size-cells = <0>;
497 compatible = "renesas,iic-r8a774a1",
498 "renesas,rcar-gen3-iic",
499 "renesas,rmobile-iic";
500 reg = <0 0xe60b0000 0 0x425>;
501 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
502 clocks = <&cpg CPG_MOD 926>;
503 power-domains = <&sysc 32>;
504 resets = <&cpg 926>;
505 dmas = <&dmac0 0x11>, <&dmac0 0x10>;
506 dma-names = "tx", "rx";
507 status = "disabled";
508 };
509
510 hscif0: serial@e6540000 {
511 compatible = "renesas,hscif-r8a774a1",
512 "renesas,rcar-gen3-hscif",
513 "renesas,hscif";
514 reg = <0 0xe6540000 0 0x60>;
515 interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
516 clocks = <&cpg CPG_MOD 520>,
517 <&cpg CPG_CORE 19>,
518 <&scif_clk>;
519 clock-names = "fck", "brg_int", "scif_clk";
520 dmas = <&dmac1 0x31>, <&dmac1 0x30>,
521 <&dmac2 0x31>, <&dmac2 0x30>;
522 dma-names = "tx", "rx", "tx", "rx";
523 power-domains = <&sysc 32>;
524 resets = <&cpg 520>;
525 status = "disabled";
526 };
527
528 hscif1: serial@e6550000 {
529 compatible = "renesas,hscif-r8a774a1",
530 "renesas,rcar-gen3-hscif",
531 "renesas,hscif";
532 reg = <0 0xe6550000 0 0x60>;
533 interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
534 clocks = <&cpg CPG_MOD 519>,
535 <&cpg CPG_CORE 19>,
536 <&scif_clk>;
537 clock-names = "fck", "brg_int", "scif_clk";
538 dmas = <&dmac1 0x33>, <&dmac1 0x32>,
539 <&dmac2 0x33>, <&dmac2 0x32>;
540 dma-names = "tx", "rx", "tx", "rx";
541 power-domains = <&sysc 32>;
542 resets = <&cpg 519>;
543 status = "disabled";
544 };
545
546 hscif2: serial@e6560000 {
547 compatible = "renesas,hscif-r8a774a1",
548 "renesas,rcar-gen3-hscif",
549 "renesas,hscif";
550 reg = <0 0xe6560000 0 0x60>;
551 interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
552 clocks = <&cpg CPG_MOD 518>,
553 <&cpg CPG_CORE 19>,
554 <&scif_clk>;
555 clock-names = "fck", "brg_int", "scif_clk";
556 dmas = <&dmac1 0x35>, <&dmac1 0x34>,
557 <&dmac2 0x35>, <&dmac2 0x34>;
558 dma-names = "tx", "rx", "tx", "rx";
559 power-domains = <&sysc 32>;
560 resets = <&cpg 518>;
561 status = "disabled";
562 };
563
564 hscif3: serial@e66a0000 {
565 compatible = "renesas,hscif-r8a774a1",
566 "renesas,rcar-gen3-hscif",
567 "renesas,hscif";
568 reg = <0 0xe66a0000 0 0x60>;
569 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
570 clocks = <&cpg CPG_MOD 517>,
571 <&cpg CPG_CORE 19>,
572 <&scif_clk>;
573 clock-names = "fck", "brg_int", "scif_clk";
574 dmas = <&dmac0 0x37>, <&dmac0 0x36>;
575 dma-names = "tx", "rx";
576 power-domains = <&sysc 32>;
577 resets = <&cpg 517>;
578 status = "disabled";
579 };
580
581 hscif4: serial@e66b0000 {
582 compatible = "renesas,hscif-r8a774a1",
583 "renesas,rcar-gen3-hscif",
584 "renesas,hscif";
585 reg = <0 0xe66b0000 0 0x60>;
586 interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
587 clocks = <&cpg CPG_MOD 516>,
588 <&cpg CPG_CORE 19>,
589 <&scif_clk>;
590 clock-names = "fck", "brg_int", "scif_clk";
591 dmas = <&dmac0 0x39>, <&dmac0 0x38>;
592 dma-names = "tx", "rx";
593 power-domains = <&sysc 32>;
594 resets = <&cpg 516>;
595 status = "disabled";
596 };
597
598 hsusb: usb@e6590000 {
599 compatible = "renesas,usbhs-r8a774a1",
600 "renesas,rcar-gen3-usbhs";
601 reg = <0 0xe6590000 0 0x100>;
602 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
603 clocks = <&cpg CPG_MOD 704>;
604 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
605 <&usb_dmac1 0>, <&usb_dmac1 1>;
606 dma-names = "ch0", "ch1", "ch2", "ch3";
607 renesas,buswait = <11>;
608 phys = <&usb2_phy0>;
609 phy-names = "usb";
610 power-domains = <&sysc 32>;
611 resets = <&cpg 704>;
612 status = "disabled";
613 };
614
615 usb_dmac0: dma-controller@e65a0000 {
616 compatible = "renesas,r8a774a1-usb-dmac",
617 "renesas,usb-dmac";
618 reg = <0 0xe65a0000 0 0x100>;
619 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH
620 GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
621 interrupt-names = "ch0", "ch1";
622 clocks = <&cpg CPG_MOD 330>;
623 power-domains = <&sysc 32>;
624 resets = <&cpg 330>;
625 #dma-cells = <1>;
626 dma-channels = <2>;
627 };
628
629 usb_dmac1: dma-controller@e65b0000 {
630 compatible = "renesas,r8a774a1-usb-dmac",
631 "renesas,usb-dmac";
632 reg = <0 0xe65b0000 0 0x100>;
633 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH
634 GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
635 interrupt-names = "ch0", "ch1";
636 clocks = <&cpg CPG_MOD 331>;
637 power-domains = <&sysc 32>;
638 resets = <&cpg 331>;
639 #dma-cells = <1>;
640 dma-channels = <2>;
641 };
642
643 usb3_phy0: usb-phy@e65ee000 {
644 compatible = "renesas,r8a774a1-usb3-phy",
645 "renesas,rcar-gen3-usb3-phy";
646 reg = <0 0xe65ee000 0 0x90>;
647 clocks = <&cpg CPG_MOD 328>, <&usb3s0_clk>,
648 <&usb_extal_clk>;
649 clock-names = "usb3-if", "usb3s_clk", "usb_extal";
650 power-domains = <&sysc 32>;
651 resets = <&cpg 328>;
652 #phy-cells = <0>;
653 status = "disabled";
654 };
655
656 dmac0: dma-controller@e6700000 {
657 compatible = "renesas,dmac-r8a774a1",
658 "renesas,rcar-dmac";
659 reg = <0 0xe6700000 0 0x10000>;
660 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH
661 GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH
662 GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH
663 GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH
664 GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH
665 GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH
666 GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH
667 GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH
668 GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH
669 GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH
670 GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH
671 GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH
672 GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH
673 GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH
674 GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH
675 GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH
676 GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
677 interrupt-names = "error",
678 "ch0", "ch1", "ch2", "ch3",
679 "ch4", "ch5", "ch6", "ch7",
680 "ch8", "ch9", "ch10", "ch11",
681 "ch12", "ch13", "ch14", "ch15";
682 clocks = <&cpg CPG_MOD 219>;
683 clock-names = "fck";
684 power-domains = <&sysc 32>;
685 resets = <&cpg 219>;
686 #dma-cells = <1>;
687 dma-channels = <16>;
688 };
689
690 dmac1: dma-controller@e7300000 {
691 compatible = "renesas,dmac-r8a774a1",
692 "renesas,rcar-dmac";
693 reg = <0 0xe7300000 0 0x10000>;
694 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
695 GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
696 GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
697 GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
698 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
699 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
700 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
701 GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
702 GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH
703 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
704 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
705 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
706 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
707 GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
708 GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
709 GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH
710 GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
711 interrupt-names = "error",
712 "ch0", "ch1", "ch2", "ch3",
713 "ch4", "ch5", "ch6", "ch7",
714 "ch8", "ch9", "ch10", "ch11",
715 "ch12", "ch13", "ch14", "ch15";
716 clocks = <&cpg CPG_MOD 218>;
717 clock-names = "fck";
718 power-domains = <&sysc 32>;
719 resets = <&cpg 218>;
720 #dma-cells = <1>;
721 dma-channels = <16>;
722 };
723
724 dmac2: dma-controller@e7310000 {
725 compatible = "renesas,dmac-r8a774a1",
726 "renesas,rcar-dmac";
727 reg = <0 0xe7310000 0 0x10000>;
728 interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH
729 GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH
730 GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH
731 GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH
732 GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH
733 GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH
734 GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH
735 GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH
736 GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH
737 GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH
738 GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH
739 GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH
740 GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH
741 GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH
742 GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH
743 GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH
744 GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
745 interrupt-names = "error",
746 "ch0", "ch1", "ch2", "ch3",
747 "ch4", "ch5", "ch6", "ch7",
748 "ch8", "ch9", "ch10", "ch11",
749 "ch12", "ch13", "ch14", "ch15";
750 clocks = <&cpg CPG_MOD 217>;
751 clock-names = "fck";
752 power-domains = <&sysc 32>;
753 resets = <&cpg 217>;
754 #dma-cells = <1>;
755 dma-channels = <16>;
756 };
757
758 ipmmu_ds0: mmu@e6740000 {
759 compatible = "renesas,ipmmu-r8a774a1";
760 reg = <0 0xe6740000 0 0x1000>;
761 renesas,ipmmu-main = <&ipmmu_mm 0>;
762 power-domains = <&sysc 32>;
763 #iommu-cells = <1>;
764 };
765
766 ipmmu_ds1: mmu@e7740000 {
767 compatible = "renesas,ipmmu-r8a774a1";
768 reg = <0 0xe7740000 0 0x1000>;
769 renesas,ipmmu-main = <&ipmmu_mm 1>;
770 power-domains = <&sysc 32>;
771 #iommu-cells = <1>;
772 };
773
774 ipmmu_hc: mmu@e6570000 {
775 compatible = "renesas,ipmmu-r8a774a1";
776 reg = <0 0xe6570000 0 0x1000>;
777 renesas,ipmmu-main = <&ipmmu_mm 2>;
778 power-domains = <&sysc 32>;
779 #iommu-cells = <1>;
780 };
781
782 ipmmu_mm: mmu@e67b0000 {
783 compatible = "renesas,ipmmu-r8a774a1";
784 reg = <0 0xe67b0000 0 0x1000>;
785 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
786 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
787 power-domains = <&sysc 32>;
788 #iommu-cells = <1>;
789 };
790
791 ipmmu_mp: mmu@ec670000 {
792 compatible = "renesas,ipmmu-r8a774a1";
793 reg = <0 0xec670000 0 0x1000>;
794 renesas,ipmmu-main = <&ipmmu_mm 4>;
795 power-domains = <&sysc 32>;
796 #iommu-cells = <1>;
797 };
798
799 ipmmu_pv0: mmu@fd800000 {
800 compatible = "renesas,ipmmu-r8a774a1";
801 reg = <0 0xfd800000 0 0x1000>;
802 renesas,ipmmu-main = <&ipmmu_mm 5>;
803 power-domains = <&sysc 32>;
804 #iommu-cells = <1>;
805 };
806
807 ipmmu_pv1: mmu@fd950000 {
808 compatible = "renesas,ipmmu-r8a774a1";
809 reg = <0 0xfd950000 0 0x1000>;
810 renesas,ipmmu-main = <&ipmmu_mm 6>;
811 power-domains = <&sysc 32>;
812 #iommu-cells = <1>;
813 };
814
815 ipmmu_vc0: mmu@fe6b0000 {
816 compatible = "renesas,ipmmu-r8a774a1";
817 reg = <0 0xfe6b0000 0 0x1000>;
818 renesas,ipmmu-main = <&ipmmu_mm 8>;
819 power-domains = <&sysc 14>;
820 #iommu-cells = <1>;
821 };
822
823 ipmmu_vi0: mmu@febd0000 {
824 compatible = "renesas,ipmmu-r8a774a1";
825 reg = <0 0xfebd0000 0 0x1000>;
826 renesas,ipmmu-main = <&ipmmu_mm 9>;
827 power-domains = <&sysc 32>;
828 #iommu-cells = <1>;
829 };
830
831 avb: ethernet@e6800000 {
832 compatible = "renesas,etheravb-r8a774a1",
833 "renesas,etheravb-rcar-gen3";
834 reg = <0 0xe6800000 0 0x800>;
835 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
836 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
837 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
838 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
839 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
840 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
841 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
842 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
843 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
844 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
845 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
846 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
847 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
848 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
849 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
850 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
851 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
852 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
853 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
854 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
855 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
856 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
857 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
858 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
859 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
860 interrupt-names = "ch0", "ch1", "ch2", "ch3",
861 "ch4", "ch5", "ch6", "ch7",
862 "ch8", "ch9", "ch10", "ch11",
863 "ch12", "ch13", "ch14", "ch15",
864 "ch16", "ch17", "ch18", "ch19",
865 "ch20", "ch21", "ch22", "ch23",
866 "ch24";
867 clocks = <&cpg CPG_MOD 812>;
868 power-domains = <&sysc 32>;
869 resets = <&cpg 812>;
870 phy-mode = "rgmii";
871 #address-cells = <1>;
872 #size-cells = <0>;
873 status = "disabled";
874 };
875
876 pwm0: pwm@e6e30000 {
877 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
878 reg = <0 0xe6e30000 0 0x8>;
879 #pwm-cells = <2>;
880 clocks = <&cpg CPG_MOD 523>;
881 resets = <&cpg 523>;
882 power-domains = <&sysc 32>;
883 status = "disabled";
884 };
885
886 pwm1: pwm@e6e31000 {
887 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
888 reg = <0 0xe6e31000 0 0x8>;
889 #pwm-cells = <2>;
890 clocks = <&cpg CPG_MOD 523>;
891 resets = <&cpg 523>;
892 power-domains = <&sysc 32>;
893 status = "disabled";
894 };
895
896 pwm2: pwm@e6e32000 {
897 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
898 reg = <0 0xe6e32000 0 0x8>;
899 #pwm-cells = <2>;
900 clocks = <&cpg CPG_MOD 523>;
901 resets = <&cpg 523>;
902 power-domains = <&sysc 32>;
903 status = "disabled";
904 };
905
906 pwm3: pwm@e6e33000 {
907 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
908 reg = <0 0xe6e33000 0 0x8>;
909 #pwm-cells = <2>;
910 clocks = <&cpg CPG_MOD 523>;
911 resets = <&cpg 523>;
912 power-domains = <&sysc 32>;
913 status = "disabled";
914 };
915
916 pwm4: pwm@e6e34000 {
917 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
918 reg = <0 0xe6e34000 0 0x8>;
919 #pwm-cells = <2>;
920 clocks = <&cpg CPG_MOD 523>;
921 resets = <&cpg 523>;
922 power-domains = <&sysc 32>;
923 status = "disabled";
924 };
925
926 pwm5: pwm@e6e35000 {
927 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
928 reg = <0 0xe6e35000 0 0x8>;
929 #pwm-cells = <2>;
930 clocks = <&cpg CPG_MOD 523>;
931 resets = <&cpg 523>;
932 power-domains = <&sysc 32>;
933 status = "disabled";
934 };
935
936 pwm6: pwm@e6e36000 {
937 compatible = "renesas,pwm-r8a774a1", "renesas,pwm-rcar";
938 reg = <0 0xe6e36000 0 0x8>;
939 #pwm-cells = <2>;
940 clocks = <&cpg CPG_MOD 523>;
941 resets = <&cpg 523>;
942 power-domains = <&sysc 32>;
943 status = "disabled";
944 };
945
946 scif0: serial@e6e60000 {
947 compatible = "renesas,scif-r8a774a1",
948 "renesas,rcar-gen3-scif", "renesas,scif";
949 reg = <0 0xe6e60000 0 0x40>;
950 interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
951 clocks = <&cpg CPG_MOD 207>,
952 <&cpg CPG_CORE 19>,
953 <&scif_clk>;
954 clock-names = "fck", "brg_int", "scif_clk";
955 dmas = <&dmac1 0x51>, <&dmac1 0x50>,
956 <&dmac2 0x51>, <&dmac2 0x50>;
957 dma-names = "tx", "rx", "tx", "rx";
958 power-domains = <&sysc 32>;
959 resets = <&cpg 207>;
960 status = "disabled";
961 };
962
963 scif1: serial@e6e68000 {
964 compatible = "renesas,scif-r8a774a1",
965 "renesas,rcar-gen3-scif", "renesas,scif";
966 reg = <0 0xe6e68000 0 0x40>;
967 interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
968 clocks = <&cpg CPG_MOD 206>,
969 <&cpg CPG_CORE 19>,
970 <&scif_clk>;
971 clock-names = "fck", "brg_int", "scif_clk";
972 dmas = <&dmac1 0x53>, <&dmac1 0x52>,
973 <&dmac2 0x53>, <&dmac2 0x52>;
974 dma-names = "tx", "rx", "tx", "rx";
975 power-domains = <&sysc 32>;
976 resets = <&cpg 206>;
977 status = "disabled";
978 };
979
980 scif2: serial@e6e88000 {
981 compatible = "renesas,scif-r8a774a1",
982 "renesas,rcar-gen3-scif", "renesas,scif";
983 reg = <0 0xe6e88000 0 0x40>;
984 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
985 clocks = <&cpg CPG_MOD 310>,
986 <&cpg CPG_CORE 19>,
987 <&scif_clk>;
988 clock-names = "fck", "brg_int", "scif_clk";
989 power-domains = <&sysc 32>;
990 resets = <&cpg 310>;
991 status = "disabled";
992 };
993
994 scif3: serial@e6c50000 {
995 compatible = "renesas,scif-r8a774a1",
996 "renesas,rcar-gen3-scif", "renesas,scif";
997 reg = <0 0xe6c50000 0 0x40>;
998 interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
999 clocks = <&cpg CPG_MOD 204>,
1000 <&cpg CPG_CORE 19>,
1001 <&scif_clk>;
1002 clock-names = "fck", "brg_int", "scif_clk";
1003 dmas = <&dmac0 0x57>, <&dmac0 0x56>;
1004 dma-names = "tx", "rx";
1005 power-domains = <&sysc 32>;
1006 resets = <&cpg 204>;
1007 status = "disabled";
1008 };
1009
1010 scif4: serial@e6c40000 {
1011 compatible = "renesas,scif-r8a774a1",
1012 "renesas,rcar-gen3-scif", "renesas,scif";
1013 reg = <0 0xe6c40000 0 0x40>;
1014 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
1015 clocks = <&cpg CPG_MOD 203>,
1016 <&cpg CPG_CORE 19>,
1017 <&scif_clk>;
1018 clock-names = "fck", "brg_int", "scif_clk";
1019 dmas = <&dmac0 0x59>, <&dmac0 0x58>;
1020 dma-names = "tx", "rx";
1021 power-domains = <&sysc 32>;
1022 resets = <&cpg 203>;
1023 status = "disabled";
1024 };
1025
1026 scif5: serial@e6f30000 {
1027 compatible = "renesas,scif-r8a774a1",
1028 "renesas,rcar-gen3-scif", "renesas,scif";
1029 reg = <0 0xe6f30000 0 0x40>;
1030 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
1031 clocks = <&cpg CPG_MOD 202>,
1032 <&cpg CPG_CORE 19>,
1033 <&scif_clk>;
1034 clock-names = "fck", "brg_int", "scif_clk";
1035 dmas = <&dmac1 0x5b>, <&dmac1 0x5a>,
1036 <&dmac2 0x5b>, <&dmac2 0x5a>;
1037 dma-names = "tx", "rx", "tx", "rx";
1038 power-domains = <&sysc 32>;
1039 resets = <&cpg 202>;
1040 status = "disabled";
1041 };
1042
1043 msiof0: spi@e6e90000 {
1044 compatible = "renesas,msiof-r8a774a1",
1045 "renesas,rcar-gen3-msiof";
1046 reg = <0 0xe6e90000 0 0x0064>;
1047 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
1048 clocks = <&cpg CPG_MOD 211>;
1049 dmas = <&dmac1 0x41>, <&dmac1 0x40>,
1050 <&dmac2 0x41>, <&dmac2 0x40>;
1051 dma-names = "tx", "rx", "tx", "rx";
1052 power-domains = <&sysc 32>;
1053 resets = <&cpg 211>;
1054 #address-cells = <1>;
1055 #size-cells = <0>;
1056 status = "disabled";
1057 };
1058
1059 msiof1: spi@e6ea0000 {
1060 compatible = "renesas,msiof-r8a774a1",
1061 "renesas,rcar-gen3-msiof";
1062 reg = <0 0xe6ea0000 0 0x0064>;
1063 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
1064 clocks = <&cpg CPG_MOD 210>;
1065 dmas = <&dmac1 0x43>, <&dmac1 0x42>,
1066 <&dmac2 0x43>, <&dmac2 0x42>;
1067 dma-names = "tx", "rx", "tx", "rx";
1068 power-domains = <&sysc 32>;
1069 resets = <&cpg 210>;
1070 #address-cells = <1>;
1071 #size-cells = <0>;
1072 status = "disabled";
1073 };
1074
1075 msiof2: spi@e6c00000 {
1076 compatible = "renesas,msiof-r8a774a1",
1077 "renesas,rcar-gen3-msiof";
1078 reg = <0 0xe6c00000 0 0x0064>;
1079 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
1080 clocks = <&cpg CPG_MOD 209>;
1081 dmas = <&dmac0 0x45>, <&dmac0 0x44>;
1082 dma-names = "tx", "rx";
1083 power-domains = <&sysc 32>;
1084 resets = <&cpg 209>;
1085 #address-cells = <1>;
1086 #size-cells = <0>;
1087 status = "disabled";
1088 };
1089
1090 msiof3: spi@e6c10000 {
1091 compatible = "renesas,msiof-r8a774a1",
1092 "renesas,rcar-gen3-msiof";
1093 reg = <0 0xe6c10000 0 0x0064>;
1094 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
1095 clocks = <&cpg CPG_MOD 208>;
1096 dmas = <&dmac0 0x47>, <&dmac0 0x46>;
1097 dma-names = "tx", "rx";
1098 power-domains = <&sysc 32>;
1099 resets = <&cpg 208>;
1100 #address-cells = <1>;
1101 #size-cells = <0>;
1102 status = "disabled";
1103 };
1104
1105 rcar_sound: sound@ec500000 {
1106 /*
1107 * #sound-dai-cells is required
1108 *
1109 * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
1110 * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;
1111 */
1112 /*
1113 * #clock-cells is required for audio_clkout0/1/2/3
1114 *
1115 * clkout : #clock-cells = <0>; <&rcar_sound>;
1116 * clkout0/1/2/3: #clock-cells = <1>; <&rcar_sound N>;
1117 */
1118 compatible = "renesas,rcar_sound-r8a774a1", "renesas,rcar_sound-gen3";
1119 reg = <0 0xec500000 0 0x1000>, /* SCU */
1120 <0 0xec5a0000 0 0x100>, /* ADG */
1121 <0 0xec540000 0 0x1000>, /* SSIU */
1122 <0 0xec541000 0 0x280>, /* SSI */
1123 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/
1124 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1125
1126 clocks = <&cpg CPG_MOD 1005>,
1127 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
1128 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
1129 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
1130 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
1131 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
1132 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
1133 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
1134 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
1135 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
1136 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
1137 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
1138 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
1139 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
1140 <&audio_clk_a>, <&audio_clk_b>,
1141 <&audio_clk_c>,
1142 <&cpg CPG_CORE 10>;
1143 clock-names = "ssi-all",
1144 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1145 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1146 "ssi.1", "ssi.0",
1147 "src.9", "src.8", "src.7", "src.6",
1148 "src.5", "src.4", "src.3", "src.2",
1149 "src.1", "src.0",
1150 "mix.1", "mix.0",
1151 "ctu.1", "ctu.0",
1152 "dvc.0", "dvc.1",
1153 "clk_a", "clk_b", "clk_c", "clk_i";
1154 power-domains = <&sysc 32>;
1155 resets = <&cpg 1005>,
1156 <&cpg 1006>, <&cpg 1007>,
1157 <&cpg 1008>, <&cpg 1009>,
1158 <&cpg 1010>, <&cpg 1011>,
1159 <&cpg 1012>, <&cpg 1013>,
1160 <&cpg 1014>, <&cpg 1015>;
1161 reset-names = "ssi-all",
1162 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1163 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1164 "ssi.1", "ssi.0";
1165 status = "disabled";
1166
1167 rcar_sound,dvc {
1168 dvc0: dvc-0 {
1169 dmas = <&audma1 0xbc>;
1170 dma-names = "tx";
1171 };
1172 dvc1: dvc-1 {
1173 dmas = <&audma1 0xbe>;
1174 dma-names = "tx";
1175 };
1176 };
1177
1178 rcar_sound,mix {
1179 mix0: mix-0 { };
1180 mix1: mix-1 { };
1181 };
1182
1183 rcar_sound,ctu {
1184 ctu00: ctu-0 { };
1185 ctu01: ctu-1 { };
1186 ctu02: ctu-2 { };
1187 ctu03: ctu-3 { };
1188 ctu10: ctu-4 { };
1189 ctu11: ctu-5 { };
1190 ctu12: ctu-6 { };
1191 ctu13: ctu-7 { };
1192 };
1193
1194 rcar_sound,src {
1195 src0: src-0 {
1196 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1197 dmas = <&audma0 0x85>, <&audma1 0x9a>;
1198 dma-names = "rx", "tx";
1199 };
1200 src1: src-1 {
1201 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1202 dmas = <&audma0 0x87>, <&audma1 0x9c>;
1203 dma-names = "rx", "tx";
1204 };
1205 src2: src-2 {
1206 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1207 dmas = <&audma0 0x89>, <&audma1 0x9e>;
1208 dma-names = "rx", "tx";
1209 };
1210 src3: src-3 {
1211 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1212 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
1213 dma-names = "rx", "tx";
1214 };
1215 src4: src-4 {
1216 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1217 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
1218 dma-names = "rx", "tx";
1219 };
1220 src5: src-5 {
1221 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1222 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
1223 dma-names = "rx", "tx";
1224 };
1225 src6: src-6 {
1226 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1227 dmas = <&audma0 0x91>, <&audma1 0xb4>;
1228 dma-names = "rx", "tx";
1229 };
1230 src7: src-7 {
1231 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
1232 dmas = <&audma0 0x93>, <&audma1 0xb6>;
1233 dma-names = "rx", "tx";
1234 };
1235 src8: src-8 {
1236 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
1237 dmas = <&audma0 0x95>, <&audma1 0xb8>;
1238 dma-names = "rx", "tx";
1239 };
1240 src9: src-9 {
1241 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
1242 dmas = <&audma0 0x97>, <&audma1 0xba>;
1243 dma-names = "rx", "tx";
1244 };
1245 };
1246
1247 rcar_sound,ssi {
1248 ssi0: ssi-0 {
1249 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
1250 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
1251 dma-names = "rx", "tx", "rxu", "txu";
1252 };
1253 ssi1: ssi-1 {
1254 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
1255 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
1256 dma-names = "rx", "tx", "rxu", "txu";
1257 };
1258 ssi2: ssi-2 {
1259 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
1260 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
1261 dma-names = "rx", "tx", "rxu", "txu";
1262 };
1263 ssi3: ssi-3 {
1264 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
1265 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
1266 dma-names = "rx", "tx", "rxu", "txu";
1267 };
1268 ssi4: ssi-4 {
1269 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
1270 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
1271 dma-names = "rx", "tx", "rxu", "txu";
1272 };
1273 ssi5: ssi-5 {
1274 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1275 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
1276 dma-names = "rx", "tx", "rxu", "txu";
1277 };
1278 ssi6: ssi-6 {
1279 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
1280 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
1281 dma-names = "rx", "tx", "rxu", "txu";
1282 };
1283 ssi7: ssi-7 {
1284 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
1285 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
1286 dma-names = "rx", "tx", "rxu", "txu";
1287 };
1288 ssi8: ssi-8 {
1289 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
1290 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
1291 dma-names = "rx", "tx", "rxu", "txu";
1292 };
1293 ssi9: ssi-9 {
1294 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1295 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
1296 dma-names = "rx", "tx", "rxu", "txu";
1297 };
1298 };
1299
1300 ports {
1301 #address-cells = <1>;
1302 #size-cells = <0>;
1303 port@0 {
1304 reg = <0>;
1305 };
1306 port@1 {
1307 reg = <1>;
1308 };
1309 };
1310 };
1311
1312 audma0: dma-controller@ec700000 {
1313 compatible = "renesas,dmac-r8a774a1",
1314 "renesas,rcar-dmac";
1315 reg = <0 0xec700000 0 0x10000>;
1316 interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH
1317 GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH
1318 GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH
1319 GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH
1320 GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH
1321 GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH
1322 GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH
1323 GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH
1324 GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH
1325 GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH
1326 GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH
1327 GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH
1328 GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH
1329 GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH
1330 GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH
1331 GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH
1332 GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
1333 interrupt-names = "error",
1334 "ch0", "ch1", "ch2", "ch3",
1335 "ch4", "ch5", "ch6", "ch7",
1336 "ch8", "ch9", "ch10", "ch11",
1337 "ch12", "ch13", "ch14", "ch15";
1338 clocks = <&cpg CPG_MOD 502>;
1339 clock-names = "fck";
1340 power-domains = <&sysc 32>;
1341 resets = <&cpg 502>;
1342 #dma-cells = <1>;
1343 dma-channels = <16>;
1344 };
1345
1346 audma1: dma-controller@ec720000 {
1347 compatible = "renesas,dmac-r8a774a1",
1348 "renesas,rcar-dmac";
1349 reg = <0 0xec720000 0 0x10000>;
1350 interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH
1351 GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH
1352 GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH
1353 GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH
1354 GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH
1355 GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH
1356 GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH
1357 GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH
1358 GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH
1359 GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH
1360 GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH
1361 GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH
1362 GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH
1363 GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH
1364 GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH
1365 GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH
1366 GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>;
1367 interrupt-names = "error",
1368 "ch0", "ch1", "ch2", "ch3",
1369 "ch4", "ch5", "ch6", "ch7",
1370 "ch8", "ch9", "ch10", "ch11",
1371 "ch12", "ch13", "ch14", "ch15";
1372 clocks = <&cpg CPG_MOD 501>;
1373 clock-names = "fck";
1374 power-domains = <&sysc 32>;
1375 resets = <&cpg 501>;
1376 #dma-cells = <1>;
1377 dma-channels = <16>;
1378 };
1379
1380 xhci0: usb@ee000000 {
1381 compatible = "renesas,xhci-r8a774a1",
1382 "renesas,rcar-gen3-xhci";
1383 reg = <0 0xee000000 0 0xc00>;
1384 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1385 clocks = <&cpg CPG_MOD 328>;
1386 power-domains = <&sysc 32>;
1387 resets = <&cpg 328>;
1388 status = "disabled";
1389 };
1390
1391 usb3_peri0: usb@ee020000 {
1392 compatible = "renesas,r8a774a1-usb3-peri",
1393 "renesas,rcar-gen3-usb3-peri";
1394 reg = <0 0xee020000 0 0x400>;
1395 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
1396 clocks = <&cpg CPG_MOD 328>;
1397 power-domains = <&sysc 32>;
1398 resets = <&cpg 328>;
1399 status = "disabled";
1400 };
1401
1402 ohci0: usb@ee080000 {
1403 compatible = "generic-ohci";
1404 reg = <0 0xee080000 0 0x100>;
1405 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1406 clocks = <&cpg CPG_MOD 703>;
1407 phys = <&usb2_phy0>;
1408 phy-names = "usb";
1409 power-domains = <&sysc 32>;
1410 resets = <&cpg 703>;
1411 status = "disabled";
1412 };
1413
1414 ohci1: usb@ee0a0000 {
1415 compatible = "generic-ohci";
1416 reg = <0 0xee0a0000 0 0x100>;
1417 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1418 clocks = <&cpg CPG_MOD 702>;
1419 phys = <&usb2_phy1>;
1420 phy-names = "usb";
1421 power-domains = <&sysc 32>;
1422 resets = <&cpg 702>;
1423 status = "disabled";
1424 };
1425
1426 ehci0: usb@ee080100 {
1427 compatible = "generic-ehci";
1428 reg = <0 0xee080100 0 0x100>;
1429 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1430 clocks = <&cpg CPG_MOD 703>;
1431 phys = <&usb2_phy0>;
1432 phy-names = "usb";
1433 companion = <&ohci0>;
1434 power-domains = <&sysc 32>;
1435 resets = <&cpg 703>;
1436 status = "disabled";
1437 };
1438
1439 ehci1: usb@ee0a0100 {
1440 compatible = "generic-ehci";
1441 reg = <0 0xee0a0100 0 0x100>;
1442 interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1443 clocks = <&cpg CPG_MOD 702>;
1444 phys = <&usb2_phy1>;
1445 phy-names = "usb";
1446 companion = <&ohci1>;
1447 power-domains = <&sysc 32>;
1448 resets = <&cpg 702>;
1449 status = "disabled";
1450 };
1451
1452 usb2_phy0: usb-phy@ee080200 {
1453 compatible = "renesas,usb2-phy-r8a774a1",
1454 "renesas,rcar-gen3-usb2-phy";
1455 reg = <0 0xee080200 0 0x700>;
1456 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1457 clocks = <&cpg CPG_MOD 703>;
1458 power-domains = <&sysc 32>;
1459 resets = <&cpg 703>;
1460 #phy-cells = <0>;
1461 status = "disabled";
1462 };
1463
1464 usb2_phy1: usb-phy@ee0a0200 {
1465 compatible = "renesas,usb2-phy-r8a774a1",
1466 "renesas,rcar-gen3-usb2-phy";
1467 reg = <0 0xee0a0200 0 0x700>;
1468 clocks = <&cpg CPG_MOD 702>;
1469 power-domains = <&sysc 32>;
1470 resets = <&cpg 702>;
1471 #phy-cells = <0>;
1472 status = "disabled";
1473 };
1474
1475 sdhi0: sd@ee100000 {
1476 compatible = "renesas,sdhi-r8a774a1",
1477 "renesas,rcar-gen3-sdhi";
1478 reg = <0 0xee100000 0 0x2000>;
1479 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
1480 clocks = <&cpg CPG_MOD 314>;
1481 max-frequency = <200000000>;
1482 power-domains = <&sysc 32>;
1483 resets = <&cpg 314>;
1484 status = "disabled";
1485 };
1486
1487 sdhi1: sd@ee120000 {
1488 compatible = "renesas,sdhi-r8a774a1",
1489 "renesas,rcar-gen3-sdhi";
1490 reg = <0 0xee120000 0 0x2000>;
1491 interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
1492 clocks = <&cpg CPG_MOD 313>;
1493 max-frequency = <200000000>;
1494 power-domains = <&sysc 32>;
1495 resets = <&cpg 313>;
1496 status = "disabled";
1497 };
1498
1499 sdhi2: sd@ee140000 {
1500 compatible = "renesas,sdhi-r8a774a1",
1501 "renesas,rcar-gen3-sdhi";
1502 reg = <0 0xee140000 0 0x2000>;
1503 interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
1504 clocks = <&cpg CPG_MOD 312>;
1505 max-frequency = <200000000>;
1506 power-domains = <&sysc 32>;
1507 resets = <&cpg 312>;
1508 status = "disabled";
1509 };
1510
1511 sdhi3: sd@ee160000 {
1512 compatible = "renesas,sdhi-r8a774a1",
1513 "renesas,rcar-gen3-sdhi";
1514 reg = <0 0xee160000 0 0x2000>;
1515 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
1516 clocks = <&cpg CPG_MOD 311>;
1517 max-frequency = <200000000>;
1518 power-domains = <&sysc 32>;
1519 resets = <&cpg 311>;
1520 status = "disabled";
1521 };
1522
1523 gic: interrupt-controller@f1010000 {
1524 compatible = "arm,gic-400";
1525 #interrupt-cells = <3>;
1526 #address-cells = <0>;
1527 interrupt-controller;
1528 reg = <0x0 0xf1010000 0 0x1000>,
1529 <0x0 0xf1020000 0 0x20000>,
1530 <0x0 0xf1040000 0 0x20000>,
1531 <0x0 0xf1060000 0 0x20000>;
1532 interrupts = <GIC_PPI 9
1533 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_HIGH)>;
1534 clocks = <&cpg CPG_MOD 408>;
1535 clock-names = "clk";
1536 power-domains = <&sysc 32>;
1537 resets = <&cpg 408>;
1538 };
1539
1540 fcpf0: fcp@fe950000 {
1541 compatible = "renesas,fcpf";
1542 reg = <0 0xfe950000 0 0x200>;
1543 clocks = <&cpg CPG_MOD 615>;
1544 power-domains = <&sysc 14>;
1545 resets = <&cpg 615>;
1546 };
1547
1548 fcpvb0: fcp@fe96f000 {
1549 compatible = "renesas,fcpv";
1550 reg = <0 0xfe96f000 0 0x200>;
1551 clocks = <&cpg CPG_MOD 607>;
1552 power-domains = <&sysc 14>;
1553 resets = <&cpg 607>;
1554 };
1555
1556 fcpvd0: fcp@fea27000 {
1557 compatible = "renesas,fcpv";
1558 reg = <0 0xfea27000 0 0x200>;
1559 clocks = <&cpg CPG_MOD 603>;
1560 power-domains = <&sysc 32>;
1561 resets = <&cpg 603>;
1562 iommus = <&ipmmu_vi0 8>;
1563 };
1564
1565 fcpvd1: fcp@fea2f000 {
1566 compatible = "renesas,fcpv";
1567 reg = <0 0xfea2f000 0 0x200>;
1568 clocks = <&cpg CPG_MOD 602>;
1569 power-domains = <&sysc 32>;
1570 resets = <&cpg 602>;
1571 iommus = <&ipmmu_vi0 9>;
1572 };
1573
1574 fcpvd2: fcp@fea37000 {
1575 compatible = "renesas,fcpv";
1576 reg = <0 0xfea37000 0 0x200>;
1577 clocks = <&cpg CPG_MOD 601>;
1578 power-domains = <&sysc 32>;
1579 resets = <&cpg 601>;
1580 iommus = <&ipmmu_vi0 10>;
1581 };
1582
1583 fcpvi0: fcp@fe9af000 {
1584 compatible = "renesas,fcpv";
1585 reg = <0 0xfe9af000 0 0x200>;
1586 clocks = <&cpg CPG_MOD 611>;
1587 power-domains = <&sysc 14>;
1588 resets = <&cpg 611>;
1589 iommus = <&ipmmu_vc0 19>;
1590 };
1591
1592 prr: chipid@fff00044 {
1593 compatible = "renesas,prr";
1594 reg = <0 0xfff00044 0 4>;
1595 };
1596 };
1597
1598 thermal-zones {
1599 sensor_thermal1: sensor-thermal1 {
1600 polling-delay-passive = <250>;
1601 polling-delay = <1000>;
1602 thermal-sensors = <&tsc 0>;
1603
1604 trips {
1605 sensor1_crit: sensor1-crit {
1606 temperature = <120000>;
1607 hysteresis = <1000>;
1608 type = "critical";
1609 };
1610 };
1611 };
1612
1613 sensor_thermal2: sensor-thermal2 {
1614 polling-delay-passive = <250>;
1615 polling-delay = <1000>;
1616 thermal-sensors = <&tsc 1>;
1617
1618 trips {
1619 sensor2_crit: sensor2-crit {
1620 temperature = <120000>;
1621 hysteresis = <1000>;
1622 type = "critical";
1623 };
1624 };
1625
1626 };
1627
1628 sensor_thermal3: sensor-thermal3 {
1629 polling-delay-passive = <250>;
1630 polling-delay = <1000>;
1631 thermal-sensors = <&tsc 2>;
1632
1633 trips {
1634 sensor3_crit: sensor3-crit {
1635 temperature = <120000>;
1636 hysteresis = <1000>;
1637 type = "critical";
1638 };
1639 };
1640 };
1641 };
1642
1643 timer {
1644 compatible = "arm,armv8-timer";
1645 interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
1646 <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
1647 <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>,
1648 <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(6) | IRQ_TYPE_LEVEL_LOW)>;
1649 };
1650
1651 /* External USB clocks - can be overridden by the board */
1652 usb3s0_clk: usb3s0 {
1653 compatible = "fixed-clock";
1654 #clock-cells = <0>;
1655 clock-frequency = <0>;
1656 };
1657
1658 usb_extal_clk: usb_extal {
1659 compatible = "fixed-clock";
1660 #clock-cells = <0>;
1661 clock-frequency = <0>;
1662 };
1663};
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts
index 6b5fa91f1d5d..0895503b69d0 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts
@@ -40,12 +40,11 @@
40 <&cpg CPG_MOD 723>, 40 <&cpg CPG_MOD 723>,
41 <&cpg CPG_MOD 722>, 41 <&cpg CPG_MOD 722>,
42 <&cpg CPG_MOD 721>, 42 <&cpg CPG_MOD 721>,
43 <&cpg CPG_MOD 727>,
44 <&versaclock5 1>, 43 <&versaclock5 1>,
45 <&x21_clk>, 44 <&x21_clk>,
46 <&x22_clk>, 45 <&x22_clk>,
47 <&versaclock5 2>; 46 <&versaclock5 2>;
48 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 47 clock-names = "du.0", "du.1", "du.2", "du.3",
49 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; 48 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
50}; 49};
51 50
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
index 7b2fbaec9aef..0fb84c219b2f 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7795 ES1.x SoC 3 * Device Tree Source for the R-Car H3 (R8A77950) ES1.x SoC
4 * 4 *
5 * Copyright (C) 2015 Renesas Electronics Corp. 5 * Copyright (C) 2015 Renesas Electronics Corp.
6 */ 6 */
@@ -232,7 +232,7 @@
232 port@1 { 232 port@1 {
233 vin0csi21: endpoint@1 { 233 vin0csi21: endpoint@1 {
234 reg = <1>; 234 reg = <1>;
235 remote-endpoint= <&csi21vin0>; 235 remote-endpoint = <&csi21vin0>;
236 }; 236 };
237 }; 237 };
238 }; 238 };
@@ -243,7 +243,7 @@
243 port@1 { 243 port@1 {
244 vin1csi21: endpoint@1 { 244 vin1csi21: endpoint@1 {
245 reg = <1>; 245 reg = <1>;
246 remote-endpoint= <&csi21vin1>; 246 remote-endpoint = <&csi21vin1>;
247 }; 247 };
248 }; 248 };
249 }; 249 };
@@ -254,7 +254,7 @@
254 port@1 { 254 port@1 {
255 vin2csi21: endpoint@1 { 255 vin2csi21: endpoint@1 {
256 reg = <1>; 256 reg = <1>;
257 remote-endpoint= <&csi21vin2>; 257 remote-endpoint = <&csi21vin2>;
258 }; 258 };
259 }; 259 };
260 }; 260 };
@@ -265,7 +265,7 @@
265 port@1 { 265 port@1 {
266 vin3csi21: endpoint@1 { 266 vin3csi21: endpoint@1 {
267 reg = <1>; 267 reg = <1>;
268 remote-endpoint= <&csi21vin3>; 268 remote-endpoint = <&csi21vin3>;
269 }; 269 };
270 }; 270 };
271 }; 271 };
@@ -276,7 +276,7 @@
276 port@1 { 276 port@1 {
277 vin4csi21: endpoint@1 { 277 vin4csi21: endpoint@1 {
278 reg = <1>; 278 reg = <1>;
279 remote-endpoint= <&csi21vin4>; 279 remote-endpoint = <&csi21vin4>;
280 }; 280 };
281 }; 281 };
282 }; 282 };
@@ -287,7 +287,7 @@
287 port@1 { 287 port@1 {
288 vin5csi21: endpoint@1 { 288 vin5csi21: endpoint@1 {
289 reg = <1>; 289 reg = <1>;
290 remote-endpoint= <&csi21vin5>; 290 remote-endpoint = <&csi21vin5>;
291 }; 291 };
292 }; 292 };
293 }; 293 };
@@ -298,7 +298,7 @@
298 port@1 { 298 port@1 {
299 vin6csi21: endpoint@1 { 299 vin6csi21: endpoint@1 {
300 reg = <1>; 300 reg = <1>;
301 remote-endpoint= <&csi21vin6>; 301 remote-endpoint = <&csi21vin6>;
302 }; 302 };
303 }; 303 };
304 }; 304 };
@@ -309,7 +309,7 @@
309 port@1 { 309 port@1 {
310 vin7csi21: endpoint@1 { 310 vin7csi21: endpoint@1 {
311 reg = <1>; 311 reg = <1>;
312 remote-endpoint= <&csi21vin7>; 312 remote-endpoint = <&csi21vin7>;
313 }; 313 };
314 }; 314 };
315 }; 315 };
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
index df50bf46406e..54515eaf0310 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
@@ -41,11 +41,10 @@
41 <&cpg CPG_MOD 723>, 41 <&cpg CPG_MOD 723>,
42 <&cpg CPG_MOD 722>, 42 <&cpg CPG_MOD 722>,
43 <&cpg CPG_MOD 721>, 43 <&cpg CPG_MOD 721>,
44 <&cpg CPG_MOD 727>,
45 <&versaclock5 1>, 44 <&versaclock5 1>,
46 <&versaclock5 3>, 45 <&versaclock5 3>,
47 <&versaclock5 4>, 46 <&versaclock5 4>,
48 <&versaclock5 2>; 47 <&versaclock5 2>;
49 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 48 clock-names = "du.0", "du.1", "du.2", "du.3",
50 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; 49 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
51}; 50};
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
index 446822f5751c..1620e8d8dacc 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
@@ -40,12 +40,11 @@
40 <&cpg CPG_MOD 723>, 40 <&cpg CPG_MOD 723>,
41 <&cpg CPG_MOD 722>, 41 <&cpg CPG_MOD 722>,
42 <&cpg CPG_MOD 721>, 42 <&cpg CPG_MOD 721>,
43 <&cpg CPG_MOD 727>,
44 <&versaclock5 1>, 43 <&versaclock5 1>,
45 <&x21_clk>, 44 <&x21_clk>,
46 <&x22_clk>, 45 <&x22_clk>,
47 <&versaclock5 2>; 46 <&versaclock5 2>;
48 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 47 clock-names = "du.0", "du.1", "du.2", "du.3",
49 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; 48 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
50}; 49};
51 50
diff --git a/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts b/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts
index 8ded64d0a4d5..cf08a119eec0 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts
@@ -40,12 +40,11 @@
40 <&cpg CPG_MOD 723>, 40 <&cpg CPG_MOD 723>,
41 <&cpg CPG_MOD 722>, 41 <&cpg CPG_MOD 722>,
42 <&cpg CPG_MOD 721>, 42 <&cpg CPG_MOD 721>,
43 <&cpg CPG_MOD 727>,
44 <&versaclock6 1>, 43 <&versaclock6 1>,
45 <&x21_clk>, 44 <&x21_clk>,
46 <&x22_clk>, 45 <&x22_clk>,
47 <&versaclock6 2>; 46 <&versaclock6 2>;
48 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0", 47 clock-names = "du.0", "du.1", "du.2", "du.3",
49 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3"; 48 "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
50}; 49};
51 50
@@ -152,6 +151,15 @@
152 }; 151 };
153}; 152};
154 153
154&pca9654 {
155 pcie_sata_switch {
156 gpio-hog;
157 gpios = <7 GPIO_ACTIVE_HIGH>;
158 output-low; /* enable SATA by default */
159 line-name = "PCIE/SATA switch";
160 };
161};
162
155&pfc { 163&pfc {
156 usb2_pins: usb2 { 164 usb2_pins: usb2 {
157 groups = "usb2"; 165 groups = "usb2";
@@ -176,6 +184,11 @@
176 }; 184 };
177}; 185};
178 186
187/* SW12-7 must be set 'Off' (MD12 set to 1) which is not the default! */
188&sata {
189 status = "okay";
190};
191
179&usb2_phy2 { 192&usb2_phy2 {
180 pinctrl-0 = <&usb2_pins>; 193 pinctrl-0 = <&usb2_pins>;
181 pinctrl-names = "default"; 194 pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
index fb9d08ad7659..b5f2273caca4 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7795 SoC 3 * Device Tree Source for the R-Car H3 (R8A77950) SoC
4 * 4 *
5 * Copyright (C) 2015 Renesas Electronics Corp. 5 * Copyright (C) 2015 Renesas Electronics Corp.
6 */ 6 */
@@ -123,7 +123,7 @@
123 power-domains = <&sysc R8A7795_PD_CA57_CPU0>; 123 power-domains = <&sysc R8A7795_PD_CA57_CPU0>;
124 next-level-cache = <&L2_CA57>; 124 next-level-cache = <&L2_CA57>;
125 enable-method = "psci"; 125 enable-method = "psci";
126 clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 126 clocks = <&cpg CPG_CORE R8A7795_CLK_Z>;
127 operating-points-v2 = <&cluster0_opp>; 127 operating-points-v2 = <&cluster0_opp>;
128 #cooling-cells = <2>; 128 #cooling-cells = <2>;
129 }; 129 };
@@ -135,7 +135,7 @@
135 power-domains = <&sysc R8A7795_PD_CA57_CPU1>; 135 power-domains = <&sysc R8A7795_PD_CA57_CPU1>;
136 next-level-cache = <&L2_CA57>; 136 next-level-cache = <&L2_CA57>;
137 enable-method = "psci"; 137 enable-method = "psci";
138 clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 138 clocks = <&cpg CPG_CORE R8A7795_CLK_Z>;
139 operating-points-v2 = <&cluster0_opp>; 139 operating-points-v2 = <&cluster0_opp>;
140 #cooling-cells = <2>; 140 #cooling-cells = <2>;
141 }; 141 };
@@ -147,7 +147,7 @@
147 power-domains = <&sysc R8A7795_PD_CA57_CPU2>; 147 power-domains = <&sysc R8A7795_PD_CA57_CPU2>;
148 next-level-cache = <&L2_CA57>; 148 next-level-cache = <&L2_CA57>;
149 enable-method = "psci"; 149 enable-method = "psci";
150 clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 150 clocks = <&cpg CPG_CORE R8A7795_CLK_Z>;
151 operating-points-v2 = <&cluster0_opp>; 151 operating-points-v2 = <&cluster0_opp>;
152 #cooling-cells = <2>; 152 #cooling-cells = <2>;
153 }; 153 };
@@ -159,7 +159,7 @@
159 power-domains = <&sysc R8A7795_PD_CA57_CPU3>; 159 power-domains = <&sysc R8A7795_PD_CA57_CPU3>;
160 next-level-cache = <&L2_CA57>; 160 next-level-cache = <&L2_CA57>;
161 enable-method = "psci"; 161 enable-method = "psci";
162 clocks =<&cpg CPG_CORE R8A7795_CLK_Z>; 162 clocks = <&cpg CPG_CORE R8A7795_CLK_Z>;
163 operating-points-v2 = <&cluster0_opp>; 163 operating-points-v2 = <&cluster0_opp>;
164 #cooling-cells = <2>; 164 #cooling-cells = <2>;
165 }; 165 };
@@ -171,7 +171,7 @@
171 power-domains = <&sysc R8A7795_PD_CA53_CPU0>; 171 power-domains = <&sysc R8A7795_PD_CA53_CPU0>;
172 next-level-cache = <&L2_CA53>; 172 next-level-cache = <&L2_CA53>;
173 enable-method = "psci"; 173 enable-method = "psci";
174 clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 174 clocks = <&cpg CPG_CORE R8A7795_CLK_Z2>;
175 operating-points-v2 = <&cluster1_opp>; 175 operating-points-v2 = <&cluster1_opp>;
176 }; 176 };
177 177
@@ -182,7 +182,7 @@
182 power-domains = <&sysc R8A7795_PD_CA53_CPU1>; 182 power-domains = <&sysc R8A7795_PD_CA53_CPU1>;
183 next-level-cache = <&L2_CA53>; 183 next-level-cache = <&L2_CA53>;
184 enable-method = "psci"; 184 enable-method = "psci";
185 clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 185 clocks = <&cpg CPG_CORE R8A7795_CLK_Z2>;
186 operating-points-v2 = <&cluster1_opp>; 186 operating-points-v2 = <&cluster1_opp>;
187 }; 187 };
188 188
@@ -193,7 +193,7 @@
193 power-domains = <&sysc R8A7795_PD_CA53_CPU2>; 193 power-domains = <&sysc R8A7795_PD_CA53_CPU2>;
194 next-level-cache = <&L2_CA53>; 194 next-level-cache = <&L2_CA53>;
195 enable-method = "psci"; 195 enable-method = "psci";
196 clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 196 clocks = <&cpg CPG_CORE R8A7795_CLK_Z2>;
197 operating-points-v2 = <&cluster1_opp>; 197 operating-points-v2 = <&cluster1_opp>;
198 }; 198 };
199 199
@@ -204,7 +204,7 @@
204 power-domains = <&sysc R8A7795_PD_CA53_CPU3>; 204 power-domains = <&sysc R8A7795_PD_CA53_CPU3>;
205 next-level-cache = <&L2_CA53>; 205 next-level-cache = <&L2_CA53>;
206 enable-method = "psci"; 206 enable-method = "psci";
207 clocks =<&cpg CPG_CORE R8A7795_CLK_Z2>; 207 clocks = <&cpg CPG_CORE R8A7795_CLK_Z2>;
208 operating-points-v2 = <&cluster1_opp>; 208 operating-points-v2 = <&cluster1_opp>;
209 }; 209 };
210 210
@@ -455,7 +455,6 @@
455 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 455 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
456 resets = <&cpg 522>; 456 resets = <&cpg 522>;
457 #thermal-sensor-cells = <1>; 457 #thermal-sensor-cells = <1>;
458 status = "okay";
459 }; 458 };
460 459
461 intc_ex: interrupt-controller@e61c0000 { 460 intc_ex: interrupt-controller@e61c0000 {
@@ -525,15 +524,6 @@
525 status = "disabled"; 524 status = "disabled";
526 }; 525 };
527 526
528 arm_cc630p: crypto@e6601000 {
529 compatible = "arm,cryptocell-630p-ree";
530 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
531 reg = <0x0 0xe6601000 0 0x1000>;
532 clocks = <&cpg CPG_MOD 229>;
533 resets = <&cpg 229>;
534 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
535 };
536
537 i2c3: i2c@e66d0000 { 527 i2c3: i2c@e66d0000 {
538 #address-cells = <1>; 528 #address-cells = <1>;
539 #size-cells = <0>; 529 #size-cells = <0>;
@@ -707,7 +697,7 @@
707 "renesas,rcar-gen3-usbhs"; 697 "renesas,rcar-gen3-usbhs";
708 reg = <0 0xe6590000 0 0x100>; 698 reg = <0 0xe6590000 0 0x100>;
709 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 699 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
710 clocks = <&cpg CPG_MOD 704>; 700 clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>;
711 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 701 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
712 <&usb_dmac1 0>, <&usb_dmac1 1>; 702 <&usb_dmac1 0>, <&usb_dmac1 1>;
713 dma-names = "ch0", "ch1", "ch2", "ch3"; 703 dma-names = "ch0", "ch1", "ch2", "ch3";
@@ -715,7 +705,7 @@
715 phys = <&usb2_phy0>; 705 phys = <&usb2_phy0>;
716 phy-names = "usb"; 706 phy-names = "usb";
717 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 707 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
718 resets = <&cpg 704>; 708 resets = <&cpg 704>, <&cpg 703>;
719 status = "disabled"; 709 status = "disabled";
720 }; 710 };
721 711
@@ -724,7 +714,7 @@
724 "renesas,rcar-gen3-usbhs"; 714 "renesas,rcar-gen3-usbhs";
725 reg = <0 0xe659c000 0 0x100>; 715 reg = <0 0xe659c000 0 0x100>;
726 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 716 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
727 clocks = <&cpg CPG_MOD 705>; 717 clocks = <&cpg CPG_MOD 705>, <&cpg CPG_MOD 700>;
728 dmas = <&usb_dmac2 0>, <&usb_dmac2 1>, 718 dmas = <&usb_dmac2 0>, <&usb_dmac2 1>,
729 <&usb_dmac3 0>, <&usb_dmac3 1>; 719 <&usb_dmac3 0>, <&usb_dmac3 1>;
730 dma-names = "ch0", "ch1", "ch2", "ch3"; 720 dma-names = "ch0", "ch1", "ch2", "ch3";
@@ -732,7 +722,7 @@
732 phys = <&usb2_phy3>; 722 phys = <&usb2_phy3>;
733 phy-names = "usb"; 723 phy-names = "usb";
734 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 724 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
735 resets = <&cpg 705>; 725 resets = <&cpg 705>, <&cpg 700>;
736 status = "disabled"; 726 status = "disabled";
737 }; 727 };
738 728
@@ -805,6 +795,15 @@
805 status = "disabled"; 795 status = "disabled";
806 }; 796 };
807 797
798 arm_cc630p: crypto@e6601000 {
799 compatible = "arm,cryptocell-630p-ree";
800 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
801 reg = <0x0 0xe6601000 0 0x1000>;
802 clocks = <&cpg CPG_MOD 229>;
803 resets = <&cpg 229>;
804 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
805 };
806
808 dmac0: dma-controller@e6700000 { 807 dmac0: dma-controller@e6700000 {
809 compatible = "renesas,dmac-r8a7795", 808 compatible = "renesas,dmac-r8a7795",
810 "renesas,rcar-dmac"; 809 "renesas,rcar-dmac";
@@ -1425,11 +1424,11 @@
1425 1424
1426 vin0csi20: endpoint@0 { 1425 vin0csi20: endpoint@0 {
1427 reg = <0>; 1426 reg = <0>;
1428 remote-endpoint= <&csi20vin0>; 1427 remote-endpoint = <&csi20vin0>;
1429 }; 1428 };
1430 vin0csi40: endpoint@2 { 1429 vin0csi40: endpoint@2 {
1431 reg = <2>; 1430 reg = <2>;
1432 remote-endpoint= <&csi40vin0>; 1431 remote-endpoint = <&csi40vin0>;
1433 }; 1432 };
1434 }; 1433 };
1435 }; 1434 };
@@ -1457,11 +1456,11 @@
1457 1456
1458 vin1csi20: endpoint@0 { 1457 vin1csi20: endpoint@0 {
1459 reg = <0>; 1458 reg = <0>;
1460 remote-endpoint= <&csi20vin1>; 1459 remote-endpoint = <&csi20vin1>;
1461 }; 1460 };
1462 vin1csi40: endpoint@2 { 1461 vin1csi40: endpoint@2 {
1463 reg = <2>; 1462 reg = <2>;
1464 remote-endpoint= <&csi40vin1>; 1463 remote-endpoint = <&csi40vin1>;
1465 }; 1464 };
1466 }; 1465 };
1467 }; 1466 };
@@ -1489,11 +1488,11 @@
1489 1488
1490 vin2csi20: endpoint@0 { 1489 vin2csi20: endpoint@0 {
1491 reg = <0>; 1490 reg = <0>;
1492 remote-endpoint= <&csi20vin2>; 1491 remote-endpoint = <&csi20vin2>;
1493 }; 1492 };
1494 vin2csi40: endpoint@2 { 1493 vin2csi40: endpoint@2 {
1495 reg = <2>; 1494 reg = <2>;
1496 remote-endpoint= <&csi40vin2>; 1495 remote-endpoint = <&csi40vin2>;
1497 }; 1496 };
1498 }; 1497 };
1499 }; 1498 };
@@ -1521,11 +1520,11 @@
1521 1520
1522 vin3csi20: endpoint@0 { 1521 vin3csi20: endpoint@0 {
1523 reg = <0>; 1522 reg = <0>;
1524 remote-endpoint= <&csi20vin3>; 1523 remote-endpoint = <&csi20vin3>;
1525 }; 1524 };
1526 vin3csi40: endpoint@2 { 1525 vin3csi40: endpoint@2 {
1527 reg = <2>; 1526 reg = <2>;
1528 remote-endpoint= <&csi40vin3>; 1527 remote-endpoint = <&csi40vin3>;
1529 }; 1528 };
1530 }; 1529 };
1531 }; 1530 };
@@ -1553,11 +1552,11 @@
1553 1552
1554 vin4csi20: endpoint@0 { 1553 vin4csi20: endpoint@0 {
1555 reg = <0>; 1554 reg = <0>;
1556 remote-endpoint= <&csi20vin4>; 1555 remote-endpoint = <&csi20vin4>;
1557 }; 1556 };
1558 vin4csi41: endpoint@3 { 1557 vin4csi41: endpoint@3 {
1559 reg = <3>; 1558 reg = <3>;
1560 remote-endpoint= <&csi41vin4>; 1559 remote-endpoint = <&csi41vin4>;
1561 }; 1560 };
1562 }; 1561 };
1563 }; 1562 };
@@ -1585,11 +1584,11 @@
1585 1584
1586 vin5csi20: endpoint@0 { 1585 vin5csi20: endpoint@0 {
1587 reg = <0>; 1586 reg = <0>;
1588 remote-endpoint= <&csi20vin5>; 1587 remote-endpoint = <&csi20vin5>;
1589 }; 1588 };
1590 vin5csi41: endpoint@3 { 1589 vin5csi41: endpoint@3 {
1591 reg = <3>; 1590 reg = <3>;
1592 remote-endpoint= <&csi41vin5>; 1591 remote-endpoint = <&csi41vin5>;
1593 }; 1592 };
1594 }; 1593 };
1595 }; 1594 };
@@ -1617,11 +1616,11 @@
1617 1616
1618 vin6csi20: endpoint@0 { 1617 vin6csi20: endpoint@0 {
1619 reg = <0>; 1618 reg = <0>;
1620 remote-endpoint= <&csi20vin6>; 1619 remote-endpoint = <&csi20vin6>;
1621 }; 1620 };
1622 vin6csi41: endpoint@3 { 1621 vin6csi41: endpoint@3 {
1623 reg = <3>; 1622 reg = <3>;
1624 remote-endpoint= <&csi41vin6>; 1623 remote-endpoint = <&csi41vin6>;
1625 }; 1624 };
1626 }; 1625 };
1627 }; 1626 };
@@ -1649,11 +1648,11 @@
1649 1648
1650 vin7csi20: endpoint@0 { 1649 vin7csi20: endpoint@0 {
1651 reg = <0>; 1650 reg = <0>;
1652 remote-endpoint= <&csi20vin7>; 1651 remote-endpoint = <&csi20vin7>;
1653 }; 1652 };
1654 vin7csi41: endpoint@3 { 1653 vin7csi41: endpoint@3 {
1655 reg = <3>; 1654 reg = <3>;
1656 remote-endpoint= <&csi41vin7>; 1655 remote-endpoint = <&csi41vin7>;
1657 }; 1656 };
1658 }; 1657 };
1659 }; 1658 };
@@ -2098,11 +2097,11 @@
2098 compatible = "generic-ohci"; 2097 compatible = "generic-ohci";
2099 reg = <0 0xee080000 0 0x100>; 2098 reg = <0 0xee080000 0 0x100>;
2100 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2099 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
2101 clocks = <&cpg CPG_MOD 703>; 2100 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
2102 phys = <&usb2_phy0>; 2101 phys = <&usb2_phy0>;
2103 phy-names = "usb"; 2102 phy-names = "usb";
2104 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2103 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2105 resets = <&cpg 703>; 2104 resets = <&cpg 703>, <&cpg 704>;
2106 status = "disabled"; 2105 status = "disabled";
2107 }; 2106 };
2108 2107
@@ -2134,11 +2133,11 @@
2134 compatible = "generic-ohci"; 2133 compatible = "generic-ohci";
2135 reg = <0 0xee0e0000 0 0x100>; 2134 reg = <0 0xee0e0000 0 0x100>;
2136 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2135 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
2137 clocks = <&cpg CPG_MOD 700>; 2136 clocks = <&cpg CPG_MOD 700>, <&cpg CPG_MOD 705>;
2138 phys = <&usb2_phy3>; 2137 phys = <&usb2_phy3>;
2139 phy-names = "usb"; 2138 phy-names = "usb";
2140 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2139 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2141 resets = <&cpg 700>; 2140 resets = <&cpg 700>, <&cpg 705>;
2142 status = "disabled"; 2141 status = "disabled";
2143 }; 2142 };
2144 2143
@@ -2146,12 +2145,12 @@
2146 compatible = "generic-ehci"; 2145 compatible = "generic-ehci";
2147 reg = <0 0xee080100 0 0x100>; 2146 reg = <0 0xee080100 0 0x100>;
2148 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2147 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
2149 clocks = <&cpg CPG_MOD 703>; 2148 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
2150 phys = <&usb2_phy0>; 2149 phys = <&usb2_phy0>;
2151 phy-names = "usb"; 2150 phy-names = "usb";
2152 companion = <&ohci0>; 2151 companion = <&ohci0>;
2153 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2152 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2154 resets = <&cpg 703>; 2153 resets = <&cpg 703>, <&cpg 704>;
2155 status = "disabled"; 2154 status = "disabled";
2156 }; 2155 };
2157 2156
@@ -2185,12 +2184,12 @@
2185 compatible = "generic-ehci"; 2184 compatible = "generic-ehci";
2186 reg = <0 0xee0e0100 0 0x100>; 2185 reg = <0 0xee0e0100 0 0x100>;
2187 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2186 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
2188 clocks = <&cpg CPG_MOD 700>; 2187 clocks = <&cpg CPG_MOD 700>, <&cpg CPG_MOD 705>;
2189 phys = <&usb2_phy3>; 2188 phys = <&usb2_phy3>;
2190 phy-names = "usb"; 2189 phy-names = "usb";
2191 companion = <&ohci3>; 2190 companion = <&ohci3>;
2192 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2191 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2193 resets = <&cpg 700>; 2192 resets = <&cpg 700>, <&cpg 705>;
2194 status = "disabled"; 2193 status = "disabled";
2195 }; 2194 };
2196 2195
@@ -2199,9 +2198,9 @@
2199 "renesas,rcar-gen3-usb2-phy"; 2198 "renesas,rcar-gen3-usb2-phy";
2200 reg = <0 0xee080200 0 0x700>; 2199 reg = <0 0xee080200 0 0x700>;
2201 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2200 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
2202 clocks = <&cpg CPG_MOD 703>; 2201 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
2203 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2202 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2204 resets = <&cpg 703>; 2203 resets = <&cpg 703>, <&cpg 704>;
2205 #phy-cells = <0>; 2204 #phy-cells = <0>;
2206 status = "disabled"; 2205 status = "disabled";
2207 }; 2206 };
@@ -2233,9 +2232,9 @@
2233 "renesas,rcar-gen3-usb2-phy"; 2232 "renesas,rcar-gen3-usb2-phy";
2234 reg = <0 0xee0e0200 0 0x700>; 2233 reg = <0 0xee0e0200 0 0x700>;
2235 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 2234 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
2236 clocks = <&cpg CPG_MOD 700>; 2235 clocks = <&cpg CPG_MOD 700>, <&cpg CPG_MOD 705>;
2237 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>; 2236 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2238 resets = <&cpg 700>; 2237 resets = <&cpg 700>, <&cpg 705>;
2239 #phy-cells = <0>; 2238 #phy-cells = <0>;
2240 status = "disabled"; 2239 status = "disabled";
2241 }; 2240 };
@@ -2782,9 +2781,7 @@
2782 2781
2783 du: display@feb00000 { 2782 du: display@feb00000 {
2784 compatible = "renesas,du-r8a7795"; 2783 compatible = "renesas,du-r8a7795";
2785 reg = <0 0xfeb00000 0 0x80000>, 2784 reg = <0 0xfeb00000 0 0x80000>;
2786 <0 0xfeb90000 0 0x14>;
2787 reg-names = "du", "lvds.0";
2788 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 2785 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
2789 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, 2786 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
2790 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>, 2787 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
@@ -2792,9 +2789,8 @@
2792 clocks = <&cpg CPG_MOD 724>, 2789 clocks = <&cpg CPG_MOD 724>,
2793 <&cpg CPG_MOD 723>, 2790 <&cpg CPG_MOD 723>,
2794 <&cpg CPG_MOD 722>, 2791 <&cpg CPG_MOD 722>,
2795 <&cpg CPG_MOD 721>, 2792 <&cpg CPG_MOD 721>;
2796 <&cpg CPG_MOD 727>; 2793 clock-names = "du.0", "du.1", "du.2", "du.3";
2797 clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
2798 vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>; 2794 vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;
2799 status = "disabled"; 2795 status = "disabled";
2800 2796
@@ -2822,6 +2818,33 @@
2822 port@3 { 2818 port@3 {
2823 reg = <3>; 2819 reg = <3>;
2824 du_out_lvds0: endpoint { 2820 du_out_lvds0: endpoint {
2821 remote-endpoint = <&lvds0_in>;
2822 };
2823 };
2824 };
2825 };
2826
2827 lvds0: lvds@feb90000 {
2828 compatible = "renesas,r8a7795-lvds";
2829 reg = <0 0xfeb90000 0 0x14>;
2830 clocks = <&cpg CPG_MOD 727>;
2831 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
2832 resets = <&cpg 727>;
2833 status = "disabled";
2834
2835 ports {
2836 #address-cells = <1>;
2837 #size-cells = <0>;
2838
2839 port@0 {
2840 reg = <0>;
2841 lvds0_in: endpoint {
2842 remote-endpoint = <&du_out_lvds0>;
2843 };
2844 };
2845 port@1 {
2846 reg = <1>;
2847 lvds0_out: endpoint {
2825 }; 2848 };
2826 }; 2849 };
2827 }; 2850 };
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
index cbd8acbf537e..9e4594c27fa6 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
@@ -30,10 +30,9 @@
30 clocks = <&cpg CPG_MOD 724>, 30 clocks = <&cpg CPG_MOD 724>,
31 <&cpg CPG_MOD 723>, 31 <&cpg CPG_MOD 723>,
32 <&cpg CPG_MOD 722>, 32 <&cpg CPG_MOD 722>,
33 <&cpg CPG_MOD 727>,
34 <&versaclock5 1>, 33 <&versaclock5 1>,
35 <&versaclock5 3>, 34 <&versaclock5 3>,
36 <&versaclock5 2>; 35 <&versaclock5 2>;
37 clock-names = "du.0", "du.1", "du.2", "lvds.0", 36 clock-names = "du.0", "du.1", "du.2",
38 "dclkin.0", "dclkin.1", "dclkin.2"; 37 "dclkin.0", "dclkin.1", "dclkin.2";
39}; 38};
diff --git a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
index 052d72acc862..b4f9567cb9f8 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
+++ b/arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
@@ -29,11 +29,10 @@
29 clocks = <&cpg CPG_MOD 724>, 29 clocks = <&cpg CPG_MOD 724>,
30 <&cpg CPG_MOD 723>, 30 <&cpg CPG_MOD 723>,
31 <&cpg CPG_MOD 722>, 31 <&cpg CPG_MOD 722>,
32 <&cpg CPG_MOD 727>,
33 <&versaclock5 1>, 32 <&versaclock5 1>,
34 <&x21_clk>, 33 <&x21_clk>,
35 <&versaclock5 2>; 34 <&versaclock5 2>;
36 clock-names = "du.0", "du.1", "du.2", "lvds.0", 35 clock-names = "du.0", "du.1", "du.2",
37 "dclkin.0", "dclkin.1", "dclkin.2"; 36 "dclkin.0", "dclkin.1", "dclkin.2";
38}; 37};
39 38
diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index cbd35c00b4af..1ec6aaa520c1 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a7796 SoC 3 * Device Tree Source for the R-Car M3-W (R8A77960) SoC
4 * 4 *
5 * Copyright (C) 2016-2017 Renesas Electronics Corp. 5 * Copyright (C) 2016-2017 Renesas Electronics Corp.
6 */ 6 */
@@ -134,7 +134,7 @@
134 power-domains = <&sysc R8A7796_PD_CA57_CPU0>; 134 power-domains = <&sysc R8A7796_PD_CA57_CPU0>;
135 next-level-cache = <&L2_CA57>; 135 next-level-cache = <&L2_CA57>;
136 enable-method = "psci"; 136 enable-method = "psci";
137 clocks =<&cpg CPG_CORE R8A7796_CLK_Z>; 137 clocks = <&cpg CPG_CORE R8A7796_CLK_Z>;
138 operating-points-v2 = <&cluster0_opp>; 138 operating-points-v2 = <&cluster0_opp>;
139 #cooling-cells = <2>; 139 #cooling-cells = <2>;
140 }; 140 };
@@ -146,7 +146,7 @@
146 power-domains = <&sysc R8A7796_PD_CA57_CPU1>; 146 power-domains = <&sysc R8A7796_PD_CA57_CPU1>;
147 next-level-cache = <&L2_CA57>; 147 next-level-cache = <&L2_CA57>;
148 enable-method = "psci"; 148 enable-method = "psci";
149 clocks =<&cpg CPG_CORE R8A7796_CLK_Z>; 149 clocks = <&cpg CPG_CORE R8A7796_CLK_Z>;
150 operating-points-v2 = <&cluster0_opp>; 150 operating-points-v2 = <&cluster0_opp>;
151 #cooling-cells = <2>; 151 #cooling-cells = <2>;
152 }; 152 };
@@ -158,7 +158,7 @@
158 power-domains = <&sysc R8A7796_PD_CA53_CPU0>; 158 power-domains = <&sysc R8A7796_PD_CA53_CPU0>;
159 next-level-cache = <&L2_CA53>; 159 next-level-cache = <&L2_CA53>;
160 enable-method = "psci"; 160 enable-method = "psci";
161 clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 161 clocks = <&cpg CPG_CORE R8A7796_CLK_Z2>;
162 operating-points-v2 = <&cluster1_opp>; 162 operating-points-v2 = <&cluster1_opp>;
163 }; 163 };
164 164
@@ -169,7 +169,7 @@
169 power-domains = <&sysc R8A7796_PD_CA53_CPU1>; 169 power-domains = <&sysc R8A7796_PD_CA53_CPU1>;
170 next-level-cache = <&L2_CA53>; 170 next-level-cache = <&L2_CA53>;
171 enable-method = "psci"; 171 enable-method = "psci";
172 clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 172 clocks = <&cpg CPG_CORE R8A7796_CLK_Z2>;
173 operating-points-v2 = <&cluster1_opp>; 173 operating-points-v2 = <&cluster1_opp>;
174 }; 174 };
175 175
@@ -180,7 +180,7 @@
180 power-domains = <&sysc R8A7796_PD_CA53_CPU2>; 180 power-domains = <&sysc R8A7796_PD_CA53_CPU2>;
181 next-level-cache = <&L2_CA53>; 181 next-level-cache = <&L2_CA53>;
182 enable-method = "psci"; 182 enable-method = "psci";
183 clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 183 clocks = <&cpg CPG_CORE R8A7796_CLK_Z2>;
184 operating-points-v2 = <&cluster1_opp>; 184 operating-points-v2 = <&cluster1_opp>;
185 }; 185 };
186 186
@@ -191,7 +191,7 @@
191 power-domains = <&sysc R8A7796_PD_CA53_CPU3>; 191 power-domains = <&sysc R8A7796_PD_CA53_CPU3>;
192 next-level-cache = <&L2_CA53>; 192 next-level-cache = <&L2_CA53>;
193 enable-method = "psci"; 193 enable-method = "psci";
194 clocks =<&cpg CPG_CORE R8A7796_CLK_Z2>; 194 clocks = <&cpg CPG_CORE R8A7796_CLK_Z2>;
195 operating-points-v2 = <&cluster1_opp>; 195 operating-points-v2 = <&cluster1_opp>;
196 }; 196 };
197 197
@@ -434,7 +434,6 @@
434 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 434 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
435 resets = <&cpg 522>; 435 resets = <&cpg 522>;
436 #thermal-sensor-cells = <1>; 436 #thermal-sensor-cells = <1>;
437 status = "okay";
438 }; 437 };
439 438
440 intc_ex: interrupt-controller@e61c0000 { 439 intc_ex: interrupt-controller@e61c0000 {
@@ -677,7 +676,7 @@
677 "renesas,rcar-gen3-usbhs"; 676 "renesas,rcar-gen3-usbhs";
678 reg = <0 0xe6590000 0 0x100>; 677 reg = <0 0xe6590000 0 0x100>;
679 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 678 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
680 clocks = <&cpg CPG_MOD 704>; 679 clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>;
681 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 680 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
682 <&usb_dmac1 0>, <&usb_dmac1 1>; 681 <&usb_dmac1 0>, <&usb_dmac1 1>;
683 dma-names = "ch0", "ch1", "ch2", "ch3"; 682 dma-names = "ch0", "ch1", "ch2", "ch3";
@@ -685,7 +684,7 @@
685 phys = <&usb2_phy0>; 684 phys = <&usb2_phy0>;
686 phy-names = "usb"; 685 phy-names = "usb";
687 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 686 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
688 resets = <&cpg 704>; 687 resets = <&cpg 704>, <&cpg 703>;
689 status = "disabled"; 688 status = "disabled";
690 }; 689 };
691 690
@@ -1299,11 +1298,11 @@
1299 1298
1300 vin0csi20: endpoint@0 { 1299 vin0csi20: endpoint@0 {
1301 reg = <0>; 1300 reg = <0>;
1302 remote-endpoint= <&csi20vin0>; 1301 remote-endpoint = <&csi20vin0>;
1303 }; 1302 };
1304 vin0csi40: endpoint@2 { 1303 vin0csi40: endpoint@2 {
1305 reg = <2>; 1304 reg = <2>;
1306 remote-endpoint= <&csi40vin0>; 1305 remote-endpoint = <&csi40vin0>;
1307 }; 1306 };
1308 }; 1307 };
1309 }; 1308 };
@@ -1331,11 +1330,11 @@
1331 1330
1332 vin1csi20: endpoint@0 { 1331 vin1csi20: endpoint@0 {
1333 reg = <0>; 1332 reg = <0>;
1334 remote-endpoint= <&csi20vin1>; 1333 remote-endpoint = <&csi20vin1>;
1335 }; 1334 };
1336 vin1csi40: endpoint@2 { 1335 vin1csi40: endpoint@2 {
1337 reg = <2>; 1336 reg = <2>;
1338 remote-endpoint= <&csi40vin1>; 1337 remote-endpoint = <&csi40vin1>;
1339 }; 1338 };
1340 }; 1339 };
1341 }; 1340 };
@@ -1363,11 +1362,11 @@
1363 1362
1364 vin2csi20: endpoint@0 { 1363 vin2csi20: endpoint@0 {
1365 reg = <0>; 1364 reg = <0>;
1366 remote-endpoint= <&csi20vin2>; 1365 remote-endpoint = <&csi20vin2>;
1367 }; 1366 };
1368 vin2csi40: endpoint@2 { 1367 vin2csi40: endpoint@2 {
1369 reg = <2>; 1368 reg = <2>;
1370 remote-endpoint= <&csi40vin2>; 1369 remote-endpoint = <&csi40vin2>;
1371 }; 1370 };
1372 }; 1371 };
1373 }; 1372 };
@@ -1395,11 +1394,11 @@
1395 1394
1396 vin3csi20: endpoint@0 { 1395 vin3csi20: endpoint@0 {
1397 reg = <0>; 1396 reg = <0>;
1398 remote-endpoint= <&csi20vin3>; 1397 remote-endpoint = <&csi20vin3>;
1399 }; 1398 };
1400 vin3csi40: endpoint@2 { 1399 vin3csi40: endpoint@2 {
1401 reg = <2>; 1400 reg = <2>;
1402 remote-endpoint= <&csi40vin3>; 1401 remote-endpoint = <&csi40vin3>;
1403 }; 1402 };
1404 }; 1403 };
1405 }; 1404 };
@@ -1427,11 +1426,11 @@
1427 1426
1428 vin4csi20: endpoint@0 { 1427 vin4csi20: endpoint@0 {
1429 reg = <0>; 1428 reg = <0>;
1430 remote-endpoint= <&csi20vin4>; 1429 remote-endpoint = <&csi20vin4>;
1431 }; 1430 };
1432 vin4csi40: endpoint@2 { 1431 vin4csi40: endpoint@2 {
1433 reg = <2>; 1432 reg = <2>;
1434 remote-endpoint= <&csi40vin4>; 1433 remote-endpoint = <&csi40vin4>;
1435 }; 1434 };
1436 }; 1435 };
1437 }; 1436 };
@@ -1459,11 +1458,11 @@
1459 1458
1460 vin5csi20: endpoint@0 { 1459 vin5csi20: endpoint@0 {
1461 reg = <0>; 1460 reg = <0>;
1462 remote-endpoint= <&csi20vin5>; 1461 remote-endpoint = <&csi20vin5>;
1463 }; 1462 };
1464 vin5csi40: endpoint@2 { 1463 vin5csi40: endpoint@2 {
1465 reg = <2>; 1464 reg = <2>;
1466 remote-endpoint= <&csi40vin5>; 1465 remote-endpoint = <&csi40vin5>;
1467 }; 1466 };
1468 }; 1467 };
1469 }; 1468 };
@@ -1491,11 +1490,11 @@
1491 1490
1492 vin6csi20: endpoint@0 { 1491 vin6csi20: endpoint@0 {
1493 reg = <0>; 1492 reg = <0>;
1494 remote-endpoint= <&csi20vin6>; 1493 remote-endpoint = <&csi20vin6>;
1495 }; 1494 };
1496 vin6csi40: endpoint@2 { 1495 vin6csi40: endpoint@2 {
1497 reg = <2>; 1496 reg = <2>;
1498 remote-endpoint= <&csi40vin6>; 1497 remote-endpoint = <&csi40vin6>;
1499 }; 1498 };
1500 }; 1499 };
1501 }; 1500 };
@@ -1523,11 +1522,11 @@
1523 1522
1524 vin7csi20: endpoint@0 { 1523 vin7csi20: endpoint@0 {
1525 reg = <0>; 1524 reg = <0>;
1526 remote-endpoint= <&csi20vin7>; 1525 remote-endpoint = <&csi20vin7>;
1527 }; 1526 };
1528 vin7csi40: endpoint@2 { 1527 vin7csi40: endpoint@2 {
1529 reg = <2>; 1528 reg = <2>;
1530 remote-endpoint= <&csi40vin7>; 1529 remote-endpoint = <&csi40vin7>;
1531 }; 1530 };
1532 }; 1531 };
1533 }; 1532 };
@@ -1970,11 +1969,11 @@
1970 compatible = "generic-ohci"; 1969 compatible = "generic-ohci";
1971 reg = <0 0xee080000 0 0x100>; 1970 reg = <0 0xee080000 0 0x100>;
1972 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1971 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1973 clocks = <&cpg CPG_MOD 703>; 1972 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
1974 phys = <&usb2_phy0>; 1973 phys = <&usb2_phy0>;
1975 phy-names = "usb"; 1974 phy-names = "usb";
1976 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 1975 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
1977 resets = <&cpg 703>; 1976 resets = <&cpg 703>, <&cpg 704>;
1978 status = "disabled"; 1977 status = "disabled";
1979 }; 1978 };
1980 1979
@@ -1994,12 +1993,12 @@
1994 compatible = "generic-ehci"; 1993 compatible = "generic-ehci";
1995 reg = <0 0xee080100 0 0x100>; 1994 reg = <0 0xee080100 0 0x100>;
1996 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1995 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1997 clocks = <&cpg CPG_MOD 703>; 1996 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
1998 phys = <&usb2_phy0>; 1997 phys = <&usb2_phy0>;
1999 phy-names = "usb"; 1998 phy-names = "usb";
2000 companion= <&ohci0>; 1999 companion = <&ohci0>;
2001 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2000 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
2002 resets = <&cpg 703>; 2001 resets = <&cpg 703>, <&cpg 704>;
2003 status = "disabled"; 2002 status = "disabled";
2004 }; 2003 };
2005 2004
@@ -2010,7 +2009,7 @@
2010 clocks = <&cpg CPG_MOD 702>; 2009 clocks = <&cpg CPG_MOD 702>;
2011 phys = <&usb2_phy1>; 2010 phys = <&usb2_phy1>;
2012 phy-names = "usb"; 2011 phy-names = "usb";
2013 companion= <&ohci1>; 2012 companion = <&ohci1>;
2014 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2013 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
2015 resets = <&cpg 702>; 2014 resets = <&cpg 702>;
2016 status = "disabled"; 2015 status = "disabled";
@@ -2021,9 +2020,9 @@
2021 "renesas,rcar-gen3-usb2-phy"; 2020 "renesas,rcar-gen3-usb2-phy";
2022 reg = <0 0xee080200 0 0x700>; 2021 reg = <0 0xee080200 0 0x700>;
2023 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 2022 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
2024 clocks = <&cpg CPG_MOD 703>; 2023 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
2025 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>; 2024 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
2026 resets = <&cpg 703>; 2025 resets = <&cpg 703>, <&cpg 704>;
2027 #phy-cells = <0>; 2026 #phy-cells = <0>;
2028 status = "disabled"; 2027 status = "disabled";
2029 }; 2028 };
@@ -2437,17 +2436,14 @@
2437 2436
2438 du: display@feb00000 { 2437 du: display@feb00000 {
2439 compatible = "renesas,du-r8a7796"; 2438 compatible = "renesas,du-r8a7796";
2440 reg = <0 0xfeb00000 0 0x70000>, 2439 reg = <0 0xfeb00000 0 0x70000>;
2441 <0 0xfeb90000 0 0x14>;
2442 reg-names = "du", "lvds.0";
2443 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>, 2440 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
2444 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>, 2441 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
2445 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>; 2442 <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
2446 clocks = <&cpg CPG_MOD 724>, 2443 clocks = <&cpg CPG_MOD 724>,
2447 <&cpg CPG_MOD 723>, 2444 <&cpg CPG_MOD 723>,
2448 <&cpg CPG_MOD 722>, 2445 <&cpg CPG_MOD 722>;
2449 <&cpg CPG_MOD 727>; 2446 clock-names = "du.0", "du.1", "du.2";
2450 clock-names = "du.0", "du.1", "du.2", "lvds.0";
2451 status = "disabled"; 2447 status = "disabled";
2452 2448
2453 vsps = <&vspd0 &vspd1 &vspd2>; 2449 vsps = <&vspd0 &vspd1 &vspd2>;
@@ -2470,6 +2466,33 @@
2470 port@2 { 2466 port@2 {
2471 reg = <2>; 2467 reg = <2>;
2472 du_out_lvds0: endpoint { 2468 du_out_lvds0: endpoint {
2469 remote-endpoint = <&lvds0_in>;
2470 };
2471 };
2472 };
2473 };
2474
2475 lvds0: lvds@feb90000 {
2476 compatible = "renesas,r8a7796-lvds";
2477 reg = <0 0xfeb90000 0 0x14>;
2478 clocks = <&cpg CPG_MOD 727>;
2479 power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
2480 resets = <&cpg 727>;
2481 status = "disabled";
2482
2483 ports {
2484 #address-cells = <1>;
2485 #size-cells = <0>;
2486
2487 port@0 {
2488 reg = <0>;
2489 lvds0_in: endpoint {
2490 remote-endpoint = <&du_out_lvds0>;
2491 };
2492 };
2493 port@1 {
2494 reg = <1>;
2495 lvds0_out: endpoint {
2473 }; 2496 };
2474 }; 2497 };
2475 }; 2498 };
diff --git a/arch/arm64/boot/dts/renesas/r8a77965-m3nulcb-kf.dts b/arch/arm64/boot/dts/renesas/r8a77965-m3nulcb-kf.dts
new file mode 100644
index 000000000000..dadad97051b9
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a77965-m3nulcb-kf.dts
@@ -0,0 +1,16 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the M3NULCB Kingfisher board
4 *
5 * Copyright (C) 2018 Renesas Electronics Corp.
6 * Copyright (C) 2018 Cogent Embedded, Inc.
7 */
8
9#include "r8a77965-m3nulcb.dts"
10#include "ulcb-kf.dtsi"
11
12/ {
13 model = "Renesas M3NULCB Kingfisher board based on r8a77965";
14 compatible = "shimafuji,kingfisher", "renesas,m3nulcb",
15 "renesas,r8a77965";
16};
diff --git a/arch/arm64/boot/dts/renesas/r8a77965-m3nulcb.dts b/arch/arm64/boot/dts/renesas/r8a77965-m3nulcb.dts
new file mode 100644
index 000000000000..964078b6cc49
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a77965-m3nulcb.dts
@@ -0,0 +1,33 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the M3NULCB (R-Car Starter Kit Pro) board
4 *
5 * Copyright (C) 2018 Renesas Electronics Corp.
6 * Copyright (C) 2018 Cogent Embedded, Inc.
7 */
8
9/dts-v1/;
10#include "r8a77965.dtsi"
11#include "ulcb.dtsi"
12
13/ {
14 model = "Renesas M3NULCB board based on r8a77965";
15 compatible = "renesas,m3nulcb", "renesas,r8a77965";
16
17 memory@48000000 {
18 device_type = "memory";
19 /* first 128MB is reserved for secure area. */
20 reg = <0x0 0x48000000 0x0 0x78000000>;
21 };
22};
23
24&du {
25 clocks = <&cpg CPG_MOD 724>,
26 <&cpg CPG_MOD 723>,
27 <&cpg CPG_MOD 721>,
28 <&versaclock5 1>,
29 <&versaclock5 3>,
30 <&versaclock5 2>;
31 clock-names = "du.0", "du.1", "du.3",
32 "dclkin.0", "dclkin.1", "dclkin.3";
33};
diff --git a/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts b/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts
index 9de4e3db1621..f03a5e9e0c42 100644
--- a/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dts
@@ -47,3 +47,17 @@
47&hdmi0_con { 47&hdmi0_con {
48 remote-endpoint = <&rcar_dw_hdmi0_out>; 48 remote-endpoint = <&rcar_dw_hdmi0_out>;
49}; 49};
50
51&pca9654 {
52 pcie_sata_switch {
53 gpio-hog;
54 gpios = <7 GPIO_ACTIVE_HIGH>;
55 output-low; /* enable SATA by default */
56 line-name = "PCIE/SATA switch";
57 };
58};
59
60/* SW12-7 must be set 'Off' (MD12 set to 1) which is not the default! */
61&sata {
62 status = "okay";
63};
diff --git a/arch/arm64/boot/dts/renesas/r8a77965.dtsi b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
index 0cd44461a0bd..83946ca2eba5 100644
--- a/arch/arm64/boot/dts/renesas/r8a77965.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77965.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a77965 SoC 3 * Device Tree Source for the R-Car M3-N (R8A77965) SoC
4 * 4 *
5 * Copyright (C) 2018 Jacopo Mondi <jacopo+renesas@jmondi.org> 5 * Copyright (C) 2018 Jacopo Mondi <jacopo+renesas@jmondi.org>
6 * 6 *
@@ -12,7 +12,7 @@
12#include <dt-bindings/interrupt-controller/arm-gic.h> 12#include <dt-bindings/interrupt-controller/arm-gic.h>
13#include <dt-bindings/power/r8a77965-sysc.h> 13#include <dt-bindings/power/r8a77965-sysc.h>
14 14
15#define CPG_AUDIO_CLK_I 10 15#define CPG_AUDIO_CLK_I R8A77965_CLK_S0D4
16 16
17/ { 17/ {
18 compatible = "renesas,r8a77965"; 18 compatible = "renesas,r8a77965";
@@ -60,6 +60,46 @@
60 clock-frequency = <0>; 60 clock-frequency = <0>;
61 }; 61 };
62 62
63 cluster0_opp: opp_table0 {
64 compatible = "operating-points-v2";
65 opp-shared;
66
67 opp-500000000 {
68 opp-hz = /bits/ 64 <500000000>;
69 opp-microvolt = <830000>;
70 clock-latency-ns = <300000>;
71 };
72 opp-1000000000 {
73 opp-hz = /bits/ 64 <1000000000>;
74 opp-microvolt = <830000>;
75 clock-latency-ns = <300000>;
76 };
77 opp-1500000000 {
78 opp-hz = /bits/ 64 <1500000000>;
79 opp-microvolt = <830000>;
80 clock-latency-ns = <300000>;
81 opp-suspend;
82 };
83 opp-1600000000 {
84 opp-hz = /bits/ 64 <1600000000>;
85 opp-microvolt = <900000>;
86 clock-latency-ns = <300000>;
87 turbo-mode;
88 };
89 opp-1700000000 {
90 opp-hz = /bits/ 64 <1700000000>;
91 opp-microvolt = <900000>;
92 clock-latency-ns = <300000>;
93 turbo-mode;
94 };
95 opp-1800000000 {
96 opp-hz = /bits/ 64 <1800000000>;
97 opp-microvolt = <960000>;
98 clock-latency-ns = <300000>;
99 turbo-mode;
100 };
101 };
102
63 cpus { 103 cpus {
64 #address-cells = <1>; 104 #address-cells = <1>;
65 #size-cells = <0>; 105 #size-cells = <0>;
@@ -71,6 +111,8 @@
71 power-domains = <&sysc R8A77965_PD_CA57_CPU0>; 111 power-domains = <&sysc R8A77965_PD_CA57_CPU0>;
72 next-level-cache = <&L2_CA57>; 112 next-level-cache = <&L2_CA57>;
73 enable-method = "psci"; 113 enable-method = "psci";
114 clocks = <&cpg CPG_CORE R8A77965_CLK_Z>;
115 operating-points-v2 = <&cluster0_opp>;
74 }; 116 };
75 117
76 a57_1: cpu@1 { 118 a57_1: cpu@1 {
@@ -80,6 +122,8 @@
80 power-domains = <&sysc R8A77965_PD_CA57_CPU1>; 122 power-domains = <&sysc R8A77965_PD_CA57_CPU1>;
81 next-level-cache = <&L2_CA57>; 123 next-level-cache = <&L2_CA57>;
82 enable-method = "psci"; 124 enable-method = "psci";
125 clocks = <&cpg CPG_CORE R8A77965_CLK_Z>;
126 operating-points-v2 = <&cluster0_opp>;
83 }; 127 };
84 128
85 L2_CA57: cache-controller-0 { 129 L2_CA57: cache-controller-0 {
@@ -306,7 +350,6 @@
306 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 350 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
307 resets = <&cpg 522>; 351 resets = <&cpg 522>;
308 #thermal-sensor-cells = <1>; 352 #thermal-sensor-cells = <1>;
309 status = "okay";
310 }; 353 };
311 354
312 intc_ex: interrupt-controller@e61c0000 { 355 intc_ex: interrupt-controller@e61c0000 {
@@ -545,11 +588,11 @@
545 }; 588 };
546 589
547 hsusb: usb@e6590000 { 590 hsusb: usb@e6590000 {
548 compatible = "renesas,usbhs-r8a7796", 591 compatible = "renesas,usbhs-r8a77965",
549 "renesas,rcar-gen3-usbhs"; 592 "renesas,rcar-gen3-usbhs";
550 reg = <0 0xe6590000 0 0x100>; 593 reg = <0 0xe6590000 0 0x100>;
551 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>; 594 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
552 clocks = <&cpg CPG_MOD 704>; 595 clocks = <&cpg CPG_MOD 704>, <&cpg CPG_MOD 703>;
553 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>, 596 dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
554 <&usb_dmac1 0>, <&usb_dmac1 1>; 597 <&usb_dmac1 0>, <&usb_dmac1 1>;
555 dma-names = "ch0", "ch1", "ch2", "ch3"; 598 dma-names = "ch0", "ch1", "ch2", "ch3";
@@ -557,7 +600,7 @@
557 phys = <&usb2_phy0>; 600 phys = <&usb2_phy0>;
558 phy-names = "usb"; 601 phy-names = "usb";
559 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 602 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
560 resets = <&cpg 704>; 603 resets = <&cpg 704>, <&cpg 703>;
561 status = "disabled"; 604 status = "disabled";
562 }; 605 };
563 606
@@ -634,6 +677,14 @@
634 resets = <&cpg 219>; 677 resets = <&cpg 219>;
635 #dma-cells = <1>; 678 #dma-cells = <1>;
636 dma-channels = <16>; 679 dma-channels = <16>;
680 iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>,
681 <&ipmmu_ds0 2>, <&ipmmu_ds0 3>,
682 <&ipmmu_ds0 4>, <&ipmmu_ds0 5>,
683 <&ipmmu_ds0 6>, <&ipmmu_ds0 7>,
684 <&ipmmu_ds0 8>, <&ipmmu_ds0 9>,
685 <&ipmmu_ds0 10>, <&ipmmu_ds0 11>,
686 <&ipmmu_ds0 12>, <&ipmmu_ds0 13>,
687 <&ipmmu_ds0 14>, <&ipmmu_ds0 15>;
637 }; 688 };
638 689
639 dmac1: dma-controller@e7300000 { 690 dmac1: dma-controller@e7300000 {
@@ -668,6 +719,14 @@
668 resets = <&cpg 218>; 719 resets = <&cpg 218>;
669 #dma-cells = <1>; 720 #dma-cells = <1>;
670 dma-channels = <16>; 721 dma-channels = <16>;
722 iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>,
723 <&ipmmu_ds1 2>, <&ipmmu_ds1 3>,
724 <&ipmmu_ds1 4>, <&ipmmu_ds1 5>,
725 <&ipmmu_ds1 6>, <&ipmmu_ds1 7>,
726 <&ipmmu_ds1 8>, <&ipmmu_ds1 9>,
727 <&ipmmu_ds1 10>, <&ipmmu_ds1 11>,
728 <&ipmmu_ds1 12>, <&ipmmu_ds1 13>,
729 <&ipmmu_ds1 14>, <&ipmmu_ds1 15>;
671 }; 730 };
672 731
673 dmac2: dma-controller@e7310000 { 732 dmac2: dma-controller@e7310000 {
@@ -702,6 +761,14 @@
702 resets = <&cpg 217>; 761 resets = <&cpg 217>;
703 #dma-cells = <1>; 762 #dma-cells = <1>;
704 dma-channels = <16>; 763 dma-channels = <16>;
764 iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>,
765 <&ipmmu_ds1 18>, <&ipmmu_ds1 19>,
766 <&ipmmu_ds1 20>, <&ipmmu_ds1 21>,
767 <&ipmmu_ds1 22>, <&ipmmu_ds1 23>,
768 <&ipmmu_ds1 24>, <&ipmmu_ds1 25>,
769 <&ipmmu_ds1 26>, <&ipmmu_ds1 27>,
770 <&ipmmu_ds1 28>, <&ipmmu_ds1 29>,
771 <&ipmmu_ds1 30>, <&ipmmu_ds1 31>;
705 }; 772 };
706 773
707 ipmmu_ds0: mmu@e6740000 { 774 ipmmu_ds0: mmu@e6740000 {
@@ -838,6 +905,16 @@
838 status = "disabled"; 905 status = "disabled";
839 }; 906 };
840 907
908 can0: can@e6c30000 {
909 reg = <0 0xe6c30000 0 0x1000>;
910 /* placeholder */
911 };
912
913 can1: can@e6c38000 {
914 reg = <0 0xe6c38000 0 0x1000>;
915 /* placeholder */
916 };
917
841 pwm0: pwm@e6e30000 { 918 pwm0: pwm@e6e30000 {
842 compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar"; 919 compatible = "renesas,pwm-r8a77965", "renesas,pwm-rcar";
843 reg = <0 0xe6e30000 0 8>; 920 reg = <0 0xe6e30000 0 8>;
@@ -1089,11 +1166,11 @@
1089 1166
1090 vin0csi20: endpoint@0 { 1167 vin0csi20: endpoint@0 {
1091 reg = <0>; 1168 reg = <0>;
1092 remote-endpoint= <&csi20vin0>; 1169 remote-endpoint = <&csi20vin0>;
1093 }; 1170 };
1094 vin0csi40: endpoint@2 { 1171 vin0csi40: endpoint@2 {
1095 reg = <2>; 1172 reg = <2>;
1096 remote-endpoint= <&csi40vin0>; 1173 remote-endpoint = <&csi40vin0>;
1097 }; 1174 };
1098 }; 1175 };
1099 }; 1176 };
@@ -1121,11 +1198,11 @@
1121 1198
1122 vin1csi20: endpoint@0 { 1199 vin1csi20: endpoint@0 {
1123 reg = <0>; 1200 reg = <0>;
1124 remote-endpoint= <&csi20vin1>; 1201 remote-endpoint = <&csi20vin1>;
1125 }; 1202 };
1126 vin1csi40: endpoint@2 { 1203 vin1csi40: endpoint@2 {
1127 reg = <2>; 1204 reg = <2>;
1128 remote-endpoint= <&csi40vin1>; 1205 remote-endpoint = <&csi40vin1>;
1129 }; 1206 };
1130 }; 1207 };
1131 }; 1208 };
@@ -1153,11 +1230,11 @@
1153 1230
1154 vin2csi20: endpoint@0 { 1231 vin2csi20: endpoint@0 {
1155 reg = <0>; 1232 reg = <0>;
1156 remote-endpoint= <&csi20vin2>; 1233 remote-endpoint = <&csi20vin2>;
1157 }; 1234 };
1158 vin2csi40: endpoint@2 { 1235 vin2csi40: endpoint@2 {
1159 reg = <2>; 1236 reg = <2>;
1160 remote-endpoint= <&csi40vin2>; 1237 remote-endpoint = <&csi40vin2>;
1161 }; 1238 };
1162 }; 1239 };
1163 }; 1240 };
@@ -1185,11 +1262,11 @@
1185 1262
1186 vin3csi20: endpoint@0 { 1263 vin3csi20: endpoint@0 {
1187 reg = <0>; 1264 reg = <0>;
1188 remote-endpoint= <&csi20vin3>; 1265 remote-endpoint = <&csi20vin3>;
1189 }; 1266 };
1190 vin3csi40: endpoint@2 { 1267 vin3csi40: endpoint@2 {
1191 reg = <2>; 1268 reg = <2>;
1192 remote-endpoint= <&csi40vin3>; 1269 remote-endpoint = <&csi40vin3>;
1193 }; 1270 };
1194 }; 1271 };
1195 }; 1272 };
@@ -1217,11 +1294,11 @@
1217 1294
1218 vin4csi20: endpoint@0 { 1295 vin4csi20: endpoint@0 {
1219 reg = <0>; 1296 reg = <0>;
1220 remote-endpoint= <&csi20vin4>; 1297 remote-endpoint = <&csi20vin4>;
1221 }; 1298 };
1222 vin4csi40: endpoint@2 { 1299 vin4csi40: endpoint@2 {
1223 reg = <2>; 1300 reg = <2>;
1224 remote-endpoint= <&csi40vin4>; 1301 remote-endpoint = <&csi40vin4>;
1225 }; 1302 };
1226 }; 1303 };
1227 }; 1304 };
@@ -1249,11 +1326,11 @@
1249 1326
1250 vin5csi20: endpoint@0 { 1327 vin5csi20: endpoint@0 {
1251 reg = <0>; 1328 reg = <0>;
1252 remote-endpoint= <&csi20vin5>; 1329 remote-endpoint = <&csi20vin5>;
1253 }; 1330 };
1254 vin5csi40: endpoint@2 { 1331 vin5csi40: endpoint@2 {
1255 reg = <2>; 1332 reg = <2>;
1256 remote-endpoint= <&csi40vin5>; 1333 remote-endpoint = <&csi40vin5>;
1257 }; 1334 };
1258 }; 1335 };
1259 }; 1336 };
@@ -1281,11 +1358,11 @@
1281 1358
1282 vin6csi20: endpoint@0 { 1359 vin6csi20: endpoint@0 {
1283 reg = <0>; 1360 reg = <0>;
1284 remote-endpoint= <&csi20vin6>; 1361 remote-endpoint = <&csi20vin6>;
1285 }; 1362 };
1286 vin6csi40: endpoint@2 { 1363 vin6csi40: endpoint@2 {
1287 reg = <2>; 1364 reg = <2>;
1288 remote-endpoint= <&csi40vin6>; 1365 remote-endpoint = <&csi40vin6>;
1289 }; 1366 };
1290 }; 1367 };
1291 }; 1368 };
@@ -1313,57 +1390,280 @@
1313 1390
1314 vin7csi20: endpoint@0 { 1391 vin7csi20: endpoint@0 {
1315 reg = <0>; 1392 reg = <0>;
1316 remote-endpoint= <&csi20vin7>; 1393 remote-endpoint = <&csi20vin7>;
1317 }; 1394 };
1318 vin7csi40: endpoint@2 { 1395 vin7csi40: endpoint@2 {
1319 reg = <2>; 1396 reg = <2>;
1320 remote-endpoint= <&csi40vin7>; 1397 remote-endpoint = <&csi40vin7>;
1321 }; 1398 };
1322 }; 1399 };
1323 }; 1400 };
1324 }; 1401 };
1325 1402
1326 rcar_sound: sound@ec500000 { 1403 rcar_sound: sound@ec500000 {
1404 /*
1405 * #sound-dai-cells is required
1406 *
1407 * Single DAI : #sound-dai-cells = <0>; <&rcar_sound>;
1408 * Multi DAI : #sound-dai-cells = <1>; <&rcar_sound N>;
1409 */
1410 /*
1411 * #clock-cells is required for audio_clkout0/1/2/3
1412 *
1413 * clkout : #clock-cells = <0>; <&rcar_sound>;
1414 * clkout0/1/2/3: #clock-cells = <1>; <&rcar_sound N>;
1415 */
1416 compatible = "renesas,rcar_sound-r8a77965", "renesas,rcar_sound-gen3";
1327 reg = <0 0xec500000 0 0x1000>, /* SCU */ 1417 reg = <0 0xec500000 0 0x1000>, /* SCU */
1328 <0 0xec5a0000 0 0x100>, /* ADG */ 1418 <0 0xec5a0000 0 0x100>, /* ADG */
1329 <0 0xec540000 0 0x1000>, /* SSIU */ 1419 <0 0xec540000 0 0x1000>, /* SSIU */
1330 <0 0xec541000 0 0x280>, /* SSI */ 1420 <0 0xec541000 0 0x280>, /* SSI */
1331 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/ 1421 <0 0xec740000 0 0x200>; /* Audio DMAC peri peri*/
1332 /* placeholder */ 1422 reg-names = "scu", "adg", "ssiu", "ssi", "audmapp";
1423
1424 clocks = <&cpg CPG_MOD 1005>,
1425 <&cpg CPG_MOD 1006>, <&cpg CPG_MOD 1007>,
1426 <&cpg CPG_MOD 1008>, <&cpg CPG_MOD 1009>,
1427 <&cpg CPG_MOD 1010>, <&cpg CPG_MOD 1011>,
1428 <&cpg CPG_MOD 1012>, <&cpg CPG_MOD 1013>,
1429 <&cpg CPG_MOD 1014>, <&cpg CPG_MOD 1015>,
1430 <&cpg CPG_MOD 1022>, <&cpg CPG_MOD 1023>,
1431 <&cpg CPG_MOD 1024>, <&cpg CPG_MOD 1025>,
1432 <&cpg CPG_MOD 1026>, <&cpg CPG_MOD 1027>,
1433 <&cpg CPG_MOD 1028>, <&cpg CPG_MOD 1029>,
1434 <&cpg CPG_MOD 1030>, <&cpg CPG_MOD 1031>,
1435 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
1436 <&cpg CPG_MOD 1020>, <&cpg CPG_MOD 1021>,
1437 <&cpg CPG_MOD 1019>, <&cpg CPG_MOD 1018>,
1438 <&audio_clk_a>, <&audio_clk_b>,
1439 <&audio_clk_c>,
1440 <&cpg CPG_CORE R8A77965_CLK_S0D4>;
1441 clock-names = "ssi-all",
1442 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1443 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1444 "ssi.1", "ssi.0",
1445 "src.9", "src.8", "src.7", "src.6",
1446 "src.5", "src.4", "src.3", "src.2",
1447 "src.1", "src.0",
1448 "mix.1", "mix.0",
1449 "ctu.1", "ctu.0",
1450 "dvc.0", "dvc.1",
1451 "clk_a", "clk_b", "clk_c", "clk_i";
1452 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1453 resets = <&cpg 1005>,
1454 <&cpg 1006>, <&cpg 1007>,
1455 <&cpg 1008>, <&cpg 1009>,
1456 <&cpg 1010>, <&cpg 1011>,
1457 <&cpg 1012>, <&cpg 1013>,
1458 <&cpg 1014>, <&cpg 1015>;
1459 reset-names = "ssi-all",
1460 "ssi.9", "ssi.8", "ssi.7", "ssi.6",
1461 "ssi.5", "ssi.4", "ssi.3", "ssi.2",
1462 "ssi.1", "ssi.0";
1463 status = "disabled";
1333 1464
1334 rcar_sound,dvc { 1465 rcar_sound,dvc {
1335 dvc0: dvc-0 { 1466 dvc0: dvc-0 {
1467 dmas = <&audma1 0xbc>;
1468 dma-names = "tx";
1336 }; 1469 };
1337 dvc1: dvc-1 { 1470 dvc1: dvc-1 {
1471 dmas = <&audma1 0xbe>;
1472 dma-names = "tx";
1338 }; 1473 };
1339 }; 1474 };
1340 1475
1476 rcar_sound,mix {
1477 mix0: mix-0 { };
1478 mix1: mix-1 { };
1479 };
1480
1481 rcar_sound,ctu {
1482 ctu00: ctu-0 { };
1483 ctu01: ctu-1 { };
1484 ctu02: ctu-2 { };
1485 ctu03: ctu-3 { };
1486 ctu10: ctu-4 { };
1487 ctu11: ctu-5 { };
1488 ctu12: ctu-6 { };
1489 ctu13: ctu-7 { };
1490 };
1491
1341 rcar_sound,src { 1492 rcar_sound,src {
1342 src0: src-0 { 1493 src0: src-0 {
1494 interrupts = <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
1495 dmas = <&audma0 0x85>, <&audma1 0x9a>;
1496 dma-names = "rx", "tx";
1343 }; 1497 };
1344 src1: src-1 { 1498 src1: src-1 {
1499 interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
1500 dmas = <&audma0 0x87>, <&audma1 0x9c>;
1501 dma-names = "rx", "tx";
1502 };
1503 src2: src-2 {
1504 interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
1505 dmas = <&audma0 0x89>, <&audma1 0x9e>;
1506 dma-names = "rx", "tx";
1507 };
1508 src3: src-3 {
1509 interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
1510 dmas = <&audma0 0x8b>, <&audma1 0xa0>;
1511 dma-names = "rx", "tx";
1512 };
1513 src4: src-4 {
1514 interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
1515 dmas = <&audma0 0x8d>, <&audma1 0xb0>;
1516 dma-names = "rx", "tx";
1517 };
1518 src5: src-5 {
1519 interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
1520 dmas = <&audma0 0x8f>, <&audma1 0xb2>;
1521 dma-names = "rx", "tx";
1522 };
1523 src6: src-6 {
1524 interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
1525 dmas = <&audma0 0x91>, <&audma1 0xb4>;
1526 dma-names = "rx", "tx";
1527 };
1528 src7: src-7 {
1529 interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
1530 dmas = <&audma0 0x93>, <&audma1 0xb6>;
1531 dma-names = "rx", "tx";
1532 };
1533 src8: src-8 {
1534 interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
1535 dmas = <&audma0 0x95>, <&audma1 0xb8>;
1536 dma-names = "rx", "tx";
1537 };
1538 src9: src-9 {
1539 interrupts = <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>;
1540 dmas = <&audma0 0x97>, <&audma1 0xba>;
1541 dma-names = "rx", "tx";
1345 }; 1542 };
1346 }; 1543 };
1347 1544
1348 rcar_sound,ssi { 1545 rcar_sound,ssi {
1349 ssi0: ssi-0 { 1546 ssi0: ssi-0 {
1547 interrupts = <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>;
1548 dmas = <&audma0 0x01>, <&audma1 0x02>, <&audma0 0x15>, <&audma1 0x16>;
1549 dma-names = "rx", "tx", "rxu", "txu";
1350 }; 1550 };
1351 ssi1: ssi-1 { 1551 ssi1: ssi-1 {
1552 interrupts = <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
1553 dmas = <&audma0 0x03>, <&audma1 0x04>, <&audma0 0x49>, <&audma1 0x4a>;
1554 dma-names = "rx", "tx", "rxu", "txu";
1352 }; 1555 };
1353 }; 1556 ssi2: ssi-2 {
1354 1557 interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
1355 ports { 1558 dmas = <&audma0 0x05>, <&audma1 0x06>, <&audma0 0x63>, <&audma1 0x64>;
1356 #address-cells = <1>; 1559 dma-names = "rx", "tx", "rxu", "txu";
1357 #size-cells = <0>;
1358 port@0 {
1359 reg = <0>;
1360 }; 1560 };
1361 port@1 { 1561 ssi3: ssi-3 {
1362 reg = <1>; 1562 interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
1563 dmas = <&audma0 0x07>, <&audma1 0x08>, <&audma0 0x6f>, <&audma1 0x70>;
1564 dma-names = "rx", "tx", "rxu", "txu";
1565 };
1566 ssi4: ssi-4 {
1567 interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>;
1568 dmas = <&audma0 0x09>, <&audma1 0x0a>, <&audma0 0x71>, <&audma1 0x72>;
1569 dma-names = "rx", "tx", "rxu", "txu";
1570 };
1571 ssi5: ssi-5 {
1572 interrupts = <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>;
1573 dmas = <&audma0 0x0b>, <&audma1 0x0c>, <&audma0 0x73>, <&audma1 0x74>;
1574 dma-names = "rx", "tx", "rxu", "txu";
1575 };
1576 ssi6: ssi-6 {
1577 interrupts = <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>;
1578 dmas = <&audma0 0x0d>, <&audma1 0x0e>, <&audma0 0x75>, <&audma1 0x76>;
1579 dma-names = "rx", "tx", "rxu", "txu";
1580 };
1581 ssi7: ssi-7 {
1582 interrupts = <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>;
1583 dmas = <&audma0 0x0f>, <&audma1 0x10>, <&audma0 0x79>, <&audma1 0x7a>;
1584 dma-names = "rx", "tx", "rxu", "txu";
1585 };
1586 ssi8: ssi-8 {
1587 interrupts = <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>;
1588 dmas = <&audma0 0x11>, <&audma1 0x12>, <&audma0 0x7b>, <&audma1 0x7c>;
1589 dma-names = "rx", "tx", "rxu", "txu";
1590 };
1591 ssi9: ssi-9 {
1592 interrupts = <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
1593 dmas = <&audma0 0x13>, <&audma1 0x14>, <&audma0 0x7d>, <&audma1 0x7e>;
1594 dma-names = "rx", "tx", "rxu", "txu";
1363 }; 1595 };
1364 }; 1596 };
1365 }; 1597 };
1366 1598
1599 audma0: dma-controller@ec700000 {
1600 compatible = "renesas,dmac-r8a77965",
1601 "renesas,rcar-dmac";
1602 reg = <0 0xec700000 0 0x10000>;
1603 interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH
1604 GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH
1605 GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH
1606 GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH
1607 GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH
1608 GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH
1609 GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH
1610 GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH
1611 GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH
1612 GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH
1613 GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH
1614 GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH
1615 GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH
1616 GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH
1617 GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH
1618 GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH
1619 GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
1620 interrupt-names = "error",
1621 "ch0", "ch1", "ch2", "ch3",
1622 "ch4", "ch5", "ch6", "ch7",
1623 "ch8", "ch9", "ch10", "ch11",
1624 "ch12", "ch13", "ch14", "ch15";
1625 clocks = <&cpg CPG_MOD 502>;
1626 clock-names = "fck";
1627 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1628 resets = <&cpg 502>;
1629 #dma-cells = <1>;
1630 dma-channels = <16>;
1631 };
1632
1633 audma1: dma-controller@ec720000 {
1634 compatible = "renesas,dmac-r8a77965",
1635 "renesas,rcar-dmac";
1636 reg = <0 0xec720000 0 0x10000>;
1637 interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH
1638 GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH
1639 GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH
1640 GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH
1641 GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH
1642 GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH
1643 GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH
1644 GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH
1645 GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH
1646 GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH
1647 GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH
1648 GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH
1649 GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH
1650 GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH
1651 GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH
1652 GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH
1653 GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>;
1654 interrupt-names = "error",
1655 "ch0", "ch1", "ch2", "ch3",
1656 "ch4", "ch5", "ch6", "ch7",
1657 "ch8", "ch9", "ch10", "ch11",
1658 "ch12", "ch13", "ch14", "ch15";
1659 clocks = <&cpg CPG_MOD 501>;
1660 clock-names = "fck";
1661 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1662 resets = <&cpg 501>;
1663 #dma-cells = <1>;
1664 dma-channels = <16>;
1665 };
1666
1367 xhci0: usb@ee000000 { 1667 xhci0: usb@ee000000 {
1368 compatible = "renesas,xhci-r8a77965", 1668 compatible = "renesas,xhci-r8a77965",
1369 "renesas,rcar-gen3-xhci"; 1669 "renesas,rcar-gen3-xhci";
@@ -1390,11 +1690,11 @@
1390 compatible = "generic-ohci"; 1690 compatible = "generic-ohci";
1391 reg = <0 0xee080000 0 0x100>; 1691 reg = <0 0xee080000 0 0x100>;
1392 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1692 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1393 clocks = <&cpg CPG_MOD 703>; 1693 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
1394 phys = <&usb2_phy0>; 1694 phys = <&usb2_phy0>;
1395 phy-names = "usb"; 1695 phy-names = "usb";
1396 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1696 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1397 resets = <&cpg 703>; 1697 resets = <&cpg 703>, <&cpg 704>;
1398 status = "disabled"; 1698 status = "disabled";
1399 }; 1699 };
1400 1700
@@ -1414,12 +1714,12 @@
1414 compatible = "generic-ehci"; 1714 compatible = "generic-ehci";
1415 reg = <0 0xee080100 0 0x100>; 1715 reg = <0 0xee080100 0 0x100>;
1416 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1716 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1417 clocks = <&cpg CPG_MOD 703>; 1717 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
1418 phys = <&usb2_phy0>; 1718 phys = <&usb2_phy0>;
1419 phy-names = "usb"; 1719 phy-names = "usb";
1420 companion = <&ohci0>; 1720 companion = <&ohci0>;
1421 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1721 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1422 resets = <&cpg 703>; 1722 resets = <&cpg 703>, <&cpg 704>;
1423 status = "disabled"; 1723 status = "disabled";
1424 }; 1724 };
1425 1725
@@ -1441,9 +1741,9 @@
1441 "renesas,rcar-gen3-usb2-phy"; 1741 "renesas,rcar-gen3-usb2-phy";
1442 reg = <0 0xee080200 0 0x700>; 1742 reg = <0 0xee080200 0 0x700>;
1443 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 1743 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1444 clocks = <&cpg CPG_MOD 703>; 1744 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
1445 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1745 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1446 resets = <&cpg 703>; 1746 resets = <&cpg 703>, <&cpg 704>;
1447 #phy-cells = <0>; 1747 #phy-cells = <0>;
1448 status = "disabled"; 1748 status = "disabled";
1449 }; 1749 };
@@ -1452,9 +1752,9 @@
1452 compatible = "renesas,usb2-phy-r8a77965", 1752 compatible = "renesas,usb2-phy-r8a77965",
1453 "renesas,rcar-gen3-usb2-phy"; 1753 "renesas,rcar-gen3-usb2-phy";
1454 reg = <0 0xee0a0200 0 0x700>; 1754 reg = <0 0xee0a0200 0 0x700>;
1455 clocks = <&cpg CPG_MOD 703>; 1755 clocks = <&cpg CPG_MOD 702>;
1456 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>; 1756 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1457 resets = <&cpg 703>; 1757 resets = <&cpg 702>;
1458 #phy-cells = <0>; 1758 #phy-cells = <0>;
1459 status = "disabled"; 1759 status = "disabled";
1460 }; 1760 };
@@ -1507,6 +1807,17 @@
1507 status = "disabled"; 1807 status = "disabled";
1508 }; 1808 };
1509 1809
1810 sata: sata@ee300000 {
1811 compatible = "renesas,sata-r8a77965",
1812 "renesas,rcar-gen3-sata";
1813 reg = <0 0xee300000 0 0x200000>;
1814 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
1815 clocks = <&cpg CPG_MOD 815>;
1816 power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
1817 resets = <&cpg 815>;
1818 status = "disabled";
1819 };
1820
1510 gic: interrupt-controller@f1010000 { 1821 gic: interrupt-controller@f1010000 {
1511 compatible = "arm,gic-400"; 1822 compatible = "arm,gic-400";
1512 #interrupt-cells = <3>; 1823 #interrupt-cells = <3>;
@@ -1578,6 +1889,16 @@
1578 status = "disabled"; 1889 status = "disabled";
1579 }; 1890 };
1580 1891
1892 fdp1@fe940000 {
1893 compatible = "renesas,fdp1";
1894 reg = <0 0xfe940000 0 0x2400>;
1895 interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
1896 clocks = <&cpg CPG_MOD 119>;
1897 power-domains = <&sysc R8A77965_PD_A3VP>;
1898 resets = <&cpg 119>;
1899 renesas,fcp = <&fcpf0>;
1900 };
1901
1581 fcpf0: fcp@fe950000 { 1902 fcpf0: fcp@fe950000 {
1582 compatible = "renesas,fcpf"; 1903 compatible = "renesas,fcpf";
1583 reg = <0 0xfe950000 0 0x200>; 1904 reg = <0 0xfe950000 0 0x200>;
@@ -1843,14 +2164,6 @@
1843 }; 2164 };
1844 }; 2165 };
1845 2166
1846 timer {
1847 compatible = "arm,armv8-timer";
1848 interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
1849 <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
1850 <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
1851 <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
1852 };
1853
1854 thermal-zones { 2167 thermal-zones {
1855 sensor_thermal1: sensor-thermal1 { 2168 sensor_thermal1: sensor-thermal1 {
1856 polling-delay-passive = <250>; 2169 polling-delay-passive = <250>;
@@ -1895,6 +2208,14 @@
1895 }; 2208 };
1896 }; 2209 };
1897 2210
2211 timer {
2212 compatible = "arm,armv8-timer";
2213 interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
2214 <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
2215 <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
2216 <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
2217 };
2218
1898 /* External USB clocks - can be overridden by the board */ 2219 /* External USB clocks - can be overridden by the board */
1899 usb3s0_clk: usb3s0 { 2220 usb3s0_clk: usb3s0 {
1900 compatible = "fixed-clock"; 2221 compatible = "fixed-clock";
diff --git a/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts b/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts
index 8eac8ca6550b..0dbcb4cccc18 100644
--- a/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77970-v3msk.dts
@@ -51,6 +51,15 @@
51 regulator-always-on; 51 regulator-always-on;
52 }; 52 };
53 53
54 vcc_vddq_vin0: regulator-2 {
55 compatible = "regulator-fixed";
56 regulator-name = "VCC_VDDQ_VIN0";
57 regulator-min-microvolt = <3300000>;
58 regulator-max-microvolt = <3300000>;
59 regulator-boot-on;
60 regulator-always-on;
61 };
62
54 lvds-decoder { 63 lvds-decoder {
55 compatible = "thine,thc63lvd1024"; 64 compatible = "thine,thc63lvd1024";
56 vcc-supply = <&vcc_d3_3v>; 65 vcc-supply = <&vcc_d3_3v>;
@@ -128,6 +137,12 @@
128 function = "i2c0"; 137 function = "i2c0";
129 }; 138 };
130 139
140 mmc_pins: mmc_3_3v {
141 groups = "mmc_data8", "mmc_ctrl";
142 function = "mmc";
143 power-source = <3300>;
144 };
145
131 scif0_pins: scif0 { 146 scif0_pins: scif0 {
132 groups = "scif0_data"; 147 groups = "scif0_data";
133 function = "scif0"; 148 function = "scif0";
@@ -192,6 +207,17 @@
192 }; 207 };
193}; 208};
194 209
210&mmc0 {
211 pinctrl-0 = <&mmc_pins>;
212 pinctrl-names = "default";
213
214 vmmc-supply = <&vcc_d3_3v>;
215 vqmmc-supply = <&vcc_vddq_vin0>;
216 bus-width = <8>;
217 non-removable;
218 status = "okay";
219};
220
195&scif0 { 221&scif0 {
196 pinctrl-0 = <&scif0_pins>; 222 pinctrl-0 = <&scif0_pins>;
197 pinctrl-names = "default"; 223 pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/renesas/r8a77970.dtsi b/arch/arm64/boot/dts/renesas/r8a77970.dtsi
index 954168858fed..cba7885cf7c3 100644
--- a/arch/arm64/boot/dts/renesas/r8a77970.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77970.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a77970 SoC 3 * Device Tree Source for the R-Car V3M (R8A77970) SoC
4 * 4 *
5 * Copyright (C) 2016-2017 Renesas Electronics Corp. 5 * Copyright (C) 2016-2017 Renesas Electronics Corp.
6 * Copyright (C) 2017 Cogent Embedded, Inc. 6 * Copyright (C) 2017 Cogent Embedded, Inc.
@@ -24,6 +24,13 @@
24 i2c4 = &i2c4; 24 i2c4 = &i2c4;
25 }; 25 };
26 26
27 /* External CAN clock - to be overridden by boards that provide it */
28 can_clk: can {
29 compatible = "fixed-clock";
30 #clock-cells = <0>;
31 clock-frequency = <0>;
32 };
33
27 cpus { 34 cpus {
28 #address-cells = <1>; 35 #address-cells = <1>;
29 #size-cells = <0>; 36 #size-cells = <0>;
@@ -82,13 +89,6 @@
82 method = "smc"; 89 method = "smc";
83 }; 90 };
84 91
85 /* External CAN clock - to be overridden by boards that provide it */
86 can_clk: can {
87 compatible = "fixed-clock";
88 #clock-cells = <0>;
89 clock-frequency = <0>;
90 };
91
92 /* External SCIF clock - to be overridden by boards that provide it */ 92 /* External SCIF clock - to be overridden by boards that provide it */
93 scif_clk: scif { 93 scif_clk: scif {
94 compatible = "fixed-clock"; 94 compatible = "fixed-clock";
@@ -209,6 +209,76 @@
209 reg = <0 0xe6060000 0 0x504>; 209 reg = <0 0xe6060000 0 0x504>;
210 }; 210 };
211 211
212 cmt0: timer@e60f0000 {
213 compatible = "renesas,r8a77970-cmt0",
214 "renesas,rcar-gen3-cmt0";
215 reg = <0 0xe60f0000 0 0x1004>;
216 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
217 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
218 clocks = <&cpg CPG_MOD 303>;
219 clock-names = "fck";
220 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
221 resets = <&cpg 303>;
222 status = "disabled";
223 };
224
225 cmt1: timer@e6130000 {
226 compatible = "renesas,r8a77970-cmt1",
227 "renesas,rcar-gen3-cmt1";
228 reg = <0 0xe6130000 0 0x1004>;
229 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
230 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
231 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
232 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
233 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
234 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
235 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
236 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
237 clocks = <&cpg CPG_MOD 302>;
238 clock-names = "fck";
239 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
240 resets = <&cpg 302>;
241 status = "disabled";
242 };
243
244 cmt2: timer@e6140000 {
245 compatible = "renesas,r8a77970-cmt1",
246 "renesas,rcar-gen3-cmt1";
247 reg = <0 0xe6140000 0 0x1004>;
248 interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
249 <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
250 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
251 <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
252 <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
253 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
254 <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
255 <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
256 clocks = <&cpg CPG_MOD 301>;
257 clock-names = "fck";
258 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
259 resets = <&cpg 301>;
260 status = "disabled";
261 };
262
263 cmt3: timer@e6148000 {
264 compatible = "renesas,r8a77970-cmt1",
265 "renesas,rcar-gen3-cmt1";
266 reg = <0 0xe6148000 0 0x1004>;
267 interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
268 <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
269 <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
270 <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
271 <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
272 <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
273 <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
274 <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>;
275 clocks = <&cpg CPG_MOD 300>;
276 clock-names = "fck";
277 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
278 resets = <&cpg 300>;
279 status = "disabled";
280 };
281
212 cpg: clock-controller@e6150000 { 282 cpg: clock-controller@e6150000 {
213 compatible = "renesas,r8a77970-cpg-mssr"; 283 compatible = "renesas,r8a77970-cpg-mssr";
214 reg = <0 0xe6150000 0 0x1000>; 284 reg = <0 0xe6150000 0 0x1000>;
@@ -544,6 +614,16 @@
544 status = "disabled"; 614 status = "disabled";
545 }; 615 };
546 616
617 tpu: pwm@e6e80000 {
618 compatible = "renesas,tpu-r8a77970", "renesas,tpu";
619 reg = <0 0xe6e80000 0 0x148>;
620 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
621 clocks = <&cpg CPG_MOD 304>;
622 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
623 resets = <&cpg 304>;
624 #pwm-cells = <3>;
625 status = "disabled";
626 };
547 627
548 vin0: video@e6ef0000 { 628 vin0: video@e6ef0000 {
549 compatible = "renesas,vin-r8a77970"; 629 compatible = "renesas,vin-r8a77970";
@@ -567,7 +647,7 @@
567 647
568 vin0csi40: endpoint@2 { 648 vin0csi40: endpoint@2 {
569 reg = <2>; 649 reg = <2>;
570 remote-endpoint= <&csi40vin0>; 650 remote-endpoint = <&csi40vin0>;
571 }; 651 };
572 }; 652 };
573 }; 653 };
@@ -595,7 +675,7 @@
595 675
596 vin1csi40: endpoint@2 { 676 vin1csi40: endpoint@2 {
597 reg = <2>; 677 reg = <2>;
598 remote-endpoint= <&csi40vin1>; 678 remote-endpoint = <&csi40vin1>;
599 }; 679 };
600 }; 680 };
601 }; 681 };
@@ -623,7 +703,7 @@
623 703
624 vin2csi40: endpoint@2 { 704 vin2csi40: endpoint@2 {
625 reg = <2>; 705 reg = <2>;
626 remote-endpoint= <&csi40vin2>; 706 remote-endpoint = <&csi40vin2>;
627 }; 707 };
628 }; 708 };
629 }; 709 };
@@ -651,7 +731,7 @@
651 731
652 vin3csi40: endpoint@2 { 732 vin3csi40: endpoint@2 {
653 reg = <2>; 733 reg = <2>;
654 remote-endpoint= <&csi40vin3>; 734 remote-endpoint = <&csi40vin3>;
655 }; 735 };
656 }; 736 };
657 }; 737 };
@@ -754,6 +834,18 @@
754 #iommu-cells = <1>; 834 #iommu-cells = <1>;
755 }; 835 };
756 836
837 mmc0: mmc@ee140000 {
838 compatible = "renesas,sdhi-r8a77970",
839 "renesas,rcar-gen3-sdhi";
840 reg = <0 0xee140000 0 0x2000>;
841 interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
842 clocks = <&cpg CPG_MOD 314>;
843 power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
844 resets = <&cpg 314>;
845 max-frequency = <200000000>;
846 status = "disabled";
847 };
848
757 gic: interrupt-controller@f1010000 { 849 gic: interrupt-controller@f1010000 {
758 compatible = "arm,gic-400"; 850 compatible = "arm,gic-400";
759 #interrupt-cells = <3>; 851 #interrupt-cells = <3>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77980-condor.dts b/arch/arm64/boot/dts/renesas/r8a77980-condor.dts
index 9f25c407dfd7..fe2e2c051cc9 100644
--- a/arch/arm64/boot/dts/renesas/r8a77980-condor.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77980-condor.dts
@@ -45,6 +45,56 @@
45 regulator-boot-on; 45 regulator-boot-on;
46 regulator-always-on; 46 regulator-always-on;
47 }; 47 };
48
49 d1_8v: regulator-2 {
50 compatible = "regulator-fixed";
51 regulator-name = "D1.8V";
52 regulator-min-microvolt = <1800000>;
53 regulator-max-microvolt = <1800000>;
54 regulator-boot-on;
55 regulator-always-on;
56 };
57
58 hdmi-out {
59 compatible = "hdmi-connector";
60 type = "a";
61
62 port {
63 hdmi_con: endpoint {
64 remote-endpoint = <&adv7511_out>;
65 };
66 };
67 };
68
69 lvds-decoder {
70 compatible = "thine,thc63lvd1024";
71 vcc-supply = <&d3_3v>;
72
73 ports {
74 #address-cells = <1>;
75 #size-cells = <0>;
76
77 port@0 {
78 reg = <0>;
79 thc63lvd1024_in: endpoint {
80 remote-endpoint = <&lvds0_out>;
81 };
82 };
83
84 port@2 {
85 reg = <2>;
86 thc63lvd1024_out: endpoint {
87 remote-endpoint = <&adv7511_in>;
88 };
89 };
90 };
91 };
92
93 x1_clk: x1-clock {
94 compatible = "fixed-clock";
95 #clock-cells = <0>;
96 clock-frequency = <148500000>;
97 };
48}; 98};
49 99
50&avb { 100&avb {
@@ -74,6 +124,13 @@
74 }; 124 };
75}; 125};
76 126
127&du {
128 clocks = <&cpg CPG_MOD 724>,
129 <&x1_clk>;
130 clock-names = "du.0", "dclkin.0";
131 status = "okay";
132};
133
77&extal_clk { 134&extal_clk {
78 clock-frequency = <16666666>; 135 clock-frequency = <16666666>;
79}; 136};
@@ -102,6 +159,55 @@
102 gpio-controller; 159 gpio-controller;
103 #gpio-cells = <2>; 160 #gpio-cells = <2>;
104 }; 161 };
162
163 hdmi@39 {
164 compatible = "adi,adv7511w";
165 reg = <0x39>;
166 interrupt-parent = <&gpio1>;
167 interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
168 avdd-supply = <&d1_8v>;
169 dvdd-supply = <&d1_8v>;
170 pvdd-supply = <&d1_8v>;
171 bgvdd-supply = <&d1_8v>;
172 dvdd-3v-supply = <&d3_3v>;
173
174 adi,input-depth = <8>;
175 adi,input-colorspace = "rgb";
176 adi,input-clock = "1x";
177 adi,input-style = <1>;
178 adi,input-justification = "evenly";
179
180 ports {
181 #address-cells = <1>;
182 #size-cells = <0>;
183
184 port@0 {
185 reg = <0>;
186 adv7511_in: endpoint {
187 remote-endpoint = <&thc63lvd1024_out>;
188 };
189 };
190
191 port@1 {
192 reg = <1>;
193 adv7511_out: endpoint {
194 remote-endpoint = <&hdmi_con>;
195 };
196 };
197 };
198 };
199};
200
201&lvds0 {
202 status = "okay";
203
204 ports {
205 port@1 {
206 lvds0_out: endpoint {
207 remote-endpoint = <&thc63lvd1024_in>;
208 };
209 };
210 };
105}; 211};
106 212
107&mmc0 { 213&mmc0 {
@@ -117,6 +223,18 @@
117 status = "okay"; 223 status = "okay";
118}; 224};
119 225
226&pciec {
227 status = "okay";
228};
229
230&pcie_bus_clk {
231 clock-frequency = <100000000>;
232};
233
234&pcie_phy {
235 status = "okay";
236};
237
120&pfc { 238&pfc {
121 avb_pins: avb { 239 avb_pins: avb {
122 groups = "avb_mdio", "avb_rgmii"; 240 groups = "avb_mdio", "avb_rgmii";
@@ -156,6 +274,11 @@
156 }; 274 };
157}; 275};
158 276
277&rwdt {
278 timeout-sec = <60>;
279 status = "okay";
280};
281
159&scif0 { 282&scif0 {
160 pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>; 283 pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>;
161 pinctrl-names = "default"; 284 pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts
index 9dac42f8f804..dd14a41b32cd 100644
--- a/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77980-v3hsk.dts
@@ -27,6 +27,72 @@
27 /* first 128MB is reserved for secure area. */ 27 /* first 128MB is reserved for secure area. */
28 reg = <0 0x48000000 0 0x78000000>; 28 reg = <0 0x48000000 0 0x78000000>;
29 }; 29 };
30
31 hdmi-out {
32 compatible = "hdmi-connector";
33 type = "a";
34
35 port {
36 hdmi_con: endpoint {
37 remote-endpoint = <&adv7511_out>;
38 };
39 };
40 };
41
42 lvds-decoder {
43 compatible = "thine,thc63lvd1024";
44 vcc-supply = <&vcc3v3_d5>;
45
46 ports {
47 #address-cells = <1>;
48 #size-cells = <0>;
49
50 port@0 {
51 reg = <0>;
52 thc63lvd1024_in: endpoint {
53 remote-endpoint = <&lvds0_out>;
54 };
55 };
56
57 port@2 {
58 reg = <2>;
59 thc63lvd1024_out: endpoint {
60 remote-endpoint = <&adv7511_in>;
61 };
62 };
63 };
64 };
65
66 osc1_clk: osc1-clock {
67 compatible = "fixed-clock";
68 #clock-cells = <0>;
69 clock-frequency = <148500000>;
70 };
71
72 vcc1v8_d4: regulator-0 {
73 compatible = "regulator-fixed";
74 regulator-name = "VCC1V8_D4";
75 regulator-min-microvolt = <1800000>;
76 regulator-max-microvolt = <1800000>;
77 regulator-boot-on;
78 regulator-always-on;
79 };
80
81 vcc3v3_d5: regulator-1 {
82 compatible = "regulator-fixed";
83 regulator-name = "VCC3V3_D5";
84 regulator-min-microvolt = <3300000>;
85 regulator-max-microvolt = <3300000>;
86 regulator-boot-on;
87 regulator-always-on;
88 };
89};
90
91&du {
92 clocks = <&cpg CPG_MOD 724>,
93 <&osc1_clk>;
94 clock-names = "du.0", "dclkin.0";
95 status = "okay";
30}; 96};
31 97
32&extal_clk { 98&extal_clk {
@@ -53,6 +119,64 @@
53 }; 119 };
54}; 120};
55 121
122&i2c0 {
123 pinctrl-0 = <&i2c0_pins>;
124 pinctrl-names = "default";
125
126 status = "okay";
127 clock-frequency = <400000>;
128
129 hdmi@39 {
130 compatible = "adi,adv7511w";
131 #sound-dai-cells = <0>;
132 reg = <0x39>;
133 interrupt-parent = <&gpio1>;
134 interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
135 avdd-supply = <&vcc1v8_d4>;
136 dvdd-supply = <&vcc1v8_d4>;
137 pvdd-supply = <&vcc1v8_d4>;
138 bgvdd-supply = <&vcc1v8_d4>;
139 dvdd-3v-supply = <&vcc3v3_d5>;
140
141 adi,input-depth = <8>;
142 adi,input-colorspace = "rgb";
143 adi,input-clock = "1x";
144 adi,input-style = <1>;
145 adi,input-justification = "evenly";
146
147 ports {
148 #address-cells = <1>;
149 #size-cells = <0>;
150
151 port@0 {
152 reg = <0>;
153 adv7511_in: endpoint {
154 remote-endpoint = <&thc63lvd1024_out>;
155 };
156 };
157
158 port@1 {
159 reg = <1>;
160 adv7511_out: endpoint {
161 remote-endpoint = <&hdmi_con>;
162 };
163 };
164 };
165 };
166};
167
168&lvds0 {
169 status = "okay";
170
171 ports {
172 port@1 {
173 lvds0_out: endpoint {
174 remote-endpoint = <&thc63lvd1024_in>;
175 };
176 };
177 };
178};
179
56&pfc { 180&pfc {
57 gether_pins: gether { 181 gether_pins: gether {
58 groups = "gether_mdio_a", "gether_rgmii", 182 groups = "gether_mdio_a", "gether_rgmii",
@@ -60,6 +184,11 @@
60 function = "gether"; 184 function = "gether";
61 }; 185 };
62 186
187 i2c0_pins: i2c0 {
188 groups = "i2c0";
189 function = "i2c0";
190 };
191
63 scif0_pins: scif0 { 192 scif0_pins: scif0 {
64 groups = "scif0_data"; 193 groups = "scif0_data";
65 function = "scif0"; 194 function = "scif0";
@@ -71,6 +200,11 @@
71 }; 200 };
72}; 201};
73 202
203&rwdt {
204 timeout-sec = <60>;
205 status = "okay";
206};
207
74&scif0 { 208&scif0 {
75 pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>; 209 pinctrl-0 = <&scif0_pins>, <&scif_clk_pins>;
76 pinctrl-names = "default"; 210 pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/renesas/r8a77980.dtsi b/arch/arm64/boot/dts/renesas/r8a77980.dtsi
index b8c9a56562f2..d4952b527d14 100644
--- a/arch/arm64/boot/dts/renesas/r8a77980.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77980.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a77980 SoC 3 * Device Tree Source for the R-Car V3H (R8A77980) SoC
4 * 4 *
5 * Copyright (C) 2018 Renesas Electronics Corp. 5 * Copyright (C) 2018 Renesas Electronics Corp.
6 * Copyright (C) 2018 Cogent Embedded, Inc. 6 * Copyright (C) 2018 Cogent Embedded, Inc.
@@ -25,6 +25,13 @@
25 i2c5 = &i2c5; 25 i2c5 = &i2c5;
26 }; 26 };
27 27
28 /* External CAN clock - to be overridden by boards that provide it */
29 can_clk: can {
30 compatible = "fixed-clock";
31 #clock-cells = <0>;
32 clock-frequency = <0>;
33 };
34
28 cpus { 35 cpus {
29 #address-cells = <1>; 36 #address-cells = <1>;
30 #size-cells = <0>; 37 #size-cells = <0>;
@@ -77,27 +84,36 @@
77 }; 84 };
78 }; 85 };
79 86
80 /* External CAN clock - to be overridden by boards that provide it */ 87 extal_clk: extal {
81 can_clk: can {
82 compatible = "fixed-clock"; 88 compatible = "fixed-clock";
83 #clock-cells = <0>; 89 #clock-cells = <0>;
90 /* This value must be overridden by the board */
84 clock-frequency = <0>; 91 clock-frequency = <0>;
85 }; 92 };
86 93
87 extal_clk: extal { 94 extalr_clk: extalr {
88 compatible = "fixed-clock"; 95 compatible = "fixed-clock";
89 #clock-cells = <0>; 96 #clock-cells = <0>;
90 /* This value must be overridden by the board */ 97 /* This value must be overridden by the board */
91 clock-frequency = <0>; 98 clock-frequency = <0>;
92 }; 99 };
93 100
94 extalr_clk: extalr { 101 /* External PCIe clock - can be overridden by the board */
102 pcie_bus_clk: pcie_bus {
95 compatible = "fixed-clock"; 103 compatible = "fixed-clock";
96 #clock-cells = <0>; 104 #clock-cells = <0>;
97 /* This value must be overridden by the board */
98 clock-frequency = <0>; 105 clock-frequency = <0>;
99 }; 106 };
100 107
108 pmu_a53 {
109 compatible = "arm,cortex-a53-pmu";
110 interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
111 <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
112 <&gic GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
113 <&gic GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
114 interrupt-affinity = <&a53_0>, <&a53_1>, <&a53_2>, <&a53_3>;
115 };
116
101 psci { 117 psci {
102 compatible = "arm,psci-1.0", "arm,psci-0.2"; 118 compatible = "arm,psci-1.0", "arm,psci-0.2";
103 method = "smc"; 119 method = "smc";
@@ -118,6 +134,16 @@
118 #size-cells = <2>; 134 #size-cells = <2>;
119 ranges; 135 ranges;
120 136
137 rwdt: watchdog@e6020000 {
138 compatible = "renesas,r8a77980-wdt",
139 "renesas,rcar-gen3-wdt";
140 reg = <0 0xe6020000 0 0x0c>;
141 clocks = <&cpg CPG_MOD 402>;
142 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
143 resets = <&cpg 402>;
144 status = "disabled";
145 };
146
121 gpio0: gpio@e6050000 { 147 gpio0: gpio@e6050000 {
122 compatible = "renesas,gpio-r8a77980", 148 compatible = "renesas,gpio-r8a77980",
123 "renesas,rcar-gen3-gpio"; 149 "renesas,rcar-gen3-gpio";
@@ -213,6 +239,76 @@
213 reg = <0 0xe6060000 0 0x50c>; 239 reg = <0 0xe6060000 0 0x50c>;
214 }; 240 };
215 241
242 cmt0: timer@e60f0000 {
243 compatible = "renesas,r8a77980-cmt0",
244 "renesas,rcar-gen3-cmt0";
245 reg = <0 0xe60f0000 0 0x1004>;
246 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
247 <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
248 clocks = <&cpg CPG_MOD 303>;
249 clock-names = "fck";
250 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
251 resets = <&cpg 303>;
252 status = "disabled";
253 };
254
255 cmt1: timer@e6130000 {
256 compatible = "renesas,r8a77980-cmt1",
257 "renesas,rcar-gen3-cmt1";
258 reg = <0 0xe6130000 0 0x1004>;
259 interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
260 <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
261 <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
262 <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
263 <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
264 <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
265 <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
266 <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
267 clocks = <&cpg CPG_MOD 302>;
268 clock-names = "fck";
269 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
270 resets = <&cpg 302>;
271 status = "disabled";
272 };
273
274 cmt2: timer@e6140000 {
275 compatible = "renesas,r8a77980-cmt1",
276 "renesas,rcar-gen3-cmt1";
277 reg = <0 0xe6140000 0 0x1004>;
278 interrupts = <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
279 <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
280 <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
281 <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
282 <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
283 <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
284 <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
285 <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
286 clocks = <&cpg CPG_MOD 301>;
287 clock-names = "fck";
288 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
289 resets = <&cpg 301>;
290 status = "disabled";
291 };
292
293 cmt3: timer@e6148000 {
294 compatible = "renesas,r8a77980-cmt1",
295 "renesas,rcar-gen3-cmt1";
296 reg = <0 0xe6148000 0 0x1004>;
297 interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
298 <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
299 <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
300 <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
301 <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
302 <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
303 <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
304 <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>;
305 clocks = <&cpg CPG_MOD 300>;
306 clock-names = "fck";
307 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
308 resets = <&cpg 300>;
309 status = "disabled";
310 };
311
216 cpg: clock-controller@e6150000 { 312 cpg: clock-controller@e6150000 {
217 compatible = "renesas,r8a77980-cpg-mssr"; 313 compatible = "renesas,r8a77980-cpg-mssr";
218 reg = <0 0xe6150000 0 0x1000>; 314 reg = <0 0xe6150000 0 0x1000>;
@@ -418,6 +514,16 @@
418 status = "disabled"; 514 status = "disabled";
419 }; 515 };
420 516
517 pcie_phy: pcie-phy@e65d0000 {
518 compatible = "renesas,r8a77980-pcie-phy";
519 reg = <0 0xe65d0000 0 0x8000>;
520 #phy-cells = <0>;
521 clocks = <&cpg CPG_MOD 319>;
522 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
523 resets = <&cpg 319>;
524 status = "disabled";
525 };
526
421 canfd: can@e66c0000 { 527 canfd: can@e66c0000 {
422 compatible = "renesas,r8a77980-canfd", 528 compatible = "renesas,r8a77980-canfd",
423 "renesas,rcar-gen3-canfd"; 529 "renesas,rcar-gen3-canfd";
@@ -443,69 +549,6 @@
443 }; 549 };
444 }; 550 };
445 551
446 ipmmu_ds1: mmu@e7740000 {
447 compatible = "renesas,ipmmu-r8a77980";
448 reg = <0 0xe7740000 0 0x1000>;
449 renesas,ipmmu-main = <&ipmmu_mm 0>;
450 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
451 #iommu-cells = <1>;
452 };
453
454 ipmmu_vip0: mmu@e7b00000 {
455 compatible = "renesas,ipmmu-r8a77980";
456 reg = <0 0xe7b00000 0 0x1000>;
457 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
458 #iommu-cells = <1>;
459 };
460
461 ipmmu_vip1: mmu@e7960000 {
462 compatible = "renesas,ipmmu-r8a77980";
463 reg = <0 0xe7960000 0 0x1000>;
464 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
465 #iommu-cells = <1>;
466 };
467
468 ipmmu_ir: mmu@ff8b0000 {
469 compatible = "renesas,ipmmu-r8a77980";
470 reg = <0 0xff8b0000 0 0x1000>;
471 renesas,ipmmu-main = <&ipmmu_mm 3>;
472 power-domains = <&sysc R8A77980_PD_A3IR>;
473 #iommu-cells = <1>;
474 };
475
476 ipmmu_mm: mmu@e67b0000 {
477 compatible = "renesas,ipmmu-r8a77980";
478 reg = <0 0xe67b0000 0 0x1000>;
479 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
480 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
481 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
482 #iommu-cells = <1>;
483 };
484
485 ipmmu_rt: mmu@ffc80000 {
486 compatible = "renesas,ipmmu-r8a77980";
487 reg = <0 0xffc80000 0 0x1000>;
488 renesas,ipmmu-main = <&ipmmu_mm 10>;
489 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
490 #iommu-cells = <1>;
491 };
492
493 ipmmu_vc0: mmu@fe6b0000 {
494 compatible = "renesas,ipmmu-r8a77980";
495 reg = <0 0xfe6b0000 0 0x1000>;
496 renesas,ipmmu-main = <&ipmmu_mm 12>;
497 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
498 #iommu-cells = <1>;
499 };
500
501 ipmmu_vi0: mmu@febd0000 {
502 compatible = "renesas,ipmmu-r8a77980";
503 reg = <0 0xfebd0000 0 0x1000>;
504 renesas,ipmmu-main = <&ipmmu_mm 14>;
505 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
506 #iommu-cells = <1>;
507 };
508
509 avb: ethernet@e6800000 { 552 avb: ethernet@e6800000 {
510 compatible = "renesas,etheravb-r8a77980", 553 compatible = "renesas,etheravb-r8a77980",
511 "renesas,etheravb-rcar-gen3"; 554 "renesas,etheravb-rcar-gen3";
@@ -623,6 +666,313 @@
623 status = "disabled"; 666 status = "disabled";
624 }; 667 };
625 668
669 tpu: pwm@e6e80000 {
670 compatible = "renesas,tpu-r8a77980", "renesas,tpu";
671 reg = <0 0xe6e80000 0 0x148>;
672 interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
673 clocks = <&cpg CPG_MOD 304>;
674 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
675 resets = <&cpg 304>;
676 #pwm-cells = <3>;
677 status = "disabled";
678 };
679
680 vin0: video@e6ef0000 {
681 compatible = "renesas,vin-r8a77980";
682 reg = <0 0xe6ef0000 0 0x1000>;
683 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
684 clocks = <&cpg CPG_MOD 811>;
685 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
686 resets = <&cpg 811>;
687 status = "disabled";
688
689 ports {
690 #address-cells = <1>;
691 #size-cells = <0>;
692
693 port@1 {
694 #address-cells = <1>;
695 #size-cells = <0>;
696
697 reg = <1>;
698
699 vin0csi40: endpoint@2 {
700 reg = <2>;
701 remote-endpoint = <&csi40vin0>;
702 };
703 };
704 };
705 };
706
707 vin1: video@e6ef1000 {
708 compatible = "renesas,vin-r8a77980";
709 reg = <0 0xe6ef1000 0 0x1000>;
710 interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
711 clocks = <&cpg CPG_MOD 810>;
712 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
713 status = "disabled";
714 resets = <&cpg 810>;
715
716 ports {
717 #address-cells = <1>;
718 #size-cells = <0>;
719
720 port@1 {
721 #address-cells = <1>;
722 #size-cells = <0>;
723
724 reg = <1>;
725
726 vin1csi40: endpoint@2 {
727 reg = <2>;
728 remote-endpoint = <&csi40vin1>;
729 };
730 };
731 };
732 };
733
734 vin2: video@e6ef2000 {
735 compatible = "renesas,vin-r8a77980";
736 reg = <0 0xe6ef2000 0 0x1000>;
737 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
738 clocks = <&cpg CPG_MOD 809>;
739 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
740 resets = <&cpg 809>;
741 status = "disabled";
742
743 ports {
744 #address-cells = <1>;
745 #size-cells = <0>;
746
747 port@1 {
748 #address-cells = <1>;
749 #size-cells = <0>;
750
751 reg = <1>;
752
753 vin2csi40: endpoint@2 {
754 reg = <2>;
755 remote-endpoint = <&csi40vin2>;
756 };
757 };
758 };
759 };
760
761 vin3: video@e6ef3000 {
762 compatible = "renesas,vin-r8a77980";
763 reg = <0 0xe6ef3000 0 0x1000>;
764 interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
765 clocks = <&cpg CPG_MOD 808>;
766 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
767 resets = <&cpg 808>;
768 status = "disabled";
769
770 ports {
771 #address-cells = <1>;
772 #size-cells = <0>;
773
774 port@1 {
775 #address-cells = <1>;
776 #size-cells = <0>;
777
778 reg = <1>;
779
780 vin3csi40: endpoint@2 {
781 reg = <2>;
782 remote-endpoint = <&csi40vin3>;
783 };
784 };
785 };
786 };
787
788 vin4: video@e6ef4000 {
789 compatible = "renesas,vin-r8a77980";
790 reg = <0 0xe6ef4000 0 0x1000>;
791 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
792 clocks = <&cpg CPG_MOD 807>;
793 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
794 resets = <&cpg 807>;
795 status = "disabled";
796
797 ports {
798 #address-cells = <1>;
799 #size-cells = <0>;
800
801 port@1 {
802 #address-cells = <1>;
803 #size-cells = <0>;
804
805 reg = <1>;
806
807 vin4csi41: endpoint@2 {
808 reg = <2>;
809 remote-endpoint = <&csi41vin4>;
810 };
811 };
812 };
813 };
814
815 vin5: video@e6ef5000 {
816 compatible = "renesas,vin-r8a77980";
817 reg = <0 0xe6ef5000 0 0x1000>;
818 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
819 clocks = <&cpg CPG_MOD 806>;
820 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
821 resets = <&cpg 806>;
822 status = "disabled";
823
824 ports {
825 #address-cells = <1>;
826 #size-cells = <0>;
827
828 port@1 {
829 #address-cells = <1>;
830 #size-cells = <0>;
831
832 reg = <1>;
833
834 vin5csi41: endpoint@2 {
835 reg = <2>;
836 remote-endpoint = <&csi41vin5>;
837 };
838 };
839 };
840 };
841
842 vin6: video@e6ef6000 {
843 compatible = "renesas,vin-r8a77980";
844 reg = <0 0xe6ef6000 0 0x1000>;
845 interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
846 clocks = <&cpg CPG_MOD 805>;
847 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
848 resets = <&cpg 805>;
849 status = "disabled";
850
851 ports {
852 #address-cells = <1>;
853 #size-cells = <0>;
854
855 port@1 {
856 #address-cells = <1>;
857 #size-cells = <0>;
858
859 reg = <1>;
860
861 vin6csi41: endpoint@2 {
862 reg = <2>;
863 remote-endpoint = <&csi41vin6>;
864 };
865 };
866 };
867 };
868
869 vin7: video@e6ef7000 {
870 compatible = "renesas,vin-r8a77980";
871 reg = <0 0xe6ef7000 0 0x1000>;
872 interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
873 clocks = <&cpg CPG_MOD 804>;
874 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
875 resets = <&cpg 804>;
876 status = "disabled";
877
878 ports {
879 #address-cells = <1>;
880 #size-cells = <0>;
881
882 port@1 {
883 #address-cells = <1>;
884 #size-cells = <0>;
885
886 reg = <1>;
887
888 vin7csi41: endpoint@2 {
889 reg = <2>;
890 remote-endpoint = <&csi41vin7>;
891 };
892 };
893 };
894 };
895
896 vin8: video@e6ef8000 {
897 compatible = "renesas,vin-r8a77980";
898 reg = <0 0xe6ef8000 0 0x1000>;
899 interrupts = <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
900 clocks = <&cpg CPG_MOD 628>;
901 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
902 resets = <&cpg 628>;
903 status = "disabled";
904 };
905
906 vin9: video@e6ef9000 {
907 compatible = "renesas,vin-r8a77980";
908 reg = <0 0xe6ef9000 0 0x1000>;
909 interrupts = <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
910 clocks = <&cpg CPG_MOD 627>;
911 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
912 resets = <&cpg 627>;
913 status = "disabled";
914 };
915
916 vin10: video@e6efa000 {
917 compatible = "renesas,vin-r8a77980";
918 reg = <0 0xe6efa000 0 0x1000>;
919 interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>;
920 clocks = <&cpg CPG_MOD 625>;
921 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
922 resets = <&cpg 625>;
923 status = "disabled";
924 };
925
926 vin11: video@e6efb000 {
927 compatible = "renesas,vin-r8a77980";
928 reg = <0 0xe6efb000 0 0x1000>;
929 interrupts = <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>;
930 clocks = <&cpg CPG_MOD 618>;
931 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
932 resets = <&cpg 618>;
933 status = "disabled";
934 };
935
936 vin12: video@e6efc000 {
937 compatible = "renesas,vin-r8a77980";
938 reg = <0 0xe6efc000 0 0x1000>;
939 interrupts = <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
940 clocks = <&cpg CPG_MOD 612>;
941 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
942 resets = <&cpg 612>;
943 status = "disabled";
944 };
945
946 vin13: video@e6efd000 {
947 compatible = "renesas,vin-r8a77980";
948 reg = <0 0xe6efd000 0 0x1000>;
949 interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
950 clocks = <&cpg CPG_MOD 608>;
951 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
952 resets = <&cpg 608>;
953 status = "disabled";
954 };
955
956 vin14: video@e6efe000 {
957 compatible = "renesas,vin-r8a77980";
958 reg = <0 0xe6efe000 0 0x1000>;
959 interrupts = <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>;
960 clocks = <&cpg CPG_MOD 605>;
961 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
962 resets = <&cpg 605>;
963 status = "disabled";
964 };
965
966 vin15: video@e6eff000 {
967 compatible = "renesas,vin-r8a77980";
968 reg = <0 0xe6eff000 0 0x1000>;
969 interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>;
970 clocks = <&cpg CPG_MOD 604>;
971 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
972 resets = <&cpg 604>;
973 status = "disabled";
974 };
975
626 dmac1: dma-controller@e7300000 { 976 dmac1: dma-controller@e7300000 {
627 compatible = "renesas,dmac-r8a77980", 977 compatible = "renesas,dmac-r8a77980",
628 "renesas,rcar-dmac"; 978 "renesas,rcar-dmac";
@@ -655,6 +1005,14 @@
655 resets = <&cpg 218>; 1005 resets = <&cpg 218>;
656 #dma-cells = <1>; 1006 #dma-cells = <1>;
657 dma-channels = <16>; 1007 dma-channels = <16>;
1008 iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>,
1009 <&ipmmu_ds1 2>, <&ipmmu_ds1 3>,
1010 <&ipmmu_ds1 4>, <&ipmmu_ds1 5>,
1011 <&ipmmu_ds1 6>, <&ipmmu_ds1 7>,
1012 <&ipmmu_ds1 8>, <&ipmmu_ds1 9>,
1013 <&ipmmu_ds1 10>, <&ipmmu_ds1 11>,
1014 <&ipmmu_ds1 12>, <&ipmmu_ds1 13>,
1015 <&ipmmu_ds1 14>, <&ipmmu_ds1 15>;
658 }; 1016 };
659 1017
660 dmac2: dma-controller@e7310000 { 1018 dmac2: dma-controller@e7310000 {
@@ -689,6 +1047,14 @@
689 resets = <&cpg 217>; 1047 resets = <&cpg 217>;
690 #dma-cells = <1>; 1048 #dma-cells = <1>;
691 dma-channels = <16>; 1049 dma-channels = <16>;
1050 iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>,
1051 <&ipmmu_ds1 18>, <&ipmmu_ds1 19>,
1052 <&ipmmu_ds1 20>, <&ipmmu_ds1 21>,
1053 <&ipmmu_ds1 22>, <&ipmmu_ds1 23>,
1054 <&ipmmu_ds1 24>, <&ipmmu_ds1 25>,
1055 <&ipmmu_ds1 26>, <&ipmmu_ds1 27>,
1056 <&ipmmu_ds1 28>, <&ipmmu_ds1 29>,
1057 <&ipmmu_ds1 30>, <&ipmmu_ds1 31>;
692 }; 1058 };
693 1059
694 gether: ethernet@e7400000 { 1060 gether: ethernet@e7400000 {
@@ -703,6 +1069,69 @@
703 status = "disabled"; 1069 status = "disabled";
704 }; 1070 };
705 1071
1072 ipmmu_ds1: mmu@e7740000 {
1073 compatible = "renesas,ipmmu-r8a77980";
1074 reg = <0 0xe7740000 0 0x1000>;
1075 renesas,ipmmu-main = <&ipmmu_mm 0>;
1076 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1077 #iommu-cells = <1>;
1078 };
1079
1080 ipmmu_ir: mmu@ff8b0000 {
1081 compatible = "renesas,ipmmu-r8a77980";
1082 reg = <0 0xff8b0000 0 0x1000>;
1083 renesas,ipmmu-main = <&ipmmu_mm 3>;
1084 power-domains = <&sysc R8A77980_PD_A3IR>;
1085 #iommu-cells = <1>;
1086 };
1087
1088 ipmmu_mm: mmu@e67b0000 {
1089 compatible = "renesas,ipmmu-r8a77980";
1090 reg = <0 0xe67b0000 0 0x1000>;
1091 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
1092 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
1093 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1094 #iommu-cells = <1>;
1095 };
1096
1097 ipmmu_rt: mmu@ffc80000 {
1098 compatible = "renesas,ipmmu-r8a77980";
1099 reg = <0 0xffc80000 0 0x1000>;
1100 renesas,ipmmu-main = <&ipmmu_mm 10>;
1101 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1102 #iommu-cells = <1>;
1103 };
1104
1105 ipmmu_vc0: mmu@fe6b0000 {
1106 compatible = "renesas,ipmmu-r8a77980";
1107 reg = <0 0xfe6b0000 0 0x1000>;
1108 renesas,ipmmu-main = <&ipmmu_mm 12>;
1109 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1110 #iommu-cells = <1>;
1111 };
1112
1113 ipmmu_vi0: mmu@febd0000 {
1114 compatible = "renesas,ipmmu-r8a77980";
1115 reg = <0 0xfebd0000 0 0x1000>;
1116 renesas,ipmmu-main = <&ipmmu_mm 14>;
1117 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1118 #iommu-cells = <1>;
1119 };
1120
1121 ipmmu_vip0: mmu@e7b00000 {
1122 compatible = "renesas,ipmmu-r8a77980";
1123 reg = <0 0xe7b00000 0 0x1000>;
1124 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1125 #iommu-cells = <1>;
1126 };
1127
1128 ipmmu_vip1: mmu@e7960000 {
1129 compatible = "renesas,ipmmu-r8a77980";
1130 reg = <0 0xe7960000 0 0x1000>;
1131 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1132 #iommu-cells = <1>;
1133 };
1134
706 mmc0: mmc@ee140000 { 1135 mmc0: mmc@ee140000 {
707 compatible = "renesas,sdhi-r8a77980", 1136 compatible = "renesas,sdhi-r8a77980",
708 "renesas,rcar-gen3-sdhi"; 1137 "renesas,rcar-gen3-sdhi";
@@ -732,6 +1161,38 @@
732 resets = <&cpg 408>; 1161 resets = <&cpg 408>;
733 }; 1162 };
734 1163
1164 pciec: pcie@fe000000 {
1165 compatible = "renesas,pcie-r8a77980",
1166 "renesas,pcie-rcar-gen3";
1167 reg = <0 0xfe000000 0 0x80000>;
1168 #address-cells = <3>;
1169 #size-cells = <2>;
1170 bus-range = <0x00 0xff>;
1171 device_type = "pci";
1172 ranges = <
1173 0x01000000 0 0x00000000 0 0xfe100000 0 0x0100000
1174 0x02000000 0 0xfe200000 0 0xfe200000 0 0x0200000
1175 0x02000000 0 0x30000000 0 0x30000000 0 0x8000000
1176 0x42000000 0 0x38000000 0 0x38000000 0 0x8000000
1177 >;
1178 dma-ranges = <0x42000000 0 0x40000000 0 0x40000000
1179 0 0x80000000>;
1180 interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
1181 <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
1182 <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
1183 #interrupt-cells = <1>;
1184 interrupt-map-mask = <0 0 0 0>;
1185 interrupt-map = <0 0 0 0 &gic GIC_SPI 148
1186 IRQ_TYPE_LEVEL_HIGH>;
1187 clocks = <&cpg CPG_MOD 319>, <&pcie_bus_clk>;
1188 clock-names = "pcie", "pcie_bus";
1189 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1190 resets = <&cpg 319>;
1191 phys = <&pcie_phy>;
1192 phy-names = "pcie";
1193 status = "disabled";
1194 };
1195
735 vspd0: vsp@fea20000 { 1196 vspd0: vsp@fea20000 {
736 compatible = "renesas,vsp2"; 1197 compatible = "renesas,vsp2";
737 reg = <0 0xfea20000 0 0x5000>; 1198 reg = <0 0xfea20000 0 0x5000>;
@@ -750,6 +1211,84 @@
750 resets = <&cpg 603>; 1211 resets = <&cpg 603>;
751 }; 1212 };
752 1213
1214 csi40: csi2@feaa0000 {
1215 compatible = "renesas,r8a77980-csi2";
1216 reg = <0 0xfeaa0000 0 0x10000>;
1217 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
1218 clocks = <&cpg CPG_MOD 716>;
1219 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1220 resets = <&cpg 716>;
1221 status = "disabled";
1222
1223 ports {
1224 #address-cells = <1>;
1225 #size-cells = <0>;
1226
1227 port@1 {
1228 #address-cells = <1>;
1229 #size-cells = <0>;
1230
1231 reg = <1>;
1232
1233 csi40vin0: endpoint@0 {
1234 reg = <0>;
1235 remote-endpoint = <&vin0csi40>;
1236 };
1237 csi40vin1: endpoint@1 {
1238 reg = <1>;
1239 remote-endpoint = <&vin1csi40>;
1240 };
1241 csi40vin2: endpoint@2 {
1242 reg = <2>;
1243 remote-endpoint = <&vin2csi40>;
1244 };
1245 csi40vin3: endpoint@3 {
1246 reg = <3>;
1247 remote-endpoint = <&vin3csi40>;
1248 };
1249 };
1250 };
1251 };
1252
1253 csi41: csi2@feab0000 {
1254 compatible = "renesas,r8a77980-csi2";
1255 reg = <0 0xfeab0000 0 0x10000>;
1256 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
1257 clocks = <&cpg CPG_MOD 715>;
1258 power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
1259 resets = <&cpg 715>;
1260 status = "disabled";
1261
1262 ports {
1263 #address-cells = <1>;
1264 #size-cells = <0>;
1265
1266 port@1 {
1267 #address-cells = <1>;
1268 #size-cells = <0>;
1269
1270 reg = <1>;
1271
1272 csi41vin4: endpoint@0 {
1273 reg = <0>;
1274 remote-endpoint = <&vin4csi41>;
1275 };
1276 csi41vin5: endpoint@1 {
1277 reg = <1>;
1278 remote-endpoint = <&vin5csi41>;
1279 };
1280 csi41vin6: endpoint@2 {
1281 reg = <2>;
1282 remote-endpoint = <&vin6csi41>;
1283 };
1284 csi41vin7: endpoint@3 {
1285 reg = <3>;
1286 remote-endpoint = <&vin7csi41>;
1287 };
1288 };
1289 };
1290 };
1291
753 du: display@feb00000 { 1292 du: display@feb00000 {
754 compatible = "renesas,du-r8a77980", 1293 compatible = "renesas,du-r8a77980",
755 "renesas,du-r8a77970"; 1294 "renesas,du-r8a77970";
diff --git a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
index 2bc3a4884b00..f342dd85b152 100644
--- a/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77990-ebisu.dts
@@ -28,6 +28,111 @@
28 /* first 128MB is reserved for secure area. */ 28 /* first 128MB is reserved for secure area. */
29 reg = <0x0 0x48000000 0x0 0x38000000>; 29 reg = <0x0 0x48000000 0x0 0x38000000>;
30 }; 30 };
31
32 cvbs-in {
33 compatible = "composite-video-connector";
34 label = "CVBS IN";
35
36 port {
37 cvbs_con: endpoint {
38 remote-endpoint = <&adv7482_ain7>;
39 };
40 };
41 };
42
43 hdmi-in {
44 compatible = "hdmi-connector";
45 label = "HDMI IN";
46 type = "a";
47
48 port {
49 hdmi_in_con: endpoint {
50 remote-endpoint = <&adv7482_hdmi>;
51 };
52 };
53 };
54
55 hdmi-out {
56 compatible = "hdmi-connector";
57 type = "a";
58
59 port {
60 hdmi_con_out: endpoint {
61 remote-endpoint = <&adv7511_out>;
62 };
63 };
64 };
65
66 lvds-decoder {
67 compatible = "thine,thc63lvd1024";
68 vcc-supply = <&reg_3p3v>;
69
70 ports {
71 #address-cells = <1>;
72 #size-cells = <0>;
73
74 port@0 {
75 reg = <0>;
76 thc63lvd1024_in: endpoint {
77 remote-endpoint = <&lvds0_out>;
78 };
79 };
80
81 port@2 {
82 reg = <2>;
83 thc63lvd1024_out: endpoint {
84 remote-endpoint = <&adv7511_in>;
85 };
86 };
87 };
88 };
89
90 vga {
91 compatible = "vga-connector";
92
93 port {
94 vga_in: endpoint {
95 remote-endpoint = <&adv7123_out>;
96 };
97 };
98 };
99
100 vga-encoder {
101 compatible = "adi,adv7123";
102
103 ports {
104 #address-cells = <1>;
105 #size-cells = <0>;
106
107 port@0 {
108 reg = <0>;
109 adv7123_in: endpoint {
110 remote-endpoint = <&du_out_rgb>;
111 };
112 };
113 port@1 {
114 reg = <1>;
115 adv7123_out: endpoint {
116 remote-endpoint = <&vga_in>;
117 };
118 };
119 };
120 };
121
122 reg_3p3v: regulator1 {
123 compatible = "regulator-fixed";
124 regulator-name = "fixed-3.3V";
125 regulator-min-microvolt = <3300000>;
126 regulator-max-microvolt = <3300000>;
127 regulator-boot-on;
128 regulator-always-on;
129 };
130
131 x13_clk: x13 {
132 compatible = "fixed-clock";
133 #clock-cells = <0>;
134 clock-frequency = <74250000>;
135 };
31}; 136};
32 137
33&avb { 138&avb {
@@ -47,6 +152,41 @@
47 }; 152 };
48}; 153};
49 154
155&csi40 {
156 status = "okay";
157
158 ports {
159 port@0 {
160 reg = <0>;
161
162 csi40_in: endpoint {
163 clock-lanes = <0>;
164 data-lanes = <1 2>;
165 remote-endpoint = <&adv7482_txa>;
166 };
167 };
168 };
169};
170
171&du {
172 pinctrl-0 = <&du_pins>;
173 pinctrl-names = "default";
174 status = "okay";
175
176 clocks = <&cpg CPG_MOD 724>,
177 <&cpg CPG_MOD 723>,
178 <&x13_clk>;
179 clock-names = "du.0", "du.1", "dclkin.0";
180
181 ports {
182 port@0 {
183 endpoint {
184 remote-endpoint = <&adv7123_in>;
185 };
186 };
187 };
188};
189
50&ehci0 { 190&ehci0 {
51 status = "okay"; 191 status = "okay";
52}; 192};
@@ -55,6 +195,105 @@
55 clock-frequency = <48000000>; 195 clock-frequency = <48000000>;
56}; 196};
57 197
198&i2c0 {
199 status = "okay";
200
201 hdmi-encoder@39 {
202 compatible = "adi,adv7511w";
203 reg = <0x39>;
204 interrupt-parent = <&gpio1>;
205 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
206
207 adi,input-depth = <8>;
208 adi,input-colorspace = "rgb";
209 adi,input-clock = "1x";
210 adi,input-style = <1>;
211 adi,input-justification = "evenly";
212
213 ports {
214 #address-cells = <1>;
215 #size-cells = <0>;
216
217 port@0 {
218 reg = <0>;
219 adv7511_in: endpoint {
220 remote-endpoint = <&thc63lvd1024_out>;
221 };
222 };
223
224 port@1 {
225 reg = <1>;
226 adv7511_out: endpoint {
227 remote-endpoint = <&hdmi_con_out>;
228 };
229 };
230 };
231 };
232
233 video-receiver@70 {
234 compatible = "adi,adv7482";
235 reg = <0x70>;
236
237 #address-cells = <1>;
238 #size-cells = <0>;
239
240 interrupt-parent = <&gpio0>;
241 interrupt-names = "intrq1", "intrq2";
242 interrupts = <7 IRQ_TYPE_LEVEL_LOW>,
243 <17 IRQ_TYPE_LEVEL_LOW>;
244
245 port@7 {
246 reg = <7>;
247
248 adv7482_ain7: endpoint {
249 remote-endpoint = <&cvbs_con>;
250 };
251 };
252
253 port@8 {
254 reg = <8>;
255
256 adv7482_hdmi: endpoint {
257 remote-endpoint = <&hdmi_in_con>;
258 };
259 };
260
261 port@a {
262 reg = <0xa>;
263
264 adv7482_txa: endpoint {
265 clock-lanes = <0>;
266 data-lanes = <1 2>;
267 remote-endpoint = <&csi40_in>;
268 };
269 };
270 };
271};
272
273&lvds0 {
274 status = "okay";
275
276 clocks = <&cpg CPG_MOD 727>,
277 <&x13_clk>,
278 <&extal_clk>;
279 clock-names = "fck", "dclkin.0", "extal";
280
281 ports {
282 port@1 {
283 lvds0_out: endpoint {
284 remote-endpoint = <&thc63lvd1024_in>;
285 };
286 };
287 };
288};
289
290&lvds1 {
291 clocks = <&cpg CPG_MOD 727>,
292 <&x13_clk>,
293 <&extal_clk>;
294 clock-names = "fck", "dclkin.0", "extal";
295};
296
58&ohci0 { 297&ohci0 {
59 status = "okay"; 298 status = "okay";
60}; 299};
@@ -67,6 +306,21 @@
67 }; 306 };
68 }; 307 };
69 308
309 du_pins: du {
310 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
311 function = "du";
312 };
313
314 pwm3_pins: pwm3 {
315 groups = "pwm3_b";
316 function = "pwm3";
317 };
318
319 pwm5_pins: pwm5 {
320 groups = "pwm5_a";
321 function = "pwm5";
322 };
323
70 usb0_pins: usb { 324 usb0_pins: usb {
71 groups = "usb0_b"; 325 groups = "usb0_b";
72 function = "usb0"; 326 function = "usb0";
@@ -78,6 +332,20 @@
78 }; 332 };
79}; 333};
80 334
335&pwm3 {
336 pinctrl-0 = <&pwm3_pins>;
337 pinctrl-names = "default";
338
339 status = "okay";
340};
341
342&pwm5 {
343 pinctrl-0 = <&pwm5_pins>;
344 pinctrl-names = "default";
345
346 status = "okay";
347};
348
81&rwdt { 349&rwdt {
82 timeout-sec = <60>; 350 timeout-sec = <60>;
83 status = "okay"; 351 status = "okay";
@@ -94,6 +362,10 @@
94 status = "okay"; 362 status = "okay";
95}; 363};
96 364
365&vin4 {
366 status = "okay";
367};
368
97&xhci0 { 369&xhci0 {
98 pinctrl-0 = <&usb30_pins>; 370 pinctrl-0 = <&usb30_pins>;
99 pinctrl-names = "default"; 371 pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
index ae89260baad9..9509dc05665f 100644
--- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
@@ -1,11 +1,11 @@
1/* SPDX-License-Identifier: GPL-2.0 */ 1/* SPDX-License-Identifier: GPL-2.0 */
2/* 2/*
3 * Device Tree Source for the r8a77990 SoC 3 * Device Tree Source for the R-Car E3 (R8A77990) SoC
4 * 4 *
5 * Copyright (C) 2018 Renesas Electronics Corp. 5 * Copyright (C) 2018 Renesas Electronics Corp.
6 */ 6 */
7 7
8#include <dt-bindings/clock/renesas-cpg-mssr.h> 8#include <dt-bindings/clock/r8a77990-cpg-mssr.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h> 9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/power/r8a77990-sysc.h> 10#include <dt-bindings/power/r8a77990-sysc.h>
11 11
@@ -14,6 +14,17 @@
14 #address-cells = <2>; 14 #address-cells = <2>;
15 #size-cells = <2>; 15 #size-cells = <2>;
16 16
17 aliases {
18 i2c0 = &i2c0;
19 i2c1 = &i2c1;
20 i2c2 = &i2c2;
21 i2c3 = &i2c3;
22 i2c4 = &i2c4;
23 i2c5 = &i2c5;
24 i2c6 = &i2c6;
25 i2c7 = &i2c7;
26 };
27
17 cpus { 28 cpus {
18 #address-cells = <1>; 29 #address-cells = <1>;
19 #size-cells = <0>; 30 #size-cells = <0>;
@@ -22,7 +33,7 @@
22 compatible = "arm,cortex-a53", "arm,armv8"; 33 compatible = "arm,cortex-a53", "arm,armv8";
23 reg = <0>; 34 reg = <0>;
24 device_type = "cpu"; 35 device_type = "cpu";
25 power-domains = <&sysc 5>; 36 power-domains = <&sysc R8A77990_PD_CA53_CPU0>;
26 next-level-cache = <&L2_CA53>; 37 next-level-cache = <&L2_CA53>;
27 enable-method = "psci"; 38 enable-method = "psci";
28 }; 39 };
@@ -31,14 +42,14 @@
31 compatible = "arm,cortex-a53", "arm,armv8"; 42 compatible = "arm,cortex-a53", "arm,armv8";
32 reg = <1>; 43 reg = <1>;
33 device_type = "cpu"; 44 device_type = "cpu";
34 power-domains = <&sysc 6>; 45 power-domains = <&sysc R8A77990_PD_CA53_CPU1>;
35 next-level-cache = <&L2_CA53>; 46 next-level-cache = <&L2_CA53>;
36 enable-method = "psci"; 47 enable-method = "psci";
37 }; 48 };
38 49
39 L2_CA53: cache-controller-0 { 50 L2_CA53: cache-controller-0 {
40 compatible = "cache"; 51 compatible = "cache";
41 power-domains = <&sysc 21>; 52 power-domains = <&sysc R8A77990_PD_CA53_SCU>;
42 cache-unified; 53 cache-unified;
43 cache-level = <2>; 54 cache-level = <2>;
44 }; 55 };
@@ -63,6 +74,13 @@
63 method = "smc"; 74 method = "smc";
64 }; 75 };
65 76
77 /* External SCIF clock - to be overridden by boards that provide it */
78 scif_clk: scif {
79 compatible = "fixed-clock";
80 #clock-cells = <0>;
81 clock-frequency = <0>;
82 };
83
66 soc: soc { 84 soc: soc {
67 compatible = "simple-bus"; 85 compatible = "simple-bus";
68 interrupt-parent = <&gic>; 86 interrupt-parent = <&gic>;
@@ -75,7 +93,7 @@
75 "renesas,rcar-gen3-wdt"; 93 "renesas,rcar-gen3-wdt";
76 reg = <0 0xe6020000 0 0x0c>; 94 reg = <0 0xe6020000 0 0x0c>;
77 clocks = <&cpg CPG_MOD 402>; 95 clocks = <&cpg CPG_MOD 402>;
78 power-domains = <&sysc 32>; 96 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
79 resets = <&cpg 402>; 97 resets = <&cpg 402>;
80 status = "disabled"; 98 status = "disabled";
81 }; 99 };
@@ -91,7 +109,7 @@
91 #interrupt-cells = <2>; 109 #interrupt-cells = <2>;
92 interrupt-controller; 110 interrupt-controller;
93 clocks = <&cpg CPG_MOD 912>; 111 clocks = <&cpg CPG_MOD 912>;
94 power-domains = <&sysc 32>; 112 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
95 resets = <&cpg 912>; 113 resets = <&cpg 912>;
96 }; 114 };
97 115
@@ -106,7 +124,7 @@
106 #interrupt-cells = <2>; 124 #interrupt-cells = <2>;
107 interrupt-controller; 125 interrupt-controller;
108 clocks = <&cpg CPG_MOD 911>; 126 clocks = <&cpg CPG_MOD 911>;
109 power-domains = <&sysc 32>; 127 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
110 resets = <&cpg 911>; 128 resets = <&cpg 911>;
111 }; 129 };
112 130
@@ -121,7 +139,7 @@
121 #interrupt-cells = <2>; 139 #interrupt-cells = <2>;
122 interrupt-controller; 140 interrupt-controller;
123 clocks = <&cpg CPG_MOD 910>; 141 clocks = <&cpg CPG_MOD 910>;
124 power-domains = <&sysc 32>; 142 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
125 resets = <&cpg 910>; 143 resets = <&cpg 910>;
126 }; 144 };
127 145
@@ -136,7 +154,7 @@
136 #interrupt-cells = <2>; 154 #interrupt-cells = <2>;
137 interrupt-controller; 155 interrupt-controller;
138 clocks = <&cpg CPG_MOD 909>; 156 clocks = <&cpg CPG_MOD 909>;
139 power-domains = <&sysc 32>; 157 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
140 resets = <&cpg 909>; 158 resets = <&cpg 909>;
141 }; 159 };
142 160
@@ -151,7 +169,7 @@
151 #interrupt-cells = <2>; 169 #interrupt-cells = <2>;
152 interrupt-controller; 170 interrupt-controller;
153 clocks = <&cpg CPG_MOD 908>; 171 clocks = <&cpg CPG_MOD 908>;
154 power-domains = <&sysc 32>; 172 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
155 resets = <&cpg 908>; 173 resets = <&cpg 908>;
156 }; 174 };
157 175
@@ -166,7 +184,7 @@
166 #interrupt-cells = <2>; 184 #interrupt-cells = <2>;
167 interrupt-controller; 185 interrupt-controller;
168 clocks = <&cpg CPG_MOD 907>; 186 clocks = <&cpg CPG_MOD 907>;
169 power-domains = <&sysc 32>; 187 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
170 resets = <&cpg 907>; 188 resets = <&cpg 907>;
171 }; 189 };
172 190
@@ -181,10 +199,122 @@
181 #interrupt-cells = <2>; 199 #interrupt-cells = <2>;
182 interrupt-controller; 200 interrupt-controller;
183 clocks = <&cpg CPG_MOD 906>; 201 clocks = <&cpg CPG_MOD 906>;
184 power-domains = <&sysc 32>; 202 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
185 resets = <&cpg 906>; 203 resets = <&cpg 906>;
186 }; 204 };
187 205
206 i2c0: i2c@e6500000 {
207 #address-cells = <1>;
208 #size-cells = <0>;
209 compatible = "renesas,i2c-r8a77990",
210 "renesas,rcar-gen3-i2c";
211 reg = <0 0xe6500000 0 0x40>;
212 interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&cpg CPG_MOD 931>;
214 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
215 resets = <&cpg 931>;
216 i2c-scl-internal-delay-ns = <110>;
217 status = "disabled";
218 };
219
220 i2c1: i2c@e6508000 {
221 #address-cells = <1>;
222 #size-cells = <0>;
223 compatible = "renesas,i2c-r8a77990",
224 "renesas,rcar-gen3-i2c";
225 reg = <0 0xe6508000 0 0x40>;
226 interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
227 clocks = <&cpg CPG_MOD 930>;
228 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
229 resets = <&cpg 930>;
230 i2c-scl-internal-delay-ns = <6>;
231 status = "disabled";
232 };
233
234 i2c2: i2c@e6510000 {
235 #address-cells = <1>;
236 #size-cells = <0>;
237 compatible = "renesas,i2c-r8a77990",
238 "renesas,rcar-gen3-i2c";
239 reg = <0 0xe6510000 0 0x40>;
240 interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
241 clocks = <&cpg CPG_MOD 929>;
242 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
243 resets = <&cpg 929>;
244 i2c-scl-internal-delay-ns = <6>;
245 status = "disabled";
246 };
247
248 i2c3: i2c@e66d0000 {
249 #address-cells = <1>;
250 #size-cells = <0>;
251 compatible = "renesas,i2c-r8a77990",
252 "renesas,rcar-gen3-i2c";
253 reg = <0 0xe66d0000 0 0x40>;
254 interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
255 clocks = <&cpg CPG_MOD 928>;
256 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
257 resets = <&cpg 928>;
258 i2c-scl-internal-delay-ns = <110>;
259 status = "disabled";
260 };
261
262 i2c4: i2c@e66d8000 {
263 #address-cells = <1>;
264 #size-cells = <0>;
265 compatible = "renesas,i2c-r8a77990",
266 "renesas,rcar-gen3-i2c";
267 reg = <0 0xe66d8000 0 0x40>;
268 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
269 clocks = <&cpg CPG_MOD 927>;
270 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
271 resets = <&cpg 927>;
272 i2c-scl-internal-delay-ns = <6>;
273 status = "disabled";
274 };
275
276 i2c5: i2c@e66e0000 {
277 #address-cells = <1>;
278 #size-cells = <0>;
279 compatible = "renesas,i2c-r8a77990",
280 "renesas,rcar-gen3-i2c";
281 reg = <0 0xe66e0000 0 0x40>;
282 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
283 clocks = <&cpg CPG_MOD 919>;
284 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
285 resets = <&cpg 919>;
286 i2c-scl-internal-delay-ns = <6>;
287 status = "disabled";
288 };
289
290 i2c6: i2c@e66e8000 {
291 #address-cells = <1>;
292 #size-cells = <0>;
293 compatible = "renesas,i2c-r8a77990",
294 "renesas,rcar-gen3-i2c";
295 reg = <0 0xe66e8000 0 0x40>;
296 interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
297 clocks = <&cpg CPG_MOD 918>;
298 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
299 resets = <&cpg 918>;
300 i2c-scl-internal-delay-ns = <6>;
301 status = "disabled";
302 };
303
304 i2c7: i2c@e6690000 {
305 #address-cells = <1>;
306 #size-cells = <0>;
307 compatible = "renesas,i2c-r8a77990",
308 "renesas,rcar-gen3-i2c";
309 reg = <0 0xe6690000 0 0x40>;
310 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
311 clocks = <&cpg CPG_MOD 1003>;
312 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
313 resets = <&cpg 1003>;
314 i2c-scl-internal-delay-ns = <6>;
315 status = "disabled";
316 };
317
188 pfc: pin-controller@e6060000 { 318 pfc: pin-controller@e6060000 {
189 compatible = "renesas,pfc-r8a77990"; 319 compatible = "renesas,pfc-r8a77990";
190 reg = <0 0xe6060000 0 0x508>; 320 reg = <0 0xe6060000 0 0x508>;
@@ -211,6 +341,132 @@
211 #power-domain-cells = <1>; 341 #power-domain-cells = <1>;
212 }; 342 };
213 343
344 dmac0: dma-controller@e6700000 {
345 compatible = "renesas,dmac-r8a77990",
346 "renesas,rcar-dmac";
347 reg = <0 0xe6700000 0 0x10000>;
348 interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH
349 GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH
350 GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH
351 GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH
352 GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH
353 GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH
354 GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH
355 GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH
356 GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH
357 GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH
358 GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH
359 GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH
360 GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH
361 GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH
362 GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH
363 GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH
364 GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
365 interrupt-names = "error",
366 "ch0", "ch1", "ch2", "ch3",
367 "ch4", "ch5", "ch6", "ch7",
368 "ch8", "ch9", "ch10", "ch11",
369 "ch12", "ch13", "ch14", "ch15";
370 clocks = <&cpg CPG_MOD 219>;
371 clock-names = "fck";
372 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
373 resets = <&cpg 219>;
374 #dma-cells = <1>;
375 dma-channels = <16>;
376 iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>,
377 <&ipmmu_ds0 2>, <&ipmmu_ds0 3>,
378 <&ipmmu_ds0 4>, <&ipmmu_ds0 5>,
379 <&ipmmu_ds0 6>, <&ipmmu_ds0 7>,
380 <&ipmmu_ds0 8>, <&ipmmu_ds0 9>,
381 <&ipmmu_ds0 10>, <&ipmmu_ds0 11>,
382 <&ipmmu_ds0 12>, <&ipmmu_ds0 13>,
383 <&ipmmu_ds0 14>, <&ipmmu_ds0 15>;
384 };
385
386 dmac1: dma-controller@e7300000 {
387 compatible = "renesas,dmac-r8a77990",
388 "renesas,rcar-dmac";
389 reg = <0 0xe7300000 0 0x10000>;
390 interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
391 GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
392 GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
393 GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
394 GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
395 GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
396 GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
397 GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
398 GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH
399 GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
400 GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
401 GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
402 GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
403 GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
404 GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
405 GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH
406 GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>;
407 interrupt-names = "error",
408 "ch0", "ch1", "ch2", "ch3",
409 "ch4", "ch5", "ch6", "ch7",
410 "ch8", "ch9", "ch10", "ch11",
411 "ch12", "ch13", "ch14", "ch15";
412 clocks = <&cpg CPG_MOD 218>;
413 clock-names = "fck";
414 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
415 resets = <&cpg 218>;
416 #dma-cells = <1>;
417 dma-channels = <16>;
418 iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>,
419 <&ipmmu_ds1 2>, <&ipmmu_ds1 3>,
420 <&ipmmu_ds1 4>, <&ipmmu_ds1 5>,
421 <&ipmmu_ds1 6>, <&ipmmu_ds1 7>,
422 <&ipmmu_ds1 8>, <&ipmmu_ds1 9>,
423 <&ipmmu_ds1 10>, <&ipmmu_ds1 11>,
424 <&ipmmu_ds1 12>, <&ipmmu_ds1 13>,
425 <&ipmmu_ds1 14>, <&ipmmu_ds1 15>;
426 };
427
428 dmac2: dma-controller@e7310000 {
429 compatible = "renesas,dmac-r8a77990",
430 "renesas,rcar-dmac";
431 reg = <0 0xe7310000 0 0x10000>;
432 interrupts = <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH
433 GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH
434 GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH
435 GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH
436 GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH
437 GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH
438 GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH
439 GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH
440 GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH
441 GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH
442 GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH
443 GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH
444 GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH
445 GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH
446 GIC_SPI 430 IRQ_TYPE_LEVEL_HIGH
447 GIC_SPI 431 IRQ_TYPE_LEVEL_HIGH
448 GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
449 interrupt-names = "error",
450 "ch0", "ch1", "ch2", "ch3",
451 "ch4", "ch5", "ch6", "ch7",
452 "ch8", "ch9", "ch10", "ch11",
453 "ch12", "ch13", "ch14", "ch15";
454 clocks = <&cpg CPG_MOD 217>;
455 clock-names = "fck";
456 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
457 resets = <&cpg 217>;
458 #dma-cells = <1>;
459 dma-channels = <16>;
460 iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>,
461 <&ipmmu_ds1 18>, <&ipmmu_ds1 19>,
462 <&ipmmu_ds1 20>, <&ipmmu_ds1 21>,
463 <&ipmmu_ds1 22>, <&ipmmu_ds1 23>,
464 <&ipmmu_ds1 24>, <&ipmmu_ds1 25>,
465 <&ipmmu_ds1 26>, <&ipmmu_ds1 27>,
466 <&ipmmu_ds1 28>, <&ipmmu_ds1 29>,
467 <&ipmmu_ds1 30>, <&ipmmu_ds1 31>;
468 };
469
214 ipmmu_ds0: mmu@e6740000 { 470 ipmmu_ds0: mmu@e6740000 {
215 compatible = "renesas,ipmmu-r8a77990"; 471 compatible = "renesas,ipmmu-r8a77990";
216 reg = <0 0xe6740000 0 0x1000>; 472 reg = <0 0xe6740000 0 0x1000>;
@@ -329,7 +585,7 @@
329 "ch20", "ch21", "ch22", "ch23", 585 "ch20", "ch21", "ch22", "ch23",
330 "ch24"; 586 "ch24";
331 clocks = <&cpg CPG_MOD 812>; 587 clocks = <&cpg CPG_MOD 812>;
332 power-domains = <&sysc 32>; 588 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
333 resets = <&cpg 812>; 589 resets = <&cpg 812>;
334 phy-mode = "rgmii"; 590 phy-mode = "rgmii";
335 #address-cells = <1>; 591 #address-cells = <1>;
@@ -337,18 +593,191 @@
337 status = "disabled"; 593 status = "disabled";
338 }; 594 };
339 595
596 pwm0: pwm@e6e30000 {
597 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
598 reg = <0 0xe6e30000 0 0x8>;
599 clocks = <&cpg CPG_MOD 523>;
600 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
601 resets = <&cpg 523>;
602 #pwm-cells = <2>;
603 status = "disabled";
604 };
605
606 pwm1: pwm@e6e31000 {
607 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
608 reg = <0 0xe6e31000 0 0x8>;
609 clocks = <&cpg CPG_MOD 523>;
610 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
611 resets = <&cpg 523>;
612 #pwm-cells = <2>;
613 status = "disabled";
614 };
615
616 pwm2: pwm@e6e32000 {
617 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
618 reg = <0 0xe6e32000 0 0x8>;
619 clocks = <&cpg CPG_MOD 523>;
620 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
621 resets = <&cpg 523>;
622 #pwm-cells = <2>;
623 status = "disabled";
624 };
625
626 pwm3: pwm@e6e33000 {
627 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
628 reg = <0 0xe6e33000 0 0x8>;
629 clocks = <&cpg CPG_MOD 523>;
630 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
631 resets = <&cpg 523>;
632 #pwm-cells = <2>;
633 status = "disabled";
634 };
635
636 pwm4: pwm@e6e34000 {
637 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
638 reg = <0 0xe6e34000 0 0x8>;
639 clocks = <&cpg CPG_MOD 523>;
640 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
641 resets = <&cpg 523>;
642 #pwm-cells = <2>;
643 status = "disabled";
644 };
645
646 pwm5: pwm@e6e35000 {
647 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
648 reg = <0 0xe6e35000 0 0x8>;
649 clocks = <&cpg CPG_MOD 523>;
650 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
651 resets = <&cpg 523>;
652 #pwm-cells = <2>;
653 status = "disabled";
654 };
655
656 pwm6: pwm@e6e36000 {
657 compatible = "renesas,pwm-r8a77990", "renesas,pwm-rcar";
658 reg = <0 0xe6e36000 0 0x8>;
659 clocks = <&cpg CPG_MOD 523>;
660 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
661 resets = <&cpg 523>;
662 #pwm-cells = <2>;
663 status = "disabled";
664 };
665
340 scif2: serial@e6e88000 { 666 scif2: serial@e6e88000 {
341 compatible = "renesas,scif-r8a77990", 667 compatible = "renesas,scif-r8a77990",
342 "renesas,rcar-gen3-scif", "renesas,scif"; 668 "renesas,rcar-gen3-scif", "renesas,scif";
343 reg = <0 0xe6e88000 0 64>; 669 reg = <0 0xe6e88000 0 64>;
344 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>; 670 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
345 clocks = <&cpg CPG_MOD 310>; 671 clocks = <&cpg CPG_MOD 310>,
346 clock-names = "fck"; 672 <&cpg CPG_CORE R8A77990_CLK_S3D1C>,
347 power-domains = <&sysc 32>; 673 <&scif_clk>;
674 clock-names = "fck", "brg_int", "scif_clk";
675
676 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
348 resets = <&cpg 310>; 677 resets = <&cpg 310>;
349 status = "disabled"; 678 status = "disabled";
350 }; 679 };
351 680
681 msiof0: spi@e6e90000 {
682 compatible = "renesas,msiof-r8a77990",
683 "renesas,rcar-gen3-msiof";
684 reg = <0 0xe6e90000 0 0x0064>;
685 interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
686 clocks = <&cpg CPG_MOD 211>;
687 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
688 resets = <&cpg 211>;
689 #address-cells = <1>;
690 #size-cells = <0>;
691 status = "disabled";
692 };
693
694 msiof1: spi@e6ea0000 {
695 compatible = "renesas,msiof-r8a77990",
696 "renesas,rcar-gen3-msiof";
697 reg = <0 0xe6ea0000 0 0x0064>;
698 interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
699 clocks = <&cpg CPG_MOD 210>;
700 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
701 resets = <&cpg 210>;
702 #address-cells = <1>;
703 #size-cells = <0>;
704 status = "disabled";
705 };
706
707 msiof2: spi@e6c00000 {
708 compatible = "renesas,msiof-r8a77990",
709 "renesas,rcar-gen3-msiof";
710 reg = <0 0xe6c00000 0 0x0064>;
711 interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
712 clocks = <&cpg CPG_MOD 209>;
713 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
714 resets = <&cpg 209>;
715 #address-cells = <1>;
716 #size-cells = <0>;
717 status = "disabled";
718 };
719
720 msiof3: spi@e6c10000 {
721 compatible = "renesas,msiof-r8a77990",
722 "renesas,rcar-gen3-msiof";
723 reg = <0 0xe6c10000 0 0x0064>;
724 interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
725 clocks = <&cpg CPG_MOD 208>;
726 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
727 resets = <&cpg 208>;
728 #address-cells = <1>;
729 #size-cells = <0>;
730 status = "disabled";
731 };
732
733 vin4: video@e6ef4000 {
734 compatible = "renesas,vin-r8a77990";
735 reg = <0 0xe6ef4000 0 0x1000>;
736 interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
737 clocks = <&cpg CPG_MOD 807>;
738 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
739 resets = <&cpg 807>;
740 renesas,id = <4>;
741 status = "disabled";
742
743 ports {
744 #address-cells = <1>;
745 #size-cells = <0>;
746
747 port@1 {
748 reg = <1>;
749
750 vin4csi40: endpoint {
751 remote-endpoint= <&csi40vin4>;
752 };
753 };
754 };
755 };
756
757 vin5: video@e6ef5000 {
758 compatible = "renesas,vin-r8a77990";
759 reg = <0 0xe6ef5000 0 0x1000>;
760 interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
761 clocks = <&cpg CPG_MOD 806>;
762 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
763 resets = <&cpg 806>;
764 renesas,id = <5>;
765 status = "disabled";
766
767 ports {
768 #address-cells = <1>;
769 #size-cells = <0>;
770
771 port@1 {
772 reg = <1>;
773
774 vin5csi40: endpoint {
775 remote-endpoint= <&csi40vin5>;
776 };
777 };
778 };
779 };
780
352 xhci0: usb@ee000000 { 781 xhci0: usb@ee000000 {
353 compatible = "renesas,xhci-r8a77990", 782 compatible = "renesas,xhci-r8a77990",
354 "renesas,rcar-gen3-xhci"; 783 "renesas,rcar-gen3-xhci";
@@ -364,11 +793,11 @@
364 compatible = "generic-ohci"; 793 compatible = "generic-ohci";
365 reg = <0 0xee080000 0 0x100>; 794 reg = <0 0xee080000 0 0x100>;
366 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 795 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
367 clocks = <&cpg CPG_MOD 703>; 796 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
368 phys = <&usb2_phy0>; 797 phys = <&usb2_phy0>;
369 phy-names = "usb"; 798 phy-names = "usb";
370 power-domains = <&sysc 32>; 799 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
371 resets = <&cpg 703>; 800 resets = <&cpg 703>, <&cpg 704>;
372 status = "disabled"; 801 status = "disabled";
373 }; 802 };
374 803
@@ -376,12 +805,12 @@
376 compatible = "generic-ehci"; 805 compatible = "generic-ehci";
377 reg = <0 0xee080100 0 0x100>; 806 reg = <0 0xee080100 0 0x100>;
378 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 807 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
379 clocks = <&cpg CPG_MOD 703>; 808 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
380 phys = <&usb2_phy0>; 809 phys = <&usb2_phy0>;
381 phy-names = "usb"; 810 phy-names = "usb";
382 companion = <&ohci0>; 811 companion = <&ohci0>;
383 power-domains = <&sysc 32>; 812 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
384 resets = <&cpg 703>; 813 resets = <&cpg 703>, <&cpg 704>;
385 status = "disabled"; 814 status = "disabled";
386 }; 815 };
387 816
@@ -390,9 +819,9 @@
390 "renesas,rcar-gen3-usb2-phy"; 819 "renesas,rcar-gen3-usb2-phy";
391 reg = <0 0xee080200 0 0x700>; 820 reg = <0 0xee080200 0 0x700>;
392 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 821 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
393 clocks = <&cpg CPG_MOD 703>; 822 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
394 power-domains = <&sysc 32>; 823 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
395 resets = <&cpg 703>; 824 resets = <&cpg 703>, <&cpg 704>;
396 #phy-cells = <0>; 825 #phy-cells = <0>;
397 status = "disabled"; 826 status = "disabled";
398 }; 827 };
@@ -410,10 +839,208 @@
410 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>; 839 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
411 clocks = <&cpg CPG_MOD 408>; 840 clocks = <&cpg CPG_MOD 408>;
412 clock-names = "clk"; 841 clock-names = "clk";
413 power-domains = <&sysc 32>; 842 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
414 resets = <&cpg 408>; 843 resets = <&cpg 408>;
415 }; 844 };
416 845
846 vspb0: vsp@fe960000 {
847 compatible = "renesas,vsp2";
848 reg = <0 0xfe960000 0 0x8000>;
849 interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
850 clocks = <&cpg CPG_MOD 626>;
851 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
852 resets = <&cpg 626>;
853 renesas,fcp = <&fcpvb0>;
854 };
855
856 fcpvb0: fcp@fe96f000 {
857 compatible = "renesas,fcpv";
858 reg = <0 0xfe96f000 0 0x200>;
859 clocks = <&cpg CPG_MOD 607>;
860 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
861 resets = <&cpg 607>;
862 iommus = <&ipmmu_vp0 5>;
863 };
864
865 vspi0: vsp@fe9a0000 {
866 compatible = "renesas,vsp2";
867 reg = <0 0xfe9a0000 0 0x8000>;
868 interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
869 clocks = <&cpg CPG_MOD 631>;
870 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
871 resets = <&cpg 631>;
872 renesas,fcp = <&fcpvi0>;
873 };
874
875 fcpvi0: fcp@fe9af000 {
876 compatible = "renesas,fcpv";
877 reg = <0 0xfe9af000 0 0x200>;
878 clocks = <&cpg CPG_MOD 611>;
879 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
880 resets = <&cpg 611>;
881 iommus = <&ipmmu_vp0 8>;
882 };
883
884 vspd0: vsp@fea20000 {
885 compatible = "renesas,vsp2";
886 reg = <0 0xfea20000 0 0x7000>;
887 interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>;
888 clocks = <&cpg CPG_MOD 623>;
889 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
890 resets = <&cpg 623>;
891 renesas,fcp = <&fcpvd0>;
892 };
893
894 fcpvd0: fcp@fea27000 {
895 compatible = "renesas,fcpv";
896 reg = <0 0xfea27000 0 0x200>;
897 clocks = <&cpg CPG_MOD 603>;
898 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
899 resets = <&cpg 603>;
900 iommus = <&ipmmu_vi0 8>;
901 };
902
903 vspd1: vsp@fea28000 {
904 compatible = "renesas,vsp2";
905 reg = <0 0xfea28000 0 0x7000>;
906 interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>;
907 clocks = <&cpg CPG_MOD 622>;
908 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
909 resets = <&cpg 622>;
910 renesas,fcp = <&fcpvd1>;
911 };
912
913 fcpvd1: fcp@fea2f000 {
914 compatible = "renesas,fcpv";
915 reg = <0 0xfea2f000 0 0x200>;
916 clocks = <&cpg CPG_MOD 602>;
917 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
918 resets = <&cpg 602>;
919 iommus = <&ipmmu_vi0 9>;
920 };
921
922 csi40: csi2@feaa0000 {
923 compatible = "renesas,r8a77990-csi2", "renesas,rcar-gen3-csi2";
924 reg = <0 0xfeaa0000 0 0x10000>;
925 interrupts = <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>;
926 clocks = <&cpg CPG_MOD 716>;
927 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
928 resets = <&cpg 716>;
929 status = "disabled";
930
931 ports {
932 #address-cells = <1>;
933 #size-cells = <0>;
934
935 port@1 {
936 #address-cells = <1>;
937 #size-cells = <0>;
938
939 reg = <1>;
940
941 csi40vin4: endpoint@0 {
942 reg = <0>;
943 remote-endpoint = <&vin4csi40>;
944 };
945 csi40vin5: endpoint@1 {
946 reg = <1>;
947 remote-endpoint = <&vin5csi40>;
948 };
949 };
950 };
951 };
952
953 du: display@feb00000 {
954 compatible = "renesas,du-r8a77990";
955 reg = <0 0xfeb00000 0 0x80000>;
956 interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
957 <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
958 clocks = <&cpg CPG_MOD 724>,
959 <&cpg CPG_MOD 723>;
960 clock-names = "du.0", "du.1";
961 vsps = <&vspd0 0 &vspd1 0>;
962 status = "disabled";
963
964 ports {
965 #address-cells = <1>;
966 #size-cells = <0>;
967
968 port@0 {
969 reg = <0>;
970 du_out_rgb: endpoint {
971 };
972 };
973
974 port@1 {
975 reg = <1>;
976 du_out_lvds0: endpoint {
977 remote-endpoint = <&lvds0_in>;
978 };
979 };
980
981 port@2 {
982 reg = <2>;
983 du_out_lvds1: endpoint {
984 remote-endpoint = <&lvds1_in>;
985 };
986 };
987 };
988 };
989
990 lvds0: lvds-encoder@feb90000 {
991 compatible = "renesas,r8a77990-lvds";
992 reg = <0 0xfeb90000 0 0x20>;
993 clocks = <&cpg CPG_MOD 727>;
994 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
995 resets = <&cpg 727>;
996 status = "disabled";
997
998 ports {
999 #address-cells = <1>;
1000 #size-cells = <0>;
1001
1002 port@0 {
1003 reg = <0>;
1004 lvds0_in: endpoint {
1005 remote-endpoint = <&du_out_lvds0>;
1006 };
1007 };
1008
1009 port@1 {
1010 reg = <1>;
1011 lvds0_out: endpoint {
1012 };
1013 };
1014 };
1015 };
1016
1017 lvds1: lvds-encoder@feb90100 {
1018 compatible = "renesas,r8a77990-lvds";
1019 reg = <0 0xfeb90100 0 0x20>;
1020 clocks = <&cpg CPG_MOD 727>;
1021 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
1022 resets = <&cpg 726>;
1023 status = "disabled";
1024
1025 ports {
1026 #address-cells = <1>;
1027 #size-cells = <0>;
1028
1029 port@0 {
1030 reg = <0>;
1031 lvds1_in: endpoint {
1032 remote-endpoint = <&du_out_lvds1>;
1033 };
1034 };
1035
1036 port@1 {
1037 reg = <1>;
1038 lvds1_out: endpoint {
1039 };
1040 };
1041 };
1042 };
1043
417 prr: chipid@fff00044 { 1044 prr: chipid@fff00044 {
418 compatible = "renesas,prr"; 1045 compatible = "renesas,prr";
419 reg = <0 0xfff00044 0 4>; 1046 reg = <0 0xfff00044 0 4>;
diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
index a8e8f2669d4c..2405eaad0296 100644
--- a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
+++ b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
@@ -2,7 +2,7 @@
2/* 2/*
3 * Device Tree Source for the Draak board 3 * Device Tree Source for the Draak board
4 * 4 *
5 * Copyright (C) 2016 Renesas Electronics Corp. 5 * Copyright (C) 2016-2018 Renesas Electronics Corp.
6 * Copyright (C) 2017 Glider bvba 6 * Copyright (C) 2017 Glider bvba
7 */ 7 */
8 8
@@ -24,55 +24,58 @@
24 stdout-path = "serial0:115200n8"; 24 stdout-path = "serial0:115200n8";
25 }; 25 };
26 26
27 vga { 27 composite-in {
28 compatible = "vga-connector"; 28 compatible = "composite-video-connector";
29 29
30 port { 30 port {
31 vga_in: endpoint { 31 composite_con_in: endpoint {
32 remote-endpoint = <&adv7123_out>; 32 remote-endpoint = <&adv7180_in>;
33 }; 33 };
34 }; 34 };
35 }; 35 };
36 36
37 vga-encoder { 37 hdmi-in {
38 compatible = "adi,adv7123"; 38 compatible = "hdmi-connector";
39 39 type = "a";
40 ports {
41 #address-cells = <1>;
42 #size-cells = <0>;
43 40
44 port@0 { 41 port {
45 reg = <0>; 42 hdmi_con_in: endpoint {
46 adv7123_in: endpoint { 43 remote-endpoint = <&adv7612_in>;
47 remote-endpoint = <&du_out_rgb>;
48 };
49 };
50 port@1 {
51 reg = <1>;
52 adv7123_out: endpoint {
53 remote-endpoint = <&vga_in>;
54 };
55 }; 44 };
56 }; 45 };
57 }; 46 };
58 47
59 composite-in { 48 hdmi-out {
60 compatible = "composite-video-connector"; 49 compatible = "hdmi-connector";
50 type = "a";
61 51
62 port { 52 port {
63 composite_con_in: endpoint { 53 hdmi_con_out: endpoint {
64 remote-endpoint = <&adv7180_in>; 54 remote-endpoint = <&adv7511_out>;
65 }; 55 };
66 }; 56 };
67 }; 57 };
68 58
69 hdmi-in { 59 lvds-decoder {
70 compatible = "hdmi-connector"; 60 compatible = "thine,thc63lvd1024";
71 type = "a"; 61 vcc-supply = <&reg_3p3v>;
72 62
73 port { 63 ports {
74 hdmi_con_in: endpoint { 64 #address-cells = <1>;
75 remote-endpoint = <&adv7612_in>; 65 #size-cells = <0>;
66
67 port@0 {
68 reg = <0>;
69 thc63lvd1024_in: endpoint {
70 remote-endpoint = <&lvds0_out>;
71 };
72 };
73
74 port@2 {
75 reg = <2>;
76 thc63lvd1024_out: endpoint {
77 remote-endpoint = <&adv7511_in>;
78 };
76 }; 79 };
77 }; 80 };
78 }; 81 };
@@ -101,76 +104,86 @@
101 regulator-always-on; 104 regulator-always-on;
102 }; 105 };
103 106
104 x12_clk: x12 { 107 vga {
105 compatible = "fixed-clock"; 108 compatible = "vga-connector";
106 #clock-cells = <0>;
107 clock-frequency = <74250000>;
108 };
109};
110
111&extal_clk {
112 clock-frequency = <48000000>;
113};
114 109
115&pfc { 110 port {
116 avb0_pins: avb { 111 vga_in: endpoint {
117 mux { 112 remote-endpoint = <&adv7123_out>;
118 groups = "avb0_link", "avb0_mdio", "avb0_mii"; 113 };
119 function = "avb0";
120 }; 114 };
121 }; 115 };
122 116
123 du_pins: du { 117 vga-encoder {
124 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0"; 118 compatible = "adi,adv7123";
125 function = "du";
126 };
127 119
128 i2c0_pins: i2c0 { 120 ports {
129 groups = "i2c0"; 121 #address-cells = <1>;
130 function = "i2c0"; 122 #size-cells = <0>;
131 };
132 123
133 i2c1_pins: i2c1 { 124 port@0 {
134 groups = "i2c1"; 125 reg = <0>;
135 function = "i2c1"; 126 adv7123_in: endpoint {
127 remote-endpoint = <&du_out_rgb>;
128 };
129 };
130 port@1 {
131 reg = <1>;
132 adv7123_out: endpoint {
133 remote-endpoint = <&vga_in>;
134 };
135 };
136 };
136 }; 137 };
137 138
138 pwm0_pins: pwm0 { 139 x12_clk: x12 {
139 groups = "pwm0_c"; 140 compatible = "fixed-clock";
140 function = "pwm0"; 141 #clock-cells = <0>;
142 clock-frequency = <74250000>;
141 }; 143 };
144};
142 145
143 pwm1_pins: pwm1 { 146&avb {
144 groups = "pwm1_c"; 147 pinctrl-0 = <&avb0_pins>;
145 function = "pwm1"; 148 pinctrl-names = "default";
146 }; 149 renesas,no-ether-link;
150 phy-handle = <&phy0>;
151 phy-mode = "rgmii-txid";
152 status = "okay";
147 153
148 scif2_pins: scif2 { 154 phy0: ethernet-phy@0 {
149 groups = "scif2_data"; 155 rxc-skew-ps = <1500>;
150 function = "scif2"; 156 reg = <0>;
157 interrupt-parent = <&gpio5>;
158 interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
151 }; 159 };
160};
152 161
153 sdhi2_pins: sd2 { 162&du {
154 groups = "mmc_data8", "mmc_ctrl"; 163 pinctrl-0 = <&du_pins>;
155 function = "mmc"; 164 pinctrl-names = "default";
156 power-source = <1800>; 165 status = "okay";
157 };
158 166
159 sdhi2_pins_uhs: sd2_uhs { 167 clocks = <&cpg CPG_MOD 724>,
160 groups = "mmc_data8", "mmc_ctrl"; 168 <&cpg CPG_MOD 723>,
161 function = "mmc"; 169 <&x12_clk>;
162 power-source = <1800>; 170 clock-names = "du.0", "du.1", "dclkin.0";
163 };
164 171
165 usb0_pins: usb0 { 172 ports {
166 groups = "usb0"; 173 port@0 {
167 function = "usb0"; 174 endpoint {
175 remote-endpoint = <&adv7123_in>;
176 };
177 };
168 }; 178 };
179};
169 180
170 vin4_pins_cvbs: vin4 { 181&ehci0 {
171 groups = "vin4_data8", "vin4_sync", "vin4_clk"; 182 status = "okay";
172 function = "vin4"; 183};
173 }; 184
185&extal_clk {
186 clock-frequency = <48000000>;
174}; 187};
175 188
176&i2c0 { 189&i2c0 {
@@ -178,12 +191,6 @@
178 pinctrl-names = "default"; 191 pinctrl-names = "default";
179 status = "okay"; 192 status = "okay";
180 193
181 eeprom@50 {
182 compatible = "rohm,br24t01", "atmel,24c01";
183 reg = <0x50>;
184 pagesize = <8>;
185 };
186
187 composite-in@20 { 194 composite-in@20 {
188 compatible = "adi,adv7180cp"; 195 compatible = "adi,adv7180cp";
189 reg = <0x20>; 196 reg = <0x20>;
@@ -218,6 +225,43 @@
218 225
219 }; 226 };
220 227
228 hdmi-encoder@39 {
229 compatible = "adi,adv7511w";
230 reg = <0x39>, <0x3f>, <0x38>, <0x3c>;
231 reg-names = "main", "edid", "packet", "cec";
232 interrupt-parent = <&gpio1>;
233 interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
234
235 /* Depends on LVDS */
236 max-clock = <135000000>;
237 min-vrefresh = <50>;
238
239 adi,input-depth = <8>;
240 adi,input-colorspace = "rgb";
241 adi,input-clock = "1x";
242 adi,input-style = <1>;
243 adi,input-justification = "evenly";
244
245 ports {
246 #address-cells = <1>;
247 #size-cells = <0>;
248
249 port@0 {
250 reg = <0>;
251 adv7511_in: endpoint {
252 remote-endpoint = <&thc63lvd1024_out>;
253 };
254 };
255
256 port@1 {
257 reg = <1>;
258 adv7511_out: endpoint {
259 remote-endpoint = <&hdmi_con_out>;
260 };
261 };
262 };
263 };
264
221 hdmi-decoder@4c { 265 hdmi-decoder@4c {
222 compatible = "adi,adv7612"; 266 compatible = "adi,adv7612";
223 reg = <0x4c>; 267 reg = <0x4c>;
@@ -254,6 +298,12 @@
254 }; 298 };
255 }; 299 };
256 }; 300 };
301
302 eeprom@50 {
303 compatible = "rohm,br24t01", "atmel,24c01";
304 reg = <0x50>;
305 pagesize = <8>;
306 };
257}; 307};
258 308
259&i2c1 { 309&i2c1 {
@@ -262,47 +312,112 @@
262 status = "okay"; 312 status = "okay";
263}; 313};
264 314
265&du { 315&lvds0 {
266 pinctrl-0 = <&du_pins>;
267 pinctrl-names = "default";
268 status = "okay"; 316 status = "okay";
269 317
270 clocks = <&cpg CPG_MOD 724>, 318 clocks = <&cpg CPG_MOD 727>,
271 <&cpg CPG_MOD 723>, 319 <&x12_clk>,
272 <&x12_clk>; 320 <&extal_clk>;
273 clock-names = "du.0", "du.1", "dclkin.0"; 321 clock-names = "fck", "dclkin.0", "extal";
274 322
275 ports { 323 ports {
276 port@0 { 324 port@1 {
277 endpoint { 325 lvds0_out: endpoint {
278 remote-endpoint = <&adv7123_in>; 326 remote-endpoint = <&thc63lvd1024_in>;
279 }; 327 };
280 }; 328 };
281 }; 329 };
282}; 330};
283 331
284&ehci0 { 332&lvds1 {
285 status = "okay"; 333 clocks = <&cpg CPG_MOD 727>,
334 <&x12_clk>,
335 <&extal_clk>;
336 clock-names = "fck", "dclkin.0", "extal";
286}; 337};
287 338
288&ohci0 { 339&ohci0 {
289 status = "okay"; 340 status = "okay";
290}; 341};
291 342
292&avb { 343&pfc {
293 pinctrl-0 = <&avb0_pins>; 344 avb0_pins: avb {
345 mux {
346 groups = "avb0_link", "avb0_mdio", "avb0_mii";
347 function = "avb0";
348 };
349 };
350
351 du_pins: du {
352 groups = "du_rgb888", "du_sync", "du_disp", "du_clk_out_0";
353 function = "du";
354 };
355
356 i2c0_pins: i2c0 {
357 groups = "i2c0";
358 function = "i2c0";
359 };
360
361 i2c1_pins: i2c1 {
362 groups = "i2c1";
363 function = "i2c1";
364 };
365
366 pwm0_pins: pwm0 {
367 groups = "pwm0_c";
368 function = "pwm0";
369 };
370
371 pwm1_pins: pwm1 {
372 groups = "pwm1_c";
373 function = "pwm1";
374 };
375
376 scif2_pins: scif2 {
377 groups = "scif2_data";
378 function = "scif2";
379 };
380
381 sdhi2_pins: sd2 {
382 groups = "mmc_data8", "mmc_ctrl";
383 function = "mmc";
384 power-source = <1800>;
385 };
386
387 sdhi2_pins_uhs: sd2_uhs {
388 groups = "mmc_data8", "mmc_ctrl";
389 function = "mmc";
390 power-source = <1800>;
391 };
392
393 usb0_pins: usb0 {
394 groups = "usb0";
395 function = "usb0";
396 };
397
398 vin4_pins_cvbs: vin4 {
399 groups = "vin4_data8", "vin4_sync", "vin4_clk";
400 function = "vin4";
401 };
402};
403
404&pwm0 {
405 pinctrl-0 = <&pwm0_pins>;
294 pinctrl-names = "default"; 406 pinctrl-names = "default";
295 renesas,no-ether-link; 407
296 phy-handle = <&phy0>;
297 phy-mode = "rgmii-txid";
298 status = "okay"; 408 status = "okay";
409};
299 410
300 phy0: ethernet-phy@0 { 411&pwm1 {
301 rxc-skew-ps = <1500>; 412 pinctrl-0 = <&pwm1_pins>;
302 reg = <0>; 413 pinctrl-names = "default";
303 interrupt-parent = <&gpio5>; 414
304 interrupts = <19 IRQ_TYPE_LEVEL_LOW>; 415 status = "okay";
305 }; 416};
417
418&rwdt {
419 timeout-sec = <60>;
420 status = "okay";
306}; 421};
307 422
308&scif2 { 423&scif2 {
@@ -333,25 +448,6 @@
333 status = "okay"; 448 status = "okay";
334}; 449};
335 450
336&pwm0 {
337 pinctrl-0 = <&pwm0_pins>;
338 pinctrl-names = "default";
339
340 status = "okay";
341};
342
343&pwm1 {
344 pinctrl-0 = <&pwm1_pins>;
345 pinctrl-names = "default";
346
347 status = "okay";
348};
349
350&rwdt {
351 timeout-sec = <60>;
352 status = "okay";
353};
354
355&vin4 { 451&vin4 {
356 pinctrl-0 = <&vin4_pins_cvbs>; 452 pinctrl-0 = <&vin4_pins_cvbs>;
357 pinctrl-names = "default"; 453 pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi
index fe77bc43c447..214f4954b321 100644
--- a/arch/arm64/boot/dts/renesas/r8a77995.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77995.dtsi
@@ -1,6 +1,6 @@
1// SPDX-License-Identifier: GPL-2.0 1// SPDX-License-Identifier: GPL-2.0
2/* 2/*
3 * Device Tree Source for the r8a77995 SoC 3 * Device Tree Source for the R-Car D3 (R8A77995) SoC
4 * 4 *
5 * Copyright (C) 2016 Renesas Electronics Corp. 5 * Copyright (C) 2016 Renesas Electronics Corp.
6 * Copyright (C) 2017 Glider bvba 6 * Copyright (C) 2017 Glider bvba
@@ -391,6 +391,10 @@
391 resets = <&cpg 219>; 391 resets = <&cpg 219>;
392 #dma-cells = <1>; 392 #dma-cells = <1>;
393 dma-channels = <8>; 393 dma-channels = <8>;
394 iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>,
395 <&ipmmu_ds0 2>, <&ipmmu_ds0 3>,
396 <&ipmmu_ds0 4>, <&ipmmu_ds0 5>,
397 <&ipmmu_ds0 6>, <&ipmmu_ds0 7>;
394 }; 398 };
395 399
396 dmac1: dma-controller@e7300000 { 400 dmac1: dma-controller@e7300000 {
@@ -415,6 +419,10 @@
415 resets = <&cpg 218>; 419 resets = <&cpg 218>;
416 #dma-cells = <1>; 420 #dma-cells = <1>;
417 dma-channels = <8>; 421 dma-channels = <8>;
422 iommus = <&ipmmu_ds1 0>, <&ipmmu_ds1 1>,
423 <&ipmmu_ds1 2>, <&ipmmu_ds1 3>,
424 <&ipmmu_ds1 4>, <&ipmmu_ds1 5>,
425 <&ipmmu_ds1 6>, <&ipmmu_ds1 7>;
418 }; 426 };
419 427
420 dmac2: dma-controller@e7310000 { 428 dmac2: dma-controller@e7310000 {
@@ -439,6 +447,10 @@
439 resets = <&cpg 217>; 447 resets = <&cpg 217>;
440 #dma-cells = <1>; 448 #dma-cells = <1>;
441 dma-channels = <8>; 449 dma-channels = <8>;
450 iommus = <&ipmmu_ds1 16>, <&ipmmu_ds1 17>,
451 <&ipmmu_ds1 18>, <&ipmmu_ds1 19>,
452 <&ipmmu_ds1 20>, <&ipmmu_ds1 21>,
453 <&ipmmu_ds1 22>, <&ipmmu_ds1 23>;
442 }; 454 };
443 455
444 ipmmu_ds0: mmu@e6740000 { 456 ipmmu_ds0: mmu@e6740000 {
@@ -817,11 +829,11 @@
817 compatible = "generic-ohci"; 829 compatible = "generic-ohci";
818 reg = <0 0xee080000 0 0x100>; 830 reg = <0 0xee080000 0 0x100>;
819 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 831 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
820 clocks = <&cpg CPG_MOD 703>; 832 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
821 phys = <&usb2_phy0>; 833 phys = <&usb2_phy0>;
822 phy-names = "usb"; 834 phy-names = "usb";
823 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 835 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
824 resets = <&cpg 703>; 836 resets = <&cpg 703>, <&cpg 704>;
825 status = "disabled"; 837 status = "disabled";
826 }; 838 };
827 839
@@ -829,12 +841,12 @@
829 compatible = "generic-ehci"; 841 compatible = "generic-ehci";
830 reg = <0 0xee080100 0 0x100>; 842 reg = <0 0xee080100 0 0x100>;
831 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 843 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
832 clocks = <&cpg CPG_MOD 703>; 844 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
833 phys = <&usb2_phy0>; 845 phys = <&usb2_phy0>;
834 phy-names = "usb"; 846 phy-names = "usb";
835 companion = <&ohci0>; 847 companion = <&ohci0>;
836 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 848 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
837 resets = <&cpg 703>; 849 resets = <&cpg 703>, <&cpg 704>;
838 status = "disabled"; 850 status = "disabled";
839 }; 851 };
840 852
@@ -843,9 +855,9 @@
843 "renesas,rcar-gen3-usb2-phy"; 855 "renesas,rcar-gen3-usb2-phy";
844 reg = <0 0xee080200 0 0x700>; 856 reg = <0 0xee080200 0 0x700>;
845 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 857 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
846 clocks = <&cpg CPG_MOD 703>; 858 clocks = <&cpg CPG_MOD 703>, <&cpg CPG_MOD 704>;
847 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>; 859 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
848 resets = <&cpg 703>; 860 resets = <&cpg 703>, <&cpg 704>;
849 #phy-cells = <0>; 861 #phy-cells = <0>;
850 status = "disabled"; 862 status = "disabled";
851 }; 863 };
@@ -960,12 +972,68 @@
960 port@1 { 972 port@1 {
961 reg = <1>; 973 reg = <1>;
962 du_out_lvds0: endpoint { 974 du_out_lvds0: endpoint {
975 remote-endpoint = <&lvds0_in>;
963 }; 976 };
964 }; 977 };
965 978
966 port@2 { 979 port@2 {
967 reg = <2>; 980 reg = <2>;
968 du_out_lvds1: endpoint { 981 du_out_lvds1: endpoint {
982 remote-endpoint = <&lvds1_in>;
983 };
984 };
985 };
986 };
987
988 lvds0: lvds-encoder@feb90000 {
989 compatible = "renesas,r8a77995-lvds";
990 reg = <0 0xfeb90000 0 0x20>;
991 clocks = <&cpg CPG_MOD 727>;
992 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
993 resets = <&cpg 727>;
994 status = "disabled";
995
996 ports {
997 #address-cells = <1>;
998 #size-cells = <0>;
999
1000 port@0 {
1001 reg = <0>;
1002 lvds0_in: endpoint {
1003 remote-endpoint = <&du_out_lvds0>;
1004 };
1005 };
1006
1007 port@1 {
1008 reg = <1>;
1009 lvds0_out: endpoint {
1010 };
1011 };
1012 };
1013 };
1014
1015 lvds1: lvds-encoder@feb90100 {
1016 compatible = "renesas,r8a77995-lvds";
1017 reg = <0 0xfeb90100 0 0x20>;
1018 clocks = <&cpg CPG_MOD 727>;
1019 power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
1020 resets = <&cpg 726>;
1021 status = "disabled";
1022
1023 ports {
1024 #address-cells = <1>;
1025 #size-cells = <0>;
1026
1027 port@0 {
1028 reg = <0>;
1029 lvds1_in: endpoint {
1030 remote-endpoint = <&du_out_lvds1>;
1031 };
1032 };
1033
1034 port@1 {
1035 reg = <1>;
1036 lvds1_out: endpoint {
969 }; 1037 };
970 }; 1038 };
971 }; 1039 };
diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
index 7d3d866a0063..7f91ff524109 100644
--- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi
+++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
@@ -420,7 +420,10 @@
420 420
421 video-receiver@70 { 421 video-receiver@70 {
422 compatible = "adi,adv7482"; 422 compatible = "adi,adv7482";
423 reg = <0x70>; 423 reg = <0x70 0x71 0x72 0x73 0x74 0x75
424 0x60 0x61 0x62 0x63 0x64 0x65>;
425 reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
426 "infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
424 427
425 #address-cells = <1>; 428 #address-cells = <1>;
426 #size-cells = <0>; 429 #size-cells = <0>;
@@ -471,6 +474,8 @@
471&i2c_dvfs { 474&i2c_dvfs {
472 status = "okay"; 475 status = "okay";
473 476
477 clock-frequency = <400000>;
478
474 pmic: pmic@30 { 479 pmic: pmic@30 {
475 pinctrl-0 = <&irq0_pins>; 480 pinctrl-0 = <&irq0_pins>;
476 pinctrl-names = "default"; 481 pinctrl-names = "default";
@@ -748,6 +753,7 @@
748 wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 753 wp-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>;
749 bus-width = <4>; 754 bus-width = <4>;
750 sd-uhs-sdr50; 755 sd-uhs-sdr50;
756 sd-uhs-sdr104;
751 status = "okay"; 757 status = "okay";
752}; 758};
753 759
@@ -777,6 +783,7 @@
777 wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>; 783 wp-gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
778 bus-width = <4>; 784 bus-width = <4>;
779 sd-uhs-sdr50; 785 sd-uhs-sdr50;
786 sd-uhs-sdr104;
780 status = "okay"; 787 status = "okay";
781}; 788};
782 789
diff --git a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
index 8bf3091a899c..1b316d79df88 100644
--- a/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
+++ b/arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
@@ -127,7 +127,7 @@
127 #address-cells = <1>; 127 #address-cells = <1>;
128 #size-cells = <0>; 128 #size-cells = <0>;
129 reg = <0x71>; 129 reg = <0x71>;
130 reset-gpios= <&gpio3 15 GPIO_ACTIVE_LOW>; 130 reset-gpios = <&gpio3 15 GPIO_ACTIVE_LOW>;
131 }; 131 };
132}; 132};
133 133
diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi
index 0ead552d7eae..89daca7356df 100644
--- a/arch/arm64/boot/dts/renesas/ulcb.dtsi
+++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi
@@ -18,6 +18,7 @@
18 }; 18 };
19 19
20 chosen { 20 chosen {
21 bootargs = "ignore_loglevel rw root=/dev/nfs ip=dhcp";
21 stdout-path = "serial0:115200n8"; 22 stdout-path = "serial0:115200n8";
22 }; 23 };
23 24
@@ -241,6 +242,8 @@
241&i2c_dvfs { 242&i2c_dvfs {
242 status = "okay"; 243 status = "okay";
243 244
245 clock-frequency = <400000>;
246
244 pmic: pmic@30 { 247 pmic: pmic@30 {
245 pinctrl-0 = <&irq0_pins>; 248 pinctrl-0 = <&irq0_pins>;
246 pinctrl-names = "default"; 249 pinctrl-names = "default";
@@ -416,6 +419,7 @@
416 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>; 419 cd-gpios = <&gpio3 12 GPIO_ACTIVE_LOW>;
417 bus-width = <4>; 420 bus-width = <4>;
418 sd-uhs-sdr50; 421 sd-uhs-sdr50;
422 sd-uhs-sdr104;
419 status = "okay"; 423 status = "okay";
420}; 424};
421 425
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index b0092d95b574..49042c477870 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -1,4 +1,5 @@
1# SPDX-License-Identifier: GPL-2.0 1# SPDX-License-Identifier: GPL-2.0
2dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-evb.dtb
2dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb 3dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
3dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb 4dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
4dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb 5dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb
@@ -14,5 +15,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb
14dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb 15dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb
15dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb 16dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb
16dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb 17dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb
18dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb
19dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rock960.dtb
20dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64.dtb
17dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb 21dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb
18dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb 22dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb
diff --git a/arch/arm64/boot/dts/rockchip/px30-evb.dts b/arch/arm64/boot/dts/rockchip/px30-evb.dts
new file mode 100644
index 000000000000..263d7f3dbc44
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/px30-evb.dts
@@ -0,0 +1,235 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
4 */
5
6/dts-v1/;
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/pinctrl/rockchip.h>
10#include "px30.dtsi"
11
12/ {
13 model = "Rockchip PX30 EVB";
14 compatible = "rockchip,px30-evb", "rockchip,px30";
15
16 chosen {
17 stdout-path = "serial2:1500000n8";
18 };
19
20 adc-keys {
21 compatible = "adc-keys";
22 io-channels = <&saradc 2>;
23 io-channel-names = "buttons";
24 keyup-threshold-microvolt = <1800000>;
25 poll-interval = <100>;
26
27 esc-key {
28 label = "esc";
29 linux,code = <KEY_ESC>;
30 press-threshold-microvolt = <1310000>;
31 };
32
33 home-key {
34 label = "home";
35 linux,code = <KEY_HOME>;
36 press-threshold-microvolt = <624000>;
37 };
38
39 menu-key {
40 label = "menu";
41 linux,code = <KEY_MENU>;
42 press-threshold-microvolt = <987000>;
43 };
44
45 vol-down-key {
46 label = "volume down";
47 linux,code = <KEY_VOLUMEDOWN>;
48 press-threshold-microvolt = <300000>;
49 };
50
51 vol-up-key {
52 label = "volume up";
53 linux,code = <KEY_VOLUMEUP>;
54 press-threshold-microvolt = <17000>;
55 };
56 };
57
58 backlight: backlight {
59 compatible = "pwm-backlight";
60 pwms = <&pwm1 0 25000 0>;
61 };
62
63 sdio_pwrseq: sdio-pwrseq {
64 compatible = "mmc-pwrseq-simple";
65 pinctrl-names = "default";
66 pinctrl-0 = <&wifi_enable_h>;
67
68 /*
69 * On the module itself this is one of these (depending
70 * on the actual card populated):
71 * - SDIO_RESET_L_WL_REG_ON
72 * - PDN (power down when low)
73 */
74 reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */
75 };
76
77 vcc_phy: vcc-phy-regulator {
78 compatible = "regulator-fixed";
79 regulator-name = "vcc_phy";
80 regulator-always-on;
81 regulator-boot-on;
82 };
83
84 vcc5v0_sys: vccsys {
85 compatible = "regulator-fixed";
86 regulator-name = "vcc5v0_sys";
87 regulator-always-on;
88 regulator-boot-on;
89 regulator-min-microvolt = <5000000>;
90 regulator-max-microvolt = <5000000>;
91 };
92};
93
94&display_subsystem {
95 status = "okay";
96};
97
98&emmc {
99 bus-width = <8>;
100 cap-mmc-highspeed;
101 mmc-hs200-1_8v;
102 non-removable;
103 status = "okay";
104};
105
106&gmac {
107 clock_in_out = "output";
108 phy-supply = <&vcc_phy>;
109 snps,reset-gpio = <&gpio2 13 GPIO_ACTIVE_LOW>;
110 snps,reset-active-low;
111 snps,reset-delays-us = <0 50000 50000>;
112 status = "okay";
113};
114
115&i2c0 {
116 status = "okay";
117};
118
119&i2s1_2ch {
120 status = "okay";
121};
122
123&io_domains {
124 status = "okay";
125};
126
127&pinctrl {
128 headphone {
129 hp_det: hp-det {
130 rockchip,pins =
131 <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
132 };
133 };
134
135 pmic {
136 pmic_int: pmic_int {
137 rockchip,pins =
138 <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
139 };
140
141 soc_slppin_gpio: soc_slppin_gpio {
142 rockchip,pins =
143 <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
144 };
145
146 soc_slppin_slp: soc_slppin_slp {
147 rockchip,pins =
148 <0 RK_PA4 RK_FUNC_1 &pcfg_pull_none>;
149 };
150
151 soc_slppin_rst: soc_slppin_rst {
152 rockchip,pins =
153 <0 RK_PA4 RK_FUNC_2 &pcfg_pull_none>;
154 };
155 };
156
157 sdio-pwrseq {
158 wifi_enable_h: wifi-enable-h {
159 rockchip,pins =
160 <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
161 };
162 };
163};
164
165&pmu_io_domains {
166 status = "okay";
167};
168
169&pwm1 {
170 status = "okay";
171};
172
173&saradc {
174 status = "okay";
175};
176
177&sdmmc {
178 bus-width = <4>;
179 cap-mmc-highspeed;
180 cap-sd-highspeed;
181 card-detect-delay = <800>;
182 sd-uhs-sdr12;
183 sd-uhs-sdr25;
184 sd-uhs-sdr50;
185 sd-uhs-sdr104;
186 status = "okay";
187};
188
189&sdio {
190 bus-width = <4>;
191 cap-sd-highspeed;
192 keep-power-in-suspend;
193 non-removable;
194 mmc-pwrseq = <&sdio_pwrseq>;
195 sd-uhs-sdr104;
196 status = "okay";
197};
198
199&uart1 {
200 pinctrl-names = "default";
201 pinctrl-0 = <&uart1_xfer &uart1_cts>;
202 status = "okay";
203};
204
205&uart2 {
206 status = "okay";
207};
208
209&usb20_otg {
210 status = "okay";
211};
212
213&usb_host0_ehci {
214 status = "okay";
215};
216
217&usb_host0_ohci {
218 status = "okay";
219};
220
221&vopb {
222 status = "okay";
223};
224
225&vopb_mmu {
226 status = "okay";
227};
228
229&vopl {
230 status = "okay";
231};
232
233&vopl_mmu {
234 status = "okay";
235};
diff --git a/arch/arm64/boot/dts/rockchip/px30.dtsi b/arch/arm64/boot/dts/rockchip/px30.dtsi
new file mode 100644
index 000000000000..9aa8d5ef9e45
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/px30.dtsi
@@ -0,0 +1,2047 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd
4 */
5
6#include <dt-bindings/clock/px30-cru.h>
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/interrupt-controller/irq.h>
10#include <dt-bindings/pinctrl/rockchip.h>
11#include <dt-bindings/power/px30-power.h>
12#include <dt-bindings/soc/rockchip,boot-mode.h>
13
14/ {
15 compatible = "rockchip,px30";
16
17 interrupt-parent = <&gic>;
18 #address-cells = <2>;
19 #size-cells = <2>;
20
21 aliases {
22 ethernet0 = &gmac;
23 i2c0 = &i2c0;
24 i2c1 = &i2c1;
25 i2c2 = &i2c2;
26 i2c3 = &i2c3;
27 serial0 = &uart0;
28 serial1 = &uart1;
29 serial2 = &uart2;
30 serial3 = &uart3;
31 serial4 = &uart4;
32 serial5 = &uart5;
33 spi0 = &spi0;
34 spi1 = &spi1;
35 };
36
37 cpus {
38 #address-cells = <2>;
39 #size-cells = <0>;
40
41 cpu0: cpu@0 {
42 device_type = "cpu";
43 compatible = "arm,cortex-a35", "arm,armv8";
44 reg = <0x0 0x0>;
45 enable-method = "psci";
46 clocks = <&cru ARMCLK>;
47 #cooling-cells = <2>;
48 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
49 dynamic-power-coefficient = <90>;
50 operating-points-v2 = <&cpu0_opp_table>;
51 };
52
53 cpu1: cpu@1 {
54 device_type = "cpu";
55 compatible = "arm,cortex-a35", "arm,armv8";
56 reg = <0x0 0x1>;
57 enable-method = "psci";
58 clocks = <&cru ARMCLK>;
59 #cooling-cells = <2>;
60 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
61 dynamic-power-coefficient = <90>;
62 operating-points-v2 = <&cpu0_opp_table>;
63 };
64
65 cpu2: cpu@2 {
66 device_type = "cpu";
67 compatible = "arm,cortex-a35", "arm,armv8";
68 reg = <0x0 0x2>;
69 enable-method = "psci";
70 clocks = <&cru ARMCLK>;
71 #cooling-cells = <2>;
72 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
73 dynamic-power-coefficient = <90>;
74 operating-points-v2 = <&cpu0_opp_table>;
75 };
76
77 cpu3: cpu@3 {
78 device_type = "cpu";
79 compatible = "arm,cortex-a35", "arm,armv8";
80 reg = <0x0 0x3>;
81 enable-method = "psci";
82 clocks = <&cru ARMCLK>;
83 #cooling-cells = <2>;
84 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
85 dynamic-power-coefficient = <90>;
86 operating-points-v2 = <&cpu0_opp_table>;
87 };
88
89 idle-states {
90 entry-method = "psci";
91
92 CPU_SLEEP: cpu-sleep {
93 compatible = "arm,idle-state";
94 local-timer-stop;
95 arm,psci-suspend-param = <0x0010000>;
96 entry-latency-us = <120>;
97 exit-latency-us = <250>;
98 min-residency-us = <900>;
99 };
100
101 CLUSTER_SLEEP: cluster-sleep {
102 compatible = "arm,idle-state";
103 local-timer-stop;
104 arm,psci-suspend-param = <0x1010000>;
105 entry-latency-us = <400>;
106 exit-latency-us = <500>;
107 min-residency-us = <2000>;
108 };
109 };
110 };
111
112 cpu0_opp_table: cpu0-opp-table {
113 compatible = "operating-points-v2";
114 opp-shared;
115
116 opp-408000000 {
117 opp-hz = /bits/ 64 <408000000>;
118 opp-microvolt = <950000 950000 1350000>;
119 clock-latency-ns = <40000>;
120 opp-suspend;
121 };
122 opp-600000000 {
123 opp-hz = /bits/ 64 <600000000>;
124 opp-microvolt = <950000 950000 1350000>;
125 clock-latency-ns = <40000>;
126 };
127 opp-816000000 {
128 opp-hz = /bits/ 64 <816000000>;
129 opp-microvolt = <1050000 1050000 1350000>;
130 clock-latency-ns = <40000>;
131 };
132 opp-1008000000 {
133 opp-hz = /bits/ 64 <1008000000>;
134 opp-microvolt = <1175000 1175000 1350000>;
135 clock-latency-ns = <40000>;
136 };
137 opp-1200000000 {
138 opp-hz = /bits/ 64 <1200000000>;
139 opp-microvolt = <1300000 1300000 1350000>;
140 clock-latency-ns = <40000>;
141 };
142 opp-1296000000 {
143 opp-hz = /bits/ 64 <1296000000>;
144 opp-microvolt = <1350000 1350000 1350000>;
145 clock-latency-ns = <40000>;
146 };
147 };
148
149 arm-pmu {
150 compatible = "arm,cortex-a53-pmu";
151 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
152 <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
153 <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
154 <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
155 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
156 };
157
158 display_subsystem: display-subsystem {
159 compatible = "rockchip,display-subsystem";
160 ports = <&vopb_out>, <&vopl_out>;
161 status = "disabled";
162 };
163
164 firmware {
165 optee {
166 compatible = "linaro,optee-tz";
167 method = "smc";
168 };
169 };
170
171 gmac_clkin: external-gmac-clock {
172 compatible = "fixed-clock";
173 clock-frequency = <50000000>;
174 clock-output-names = "gmac_clkin";
175 #clock-cells = <0>;
176 };
177
178 psci {
179 compatible = "arm,psci-1.0";
180 method = "smc";
181 };
182
183 timer {
184 compatible = "arm,armv8-timer";
185 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
186 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
187 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
188 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
189 };
190
191 xin24m: xin24m {
192 compatible = "fixed-clock";
193 #clock-cells = <0>;
194 clock-frequency = <24000000>;
195 clock-output-names = "xin24m";
196 };
197
198 xin32k: xin32k {
199 compatible = "fixed-clock";
200 #clock-cells = <0>;
201 clock-frequency = <32768>;
202 clock-output-names = "xin32k";
203 };
204
205 pmu: power-management@ff000000 {
206 compatible = "rockchip,px30-pmu", "syscon", "simple-mfd";
207 reg = <0x0 0xff000000 0x0 0x1000>;
208
209 power: power-controller {
210 compatible = "rockchip,px30-power-controller";
211 #power-domain-cells = <1>;
212 #address-cells = <1>;
213 #size-cells = <0>;
214
215 /* These power domains are grouped by VD_LOGIC */
216 pd_usb@PX30_PD_USB {
217 reg = <PX30_PD_USB>;
218 clocks = <&cru HCLK_HOST>,
219 <&cru HCLK_OTG>,
220 <&cru SCLK_OTG_ADP>;
221 pm_qos = <&qos_usb_host>, <&qos_usb_otg>;
222 };
223 pd_sdcard@PX30_PD_SDCARD {
224 reg = <PX30_PD_SDCARD>;
225 clocks = <&cru HCLK_SDMMC>,
226 <&cru SCLK_SDMMC>;
227 pm_qos = <&qos_sdmmc>;
228 };
229 pd_gmac@PX30_PD_GMAC {
230 reg = <PX30_PD_GMAC>;
231 clocks = <&cru ACLK_GMAC>,
232 <&cru PCLK_GMAC>,
233 <&cru SCLK_MAC_REF>,
234 <&cru SCLK_GMAC_RX_TX>;
235 pm_qos = <&qos_gmac>;
236 };
237 pd_mmc_nand@PX30_PD_MMC_NAND {
238 reg = <PX30_PD_MMC_NAND>;
239 clocks = <&cru HCLK_NANDC>,
240 <&cru HCLK_EMMC>,
241 <&cru HCLK_SDIO>,
242 <&cru HCLK_SFC>,
243 <&cru SCLK_EMMC>,
244 <&cru SCLK_NANDC>,
245 <&cru SCLK_SDIO>,
246 <&cru SCLK_SFC>;
247 pm_qos = <&qos_emmc>, <&qos_nand>,
248 <&qos_sdio>, <&qos_sfc>;
249 };
250 pd_vpu@PX30_PD_VPU {
251 reg = <PX30_PD_VPU>;
252 clocks = <&cru ACLK_VPU>,
253 <&cru HCLK_VPU>,
254 <&cru SCLK_CORE_VPU>;
255 pm_qos = <&qos_vpu>, <&qos_vpu_r128>;
256 };
257 pd_vo@PX30_PD_VO {
258 reg = <PX30_PD_VO>;
259 clocks = <&cru ACLK_RGA>,
260 <&cru ACLK_VOPB>,
261 <&cru ACLK_VOPL>,
262 <&cru DCLK_VOPB>,
263 <&cru DCLK_VOPL>,
264 <&cru HCLK_RGA>,
265 <&cru HCLK_VOPB>,
266 <&cru HCLK_VOPL>,
267 <&cru PCLK_MIPI_DSI>,
268 <&cru SCLK_RGA_CORE>,
269 <&cru SCLK_VOPB_PWM>;
270 pm_qos = <&qos_rga_rd>, <&qos_rga_wr>,
271 <&qos_vop_m0>, <&qos_vop_m1>;
272 };
273 pd_vi@PX30_PD_VI {
274 reg = <PX30_PD_VI>;
275 clocks = <&cru ACLK_CIF>,
276 <&cru ACLK_ISP>,
277 <&cru HCLK_CIF>,
278 <&cru HCLK_ISP>,
279 <&cru SCLK_ISP>;
280 pm_qos = <&qos_isp_128>, <&qos_isp_rd>,
281 <&qos_isp_wr>, <&qos_isp_m1>,
282 <&qos_vip>;
283 };
284 pd_gpu@PX30_PD_GPU {
285 reg = <PX30_PD_GPU>;
286 clocks = <&cru SCLK_GPU>;
287 pm_qos = <&qos_gpu>;
288 };
289 };
290 };
291
292 pmugrf: syscon@ff010000 {
293 compatible = "rockchip,px30-pmugrf", "syscon", "simple-mfd";
294 reg = <0x0 0xff010000 0x0 0x1000>;
295 #address-cells = <1>;
296 #size-cells = <1>;
297
298 pmu_io_domains: io-domains {
299 compatible = "rockchip,px30-pmu-io-voltage-domain";
300 status = "disabled";
301 };
302
303 reboot-mode {
304 compatible = "syscon-reboot-mode";
305 offset = <0x200>;
306 mode-bootloader = <BOOT_BL_DOWNLOAD>;
307 mode-fastboot = <BOOT_FASTBOOT>;
308 mode-loader = <BOOT_BL_DOWNLOAD>;
309 mode-normal = <BOOT_NORMAL>;
310 mode-recovery = <BOOT_RECOVERY>;
311 };
312 };
313
314 uart0: serial@ff030000 {
315 compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
316 reg = <0x0 0xff030000 0x0 0x100>;
317 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
318 clocks = <&pmucru SCLK_UART0_PMU>, <&pmucru PCLK_UART0_PMU>;
319 clock-names = "baudclk", "apb_pclk";
320 dmas = <&dmac 0>, <&dmac 1>;
321 dma-names = "tx", "rx";
322 reg-shift = <2>;
323 reg-io-width = <4>;
324 pinctrl-names = "default";
325 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
326 status = "disabled";
327 };
328
329 i2s1_2ch: i2s@ff070000 {
330 compatible = "rockchip,px30-i2s", "rockchip,rk3066-i2s";
331 reg = <0x0 0xff070000 0x0 0x1000>;
332 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
333 clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1>;
334 clock-names = "i2s_clk", "i2s_hclk";
335 dmas = <&dmac 18>, <&dmac 19>;
336 dma-names = "tx", "rx";
337 pinctrl-names = "default";
338 pinctrl-0 = <&i2s1_2ch_sclk &i2s1_2ch_lrck
339 &i2s1_2ch_sdi &i2s1_2ch_sdo>;
340 #sound-dai-cells = <0>;
341 status = "disabled";
342 };
343
344 i2s2_2ch: i2s@ff080000 {
345 compatible = "rockchip,px30-i2s", "rockchip,rk3066-i2s";
346 reg = <0x0 0xff080000 0x0 0x1000>;
347 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
348 clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2>;
349 clock-names = "i2s_clk", "i2s_hclk";
350 dmas = <&dmac 20>, <&dmac 21>;
351 dma-names = "tx", "rx";
352 pinctrl-names = "default";
353 pinctrl-0 = <&i2s2_2ch_sclk &i2s2_2ch_lrck
354 &i2s2_2ch_sdi &i2s2_2ch_sdo>;
355 #sound-dai-cells = <0>;
356 status = "disabled";
357 };
358
359 gic: interrupt-controller@ff131000 {
360 compatible = "arm,gic-400";
361 #interrupt-cells = <3>;
362 #address-cells = <0>;
363 interrupt-controller;
364 reg = <0x0 0xff131000 0 0x1000>,
365 <0x0 0xff132000 0 0x2000>,
366 <0x0 0xff134000 0 0x2000>,
367 <0x0 0xff136000 0 0x2000>;
368 interrupts = <GIC_PPI 9
369 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
370 };
371
372 grf: syscon@ff140000 {
373 compatible = "rockchip,px30-grf", "syscon", "simple-mfd";
374 reg = <0x0 0xff140000 0x0 0x1000>;
375 #address-cells = <1>;
376 #size-cells = <1>;
377
378 io_domains: io-domains {
379 compatible = "rockchip,px30-io-voltage-domain";
380 status = "disabled";
381 };
382 };
383
384 uart1: serial@ff158000 {
385 compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
386 reg = <0x0 0xff158000 0x0 0x100>;
387 interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
388 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
389 clock-names = "baudclk", "apb_pclk";
390 dmas = <&dmac 2>, <&dmac 3>;
391 dma-names = "tx", "rx";
392 reg-shift = <2>;
393 reg-io-width = <4>;
394 pinctrl-names = "default";
395 pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>;
396 status = "disabled";
397 };
398
399 uart2: serial@ff160000 {
400 compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
401 reg = <0x0 0xff160000 0x0 0x100>;
402 interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
403 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
404 clock-names = "baudclk", "apb_pclk";
405 dmas = <&dmac 4>, <&dmac 5>;
406 dma-names = "tx", "rx";
407 reg-shift = <2>;
408 reg-io-width = <4>;
409 pinctrl-names = "default";
410 pinctrl-0 = <&uart2m0_xfer>;
411 status = "disabled";
412 };
413
414 uart3: serial@ff168000 {
415 compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
416 reg = <0x0 0xff168000 0x0 0x100>;
417 interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
418 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART3>;
419 clock-names = "baudclk", "apb_pclk";
420 dmas = <&dmac 6>, <&dmac 7>;
421 dma-names = "tx", "rx";
422 reg-shift = <2>;
423 reg-io-width = <4>;
424 pinctrl-names = "default";
425 pinctrl-0 = <&uart3m1_xfer &uart3m1_cts &uart3m1_rts>;
426 status = "disabled";
427 };
428
429 uart4: serial@ff170000 {
430 compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
431 reg = <0x0 0xff170000 0x0 0x100>;
432 interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
433 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
434 clock-names = "baudclk", "apb_pclk";
435 dmas = <&dmac 8>, <&dmac 9>;
436 dma-names = "tx", "rx";
437 reg-shift = <2>;
438 reg-io-width = <4>;
439 pinctrl-names = "default";
440 pinctrl-0 = <&uart4_xfer &uart4_cts &uart4_rts>;
441 status = "disabled";
442 };
443
444 uart5: serial@ff178000 {
445 compatible = "rockchip,px30-uart", "snps,dw-apb-uart";
446 reg = <0x0 0xff178000 0x0 0x100>;
447 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
448 clocks = <&cru SCLK_UART5>, <&cru PCLK_UART5>;
449 clock-names = "baudclk", "apb_pclk";
450 dmas = <&dmac 10>, <&dmac 11>;
451 dma-names = "tx", "rx";
452 reg-shift = <2>;
453 reg-io-width = <4>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&uart5_xfer &uart5_cts &uart5_rts>;
456 status = "disabled";
457 };
458
459 i2c0: i2c@ff180000 {
460 compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
461 reg = <0x0 0xff180000 0x0 0x1000>;
462 clocks = <&cru SCLK_I2C0>, <&cru PCLK_I2C0>;
463 clock-names = "i2c", "pclk";
464 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
465 pinctrl-names = "default";
466 pinctrl-0 = <&i2c0_xfer>;
467 #address-cells = <1>;
468 #size-cells = <0>;
469 status = "disabled";
470 };
471
472 i2c1: i2c@ff190000 {
473 compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
474 reg = <0x0 0xff190000 0x0 0x1000>;
475 clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
476 clock-names = "i2c", "pclk";
477 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
478 pinctrl-names = "default";
479 pinctrl-0 = <&i2c1_xfer>;
480 #address-cells = <1>;
481 #size-cells = <0>;
482 status = "disabled";
483 };
484
485 i2c2: i2c@ff1a0000 {
486 compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
487 reg = <0x0 0xff1a0000 0x0 0x1000>;
488 clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
489 clock-names = "i2c", "pclk";
490 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
491 pinctrl-names = "default";
492 pinctrl-0 = <&i2c2_xfer>;
493 #address-cells = <1>;
494 #size-cells = <0>;
495 status = "disabled";
496 };
497
498 i2c3: i2c@ff1b0000 {
499 compatible = "rockchip,px30-i2c", "rockchip,rk3399-i2c";
500 reg = <0x0 0xff1b0000 0x0 0x1000>;
501 clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
502 clock-names = "i2c", "pclk";
503 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
504 pinctrl-names = "default";
505 pinctrl-0 = <&i2c3_xfer>;
506 #address-cells = <1>;
507 #size-cells = <0>;
508 status = "disabled";
509 };
510
511 spi0: spi@ff1d0000 {
512 compatible = "rockchip,px30-spi", "rockchip,rk3066-spi";
513 reg = <0x0 0xff1d0000 0x0 0x1000>;
514 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
515 clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
516 clock-names = "spiclk", "apb_pclk";
517 dmas = <&dmac 12>, <&dmac 13>;
518 dma-names = "tx", "rx";
519 pinctrl-names = "default";
520 pinctrl-0 = <&spi0_clk &spi0_csn &spi0_miso &spi0_mosi>;
521 #address-cells = <1>;
522 #size-cells = <0>;
523 status = "disabled";
524 };
525
526 spi1: spi@ff1d8000 {
527 compatible = "rockchip,px30-spi", "rockchip,rk3066-spi";
528 reg = <0x0 0xff1d8000 0x0 0x1000>;
529 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
530 clocks = <&cru SCLK_SPI1>, <&cru PCLK_SPI1>;
531 clock-names = "spiclk", "apb_pclk";
532 dmas = <&dmac 14>, <&dmac 15>;
533 dma-names = "tx", "rx";
534 pinctrl-names = "default";
535 pinctrl-0 = <&spi1_clk &spi1_csn0 &spi1_csn1 &spi1_miso &spi1_mosi>;
536 #address-cells = <1>;
537 #size-cells = <0>;
538 status = "disabled";
539 };
540
541 wdt: watchdog@ff1e0000 {
542 compatible = "snps,dw-wdt";
543 reg = <0x0 0xff1e0000 0x0 0x100>;
544 clocks = <&cru PCLK_WDT_NS>;
545 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
546 status = "disabled";
547 };
548
549 pwm0: pwm@ff200000 {
550 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
551 reg = <0x0 0xff200000 0x0 0x10>;
552 clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
553 clock-names = "pwm", "pclk";
554 pinctrl-names = "default";
555 pinctrl-0 = <&pwm0_pin>;
556 #pwm-cells = <3>;
557 status = "disabled";
558 };
559
560 pwm1: pwm@ff200010 {
561 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
562 reg = <0x0 0xff200010 0x0 0x10>;
563 clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
564 clock-names = "pwm", "pclk";
565 pinctrl-names = "default";
566 pinctrl-0 = <&pwm1_pin>;
567 #pwm-cells = <3>;
568 status = "disabled";
569 };
570
571 pwm2: pwm@ff200020 {
572 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
573 reg = <0x0 0xff200020 0x0 0x10>;
574 clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
575 clock-names = "pwm", "pclk";
576 pinctrl-names = "default";
577 pinctrl-0 = <&pwm2_pin>;
578 #pwm-cells = <3>;
579 status = "disabled";
580 };
581
582 pwm3: pwm@ff200030 {
583 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
584 reg = <0x0 0xff200030 0x0 0x10>;
585 clocks = <&cru SCLK_PWM0>, <&cru PCLK_PWM0>;
586 clock-names = "pwm", "pclk";
587 pinctrl-names = "default";
588 pinctrl-0 = <&pwm3_pin>;
589 #pwm-cells = <3>;
590 status = "disabled";
591 };
592
593 pwm4: pwm@ff208000 {
594 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
595 reg = <0x0 0xff208000 0x0 0x10>;
596 clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
597 clock-names = "pwm", "pclk";
598 pinctrl-names = "default";
599 pinctrl-0 = <&pwm4_pin>;
600 #pwm-cells = <3>;
601 status = "disabled";
602 };
603
604 pwm5: pwm@ff208010 {
605 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
606 reg = <0x0 0xff208010 0x0 0x10>;
607 clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
608 clock-names = "pwm", "pclk";
609 pinctrl-names = "default";
610 pinctrl-0 = <&pwm5_pin>;
611 #pwm-cells = <3>;
612 status = "disabled";
613 };
614
615 pwm6: pwm@ff208020 {
616 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
617 reg = <0x0 0xff208020 0x0 0x10>;
618 clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
619 clock-names = "pwm", "pclk";
620 pinctrl-names = "default";
621 pinctrl-0 = <&pwm6_pin>;
622 #pwm-cells = <3>;
623 status = "disabled";
624 };
625
626 pwm7: pwm@ff208030 {
627 compatible = "rockchip,px30-pwm", "rockchip,rk3328-pwm";
628 reg = <0x0 0xff208030 0x0 0x10>;
629 clocks = <&cru SCLK_PWM1>, <&cru PCLK_PWM1>;
630 clock-names = "pwm", "pclk";
631 pinctrl-names = "default";
632 pinctrl-0 = <&pwm7_pin>;
633 #pwm-cells = <3>;
634 status = "disabled";
635 };
636
637 rktimer: timer@ff210000 {
638 compatible = "rockchip,px30-timer", "rockchip,rk3288-timer";
639 reg = <0x0 0xff210000 0x0 0x1000>;
640 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
641 clocks = <&cru PCLK_TIMER>, <&cru SCLK_TIMER0>;
642 clock-names = "pclk", "timer";
643 };
644
645 amba {
646 compatible = "simple-bus";
647 #address-cells = <2>;
648 #size-cells = <2>;
649 ranges;
650
651 dmac: dmac@ff240000 {
652 compatible = "arm,pl330", "arm,primecell";
653 reg = <0x0 0xff240000 0x0 0x4000>;
654 interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
655 <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
656 clocks = <&cru ACLK_DMAC>;
657 clock-names = "apb_pclk";
658 #dma-cells = <1>;
659 };
660 };
661
662 saradc: saradc@ff288000 {
663 compatible = "rockchip,px30-saradc", "rockchip,rk3399-saradc";
664 reg = <0x0 0xff288000 0x0 0x100>;
665 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
666 #io-channel-cells = <1>;
667 clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
668 clock-names = "saradc", "apb_pclk";
669 resets = <&cru SRST_SARADC_P>;
670 reset-names = "saradc-apb";
671 status = "disabled";
672 };
673
674 cru: clock-controller@ff2b0000 {
675 compatible = "rockchip,px30-cru";
676 reg = <0x0 0xff2b0000 0x0 0x1000>;
677 rockchip,grf = <&grf>;
678 #clock-cells = <1>;
679 #reset-cells = <1>;
680
681 assigned-clocks = <&cru PLL_NPLL>;
682 assigned-clock-rates = <1188000000>;
683 };
684
685 pmucru: clock-controller@ff2bc000 {
686 compatible = "rockchip,px30-pmucru";
687 reg = <0x0 0xff2bc000 0x0 0x1000>;
688 rockchip,grf = <&grf>;
689 #clock-cells = <1>;
690 #reset-cells = <1>;
691
692 assigned-clocks =
693 <&pmucru PLL_GPLL>, <&pmucru PCLK_PMU_PRE>,
694 <&pmucru SCLK_WIFI_PMU>, <&cru ARMCLK>,
695 <&cru ACLK_BUS_PRE>, <&cru ACLK_PERI_PRE>,
696 <&cru HCLK_BUS_PRE>, <&cru HCLK_PERI_PRE>,
697 <&cru PCLK_BUS_PRE>, <&cru SCLK_GPU>;
698 assigned-clock-rates =
699 <1200000000>, <100000000>,
700 <26000000>, <600000000>,
701 <200000000>, <200000000>,
702 <150000000>, <150000000>,
703 <100000000>, <200000000>;
704 };
705
706 usb20_otg: usb@ff300000 {
707 compatible = "rockchip,px30-usb", "rockchip,rk3066-usb",
708 "snps,dwc2";
709 reg = <0x0 0xff300000 0x0 0x40000>;
710 interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
711 clocks = <&cru HCLK_OTG>;
712 clock-names = "otg";
713 dr_mode = "otg";
714 g-np-tx-fifo-size = <16>;
715 g-rx-fifo-size = <280>;
716 g-tx-fifo-size = <256 128 128 64 32 16>;
717 g-use-dma;
718 power-domains = <&power PX30_PD_USB>;
719 status = "disabled";
720 };
721
722 usb_host0_ehci: usb@ff340000 {
723 compatible = "generic-ehci";
724 reg = <0x0 0xff340000 0x0 0x10000>;
725 interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
726 clocks = <&cru HCLK_HOST>;
727 clock-names = "usbhost";
728 power-domains = <&power PX30_PD_USB>;
729 status = "disabled";
730 };
731
732 usb_host0_ohci: usb@ff350000 {
733 compatible = "generic-ohci";
734 reg = <0x0 0xff350000 0x0 0x10000>;
735 interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
736 clocks = <&cru HCLK_HOST>;
737 clock-names = "usbhost";
738 power-domains = <&power PX30_PD_USB>;
739 status = "disabled";
740 };
741
742 gmac: ethernet@ff360000 {
743 compatible = "rockchip,px30-gmac";
744 reg = <0x0 0xff360000 0x0 0x10000>;
745 interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
746 interrupt-names = "macirq";
747 clocks = <&cru SCLK_GMAC>, <&cru SCLK_GMAC_RX_TX>,
748 <&cru SCLK_GMAC_RX_TX>, <&cru SCLK_MAC_REF>,
749 <&cru SCLK_MAC_REFOUT>, <&cru ACLK_GMAC>,
750 <&cru PCLK_GMAC>, <&cru SCLK_GMAC_RMII>;
751 clock-names = "stmmaceth", "mac_clk_rx",
752 "mac_clk_tx", "clk_mac_ref",
753 "clk_mac_refout", "aclk_mac",
754 "pclk_mac", "clk_mac_speed";
755 rockchip,grf = <&grf>;
756 phy-mode = "rmii";
757 pinctrl-names = "default";
758 pinctrl-0 = <&rmii_pins &mac_refclk_12ma>;
759 power-domains = <&power PX30_PD_GMAC>;
760 resets = <&cru SRST_GMAC_A>;
761 reset-names = "stmmaceth";
762 status = "disabled";
763 };
764
765 sdmmc: dwmmc@ff370000 {
766 compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
767 reg = <0x0 0xff370000 0x0 0x4000>;
768 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
769 clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
770 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
771 clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
772 fifo-depth = <0x100>;
773 max-frequency = <150000000>;
774 pinctrl-names = "default";
775 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_det &sdmmc_bus4>;
776 power-domains = <&power PX30_PD_SDCARD>;
777 status = "disabled";
778 };
779
780 sdio: dwmmc@ff380000 {
781 compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
782 reg = <0x0 0xff380000 0x0 0x4000>;
783 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
784 clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
785 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
786 clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
787 fifo-depth = <0x100>;
788 max-frequency = <150000000>;
789 pinctrl-names = "default";
790 pinctrl-0 = <&sdio_bus4 &sdio_cmd &sdio_clk>;
791 power-domains = <&power PX30_PD_MMC_NAND>;
792 status = "disabled";
793 };
794
795 emmc: dwmmc@ff390000 {
796 compatible = "rockchip,px30-dw-mshc", "rockchip,rk3288-dw-mshc";
797 reg = <0x0 0xff390000 0x0 0x4000>;
798 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
799 clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
800 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
801 clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
802 fifo-depth = <0x100>;
803 max-frequency = <150000000>;
804 power-domains = <&power PX30_PD_MMC_NAND>;
805 status = "disabled";
806 };
807
808 vopb: vop@ff460000 {
809 compatible = "rockchip,px30-vop-big";
810 reg = <0x0 0xff460000 0x0 0xefc>;
811 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
812 clocks = <&cru ACLK_VOPB>, <&cru DCLK_VOPB>,
813 <&cru HCLK_VOPB>;
814 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
815 resets = <&cru SRST_VOPB_A>, <&cru SRST_VOPB_H>, <&cru SRST_VOPB>;
816 reset-names = "axi", "ahb", "dclk";
817 iommus = <&vopb_mmu>;
818 power-domains = <&power PX30_PD_VO>;
819 rockchip,grf = <&grf>;
820 status = "disabled";
821
822 vopb_out: port {
823 #address-cells = <1>;
824 #size-cells = <0>;
825 };
826 };
827
828 vopb_mmu: iommu@ff460f00 {
829 compatible = "rockchip,iommu";
830 reg = <0x0 0xff460f00 0x0 0x100>;
831 interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
832 interrupt-names = "vopb_mmu";
833 clocks = <&cru ACLK_VOPB>, <&cru HCLK_VOPB>;
834 clock-names = "aclk", "hclk";
835 power-domains = <&power PX30_PD_VO>;
836 #iommu-cells = <0>;
837 status = "disabled";
838 };
839
840 vopl: vop@ff470000 {
841 compatible = "rockchip,px30-vop-lit";
842 reg = <0x0 0xff470000 0x0 0xefc>;
843 interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
844 clocks = <&cru ACLK_VOPL>, <&cru DCLK_VOPL>,
845 <&cru HCLK_VOPL>;
846 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
847 resets = <&cru SRST_VOPL_A>, <&cru SRST_VOPL_H>, <&cru SRST_VOPL>;
848 reset-names = "axi", "ahb", "dclk";
849 iommus = <&vopl_mmu>;
850 power-domains = <&power PX30_PD_VO>;
851 rockchip,grf = <&grf>;
852 status = "disabled";
853
854 vopl_out: port {
855 #address-cells = <1>;
856 #size-cells = <0>;
857 };
858 };
859
860 vopl_mmu: iommu@ff470f00 {
861 compatible = "rockchip,iommu";
862 reg = <0x0 0xff470f00 0x0 0x100>;
863 interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
864 interrupt-names = "vopl_mmu";
865 clocks = <&cru ACLK_VOPL>, <&cru HCLK_VOPL>;
866 clock-names = "aclk", "hclk";
867 power-domains = <&power PX30_PD_VO>;
868 #iommu-cells = <0>;
869 status = "disabled";
870 };
871
872 qos_gmac: qos@ff518000 {
873 compatible = "syscon";
874 reg = <0x0 0xff518000 0x0 0x20>;
875 };
876
877 qos_gpu: qos@ff520000 {
878 compatible = "syscon";
879 reg = <0x0 0xff520000 0x0 0x20>;
880 };
881
882 qos_sdmmc: qos@ff52c000 {
883 compatible = "syscon";
884 reg = <0x0 0xff52c000 0x0 0x20>;
885 };
886
887 qos_emmc: qos@ff538000 {
888 compatible = "syscon";
889 reg = <0x0 0xff538000 0x0 0x20>;
890 };
891
892 qos_nand: qos@ff538080 {
893 compatible = "syscon";
894 reg = <0x0 0xff538080 0x0 0x20>;
895 };
896
897 qos_sdio: qos@ff538100 {
898 compatible = "syscon";
899 reg = <0x0 0xff538100 0x0 0x20>;
900 };
901
902 qos_sfc: qos@ff538180 {
903 compatible = "syscon";
904 reg = <0x0 0xff538180 0x0 0x20>;
905 };
906
907 qos_usb_host: qos@ff540000 {
908 compatible = "syscon";
909 reg = <0x0 0xff540000 0x0 0x20>;
910 };
911
912 qos_usb_otg: qos@ff540080 {
913 compatible = "syscon";
914 reg = <0x0 0xff540080 0x0 0x20>;
915 };
916
917 qos_isp_128: qos@ff548000 {
918 compatible = "syscon";
919 reg = <0x0 0xff548000 0x0 0x20>;
920 };
921
922 qos_isp_rd: qos@ff548080 {
923 compatible = "syscon";
924 reg = <0x0 0xff548080 0x0 0x20>;
925 };
926
927 qos_isp_wr: qos@ff548100 {
928 compatible = "syscon";
929 reg = <0x0 0xff548100 0x0 0x20>;
930 };
931
932 qos_isp_m1: qos@ff548180 {
933 compatible = "syscon";
934 reg = <0x0 0xff548180 0x0 0x20>;
935 };
936
937 qos_vip: qos@ff548200 {
938 compatible = "syscon";
939 reg = <0x0 0xff548200 0x0 0x20>;
940 };
941
942 qos_rga_rd: qos@ff550000 {
943 compatible = "syscon";
944 reg = <0x0 0xff550000 0x0 0x20>;
945 };
946
947 qos_rga_wr: qos@ff550080 {
948 compatible = "syscon";
949 reg = <0x0 0xff550080 0x0 0x20>;
950 };
951
952 qos_vop_m0: qos@ff550100 {
953 compatible = "syscon";
954 reg = <0x0 0xff550100 0x0 0x20>;
955 };
956
957 qos_vop_m1: qos@ff550180 {
958 compatible = "syscon";
959 reg = <0x0 0xff550180 0x0 0x20>;
960 };
961
962 qos_vpu: qos@ff558000 {
963 compatible = "syscon";
964 reg = <0x0 0xff558000 0x0 0x20>;
965 };
966
967 qos_vpu_r128: qos@ff558080 {
968 compatible = "syscon";
969 reg = <0x0 0xff558080 0x0 0x20>;
970 };
971
972 pinctrl: pinctrl {
973 compatible = "rockchip,px30-pinctrl";
974 rockchip,grf = <&grf>;
975 rockchip,pmu = <&pmugrf>;
976 #address-cells = <2>;
977 #size-cells = <2>;
978 ranges;
979
980 gpio0: gpio0@ff040000 {
981 compatible = "rockchip,gpio-bank";
982 reg = <0x0 0xff040000 0x0 0x100>;
983 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
984 clocks = <&pmucru PCLK_GPIO0_PMU>;
985 gpio-controller;
986 #gpio-cells = <2>;
987
988 interrupt-controller;
989 #interrupt-cells = <2>;
990 };
991
992 gpio1: gpio1@ff250000 {
993 compatible = "rockchip,gpio-bank";
994 reg = <0x0 0xff250000 0x0 0x100>;
995 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
996 clocks = <&cru PCLK_GPIO1>;
997 gpio-controller;
998 #gpio-cells = <2>;
999
1000 interrupt-controller;
1001 #interrupt-cells = <2>;
1002 };
1003
1004 gpio2: gpio2@ff260000 {
1005 compatible = "rockchip,gpio-bank";
1006 reg = <0x0 0xff260000 0x0 0x100>;
1007 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1008 clocks = <&cru PCLK_GPIO2>;
1009 gpio-controller;
1010 #gpio-cells = <2>;
1011
1012 interrupt-controller;
1013 #interrupt-cells = <2>;
1014 };
1015
1016 gpio3: gpio3@ff270000 {
1017 compatible = "rockchip,gpio-bank";
1018 reg = <0x0 0xff270000 0x0 0x100>;
1019 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1020 clocks = <&cru PCLK_GPIO3>;
1021 gpio-controller;
1022 #gpio-cells = <2>;
1023
1024 interrupt-controller;
1025 #interrupt-cells = <2>;
1026 };
1027
1028 pcfg_pull_up: pcfg-pull-up {
1029 bias-pull-up;
1030 };
1031
1032 pcfg_pull_down: pcfg-pull-down {
1033 bias-pull-down;
1034 };
1035
1036 pcfg_pull_none: pcfg-pull-none {
1037 bias-disable;
1038 };
1039
1040 pcfg_pull_none_2ma: pcfg-pull-none-2ma {
1041 bias-disable;
1042 drive-strength = <2>;
1043 };
1044
1045 pcfg_pull_up_2ma: pcfg-pull-up-2ma {
1046 bias-pull-up;
1047 drive-strength = <2>;
1048 };
1049
1050 pcfg_pull_up_4ma: pcfg-pull-up-4ma {
1051 bias-pull-up;
1052 drive-strength = <4>;
1053 };
1054
1055 pcfg_pull_none_4ma: pcfg-pull-none-4ma {
1056 bias-disable;
1057 drive-strength = <4>;
1058 };
1059
1060 pcfg_pull_down_4ma: pcfg-pull-down-4ma {
1061 bias-pull-down;
1062 drive-strength = <4>;
1063 };
1064
1065 pcfg_pull_none_8ma: pcfg-pull-none-8ma {
1066 bias-disable;
1067 drive-strength = <8>;
1068 };
1069
1070 pcfg_pull_up_8ma: pcfg-pull-up-8ma {
1071 bias-pull-up;
1072 drive-strength = <8>;
1073 };
1074
1075 pcfg_pull_none_12ma: pcfg-pull-none-12ma {
1076 bias-disable;
1077 drive-strength = <12>;
1078 };
1079
1080 pcfg_pull_up_12ma: pcfg-pull-up-12ma {
1081 bias-pull-up;
1082 drive-strength = <12>;
1083 };
1084
1085 pcfg_pull_none_smt: pcfg-pull-none-smt {
1086 bias-disable;
1087 input-schmitt-enable;
1088 };
1089
1090 pcfg_output_high: pcfg-output-high {
1091 output-high;
1092 };
1093
1094 pcfg_output_low: pcfg-output-low {
1095 output-low;
1096 };
1097
1098 pcfg_input_high: pcfg-input-high {
1099 bias-pull-up;
1100 input-enable;
1101 };
1102
1103 pcfg_input: pcfg-input {
1104 input-enable;
1105 };
1106
1107 i2c0 {
1108 i2c0_xfer: i2c0-xfer {
1109 rockchip,pins =
1110 <0 RK_PB0 1 &pcfg_pull_none_smt>,
1111 <0 RK_PB1 1 &pcfg_pull_none_smt>;
1112 };
1113 };
1114
1115 i2c1 {
1116 i2c1_xfer: i2c1-xfer {
1117 rockchip,pins =
1118 <0 RK_PC2 1 &pcfg_pull_none_smt>,
1119 <0 RK_PC3 1 &pcfg_pull_none_smt>;
1120 };
1121 };
1122
1123 i2c2 {
1124 i2c2_xfer: i2c2-xfer {
1125 rockchip,pins =
1126 <2 RK_PB7 2 &pcfg_pull_none_smt>,
1127 <2 RK_PC0 2 &pcfg_pull_none_smt>;
1128 };
1129 };
1130
1131 i2c3 {
1132 i2c3_xfer: i2c3-xfer {
1133 rockchip,pins =
1134 <1 RK_PB4 4 &pcfg_pull_none_smt>,
1135 <1 RK_PB5 4 &pcfg_pull_none_smt>;
1136 };
1137 };
1138
1139 tsadc {
1140 tsadc_otp_gpio: tsadc-otp-gpio {
1141 rockchip,pins =
1142 <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
1143 };
1144
1145 tsadc_otp_out: tsadc-otp-out {
1146 rockchip,pins =
1147 <0 RK_PA6 1 &pcfg_pull_none>;
1148 };
1149 };
1150
1151 uart0 {
1152 uart0_xfer: uart0-xfer {
1153 rockchip,pins =
1154 <0 RK_PB2 1 &pcfg_pull_up>,
1155 <0 RK_PB3 1 &pcfg_pull_up>;
1156 };
1157
1158 uart0_cts: uart0-cts {
1159 rockchip,pins =
1160 <0 RK_PB4 1 &pcfg_pull_none>;
1161 };
1162
1163 uart0_rts: uart0-rts {
1164 rockchip,pins =
1165 <0 RK_PB5 1 &pcfg_pull_none>;
1166 };
1167
1168 uart0_rts_gpio: uart0-rts-gpio {
1169 rockchip,pins =
1170 <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
1171 };
1172 };
1173
1174 uart1 {
1175 uart1_xfer: uart1-xfer {
1176 rockchip,pins =
1177 <1 RK_PC1 1 &pcfg_pull_up>,
1178 <1 RK_PC0 1 &pcfg_pull_up>;
1179 };
1180
1181 uart1_cts: uart1-cts {
1182 rockchip,pins =
1183 <1 RK_PC2 1 &pcfg_pull_none>;
1184 };
1185
1186 uart1_rts: uart1-rts {
1187 rockchip,pins =
1188 <1 RK_PC3 1 &pcfg_pull_none>;
1189 };
1190
1191 uart1_rts_gpio: uart1-rts-gpio {
1192 rockchip,pins =
1193 <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
1194 };
1195 };
1196
1197 uart2-m0 {
1198 uart2m0_xfer: uart2m0-xfer {
1199 rockchip,pins =
1200 <1 RK_PD2 2 &pcfg_pull_up>,
1201 <1 RK_PD3 2 &pcfg_pull_up>;
1202 };
1203 };
1204
1205 uart2-m1 {
1206 uart2m1_xfer: uart2m1-xfer {
1207 rockchip,pins =
1208 <2 RK_PB4 2 &pcfg_pull_up>,
1209 <2 RK_PB6 2 &pcfg_pull_up>;
1210 };
1211 };
1212
1213 uart3-m0 {
1214 uart3m0_xfer: uart3m0-xfer {
1215 rockchip,pins =
1216 <0 RK_PC0 2 &pcfg_pull_up>,
1217 <0 RK_PC1 2 &pcfg_pull_up>;
1218 };
1219
1220 uart3m0_cts: uart3m0-cts {
1221 rockchip,pins =
1222 <0 RK_PC2 2 &pcfg_pull_none>;
1223 };
1224
1225 uart3m0_rts: uart3m0-rts {
1226 rockchip,pins =
1227 <0 RK_PC3 2 &pcfg_pull_none>;
1228 };
1229
1230 uart3m0_rts_gpio: uart3m0-rts-gpio {
1231 rockchip,pins =
1232 <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
1233 };
1234 };
1235
1236 uart3-m1 {
1237 uart3m1_xfer: uart3m1-xfer {
1238 rockchip,pins =
1239 <1 RK_PB6 2 &pcfg_pull_up>,
1240 <1 RK_PB7 2 &pcfg_pull_up>;
1241 };
1242
1243 uart3m1_cts: uart3m1-cts {
1244 rockchip,pins =
1245 <1 RK_PB4 2 &pcfg_pull_none>;
1246 };
1247
1248 uart3m1_rts: uart3m1-rts {
1249 rockchip,pins =
1250 <1 RK_PB5 2 &pcfg_pull_none>;
1251 };
1252
1253 uart3m1_rts_gpio: uart3m1-rts-gpio {
1254 rockchip,pins =
1255 <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
1256 };
1257 };
1258
1259 uart4 {
1260 uart4_xfer: uart4-xfer {
1261 rockchip,pins =
1262 <1 RK_PD4 2 &pcfg_pull_up>,
1263 <1 RK_PD5 2 &pcfg_pull_up>;
1264 };
1265
1266 uart4_cts: uart4-cts {
1267 rockchip,pins =
1268 <1 RK_PD6 2 &pcfg_pull_none>;
1269 };
1270
1271 uart4_rts: uart4-rts {
1272 rockchip,pins =
1273 <1 RK_PD7 2 &pcfg_pull_none>;
1274 };
1275 };
1276
1277 uart5 {
1278 uart5_xfer: uart5-xfer {
1279 rockchip,pins =
1280 <3 RK_PA2 4 &pcfg_pull_up>,
1281 <3 RK_PA1 4 &pcfg_pull_up>;
1282 };
1283
1284 uart5_cts: uart5-cts {
1285 rockchip,pins =
1286 <3 RK_PA3 4 &pcfg_pull_none>;
1287 };
1288
1289 uart5_rts: uart5-rts {
1290 rockchip,pins =
1291 <3 RK_PA5 4 &pcfg_pull_none>;
1292 };
1293 };
1294
1295 spi0 {
1296 spi0_clk: spi0-clk {
1297 rockchip,pins =
1298 <1 RK_PB7 3 &pcfg_pull_up_4ma>;
1299 };
1300
1301 spi0_csn: spi0-csn {
1302 rockchip,pins =
1303 <1 RK_PB6 3 &pcfg_pull_up_4ma>;
1304 };
1305
1306 spi0_miso: spi0-miso {
1307 rockchip,pins =
1308 <1 RK_PB5 3 &pcfg_pull_up_4ma>;
1309 };
1310
1311 spi0_mosi: spi0-mosi {
1312 rockchip,pins =
1313 <1 RK_PB4 3 &pcfg_pull_up_4ma>;
1314 };
1315
1316 spi0_clk_hs: spi0-clk-hs {
1317 rockchip,pins =
1318 <1 RK_PB7 3 &pcfg_pull_up_8ma>;
1319 };
1320
1321 spi0_miso_hs: spi0-miso-hs {
1322 rockchip,pins =
1323 <1 RK_PB5 3 &pcfg_pull_up_8ma>;
1324 };
1325
1326 spi0_mosi_hs: spi0-mosi-hs {
1327 rockchip,pins =
1328 <1 RK_PB4 3 &pcfg_pull_up_8ma>;
1329 };
1330 };
1331
1332 spi1 {
1333 spi1_clk: spi1-clk {
1334 rockchip,pins =
1335 <3 RK_PB7 4 &pcfg_pull_up_4ma>;
1336 };
1337
1338 spi1_csn0: spi1-csn0 {
1339 rockchip,pins =
1340 <3 RK_PB1 4 &pcfg_pull_up_4ma>;
1341 };
1342
1343 spi1_csn1: spi1-csn1 {
1344 rockchip,pins =
1345 <3 RK_PB2 2 &pcfg_pull_up_4ma>;
1346 };
1347
1348 spi1_miso: spi1-miso {
1349 rockchip,pins =
1350 <3 RK_PB6 4 &pcfg_pull_up_4ma>;
1351 };
1352
1353 spi1_mosi: spi1-mosi {
1354 rockchip,pins =
1355 <3 RK_PB4 4 &pcfg_pull_up_4ma>;
1356 };
1357
1358 spi1_clk_hs: spi1-clk-hs {
1359 rockchip,pins =
1360 <3 RK_PB7 4 &pcfg_pull_up_8ma>;
1361 };
1362
1363 spi1_miso_hs: spi1-miso-hs {
1364 rockchip,pins =
1365 <3 RK_PB6 4 &pcfg_pull_up_8ma>;
1366 };
1367
1368 spi1_mosi_hs: spi1-mosi-hs {
1369 rockchip,pins =
1370 <3 RK_PB4 4 &pcfg_pull_up_8ma>;
1371 };
1372 };
1373
1374 pdm {
1375 pdm_clk0m0: pdm-clk0m0 {
1376 rockchip,pins =
1377 <3 RK_PC6 2 &pcfg_pull_none>;
1378 };
1379
1380 pdm_clk0m1: pdm-clk0m1 {
1381 rockchip,pins =
1382 <2 RK_PC6 1 &pcfg_pull_none>;
1383 };
1384
1385 pdm_clk1: pdm-clk1 {
1386 rockchip,pins =
1387 <3 RK_PC7 2 &pcfg_pull_none>;
1388 };
1389
1390 pdm_sdi0m0: pdm-sdi0m0 {
1391 rockchip,pins =
1392 <3 RK_PD3 2 &pcfg_pull_none>;
1393 };
1394
1395 pdm_sdi0m1: pdm-sdi0m1 {
1396 rockchip,pins =
1397 <2 RK_PC5 2 &pcfg_pull_none>;
1398 };
1399
1400 pdm_sdi1: pdm-sdi1 {
1401 rockchip,pins =
1402 <3 RK_PD0 2 &pcfg_pull_none>;
1403 };
1404
1405 pdm_sdi2: pdm-sdi2 {
1406 rockchip,pins =
1407 <3 RK_PD1 2 &pcfg_pull_none>;
1408 };
1409
1410 pdm_sdi3: pdm-sdi3 {
1411 rockchip,pins =
1412 <3 RK_PD2 2 &pcfg_pull_none>;
1413 };
1414
1415 pdm_clk0m0_sleep: pdm-clk0m0-sleep {
1416 rockchip,pins =
1417 <3 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>;
1418 };
1419
1420 pdm_clk0m_sleep1: pdm-clk0m1-sleep {
1421 rockchip,pins =
1422 <2 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>;
1423 };
1424
1425 pdm_clk1_sleep: pdm-clk1-sleep {
1426 rockchip,pins =
1427 <3 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>;
1428 };
1429
1430 pdm_sdi0m0_sleep: pdm-sdi0m0-sleep {
1431 rockchip,pins =
1432 <3 RK_PD3 RK_FUNC_GPIO &pcfg_input_high>;
1433 };
1434
1435 pdm_sdi0m1_sleep: pdm-sdi0m1-sleep {
1436 rockchip,pins =
1437 <2 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>;
1438 };
1439
1440 pdm_sdi1_sleep: pdm-sdi1-sleep {
1441 rockchip,pins =
1442 <3 RK_PD0 RK_FUNC_GPIO &pcfg_input_high>;
1443 };
1444
1445 pdm_sdi2_sleep: pdm-sdi2-sleep {
1446 rockchip,pins =
1447 <3 RK_PD1 RK_FUNC_GPIO &pcfg_input_high>;
1448 };
1449
1450 pdm_sdi3_sleep: pdm-sdi3-sleep {
1451 rockchip,pins =
1452 <3 RK_PD2 RK_FUNC_GPIO &pcfg_input_high>;
1453 };
1454 };
1455
1456 i2s0 {
1457 i2s0_8ch_mclk: i2s0-8ch-mclk {
1458 rockchip,pins =
1459 <3 RK_PC1 2 &pcfg_pull_none>;
1460 };
1461
1462 i2s0_8ch_sclktx: i2s0-8ch-sclktx {
1463 rockchip,pins =
1464 <3 RK_PC3 2 &pcfg_pull_none>;
1465 };
1466
1467 i2s0_8ch_sclkrx: i2s0-8ch-sclkrx {
1468 rockchip,pins =
1469 <3 RK_PB4 2 &pcfg_pull_none>;
1470 };
1471
1472 i2s0_8ch_lrcktx: i2s0-8ch-lrcktx {
1473 rockchip,pins =
1474 <3 RK_PC2 2 &pcfg_pull_none>;
1475 };
1476
1477 i2s0_8ch_lrckrx: i2s0-8ch-lrckrx {
1478 rockchip,pins =
1479 <3 RK_PB5 2 &pcfg_pull_none>;
1480 };
1481
1482 i2s0_8ch_sdo0: i2s0-8ch-sdo0 {
1483 rockchip,pins =
1484 <3 RK_PC4 2 &pcfg_pull_none>;
1485 };
1486
1487 i2s0_8ch_sdo1: i2s0-8ch-sdo1 {
1488 rockchip,pins =
1489 <3 RK_PC0 2 &pcfg_pull_none>;
1490 };
1491
1492 i2s0_8ch_sdo2: i2s0-8ch-sdo2 {
1493 rockchip,pins =
1494 <3 RK_PB7 2 &pcfg_pull_none>;
1495 };
1496
1497 i2s0_8ch_sdo3: i2s0-8ch-sdo3 {
1498 rockchip,pins =
1499 <3 RK_PB6 2 &pcfg_pull_none>;
1500 };
1501
1502 i2s0_8ch_sdi0: i2s0-8ch-sdi0 {
1503 rockchip,pins =
1504 <3 RK_PC5 2 &pcfg_pull_none>;
1505 };
1506
1507 i2s0_8ch_sdi1: i2s0-8ch-sdi1 {
1508 rockchip,pins =
1509 <3 RK_PB3 2 &pcfg_pull_none>;
1510 };
1511
1512 i2s0_8ch_sdi2: i2s0-8ch-sdi2 {
1513 rockchip,pins =
1514 <3 RK_PB1 2 &pcfg_pull_none>;
1515 };
1516
1517 i2s0_8ch_sdi3: i2s0-8ch-sdi3 {
1518 rockchip,pins =
1519 <3 RK_PB0 2 &pcfg_pull_none>;
1520 };
1521 };
1522
1523 i2s1 {
1524 i2s1_2ch_mclk: i2s1-2ch-mclk {
1525 rockchip,pins =
1526 <2 RK_PC3 1 &pcfg_pull_none>;
1527 };
1528
1529 i2s1_2ch_sclk: i2s1-2ch-sclk {
1530 rockchip,pins =
1531 <2 RK_PC2 1 &pcfg_pull_none>;
1532 };
1533
1534 i2s1_2ch_lrck: i2s1-2ch-lrck {
1535 rockchip,pins =
1536 <2 RK_PC1 1 &pcfg_pull_none>;
1537 };
1538
1539 i2s1_2ch_sdi: i2s1-2ch-sdi {
1540 rockchip,pins =
1541 <2 RK_PC5 1 &pcfg_pull_none>;
1542 };
1543
1544 i2s1_2ch_sdo: i2s1-2ch-sdo {
1545 rockchip,pins =
1546 <2 RK_PC4 1 &pcfg_pull_none>;
1547 };
1548 };
1549
1550 i2s2 {
1551 i2s2_2ch_mclk: i2s2-2ch-mclk {
1552 rockchip,pins =
1553 <3 RK_PA1 2 &pcfg_pull_none>;
1554 };
1555
1556 i2s2_2ch_sclk: i2s2-2ch-sclk {
1557 rockchip,pins =
1558 <3 RK_PA2 2 &pcfg_pull_none>;
1559 };
1560
1561 i2s2_2ch_lrck: i2s2-2ch-lrck {
1562 rockchip,pins =
1563 <3 RK_PA3 2 &pcfg_pull_none>;
1564 };
1565
1566 i2s2_2ch_sdi: i2s2-2ch-sdi {
1567 rockchip,pins =
1568 <3 RK_PA5 2 &pcfg_pull_none>;
1569 };
1570
1571 i2s2_2ch_sdo: i2s2-2ch-sdo {
1572 rockchip,pins =
1573 <3 RK_PA7 2 &pcfg_pull_none>;
1574 };
1575 };
1576
1577 sdmmc {
1578 sdmmc_clk: sdmmc-clk {
1579 rockchip,pins =
1580 <1 RK_PD6 1 &pcfg_pull_none_8ma>;
1581 };
1582
1583 sdmmc_cmd: sdmmc-cmd {
1584 rockchip,pins =
1585 <1 RK_PD7 1 &pcfg_pull_up_8ma>;
1586 };
1587
1588 sdmmc_det: sdmmc-det {
1589 rockchip,pins =
1590 <0 RK_PA3 1 &pcfg_pull_up_8ma>;
1591 };
1592
1593 sdmmc_bus1: sdmmc-bus1 {
1594 rockchip,pins =
1595 <1 RK_PD2 1 &pcfg_pull_up_8ma>;
1596 };
1597
1598 sdmmc_bus4: sdmmc-bus4 {
1599 rockchip,pins =
1600 <1 RK_PD2 1 &pcfg_pull_up_8ma>,
1601 <1 RK_PD3 1 &pcfg_pull_up_8ma>,
1602 <1 RK_PD4 1 &pcfg_pull_up_8ma>,
1603 <1 RK_PD5 1 &pcfg_pull_up_8ma>;
1604 };
1605
1606 sdmmc_gpio: sdmmc-gpio {
1607 rockchip,pins =
1608 <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1609 <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1610 <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1611 <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1612 <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up_4ma>,
1613 <1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up_4ma>;
1614 };
1615 };
1616
1617 sdio {
1618 sdio_clk: sdio-clk {
1619 rockchip,pins =
1620 <1 RK_PC5 1 &pcfg_pull_none>;
1621 };
1622
1623 sdio_cmd: sdio-cmd {
1624 rockchip,pins =
1625 <1 RK_PC4 1 &pcfg_pull_up>;
1626 };
1627
1628 sdio_bus4: sdio-bus4 {
1629 rockchip,pins =
1630 <1 RK_PC6 1 &pcfg_pull_up>,
1631 <1 RK_PC7 1 &pcfg_pull_up>,
1632 <1 RK_PD0 1 &pcfg_pull_up>,
1633 <1 RK_PD1 1 &pcfg_pull_up>;
1634 };
1635
1636 sdio_gpio: sdio-gpio {
1637 rockchip,pins =
1638 <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>,
1639 <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
1640 <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>,
1641 <1 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
1642 <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>,
1643 <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
1644 };
1645 };
1646
1647 emmc {
1648 emmc_clk: emmc-clk {
1649 rockchip,pins =
1650 <1 RK_PB1 2 &pcfg_pull_none_8ma>;
1651 };
1652
1653 emmc_cmd: emmc-cmd {
1654 rockchip,pins =
1655 <1 RK_PB2 2 &pcfg_pull_up_8ma>;
1656 };
1657
1658 emmc_pwren: emmc-pwren {
1659 rockchip,pins =
1660 <1 RK_PB0 2 &pcfg_pull_none>;
1661 };
1662
1663 emmc_rstnout: emmc-rstnout {
1664 rockchip,pins =
1665 <1 RK_PB3 2 &pcfg_pull_none>;
1666 };
1667
1668 emmc_bus1: emmc-bus1 {
1669 rockchip,pins =
1670 <1 RK_PA0 2 &pcfg_pull_up_8ma>;
1671 };
1672
1673 emmc_bus4: emmc-bus4 {
1674 rockchip,pins =
1675 <1 RK_PA0 2 &pcfg_pull_up_8ma>,
1676 <1 RK_PA1 2 &pcfg_pull_up_8ma>,
1677 <1 RK_PA2 2 &pcfg_pull_up_8ma>,
1678 <1 RK_PA3 2 &pcfg_pull_up_8ma>;
1679 };
1680
1681 emmc_bus8: emmc-bus8 {
1682 rockchip,pins =
1683 <1 RK_PA0 2 &pcfg_pull_up_8ma>,
1684 <1 RK_PA1 2 &pcfg_pull_up_8ma>,
1685 <1 RK_PA2 2 &pcfg_pull_up_8ma>,
1686 <1 RK_PA3 2 &pcfg_pull_up_8ma>,
1687 <1 RK_PA4 2 &pcfg_pull_up_8ma>,
1688 <1 RK_PA5 2 &pcfg_pull_up_8ma>,
1689 <1 RK_PA6 2 &pcfg_pull_up_8ma>,
1690 <1 RK_PA7 2 &pcfg_pull_up_8ma>;
1691 };
1692 };
1693
1694 flash {
1695 flash_cs0: flash-cs0 {
1696 rockchip,pins =
1697 <1 RK_PB0 1 &pcfg_pull_none>;
1698 };
1699
1700 flash_rdy: flash-rdy {
1701 rockchip,pins =
1702 <1 RK_PB1 1 &pcfg_pull_none>;
1703 };
1704
1705 flash_dqs: flash-dqs {
1706 rockchip,pins =
1707 <1 RK_PB2 1 &pcfg_pull_none>;
1708 };
1709
1710 flash_ale: flash-ale {
1711 rockchip,pins =
1712 <1 RK_PB3 1 &pcfg_pull_none>;
1713 };
1714
1715 flash_cle: flash-cle {
1716 rockchip,pins =
1717 <1 RK_PB4 1 &pcfg_pull_none>;
1718 };
1719
1720 flash_wrn: flash-wrn {
1721 rockchip,pins =
1722 <1 RK_PB5 1 &pcfg_pull_none>;
1723 };
1724
1725 flash_csl: flash-csl {
1726 rockchip,pins =
1727 <1 RK_PB6 1 &pcfg_pull_none>;
1728 };
1729
1730 flash_rdn: flash-rdn {
1731 rockchip,pins =
1732 <1 RK_PB7 1 &pcfg_pull_none>;
1733 };
1734
1735 flash_bus8: flash-bus8 {
1736 rockchip,pins =
1737 <1 RK_PA0 1 &pcfg_pull_up_12ma>,
1738 <1 RK_PA1 1 &pcfg_pull_up_12ma>,
1739 <1 RK_PA2 1 &pcfg_pull_up_12ma>,
1740 <1 RK_PA3 1 &pcfg_pull_up_12ma>,
1741 <1 RK_PA4 1 &pcfg_pull_up_12ma>,
1742 <1 RK_PA5 1 &pcfg_pull_up_12ma>,
1743 <1 RK_PA6 1 &pcfg_pull_up_12ma>,
1744 <1 RK_PA7 1 &pcfg_pull_up_12ma>;
1745 };
1746 };
1747
1748 lcdc {
1749 lcdc_rgb_dclk_pin: lcdc-rgb-dclk-pin {
1750 rockchip,pins =
1751 <3 RK_PA0 1 &pcfg_pull_none_12ma>;
1752 };
1753
1754 lcdc_rgb_m0_hsync_pin: lcdc-rgb-m0-hsync-pin {
1755 rockchip,pins =
1756 <3 RK_PA1 1 &pcfg_pull_none_12ma>;
1757 };
1758
1759 lcdc_rgb_m0_vsync_pin: lcdc-rgb-m0-vsync-pin {
1760 rockchip,pins =
1761 <3 RK_PA2 1 &pcfg_pull_none_12ma>;
1762 };
1763
1764 lcdc_rgb_m0_den_pin: lcdc-rgb-m0-den-pin {
1765 rockchip,pins =
1766 <3 RK_PA3 1 &pcfg_pull_none_12ma>;
1767 };
1768
1769 lcdc_rgb888_m0_data_pins: lcdc-rgb888-m0-data-pins {
1770 rockchip,pins =
1771 <3 RK_PA7 1 &pcfg_pull_none_8ma>, /* lcdc_d3 */
1772 <3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
1773 <3 RK_PA5 1 &pcfg_pull_none_8ma>, /* lcdc_d1 */
1774 <3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
1775 <3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
1776 <3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
1777 <3 RK_PB1 1 &pcfg_pull_none_8ma>, /* lcdc_d5 */
1778 <3 RK_PB0 1 &pcfg_pull_none_8ma>, /* lcdc_d4 */
1779 <3 RK_PB7 1 &pcfg_pull_none_8ma>, /* lcdc_d11 */
1780 <3 RK_PB6 1 &pcfg_pull_none_8ma>, /* lcdc_d10 */
1781 <3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
1782 <3 RK_PB4 1 &pcfg_pull_none_8ma>, /* lcdc_d8 */
1783 <3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
1784 <3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
1785 <3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
1786 <3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
1787 <3 RK_PC7 1 &pcfg_pull_none_8ma>, /* lcdc_d19 */
1788 <3 RK_PC6 1 &pcfg_pull_none_8ma>, /* lcdc_d18 */
1789 <3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
1790 <3 RK_PC4 1 &pcfg_pull_none_8ma>, /* lcdc_d16 */
1791 <3 RK_PD3 1 &pcfg_pull_none_8ma>, /* lcdc_d23 */
1792 <3 RK_PD2 1 &pcfg_pull_none_8ma>, /* lcdc_d22 */
1793 <3 RK_PD1 1 &pcfg_pull_none_8ma>, /* lcdc_d21 */
1794 <3 RK_PD0 1 &pcfg_pull_none_8ma>; /* lcdc_d20 */
1795 };
1796
1797 lcdc_rgb666_m0_data_pins: lcdc-rgb666-m0-data-pins {
1798 rockchip,pins =
1799 <3 RK_PA7 1 &pcfg_pull_none_8ma>, /* lcdc_d3 */
1800 <3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
1801 <3 RK_PA5 1 &pcfg_pull_none_8ma>, /* lcdc_d1 */
1802 <3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
1803 <3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
1804 <3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
1805 <3 RK_PB1 1 &pcfg_pull_none_8ma>, /* lcdc_d5 */
1806 <3 RK_PB0 1 &pcfg_pull_none_8ma>, /* lcdc_d4 */
1807 <3 RK_PB7 1 &pcfg_pull_none_8ma>, /* lcdc_d11 */
1808 <3 RK_PB6 1 &pcfg_pull_none_8ma>, /* lcdc_d10 */
1809 <3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
1810 <3 RK_PB4 1 &pcfg_pull_none_8ma>, /* lcdc_d8 */
1811 <3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
1812 <3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
1813 <3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
1814 <3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
1815 <3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
1816 <3 RK_PC4 1 &pcfg_pull_none_8ma>; /* lcdc_d16 */
1817 };
1818
1819 lcdc_rgb565_m0_data_pins: lcdc-rgb565-m0-data-pins {
1820 rockchip,pins =
1821 <3 RK_PA7 1 &pcfg_pull_none_8ma>, /* lcdc_d3 */
1822 <3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
1823 <3 RK_PA5 1 &pcfg_pull_none_8ma>, /* lcdc_d1 */
1824 <3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
1825 <3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
1826 <3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
1827 <3 RK_PB1 1 &pcfg_pull_none_8ma>, /* lcdc_d5 */
1828 <3 RK_PB0 1 &pcfg_pull_none_8ma>, /* lcdc_d4 */
1829 <3 RK_PB7 1 &pcfg_pull_none_8ma>, /* lcdc_d11 */
1830 <3 RK_PB6 1 &pcfg_pull_none_8ma>, /* lcdc_d10 */
1831 <3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
1832 <3 RK_PB4 1 &pcfg_pull_none_8ma>, /* lcdc_d8 */
1833 <3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
1834 <3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
1835 <3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
1836 <3 RK_PC0 1 &pcfg_pull_none_8ma>; /* lcdc_d12 */
1837 };
1838
1839 lcdc_rgb888_m1_data_pins: lcdc-rgb888-m1-data-pins {
1840 rockchip,pins =
1841 <3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
1842 <3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
1843 <3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
1844 <3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
1845 <3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
1846 <3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
1847 <3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
1848 <3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
1849 <3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
1850 <3 RK_PC7 1 &pcfg_pull_none_8ma>, /* lcdc_d19 */
1851 <3 RK_PC6 1 &pcfg_pull_none_8ma>, /* lcdc_d18 */
1852 <3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
1853 <3 RK_PC4 1 &pcfg_pull_none_8ma>, /* lcdc_d16 */
1854 <3 RK_PD3 1 &pcfg_pull_none_8ma>, /* lcdc_d23 */
1855 <3 RK_PD2 1 &pcfg_pull_none_8ma>, /* lcdc_d22 */
1856 <3 RK_PD1 1 &pcfg_pull_none_8ma>, /* lcdc_d21 */
1857 <3 RK_PD0 1 &pcfg_pull_none_8ma>; /* lcdc_d20 */
1858 };
1859
1860 lcdc_rgb666_m1_data_pins: lcdc-rgb666-m1-data-pins {
1861 rockchip,pins =
1862 <3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
1863 <3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
1864 <3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
1865 <3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
1866 <3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
1867 <3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
1868 <3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
1869 <3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
1870 <3 RK_PC0 1 &pcfg_pull_none_8ma>, /* lcdc_d12 */
1871 <3 RK_PC5 1 &pcfg_pull_none_8ma>, /* lcdc_d17 */
1872 <3 RK_PC4 1 &pcfg_pull_none_8ma>; /* lcdc_d16 */
1873 };
1874
1875 lcdc_rgb565_m1_data_pins: lcdc-rgb565-m1-data-pins {
1876 rockchip,pins =
1877 <3 RK_PA6 1 &pcfg_pull_none_8ma>, /* lcdc_d2 */
1878 <3 RK_PA4 1 &pcfg_pull_none_8ma>, /* lcdc_d0 */
1879 <3 RK_PB3 1 &pcfg_pull_none_8ma>, /* lcdc_d7 */
1880 <3 RK_PB2 1 &pcfg_pull_none_8ma>, /* lcdc_d6 */
1881 <3 RK_PB5 1 &pcfg_pull_none_8ma>, /* lcdc_d9 */
1882 <3 RK_PC3 1 &pcfg_pull_none_8ma>, /* lcdc_d15 */
1883 <3 RK_PC2 1 &pcfg_pull_none_8ma>, /* lcdc_d14 */
1884 <3 RK_PC1 1 &pcfg_pull_none_8ma>, /* lcdc_d13 */
1885 <3 RK_PC0 1 &pcfg_pull_none_8ma>; /* lcdc_d12 */
1886 };
1887 };
1888
1889 pwm0 {
1890 pwm0_pin: pwm0-pin {
1891 rockchip,pins =
1892 <0 RK_PB7 1 &pcfg_pull_none>;
1893 };
1894 };
1895
1896 pwm1 {
1897 pwm1_pin: pwm1-pin {
1898 rockchip,pins =
1899 <0 RK_PC0 1 &pcfg_pull_none>;
1900 };
1901 };
1902
1903 pwm2 {
1904 pwm2_pin: pwm2-pin {
1905 rockchip,pins =
1906 <2 RK_PB5 1 &pcfg_pull_none>;
1907 };
1908 };
1909
1910 pwm3 {
1911 pwm3_pin: pwm3-pin {
1912 rockchip,pins =
1913 <0 RK_PC1 1 &pcfg_pull_none>;
1914 };
1915 };
1916
1917 pwm4 {
1918 pwm4_pin: pwm4-pin {
1919 rockchip,pins =
1920 <3 RK_PC2 3 &pcfg_pull_none>;
1921 };
1922 };
1923
1924 pwm5 {
1925 pwm5_pin: pwm5-pin {
1926 rockchip,pins =
1927 <3 RK_PC3 3 &pcfg_pull_none>;
1928 };
1929 };
1930
1931 pwm6 {
1932 pwm6_pin: pwm6-pin {
1933 rockchip,pins =
1934 <3 RK_PC4 3 &pcfg_pull_none>;
1935 };
1936 };
1937
1938 pwm7 {
1939 pwm7_pin: pwm7-pin {
1940 rockchip,pins =
1941 <3 RK_PC5 3 &pcfg_pull_none>;
1942 };
1943 };
1944
1945 gmac {
1946 rmii_pins: rmii-pins {
1947 rockchip,pins =
1948 <2 RK_PA0 2 &pcfg_pull_none_12ma>, /* mac_txen */
1949 <2 RK_PA1 2 &pcfg_pull_none_12ma>, /* mac_txd1 */
1950 <2 RK_PA2 2 &pcfg_pull_none_12ma>, /* mac_txd0 */
1951 <2 RK_PA3 2 &pcfg_pull_none>, /* mac_rxd0 */
1952 <2 RK_PA4 2 &pcfg_pull_none>, /* mac_rxd1 */
1953 <2 RK_PA5 2 &pcfg_pull_none>, /* mac_rxer */
1954 <2 RK_PA6 2 &pcfg_pull_none>, /* mac_rxdv */
1955 <2 RK_PA7 2 &pcfg_pull_none>, /* mac_mdio */
1956 <2 RK_PB1 2 &pcfg_pull_none>; /* mac_mdc */
1957 };
1958
1959 mac_refclk_12ma: mac-refclk-12ma {
1960 rockchip,pins =
1961 <2 RK_PB2 2 &pcfg_pull_none_12ma>;
1962 };
1963
1964 mac_refclk: mac-refclk {
1965 rockchip,pins =
1966 <2 RK_PB2 2 &pcfg_pull_none>;
1967 };
1968 };
1969
1970 cif-m0 {
1971 cif_clkout_m0: cif-clkout-m0 {
1972 rockchip,pins =
1973 <2 RK_PB3 1 &pcfg_pull_none>;
1974 };
1975
1976 dvp_d2d9_m0: dvp-d2d9-m0 {
1977 rockchip,pins =
1978 <2 RK_PA0 1 &pcfg_pull_none>, /* cif_data2 */
1979 <2 RK_PA1 1 &pcfg_pull_none>, /* cif_data3 */
1980 <2 RK_PA2 1 &pcfg_pull_none>, /* cif_data4 */
1981 <2 RK_PA3 1 &pcfg_pull_none>, /* cif_data5 */
1982 <2 RK_PA4 1 &pcfg_pull_none>, /* cif_data6 */
1983 <2 RK_PA5 1 &pcfg_pull_none>, /* cif_data7 */
1984 <2 RK_PA6 1 &pcfg_pull_none>, /* cif_data8 */
1985 <2 RK_PA7 1 &pcfg_pull_none>, /* cif_data9 */
1986 <2 RK_PB0 1 &pcfg_pull_none>, /* cif_sync */
1987 <2 RK_PB1 1 &pcfg_pull_none>, /* cif_href */
1988 <2 RK_PB2 1 &pcfg_pull_none>, /* cif_clkin */
1989 <2 RK_PB3 1 &pcfg_pull_none>; /* cif_clkout */
1990 };
1991
1992 dvp_d0d1_m0: dvp-d0d1-m0 {
1993 rockchip,pins =
1994 <2 RK_PB4 1 &pcfg_pull_none>, /* cif_data0 */
1995 <2 RK_PB6 1 &pcfg_pull_none>; /* cif_data1 */
1996 };
1997
1998 dvp_d10d11_m0:d10-d11-m0 {
1999 rockchip,pins =
2000 <2 RK_PB7 1 &pcfg_pull_none>, /* cif_data10 */
2001 <2 RK_PC0 1 &pcfg_pull_none>; /* cif_data11 */
2002 };
2003 };
2004
2005 cif-m1 {
2006 cif_clkout_m1: cif-clkout-m1 {
2007 rockchip,pins =
2008 <3 RK_PD0 3 &pcfg_pull_none>;
2009 };
2010
2011 dvp_d2d9_m1: dvp-d2d9-m1 {
2012 rockchip,pins =
2013 <3 RK_PA3 3 &pcfg_pull_none>, /* cif_data2 */
2014 <3 RK_PA5 3 &pcfg_pull_none>, /* cif_data3 */
2015 <3 RK_PA7 3 &pcfg_pull_none>, /* cif_data4 */
2016 <3 RK_PB0 3 &pcfg_pull_none>, /* cif_data5 */
2017 <3 RK_PB1 3 &pcfg_pull_none>, /* cif_data6 */
2018 <3 RK_PB4 3 &pcfg_pull_none>, /* cif_data7 */
2019 <3 RK_PB6 3 &pcfg_pull_none>, /* cif_data8 */
2020 <3 RK_PB7 3 &pcfg_pull_none>, /* cif_data9 */
2021 <3 RK_PD1 3 &pcfg_pull_none>, /* cif_sync */
2022 <3 RK_PD2 3 &pcfg_pull_none>, /* cif_href */
2023 <3 RK_PD3 3 &pcfg_pull_none>, /* cif_clkin */
2024 <3 RK_PD0 3 &pcfg_pull_none>; /* cif_clkout */
2025 };
2026
2027 dvp_d0d1_m1: dvp-d0d1-m1 {
2028 rockchip,pins =
2029 <3 RK_PA1 3 &pcfg_pull_none>, /* cif_data0 */
2030 <3 RK_PA2 3 &pcfg_pull_none>; /* cif_data1 */
2031 };
2032
2033 dvp_d10d11_m1:d10-d11-m1 {
2034 rockchip,pins =
2035 <3 RK_PC6 3 &pcfg_pull_none>, /* cif_data10 */
2036 <3 RK_PC7 3 &pcfg_pull_none>; /* cif_data11 */
2037 };
2038 };
2039
2040 isp {
2041 isp_prelight: isp-prelight {
2042 rockchip,pins =
2043 <3 RK_PD1 4 &pcfg_pull_none>;
2044 };
2045 };
2046 };
2047};
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
index 246c317f6a68..99d0d9912950 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
@@ -41,6 +41,19 @@
41 vin-supply = <&vcc_io>; 41 vin-supply = <&vcc_io>;
42 }; 42 };
43 43
44 vcc_sdio: sdmmcio-regulator {
45 compatible = "regulator-gpio";
46 gpios = <&grf_gpio 0 GPIO_ACTIVE_HIGH>;
47 states = <1800000 0x1
48 3300000 0x0>;
49 regulator-name = "vcc_sdio";
50 regulator-type = "voltage";
51 regulator-min-microvolt = <1800000>;
52 regulator-max-microvolt = <3300000>;
53 regulator-always-on;
54 vin-supply = <&vcc_sys>;
55 };
56
44 vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator { 57 vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
45 compatible = "regulator-fixed"; 58 compatible = "regulator-fixed";
46 enable-active-high; 59 enable-active-high;
@@ -208,6 +221,18 @@
208 }; 221 };
209}; 222};
210 223
224&io_domains {
225 status = "okay";
226
227 vccio1-supply = <&vcc_io>;
228 vccio2-supply = <&vcc18_emmc>;
229 vccio3-supply = <&vcc_sdio>;
230 vccio4-supply = <&vcc_18>;
231 vccio5-supply = <&vcc_io>;
232 vccio6-supply = <&vcc_io>;
233 pmuio-supply = <&vcc_io>;
234};
235
211&pinctrl { 236&pinctrl {
212 pmic { 237 pmic {
213 pmic_int_l: pmic-int-l { 238 pmic_int_l: pmic-int-l {
@@ -230,7 +255,12 @@
230 max-frequency = <150000000>; 255 max-frequency = <150000000>;
231 pinctrl-names = "default"; 256 pinctrl-names = "default";
232 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>; 257 pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
258 sd-uhs-sdr12;
259 sd-uhs-sdr25;
260 sd-uhs-sdr50;
261 sd-uhs-sdr104;
233 vmmc-supply = <&vcc_sd>; 262 vmmc-supply = <&vcc_sd>;
263 vqmmc-supply = <&vcc_sdio>;
234 status = "okay"; 264 status = "okay";
235}; 265};
236 266
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
index 5272e887a434..dc20145dd393 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
@@ -46,7 +46,7 @@
46 vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator { 46 vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
47 compatible = "regulator-fixed"; 47 compatible = "regulator-fixed";
48 enable-active-high; 48 enable-active-high;
49 gpio = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>; 49 gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
50 pinctrl-names = "default"; 50 pinctrl-names = "default";
51 pinctrl-0 = <&usb20_host_drv>; 51 pinctrl-0 = <&usb20_host_drv>;
52 regulator-name = "vcc_host1_5v"; 52 regulator-name = "vcc_host1_5v";
@@ -62,6 +62,23 @@
62 regulator-min-microvolt = <5000000>; 62 regulator-min-microvolt = <5000000>;
63 regulator-max-microvolt = <5000000>; 63 regulator-max-microvolt = <5000000>;
64 }; 64 };
65
66 sound {
67 compatible = "audio-graph-card";
68 label = "rockchip,rk3328";
69 dais = <&spdif_p0>;
70 };
71
72 spdif-dit {
73 compatible = "linux,spdif-dit";
74 #sound-dai-cells = <0>;
75
76 port {
77 dit_p0_0: endpoint {
78 remote-endpoint = <&spdif_p0_0>;
79 };
80 };
81 };
65}; 82};
66 83
67&cpu0 { 84&cpu0 {
@@ -108,6 +125,14 @@
108 status = "okay"; 125 status = "okay";
109}; 126};
110 127
128&hdmi {
129 status = "okay";
130};
131
132&hdmiphy {
133 status = "okay";
134};
135
111&i2c1 { 136&i2c1 {
112 status = "okay"; 137 status = "okay";
113 138
@@ -238,7 +263,7 @@
238 263
239 usb2 { 264 usb2 {
240 usb20_host_drv: usb20-host-drv { 265 usb20_host_drv: usb20-host-drv {
241 rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 266 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
242 }; 267 };
243 }; 268 };
244 269
@@ -261,6 +286,30 @@
261 status = "okay"; 286 status = "okay";
262}; 287};
263 288
289&spdif {
290 pinctrl-0 = <&spdifm0_tx>;
291 status = "okay";
292 #sound-dai-cells = <0>;
293
294 spdif_p0: port {
295 spdif_p0_0: endpoint {
296 remote-endpoint = <&dit_p0_0>;
297 };
298 };
299};
300
301&spi0 {
302 status = "okay";
303
304 spiflash@0 {
305 compatible = "jedec,spi-nor";
306 reg = <0>;
307
308 /* maximum speed for Rockchip SPI */
309 spi-max-frequency = <50000000>;
310 };
311};
312
264&tsadc { 313&tsadc {
265 rockchip,hw-tshut-mode = <0>; 314 rockchip,hw-tshut-mode = <0>;
266 rockchip,hw-tshut-polarity = <0>; 315 rockchip,hw-tshut-polarity = <0>;
@@ -295,3 +344,11 @@
295&usb_host0_ohci { 344&usb_host0_ohci {
296 status = "okay"; 345 status = "okay";
297}; 346};
347
348&vop {
349 status = "okay";
350};
351
352&vop_mmu {
353 status = "okay";
354};
diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index 3f5a2944300f..e1a33dd981e0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -151,6 +151,11 @@
151 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; 151 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
152 }; 152 };
153 153
154 display_subsystem: display-subsystem {
155 compatible = "rockchip,display-subsystem";
156 ports = <&vop_out>;
157 };
158
154 psci { 159 psci {
155 compatible = "arm,psci-1.0", "arm,psci-0.2"; 160 compatible = "arm,psci-1.0", "arm,psci-0.2";
156 method = "smc"; 161 method = "smc";
@@ -249,6 +254,12 @@
249 status = "disabled"; 254 status = "disabled";
250 }; 255 };
251 256
257 grf_gpio: grf-gpio {
258 compatible = "rockchip,rk3328-grf-gpio";
259 gpio-controller;
260 #gpio-cells = <2>;
261 };
262
252 power: power-controller { 263 power: power-controller {
253 compatible = "rockchip,rk3328-power-controller"; 264 compatible = "rockchip,rk3328-power-controller";
254 #power-domain-cells = <1>; 265 #power-domain-cells = <1>;
@@ -274,7 +285,6 @@
274 mode-bootloader = <BOOT_FASTBOOT>; 285 mode-bootloader = <BOOT_FASTBOOT>;
275 mode-loader = <BOOT_BL_DOWNLOAD>; 286 mode-loader = <BOOT_BL_DOWNLOAD>;
276 }; 287 };
277
278 }; 288 };
279 289
280 uart0: serial@ff110000 { 290 uart0: serial@ff110000 {
@@ -600,6 +610,28 @@
600 status = "disabled"; 610 status = "disabled";
601 }; 611 };
602 612
613 vop: vop@ff370000 {
614 compatible = "rockchip,rk3328-vop";
615 reg = <0x0 0xff370000 0x0 0x3efc>;
616 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
617 clocks = <&cru ACLK_VOP>, <&cru DCLK_LCDC>, <&cru HCLK_VOP>;
618 clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
619 resets = <&cru SRST_VOP_A>, <&cru SRST_VOP_H>, <&cru SRST_VOP_D>;
620 reset-names = "axi", "ahb", "dclk";
621 iommus = <&vop_mmu>;
622 status = "disabled";
623
624 vop_out: port {
625 #address-cells = <1>;
626 #size-cells = <0>;
627
628 vop_out_hdmi: endpoint@0 {
629 reg = <0>;
630 remote-endpoint = <&hdmi_in_vop>;
631 };
632 };
633 };
634
603 vop_mmu: iommu@ff373f00 { 635 vop_mmu: iommu@ff373f00 {
604 compatible = "rockchip,iommu"; 636 compatible = "rockchip,iommu";
605 reg = <0x0 0xff373f00 0x0 0x100>; 637 reg = <0x0 0xff373f00 0x0 0x100>;
@@ -611,6 +643,46 @@
611 status = "disabled"; 643 status = "disabled";
612 }; 644 };
613 645
646 hdmi: hdmi@ff3c0000 {
647 compatible = "rockchip,rk3328-dw-hdmi";
648 reg = <0x0 0xff3c0000 0x0 0x20000>;
649 reg-io-width = <4>;
650 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
651 <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
652 clocks = <&cru PCLK_HDMI>,
653 <&cru SCLK_HDMI_SFC>;
654 clock-names = "iahb",
655 "isfr";
656 phys = <&hdmiphy>;
657 phy-names = "hdmi";
658 pinctrl-names = "default";
659 pinctrl-0 = <&hdmi_cec &hdmii2c_xfer &hdmi_hpd>;
660 rockchip,grf = <&grf>;
661 status = "disabled";
662
663 ports {
664 hdmi_in: port {
665 hdmi_in_vop: endpoint {
666 remote-endpoint = <&vop_out_hdmi>;
667 };
668 };
669 };
670 };
671
672 hdmiphy: phy@ff430000 {
673 compatible = "rockchip,rk3328-hdmi-phy";
674 reg = <0x0 0xff430000 0x0 0x10000>;
675 interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
676 clocks = <&cru PCLK_HDMIPHY>, <&xin24m>, <&cru DCLK_HDMIPHY>;
677 clock-names = "sysclk", "refoclk", "refpclk";
678 clock-output-names = "hdmi_phy";
679 #clock-cells = <0>;
680 nvmem-cells = <&efuse_cpu_version>;
681 nvmem-cell-names = "cpu-version";
682 #phy-cells = <0>;
683 status = "disabled";
684 };
685
614 cru: clock-controller@ff440000 { 686 cru: clock-controller@ff440000 {
615 compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon"; 687 compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon";
616 reg = <0x0 0xff440000 0x0 0x1000>; 688 reg = <0x0 0xff440000 0x0 0x1000>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
index 8978d924eb83..cce266da28cd 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-ficus.dts
@@ -7,8 +7,7 @@
7 */ 7 */
8 8
9/dts-v1/; 9/dts-v1/;
10#include "rk3399.dtsi" 10#include "rk3399-rock960.dtsi"
11#include "rk3399-opp.dtsi"
12 11
13/ { 12/ {
14 model = "96boards RK3399 Ficus"; 13 model = "96boards RK3399 Ficus";
@@ -24,97 +23,6 @@
24 clock-output-names = "clkin_gmac"; 23 clock-output-names = "clkin_gmac";
25 #clock-cells = <0>; 24 #clock-cells = <0>;
26 }; 25 };
27
28 vcc1v8_s0: vcc1v8-s0 {
29 compatible = "regulator-fixed";
30 regulator-name = "vcc1v8_s0";
31 regulator-min-microvolt = <1800000>;
32 regulator-max-microvolt = <1800000>;
33 regulator-always-on;
34 };
35
36 vcc_sys: vcc-sys {
37 compatible = "regulator-fixed";
38 regulator-name = "vcc_sys";
39 regulator-min-microvolt = <5000000>;
40 regulator-max-microvolt = <5000000>;
41 regulator-always-on;
42 };
43
44 vcc3v3_sys: vcc3v3-sys {
45 compatible = "regulator-fixed";
46 regulator-name = "vcc3v3_sys";
47 regulator-min-microvolt = <3300000>;
48 regulator-max-microvolt = <3300000>;
49 regulator-always-on;
50 vin-supply = <&vcc_sys>;
51 };
52
53 vcc3v3_pcie: vcc3v3-pcie-regulator {
54 compatible = "regulator-fixed";
55 enable-active-high;
56 gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
57 pinctrl-names = "default";
58 pinctrl-0 = <&pcie_drv>;
59 regulator-boot-on;
60 regulator-name = "vcc3v3_pcie";
61 regulator-min-microvolt = <3300000>;
62 regulator-max-microvolt = <3300000>;
63 vin-supply = <&vcc3v3_sys>;
64 };
65
66 vcc5v0_host: vcc5v0-host-regulator {
67 compatible = "regulator-fixed";
68 enable-active-high;
69 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
70 pinctrl-names = "default";
71 pinctrl-0 = <&host_vbus_drv>;
72 regulator-name = "vcc5v0_host";
73 regulator-min-microvolt = <5000000>;
74 regulator-max-microvolt = <5000000>;
75 regulator-always-on;
76 vin-supply = <&vcc_sys>;
77 };
78
79 vdd_log: vdd-log {
80 compatible = "pwm-regulator";
81 pwms = <&pwm2 0 25000 0>;
82 regulator-name = "vdd_log";
83 regulator-min-microvolt = <800000>;
84 regulator-max-microvolt = <1400000>;
85 regulator-always-on;
86 regulator-boot-on;
87 vin-supply = <&vcc_sys>;
88 };
89
90};
91
92&cpu_l0 {
93 cpu-supply = <&vdd_cpu_l>;
94};
95
96&cpu_l1 {
97 cpu-supply = <&vdd_cpu_l>;
98};
99
100&cpu_l2 {
101 cpu-supply = <&vdd_cpu_l>;
102};
103
104&cpu_l3 {
105 cpu-supply = <&vdd_cpu_l>;
106};
107
108&cpu_b0 {
109 cpu-supply = <&vdd_cpu_b>;
110};
111
112&cpu_b1 {
113 cpu-supply = <&vdd_cpu_b>;
114};
115
116&emmc_phy {
117 status = "okay";
118}; 26};
119 27
120&gmac { 28&gmac {
@@ -133,279 +41,8 @@
133 status = "okay"; 41 status = "okay";
134}; 42};
135 43
136&hdmi {
137 ddc-i2c-bus = <&i2c3>;
138 pinctrl-names = "default";
139 pinctrl-0 = <&hdmi_cec>;
140 status = "okay";
141};
142
143&i2c0 {
144 clock-frequency = <400000>;
145 i2c-scl-rising-time-ns = <168>;
146 i2c-scl-falling-time-ns = <4>;
147 status = "okay";
148
149 vdd_cpu_b: regulator@40 {
150 compatible = "silergy,syr827";
151 reg = <0x40>;
152 fcs,suspend-voltage-selector = <1>;
153 regulator-name = "vdd_cpu_b";
154 regulator-min-microvolt = <712500>;
155 regulator-max-microvolt = <1500000>;
156 regulator-ramp-delay = <1000>;
157 regulator-always-on;
158 regulator-boot-on;
159 vin-supply = <&vcc_sys>;
160 status = "okay";
161
162 regulator-state-mem {
163 regulator-off-in-suspend;
164 };
165 };
166
167 vdd_gpu: regulator@41 {
168 compatible = "silergy,syr828";
169 reg = <0x41>;
170 fcs,suspend-voltage-selector = <1>;
171 regulator-name = "vdd_gpu";
172 regulator-min-microvolt = <712500>;
173 regulator-max-microvolt = <1500000>;
174 regulator-ramp-delay = <1000>;
175 regulator-always-on;
176 regulator-boot-on;
177 vin-supply = <&vcc_sys>;
178 regulator-state-mem {
179 regulator-off-in-suspend;
180 };
181 };
182
183 rk808: pmic@1b {
184 compatible = "rockchip,rk808";
185 reg = <0x1b>;
186 interrupt-parent = <&gpio1>;
187 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
188 pinctrl-names = "default";
189 pinctrl-0 = <&pmic_int_l>;
190 rockchip,system-power-controller;
191 wakeup-source;
192 #clock-cells = <1>;
193 clock-output-names = "xin32k", "rk808-clkout2";
194
195 vcc1-supply = <&vcc_sys>;
196 vcc2-supply = <&vcc_sys>;
197 vcc3-supply = <&vcc_sys>;
198 vcc4-supply = <&vcc_sys>;
199 vcc6-supply = <&vcc_sys>;
200 vcc7-supply = <&vcc_sys>;
201 vcc8-supply = <&vcc3v3_sys>;
202 vcc9-supply = <&vcc_sys>;
203 vcc10-supply = <&vcc_sys>;
204 vcc11-supply = <&vcc_sys>;
205 vcc12-supply = <&vcc3v3_sys>;
206 vddio-supply = <&vcc_1v8>;
207
208 regulators {
209 vdd_center: DCDC_REG1 {
210 regulator-name = "vdd_center";
211 regulator-min-microvolt = <750000>;
212 regulator-max-microvolt = <1350000>;
213 regulator-always-on;
214 regulator-boot-on;
215 regulator-state-mem {
216 regulator-off-in-suspend;
217 };
218 };
219
220 vdd_cpu_l: DCDC_REG2 {
221 regulator-name = "vdd_cpu_l";
222 regulator-min-microvolt = <750000>;
223 regulator-max-microvolt = <1350000>;
224 regulator-always-on;
225 regulator-boot-on;
226 regulator-state-mem {
227 regulator-off-in-suspend;
228 };
229 };
230
231 vcc_ddr: DCDC_REG3 {
232 regulator-name = "vcc_ddr";
233 regulator-always-on;
234 regulator-boot-on;
235 regulator-state-mem {
236 regulator-on-in-suspend;
237 };
238 };
239
240 vcc_1v8: DCDC_REG4 {
241 regulator-name = "vcc_1v8";
242 regulator-min-microvolt = <1800000>;
243 regulator-max-microvolt = <1800000>;
244 regulator-always-on;
245 regulator-boot-on;
246 regulator-state-mem {
247 regulator-on-in-suspend;
248 regulator-suspend-microvolt = <1800000>;
249 };
250 };
251
252 vcc1v8_dvp: LDO_REG1 {
253 regulator-name = "vcc1v8_dvp";
254 regulator-min-microvolt = <1800000>;
255 regulator-max-microvolt = <1800000>;
256 regulator-always-on;
257 regulator-boot-on;
258 regulator-state-mem {
259 regulator-on-in-suspend;
260 regulator-suspend-microvolt = <1800000>;
261 };
262 };
263
264 vcca1v8_hdmi: LDO_REG2 {
265 regulator-name = "vcca1v8_hdmi";
266 regulator-min-microvolt = <1800000>;
267 regulator-max-microvolt = <1800000>;
268 regulator-always-on;
269 regulator-boot-on;
270 regulator-state-mem {
271 regulator-on-in-suspend;
272 regulator-suspend-microvolt = <1800000>;
273 };
274 };
275
276 vcca_1v8: LDO_REG3 {
277 regulator-name = "vcca_1v8";
278 regulator-min-microvolt = <1800000>;
279 regulator-max-microvolt = <1800000>;
280 regulator-always-on;
281 regulator-boot-on;
282 regulator-state-mem {
283 regulator-on-in-suspend;
284 regulator-suspend-microvolt = <1800000>;
285 };
286 };
287
288 vcc_sd: LDO_REG4 {
289 regulator-name = "vcc_sd";
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <3300000>;
292 regulator-always-on;
293 regulator-boot-on;
294 regulator-state-mem {
295 regulator-on-in-suspend;
296 regulator-suspend-microvolt = <3300000>;
297 };
298 };
299
300 vcc3v0_sd: LDO_REG5 {
301 regulator-name = "vcc3v0_sd";
302 regulator-min-microvolt = <3000000>;
303 regulator-max-microvolt = <3000000>;
304 regulator-always-on;
305 regulator-boot-on;
306 regulator-state-mem {
307 regulator-on-in-suspend;
308 regulator-suspend-microvolt = <3000000>;
309 };
310 };
311
312 vcc_1v5: LDO_REG6 {
313 regulator-name = "vcc_1v5";
314 regulator-min-microvolt = <1500000>;
315 regulator-max-microvolt = <1500000>;
316 regulator-always-on;
317 regulator-boot-on;
318 regulator-state-mem {
319 regulator-on-in-suspend;
320 regulator-suspend-microvolt = <1500000>;
321 };
322 };
323
324 vcca0v9_hdmi: LDO_REG7 {
325 regulator-name = "vcca0v9_hdmi";
326 regulator-min-microvolt = <900000>;
327 regulator-max-microvolt = <900000>;
328 regulator-always-on;
329 regulator-boot-on;
330 regulator-state-mem {
331 regulator-on-in-suspend;
332 regulator-suspend-microvolt = <900000>;
333 };
334 };
335
336 vcc_3v0: LDO_REG8 {
337 regulator-name = "vcc_3v0";
338 regulator-min-microvolt = <3000000>;
339 regulator-max-microvolt = <3000000>;
340 regulator-always-on;
341 regulator-boot-on;
342 regulator-state-mem {
343 regulator-on-in-suspend;
344 regulator-suspend-microvolt = <3000000>;
345 };
346 };
347
348 vcc3v3_s3: SWITCH_REG1 {
349 regulator-name = "vcc3v3_s3";
350 regulator-always-on;
351 regulator-boot-on;
352 regulator-state-mem {
353 regulator-on-in-suspend;
354 };
355 };
356
357 vcc3v3_s0: SWITCH_REG2 {
358 regulator-name = "vcc3v3_s0";
359 regulator-always-on;
360 regulator-boot-on;
361 regulator-state-mem {
362 regulator-on-in-suspend;
363 };
364 };
365 };
366 };
367};
368
369&i2c1 {
370 status = "okay";
371};
372
373&i2c2 {
374 status = "okay";
375};
376
377&i2c3 {
378 status = "okay";
379};
380
381&i2c4 {
382 status = "okay";
383};
384
385&io_domains {
386 bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
387 audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
388 sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */
389 gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */
390 status = "okay";
391};
392
393&pcie_phy {
394 status = "okay";
395};
396
397&pcie0 { 44&pcie0 {
398 ep-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>; 45 ep-gpios = <&gpio4 RK_PD4 GPIO_ACTIVE_HIGH>;
399 num-lanes = <4>;
400 pinctrl-names = "default";
401 pinctrl-0 = <&pcie_clkreqn_cpm>;
402 vpcie3v3-supply = <&vcc3v3_pcie>;
403 status = "okay";
404};
405
406&pmu_io_domains {
407 pmu1830-supply = <&vcc_1v8>;
408 status = "okay";
409}; 46};
410 47
411&pinctrl { 48&pinctrl {
@@ -416,31 +53,6 @@
416 }; 53 };
417 }; 54 };
418 55
419 sdmmc {
420 sdmmc_bus1: sdmmc-bus1 {
421 rockchip,pins =
422 <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>;
423 };
424
425 sdmmc_bus4: sdmmc-bus4 {
426 rockchip,pins =
427 <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>,
428 <4 9 RK_FUNC_1 &pcfg_pull_up_8ma>,
429 <4 10 RK_FUNC_1 &pcfg_pull_up_8ma>,
430 <4 11 RK_FUNC_1 &pcfg_pull_up_8ma>;
431 };
432
433 sdmmc_clk: sdmmc-clk {
434 rockchip,pins =
435 <4 12 RK_FUNC_1 &pcfg_pull_none_18ma>;
436 };
437
438 sdmmc_cmd: sdmmc-cmd {
439 rockchip,pins =
440 <4 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
441 };
442 };
443
444 pcie { 56 pcie {
445 pcie_drv: pcie-drv { 57 pcie_drv: pcie-drv {
446 rockchip,pins = 58 rockchip,pins =
@@ -448,23 +60,6 @@
448 }; 60 };
449 }; 61 };
450 62
451 pmic {
452 pmic_int_l: pmic-int-l {
453 rockchip,pins =
454 <1 21 RK_FUNC_GPIO &pcfg_pull_up>;
455 };
456
457 vsel1_gpio: vsel1-gpio {
458 rockchip,pins =
459 <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
460 };
461
462 vsel2_gpio: vsel2-gpio {
463 rockchip,pins =
464 <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
465 };
466 };
467
468 usb2 { 63 usb2 {
469 host_vbus_drv: host-vbus-drv { 64 host_vbus_drv: host-vbus-drv {
470 rockchip,pins = 65 rockchip,pins =
@@ -473,127 +68,18 @@
473 }; 68 };
474}; 69};
475 70
476&pwm2 {
477 status = "okay";
478};
479
480&pwm3 {
481 status = "okay";
482};
483
484&sdhci {
485 bus-width = <8>;
486 mmc-hs400-1_8v;
487 mmc-hs400-enhanced-strobe;
488 non-removable;
489 status = "okay";
490};
491
492&sdmmc {
493 bus-width = <4>;
494 cap-mmc-highspeed;
495 cap-sd-highspeed;
496 clock-frequency = <100000000>;
497 clock-freq-min-max = <100000 100000000>;
498 disable-wp;
499 sd-uhs-sdr104;
500 vqmmc-supply = <&vcc_sd>;
501 card-detect-delay = <800>;
502 pinctrl-names = "default";
503 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
504 status = "okay";
505};
506
507&tcphy0 {
508 status = "okay";
509};
510
511&tcphy1 {
512 status = "okay";
513};
514
515&u2phy0 {
516 status = "okay";
517};
518
519&u2phy1 {
520 status = "okay";
521};
522
523&u2phy0_host {
524 phy-supply = <&vcc5v0_host>;
525 status = "okay";
526};
527
528&u2phy1_host {
529 phy-supply = <&vcc5v0_host>;
530 status = "okay";
531};
532
533&u2phy0_otg {
534 status = "okay";
535};
536
537&u2phy1_otg {
538 status = "okay";
539};
540
541&uart0 {
542 pinctrl-names = "default";
543 pinctrl-0 = <&uart0_xfer &uart0_cts>;
544 status = "okay";
545};
546
547&uart2 {
548 status = "okay";
549};
550
551&usb_host0_ehci {
552 status = "okay";
553};
554
555&usb_host0_ohci {
556 status = "okay";
557};
558
559&usb_host1_ehci {
560 status = "okay";
561};
562
563&usb_host1_ohci {
564 status = "okay";
565};
566
567&usbdrd3_0 {
568 status = "okay";
569};
570
571&usbdrd_dwc3_0 { 71&usbdrd_dwc3_0 {
572 status = "okay";
573 dr_mode = "host"; 72 dr_mode = "host";
574}; 73};
575 74
576&usbdrd3_1 {
577 status = "okay";
578};
579
580&usbdrd_dwc3_1 { 75&usbdrd_dwc3_1 {
581 status = "okay";
582 dr_mode = "host"; 76 dr_mode = "host";
583}; 77};
584 78
585&vopb { 79&vcc3v3_pcie {
586 status = "okay"; 80 gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>;
587};
588
589&vopb_mmu {
590 status = "okay";
591};
592
593&vopl {
594 status = "okay";
595}; 81};
596 82
597&vopl_mmu { 83&vcc5v0_host {
598 status = "okay"; 84 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
599}; 85};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
index 38336ab57cc4..c706db0ee9ec 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
@@ -622,6 +622,12 @@
622 }; 622 };
623 }; 623 };
624 624
625 wifi {
626 wifi_host_wake_l: wifi-host-wake-l {
627 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
628 };
629 };
630
625 leds { 631 leds {
626 work_led_gpio: work_led-gpio { 632 work_led_gpio: work_led-gpio {
627 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 633 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -646,6 +652,36 @@
646 status = "okay"; 652 status = "okay";
647}; 653};
648 654
655&sdio0 {
656 /* WiFi & BT combo module Ampak AP6356S */
657 bus-width = <4>;
658 cap-sdio-irq;
659 cap-sd-highspeed;
660 keep-power-in-suspend;
661 mmc-pwrseq = <&sdio_pwrseq>;
662 non-removable;
663 num-slots = <1>;
664 pinctrl-names = "default";
665 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
666 sd-uhs-sdr104;
667
668 /* Power supply */
669 vqmmc-supply = &vcc1v8_s3; /* IO line */
670 vmmc-supply = &vcc_sdio; /* card's power */
671
672 status = "okay";
673
674 brcmf: wifi@1 {
675 compatible = "brcm,bcm4329-fmac";
676 interrupt-parent = <&gpio0>;
677 interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
678 interrupt-names = "host-wake";
679 brcm,drive-strength = <5>;
680 pinctrl-names = "default";
681 pinctrl-0 = <&wifi_host_wake_l>;
682 };
683};
684
649&sdmmc { 685&sdmmc {
650 bus-width = <4>; 686 bus-width = <4>;
651 cap-mmc-highspeed; 687 cap-mmc-highspeed;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
index e0d64f862322..2dceeea29b83 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
@@ -131,7 +131,7 @@
131 status = "okay"; 131 status = "okay";
132 clock-frequency = <400000>; 132 clock-frequency = <400000>;
133 133
134 sgtl5000: codec@0a { 134 sgtl5000: codec@a {
135 compatible = "fsl,sgtl5000"; 135 compatible = "fsl,sgtl5000";
136 reg = <0x0a>; 136 reg = <0x0a>;
137 clocks = <&sgtl5000_clk>; 137 clocks = <&sgtl5000_clk>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts b/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts
new file mode 100644
index 000000000000..19f7732d728c
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dts
@@ -0,0 +1,680 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 T-Chip Intelligent Technology Co., Ltd
4 */
5
6/dts-v1/;
7#include <dt-bindings/pwm/pwm.h>
8#include "rk3399.dtsi"
9#include "rk3399-opp.dtsi"
10
11/ {
12 model = "Firefly ROC-RK3399-PC Board";
13 compatible = "firefly,roc-rk3399-pc", "rockchip,rk3399";
14
15 chosen {
16 stdout-path = "serial2:1500000n8";
17 };
18
19 backlight: backlight {
20 compatible = "pwm-backlight";
21 pwms = <&pwm0 0 25000 0>;
22 };
23
24 clkin_gmac: external-gmac-clock {
25 compatible = "fixed-clock";
26 clock-frequency = <125000000>;
27 clock-output-names = "clkin_gmac";
28 #clock-cells = <0>;
29 };
30
31 sdio_pwrseq: sdio-pwrseq {
32 compatible = "mmc-pwrseq-simple";
33 clocks = <&rk808 1>;
34 clock-names = "ext_clock";
35 pinctrl-names = "default";
36 pinctrl-0 = <&wifi_enable_h>;
37
38 /*
39 * On the module itself this is one of these (depending
40 * on the actual card populated):
41 * - SDIO_RESET_L_WL_REG_ON
42 * - PDN (power down when low)
43 */
44 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
45 };
46
47 vcc_vbus_typec0: vcc-vbus-typec0 {
48 compatible = "regulator-fixed";
49 regulator-name = "vcc_vbus_typec0";
50 regulator-always-on;
51 regulator-boot-on;
52 regulator-min-microvolt = <5000000>;
53 regulator-max-microvolt = <5000000>;
54 };
55
56 /*
57 * should be placed inside mp8859, but not until mp8859 has
58 * its own dt-binding.
59 */
60 vcc12v_sys: mp8859-dcdc1 {
61 compatible = "regulator-fixed";
62 regulator-name = "vcc12v_sys";
63 regulator-always-on;
64 regulator-boot-on;
65 regulator-min-microvolt = <12000000>;
66 regulator-max-microvolt = <12000000>;
67 vin-supply = <&vcc_vbus_typec0>;
68 };
69
70 /* switched by pmic_sleep */
71 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
72 compatible = "regulator-fixed";
73 regulator-name = "vcc1v8_s3";
74 regulator-always-on;
75 regulator-boot-on;
76 regulator-min-microvolt = <1800000>;
77 regulator-max-microvolt = <1800000>;
78 vin-supply = <&vcc_1v8>;
79 };
80
81 vcc3v3_sys: vcc3v3-sys {
82 compatible = "regulator-fixed";
83 regulator-name = "vcc3v3_sys";
84 regulator-always-on;
85 regulator-boot-on;
86 regulator-min-microvolt = <3300000>;
87 regulator-max-microvolt = <3300000>;
88 vin-supply = <&vcc12v_sys>;
89 };
90
91 /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
92 vcc5v0_host: vcc5v0-host-regulator {
93 compatible = "regulator-fixed";
94 enable-active-high;
95 gpio = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>;
96 pinctrl-names = "default";
97 pinctrl-0 = <&vcc5v0_host_en &hub_rst>;
98 regulator-name = "vcc5v0_host";
99 regulator-always-on;
100 vin-supply = <&vcc_sys>;
101 };
102
103 vcc_vbus_typec1: vcc-vbus-typec1 {
104 compatible = "regulator-fixed";
105 enable-active-high;
106 gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
107 pinctrl-names = "default";
108 pinctrl-0 = <&vcc_vbus_typec1_en>;
109 regulator-name = "vcc_vbus_typec1";
110 regulator-always-on;
111 vin-supply = <&vcc_sys>;
112 };
113
114 vcc_sys: vcc-sys {
115 compatible = "regulator-fixed";
116 regulator-name = "vcc_sys";
117 regulator-always-on;
118 regulator-boot-on;
119 regulator-min-microvolt = <5000000>;
120 regulator-max-microvolt = <5000000>;
121 vin-supply = <&vcc12v_sys>;
122 };
123
124 vdd_log: vdd-log {
125 compatible = "pwm-regulator";
126 pwms = <&pwm2 0 25000 1>;
127 regulator-name = "vdd_log";
128 regulator-always-on;
129 regulator-boot-on;
130 regulator-min-microvolt = <800000>;
131 regulator-max-microvolt = <1400000>;
132 vin-supply = <&vcc3v3_sys>;
133 };
134};
135
136&cpu_l0 {
137 cpu-supply = <&vdd_cpu_l>;
138};
139
140&cpu_l1 {
141 cpu-supply = <&vdd_cpu_l>;
142};
143
144&cpu_l2 {
145 cpu-supply = <&vdd_cpu_l>;
146};
147
148&cpu_l3 {
149 cpu-supply = <&vdd_cpu_l>;
150};
151
152&cpu_b0 {
153 cpu-supply = <&vdd_cpu_b>;
154};
155
156&cpu_b1 {
157 cpu-supply = <&vdd_cpu_b>;
158};
159
160&emmc_phy {
161 status = "okay";
162};
163
164&gmac {
165 assigned-clocks = <&cru SCLK_RMII_SRC>;
166 assigned-clock-parents = <&clkin_gmac>;
167 clock_in_out = "input";
168 phy-supply = <&vcc_lan>;
169 phy-mode = "rgmii";
170 pinctrl-names = "default";
171 pinctrl-0 = <&rgmii_pins>;
172 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
173 snps,reset-active-low;
174 snps,reset-delays-us = <0 10000 50000>;
175 tx_delay = <0x28>;
176 rx_delay = <0x11>;
177 status = "okay";
178};
179
180&hdmi {
181 ddc-i2c-bus = <&i2c3>;
182 pinctrl-names = "default";
183 pinctrl-0 = <&hdmi_cec>;
184 status = "okay";
185};
186
187&i2c0 {
188 clock-frequency = <400000>;
189 i2c-scl-rising-time-ns = <168>;
190 i2c-scl-falling-time-ns = <4>;
191 status = "okay";
192
193 rk808: pmic@1b {
194 compatible = "rockchip,rk808";
195 reg = <0x1b>;
196 interrupt-parent = <&gpio1>;
197 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
198 #clock-cells = <1>;
199 clock-output-names = "xin32k", "rk808-clkout2";
200 pinctrl-names = "default";
201 pinctrl-0 = <&pmic_int_l>;
202 rockchip,system-power-controller;
203 wakeup-source;
204
205 vcc1-supply = <&vcc3v3_sys>;
206 vcc2-supply = <&vcc3v3_sys>;
207 vcc3-supply = <&vcc3v3_sys>;
208 vcc4-supply = <&vcc3v3_sys>;
209 vcc6-supply = <&vcc3v3_sys>;
210 vcc7-supply = <&vcc3v3_sys>;
211 vcc8-supply = <&vcc3v3_sys>;
212 vcc9-supply = <&vcc3v3_sys>;
213 vcc10-supply = <&vcc3v3_sys>;
214 vcc11-supply = <&vcc3v3_sys>;
215 vcc12-supply = <&vcc3v3_sys>;
216 vddio-supply = <&vcc1v8_pmu>;
217
218 regulators {
219 vdd_center: DCDC_REG1 {
220 regulator-name = "vdd_center";
221 regulator-always-on;
222 regulator-boot-on;
223 regulator-min-microvolt = <750000>;
224 regulator-max-microvolt = <1350000>;
225 regulator-ramp-delay = <6001>;
226 regulator-state-mem {
227 regulator-off-in-suspend;
228 };
229 };
230
231 vdd_cpu_l: DCDC_REG2 {
232 regulator-name = "vdd_cpu_l";
233 regulator-always-on;
234 regulator-boot-on;
235 regulator-min-microvolt = <750000>;
236 regulator-max-microvolt = <1350000>;
237 regulator-ramp-delay = <6001>;
238 regulator-state-mem {
239 regulator-off-in-suspend;
240 };
241 };
242
243 vcc_ddr: DCDC_REG3 {
244 regulator-name = "vcc_ddr";
245 regulator-always-on;
246 regulator-boot-on;
247 regulator-state-mem {
248 regulator-on-in-suspend;
249 };
250 };
251
252 vcc_1v8: DCDC_REG4 {
253 regulator-name = "vcc_1v8";
254 regulator-always-on;
255 regulator-boot-on;
256 regulator-min-microvolt = <1800000>;
257 regulator-max-microvolt = <1800000>;
258 regulator-state-mem {
259 regulator-on-in-suspend;
260 regulator-suspend-microvolt = <1800000>;
261 };
262 };
263
264 vcca1v8_codec: LDO_REG1 {
265 regulator-name = "vcca1v8_codec";
266 regulator-always-on;
267 regulator-boot-on;
268 regulator-min-microvolt = <1800000>;
269 regulator-max-microvolt = <1800000>;
270 regulator-state-mem {
271 regulator-off-in-suspend;
272 };
273 };
274
275 vcc1v8_hdmi: LDO_REG2 {
276 regulator-name = "vcc1v8_hdmi";
277 regulator-always-on;
278 regulator-boot-on;
279 regulator-min-microvolt = <1800000>;
280 regulator-max-microvolt = <1800000>;
281 regulator-state-mem {
282 regulator-off-in-suspend;
283 };
284 };
285
286 vcc1v8_pmu: LDO_REG3 {
287 regulator-name = "vcc1v8_pmu";
288 regulator-always-on;
289 regulator-boot-on;
290 regulator-min-microvolt = <1800000>;
291 regulator-max-microvolt = <1800000>;
292 regulator-state-mem {
293 regulator-on-in-suspend;
294 regulator-suspend-microvolt = <1800000>;
295 };
296 };
297
298 vcc_sdio: LDO_REG4 {
299 regulator-name = "vcc_sdio";
300 regulator-always-on;
301 regulator-boot-on;
302 regulator-min-microvolt = <1800000>;
303 regulator-max-microvolt = <3000000>;
304 regulator-state-mem {
305 regulator-on-in-suspend;
306 regulator-suspend-microvolt = <3000000>;
307 };
308 };
309
310 vcca3v0_codec: LDO_REG5 {
311 regulator-name = "vcca3v0_codec";
312 regulator-always-on;
313 regulator-boot-on;
314 regulator-min-microvolt = <3000000>;
315 regulator-max-microvolt = <3000000>;
316 regulator-state-mem {
317 regulator-off-in-suspend;
318 };
319 };
320
321 vcc_1v5: LDO_REG6 {
322 regulator-name = "vcc_1v5";
323 regulator-always-on;
324 regulator-boot-on;
325 regulator-min-microvolt = <1500000>;
326 regulator-max-microvolt = <1500000>;
327 regulator-state-mem {
328 regulator-on-in-suspend;
329 regulator-suspend-microvolt = <1500000>;
330 };
331 };
332
333 vcca0v9_hdmi: LDO_REG7 {
334 regulator-name = "vcca0v9_hdmi";
335 regulator-always-on;
336 regulator-boot-on;
337 regulator-min-microvolt = <900000>;
338 regulator-max-microvolt = <900000>;
339 regulator-state-mem {
340 regulator-off-in-suspend;
341 };
342 };
343
344 vcc_3v0: LDO_REG8 {
345 regulator-name = "vcc_3v0";
346 regulator-always-on;
347 regulator-boot-on;
348 regulator-min-microvolt = <3000000>;
349 regulator-max-microvolt = <3000000>;
350 regulator-state-mem {
351 regulator-on-in-suspend;
352 regulator-suspend-microvolt = <3000000>;
353 };
354 };
355
356 vcc3v3_s3: vcc_lan: SWITCH_REG1 {
357 regulator-name = "vcc3v3_s3";
358 regulator-always-on;
359 regulator-boot-on;
360 regulator-state-mem {
361 regulator-off-in-suspend;
362 };
363 };
364
365 vcc3v3_s0: SWITCH_REG2 {
366 regulator-name = "vcc3v3_s0";
367 regulator-always-on;
368 regulator-boot-on;
369 regulator-state-mem {
370 regulator-off-in-suspend;
371 };
372 };
373 };
374 };
375
376 vdd_cpu_b: regulator@40 {
377 compatible = "silergy,syr827";
378 reg = <0x40>;
379 fcs,suspend-voltage-selector = <1>;
380 pinctrl-names = "default";
381 pinctrl-0 = <&vsel1_gpio>;
382 regulator-name = "vdd_cpu_b";
383 regulator-min-microvolt = <712500>;
384 regulator-max-microvolt = <1500000>;
385 regulator-ramp-delay = <1000>;
386 regulator-always-on;
387 regulator-boot-on;
388 vin-supply = <&vcc3v3_sys>;
389
390 regulator-state-mem {
391 regulator-off-in-suspend;
392 };
393 };
394
395 vdd_gpu: regulator@41 {
396 compatible = "silergy,syr828";
397 reg = <0x41>;
398 fcs,suspend-voltage-selector = <1>;
399 pinctrl-names = "default";
400 pinctrl-0 = <&vsel2_gpio>;
401 regulator-name = "vdd_gpu";
402 regulator-min-microvolt = <712500>;
403 regulator-max-microvolt = <1500000>;
404 regulator-ramp-delay = <1000>;
405 regulator-always-on;
406 regulator-boot-on;
407 vin-supply = <&vcc3v3_sys>;
408
409 regulator-state-mem {
410 regulator-off-in-suspend;
411 };
412 };
413};
414
415&i2c1 {
416 i2c-scl-rising-time-ns = <300>;
417 i2c-scl-falling-time-ns = <15>;
418 status = "okay";
419};
420
421&i2c3 {
422 i2c-scl-rising-time-ns = <450>;
423 i2c-scl-falling-time-ns = <15>;
424 status = "okay";
425};
426
427&i2c4 {
428 i2c-scl-rising-time-ns = <600>;
429 i2c-scl-falling-time-ns = <20>;
430 status = "okay";
431
432 fusb1: usb-typec@22 {
433 compatible = "fcs,fusb302";
434 reg = <0x22>;
435 interrupt-parent = <&gpio1>;
436 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
437 pinctrl-names = "default";
438 pinctrl-0 = <&fusb1_int>;
439 vbus-supply = <&vcc_vbus_typec1>;
440 status = "okay";
441 };
442};
443
444&i2c7 {
445 i2c-scl-rising-time-ns = <600>;
446 i2c-scl-falling-time-ns = <20>;
447 status = "okay";
448
449 fusb0: usb-typec@22 {
450 compatible = "fcs,fusb302";
451 reg = <0x22>;
452 interrupt-parent = <&gpio1>;
453 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&fusb0_int>;
456 vbus-supply = <&vcc_vbus_typec0>;
457 status = "okay";
458 };
459};
460
461&i2s0 {
462 rockchip,playback-channels = <8>;
463 rockchip,capture-channels = <8>;
464 status = "okay";
465};
466
467&i2s1 {
468 rockchip,playback-channels = <2>;
469 rockchip,capture-channels = <2>;
470 status = "okay";
471};
472
473&i2s2 {
474 status = "okay";
475};
476
477&io_domains {
478 audio-supply = <&vcca1v8_codec>;
479 bt656-supply = <&vcc_3v0>;
480 gpio1830-supply = <&vcc_3v0>;
481 sdmmc-supply = <&vcc_sdio>;
482 status = "okay";
483};
484
485&pmu_io_domains {
486 pmu1830-supply = <&vcc_3v0>;
487 status = "okay";
488};
489
490&pinctrl {
491 lcd-panel {
492 lcd_panel_reset: lcd-panel-reset {
493 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
494 };
495 };
496
497 pmic {
498 vsel1_gpio: vsel1-gpio {
499 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
500 };
501
502 vsel2_gpio: vsel2-gpio {
503 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
504 };
505 };
506
507 sdio-pwrseq {
508 wifi_enable_h: wifi-enable-h {
509 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
510 };
511 };
512
513 pmic {
514 pmic_int_l: pmic-int-l {
515 rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
516 };
517 };
518
519 usb2 {
520 vcc5v0_host_en: vcc5v0-host-en {
521 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
522 };
523
524 hub_rst: hub-rst {
525 rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_output_high>;
526 };
527 };
528
529 usb-typec {
530 vcc_vbus_typec1_en: vcc-vbus-typec1-en {
531 rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
532 };
533 };
534
535 fusb30x {
536 fusb0_int: fusb0-int {
537 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
538 };
539
540 fusb1_int: fusb1-int {
541 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
542 };
543 };
544};
545
546&pwm0 {
547 status = "okay";
548};
549
550&pwm2 {
551 status = "okay";
552};
553
554&saradc {
555 vref-supply = <&vcca1v8_s3>;
556 status = "okay";
557};
558
559&sdmmc {
560 bus-width = <4>;
561 cap-mmc-highspeed;
562 cap-sd-highspeed;
563 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
564 disable-wp;
565 max-frequency = <150000000>;
566 pinctrl-names = "default";
567 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
568 status = "okay";
569};
570
571&sdhci {
572 bus-width = <8>;
573 mmc-hs400-1_8v;
574 mmc-hs400-enhanced-strobe;
575 non-removable;
576 status = "okay";
577};
578
579&tcphy0 {
580 status = "okay";
581};
582
583&tcphy1 {
584 status = "okay";
585};
586
587&tsadc {
588 /* tshut mode 0:CRU 1:GPIO */
589 rockchip,hw-tshut-mode = <1>;
590 /* tshut polarity 0:LOW 1:HIGH */
591 rockchip,hw-tshut-polarity = <1>;
592 status = "okay";
593};
594
595&u2phy0 {
596 status = "okay";
597
598 u2phy0_otg: otg-port {
599 phy-supply = <&vcc_vbus_typec0>;
600 status = "okay";
601 };
602
603 u2phy0_host: host-port {
604 phy-supply = <&vcc5v0_host>;
605 status = "okay";
606 };
607};
608
609&u2phy1 {
610 status = "okay";
611
612 u2phy1_otg: otg-port {
613 phy-supply = <&vcc_vbus_typec1>;
614 status = "okay";
615 };
616
617 u2phy1_host: host-port {
618 phy-supply = <&vcc5v0_host>;
619 status = "okay";
620 };
621};
622
623&uart0 {
624 pinctrl-names = "default";
625 pinctrl-0 = <&uart0_xfer &uart0_cts>;
626 status = "okay";
627};
628
629&uart2 {
630 status = "okay";
631};
632
633&usb_host0_ehci {
634 status = "okay";
635};
636
637&usb_host0_ohci {
638 status = "okay";
639};
640
641&usb_host1_ehci {
642 status = "okay";
643};
644
645&usb_host1_ohci {
646 status = "okay";
647};
648
649&usbdrd3_0 {
650 status = "okay";
651};
652
653&usbdrd_dwc3_0 {
654 status = "okay";
655};
656
657&usbdrd3_1 {
658 status = "okay";
659};
660
661&usbdrd_dwc3_1 {
662 status = "okay";
663 dr_mode = "host";
664};
665
666&vopb {
667 status = "okay";
668};
669
670&vopb_mmu {
671 status = "okay";
672};
673
674&vopl {
675 status = "okay";
676};
677
678&vopl_mmu {
679 status = "okay";
680};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dts b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dts
new file mode 100644
index 000000000000..3c3308daec98
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dts
@@ -0,0 +1,52 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Linaro Ltd.
4 */
5
6/dts-v1/;
7#include "rk3399-rock960.dtsi"
8
9/ {
10 model = "96boards Rock960";
11 compatible = "vamrs,rock960", "rockchip,rk3399";
12
13 chosen {
14 stdout-path = "serial2:1500000n8";
15 };
16};
17
18&pcie0 {
19 ep-gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_HIGH>;
20};
21
22&pinctrl {
23 pcie {
24 pcie_drv: pcie-drv {
25 rockchip,pins =
26 <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
27 };
28 };
29
30 usb2 {
31 host_vbus_drv: host-vbus-drv {
32 rockchip,pins =
33 <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
34 };
35 };
36};
37
38&usbdrd_dwc3_0 {
39 dr_mode = "otg";
40};
41
42&usbdrd_dwc3_1 {
43 dr_mode = "host";
44};
45
46&vcc3v3_pcie {
47 gpio = <&gpio2 5 GPIO_ACTIVE_HIGH>;
48};
49
50&vcc5v0_host {
51 gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
52};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
new file mode 100644
index 000000000000..6c8c4ab044aa
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
@@ -0,0 +1,542 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2018 Collabora Ltd.
4 * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd.
5 * Copyright (c) 2018 Linaro Ltd.
6 */
7
8#include "rk3399.dtsi"
9#include "rk3399-opp.dtsi"
10
11/ {
12 vcc1v8_s0: vcc1v8-s0 {
13 compatible = "regulator-fixed";
14 regulator-name = "vcc1v8_s0";
15 regulator-min-microvolt = <1800000>;
16 regulator-max-microvolt = <1800000>;
17 regulator-always-on;
18 };
19
20 vcc_sys: vcc-sys {
21 compatible = "regulator-fixed";
22 regulator-name = "vcc_sys";
23 regulator-min-microvolt = <5000000>;
24 regulator-max-microvolt = <5000000>;
25 regulator-always-on;
26 };
27
28 vcc3v3_sys: vcc3v3-sys {
29 compatible = "regulator-fixed";
30 regulator-name = "vcc3v3_sys";
31 regulator-min-microvolt = <3300000>;
32 regulator-max-microvolt = <3300000>;
33 regulator-always-on;
34 vin-supply = <&vcc_sys>;
35 };
36
37 vcc3v3_pcie: vcc3v3-pcie-regulator {
38 compatible = "regulator-fixed";
39 enable-active-high;
40 pinctrl-names = "default";
41 pinctrl-0 = <&pcie_drv>;
42 regulator-boot-on;
43 regulator-name = "vcc3v3_pcie";
44 regulator-min-microvolt = <3300000>;
45 regulator-max-microvolt = <3300000>;
46 vin-supply = <&vcc3v3_sys>;
47 };
48
49 vcc5v0_host: vcc5v0-host-regulator {
50 compatible = "regulator-fixed";
51 enable-active-high;
52 pinctrl-names = "default";
53 pinctrl-0 = <&host_vbus_drv>;
54 regulator-name = "vcc5v0_host";
55 regulator-min-microvolt = <5000000>;
56 regulator-max-microvolt = <5000000>;
57 regulator-always-on;
58 vin-supply = <&vcc_sys>;
59 };
60
61 vdd_log: vdd-log {
62 compatible = "pwm-regulator";
63 pwms = <&pwm2 0 25000 0>;
64 regulator-name = "vdd_log";
65 regulator-min-microvolt = <800000>;
66 regulator-max-microvolt = <1400000>;
67 regulator-always-on;
68 regulator-boot-on;
69 vin-supply = <&vcc_sys>;
70 };
71
72};
73
74&cpu_l0 {
75 cpu-supply = <&vdd_cpu_l>;
76};
77
78&cpu_l1 {
79 cpu-supply = <&vdd_cpu_l>;
80};
81
82&cpu_l2 {
83 cpu-supply = <&vdd_cpu_l>;
84};
85
86&cpu_l3 {
87 cpu-supply = <&vdd_cpu_l>;
88};
89
90&cpu_b0 {
91 cpu-supply = <&vdd_cpu_b>;
92};
93
94&cpu_b1 {
95 cpu-supply = <&vdd_cpu_b>;
96};
97
98&emmc_phy {
99 status = "okay";
100};
101
102&hdmi {
103 ddc-i2c-bus = <&i2c3>;
104 pinctrl-names = "default";
105 pinctrl-0 = <&hdmi_cec>;
106 status = "okay";
107};
108
109&i2c0 {
110 clock-frequency = <400000>;
111 i2c-scl-rising-time-ns = <168>;
112 i2c-scl-falling-time-ns = <4>;
113 status = "okay";
114
115 vdd_cpu_b: regulator@40 {
116 compatible = "silergy,syr827";
117 reg = <0x40>;
118 fcs,suspend-voltage-selector = <1>;
119 regulator-name = "vdd_cpu_b";
120 regulator-min-microvolt = <712500>;
121 regulator-max-microvolt = <1500000>;
122 regulator-ramp-delay = <1000>;
123 regulator-always-on;
124 regulator-boot-on;
125 vin-supply = <&vcc_sys>;
126 status = "okay";
127
128 regulator-state-mem {
129 regulator-off-in-suspend;
130 };
131 };
132
133 vdd_gpu: regulator@41 {
134 compatible = "silergy,syr828";
135 reg = <0x41>;
136 fcs,suspend-voltage-selector = <1>;
137 regulator-name = "vdd_gpu";
138 regulator-min-microvolt = <712500>;
139 regulator-max-microvolt = <1500000>;
140 regulator-ramp-delay = <1000>;
141 regulator-always-on;
142 regulator-boot-on;
143 vin-supply = <&vcc_sys>;
144 regulator-state-mem {
145 regulator-off-in-suspend;
146 };
147 };
148
149 rk808: pmic@1b {
150 compatible = "rockchip,rk808";
151 reg = <0x1b>;
152 interrupt-parent = <&gpio1>;
153 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&pmic_int_l>;
156 rockchip,system-power-controller;
157 wakeup-source;
158 #clock-cells = <1>;
159 clock-output-names = "xin32k", "rk808-clkout2";
160
161 vcc1-supply = <&vcc_sys>;
162 vcc2-supply = <&vcc_sys>;
163 vcc3-supply = <&vcc_sys>;
164 vcc4-supply = <&vcc_sys>;
165 vcc6-supply = <&vcc_sys>;
166 vcc7-supply = <&vcc_sys>;
167 vcc8-supply = <&vcc3v3_sys>;
168 vcc9-supply = <&vcc_sys>;
169 vcc10-supply = <&vcc_sys>;
170 vcc11-supply = <&vcc_sys>;
171 vcc12-supply = <&vcc3v3_sys>;
172 vddio-supply = <&vcc_1v8>;
173
174 regulators {
175 vdd_center: DCDC_REG1 {
176 regulator-name = "vdd_center";
177 regulator-min-microvolt = <750000>;
178 regulator-max-microvolt = <1350000>;
179 regulator-always-on;
180 regulator-boot-on;
181 regulator-state-mem {
182 regulator-off-in-suspend;
183 };
184 };
185
186 vdd_cpu_l: DCDC_REG2 {
187 regulator-name = "vdd_cpu_l";
188 regulator-min-microvolt = <750000>;
189 regulator-max-microvolt = <1350000>;
190 regulator-always-on;
191 regulator-boot-on;
192 regulator-state-mem {
193 regulator-off-in-suspend;
194 };
195 };
196
197 vcc_ddr: DCDC_REG3 {
198 regulator-name = "vcc_ddr";
199 regulator-always-on;
200 regulator-boot-on;
201 regulator-state-mem {
202 regulator-on-in-suspend;
203 };
204 };
205
206 vcc_1v8: DCDC_REG4 {
207 regulator-name = "vcc_1v8";
208 regulator-min-microvolt = <1800000>;
209 regulator-max-microvolt = <1800000>;
210 regulator-always-on;
211 regulator-boot-on;
212 regulator-state-mem {
213 regulator-on-in-suspend;
214 regulator-suspend-microvolt = <1800000>;
215 };
216 };
217
218 vcc1v8_dvp: LDO_REG1 {
219 regulator-name = "vcc1v8_dvp";
220 regulator-min-microvolt = <1800000>;
221 regulator-max-microvolt = <1800000>;
222 regulator-always-on;
223 regulator-boot-on;
224 regulator-state-mem {
225 regulator-on-in-suspend;
226 regulator-suspend-microvolt = <1800000>;
227 };
228 };
229
230 vcca1v8_hdmi: LDO_REG2 {
231 regulator-name = "vcca1v8_hdmi";
232 regulator-min-microvolt = <1800000>;
233 regulator-max-microvolt = <1800000>;
234 regulator-always-on;
235 regulator-boot-on;
236 regulator-state-mem {
237 regulator-on-in-suspend;
238 regulator-suspend-microvolt = <1800000>;
239 };
240 };
241
242 vcca_1v8: LDO_REG3 {
243 regulator-name = "vcca_1v8";
244 regulator-min-microvolt = <1800000>;
245 regulator-max-microvolt = <1800000>;
246 regulator-always-on;
247 regulator-boot-on;
248 regulator-state-mem {
249 regulator-on-in-suspend;
250 regulator-suspend-microvolt = <1800000>;
251 };
252 };
253
254 vcc_sd: LDO_REG4 {
255 regulator-name = "vcc_sd";
256 regulator-min-microvolt = <1800000>;
257 regulator-max-microvolt = <3300000>;
258 regulator-always-on;
259 regulator-boot-on;
260 regulator-state-mem {
261 regulator-on-in-suspend;
262 regulator-suspend-microvolt = <3300000>;
263 };
264 };
265
266 vcc3v0_sd: LDO_REG5 {
267 regulator-name = "vcc3v0_sd";
268 regulator-min-microvolt = <3000000>;
269 regulator-max-microvolt = <3000000>;
270 regulator-always-on;
271 regulator-boot-on;
272 regulator-state-mem {
273 regulator-on-in-suspend;
274 regulator-suspend-microvolt = <3000000>;
275 };
276 };
277
278 vcc_1v5: LDO_REG6 {
279 regulator-name = "vcc_1v5";
280 regulator-min-microvolt = <1500000>;
281 regulator-max-microvolt = <1500000>;
282 regulator-always-on;
283 regulator-boot-on;
284 regulator-state-mem {
285 regulator-on-in-suspend;
286 regulator-suspend-microvolt = <1500000>;
287 };
288 };
289
290 vcca0v9_hdmi: LDO_REG7 {
291 regulator-name = "vcca0v9_hdmi";
292 regulator-min-microvolt = <900000>;
293 regulator-max-microvolt = <900000>;
294 regulator-always-on;
295 regulator-boot-on;
296 regulator-state-mem {
297 regulator-on-in-suspend;
298 regulator-suspend-microvolt = <900000>;
299 };
300 };
301
302 vcc_3v0: LDO_REG8 {
303 regulator-name = "vcc_3v0";
304 regulator-min-microvolt = <3000000>;
305 regulator-max-microvolt = <3000000>;
306 regulator-always-on;
307 regulator-boot-on;
308 regulator-state-mem {
309 regulator-on-in-suspend;
310 regulator-suspend-microvolt = <3000000>;
311 };
312 };
313
314 vcc3v3_s3: SWITCH_REG1 {
315 regulator-name = "vcc3v3_s3";
316 regulator-always-on;
317 regulator-boot-on;
318 regulator-state-mem {
319 regulator-on-in-suspend;
320 };
321 };
322
323 vcc3v3_s0: SWITCH_REG2 {
324 regulator-name = "vcc3v3_s0";
325 regulator-always-on;
326 regulator-boot-on;
327 regulator-state-mem {
328 regulator-on-in-suspend;
329 };
330 };
331 };
332 };
333};
334
335&i2c1 {
336 status = "okay";
337};
338
339&i2c2 {
340 status = "okay";
341};
342
343&i2c3 {
344 status = "okay";
345};
346
347&i2c4 {
348 status = "okay";
349};
350
351&io_domains {
352 bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */
353 audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */
354 sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */
355 gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */
356 status = "okay";
357};
358
359&pcie_phy {
360 status = "okay";
361};
362
363&pcie0 {
364 num-lanes = <4>;
365 pinctrl-names = "default";
366 pinctrl-0 = <&pcie_clkreqn_cpm>;
367 vpcie3v3-supply = <&vcc3v3_pcie>;
368 status = "okay";
369};
370
371&pmu_io_domains {
372 pmu1830-supply = <&vcc_1v8>;
373 status = "okay";
374};
375
376&pinctrl {
377 sdmmc {
378 sdmmc_bus1: sdmmc-bus1 {
379 rockchip,pins =
380 <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>;
381 };
382
383 sdmmc_bus4: sdmmc-bus4 {
384 rockchip,pins =
385 <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>,
386 <4 9 RK_FUNC_1 &pcfg_pull_up_8ma>,
387 <4 10 RK_FUNC_1 &pcfg_pull_up_8ma>,
388 <4 11 RK_FUNC_1 &pcfg_pull_up_8ma>;
389 };
390
391 sdmmc_clk: sdmmc-clk {
392 rockchip,pins =
393 <4 12 RK_FUNC_1 &pcfg_pull_none_18ma>;
394 };
395
396 sdmmc_cmd: sdmmc-cmd {
397 rockchip,pins =
398 <4 13 RK_FUNC_1 &pcfg_pull_up_8ma>;
399 };
400 };
401
402 pmic {
403 pmic_int_l: pmic-int-l {
404 rockchip,pins =
405 <1 21 RK_FUNC_GPIO &pcfg_pull_up>;
406 };
407
408 vsel1_gpio: vsel1-gpio {
409 rockchip,pins =
410 <1 17 RK_FUNC_GPIO &pcfg_pull_down>;
411 };
412
413 vsel2_gpio: vsel2-gpio {
414 rockchip,pins =
415 <1 14 RK_FUNC_GPIO &pcfg_pull_down>;
416 };
417 };
418};
419
420&pwm2 {
421 status = "okay";
422};
423
424&pwm3 {
425 status = "okay";
426};
427
428&sdhci {
429 bus-width = <8>;
430 mmc-hs400-1_8v;
431 mmc-hs400-enhanced-strobe;
432 non-removable;
433 status = "okay";
434};
435
436&sdmmc {
437 bus-width = <4>;
438 cap-mmc-highspeed;
439 cap-sd-highspeed;
440 clock-frequency = <100000000>;
441 clock-freq-min-max = <100000 100000000>;
442 cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
443 disable-wp;
444 sd-uhs-sdr104;
445 vqmmc-supply = <&vcc_sd>;
446 card-detect-delay = <800>;
447 pinctrl-names = "default";
448 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
449 status = "okay";
450};
451
452&uart0 {
453 pinctrl-names = "default";
454 pinctrl-0 = <&uart0_xfer &uart0_cts>;
455 status = "okay";
456};
457
458&uart2 {
459 status = "okay";
460};
461
462&tcphy0 {
463 status = "okay";
464};
465
466&tcphy1 {
467 status = "okay";
468};
469
470&u2phy0 {
471 status = "okay";
472};
473
474&u2phy1 {
475 status = "okay";
476};
477
478&u2phy0_host {
479 phy-supply = <&vcc5v0_host>;
480 status = "okay";
481};
482
483&u2phy1_host {
484 phy-supply = <&vcc5v0_host>;
485 status = "okay";
486};
487
488&u2phy0_otg {
489 status = "okay";
490};
491
492&u2phy1_otg {
493 status = "okay";
494};
495
496&usb_host0_ehci {
497 status = "okay";
498};
499
500&usb_host0_ohci {
501 status = "okay";
502};
503
504&usb_host1_ehci {
505 status = "okay";
506};
507
508&usb_host1_ohci {
509 status = "okay";
510};
511
512&usbdrd3_0 {
513 status = "okay";
514};
515
516&usbdrd_dwc3_0 {
517 status = "okay";
518};
519
520&usbdrd3_1 {
521 status = "okay";
522};
523
524&usbdrd_dwc3_1 {
525 status = "okay";
526};
527
528&vopb {
529 status = "okay";
530};
531
532&vopb_mmu {
533 status = "okay";
534};
535
536&vopl {
537 status = "okay";
538};
539
540&vopl_mmu {
541 status = "okay";
542};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts
new file mode 100644
index 000000000000..1d35f5406b5e
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dts
@@ -0,0 +1,692 @@
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
4 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com>
5 */
6
7/dts-v1/;
8#include <dt-bindings/input/linux-event-codes.h>
9#include <dt-bindings/pwm/pwm.h>
10#include "rk3399.dtsi"
11#include "rk3399-opp.dtsi"
12
13/ {
14 model = "Pine64 RockPro64";
15 compatible = "pine64,rockpro64", "rockchip,rk3399";
16
17 chosen {
18 stdout-path = "serial2:1500000n8";
19 };
20
21 clkin_gmac: external-gmac-clock {
22 compatible = "fixed-clock";
23 clock-frequency = <125000000>;
24 clock-output-names = "clkin_gmac";
25 #clock-cells = <0>;
26 };
27
28 dc_12v: dc-12v {
29 compatible = "regulator-fixed";
30 regulator-name = "dc_12v";
31 regulator-always-on;
32 regulator-boot-on;
33 regulator-min-microvolt = <12000000>;
34 regulator-max-microvolt = <12000000>;
35 };
36
37 gpio-keys {
38 compatible = "gpio-keys";
39 autorepeat;
40 pinctrl-names = "default";
41 pinctrl-0 = <&pwrbtn>;
42
43 power {
44 debounce-interval = <100>;
45 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
46 label = "GPIO Key Power";
47 linux,code = <KEY_POWER>;
48 wakeup-source;
49 };
50 };
51
52 leds {
53 compatible = "gpio-leds";
54 pinctrl-names = "default";
55 pinctrl-0 = <&work_led_gpio>, <&diy_led_gpio>;
56
57 work-led {
58 label = "work";
59 default-state = "on";
60 gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
61 };
62
63 diy-led {
64 label = "diy";
65 default-state = "off";
66 gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
67 };
68 };
69
70 sdio_pwrseq: sdio-pwrseq {
71 compatible = "mmc-pwrseq-simple";
72 clocks = <&rk808 1>;
73 clock-names = "ext_clock";
74 pinctrl-names = "default";
75 pinctrl-0 = <&wifi_enable_h>;
76
77 /*
78 * On the module itself this is one of these (depending
79 * on the actual card populated):
80 * - SDIO_RESET_L_WL_REG_ON
81 * - PDN (power down when low)
82 */
83 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
84 };
85
86 /* switched by pmic_sleep */
87 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
88 compatible = "regulator-fixed";
89 regulator-name = "vcc1v8_s3";
90 regulator-always-on;
91 regulator-boot-on;
92 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <1800000>;
94 vin-supply = <&vcc_1v8>;
95 };
96
97 vcc3v3_pcie: vcc3v3-pcie-regulator {
98 compatible = "regulator-fixed";
99 enable-active-high;
100 gpio = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
101 pinctrl-names = "default";
102 pinctrl-0 = <&pcie_pwr_en>;
103 regulator-name = "vcc3v3_pcie";
104 regulator-always-on;
105 regulator-boot-on;
106 vin-supply = <&dc_12v>;
107 };
108
109 vcc3v3_sys: vcc3v3-sys {
110 compatible = "regulator-fixed";
111 regulator-name = "vcc3v3_sys";
112 regulator-always-on;
113 regulator-boot-on;
114 regulator-min-microvolt = <3300000>;
115 regulator-max-microvolt = <3300000>;
116 vin-supply = <&vcc_sys>;
117 };
118
119 /* Actually 3 regulators (host0, 1, 2) controlled by the same gpio */
120 vcc5v0_host: vcc5v0-host-regulator {
121 compatible = "regulator-fixed";
122 enable-active-high;
123 gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&vcc5v0_host_en>;
126 regulator-name = "vcc5v0_host";
127 regulator-always-on;
128 vin-supply = <&vcc_sys>;
129 };
130
131 vcc5v0_typec: vcc5v0-typec-regulator {
132 compatible = "regulator-fixed";
133 enable-active-high;
134 gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
135 pinctrl-names = "default";
136 pinctrl-0 = <&vcc5v0_typec_en>;
137 regulator-name = "vcc5v0_typec";
138 regulator-always-on;
139 vin-supply = <&vcc_sys>;
140 };
141
142 vcc_sys: vcc-sys {
143 compatible = "regulator-fixed";
144 regulator-name = "vcc_sys";
145 regulator-always-on;
146 regulator-boot-on;
147 regulator-min-microvolt = <5000000>;
148 regulator-max-microvolt = <5000000>;
149 vin-supply = <&dc_12v>;
150 };
151
152 vdd_log: vdd-log {
153 compatible = "pwm-regulator";
154 pwms = <&pwm2 0 25000 1>;
155 regulator-name = "vdd_log";
156 regulator-always-on;
157 regulator-boot-on;
158 regulator-min-microvolt = <800000>;
159 regulator-max-microvolt = <1400000>;
160 vin-supply = <&vcc_sys>;
161 };
162};
163
164&cpu_l0 {
165 cpu-supply = <&vdd_cpu_l>;
166};
167
168&cpu_l1 {
169 cpu-supply = <&vdd_cpu_l>;
170};
171
172&cpu_l2 {
173 cpu-supply = <&vdd_cpu_l>;
174};
175
176&cpu_l3 {
177 cpu-supply = <&vdd_cpu_l>;
178};
179
180&cpu_b0 {
181 cpu-supply = <&vdd_cpu_b>;
182};
183
184&cpu_b1 {
185 cpu-supply = <&vdd_cpu_b>;
186};
187
188&emmc_phy {
189 status = "okay";
190};
191
192&gmac {
193 assigned-clocks = <&cru SCLK_RMII_SRC>;
194 assigned-clock-parents = <&clkin_gmac>;
195 clock_in_out = "input";
196 phy-supply = <&vcc_lan>;
197 phy-mode = "rgmii";
198 pinctrl-names = "default";
199 pinctrl-0 = <&rgmii_pins>;
200 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
201 snps,reset-active-low;
202 snps,reset-delays-us = <0 10000 50000>;
203 tx_delay = <0x28>;
204 rx_delay = <0x11>;
205 status = "okay";
206};
207
208&i2c0 {
209 clock-frequency = <400000>;
210 i2c-scl-rising-time-ns = <168>;
211 i2c-scl-falling-time-ns = <4>;
212 status = "okay";
213
214 rk808: pmic@1b {
215 compatible = "rockchip,rk808";
216 reg = <0x1b>;
217 interrupt-parent = <&gpio1>;
218 interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
219 #clock-cells = <1>;
220 clock-output-names = "xin32k", "rk808-clkout2";
221 pinctrl-names = "default";
222 pinctrl-0 = <&pmic_int_l>;
223 rockchip,system-power-controller;
224 wakeup-source;
225
226 vcc1-supply = <&vcc_sys>;
227 vcc2-supply = <&vcc_sys>;
228 vcc3-supply = <&vcc_sys>;
229 vcc4-supply = <&vcc_sys>;
230 vcc6-supply = <&vcc_sys>;
231 vcc7-supply = <&vcc_sys>;
232 vcc8-supply = <&vcc3v3_sys>;
233 vcc9-supply = <&vcc_sys>;
234 vcc10-supply = <&vcc_sys>;
235 vcc11-supply = <&vcc_sys>;
236 vcc12-supply = <&vcc3v3_sys>;
237 vddio-supply = <&vcc1v8_pmu>;
238
239 regulators {
240 vdd_center: DCDC_REG1 {
241 regulator-name = "vdd_center";
242 regulator-always-on;
243 regulator-boot-on;
244 regulator-min-microvolt = <750000>;
245 regulator-max-microvolt = <1350000>;
246 regulator-ramp-delay = <6001>;
247 regulator-state-mem {
248 regulator-off-in-suspend;
249 };
250 };
251
252 vdd_cpu_l: DCDC_REG2 {
253 regulator-name = "vdd_cpu_l";
254 regulator-always-on;
255 regulator-boot-on;
256 regulator-min-microvolt = <750000>;
257 regulator-max-microvolt = <1350000>;
258 regulator-ramp-delay = <6001>;
259 regulator-state-mem {
260 regulator-off-in-suspend;
261 };
262 };
263
264 vcc_ddr: DCDC_REG3 {
265 regulator-name = "vcc_ddr";
266 regulator-always-on;
267 regulator-boot-on;
268 regulator-state-mem {
269 regulator-on-in-suspend;
270 };
271 };
272
273 vcc_1v8: DCDC_REG4 {
274 regulator-name = "vcc_1v8";
275 regulator-always-on;
276 regulator-boot-on;
277 regulator-min-microvolt = <1800000>;
278 regulator-max-microvolt = <1800000>;
279 regulator-state-mem {
280 regulator-on-in-suspend;
281 regulator-suspend-microvolt = <1800000>;
282 };
283 };
284
285 vcc1v8_dvp: LDO_REG1 {
286 regulator-name = "vcc1v8_dvp";
287 regulator-always-on;
288 regulator-boot-on;
289 regulator-min-microvolt = <1800000>;
290 regulator-max-microvolt = <1800000>;
291 regulator-state-mem {
292 regulator-off-in-suspend;
293 };
294 };
295
296 vcc2v8_dvp: LDO_REG2 {
297 regulator-name = "vcc2v8_dvp";
298 regulator-always-on;
299 regulator-boot-on;
300 regulator-min-microvolt = <2800000>;
301 regulator-max-microvolt = <2800000>;
302 regulator-state-mem {
303 regulator-off-in-suspend;
304 };
305 };
306
307 vcc1v8_pmu: LDO_REG3 {
308 regulator-name = "vcc1v8_pmu";
309 regulator-always-on;
310 regulator-boot-on;
311 regulator-min-microvolt = <1800000>;
312 regulator-max-microvolt = <1800000>;
313 regulator-state-mem {
314 regulator-on-in-suspend;
315 regulator-suspend-microvolt = <1800000>;
316 };
317 };
318
319 vcc_sdio: LDO_REG4 {
320 regulator-name = "vcc_sdio";
321 regulator-always-on;
322 regulator-boot-on;
323 regulator-min-microvolt = <1800000>;
324 regulator-max-microvolt = <3000000>;
325 regulator-state-mem {
326 regulator-on-in-suspend;
327 regulator-suspend-microvolt = <3000000>;
328 };
329 };
330
331 vcca3v0_codec: LDO_REG5 {
332 regulator-name = "vcca3v0_codec";
333 regulator-always-on;
334 regulator-boot-on;
335 regulator-min-microvolt = <3000000>;
336 regulator-max-microvolt = <3000000>;
337 regulator-state-mem {
338 regulator-off-in-suspend;
339 };
340 };
341
342 vcc_1v5: LDO_REG6 {
343 regulator-name = "vcc_1v5";
344 regulator-always-on;
345 regulator-boot-on;
346 regulator-min-microvolt = <1500000>;
347 regulator-max-microvolt = <1500000>;
348 regulator-state-mem {
349 regulator-on-in-suspend;
350 regulator-suspend-microvolt = <1500000>;
351 };
352 };
353
354 vcca1v8_codec: LDO_REG7 {
355 regulator-name = "vcca1v8_codec";
356 regulator-always-on;
357 regulator-boot-on;
358 regulator-min-microvolt = <1800000>;
359 regulator-max-microvolt = <1800000>;
360 regulator-state-mem {
361 regulator-off-in-suspend;
362 };
363 };
364
365 vcc_3v0: LDO_REG8 {
366 regulator-name = "vcc_3v0";
367 regulator-always-on;
368 regulator-boot-on;
369 regulator-min-microvolt = <3000000>;
370 regulator-max-microvolt = <3000000>;
371 regulator-state-mem {
372 regulator-on-in-suspend;
373 regulator-suspend-microvolt = <3000000>;
374 };
375 };
376
377 vcc3v3_s3: vcc_lan: SWITCH_REG1 {
378 regulator-name = "vcc3v3_s3";
379 regulator-always-on;
380 regulator-boot-on;
381 regulator-state-mem {
382 regulator-off-in-suspend;
383 };
384 };
385
386 vcc3v3_s0: SWITCH_REG2 {
387 regulator-name = "vcc3v3_s0";
388 regulator-always-on;
389 regulator-boot-on;
390 regulator-state-mem {
391 regulator-off-in-suspend;
392 };
393 };
394 };
395 };
396
397 vdd_cpu_b: regulator@40 {
398 compatible = "silergy,syr827";
399 reg = <0x40>;
400 fcs,suspend-voltage-selector = <0>;
401 regulator-name = "vdd_cpu_b";
402 regulator-min-microvolt = <712500>;
403 regulator-max-microvolt = <1500000>;
404 regulator-ramp-delay = <1000>;
405 regulator-always-on;
406 regulator-boot-on;
407 vin-supply = <&vcc_sys>;
408
409 regulator-state-mem {
410 regulator-off-in-suspend;
411 };
412 };
413
414 vdd_gpu: regulator@41 {
415 compatible = "silergy,syr828";
416 reg = <0x41>;
417 fcs,suspend-voltage-selector = <1>;
418 regulator-name = "vdd_gpu";
419 regulator-min-microvolt = <712500>;
420 regulator-max-microvolt = <1500000>;
421 regulator-ramp-delay = <1000>;
422 regulator-always-on;
423 regulator-boot-on;
424 vin-supply = <&vcc_sys>;
425
426 regulator-state-mem {
427 regulator-off-in-suspend;
428 };
429 };
430};
431
432&i2c1 {
433 i2c-scl-rising-time-ns = <300>;
434 i2c-scl-falling-time-ns = <15>;
435 status = "okay";
436};
437
438&i2c3 {
439 i2c-scl-rising-time-ns = <450>;
440 i2c-scl-falling-time-ns = <15>;
441 status = "okay";
442};
443
444&i2c4 {
445 i2c-scl-rising-time-ns = <600>;
446 i2c-scl-falling-time-ns = <20>;
447 status = "okay";
448
449 fusb0: typec-portc@22 {
450 compatible = "fcs,fusb302";
451 reg = <0x22>;
452 interrupt-parent = <&gpio1>;
453 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
454 pinctrl-names = "default";
455 pinctrl-0 = <&fusb0_int>;
456 vbus-supply = <&vcc5v0_typec>;
457 status = "okay";
458 };
459};
460
461&i2s0 {
462 rockchip,playback-channels = <8>;
463 rockchip,capture-channels = <8>;
464 status = "okay";
465};
466
467&i2s1 {
468 rockchip,playback-channels = <2>;
469 rockchip,capture-channels = <2>;
470 status = "okay";
471};
472
473&i2s2 {
474 status = "okay";
475};
476
477&io_domains {
478 status = "okay";
479
480 bt656-supply = <&vcc1v8_dvp>;
481 audio-supply = <&vcca1v8_codec>;
482 sdmmc-supply = <&vcc_sdio>;
483 gpio1830-supply = <&vcc_3v0>;
484};
485
486&pmu_io_domains {
487 pmu1830-supply = <&vcc_3v0>;
488 status = "okay";
489};
490
491&pinctrl {
492 buttons {
493 pwrbtn: pwrbtn {
494 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
495 };
496 };
497
498 fusb302x {
499 fusb0_int: fusb0-int {
500 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
501 };
502 };
503
504 leds {
505 work_led_gpio: work_led-gpio {
506 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
507 };
508
509 diy_led_gpio: diy_led-gpio {
510 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
511 };
512 };
513
514 lcd-panel {
515 lcd_panel_reset: lcd-panel-reset {
516 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
517 };
518 };
519
520 pcie {
521 pcie_pwr_en: pcie-pwr-en {
522 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
523 };
524 };
525
526 pmic {
527 pmic_int_l: pmic-int-l {
528 rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
529 };
530
531 vsel1_gpio: vsel1-gpio {
532 rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
533 };
534
535 vsel2_gpio: vsel2-gpio {
536 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
537 };
538 };
539
540 sdio-pwrseq {
541 wifi_enable_h: wifi-enable-h {
542 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
543 };
544 };
545
546 usb-typec {
547 vcc5v0_typec_en: vcc5v0_typec_en {
548 rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
549 };
550 };
551
552 usb2 {
553 vcc5v0_host_en: vcc5v0-host-en {
554 rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
555 };
556 };
557};
558
559&pwm0 {
560 status = "okay";
561};
562
563&pwm2 {
564 status = "okay";
565};
566
567&saradc {
568 vref-supply = <&vcca1v8_s3>;
569 status = "okay";
570};
571
572&sdmmc {
573 bus-width = <4>;
574 cap-mmc-highspeed;
575 cap-sd-highspeed;
576 cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
577 disable-wp;
578 max-frequency = <150000000>;
579 pinctrl-names = "default";
580 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
581 status = "okay";
582};
583
584&sdhci {
585 bus-width = <8>;
586 mmc-hs400-1_8v;
587 mmc-hs400-enhanced-strobe;
588 non-removable;
589 status = "okay";
590};
591
592&tcphy0 {
593 status = "okay";
594};
595
596&tcphy1 {
597 status = "okay";
598};
599
600&tsadc {
601 /* tshut mode 0:CRU 1:GPIO */
602 rockchip,hw-tshut-mode = <1>;
603 /* tshut polarity 0:LOW 1:HIGH */
604 rockchip,hw-tshut-polarity = <1>;
605 status = "okay";
606};
607
608&u2phy0 {
609 status = "okay";
610
611 u2phy0_otg: otg-port {
612 status = "okay";
613 };
614
615 u2phy0_host: host-port {
616 phy-supply = <&vcc5v0_host>;
617 status = "okay";
618 };
619};
620
621&u2phy1 {
622 status = "okay";
623
624 u2phy1_otg: otg-port {
625 status = "okay";
626 };
627
628 u2phy1_host: host-port {
629 phy-supply = <&vcc5v0_host>;
630 status = "okay";
631 };
632};
633
634&uart0 {
635 pinctrl-names = "default";
636 pinctrl-0 = <&uart0_xfer &uart0_cts>;
637 status = "okay";
638};
639
640&uart2 {
641 status = "okay";
642};
643
644&usb_host0_ehci {
645 status = "okay";
646};
647
648&usb_host0_ohci {
649 status = "okay";
650};
651
652&usb_host1_ehci {
653 status = "okay";
654};
655
656&usb_host1_ohci {
657 status = "okay";
658};
659
660&usbdrd3_0 {
661 status = "okay";
662};
663
664&usbdrd_dwc3_0 {
665 status = "okay";
666 dr_mode = "otg";
667};
668
669&usbdrd3_1 {
670 status = "okay";
671};
672
673&usbdrd_dwc3_1 {
674 status = "okay";
675 dr_mode = "host";
676};
677
678&vopb {
679 status = "okay";
680};
681
682&vopb_mmu {
683 status = "okay";
684};
685
686&vopl {
687 status = "okay";
688};
689
690&vopl_mmu {
691 status = "okay";
692};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
index 36b60791c156..5421e23760c3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
@@ -93,6 +93,19 @@
93 vin-supply = <&vcc_1v8>; 93 vin-supply = <&vcc_1v8>;
94 }; 94 };
95 95
96 vcc3v0_sd: vcc3v0-sd {
97 compatible = "regulator-fixed";
98 enable-active-high;
99 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
100 pinctrl-names = "default";
101 pinctrl-0 = <&sdmmc0_pwr_h>;
102 regulator-always-on;
103 regulator-max-microvolt = <3000000>;
104 regulator-min-microvolt = <3000000>;
105 regulator-name = "vcc3v0_sd";
106 vin-supply = <&vcc3v3_sys>;
107 };
108
96 vcc3v3_sys: vcc3v3-sys { 109 vcc3v3_sys: vcc3v3-sys {
97 compatible = "regulator-fixed"; 110 compatible = "regulator-fixed";
98 regulator-name = "vcc3v3_sys"; 111 regulator-name = "vcc3v3_sys";
@@ -103,20 +116,10 @@
103 vin-supply = <&vcc_sys>; 116 vin-supply = <&vcc_sys>;
104 }; 117 };
105 118
106 vcc_sys: vcc-sys {
107 compatible = "regulator-fixed";
108 regulator-name = "vcc_sys";
109 regulator-always-on;
110 regulator-boot-on;
111 regulator-min-microvolt = <5000000>;
112 regulator-max-microvolt = <5000000>;
113 vin-supply = <&dc_12v>;
114 };
115
116 vcc5v0_host: vcc5v0-host-regulator { 119 vcc5v0_host: vcc5v0-host-regulator {
117 compatible = "regulator-fixed"; 120 compatible = "regulator-fixed";
118 enable-active-high; 121 enable-active-high;
119 gpio = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>; 122 gpio = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
120 pinctrl-names = "default"; 123 pinctrl-names = "default";
121 pinctrl-0 = <&vcc5v0_host_en>; 124 pinctrl-0 = <&vcc5v0_host_en>;
122 regulator-name = "vcc5v0_host"; 125 regulator-name = "vcc5v0_host";
@@ -124,6 +127,26 @@
124 vin-supply = <&vcc_sys>; 127 vin-supply = <&vcc_sys>;
125 }; 128 };
126 129
130 vcc5v0_typec0: vcc5v0-typec0-regulator {
131 compatible = "regulator-fixed";
132 enable-active-high;
133 gpio = <&gpio2 RK_PA0 GPIO_ACTIVE_HIGH>;
134 pinctrl-names = "default";
135 pinctrl-0 = <&vcc5v0_typec0_en>;
136 regulator-name = "vcc5v0_typec0";
137 vin-supply = <&vcc_sys>;
138 };
139
140 vcc_sys: vcc-sys {
141 compatible = "regulator-fixed";
142 regulator-name = "vcc_sys";
143 regulator-always-on;
144 regulator-boot-on;
145 regulator-min-microvolt = <5000000>;
146 regulator-max-microvolt = <5000000>;
147 vin-supply = <&dc_12v>;
148 };
149
127 vdd_log: vdd-log { 150 vdd_log: vdd-log {
128 compatible = "pwm-regulator"; 151 compatible = "pwm-regulator";
129 pwms = <&pwm2 0 25000 1>; 152 pwms = <&pwm2 0 25000 1>;
@@ -208,7 +231,7 @@
208 #clock-cells = <1>; 231 #clock-cells = <1>;
209 clock-output-names = "xin32k", "rk808-clkout2"; 232 clock-output-names = "xin32k", "rk808-clkout2";
210 pinctrl-names = "default"; 233 pinctrl-names = "default";
211 pinctrl-0 = <&pmic_int_l &pmic_dvs2>; 234 pinctrl-0 = <&pmic_int_l>;
212 rockchip,system-power-controller; 235 rockchip,system-power-controller;
213 wakeup-source; 236 wakeup-source;
214 237
@@ -310,7 +333,7 @@
310 regulator-always-on; 333 regulator-always-on;
311 regulator-boot-on; 334 regulator-boot-on;
312 regulator-min-microvolt = <1800000>; 335 regulator-min-microvolt = <1800000>;
313 regulator-max-microvolt = <3000000>; 336 regulator-max-microvolt = <3300000>;
314 regulator-state-mem { 337 regulator-state-mem {
315 regulator-on-in-suspend; 338 regulator-on-in-suspend;
316 regulator-suspend-microvolt = <3000000>; 339 regulator-suspend-microvolt = <3000000>;
@@ -455,11 +478,6 @@
455 <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; 478 <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
456 }; 479 };
457 480
458 pmic_dvs2: pmic-dvs2 {
459 rockchip,pins =
460 <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
461 };
462
463 vsel1_gpio: vsel1-gpio { 481 vsel1_gpio: vsel1-gpio {
464 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 482 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
465 }; 483 };
@@ -469,11 +487,22 @@
469 }; 487 };
470 }; 488 };
471 489
490 sd {
491 sdmmc0_pwr_h: sdmmc0-pwr-h {
492 rockchip,pins =
493 <RK_GPIO0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
494 };
495 };
496
472 usb2 { 497 usb2 {
473 vcc5v0_host_en: vcc5v0-host-en { 498 vcc5v0_host_en: vcc5v0-host-en {
474 rockchip,pins = 499 rockchip,pins =
475 <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>; 500 <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
476 }; 501 };
502 vcc5v0_typec0_en: vcc5v0-typec0-en {
503 rockchip,pins =
504 <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
505 };
477 }; 506 };
478}; 507};
479 508
@@ -499,6 +528,7 @@
499}; 528};
500 529
501&sdmmc { 530&sdmmc {
531 broken-cd;
502 bus-width = <4>; 532 bus-width = <4>;
503 cap-mmc-highspeed; 533 cap-mmc-highspeed;
504 cap-sd-highspeed; 534 cap-sd-highspeed;
@@ -507,6 +537,7 @@
507 max-frequency = <150000000>; 537 max-frequency = <150000000>;
508 pinctrl-names = "default"; 538 pinctrl-names = "default";
509 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 539 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
540 vmmc-supply = <&vcc3v0_sd>;
510 vqmmc-supply = <&vcc_sdio>; 541 vqmmc-supply = <&vcc_sdio>;
511 status = "okay"; 542 status = "okay";
512}; 543};
@@ -531,6 +562,7 @@
531 status = "okay"; 562 status = "okay";
532 563
533 u2phy0_otg: otg-port { 564 u2phy0_otg: otg-port {
565 phy-supply = <&vcc5v0_typec0>;
534 status = "okay"; 566 status = "okay";
535 }; 567 };
536 568
diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index c88e603396f6..99e7f65c1779 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -74,6 +74,7 @@
74 clocks = <&cru ARMCLKL>; 74 clocks = <&cru ARMCLKL>;
75 #cooling-cells = <2>; /* min followed by max */ 75 #cooling-cells = <2>; /* min followed by max */
76 dynamic-power-coefficient = <100>; 76 dynamic-power-coefficient = <100>;
77 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
77 }; 78 };
78 79
79 cpu_l1: cpu@1 { 80 cpu_l1: cpu@1 {
@@ -84,6 +85,7 @@
84 clocks = <&cru ARMCLKL>; 85 clocks = <&cru ARMCLKL>;
85 #cooling-cells = <2>; /* min followed by max */ 86 #cooling-cells = <2>; /* min followed by max */
86 dynamic-power-coefficient = <100>; 87 dynamic-power-coefficient = <100>;
88 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
87 }; 89 };
88 90
89 cpu_l2: cpu@2 { 91 cpu_l2: cpu@2 {
@@ -94,6 +96,7 @@
94 clocks = <&cru ARMCLKL>; 96 clocks = <&cru ARMCLKL>;
95 #cooling-cells = <2>; /* min followed by max */ 97 #cooling-cells = <2>; /* min followed by max */
96 dynamic-power-coefficient = <100>; 98 dynamic-power-coefficient = <100>;
99 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
97 }; 100 };
98 101
99 cpu_l3: cpu@3 { 102 cpu_l3: cpu@3 {
@@ -104,6 +107,7 @@
104 clocks = <&cru ARMCLKL>; 107 clocks = <&cru ARMCLKL>;
105 #cooling-cells = <2>; /* min followed by max */ 108 #cooling-cells = <2>; /* min followed by max */
106 dynamic-power-coefficient = <100>; 109 dynamic-power-coefficient = <100>;
110 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
107 }; 111 };
108 112
109 cpu_b0: cpu@100 { 113 cpu_b0: cpu@100 {
@@ -114,6 +118,7 @@
114 clocks = <&cru ARMCLKB>; 118 clocks = <&cru ARMCLKB>;
115 #cooling-cells = <2>; /* min followed by max */ 119 #cooling-cells = <2>; /* min followed by max */
116 dynamic-power-coefficient = <436>; 120 dynamic-power-coefficient = <436>;
121 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
117 }; 122 };
118 123
119 cpu_b1: cpu@101 { 124 cpu_b1: cpu@101 {
@@ -124,6 +129,29 @@
124 clocks = <&cru ARMCLKB>; 129 clocks = <&cru ARMCLKB>;
125 #cooling-cells = <2>; /* min followed by max */ 130 #cooling-cells = <2>; /* min followed by max */
126 dynamic-power-coefficient = <436>; 131 dynamic-power-coefficient = <436>;
132 cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
133 };
134
135 idle-states {
136 entry-method = "psci";
137
138 CPU_SLEEP: cpu-sleep {
139 compatible = "arm,idle-state";
140 local-timer-stop;
141 arm,psci-suspend-param = <0x0010000>;
142 entry-latency-us = <120>;
143 exit-latency-us = <250>;
144 min-residency-us = <900>;
145 };
146
147 CLUSTER_SLEEP: cluster-sleep {
148 compatible = "arm,idle-state";
149 local-timer-stop;
150 arm,psci-suspend-param = <0x1010000>;
151 entry-latency-us = <400>;
152 exit-latency-us = <500>;
153 min-residency-us = <2000>;
154 };
127 }; 155 };
128 }; 156 };
129 157
@@ -1720,6 +1748,8 @@
1720 resets = <&cru SRST_P_MIPI_DSI0>; 1748 resets = <&cru SRST_P_MIPI_DSI0>;
1721 reset-names = "apb"; 1749 reset-names = "apb";
1722 rockchip,grf = <&grf>; 1750 rockchip,grf = <&grf>;
1751 #address-cells = <1>;
1752 #size-cells = <0>;
1723 status = "disabled"; 1753 status = "disabled";
1724 1754
1725 ports { 1755 ports {
@@ -1754,6 +1784,8 @@
1754 resets = <&cru SRST_P_MIPI_DSI1>; 1784 resets = <&cru SRST_P_MIPI_DSI1>;
1755 reset-names = "apb"; 1785 reset-names = "apb";
1756 rockchip,grf = <&grf>; 1786 rockchip,grf = <&grf>;
1787 #address-cells = <1>;
1788 #size-cells = <0>;
1757 status = "disabled"; 1789 status = "disabled";
1758 1790
1759 ports { 1791 ports {
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
index d63b56e944de..31ba52b14e99 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
@@ -116,6 +116,28 @@
116 #size-cells = <1>; 116 #size-cells = <1>;
117 ranges = <0 0 0 0xffffffff>; 117 ranges = <0 0 0 0xffffffff>;
118 118
119 spi0: spi@54006000 {
120 compatible = "socionext,uniphier-scssi";
121 status = "disabled";
122 reg = <0x54006000 0x100>;
123 interrupts = <0 39 4>;
124 pinctrl-names = "default";
125 pinctrl-0 = <&pinctrl_spi0>;
126 clocks = <&peri_clk 11>;
127 resets = <&peri_rst 11>;
128 };
129
130 spi1: spi@54006100 {
131 compatible = "socionext,uniphier-scssi";
132 status = "disabled";
133 reg = <0x54006100 0x100>;
134 interrupts = <0 216 4>;
135 pinctrl-names = "default";
136 pinctrl-0 = <&pinctrl_spi1>;
137 clocks = <&peri_clk 11>;
138 resets = <&peri_rst 11>;
139 };
140
119 serial0: serial@54006800 { 141 serial0: serial@54006800 {
120 compatible = "socionext,uniphier-uart"; 142 compatible = "socionext,uniphier-uart";
121 status = "disabled"; 143 status = "disabled";
@@ -432,6 +454,8 @@
432 <&mio_clk 12>; 454 <&mio_clk 12>;
433 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>, 455 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
434 <&mio_rst 12>; 456 <&mio_rst 12>;
457 phy-names = "usb";
458 phys = <&usb_phy0>;
435 has-transaction-translator; 459 has-transaction-translator;
436 }; 460 };
437 461
@@ -446,6 +470,8 @@
446 <&mio_clk 13>; 470 <&mio_clk 13>;
447 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>, 471 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
448 <&mio_rst 13>; 472 <&mio_rst 13>;
473 phy-names = "usb";
474 phys = <&usb_phy1>;
449 has-transaction-translator; 475 has-transaction-translator;
450 }; 476 };
451 477
@@ -460,6 +486,8 @@
460 <&mio_clk 14>; 486 <&mio_clk 14>;
461 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>, 487 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
462 <&mio_rst 14>; 488 <&mio_rst 14>;
489 phy-names = "usb";
490 phys = <&usb_phy2>;
463 has-transaction-translator; 491 has-transaction-translator;
464 }; 492 };
465 493
@@ -488,6 +516,27 @@
488 pinctrl: pinctrl { 516 pinctrl: pinctrl {
489 compatible = "socionext,uniphier-ld11-pinctrl"; 517 compatible = "socionext,uniphier-ld11-pinctrl";
490 }; 518 };
519
520 usb-phy {
521 compatible = "socionext,uniphier-ld11-usb2-phy";
522 #address-cells = <1>;
523 #size-cells = <0>;
524
525 usb_phy0: phy@0 {
526 reg = <0>;
527 #phy-cells = <0>;
528 };
529
530 usb_phy1: phy@1 {
531 reg = <1>;
532 #phy-cells = <0>;
533 };
534
535 usb_phy2: phy@2 {
536 reg = <2>;
537 #phy-cells = <0>;
538 };
539 };
491 }; 540 };
492 541
493 soc-glue@5f900000 { 542 soc-glue@5f900000 {
@@ -571,7 +620,8 @@
571 interrupts = <0 65 4>; 620 interrupts = <0 65 4>;
572 pinctrl-names = "default"; 621 pinctrl-names = "default";
573 pinctrl-0 = <&pinctrl_nand>; 622 pinctrl-0 = <&pinctrl_nand>;
574 clocks = <&sys_clk 2>; 623 clock-names = "nand", "nand_x", "ecc";
624 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
575 resets = <&sys_rst 2>; 625 resets = <&sys_rst 2>;
576 }; 626 };
577 }; 627 };
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
index 1a5e7c24b901..d7ae28afef7d 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
@@ -148,3 +148,7 @@
148&nand { 148&nand {
149 status = "okay"; 149 status = "okay";
150}; 150};
151
152&usb {
153 status = "okay";
154};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
index 440c2e6a638b..406244a5c8e8 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
@@ -75,3 +75,7 @@
75 drive-strength = <9>; 75 drive-strength = <9>;
76 }; 76 };
77}; 77};
78
79&usb {
80 status = "okay";
81};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
index caf112629caa..d7e2d8969601 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
@@ -224,6 +224,50 @@
224 #size-cells = <1>; 224 #size-cells = <1>;
225 ranges = <0 0 0 0xffffffff>; 225 ranges = <0 0 0 0xffffffff>;
226 226
227 spi0: spi@54006000 {
228 compatible = "socionext,uniphier-scssi";
229 status = "disabled";
230 reg = <0x54006000 0x100>;
231 interrupts = <0 39 4>;
232 pinctrl-names = "default";
233 pinctrl-0 = <&pinctrl_spi0>;
234 clocks = <&peri_clk 11>;
235 resets = <&peri_rst 11>;
236 };
237
238 spi1: spi@54006100 {
239 compatible = "socionext,uniphier-scssi";
240 status = "disabled";
241 reg = <0x54006100 0x100>;
242 interrupts = <0 216 4>;
243 pinctrl-names = "default";
244 pinctrl-0 = <&pinctrl_spi1>;
245 clocks = <&peri_clk 11>;
246 resets = <&peri_rst 11>;
247 };
248
249 spi2: spi@54006200 {
250 compatible = "socionext,uniphier-scssi";
251 status = "disabled";
252 reg = <0x54006200 0x100>;
253 interrupts = <0 229 4>;
254 pinctrl-names = "default";
255 pinctrl-0 = <&pinctrl_spi2>;
256 clocks = <&peri_clk 11>;
257 resets = <&peri_rst 11>;
258 };
259
260 spi3: spi@54006300 {
261 compatible = "socionext,uniphier-scssi";
262 status = "disabled";
263 reg = <0x54006300 0x100>;
264 interrupts = <0 230 4>;
265 pinctrl-names = "default";
266 pinctrl-0 = <&pinctrl_spi3>;
267 clocks = <&peri_clk 11>;
268 resets = <&peri_rst 11>;
269 };
270
227 serial0: serial@54006800 { 271 serial0: serial@54006800 {
228 compatible = "socionext,uniphier-uart"; 272 compatible = "socionext,uniphier-uart";
229 status = "disabled"; 273 status = "disabled";
@@ -528,6 +572,20 @@
528 cdns,phy-dll-delay-sdclk-hsmmc = <21>; 572 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
529 }; 573 };
530 574
575 sd: sdhc@5a400000 {
576 compatible = "socionext,uniphier-sd-v3.1.1";
577 status = "disabled";
578 reg = <0x5a400000 0x800>;
579 interrupts = <0 76 4>;
580 pinctrl-names = "default";
581 pinctrl-0 = <&pinctrl_sd>;
582 clocks = <&sd_clk 0>;
583 reset-names = "host";
584 resets = <&sd_rst 0>;
585 bus-width = <4>;
586 cap-sd-highspeed;
587 };
588
531 soc_glue: soc-glue@5f800000 { 589 soc_glue: soc-glue@5f800000 {
532 compatible = "socionext,uniphier-ld20-soc-glue", 590 compatible = "socionext,uniphier-ld20-soc-glue",
533 "simple-mfd", "syscon"; 591 "simple-mfd", "syscon";
@@ -553,6 +611,50 @@
553 efuse@200 { 611 efuse@200 {
554 compatible = "socionext,uniphier-efuse"; 612 compatible = "socionext,uniphier-efuse";
555 reg = <0x200 0x68>; 613 reg = <0x200 0x68>;
614 #address-cells = <1>;
615 #size-cells = <1>;
616
617 /* USB cells */
618 usb_rterm0: trim@54,4 {
619 reg = <0x54 1>;
620 bits = <4 2>;
621 };
622 usb_rterm1: trim@55,4 {
623 reg = <0x55 1>;
624 bits = <4 2>;
625 };
626 usb_rterm2: trim@58,4 {
627 reg = <0x58 1>;
628 bits = <4 2>;
629 };
630 usb_rterm3: trim@59,4 {
631 reg = <0x59 1>;
632 bits = <4 2>;
633 };
634 usb_sel_t0: trim@54,0 {
635 reg = <0x54 1>;
636 bits = <0 4>;
637 };
638 usb_sel_t1: trim@55,0 {
639 reg = <0x55 1>;
640 bits = <0 4>;
641 };
642 usb_sel_t2: trim@58,0 {
643 reg = <0x58 1>;
644 bits = <0 4>;
645 };
646 usb_sel_t3: trim@59,0 {
647 reg = <0x59 1>;
648 bits = <0 4>;
649 };
650 usb_hs_i0: trim@56,0 {
651 reg = <0x56 1>;
652 bits = <0 4>;
653 };
654 usb_hs_i2: trim@5a,0 {
655 reg = <0x5a 1>;
656 bits = <0 4>;
657 };
556 }; 658 };
557 }; 659 };
558 660
@@ -620,6 +722,156 @@
620 }; 722 };
621 }; 723 };
622 724
725 usb: usb@65a00000 {
726 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
727 status = "disabled";
728 reg = <0x65a00000 0xcd00>;
729 interrupt-names = "host";
730 interrupts = <0 134 4>;
731 pinctrl-names = "default";
732 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
733 <&pinctrl_usb2>, <&pinctrl_usb3>;
734 clock-names = "ref", "bus_early", "suspend";
735 clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
736 resets = <&usb_rst 15>;
737 phys = <&usb_hsphy0>, <&usb_hsphy1>,
738 <&usb_hsphy2>, <&usb_hsphy3>,
739 <&usb_ssphy0>, <&usb_ssphy1>;
740 dr_mode = "host";
741 };
742
743 usb-glue@65b00000 {
744 compatible = "socionext,uniphier-ld20-dwc3-glue",
745 "simple-mfd";
746 #address-cells = <1>;
747 #size-cells = <1>;
748 ranges = <0 0x65b00000 0x400>;
749
750 usb_rst: reset@0 {
751 compatible = "socionext,uniphier-ld20-usb3-reset";
752 reg = <0x0 0x4>;
753 #reset-cells = <1>;
754 clock-names = "link";
755 clocks = <&sys_clk 14>;
756 reset-names = "link";
757 resets = <&sys_rst 14>;
758 };
759
760 usb_vbus0: regulator@100 {
761 compatible = "socionext,uniphier-ld20-usb3-regulator";
762 reg = <0x100 0x10>;
763 clock-names = "link";
764 clocks = <&sys_clk 14>;
765 reset-names = "link";
766 resets = <&sys_rst 14>;
767 };
768
769 usb_vbus1: regulator@110 {
770 compatible = "socionext,uniphier-ld20-usb3-regulator";
771 reg = <0x110 0x10>;
772 clock-names = "link";
773 clocks = <&sys_clk 14>;
774 reset-names = "link";
775 resets = <&sys_rst 14>;
776 };
777
778 usb_vbus2: regulator@120 {
779 compatible = "socionext,uniphier-ld20-usb3-regulator";
780 reg = <0x120 0x10>;
781 clock-names = "link";
782 clocks = <&sys_clk 14>;
783 reset-names = "link";
784 resets = <&sys_rst 14>;
785 };
786
787 usb_vbus3: regulator@130 {
788 compatible = "socionext,uniphier-ld20-usb3-regulator";
789 reg = <0x130 0x10>;
790 clock-names = "link";
791 clocks = <&sys_clk 14>;
792 reset-names = "link";
793 resets = <&sys_rst 14>;
794 };
795
796 usb_hsphy0: hs-phy@200 {
797 compatible = "socionext,uniphier-ld20-usb3-hsphy";
798 reg = <0x200 0x10>;
799 #phy-cells = <0>;
800 clock-names = "link", "phy";
801 clocks = <&sys_clk 14>, <&sys_clk 16>;
802 reset-names = "link", "phy";
803 resets = <&sys_rst 14>, <&sys_rst 16>;
804 vbus-supply = <&usb_vbus0>;
805 nvmem-cell-names = "rterm", "sel_t", "hs_i";
806 nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
807 <&usb_hs_i0>;
808 };
809
810 usb_hsphy1: hs-phy@210 {
811 compatible = "socionext,uniphier-ld20-usb3-hsphy";
812 reg = <0x210 0x10>;
813 #phy-cells = <0>;
814 clock-names = "link", "phy";
815 clocks = <&sys_clk 14>, <&sys_clk 16>;
816 reset-names = "link", "phy";
817 resets = <&sys_rst 14>, <&sys_rst 16>;
818 vbus-supply = <&usb_vbus1>;
819 nvmem-cell-names = "rterm", "sel_t", "hs_i";
820 nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
821 <&usb_hs_i0>;
822 };
823
824 usb_hsphy2: hs-phy@220 {
825 compatible = "socionext,uniphier-ld20-usb3-hsphy";
826 reg = <0x220 0x10>;
827 #phy-cells = <0>;
828 clock-names = "link", "phy";
829 clocks = <&sys_clk 14>, <&sys_clk 17>;
830 reset-names = "link", "phy";
831 resets = <&sys_rst 14>, <&sys_rst 17>;
832 vbus-supply = <&usb_vbus2>;
833 nvmem-cell-names = "rterm", "sel_t", "hs_i";
834 nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
835 <&usb_hs_i2>;
836 };
837
838 usb_hsphy3: hs-phy@230 {
839 compatible = "socionext,uniphier-ld20-usb3-hsphy";
840 reg = <0x230 0x10>;
841 #phy-cells = <0>;
842 clock-names = "link", "phy";
843 clocks = <&sys_clk 14>, <&sys_clk 17>;
844 reset-names = "link", "phy";
845 resets = <&sys_rst 14>, <&sys_rst 17>;
846 vbus-supply = <&usb_vbus3>;
847 nvmem-cell-names = "rterm", "sel_t", "hs_i";
848 nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
849 <&usb_hs_i2>;
850 };
851
852 usb_ssphy0: ss-phy@300 {
853 compatible = "socionext,uniphier-ld20-usb3-ssphy";
854 reg = <0x300 0x10>;
855 #phy-cells = <0>;
856 clock-names = "link", "phy";
857 clocks = <&sys_clk 14>, <&sys_clk 18>;
858 reset-names = "link", "phy";
859 resets = <&sys_rst 14>, <&sys_rst 18>;
860 vbus-supply = <&usb_vbus0>;
861 };
862
863 usb_ssphy1: ss-phy@310 {
864 compatible = "socionext,uniphier-ld20-usb3-ssphy";
865 reg = <0x310 0x10>;
866 #phy-cells = <0>;
867 clock-names = "link", "phy";
868 clocks = <&sys_clk 14>, <&sys_clk 19>;
869 reset-names = "link", "phy";
870 resets = <&sys_rst 14>, <&sys_rst 19>;
871 vbus-supply = <&usb_vbus1>;
872 };
873 };
874
623 nand: nand@68000000 { 875 nand: nand@68000000 {
624 compatible = "socionext,uniphier-denali-nand-v5b"; 876 compatible = "socionext,uniphier-denali-nand-v5b";
625 status = "disabled"; 877 status = "disabled";
@@ -628,7 +880,8 @@
628 interrupts = <0 65 4>; 880 interrupts = <0 65 4>;
629 pinctrl-names = "default"; 881 pinctrl-names = "default";
630 pinctrl-0 = <&pinctrl_nand>; 882 pinctrl-0 = <&pinctrl_nand>;
631 clocks = <&sys_clk 2>; 883 clock-names = "nand", "nand_x", "ecc";
884 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
632 resets = <&sys_rst 2>; 885 resets = <&sys_rst 2>;
633 }; 886 };
634 }; 887 };
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
index c1bb607bd211..a41f7cac952a 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
@@ -75,6 +75,10 @@
75 status = "okay"; 75 status = "okay";
76}; 76};
77 77
78&sd {
79 status = "okay";
80};
81
78&eth0 { 82&eth0 {
79 status = "okay"; 83 status = "okay";
80 phy-handle = <&ethphy0>; 84 phy-handle = <&ethphy0>;
@@ -100,3 +104,11 @@
100&nand { 104&nand {
101 status = "okay"; 105 status = "okay";
102}; 106};
107
108&usb0 {
109 status = "okay";
110};
111
112&usb1 {
113 status = "okay";
114};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
index 2a4cf427f5d3..4f57c9e9d7a8 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
@@ -144,6 +144,28 @@
144 #size-cells = <1>; 144 #size-cells = <1>;
145 ranges = <0 0 0 0xffffffff>; 145 ranges = <0 0 0 0xffffffff>;
146 146
147 spi0: spi@54006000 {
148 compatible = "socionext,uniphier-scssi";
149 status = "disabled";
150 reg = <0x54006000 0x100>;
151 interrupts = <0 39 4>;
152 pinctrl-names = "default";
153 pinctrl-0 = <&pinctrl_spi0>;
154 clocks = <&peri_clk 11>;
155 resets = <&peri_rst 11>;
156 };
157
158 spi1: spi@54006100 {
159 compatible = "socionext,uniphier-scssi";
160 status = "disabled";
161 reg = <0x54006100 0x100>;
162 interrupts = <0 216 4>;
163 pinctrl-names = "default";
164 pinctrl-0 = <&pinctrl_spi1>;
165 clocks = <&peri_clk 11>;
166 resets = <&peri_rst 11>;
167 };
168
147 serial0: serial@54006800 { 169 serial0: serial@54006800 {
148 compatible = "socionext,uniphier-uart"; 170 compatible = "socionext,uniphier-uart";
149 status = "disabled"; 171 status = "disabled";
@@ -341,6 +363,24 @@
341 cdns,phy-dll-delay-sdclk-hsmmc = <21>; 363 cdns,phy-dll-delay-sdclk-hsmmc = <21>;
342 }; 364 };
343 365
366 sd: sdhc@5a400000 {
367 compatible = "socionext,uniphier-sd-v3.1.1";
368 status = "disabled";
369 reg = <0x5a400000 0x800>;
370 interrupts = <0 76 4>;
371 pinctrl-names = "default", "uhs";
372 pinctrl-0 = <&pinctrl_sd>;
373 pinctrl-1 = <&pinctrl_sd_uhs>;
374 clocks = <&sd_clk 0>;
375 reset-names = "host";
376 resets = <&sd_rst 0>;
377 bus-width = <4>;
378 cap-sd-highspeed;
379 sd-uhs-sdr12;
380 sd-uhs-sdr25;
381 sd-uhs-sdr50;
382 };
383
344 soc_glue: soc-glue@5f800000 { 384 soc_glue: soc-glue@5f800000 {
345 compatible = "socionext,uniphier-pxs3-soc-glue", 385 compatible = "socionext,uniphier-pxs3-soc-glue",
346 "simple-mfd", "syscon"; 386 "simple-mfd", "syscon";
@@ -366,6 +406,50 @@
366 efuse@200 { 406 efuse@200 {
367 compatible = "socionext,uniphier-efuse"; 407 compatible = "socionext,uniphier-efuse";
368 reg = <0x200 0x68>; 408 reg = <0x200 0x68>;
409 #address-cells = <1>;
410 #size-cells = <1>;
411
412 /* USB cells */
413 usb_rterm0: trim@54,4 {
414 reg = <0x54 1>;
415 bits = <4 2>;
416 };
417 usb_rterm1: trim@55,4 {
418 reg = <0x55 1>;
419 bits = <4 2>;
420 };
421 usb_rterm2: trim@58,4 {
422 reg = <0x58 1>;
423 bits = <4 2>;
424 };
425 usb_rterm3: trim@59,4 {
426 reg = <0x59 1>;
427 bits = <4 2>;
428 };
429 usb_sel_t0: trim@54,0 {
430 reg = <0x54 1>;
431 bits = <0 4>;
432 };
433 usb_sel_t1: trim@55,0 {
434 reg = <0x55 1>;
435 bits = <0 4>;
436 };
437 usb_sel_t2: trim@58,0 {
438 reg = <0x58 1>;
439 bits = <0 4>;
440 };
441 usb_sel_t3: trim@59,0 {
442 reg = <0x59 1>;
443 bits = <0 4>;
444 };
445 usb_hs_i0: trim@56,0 {
446 reg = <0x56 1>;
447 bits = <0 4>;
448 };
449 usb_hs_i2: trim@5a,0 {
450 reg = <0x5a 1>;
451 bits = <0 4>;
452 };
369 }; 453 };
370 }; 454 };
371 455
@@ -447,6 +531,202 @@
447 }; 531 };
448 }; 532 };
449 533
534 usb0: usb@65a00000 {
535 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
536 status = "disabled";
537 reg = <0x65a00000 0xcd00>;
538 interrupt-names = "host", "peripheral";
539 interrupts = <0 134 4>, <0 135 4>;
540 pinctrl-names = "default";
541 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
542 clock-names = "ref", "bus_early", "suspend";
543 clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
544 resets = <&usb0_rst 15>;
545 phys = <&usb0_hsphy0>, <&usb0_hsphy1>,
546 <&usb0_ssphy0>, <&usb0_ssphy1>;
547 dr_mode = "host";
548 };
549
550 usb-glue@65b00000 {
551 compatible = "socionext,uniphier-pxs3-dwc3-glue",
552 "simple-mfd";
553 #address-cells = <1>;
554 #size-cells = <1>;
555 ranges = <0 0x65b00000 0x400>;
556
557 usb0_rst: reset@0 {
558 compatible = "socionext,uniphier-pxs3-usb3-reset";
559 reg = <0x0 0x4>;
560 #reset-cells = <1>;
561 clock-names = "link";
562 clocks = <&sys_clk 12>;
563 reset-names = "link";
564 resets = <&sys_rst 12>;
565 };
566
567 usb0_vbus0: regulator@100 {
568 compatible = "socionext,uniphier-pxs3-usb3-regulator";
569 reg = <0x100 0x10>;
570 clock-names = "link";
571 clocks = <&sys_clk 12>;
572 reset-names = "link";
573 resets = <&sys_rst 12>;
574 };
575
576 usb0_vbus1: regulator@110 {
577 compatible = "socionext,uniphier-pxs3-usb3-regulator";
578 reg = <0x110 0x10>;
579 clock-names = "link";
580 clocks = <&sys_clk 12>;
581 reset-names = "link";
582 resets = <&sys_rst 12>;
583 };
584
585 usb0_hsphy0: hs-phy@200 {
586 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
587 reg = <0x200 0x10>;
588 #phy-cells = <0>;
589 clock-names = "link", "phy";
590 clocks = <&sys_clk 12>, <&sys_clk 16>;
591 reset-names = "link", "phy";
592 resets = <&sys_rst 12>, <&sys_rst 16>;
593 vbus-supply = <&usb0_vbus0>;
594 nvmem-cell-names = "rterm", "sel_t", "hs_i";
595 nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
596 <&usb_hs_i0>;
597 };
598
599 usb0_hsphy1: hs-phy@210 {
600 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
601 reg = <0x210 0x10>;
602 #phy-cells = <0>;
603 clock-names = "link", "phy";
604 clocks = <&sys_clk 12>, <&sys_clk 16>;
605 reset-names = "link", "phy";
606 resets = <&sys_rst 12>, <&sys_rst 16>;
607 vbus-supply = <&usb0_vbus1>;
608 nvmem-cell-names = "rterm", "sel_t", "hs_i";
609 nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
610 <&usb_hs_i0>;
611 };
612
613 usb0_ssphy0: ss-phy@300 {
614 compatible = "socionext,uniphier-pxs3-usb3-ssphy";
615 reg = <0x300 0x10>;
616 #phy-cells = <0>;
617 clock-names = "link", "phy";
618 clocks = <&sys_clk 12>, <&sys_clk 17>;
619 reset-names = "link", "phy";
620 resets = <&sys_rst 12>, <&sys_rst 17>;
621 vbus-supply = <&usb0_vbus0>;
622 };
623
624 usb0_ssphy1: ss-phy@310 {
625 compatible = "socionext,uniphier-pxs3-usb3-ssphy";
626 reg = <0x310 0x10>;
627 #phy-cells = <0>;
628 clock-names = "link", "phy";
629 clocks = <&sys_clk 12>, <&sys_clk 18>;
630 reset-names = "link", "phy";
631 resets = <&sys_rst 12>, <&sys_rst 18>;
632 vbus-supply = <&usb0_vbus1>;
633 };
634 };
635
636 usb1: usb@65c00000 {
637 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
638 status = "disabled";
639 reg = <0x65c00000 0xcd00>;
640 interrupt-names = "host", "peripheral";
641 interrupts = <0 137 4>, <0 138 4>;
642 pinctrl-names = "default";
643 pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
644 clock-names = "ref", "bus_early", "suspend";
645 clocks = <&sys_clk 13>, <&sys_clk 13>, <&sys_clk 13>;
646 resets = <&usb1_rst 15>;
647 phys = <&usb1_hsphy0>, <&usb1_hsphy1>,
648 <&usb1_ssphy0>;
649 dr_mode = "host";
650 };
651
652 usb-glue@65d00000 {
653 compatible = "socionext,uniphier-pxs3-dwc3-glue",
654 "simple-mfd";
655 #address-cells = <1>;
656 #size-cells = <1>;
657 ranges = <0 0x65d00000 0x400>;
658
659 usb1_rst: reset@0 {
660 compatible = "socionext,uniphier-pxs3-usb3-reset";
661 reg = <0x0 0x4>;
662 #reset-cells = <1>;
663 clock-names = "link";
664 clocks = <&sys_clk 13>;
665 reset-names = "link";
666 resets = <&sys_rst 13>;
667 };
668
669 usb1_vbus0: regulator@100 {
670 compatible = "socionext,uniphier-pxs3-usb3-regulator";
671 reg = <0x100 0x10>;
672 clock-names = "link";
673 clocks = <&sys_clk 13>;
674 reset-names = "link";
675 resets = <&sys_rst 13>;
676 };
677
678 usb1_vbus1: regulator@110 {
679 compatible = "socionext,uniphier-pxs3-usb3-regulator";
680 reg = <0x110 0x10>;
681 clock-names = "link";
682 clocks = <&sys_clk 13>;
683 reset-names = "link";
684 resets = <&sys_rst 13>;
685 };
686
687 usb1_hsphy0: hs-phy@200 {
688 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
689 reg = <0x200 0x10>;
690 #phy-cells = <0>;
691 clock-names = "link", "phy", "phy-ext";
692 clocks = <&sys_clk 13>, <&sys_clk 20>,
693 <&sys_clk 14>;
694 reset-names = "link", "phy";
695 resets = <&sys_rst 13>, <&sys_rst 20>;
696 vbus-supply = <&usb1_vbus0>;
697 nvmem-cell-names = "rterm", "sel_t", "hs_i";
698 nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
699 <&usb_hs_i2>;
700 };
701
702 usb1_hsphy1: hs-phy@210 {
703 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
704 reg = <0x210 0x10>;
705 #phy-cells = <0>;
706 clock-names = "link", "phy", "phy-ext";
707 clocks = <&sys_clk 13>, <&sys_clk 20>,
708 <&sys_clk 14>;
709 reset-names = "link", "phy";
710 resets = <&sys_rst 13>, <&sys_rst 20>;
711 vbus-supply = <&usb1_vbus1>;
712 nvmem-cell-names = "rterm", "sel_t", "hs_i";
713 nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
714 <&usb_hs_i2>;
715 };
716
717 usb1_ssphy0: ss-phy@300 {
718 compatible = "socionext,uniphier-pxs3-usb3-ssphy";
719 reg = <0x300 0x10>;
720 #phy-cells = <0>;
721 clock-names = "link", "phy", "phy-ext";
722 clocks = <&sys_clk 13>, <&sys_clk 21>,
723 <&sys_clk 14>;
724 reset-names = "link", "phy";
725 resets = <&sys_rst 13>, <&sys_rst 21>;
726 vbus-supply = <&usb1_vbus0>;
727 };
728 };
729
450 nand: nand@68000000 { 730 nand: nand@68000000 {
451 compatible = "socionext,uniphier-denali-nand-v5b"; 731 compatible = "socionext,uniphier-denali-nand-v5b";
452 status = "disabled"; 732 status = "disabled";
@@ -455,7 +735,8 @@
455 interrupts = <0 65 4>; 735 interrupts = <0 65 4>;
456 pinctrl-names = "default"; 736 pinctrl-names = "default";
457 pinctrl-0 = <&pinctrl_nand>; 737 pinctrl-0 = <&pinctrl_nand>;
458 clocks = <&sys_clk 2>; 738 clock-names = "nand", "nand_x", "ecc";
739 clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
459 resets = <&sys_rst 2>; 740 resets = <&sys_rst 2>;
460 }; 741 };
461 }; 742 };
diff --git a/arch/arm64/boot/dts/synaptics/as370.dtsi b/arch/arm64/boot/dts/synaptics/as370.dtsi
new file mode 100644
index 000000000000..7331acf3874e
--- /dev/null
+++ b/arch/arm64/boot/dts/synaptics/as370.dtsi
@@ -0,0 +1,173 @@
1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright (C) 2018 Synaptics Incorporated
4 *
5 * Author: Jisheng Zhang <jszhang@kernel.org>
6 */
7
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9
10/ {
11 compatible = "syna,as370";
12 interrupt-parent = <&gic>;
13 #address-cells = <2>;
14 #size-cells = <2>;
15
16 psci {
17 compatible = "arm,psci-1.0";
18 method = "smc";
19 };
20
21 cpus {
22 #address-cells = <1>;
23 #size-cells = <0>;
24
25 cpu0: cpu@0 {
26 compatible = "arm,cortex-a53", "arm,armv8";
27 device_type = "cpu";
28 reg = <0x0>;
29 enable-method = "psci";
30 next-level-cache = <&l2>;
31 cpu-idle-states = <&CPU_SLEEP_0>;
32 };
33
34 cpu1: cpu@1 {
35 compatible = "arm,cortex-a53", "arm,armv8";
36 device_type = "cpu";
37 reg = <0x1>;
38 enable-method = "psci";
39 next-level-cache = <&l2>;
40 cpu-idle-states = <&CPU_SLEEP_0>;
41 };
42
43 cpu2: cpu@2 {
44 compatible = "arm,cortex-a53", "arm,armv8";
45 device_type = "cpu";
46 reg = <0x2>;
47 enable-method = "psci";
48 next-level-cache = <&l2>;
49 cpu-idle-states = <&CPU_SLEEP_0>;
50 };
51
52 cpu3: cpu@3 {
53 compatible = "arm,cortex-a53", "arm,armv8";
54 device_type = "cpu";
55 reg = <0x3>;
56 enable-method = "psci";
57 next-level-cache = <&l2>;
58 cpu-idle-states = <&CPU_SLEEP_0>;
59 };
60
61 l2: cache {
62 compatible = "cache";
63 };
64
65 idle-states {
66 entry-method = "psci";
67 CPU_SLEEP_0: cpu-sleep-0 {
68 compatible = "arm,idle-state";
69 local-timer-stop;
70 arm,psci-suspend-param = <0x0010000>;
71 entry-latency-us = <75>;
72 exit-latency-us = <155>;
73 min-residency-us = <1000>;
74 };
75 };
76 };
77
78 osc: osc {
79 compatible = "fixed-clock";
80 #clock-cells = <0>;
81 clock-frequency = <25000000>;
82 };
83
84 pmu {
85 compatible = "arm,cortex-a53-pmu";
86 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
87 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
88 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
89 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
90 interrupt-affinity = <&cpu0>,
91 <&cpu1>,
92 <&cpu2>,
93 <&cpu3>;
94 };
95
96 timer {
97 compatible = "arm,armv8-timer";
98 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
99 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
100 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
101 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
102 };
103
104 soc@f7000000 {
105 compatible = "simple-bus";
106 #address-cells = <1>;
107 #size-cells = <1>;
108 ranges = <0 0 0xf7000000 0x1000000>;
109
110 gic: interrupt-controller@901000 {
111 compatible = "arm,gic-400";
112 #interrupt-cells = <3>;
113 interrupt-controller;
114 reg = <0x901000 0x1000>,
115 <0x902000 0x2000>,
116 <0x904000 0x2000>,
117 <0x906000 0x2000>;
118 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
119 };
120
121 apb@e80000 {
122 compatible = "simple-bus";
123 #address-cells = <1>;
124 #size-cells = <1>;
125 ranges = <0 0xe80000 0x10000>;
126
127 uart0: serial@c00 {
128 compatible = "snps,dw-apb-uart";
129 reg = <0xc00 0x100>;
130 interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
131 clocks = <&osc>;
132 reg-shift = <2>;
133 status = "disabled";
134 };
135
136 gpio0: gpio@1800 {
137 compatible = "snps,dw-apb-gpio";
138 reg = <0x1800 0x400>;
139 #address-cells = <1>;
140 #size-cells = <0>;
141
142 porta: gpio-port@0 {
143 compatible = "snps,dw-apb-gpio-port";
144 gpio-controller;
145 #gpio-cells = <2>;
146 snps,nr-gpios = <32>;
147 reg = <0>;
148 interrupt-controller;
149 #interrupt-cells = <2>;
150 interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
151 };
152 };
153
154 gpio1: gpio@2000 {
155 compatible = "snps,dw-apb-gpio";
156 reg = <0x2000 0x400>;
157 #address-cells = <1>;
158 #size-cells = <0>;
159
160 portb: gpio-port@1 {
161 compatible = "snps,dw-apb-gpio-port";
162 gpio-controller;
163 #gpio-cells = <2>;
164 snps,nr-gpios = <32>;
165 reg = <0>;
166 interrupt-controller;
167 #interrupt-cells = <2>;
168 interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
169 };
170 };
171 };
172 };
173};
diff --git a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
index 2409344df4fa..adcd6341e40c 100644
--- a/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65-main.dtsi
@@ -8,13 +8,13 @@
8&cbass_main { 8&cbass_main {
9 gic500: interrupt-controller@1800000 { 9 gic500: interrupt-controller@1800000 {
10 compatible = "arm,gic-v3"; 10 compatible = "arm,gic-v3";
11 #address-cells = <1>; 11 #address-cells = <2>;
12 #size-cells = <1>; 12 #size-cells = <2>;
13 ranges; 13 ranges;
14 #interrupt-cells = <3>; 14 #interrupt-cells = <3>;
15 interrupt-controller; 15 interrupt-controller;
16 reg = <0x01800000 0x10000>, /* GICD */ 16 reg = <0x00 0x01800000 0x00 0x10000>, /* GICD */
17 <0x01880000 0x90000>; /* GICR */ 17 <0x00 0x01880000 0x00 0x90000>; /* GICR */
18 /* 18 /*
19 * vcpumntirq: 19 * vcpumntirq:
20 * virtual CPU interface maintenance interrupt 20 * virtual CPU interface maintenance interrupt
@@ -23,9 +23,50 @@
23 23
24 gic_its: gic-its@18200000 { 24 gic_its: gic-its@18200000 {
25 compatible = "arm,gic-v3-its"; 25 compatible = "arm,gic-v3-its";
26 reg = <0x01820000 0x10000>; 26 reg = <0x00 0x01820000 0x00 0x10000>;
27 msi-controller; 27 msi-controller;
28 #msi-cells = <1>; 28 #msi-cells = <1>;
29 }; 29 };
30 }; 30 };
31
32 secure_proxy_main: mailbox@32c00000 {
33 compatible = "ti,am654-secure-proxy";
34 #mbox-cells = <1>;
35 reg-names = "target_data", "rt", "scfg";
36 reg = <0x00 0x32c00000 0x00 0x100000>,
37 <0x00 0x32400000 0x00 0x100000>,
38 <0x00 0x32800000 0x00 0x100000>;
39 interrupt-names = "rx_011";
40 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
41 };
42
43 main_uart0: serial@2800000 {
44 compatible = "ti,am654-uart";
45 reg = <0x00 0x02800000 0x00 0x100>;
46 reg-shift = <2>;
47 reg-io-width = <4>;
48 interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
49 clock-frequency = <48000000>;
50 current-speed = <115200>;
51 };
52
53 main_uart1: serial@2810000 {
54 compatible = "ti,am654-uart";
55 reg = <0x00 0x02810000 0x00 0x100>;
56 reg-shift = <2>;
57 reg-io-width = <4>;
58 interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
59 clock-frequency = <48000000>;
60 current-speed = <115200>;
61 };
62
63 main_uart2: serial@2820000 {
64 compatible = "ti,am654-uart";
65 reg = <0x00 0x02820000 0x00 0x100>;
66 reg-shift = <2>;
67 reg-io-width = <4>;
68 interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
69 clock-frequency = <48000000>;
70 current-speed = <115200>;
71 };
31}; 72};
diff --git a/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
new file mode 100644
index 000000000000..8c611d16df44
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
@@ -0,0 +1,18 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for AM6 SoC Family MCU Domain peripherals
4 *
5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
6 */
7
8&cbass_mcu {
9 mcu_uart0: serial@40a00000 {
10 compatible = "ti,am654-uart";
11 reg = <0x00 0x40a00000 0x00 0x100>;
12 reg-shift = <2>;
13 reg-io-width = <4>;
14 interrupts = <GIC_SPI 565 IRQ_TYPE_LEVEL_HIGH>;
15 clock-frequency = <96000000>;
16 current-speed = <115200>;
17 };
18};
diff --git a/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
new file mode 100644
index 000000000000..affc3c309353
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
@@ -0,0 +1,46 @@
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for AM6 SoC Family Wakeup Domain peripherals
4 *
5 * Copyright (C) 2016-2018 Texas Instruments Incorporated - http://www.ti.com/
6 */
7
8&cbass_wakeup {
9 dmsc: dmsc {
10 compatible = "ti,k2g-sci";
11 ti,host-id = <12>;
12 #address-cells = <1>;
13 #size-cells = <1>;
14 ranges;
15
16 mbox-names = "rx", "tx";
17
18 mboxes= <&secure_proxy_main 11>,
19 <&secure_proxy_main 13>;
20
21 k3_pds: power-controller {
22 compatible = "ti,sci-pm-domain";
23 #power-domain-cells = <1>;
24 };
25
26 k3_clks: clocks {
27 compatible = "ti,k2g-sci-clk";
28 #clock-cells = <2>;
29 };
30
31 k3_reset: reset-controller {
32 compatible = "ti,sci-reset";
33 #reset-cells = <2>;
34 };
35 };
36
37 wkup_uart0: serial@42300000 {
38 compatible = "ti,am654-uart";
39 reg = <0x00 0x42300000 0x00 0x100>;
40 reg-shift = <2>;
41 reg-io-width = <4>;
42 interrupts = <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
43 clock-frequency = <48000000>;
44 current-speed = <115200>;
45 };
46};
diff --git a/arch/arm64/boot/dts/ti/k3-am65.dtsi b/arch/arm64/boot/dts/ti/k3-am65.dtsi
index cede1fa0983c..3d4bf369d030 100644
--- a/arch/arm64/boot/dts/ti/k3-am65.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am65.dtsi
@@ -16,6 +16,14 @@
16 #address-cells = <2>; 16 #address-cells = <2>;
17 #size-cells = <2>; 17 #size-cells = <2>;
18 18
19 aliases {
20 serial0 = &wkup_uart0;
21 serial1 = &mcu_uart0;
22 serial2 = &main_uart0;
23 serial3 = &main_uart1;
24 serial4 = &main_uart2;
25 };
26
19 chosen { }; 27 chosen { };
20 28
21 firmware { 29 firmware {
@@ -46,38 +54,38 @@
46 54
47 cbass_main: interconnect@100000 { 55 cbass_main: interconnect@100000 {
48 compatible = "simple-bus"; 56 compatible = "simple-bus";
49 #address-cells = <1>; 57 #address-cells = <2>;
50 #size-cells = <1>; 58 #size-cells = <2>;
51 ranges = <0x00100000 0x00 0x00100000 0x00020000>, /* ctrl mmr */ 59 ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
52 <0x00600000 0x00 0x00600000 0x00001100>, /* GPIO */ 60 <0x00 0x00600000 0x00 0x00600000 0x00 0x00001100>, /* GPIO */
53 <0x00900000 0x00 0x00900000 0x00012000>, /* serdes */ 61 <0x00 0x00900000 0x00 0x00900000 0x00 0x00012000>, /* serdes */
54 <0x01000000 0x00 0x01000000 0x0af02400>, /* Most peripherals */ 62 <0x00 0x01000000 0x00 0x01000000 0x00 0x0af02400>, /* Most peripherals */
55 <0x30800000 0x00 0x30800000 0x0bc00000>, /* MAIN NAVSS */ 63 <0x00 0x30800000 0x00 0x30800000 0x00 0x0bc00000>, /* MAIN NAVSS */
56 /* MCUSS Range */ 64 /* MCUSS Range */
57 <0x28380000 0x00 0x28380000 0x03880000>, 65 <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>,
58 <0x40200000 0x00 0x40200000 0x00900100>, 66 <0x00 0x40200000 0x00 0x40200000 0x00 0x00900100>,
59 <0x42040000 0x00 0x42040000 0x03ac2400>, 67 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>,
60 <0x45100000 0x00 0x45100000 0x00c24000>, 68 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>,
61 <0x46000000 0x00 0x46000000 0x00200000>, 69 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>,
62 <0x47000000 0x00 0x47000000 0x00068400>; 70 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>;
63 71
64 cbass_mcu: interconnect@28380000 { 72 cbass_mcu: interconnect@28380000 {
65 compatible = "simple-bus"; 73 compatible = "simple-bus";
66 #address-cells = <1>; 74 #address-cells = <2>;
67 #size-cells = <1>; 75 #size-cells = <2>;
68 ranges = <0x28380000 0x28380000 0x03880000>, /* MCU NAVSS*/ 76 ranges = <0x00 0x28380000 0x00 0x28380000 0x00 0x03880000>, /* MCU NAVSS*/
69 <0x40200000 0x40200000 0x00900100>, /* First peripheral window */ 77 <0x00 0x40200000 0x00 0x40200000 0x00 0x00900100>, /* First peripheral window */
70 <0x42040000 0x42040000 0x03ac2400>, /* WKUP */ 78 <0x00 0x42040000 0x00 0x42040000 0x00 0x03ac2400>, /* WKUP */
71 <0x45100000 0x45100000 0x00c24000>, /* MMRs, remaining NAVSS */ 79 <0x00 0x45100000 0x00 0x45100000 0x00 0x00c24000>, /* MMRs, remaining NAVSS */
72 <0x46000000 0x46000000 0x00200000>, /* CPSW */ 80 <0x00 0x46000000 0x00 0x46000000 0x00 0x00200000>, /* CPSW */
73 <0x47000000 0x47000000 0x00068400>; /* OSPI space 1 */ 81 <0x00 0x47000000 0x00 0x47000000 0x00 0x00068400>; /* OSPI space 1 */
74 82
75 cbass_wakeup: interconnect@42040000 { 83 cbass_wakeup: interconnect@42040000 {
76 compatible = "simple-bus"; 84 compatible = "simple-bus";
77 #address-cells = <1>; 85 #address-cells = <1>;
78 #size-cells = <1>; 86 #size-cells = <1>;
79 /* WKUP Basic peripherals */ 87 /* WKUP Basic peripherals */
80 ranges = <0x42040000 0x42040000 0x03ac2400>; 88 ranges = <0x42040000 0x00 0x42040000 0x03ac2400>;
81 }; 89 };
82 }; 90 };
83 }; 91 };
@@ -85,3 +93,5 @@
85 93
86/* Now include the peripherals for each bus segments */ 94/* Now include the peripherals for each bus segments */
87#include "k3-am65-main.dtsi" 95#include "k3-am65-main.dtsi"
96#include "k3-am65-mcu.dtsi"
97#include "k3-am65-wakeup.dtsi"
diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index af6956fdc13f..e146ac2ad781 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -34,3 +34,8 @@
34 }; 34 };
35 }; 35 };
36}; 36};
37
38&wkup_uart0 {
39 /* Wakeup UART is used by System firmware */
40 status = "disabled";
41};
diff --git a/include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h b/include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
new file mode 100644
index 000000000000..20f43404cac0
--- /dev/null
+++ b/include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
@@ -0,0 +1,18 @@
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * pinctrl-tegra-io-pad.h: Tegra I/O pad source voltage configuration constants
4 * pinctrl bindings.
5 *
6 * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
7 *
8 * Author: Aapo Vienamo <avienamo@nvidia.com>
9 */
10
11#ifndef _DT_BINDINGS_PINCTRL_TEGRA_IO_PAD_H
12#define _DT_BINDINGS_PINCTRL_TEGRA_IO_PAD_H
13
14/* Voltage levels of the I/O pad's source rail */
15#define TEGRA_IO_PAD_VOLTAGE_1V8 0
16#define TEGRA_IO_PAD_VOLTAGE_3V3 1
17
18#endif
diff --git a/include/dt-bindings/power/owl-s900-powergate.h b/include/dt-bindings/power/owl-s900-powergate.h
new file mode 100644
index 000000000000..d939bd964657
--- /dev/null
+++ b/include/dt-bindings/power/owl-s900-powergate.h
@@ -0,0 +1,23 @@
1/* SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) */
2/*
3 * Actions Semi S900 SPS
4 *
5 * Copyright (c) 2018 Linaro Ltd.
6 */
7#ifndef DT_BINDINGS_POWER_OWL_S900_POWERGATE_H
8#define DT_BINDINGS_POWER_OWL_S900_POWERGATE_H
9
10#define S900_PD_GPU_B 0
11#define S900_PD_VCE 1
12#define S900_PD_SENSOR 2
13#define S900_PD_VDE 3
14#define S900_PD_HDE 4
15#define S900_PD_USB3 5
16#define S900_PD_DDR0 6
17#define S900_PD_DDR1 7
18#define S900_PD_DE 8
19#define S900_PD_NAND 9
20#define S900_PD_USB2_H0 10
21#define S900_PD_USB2_H1 11
22
23#endif