]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge tag 'armsoc-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 11 Sep 2017 03:54:48 +0000 (20:54 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 11 Sep 2017 03:54:48 +0000 (20:54 -0700)
Pull ARM/arm64 Devicetree updates from Olof Johansson:
 "As usual, device tree updates is the bulk of our material in this
  merge window. This time around, 559 patches affecting both 32- and
  64-bit platforms.

  Changes are too many to list individually, but some of the larger
  ones:

  New platform/SoC support:

   - Automotive:
     + Renesas R-Car D3 (R8A77995)
     + TI DT76x
     + MediaTek mt2712e
   - Communication-oriented:
     + Qualcomm IPQ8074
     + Broadcom Stingray
     + Marvell Armada 8080
   - Set top box:
     + Uniphier PXs3

  Besides some vendor reference boards for the SoC above, there are also
  several new boards/machines:

   - TI AM335x Moxa UC-8100-ME-T open platform
   - TI AM57xx Beaglebone X15 Rev C
   - Microchip/Atmel sama5d27 SoM1 EK
   - Broadcom Raspberry Pi Zero W
   - Gemini-based D-Link DIR-685 router
   - Freescale i.MX6:
     + Toradex Apalis module + Apalis and Ixora carrier boards
     + Engicam GEAM6UL Starter Kit
   - Freescale i.MX53-based Beckhoff CX9020 Embedded PC
   - Mediatek mt7623-based BananaPi R2
   - Several Allwinner-based single-board computers:
  + Cubietruck plus
  + Bananapi M3, M2M and M64
  + NanoPi A64
  + A64-OLinuXino
  + Pine64
   - Rockchip RK3328 Pine64/Rock64 board support
   - Rockchip RK3399 boards:
  + RK3399 Sapphire module on Excavator carrier (RK3399 reference design)
  + Theobroma Systems RK3399-Q7 SoM
   - ZTE ZX296718 PCBOX Board"

* tag 'armsoc-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (559 commits)
  ARM: dts: at91: at91sam9g45: add AC97
  arm64: dts: marvell: mcbin: enable more networking ports
  arm64: dts: marvell: add a reference to the sysctrl syscon in the ppv2 node
  arm64: dts: marvell: add TX interrupts for PPv2.2
  arm64: dts: uniphier: add PXs3 SoC support
  ARM: dts: uniphier: add pinctrl groups of ethernet phy mode
  ARM: dts: uniphier: fix size of sdctrl nodes
  ARM: dts: uniphier: add AIDET nodes
  arm64: dts: uniphier: fix size of sdctrl node
  arm64: dts: uniphier: add AIDET nodes
  Revert "ARM: dts: sun8i: h3: Enable dwmac-sun8i on the Beelink X2"
  arm64: dts: uniphier: add reset controller node of analog amplifier
  arm64: dts: marvell: add Device Tree files for Armada-8KP
  arm64: dts: rockchip: add Haikou baseboard with RK3399-Q7 SoM
  arm64: dts: rockchip: add RK3399-Q7 (Puma) SoM
  dt-bindings: add rk3399-q7 SoM
  ARM: dts: rockchip: enable usb for rv1108-evb
  ARM: dts: rockchip: add usb nodes for rv1108 SoCs
  dt-bindings: update grf-binding for rv1108 SoCs
  ARM: dts: aspeed-g4: fix AHB window size of the SMC controllers
  ...

494 files changed:
Documentation/devicetree/bindings/arm/amlogic.txt
Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt
Documentation/devicetree/bindings/arm/bhf.txt [new file with mode: 0644]
Documentation/devicetree/bindings/arm/cpus.txt
Documentation/devicetree/bindings/arm/marvell/armada-8kp.txt [new file with mode: 0644]
Documentation/devicetree/bindings/arm/mediatek.txt
Documentation/devicetree/bindings/arm/omap/omap.txt
Documentation/devicetree/bindings/arm/qcom.txt
Documentation/devicetree/bindings/arm/rockchip.txt
Documentation/devicetree/bindings/arm/shmobile.txt
Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt
Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
Documentation/devicetree/bindings/display/renesas,du.txt
Documentation/devicetree/bindings/dma/ti-edma.txt
Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt
Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
Documentation/devicetree/bindings/net/can/c_can.txt
Documentation/devicetree/bindings/net/mediatek-net.txt
Documentation/devicetree/bindings/pci/mvebu-pci.txt
Documentation/devicetree/bindings/power/renesas,apmu.txt
Documentation/devicetree/bindings/serial/mtk-uart.txt
Documentation/devicetree/bindings/soc/rockchip/grf.txt
Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
Documentation/devicetree/bindings/sram/renesas,smp-sram.txt [new file with mode: 0644]
Documentation/devicetree/bindings/vendor-prefixes.txt
Documentation/devicetree/bindings/watchdog/mtk-wdt.txt
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-bone-common.dtsi
arch/arm/boot/dts/am335x-chiliboard.dts
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts [new file with mode: 0644]
arch/arm/boot/dts/am437x-gp-evm.dts
arch/arm/boot/dts/am43x-epos-evm.dts
arch/arm/boot/dts/am571x-idk.dts
arch/arm/boot/dts/am572x-idk.dts
arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi
arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts
arch/arm/boot/dts/am57xx-beagle-x15-revc.dts [new file with mode: 0644]
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/boot/dts/am57xx-idk-common.dtsi
arch/arm/boot/dts/armada-370.dtsi
arch/arm/boot/dts/armada-375.dtsi
arch/arm/boot/dts/armada-380.dtsi
arch/arm/boot/dts/armada-385-db-ap.dts
arch/arm/boot/dts/armada-385-turris-omnia.dts
arch/arm/boot/dts/armada-385.dtsi
arch/arm/boot/dts/armada-388-clearfog.dts
arch/arm/boot/dts/armada-388-clearfog.dtsi
arch/arm/boot/dts/armada-388-db.dts
arch/arm/boot/dts/armada-388-gp.dts
arch/arm/boot/dts/armada-388-rd.dts
arch/arm/boot/dts/armada-38x.dtsi
arch/arm/boot/dts/armada-390-db.dts
arch/arm/boot/dts/armada-395-gp.dts
arch/arm/boot/dts/armada-398-db.dts
arch/arm/boot/dts/armada-39x.dtsi
arch/arm/boot/dts/armada-xp-98dx3236.dtsi
arch/arm/boot/dts/armada-xp-db.dts
arch/arm/boot/dts/armada-xp-gp.dts
arch/arm/boot/dts/armada-xp-mv78230.dtsi
arch/arm/boot/dts/armada-xp-mv78260.dtsi
arch/arm/boot/dts/armada-xp-mv78460.dtsi
arch/arm/boot/dts/aspeed-g4.dtsi
arch/arm/boot/dts/at91-sama5d27_som1.dtsi [new file with mode: 0644]
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts [new file with mode: 0644]
arch/arm/boot/dts/at91-sama5d2_xplained.dts
arch/arm/boot/dts/at91sam9g45.dtsi
arch/arm/boot/dts/at91sam9m10g45ek.dts
arch/arm/boot/dts/bcm-cygnus.dtsi
arch/arm/boot/dts/bcm-nsp.dtsi
arch/arm/boot/dts/bcm2835-rpi-a-plus.dts
arch/arm/boot/dts/bcm2835-rpi-a.dts
arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
arch/arm/boot/dts/bcm2835-rpi-b.dts
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm2835-rpi-zero.dts
arch/arm/boot/dts/bcm2835-rpi.dtsi
arch/arm/boot/dts/bcm2836-rpi-2-b.dts
arch/arm/boot/dts/bcm2836.dtsi
arch/arm/boot/dts/bcm2837-rpi-3-b.dts
arch/arm/boot/dts/bcm2837.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
arch/arm/boot/dts/bcm4708-netgear-r6250.dts
arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts
arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts
arch/arm/boot/dts/bcm47189-tenda-ac9.dts
arch/arm/boot/dts/bcm5301x.dtsi
arch/arm/boot/dts/bcm53573.dtsi
arch/arm/boot/dts/bcm911360_entphn.dts
arch/arm/boot/dts/bcm947189acdbmr.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm958522er.dts
arch/arm/boot/dts/bcm958525er.dts
arch/arm/boot/dts/bcm958525xmc.dts
arch/arm/boot/dts/bcm958622hr.dts
arch/arm/boot/dts/bcm958623hr.dts
arch/arm/boot/dts/bcm958625hr.dts
arch/arm/boot/dts/bcm958625k.dts
arch/arm/boot/dts/da850-lego-ev3.dts
arch/arm/boot/dts/dove-d3plug.dts
arch/arm/boot/dts/dove.dtsi
arch/arm/boot/dts/dra7-evm-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/dra7-evm.dts
arch/arm/boot/dts/dra7.dtsi
arch/arm/boot/dts/dra71-evm.dts
arch/arm/boot/dts/dra72-evm-common.dtsi
arch/arm/boot/dts/dra72-evm-revc.dts
arch/arm/boot/dts/dra72-evm-tps65917.dtsi
arch/arm/boot/dts/dra72-evm.dts
arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi [new file with mode: 0644]
arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi [new file with mode: 0644]
arch/arm/boot/dts/dra76-evm.dts [new file with mode: 0644]
arch/arm/boot/dts/dra76x.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos3250-artik5-eval.dts
arch/arm/boot/dts/exynos3250-artik5.dtsi
arch/arm/boot/dts/exynos3250-monk.dts
arch/arm/boot/dts/exynos3250-rinato.dts
arch/arm/boot/dts/exynos4210-trats.dts
arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
arch/arm/boot/dts/exynos4412-origen.dts
arch/arm/boot/dts/exynos4412-trats2.dts
arch/arm/boot/dts/exynos5250-arndale.dts
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250-snow-common.dtsi
arch/arm/boot/dts/exynos5250-spring.dts
arch/arm/boot/dts/exynos5260-xyref5260.dts
arch/arm/boot/dts/exynos5410-smdk5410.dts
arch/arm/boot/dts/exynos5420-peach-pit.dts
arch/arm/boot/dts/exynos5440.dtsi
arch/arm/boot/dts/exynos5800-peach-pi.dts
arch/arm/boot/dts/gemini-dlink-dir-685.dts [new file with mode: 0644]
arch/arm/boot/dts/gemini-nas4220b.dts
arch/arm/boot/dts/gemini-rut1xx.dts
arch/arm/boot/dts/gemini-sq201.dts
arch/arm/boot/dts/gemini-wbd111.dts
arch/arm/boot/dts/gemini-wbd222.dts
arch/arm/boot/dts/gemini.dtsi
arch/arm/boot/dts/imx25.dtsi
arch/arm/boot/dts/imx53-cx9020.dts [new file with mode: 0644]
arch/arm/boot/dts/imx53-pinfunc.h
arch/arm/boot/dts/imx53.dtsi
arch/arm/boot/dts/imx6dl-gw52xx.dts
arch/arm/boot/dts/imx6dl-gw53xx.dts
arch/arm/boot/dts/imx6dl-gw54xx.dts
arch/arm/boot/dts/imx6dl-riotboard.dts
arch/arm/boot/dts/imx6q-apalis-eval.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-apalis-ixora.dts
arch/arm/boot/dts/imx6q-b850v3.dts
arch/arm/boot/dts/imx6q-bx50v3.dtsi
arch/arm/boot/dts/imx6q-gw52xx.dts
arch/arm/boot/dts/imx6q-gw53xx.dts
arch/arm/boot/dts/imx6q-gw54xx.dts
arch/arm/boot/dts/imx6qdl-apalis.dtsi
arch/arm/boot/dts/imx6qdl-gw51xx.dtsi
arch/arm/boot/dts/imx6qdl-gw52xx.dtsi
arch/arm/boot/dts/imx6qdl-gw53xx.dtsi
arch/arm/boot/dts/imx6qdl-gw54xx.dtsi
arch/arm/boot/dts/imx6qdl-gw553x.dtsi
arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
arch/arm/boot/dts/imx6qdl.dtsi
arch/arm/boot/dts/imx6sl.dtsi
arch/arm/boot/dts/imx6sx.dtsi
arch/arm/boot/dts/imx6ul-14x14-evk.dts
arch/arm/boot/dts/imx6ul-geam-kit.dts [deleted file]
arch/arm/boot/dts/imx6ul-geam.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-geam.dtsi [deleted file]
arch/arm/boot/dts/imx6ul-isiot-common.dtsi [deleted file]
arch/arm/boot/dts/imx6ul-isiot-emmc.dts
arch/arm/boot/dts/imx6ul-isiot-nand.dts
arch/arm/boot/dts/imx6ul-isiot.dtsi
arch/arm/boot/dts/imx6ul-liteboard.dts
arch/arm/boot/dts/imx6ul.dtsi
arch/arm/boot/dts/imx7-colibri.dtsi
arch/arm/boot/dts/imx7d-sdb.dts
arch/arm/boot/dts/imx7s.dtsi
arch/arm/boot/dts/keystone-k2e-evm.dts
arch/arm/boot/dts/keystone-k2e.dtsi
arch/arm/boot/dts/keystone-k2g-evm.dts
arch/arm/boot/dts/keystone-k2g-ice.dts
arch/arm/boot/dts/keystone-k2g.dtsi
arch/arm/boot/dts/keystone-k2hk-evm.dts
arch/arm/boot/dts/keystone-k2hk.dtsi
arch/arm/boot/dts/keystone-k2l-evm.dts
arch/arm/boot/dts/keystone-k2l.dtsi
arch/arm/boot/dts/kirkwood-6192.dtsi
arch/arm/boot/dts/kirkwood-6281.dtsi
arch/arm/boot/dts/kirkwood-6282.dtsi
arch/arm/boot/dts/kirkwood-98dx4122.dtsi
arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts
arch/arm/boot/dts/meson.dtsi
arch/arm/boot/dts/meson6.dtsi
arch/arm/boot/dts/meson8.dtsi
arch/arm/boot/dts/meson8b.dtsi
arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi
arch/arm/boot/dts/mt2701.dtsi
arch/arm/boot/dts/mt6323.dtsi [new file with mode: 0644]
arch/arm/boot/dts/mt7623-evb.dts [deleted file]
arch/arm/boot/dts/mt7623.dtsi
arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts [new file with mode: 0644]
arch/arm/boot/dts/mt7623n-rfb-nand.dts [new file with mode: 0644]
arch/arm/boot/dts/mt7623n-rfb.dtsi [new file with mode: 0644]
arch/arm/boot/dts/omap3-beagle-xm.dts
arch/arm/boot/dts/omap3-beagle.dts
arch/arm/boot/dts/omap3-cm-t3517.dts
arch/arm/boot/dts/omap3-cm-t3730.dts
arch/arm/boot/dts/omap3-devkit8000-common.dtsi
arch/arm/boot/dts/omap3-evm-common.dtsi
arch/arm/boot/dts/omap3-n900.dts
arch/arm/boot/dts/omap3-overo-base.dtsi
arch/arm/boot/dts/omap3-tao3530.dtsi
arch/arm/boot/dts/omap3-zoom3.dts
arch/arm/boot/dts/omap3.dtsi
arch/arm/boot/dts/omap3430-sdp.dts
arch/arm/boot/dts/omap4-droid4-xt894.dts
arch/arm/boot/dts/omap4-duovero-parlor.dts
arch/arm/boot/dts/omap4-panda-common.dtsi
arch/arm/boot/dts/omap4-sdp-es23plus.dts
arch/arm/boot/dts/omap4-sdp.dts
arch/arm/boot/dts/omap4-var-om44customboard.dtsi
arch/arm/boot/dts/omap5-board-common.dtsi
arch/arm/boot/dts/omap5-cm-t54.dts
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi
arch/arm/boot/dts/qcom-ipq4019.dtsi
arch/arm/boot/dts/qcom-msm8974.dtsi
arch/arm/boot/dts/r7s72100-genmai.dts
arch/arm/boot/dts/r7s72100-rskrza1.dts
arch/arm/boot/dts/r7s72100.dtsi
arch/arm/boot/dts/r8a7743-iwg20d-q7.dts
arch/arm/boot/dts/r8a7743-iwg20m.dtsi
arch/arm/boot/dts/r8a7743-sk-rzg1m.dts
arch/arm/boot/dts/r8a7743.dtsi
arch/arm/boot/dts/r8a7745-sk-rzg1e.dts
arch/arm/boot/dts/r8a7745.dtsi
arch/arm/boot/dts/r8a7790.dtsi
arch/arm/boot/dts/r8a7791-koelsch.dts
arch/arm/boot/dts/r8a7791.dtsi
arch/arm/boot/dts/r8a7792.dtsi
arch/arm/boot/dts/r8a7793.dtsi
arch/arm/boot/dts/r8a7794.dtsi
arch/arm/boot/dts/rk3036-kylin.dts
arch/arm/boot/dts/rk3036.dtsi
arch/arm/boot/dts/rk3066a-bqcurie2.dts
arch/arm/boot/dts/rk3066a-mk808.dts
arch/arm/boot/dts/rk3066a-rayeager.dts
arch/arm/boot/dts/rk3188-px3-evb.dts
arch/arm/boot/dts/rk3188-radxarock.dts
arch/arm/boot/dts/rk3229-evb.dts
arch/arm/boot/dts/rk3229.dtsi [new file with mode: 0644]
arch/arm/boot/dts/rk322x.dtsi
arch/arm/boot/dts/rk3288-evb.dtsi
arch/arm/boot/dts/rk3288-fennec.dts
arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi
arch/arm/boot/dts/rk3288-firefly-reload.dts
arch/arm/boot/dts/rk3288-firefly.dtsi
arch/arm/boot/dts/rk3288-miqi.dts
arch/arm/boot/dts/rk3288-phycore-rdk.dts
arch/arm/boot/dts/rk3288-phycore-som.dtsi
arch/arm/boot/dts/rk3288-popmetal.dts
arch/arm/boot/dts/rk3288-r89.dts
arch/arm/boot/dts/rk3288-rock2-som.dtsi
arch/arm/boot/dts/rk3288-rock2-square.dts
arch/arm/boot/dts/rk3288-tinker.dts
arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi
arch/arm/boot/dts/rk3288-veyron.dtsi
arch/arm/boot/dts/rk3288.dtsi
arch/arm/boot/dts/rv1108-evb.dts
arch/arm/boot/dts/rv1108.dtsi
arch/arm/boot/dts/sama5d2.dtsi
arch/arm/boot/dts/spear1310.dtsi
arch/arm/boot/dts/spear1340.dtsi
arch/arm/boot/dts/ste-dbx5x0.dtsi
arch/arm/boot/dts/stm32429i-eval.dts
arch/arm/boot/dts/stm32f429-disco.dts
arch/arm/boot/dts/stm32f429.dtsi
arch/arm/boot/dts/stm32f469-disco.dts
arch/arm/boot/dts/stm32f746.dtsi
arch/arm/boot/dts/stm32f769-disco.dts
arch/arm/boot/dts/stm32h743.dtsi
arch/arm/boot/dts/stm32h743i-eval.dts
arch/arm/boot/dts/sun6i-a31.dtsi
arch/arm/boot/dts/sun7i-a20-cubietruck.dts
arch/arm/boot/dts/sun8i-a23-a33.dtsi
arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts
arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts [new file with mode: 0644]
arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts
arch/arm/boot/dts/sun8i-a83t.dtsi
arch/arm/boot/dts/sun8i-h3-beelink-x2.dts
arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts [new file with mode: 0644]
arch/arm/boot/dts/tegra114-dalmore.dts
arch/arm/boot/dts/tegra124-jetson-tk1.dts
arch/arm/boot/dts/tegra124.dtsi
arch/arm/boot/dts/tegra20-paz00.dts
arch/arm/boot/dts/tegra30-beaver.dts
arch/arm/boot/dts/tps65217.dtsi
arch/arm/boot/dts/uniphier-ld4-ref.dts
arch/arm/boot/dts/uniphier-ld4.dtsi
arch/arm/boot/dts/uniphier-ld6b-ref.dts
arch/arm/boot/dts/uniphier-ld6b.dtsi
arch/arm/boot/dts/uniphier-pinctrl.dtsi
arch/arm/boot/dts/uniphier-pro4-ace.dts
arch/arm/boot/dts/uniphier-pro4-ref.dts
arch/arm/boot/dts/uniphier-pro4-sanji.dts
arch/arm/boot/dts/uniphier-pro4.dtsi
arch/arm/boot/dts/uniphier-pro5.dtsi
arch/arm/boot/dts/uniphier-pxs2-gentil.dts
arch/arm/boot/dts/uniphier-pxs2-vodka.dts
arch/arm/boot/dts/uniphier-pxs2.dtsi
arch/arm/boot/dts/uniphier-sld3-ref.dts [deleted file]
arch/arm/boot/dts/uniphier-sld3.dtsi [deleted file]
arch/arm/boot/dts/uniphier-sld8-ref.dts
arch/arm/boot/dts/uniphier-sld8.dtsi
arch/arm/boot/dts/versatile-pb.dts
arch/arm/boot/dts/zx296702-ad1.dts
arch/arm/boot/dts/zynq-7000.dtsi
arch/arm/boot/dts/zynq-parallella.dts
arch/arm/boot/dts/zynq-zc702.dts
arch/arm/boot/dts/zynq-zc706.dts
arch/arm/boot/dts/zynq-zed.dts
arch/arm/boot/dts/zynq-zybo.dts
arch/arm64/Kconfig.platforms
arch/arm64/boot/dts/allwinner/Makefile
arch/arm64/boot/dts/allwinner/axp803.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi
arch/arm64/boot/dts/amlogic/meson-gx.dtsi
arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts
arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts
arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi
arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts
arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi
arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts
arch/arm64/boot/dts/amlogic/meson-gxl.dtsi
arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts
arch/arm64/boot/dts/amlogic/meson-gxm.dtsi
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
arch/arm64/boot/dts/apm/apm-storm.dtsi
arch/arm64/boot/dts/arm/foundation-v8.dtsi
arch/arm64/boot/dts/arm/juno-base.dtsi
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
arch/arm64/boot/dts/broadcom/Makefile
arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi [deleted symlink]
arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
arch/arm64/boot/dts/broadcom/bcm2837.dtsi [deleted file]
arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi [deleted symlink]
arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi [deleted symlink]
arch/arm64/boot/dts/broadcom/bcm283x.dtsi [deleted symlink]
arch/arm64/boot/dts/broadcom/northstar2/Makefile [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/ns2-clock.dtsi [deleted file]
arch/arm64/boot/dts/broadcom/ns2-svk.dts [deleted file]
arch/arm64/boot/dts/broadcom/ns2-xmc.dts [deleted file]
arch/arm64/boot/dts/broadcom/ns2.dtsi [deleted file]
arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi
arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts
arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts
arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi
arch/arm64/boot/dts/exynos/exynos5433.dtsi
arch/arm64/boot/dts/exynos/exynos7-espresso.dts
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts
arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls2088a-qds.dts
arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts
arch/arm64/boot/dts/hisilicon/hi3660.dtsi
arch/arm64/boot/dts/hisilicon/hi6220.dtsi
arch/arm64/boot/dts/hisilicon/hip07-d05.dts
arch/arm64/boot/dts/hisilicon/hip07.dtsi
arch/arm64/boot/dts/marvell/Makefile
arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts
arch/arm64/boot/dts/marvell/armada-37xx.dtsi
arch/arm64/boot/dts/marvell/armada-7040-db.dts
arch/arm64/boot/dts/marvell/armada-8040-db.dts
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts
arch/arm64/boot/dts/marvell/armada-8080-db.dts [new file with mode: 0644]
arch/arm64/boot/dts/marvell/armada-8080.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
arch/arm64/boot/dts/mediatek/Makefile
arch/arm64/boot/dts/mediatek/mt2712-evb.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt2712e.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt6797.dtsi
arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt7622.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi
arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi
arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/ipq8074.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/msm8916.dtsi
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/pmi8994.dtsi
arch/arm64/boot/dts/renesas/Makefile
arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb.dts
arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts
arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi
arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts
arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts
arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts
arch/arm64/boot/dts/renesas/r8a7795.dtsi
arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts
arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts
arch/arm64/boot/dts/renesas/r8a7796.dtsi
arch/arm64/boot/dts/renesas/r8a77995-draak.dts [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a77995.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/salvator-common.dtsi
arch/arm64/boot/dts/renesas/salvator-xs.dtsi
arch/arm64/boot/dts/renesas/ulcb.dtsi
arch/arm64/boot/dts/rockchip/Makefile
arch/arm64/boot/dts/rockchip/rk3328-evb.dts
arch/arm64/boot/dts/rockchip/rk3328-rock64.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3328.dtsi
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts
arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
arch/arm64/boot/dts/rockchip/rk3368.dtsi
arch/arm64/boot/dts/rockchip/rk3399-evb.dts
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi
arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi
arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3399.dtsi
arch/arm64/boot/dts/socionext/Makefile
arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts
arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts
arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi
arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi [changed from symlink to file mode: 0644]
arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts [new file with mode: 0644]
arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi [changed from symlink to file mode: 0644]
arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi [changed from symlink to file mode: 0644]
arch/arm64/boot/dts/xilinx/zynqmp-ep108-clk.dtsi
arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
arch/arm64/boot/dts/zte/Makefile
arch/arm64/boot/dts/zte/zx296718-evb.dts
arch/arm64/boot/dts/zte/zx296718-pcbox.dts [new file with mode: 0644]
arch/arm64/boot/dts/zte/zx296718.dtsi
drivers/clk/meson/gxbb.c
drivers/clk/meson/gxbb.h
drivers/clk/meson/meson8b.c
drivers/clk/meson/meson8b.h
include/dt-bindings/clock/gxbb-aoclkc.h
include/dt-bindings/clock/gxbb-clkc.h
include/dt-bindings/clock/meson8b-clkc.h
include/dt-bindings/clock/rv1108-cru.h
include/dt-bindings/genpd/k2g.h [deleted file]
include/dt-bindings/pinctrl/dra.h
include/dt-bindings/reset/amlogic,meson8b-clkc-reset.h [new file with mode: 0644]

index 520cdd2127cf8e864cc7975b0aab505922d88b13..4e4bc0bae597ad27b488a74c7b83762e7cb51a88 100644 (file)
@@ -1,6 +1,18 @@
 Amlogic MesonX device tree bindings
 -------------------------------------------
 
+Work in progress statement:
+
+Device tree files and bindings applying to Amlogic SoCs and boards are
+considered "unstable". Any Amlogic device tree binding may change at
+any time. Be sure to use a device tree binary and a kernel image
+generated from the same source tree.
+
+Please refer to Documentation/devicetree/bindings/ABI.txt for a definition of a
+stable binding/ABI.
+
+---------------------------------------------------------------
+
 Boards with the Amlogic Meson6 SoC shall have the following properties:
   Required root node property:
     compatible: "amlogic,meson6"
index 9c97de23919ae4312c3c42085393baf2536a727d..3e3efa046ac57ab49cee7d706cfff3b2d93c6247 100644 (file)
@@ -42,6 +42,10 @@ Raspberry Pi Zero
 Required root node properties:
 compatible = "raspberrypi,model-zero", "brcm,bcm2835";
 
+Raspberry Pi Zero W
+Required root node properties:
+compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
+
 Generic BCM2835 board
 Required root node properties:
 compatible = "brcm,bcm2835";
diff --git a/Documentation/devicetree/bindings/arm/bhf.txt b/Documentation/devicetree/bindings/arm/bhf.txt
new file mode 100644 (file)
index 0000000..886b503
--- /dev/null
@@ -0,0 +1,6 @@
+Beckhoff Automation Platforms Device Tree Bindings
+--------------------------------------------------
+
+CX9020 Embedded PC
+Required root node properties:
+    - compatible = "bhf,cx9020", "fsl,imx53";
index a44253cad2692e2c209e4fa1f148ccd89415496c..b92f12bd5244a7e6fe911f8000f7a37e499e0e40 100644 (file)
@@ -200,6 +200,7 @@ described below.
                            "arm,realview-smp"
                            "brcm,bcm11351-cpu-method"
                            "brcm,bcm23550"
+                           "brcm,bcm2836-smp"
                            "brcm,bcm-nsp-smp"
                            "brcm,brahma-b15"
                            "marvell,armada-375-smp"
diff --git a/Documentation/devicetree/bindings/arm/marvell/armada-8kp.txt b/Documentation/devicetree/bindings/arm/marvell/armada-8kp.txt
new file mode 100644 (file)
index 0000000..f3e9624
--- /dev/null
@@ -0,0 +1,15 @@
+Marvell Armada 8KPlus Platforms Device Tree Bindings
+----------------------------------------------------
+
+Boards using a SoC of the Marvell Armada 8KP families must carry
+the following root node property:
+
+ - compatible, with one of the following values:
+
+   - "marvell,armada-8080", "marvell,armada-ap810-octa", "marvell,armada-ap810"
+     when the SoC being used is the Armada 8080
+
+Example:
+
+compatible = "marvell,armada-8080-db", "marvell,armada-8080",
+            "marvell,armada-ap810-octa", "marvell,armada-ap810"
index da7bd138e6f2133bb43107e8b3cb8885f9791cb7..91d5178494834b57e2abe152bf5739a8930c0cd2 100644 (file)
@@ -1,12 +1,12 @@
-MediaTek mt65xx, mt67xx & mt81xx Platforms Device Tree Bindings
+MediaTek SoC based Platforms Device Tree Bindings
 
-Boards with a MediaTek mt65xx/mt67xx/mt81xx SoC shall have the
-following property:
+Boards with a MediaTek SoC shall have the following property:
 
 Required root node property:
 
 compatible: Must contain one of
    "mediatek,mt2701"
+   "mediatek,mt2712"
    "mediatek,mt6580"
    "mediatek,mt6589"
    "mediatek,mt6592"
@@ -14,7 +14,8 @@ compatible: Must contain one of
    "mediatek,mt6795"
    "mediatek,mt6797"
    "mediatek,mt7622"
-   "mediatek,mt7623"
+   "mediatek,mt7623" which is referred to MT7623N SoC
+   "mediatek,mt7623a"
    "mediatek,mt8127"
    "mediatek,mt8135"
    "mediatek,mt8173"
@@ -25,6 +26,9 @@ Supported boards:
 - Evaluation board for MT2701:
     Required root node properties:
       - compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
+- Evaluation board for MT2712:
+    Required root node properties:
+      - compatible = "mediatek,mt2712-evb", "mediatek,mt2712";
 - Evaluation board for MT6580:
     Required root node properties:
       - compatible = "mediatek,mt6580-evbp1", "mediatek,mt6580";
@@ -46,9 +50,11 @@ Supported boards:
 - Reference board variant 1 for MT7622:
     Required root node properties:
       - compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622";
-- Evaluation board for MT7623:
+- Reference  board for MT7623n with NAND:
     Required root node properties:
-      - compatible = "mediatek,mt7623-evb", "mediatek,mt7623";
+      - compatible = "mediatek,mt7623n-rfb-nand", "mediatek,mt7623";
+- Bananapi BPI-R2 board:
+      - compatible = "bananapi,bpi-r2", "mediatek,mt7623";
 - MTK mt8127 tablet moose EVB:
     Required root node properties:
       - compatible = "mediatek,mt8127-moose", "mediatek,mt8127";
index 9c6bebe434497479579460fce6bdbe2c2ca95853..2ecc712bf7075da21bd29104024a9c0fc15186f6 100644 (file)
@@ -157,6 +157,9 @@ Boards:
 - AM335X phyCORE-AM335x: Development kit
   compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"
 
+- AM335X UC-8100-ME-T: Communication-centric industrial computing platform
+  compatible = "moxa,uc-8100-me-t", "ti,am33xx";
+
 - OMAP5 EVM : Evaluation Module
   compatible = "ti,omap5-evm", "ti,omap5"
 
@@ -187,6 +190,9 @@ Boards:
 - AM5718 IDK
   compatible = "ti,am5718-idk", "ti,am5718", "ti,dra7"
 
+- DRA762 EVM:  Software Development Board for DRA762
+  compatible = "ti,dra76-evm", "ti,dra762", "ti,dra7"
+
 - DRA742 EVM:  Software Development Board for DRA742
   compatible = "ti,dra7-evm", "ti,dra742", "ti,dra74", "ti,dra7"
 
index 028d16e721862effcf95ee4e9055856255e99879..0ed4d39d7fe1876ec439a713576dfc4bf8d18518 100644 (file)
@@ -25,6 +25,7 @@ The 'SoC' element must be one of the following strings:
        msm8994
        msm8996
        mdm9615
+       ipq8074
 
 The 'board' element must be one of the following strings:
 
@@ -33,6 +34,7 @@ The 'board' element must be one of the following strings:
        dragonboard
        mtp
        sbc
+       hk01
 
 The 'soc_version' and 'board_version' elements take the form of v<Major>.<Minor>
 where the minor number may be omitted when it's zero, i.e.  v1.0 is the same
index 11c0ac4a2d56686d04bd969c44ea3c9c7efeabe2..b003148e2945129ef834feacb5b198813195484e 100644 (file)
@@ -134,6 +134,10 @@ Rockchip platforms device tree bindings
     Required root node properties:
      - compatible = "phytec,rk3288-pcm-947", "phytec,rk3288-phycore-som", "rockchip,rk3288";
 
+- Pine64 Rock64 board:
+    Required root node properties:
+    - compatible = "pine64,rock64", "rockchip,rk3328";
+
 - Rockchip PX3 Evaluation board:
     Required root node properties:
       - compatible = "rockchip,px3-evb", "rockchip,px3", "rockchip,rk3188";
@@ -173,6 +177,14 @@ Rockchip platforms device tree bindings
     Required root node properties:
       - compatible = "rockchip,rk3399-evb", "rockchip,rk3399";
 
+- Rockchip RK3399 Sapphire Excavator board:
+    Required root node properties:
+      - compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";
+
+- Theobroma Systems RK3399-Q7 Haikou Baseboard:
+    Required root node properties:
+      - compatible = "tsd,rk3399-q7-haikou", "rockchip,rk3399";
+
 - Tronsmart Orion R68 Meta
     Required root node properties:
       - compatible = "tronsmart,orion-r68-meta", "rockchip,rk3368";
index 1a671e3298643d9eaaec617b2b6183f77b380bed..ae75cb3b1331f82782c95a814d3a6bbda3f63857 100644 (file)
@@ -39,6 +39,8 @@ SoCs:
     compatible = "renesas,r8a7795"
   - R-Car M3-W (R8A77960)
     compatible = "renesas,r8a7796"
+  - R-Car D3 (R8A77995)
+    compatible = "renesas,r8a77995"
 
 
 Boards:
@@ -53,6 +55,8 @@ Boards:
     compatible = "renesas,blanche", "renesas,r8a7792"
   - BOCK-W
     compatible = "renesas,bockw", "renesas,r8a7778"
+  - Draak (RTP0RC77995SEB0010S)
+    compatible = "renesas,draak", "renesas,r8a77995"
   - Genmai (RTK772100BC00000BR)
     compatible = "renesas,genmai", "renesas,r7s72100"
   - GR-Peach (X28A-M01-E/F)
@@ -64,6 +68,10 @@ Boards:
     compatible = "renesas,h3ulcb", "renesas,r8a7795";
   - Henninger
     compatible = "renesas,henninger", "renesas,r8a7791"
+  - iWave Systems RZ/G1E SODIMM SOM Development Platform (iW-RainboW-G22D)
+    compatible = "iwave,g22d", "iwave,g22m", "renesas,r8a7745"
+  - iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM)
+    compatible = "iwave,g22m", "renesas,r8a7745"
   - iWave Systems RZ/G1M Qseven Development Platform (iW-RainboW-G20D-Qseven)
     compatible = "iwave,g20d", "iwave,g20m", "renesas,r8a7743"
   - iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven)
index 207682647d33a41fd6bbee805dfebe2e8b04ef83..b455c5aa9139edba0223ba9c25270255b60a0d86 100644 (file)
@@ -16,18 +16,25 @@ Required Properties:
           mapped region.
 
 - #clock-cells: should be 1.
+- #reset-cells: should be 1.
 
 Each clock is assigned an identifier and client nodes can use this identifier
 to specify the clock which they consume. All available clocks are defined as
 preprocessor macros in the dt-bindings/clock/meson8b-clkc.h header and can be
 used in device tree sources.
 
+Similarly a preprocessor macro for each reset line is defined in
+dt-bindings/reset/amlogic,meson8b-clkc-reset.h (which can be used from the
+device tree sources).
+
+
 Example: Clock controller node:
 
        clkc: clock-controller@c1104000 {
-               #clock-cells = <1>;
                compatible = "amlogic,meson8b-clkc";
                reg = <0xc1108000 0x4>, <0xc1104000 0x460>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
        };
 
 
index cb7ffc58c564722a04e18c562e83155c2a051a57..b1a8929c2536cc324a1d34073dabc2fe2ddf53cf 100644 (file)
@@ -13,6 +13,7 @@ Required properties:
 
 - compatible : Shall contain one or more of
   - "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX
+  - "renesas,r8a7796-hdmi" for R8A7796 (R-Car M3-W) compatible HDMI TX
   - "renesas,rcar-gen3-hdmi" for the generic R-Car Gen3 compatible HDMI TX
 
     When compatible with generic versions, nodes must list the SoC-specific
index c6cb96a4fa939a5672b4770ba7f8673136cb0031..4bbd1e9bf3be40ee158be1e62a9be15167cec57c 100644 (file)
@@ -36,8 +36,10 @@ Required Properties:
       When supplied they must be named "dclkin.x" with "x" being the input
       clock numerical index.
 
-  - vsps: A list of phandles to the VSP nodes that handle the memory
-    interfaces for the DU channels.
+  - vsps: A list of phandle and channel index tuples to the VSPs that handle
+    the memory interfaces for the DU channels. The phandle identifies the VSP
+    instance that serves the DU channel, and the channel index identifies the
+    LIF instance in that VSP.
 
 Required nodes:
 
@@ -59,24 +61,24 @@ corresponding to each DU output.
  R8A7796 (M3-W)        DPAD            HDMI            LVDS            -
 
 
-Example: R8A7790 (R-Car H2) DU
+Example: R8A7795 (R-Car H3) ES2.0 DU
 
-       du: du@feb00000 {
-               compatible = "renesas,du-r8a7790";
-               reg = <0 0xfeb00000 0 0x70000>,
-                     <0 0xfeb90000 0 0x1c>,
-                     <0 0xfeb94000 0 0x1c>;
-               reg-names = "du", "lvds.0", "lvds.1";
-               interrupt-parent = <&gic>;
-               interrupts = <0 256 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 268 IRQ_TYPE_LEVEL_HIGH>,
-                            <0 269 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&mstp7_clks R8A7790_CLK_DU0>,
-                        <&mstp7_clks R8A7790_CLK_DU1>,
-                        <&mstp7_clks R8A7790_CLK_DU2>,
-                        <&mstp7_clks R8A7790_CLK_LVDS0>,
-                        <&mstp7_clks R8A7790_CLK_LVDS1>;
-               clock-names = "du.0", "du.1", "du.2", "lvds.0", "lvds.1";
+       du: display@feb00000 {
+               compatible = "renesas,du-r8a7795";
+               reg = <0 0xfeb00000 0 0x80000>,
+                     <0 0xfeb90000 0 0x14>;
+               reg-names = "du", "lvds.0";
+               interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cpg CPG_MOD 724>,
+                        <&cpg CPG_MOD 723>,
+                        <&cpg CPG_MOD 722>,
+                        <&cpg CPG_MOD 721>,
+                        <&cpg CPG_MOD 727>;
+               clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+               vsps = <&vspd0 0>, <&vspd1 0>, <&vspd2 0>, <&vspd0 1>;
 
                ports {
                        #address-cells = <1>;
@@ -89,12 +91,19 @@ Example: R8A7790 (R-Car H2) DU
                        };
                        port@1 {
                                reg = <1>;
-                               du_out_lvds0: endpoint {
+                               du_out_hdmi0: endpoint {
+                                       remote-endpoint = <&dw_hdmi0_in>;
                                };
                        };
                        port@2 {
                                reg = <2>;
-                               du_out_lvds1: endpoint {
+                               du_out_hdmi1: endpoint {
+                                       remote-endpoint = <&dw_hdmi1_in>;
+                               };
+                       };
+                       port@3 {
+                               reg = <3>;
+                               du_out_lvds0: endpoint {
                                };
                        };
                };
index 33d9e386dc45c457de837fe8d7209b4302d54003..41f0c1a07c562b754fd2324d7a41d9cb6df52158 100644 (file)
@@ -9,7 +9,12 @@ execute the actual DMA tansfer.
 eDMA3 Channel Controller
 
 Required properties:
-- compatible:  "ti,edma3-tpcc" for the channel controller(s)
+--------------------
+- compatible:  Should be:
+               - "ti,edma3-tpcc" for the channel controller(s) on OMAP,
+                 AM33xx and AM43xx SoCs.
+               - "ti,k2g-edma3-tpcc", "ti,edma3-tpcc" for the
+                 channel controller(s) on 66AK2G.
 - #dma-cells:  Should be set to <2>. The first number is the DMA request
                number and the second is the TC the channel is serviced on.
 - reg:         Memory map of eDMA CC
@@ -19,8 +24,19 @@ Required properties:
 - ti,tptcs:    List of TPTCs associated with the eDMA in the following form:
                <&tptc_phandle TC_priority_number>. The highest priority is 0.
 
+SoC-specific Required properties:
+--------------------------------
+The following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
+- ti,hwmods:   Name of the hwmods associated to the eDMA CC.
+
+The following are mandatory properties for 66AK2G SoCs only:
+- power-domains:Should contain a phandle to a PM domain provider node
+               and an args specifier containing the device id
+               value. This property is as per the binding,
+               Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
+
 Optional properties:
-- ti,hwmods:   Name of the hwmods associated to the eDMA CC
+-------------------
 - ti,edma-memcpy-channels: List of channels allocated to be used for memcpy, iow
                these channels will be SW triggered channels. See example.
 - ti,edma-reserved-slot-ranges: PaRAM slot ranges which should not be used by
@@ -31,17 +47,34 @@ Optional properties:
 eDMA3 Transfer Controller
 
 Required properties:
-- compatible:  "ti,edma3-tptc" for the transfer controller(s)
+--------------------
+- compatible:  Should be:
+               - "ti,edma3-tptc" for the transfer controller(s) on OMAP,
+                 AM33xx and AM43xx SoCs.
+               - "ti,k2g-edma3-tptc", "ti,edma3-tptc" for the
+                 transfer controller(s) on 66AK2G.
 - reg:         Memory map of eDMA TC
 - interrupts:  Interrupt number for TCerrint.
 
+SoC-specific Required properties:
+--------------------------------
+The following are mandatory properties for OMAP, AM33xx and AM43xx SoCs only:
+- ti,hwmods:   Name of the hwmods associated to the eDMA TC.
+
+The following are mandatory properties for 66AK2G SoCs only:
+- power-domains:Should contain a phandle to a PM domain provider node
+               and an args specifier containing the device id
+               value. This property is as per the binding,
+               Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
+
 Optional properties:
-- ti,hwmods:   Name of the hwmods associated to the given eDMA TC
+-------------------
 - interrupt-names: "edma3_tcerrint"
 
 ------------------------------------------------------------------------------
-Example:
+Examples:
 
+1.
 edma: edma@49000000 {
        compatible = "ti,edma3-tpcc";
        ti,hwmods = "tpcc";
@@ -108,6 +141,58 @@ mcasp0: mcasp@48038000 {
        dma-names = "tx", "rx";
 };
 
+2.
+edma1: edma@02728000 {
+       compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
+       reg =   <0x02728000 0x8000>;
+       reg-names = "edma3_cc";
+       interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
+                       <GIC_SPI 219 IRQ_TYPE_EDGE_RISING>,
+                       <GIC_SPI 220 IRQ_TYPE_EDGE_RISING>;
+       interrupt-names = "edma3_ccint", "emda3_mperr",
+                         "edma3_ccerrint";
+       dma-requests = <64>;
+       #dma-cells = <2>;
+
+       ti,tptcs = <&edma1_tptc0 7>, <&edma1_tptc1 0>;
+
+       /*
+        * memcpy is disabled, can be enabled with:
+        * ti,edma-memcpy-channels = <12 13 14 15>;
+        * for example.
+        */
+
+       power-domains = <&k2g_pds 0x4f>;
+};
+
+edma1_tptc0: tptc@027b0000 {
+       compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
+       reg =   <0x027b0000 0x400>;
+       power-domains = <&k2g_pds 0x4f>;
+};
+
+edma1_tptc1: tptc@027b8000 {
+       compatible = "ti, k2g-edma3-tptc", "ti,edma3-tptc";
+       reg =   <0x027b8000 0x400>;
+       power-domains = <&k2g_pds 0x4f>;
+};
+
+mmc0: mmc@23000000 {
+       compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
+       reg = <0x23000000 0x400>;
+       interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>;
+       dmas = <&edma1 24 0>, <&edma1 25 0>;
+       dma-names = "tx", "rx";
+       bus-width = <4>;
+       ti,needs-special-reset;
+       no-1-8-v;
+       max-frequency = <96000000>;
+       power-domains = <&k2g_pds 0xb>;
+       clocks = <&k2g_clks 0xb 1>, <&k2g_clks 0xb 2>;
+       clock-names = "fck", "mmchsdb_fck";
+       status = "disabled";
+};
+
 ------------------------------------------------------------------------------
 DEPRECATED binding, new DTS files must use the ti,edma3-tpcc/ti,edma3-tptc
 binding.
index 5aa5926029ee7286c4cd2e41a446574c13102021..039219df05c5f69836a39bac48bac64ce33d476a 100644 (file)
@@ -17,6 +17,7 @@ Required properties:
   * which must be preceded by one of the following vendor specifics:
     + "amlogic,meson-gxm-mali"
     + "rockchip,rk3288-mali"
+    + "rockchip,rk3399-mali"
 
 - reg : Physical base address of the device and length of the register area.
 
index 11cc87aeb276f0a25b869ba53ed2b6b9213888d8..07bf0b9a5139fed3d5297d495bab184111deb9f9 100644 (file)
@@ -17,6 +17,7 @@ Required properties:
        "mediatek,mt6582-sysirq", "mediatek,mt6577-sysirq": for MT6582
        "mediatek,mt6580-sysirq", "mediatek,mt6577-sysirq": for MT6580
        "mediatek,mt6577-sysirq": for MT6577
+       "mediatek,mt2712-sysirq", "mediatek,mt6577-sysirq": for MT2712
        "mediatek,mt2701-sysirq", "mediatek,mt6577-sysirq": for MT2701
 - interrupt-controller : Identifies the node as an interrupt controller
 - #interrupt-cells : Use the same format as specified by GIC in arm,gic.txt.
index 0e026c151c1c1a1aa3191129658dc5788f2ed4f2..3a4ac401e6f93a9d8ce3becd4d75410f95f1e50d 100644 (file)
@@ -1,33 +1,55 @@
-* TI Highspeed MMC host controller for OMAP
+* TI Highspeed MMC host controller for OMAP and 66AK2G family.
 
-The Highspeed MMC Host Controller on TI OMAP family
+The Highspeed MMC Host Controller on TI OMAP and 66AK2G family
 provides an interface for MMC, SD, and SDIO types of memory cards.
 
 This file documents differences between the core properties described
 by mmc.txt and the properties used by the omap_hsmmc driver.
 
 Required properties:
+--------------------
 - compatible:
  Should be "ti,omap2-hsmmc", for OMAP2 controllers
  Should be "ti,omap3-hsmmc", for OMAP3 controllers
  Should be "ti,omap3-pre-es3-hsmmc" for OMAP3 controllers pre ES3.0
  Should be "ti,omap4-hsmmc", for OMAP4 controllers
  Should be "ti,am33xx-hsmmc", for AM335x controllers
-- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1
+ Should be "ti,k2g-hsmmc", "ti,omap4-hsmmc" for 66AK2G controllers.
+
+SoC specific required properties:
+---------------------------------
+The following are mandatory properties for OMAPs, AM33xx and AM43xx SoCs only:
+- ti,hwmods: Must be "mmc<n>", n is controller instance starting 1.
+
+The following are mandatory properties for 66AK2G SoCs only:
+- power-domains:Should contain a phandle to a PM domain provider node
+               and an args specifier containing the MMC device id
+               value. This property is as per the binding,
+               Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
+- clocks:      Must contain an entry for each entry in clock-names. Should
+               be defined as per the he appropriate clock bindings consumer
+               usage in Documentation/devicetree/bindings/clock/ti,sci-clk.txt
+- clock-names: Shall be "fck" for the functional clock,
+               and "mmchsdb_fck" for the debounce clock.
+
 
 Optional properties:
-ti,dual-volt: boolean, supports dual voltage cards
-<supply-name>-supply: phandle to the regulator device tree node
-"supply-name" examples are "vmmc", "vmmc_aux"(deprecated)/"vqmmc" etc
-ti,non-removable: non-removable slot (like eMMC)
-ti,needs-special-reset: Requires a special softreset sequence
-ti,needs-special-hs-handling: HSMMC IP needs special setting for handling High Speed
-dmas: List of DMA specifiers with the controller specific format
-as described in the generic DMA client binding. A tx and rx
-specifier is required.
-dma-names: List of DMA request names. These strings correspond
-1:1 with the DMA specifiers listed in dmas. The string naming is
-to be "rx" and "tx" for RX and TX DMA requests, respectively.
+--------------------
+- ti,dual-volt:                boolean, supports dual voltage cards
+- <supply-name>-supply:        phandle to the regulator device tree node
+                         "supply-name" examples are "vmmc",
+                         "vmmc_aux"(deprecated)/"vqmmc" etc
+- ti,non-removable:    non-removable slot (like eMMC)
+- ti,needs-special-reset:      Requires a special softreset sequence
+- ti,needs-special-hs-handling:        HSMMC IP needs special setting
+                                 for handling High Speed
+- dmas:                        List of DMA specifiers with the controller specific
+                       format as described in the generic DMA client
+                       binding. A tx and rx specifier is required.
+- dma-names:           List of DMA request names. These strings correspond
+                       1:1 with the DMA specifiers listed in dmas.
+                       The string naming is to be "rx" and "tx" for
+                       RX and TX DMA requests, respectively.
 
 Examples:
 
index 5a1d8b0c39e97af6d3ef56589f0196541d912a51..2d504256b0d8e73183ebe114158f194a85e964d8 100644 (file)
@@ -11,9 +11,20 @@ Required properties:
 - interrupts           : property with a value describing the interrupt
                          number
 
-Optional properties:
+The following are mandatory properties for DRA7x, AM33xx and AM43xx SoCs only:
 - ti,hwmods            : Must be "d_can<n>" or "c_can<n>", n being the
                          instance number
+
+The following are mandatory properties for Keystone 2 66AK2G SoCs only:
+- power-domains                : Should contain a phandle to a PM domain provider node
+                         and an args specifier containing the DCAN device id
+                         value. This property is as per the binding,
+                         Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt
+- clocks               : CAN functional clock phandle. This property is as per the
+                         binding,
+                         Documentation/devicetree/bindings/clock/ti,sci-clk.txt
+
+Optional properties:
 - syscon-raminit       : Handle to system control region that contains the
                          RAMINIT register, register offset to the RAMINIT
                          register and the CAN instance number (0 offset).
index 1d1168b805cc8ab2e9607be5dd1068d391d89ff2..214eaa9a6683861fd529d2af6fb84e361b27d80d 100644 (file)
@@ -20,8 +20,10 @@ Required properties:
         "ethif", "esw", "gp0", "gp1", "gp2", "sgmii_tx250m", "sgmii_rx250m",
        "sgmii_cdr_ref", "sgmii_cdr_fb", "sgmii_ck", "eth2pll" : For MT7622 SoC
 - power-domains: phandle to the power domain that the ethernet is part of
-- resets: Should contain a phandle to the ethsys reset signal
-- reset-names: Should contain the reset signal name "eth"
+- resets: Should contain phandles to the ethsys reset signals
+- reset-names: Should contain the names of reset signal listed in the resets
+               property
+               These are "fe", "gmac" and "ppe"
 - mediatek,ethsys: phandle to the syscon node that handles the port setup
 - mediatek,sgmiisys: phandle to the syscon node that handles the SGMII setup
        which is required for those SoCs equipped with SGMII such as MT7622 SoC.
index 127ae1f53e5a2d5b4da6893efc7fba898a14fd27..6173af6885f86731a9e81182737afc0a185cd212 100644 (file)
@@ -276,7 +276,7 @@ pcie-controller {
                clocks = <&gateclk 26>;
        };
 
-       pcie@10,0 {
+       pcie@a,0 {
                device_type = "pci";
                assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
                reg = <0x5000 0 0 0 0>;
index 84404c9edff73d97df9384fb0ce801343d780b0b..af21502e939c4b1f6866e80f7325342833b133c0 100644 (file)
@@ -1,12 +1,13 @@
 DT bindings for the Renesas Advanced Power Management Unit
 
-Renesas R-Car line of SoCs utilize one or more APMU hardware units
+Renesas R-Car and RZ/G1 SoCs utilize one or more APMU hardware units
 for CPU core power domain control including SMP boot and CPU Hotplug.
 
 Required properties:
 
 - compatible: Should be "renesas,<soctype>-apmu", "renesas,apmu" as fallback.
              Examples with soctypes are:
+               - "renesas,r8a7743-apmu" (RZ/G1M)
                - "renesas,r8a7790-apmu" (R-Car H2)
                - "renesas,r8a7791-apmu" (R-Car M2-W)
                - "renesas,r8a7792-apmu" (R-Car V2H)
index b6cf384597e1dabc5f5e090982235f0e0c56128a..f73abff3de43bcdb0ecdaabc0f4f23a470d7268d 100644 (file)
@@ -3,6 +3,7 @@
 Required properties:
 - compatible should contain:
   * "mediatek,mt2701-uart" for MT2701 compatible UARTS
+  * "mediatek,mt2712-uart" for MT2712 compatible UARTS
   * "mediatek,mt6580-uart" for MT6580 compatible UARTS
   * "mediatek,mt6582-uart" for MT6582 compatible UARTS
   * "mediatek,mt6589-uart" for MT6589 compatible UARTS
index cc9f05d3cbc1a0b08a2a278364332b8114b027a3..7dc5ce858a0ee3a6659cc0be7a0d3194f7a6fa3e 100644 (file)
@@ -21,6 +21,7 @@ Required Properties:
    - "rockchip,rk3328-grf", "syscon": for rk3328
    - "rockchip,rk3368-grf", "syscon": for rk3368
    - "rockchip,rk3399-grf", "syscon": for rk3399
+   - "rockchip,rv1108-grf", "syscon": for rv1108
 - compatible: PMUGRF should be one of the following:
    - "rockchip,rk3368-pmugrf", "syscon": for rk3368
    - "rockchip,rk3399-pmugrf", "syscon": for rk3399
@@ -28,6 +29,8 @@ Required Properties:
    - "rockchip,rk3288-sgrf", "syscon": for rk3288
 - compatible: USB2PHYGRF should be one of the followings
    - "rockchip,rk3328-usb2phy-grf", "syscon": for rk3328
+- compatible: USBGRF should be one of the following
+   - "rockchip,rv1108-usbgrf", "syscon": for rv1108
 - reg: physical base address of the controller and length of memory mapped
   region.
 
index c705db07d8206d74835c729cf6253d97a7227df0..66e6265fb0aa2f2af147c63a776c86bb9a52096f 100644 (file)
@@ -46,12 +46,13 @@ Required Properties:
 - power-domains: phandle pointing to the corresponding PM domain node
                 and an ID representing the device.
 
-See dt-bindings/genpd/k2g.h for the list of valid identifiers for k2g.
+See http://processors.wiki.ti.com/index.php/TISCI#66AK2G02_Data for the list
+of valid identifiers for k2g.
 
 Example (K2G):
 --------------------
        uart0: serial@02530c00 {
                compatible = "ns16550a";
                ...
-               power-domains = <&k2g_pds K2G_DEV_UART0>;
+               power-domains = <&k2g_pds 0x002c>;
        };
diff --git a/Documentation/devicetree/bindings/sram/renesas,smp-sram.txt b/Documentation/devicetree/bindings/sram/renesas,smp-sram.txt
new file mode 100644 (file)
index 0000000..712d05e
--- /dev/null
@@ -0,0 +1,27 @@
+* Renesas SMP SRAM
+
+Renesas R-Car Gen2 and RZ/G1 SoCs need a small piece of SRAM for the jump stub
+for secondary CPU bringup and CPU hotplug.
+This memory is reserved by adding a child node to a "mmio-sram" node, cfr.
+Documentation/devicetree/bindings/sram/sram.txt.
+
+Required child node properties:
+  - compatible: Must be "renesas,smp-sram",
+  - reg: Address and length of the reserved SRAM.
+    The full physical (bus) address must be aligned to a 256 KiB boundary.
+
+
+Example:
+
+       icram1: sram@e63c0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63c0000 0 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0xe63c0000 0x1000>;
+
+               smp-sram@0 {
+                       compatible = "renesas,smp-sram";
+                       reg = <0 0x10>;
+               };
+       };
index 5a79aeb620b3a206434bd45bf2410a7ed47db7cb..69183f0fbc7873f13e9b4516a34e3dde41686ab7 100644 (file)
@@ -48,6 +48,7 @@ avic  Shanghai AVIC Optoelectronics Co., Ltd.
 axentia        Axentia Technologies AB
 axis   Axis Communications AB
 bananapi BIPAI KEJI LIMITED
+bhf    Beckhoff Automation GmbH & Co. KG
 boe    BOE Technology Group Co., Ltd.
 bosch  Bosch Sensortec GmbH
 boundary       Boundary Devices Inc.
index 6a00939a059a1185c5e4ece5bbcd388131bb4987..20ada673ab0c17a1647be7eeb80353aedea64ceb 100644 (file)
@@ -3,9 +3,9 @@ Mediatek SoCs Watchdog timer
 Required properties:
 
 - compatible should contain:
-       * "mediatek,mt2701-wdt" for MT2701 compatible watchdog timers
-       * "mediatek,mt6589-wdt" for all compatible watchdog timers (MT2701,
-               MT6589)
+       "mediatek,mt2701-wdt", "mediatek,mt6589-wdt": for MT2701
+       "mediatek,mt6589-wdt": for MT6589
+       "mediatek,mt6797-wdt", "mediatek,mt6589-wdt": for MT6797
 
 - reg : Specifies base physical address and size of the registers.
 
index 4b17f35dc9a7167bcce9b5c9c9b35b7375add15c..faf46abaa4a2773721a0c30b012a2ae52308daae 100644 (file)
@@ -46,6 +46,7 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
        at91sam9x35ek.dtb
 dtb-$(CONFIG_SOC_SAM_V7) += \
        at91-kizbox2.dtb \
+       at91-sama5d27_som1_ek.dtb \
        at91-sama5d2_xplained.dtb \
        at91-sama5d3_xplained.dtb \
        at91-tse850-3.dtb \
@@ -73,7 +74,8 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
        bcm2835-rpi-a-plus.dtb \
        bcm2836-rpi-2-b.dtb \
        bcm2837-rpi-3-b.dtb \
-       bcm2835-rpi-zero.dtb
+       bcm2835-rpi-zero.dtb \
+       bcm2835-rpi-zero-w.dtb
 dtb-$(CONFIG_ARCH_BCM_5301X) += \
        bcm4708-asus-rt-ac56u.dtb \
        bcm4708-asus-rt-ac68u.dtb \
@@ -106,7 +108,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
        bcm953012hr.dtb \
        bcm953012k.dtb
 dtb-$(CONFIG_ARCH_BCM_53573) += \
-       bcm47189-tenda-ac9.dtb
+       bcm47189-tenda-ac9.dtb \
+       bcm947189acdbmr.dtb
 dtb-$(CONFIG_ARCH_BCM_63XX) += \
        bcm963138dvt.dtb
 dtb-$(CONFIG_ARCH_BCM_CYGNUS) += \
@@ -180,6 +183,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \
        exynos5440-ssdk5440.dtb \
        exynos5800-peach-pi.dtb
 dtb-$(CONFIG_ARCH_GEMINI) += \
+       gemini-dlink-dir-685.dtb \
        gemini-nas4220b.dtb \
        gemini-rut1xx.dtb \
        gemini-sq201.dtb \
@@ -340,6 +344,7 @@ dtb-$(CONFIG_SOC_IMX51) += \
        imx51-ts4800.dtb
 dtb-$(CONFIG_SOC_IMX53) += \
        imx53-ard.dtb \
+       imx53-cx9020.dtb \
        imx53-m53evk.dtb \
        imx53-mba53.dtb \
        imx53-qsb.dtb \
@@ -391,7 +396,9 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-udoo.dtb \
        imx6dl-wandboard.dtb \
        imx6dl-wandboard-revb1.dtb \
+       imx6q-apalis-eval.dtb \
        imx6q-apalis-ixora.dtb \
+       imx6q-apalis-ixora-v1.1.dtb \
        imx6q-apf6dev.dtb \
        imx6q-arm2.dtb \
        imx6q-b450v3.dtb \
@@ -466,7 +473,7 @@ dtb-$(CONFIG_SOC_IMX6SX) += \
        imx6sx-udoo-neo-full.dtb
 dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ul-14x14-evk.dtb \
-       imx6ul-geam-kit.dtb \
+       imx6ul-geam.dtb \
        imx6ul-isiot-emmc.dtb \
        imx6ul-isiot-nand.dtb \
        imx6ul-liteboard.dtb \
@@ -617,6 +624,7 @@ dtb-$(CONFIG_SOC_AM33XX) += \
        am335x-evmsk.dtb \
        am335x-icev2.dtb \
        am335x-lxm.dtb \
+       am335x-moxa-uc-8100-me-t.dtb \
        am335x-nano.dtb \
        am335x-pepper.dtb \
        am335x-phycore-rdk.dtb \
@@ -650,6 +658,7 @@ dtb-$(CONFIG_SOC_OMAP5) += \
 dtb-$(CONFIG_SOC_DRA7XX) += \
        am57xx-beagle-x15.dtb \
        am57xx-beagle-x15-revb1.dtb \
+       am57xx-beagle-x15-revc.dtb \
        am57xx-cl-som-am57x.dtb \
        am57xx-sbc-am57x.dtb \
        am572x-idk.dtb \
@@ -657,7 +666,8 @@ dtb-$(CONFIG_SOC_DRA7XX) += \
        dra7-evm.dtb \
        dra72-evm.dtb \
        dra72-evm-revc.dtb \
-       dra71-evm.dtb
+       dra71-evm.dtb \
+       dra76-evm.dtb
 dtb-$(CONFIG_ARCH_ORION5X) += \
        orion5x-kuroboxpro.dtb \
        orion5x-lacie-d2-network.dtb \
@@ -903,6 +913,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-a33-q8-tablet.dtb \
        sun8i-a33-sinlinx-sina33.dtb \
        sun8i-a83t-allwinner-h8homlet-v2.dtb \
+       sun8i-a83t-bananapi-m3.dtb \
        sun8i-a83t-cubietruck-plus.dtb \
        sun8i-h2-plus-orangepi-zero.dtb \
        sun8i-h3-bananapi-m2-plus.dtb \
@@ -918,6 +929,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \
        sun8i-h3-orangepi-pc-plus.dtb \
        sun8i-h3-orangepi-plus.dtb \
        sun8i-h3-orangepi-plus2e.dtb \
+       sun8i-r16-bananapi-m2m.dtb \
        sun8i-r16-parrot.dtb \
        sun8i-v3s-licheepi-zero.dtb \
        sun8i-v3s-licheepi-zero-dock.dtb
@@ -970,7 +982,6 @@ dtb-$(CONFIG_ARCH_UNIPHIER) += \
        uniphier-pro4-sanji.dtb \
        uniphier-pxs2-gentil.dtb \
        uniphier-pxs2-vodka.dtb \
-       uniphier-sld3-ref.dtb \
        uniphier-sld8-ref.dtb
 dtb-$(CONFIG_ARCH_VERSATILE) += \
        versatile-ab.dtb \
@@ -1049,7 +1060,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \
        mt6580-evbp1.dtb \
        mt6589-aquaris5.dtb \
        mt6592-evb.dtb \
-       mt7623-evb.dtb \
+       mt7623n-rfb-nand.dtb \
+       mt7623n-bananapi-bpi-r2.dtb \
        mt8127-moose.dtb \
        mt8135-evbp1.dtb
 dtb-$(CONFIG_ARCH_ZX) += zx296702-ad1.dtb
index 1d154444dfef245bf60e6336da038d1ff766512e..48a15fc641f22e40301c505625fc331efc4610e9 100644 (file)
        ti,pmic-shutdown-controller;
 
        charger {
-               interrupts = <0>, <1>;
-               interrupt-names = "USB", "AC";
                status = "okay";
        };
 
        pwrbutton {
-               interrupts = <2>;
                status = "okay";
        };
 
index d8769799772ea6cdacb0693427648cf61e0f0879..59431b23594489dd3f211c0be1a93c031d3c0c46 100644 (file)
        interrupts = <7>; /* NNMI */
 
        charger {
-               interrupts = <0>, <1>;
-               interrupt-names = "USB", "AC";
                status = "okay";
        };
 
        pwrbutton {
-               interrupts = <2>;
                status = "okay";
        };
 };
index 1c37a7c1ea17dd76fc2686c1bd9dd17acc250d99..ddd897556e035b6306306ca33eccc65c7ed45e3b 100644 (file)
                interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                             <1 IRQ_TYPE_NONE>; /* termcount */
                rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
+               ti,nand-xfer-type = "prefetch-dma";
                ti,nand-ecc-opt = "bch8";
                ti,elm-id = <&elm>;
                nand-bus-width = <8>;
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
new file mode 100644 (file)
index 0000000..f82233c
--- /dev/null
@@ -0,0 +1,525 @@
+/*
+ * Copyright (C) 2017 MOXA Inc. - https://www.moxa.com/
+ *
+ * Author: SZ Lin (林上智) <sz.lin@moxa.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/dts-v1/;
+
+#include "am33xx.dtsi"
+
+/ {
+       model = "Moxa UC-8100-ME-T";
+       compatible = "moxa,uc-8100-me-t", "ti,am33xx";
+
+       cpus {
+               cpu@0 {
+                       cpu0-supply = <&vdd1_reg>;
+               };
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>; /* 512 MB */
+       };
+
+       vbat: vbat-regulator {
+               compatible = "regulator-fixed";
+       };
+
+       /* Power supply provides a fixed 3.3V @3A */
+       vmmcsd_fixed: vmmcsd-regulator {
+             compatible = "regulator-fixed";
+             regulator-name = "vmmcsd_fixed";
+             regulator-min-microvolt = <3300000>;
+             regulator-max-microvolt = <3300000>;
+             regulator-boot-on;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led1 {
+                       label = "uc8100me:CEL1";
+                       gpios = <&gpio_xten 8 0>;
+                       default-state = "off";
+               };
+
+               led2 {
+                       label = "uc8100me:CEL2";
+                       gpios = <&gpio_xten 9 0>;
+                       default-state = "off";
+               };
+
+               led3 {
+                       label = "uc8100me:CEL3";
+                       gpios = <&gpio_xten 10 0>;
+                       default-state = "off";
+               };
+
+               led4 {
+                       label = "uc8100me:DIA1";
+                       gpios = <&gpio_xten 11 0>;
+                       default-state = "off";
+               };
+               led5 {
+                       label = "uc8100me:DIA2";
+                       gpios = <&gpio_xten 12 0>;
+                       default-state = "off";
+               };
+               led6 {
+                       label = "uc8100me:DIA3";
+                       gpios = <&gpio_xten 13 0>;
+                       default-state = "off";
+               };
+               led7 {
+                       label = "uc8100me:SD";
+                       gpios = <&gpio_xten 14 0>;
+                       default-state = "off";
+               };
+               led8 {
+                       label = "uc8100me:USB";
+                       gpios = <&gpio_xten 15 0>;
+                       default-state = "off";
+               };
+               led9 {
+                       label = "uc8100me:USER";
+                       gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       buttons: push_button {
+               compatible = "gpio-keys";
+       };
+
+};
+
+&am33xx_pinmux {
+       pinctrl-names = "default";
+       pinctrl-0 = <&minipcie_pins>;
+
+       minipcie_pins: pinmux_minipcie {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | MUX_MODE7)     /* lcd_pclk.gpio2_24 */
+                       AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | MUX_MODE7)     /* lcd_ac_bias_en.gpio2_25 */
+                       AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | MUX_MODE7)     /* lcd_vsync.gpio2_22  Power off PIN*/
+               >;
+       };
+
+       push_button_pins: pinmux_push_button {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE7)     /* mcasp0_ahcklx.gpio3_21 */
+               >;
+       };
+
+       i2c0_pins: pinmux_i2c0_pins {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_sda.i2c0_sda */
+                       AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)    /* i2c0_scl.i2c0_scl */
+               >;
+       };
+
+
+       i2c1_pins: pinmux_i2c1_pins {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x968, PIN_INPUT_PULLUP | MUX_MODE3)       /* uart0_ctsn.i2c1_sda */
+                       AM33XX_IOPAD(0x96c, PIN_INPUT_PULLUP | MUX_MODE3)       /* uart0_rtsn.i2c1_scl */
+               >;
+       };
+
+       uart0_pins: pinmux_uart0_pins {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)       /* uart0_rxd.uart0_rxd */
+                       AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* uart0_txd.uart0_txd */
+               >;
+       };
+
+       uart1_pins: pinmux_uart1_pins {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x978, PIN_INPUT | MUX_MODE0)              /* uart1_ctsn.uart1_ctsn */
+                       AM33XX_IOPAD(0x97C, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_rtsn.uart1_rtsn */
+                       AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE0)    /* uart1_rxd.uart1_rxd */
+                       AM33XX_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0)             /* uart1_txd.uart1_txd */
+               >;
+       };
+
+       uart2_pins: pinmux_uart2_pins {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x8d8, PIN_INPUT | MUX_MODE6)              /* lcd_data14.uart5_ctsn */
+                       AM33XX_IOPAD(0x8dc, PIN_OUTPUT_PULLDOWN | MUX_MODE6)  /* lcd_data15.uart5_rtsn */
+                       AM33XX_IOPAD(0x8c4, PIN_INPUT_PULLUP | MUX_MODE4)     /* lcd_data9.uart5_rxd */
+                       AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE4)             /* lcd_data8.uart5_txd */
+               >;
+       };
+
+       cpsw_default: cpsw_default {
+               pinctrl-single,pins = <
+                       /* Slave 1 */
+                       AM33XX_IOPAD(0x90c, PIN_INPUT_PULLDOWN | MUX_MODE1)  /* mii1_crs.rmii1_crs_dv */
+                       AM33XX_IOPAD(0x910, PIN_INPUT_PULLUP | MUX_MODE1)    /* mii1_rxerr.rmii1_rxerr */
+                       AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
+                       AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
+                       AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
+                       AM33XX_IOPAD(0x93c, PIN_INPUT_PULLUP | MUX_MODE1)    /* mii1_rxd1.rmii1_rxd1 */
+                       AM33XX_IOPAD(0x940, PIN_INPUT_PULLUP | MUX_MODE1)    /* mii1_rxd0.rmii1_rxd0 */
+                       AM33XX_IOPAD(0x944, PIN_INPUT_PULLDOWN | MUX_MODE0)  /* mii1_refclk.rmii1_refclk */
+
+                       /* Slave 2 */
+                       AM33XX_IOPAD(0x870, PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_crs_dv */
+                       AM33XX_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_rxer */
+                       AM33XX_IOPAD(0x840, PIN_OUTPUT_PULLDOWN | MUX_MODE3)  /* rmii2_txen */
+                       AM33XX_IOPAD(0x850, PIN_OUTPUT_PULLDOWN | MUX_MODE3)  /* rmii2_td1 */
+                       AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE3)  /* rmii2_td0 */
+                       AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_rd1 */
+                       AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE3)   /* rmii2_rd0 */
+                       AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE1)  /* rmii2_refclk */
+
+               >;
+       };
+
+       davinci_mdio_default: davinci_mdio_default {
+               pinctrl-single,pins = <
+                       /* MDIO */
+                       AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0)       /* mdio_data.mdio_data */
+                       AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0)                      /* mdio_clk.mdio_clk */
+               >;
+       };
+
+       mmc0_pins_default: pinmux_mmc0_pins {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)       /* mmc0_dat3 */
+                       AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)       /* mmc0_dat2 */
+                       AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)       /* mmc0_dat1 */
+                       AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)       /* mmc0_dat0 */
+                       AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)       /* mmc0_clk */
+                       AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)       /* mmc0_cmd */
+                       AM33XX_IOPAD(0x990, PIN_INPUT_PULLUP | MUX_MODE7)       /* mcasp0_aclkx.gpio3_14 */
+                       AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLUP | MUX_MODE7)    /* mcasp0_aclkx.gpio3_18 */
+               >;
+       };
+
+       mmc2_pins_default: pinmux_mmc2_pins {
+               pinctrl-single,pins = <
+                       /* eMMC */
+                       AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad12.mmc2_dat0 */
+                       AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad13.mmc2_dat1 */
+                       AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad14.mmc2_dat2 */
+                       AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad15.mmc2_dat3 */
+                       AM33XX_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad8.mmc2_dat4 */
+                       AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad9.mmc2_dat5 */
+                       AM33XX_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad10.mmc2_dat6 */
+                       AM33XX_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_ad11.mmc2_dat7 */
+                       AM33XX_IOPAD(0x888, PIN_INPUT_PULLUP | MUX_MODE3)     /* gpmc_csn3.mmc2_cmd */
+                       AM33XX_IOPAD(0x88c, PIN_INPUT_PULLUP | MUX_MODE3)       /* gpmc_clk.mmc2_clk */
+               >;
+       };
+
+       spi0_pins: pinmux_spi0 {
+               pinctrl-single,pins = <
+                       AM33XX_IOPAD(0x950, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_sclk.spi0_sclk */
+                       AM33XX_IOPAD(0x95C, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_cs0.spi0_cs0 */
+                       AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d0.spi0_d0 */
+                       AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0) /* spi0_d1.spi0_d1 */
+               >;
+       };
+
+};
+
+&uart0 {
+       /* Console */
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+};
+
+&uart1 {
+       /* UART 1 setting */
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+};
+
+&uart5 {
+       /* UART 2 setting */
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins>;
+
+       status = "okay";
+       clock-frequency = <400000>;
+
+       tpm: tpm@20 {
+               compatible = "infineon,slb9645tt";
+               reg = <0x20>;
+       };
+
+       tps: tps@2d {
+               compatible = "ti,tps65910";
+               reg = <0x2d>;
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c16";
+               pagesize = <16>;
+               reg = <0x50>;
+       };
+
+       rtc_wdt: rtc_wdt@68 {
+               compatible = "dallas,ds1374";
+               reg = <0x68>;
+       };
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+
+       status = "okay";
+       clock-frequency = <400000>;
+       gpio_xten: gpio_xten@27 {
+               compatible = "nxp,pca9535";
+               gpio-controller;
+               #gpio-cells = <2>;
+               reg = <0x27>;
+       };
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb_ctrl_mod {
+       status = "okay";
+};
+
+&usb0_phy {
+       status = "okay";
+};
+
+&usb1_phy {
+       status = "okay";
+};
+
+&usb0 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&usb1 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&cppi41dma  {
+       status = "okay";
+};
+
+#include "tps65910.dtsi"
+
+&tps {
+       vcc1-supply = <&vbat>;
+       vcc2-supply = <&vbat>;
+       vcc3-supply = <&vbat>;
+       vcc4-supply = <&vbat>;
+       vcc5-supply = <&vbat>;
+       vcc6-supply = <&vbat>;
+       vcc7-supply = <&vbat>;
+       vccio-supply = <&vbat>;
+
+       regulators {
+               vrtc_reg: regulator@0 {
+                       regulator-always-on;
+               };
+
+               vio_reg: regulator@1 {
+                       regulator-always-on;
+               };
+
+               vdd1_reg: regulator@2 {
+                       /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
+                       regulator-name = "vdd_mpu";
+                       regulator-min-microvolt = <912500>;
+                       regulator-max-microvolt = <1378000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vdd2_reg: regulator@3 {
+                       /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
+                       regulator-name = "vdd_core";
+                       regulator-min-microvolt = <912500>;
+                       regulator-max-microvolt = <1150000>;
+                       regulator-boot-on;
+                       regulator-always-on;
+               };
+
+               vdd3_reg: regulator@4 {
+                       regulator-always-on;
+               };
+
+               vdig1_reg: regulator@5 {
+                       regulator-always-on;
+               };
+
+               vdig2_reg: regulator@6 {
+                       regulator-always-on;
+               };
+
+               vpll_reg: regulator@7 {
+                       regulator-always-on;
+               };
+
+               vdac_reg: regulator@8 {
+                       regulator-always-on;
+               };
+
+               vaux1_reg: regulator@9 {
+                       regulator-always-on;
+               };
+
+               vaux2_reg: regulator@10 {
+                       regulator-always-on;
+               };
+
+               vaux33_reg: regulator@11 {
+                       regulator-always-on;
+               };
+
+               vmmc_reg: regulator@12 {
+                       compatible = "regulator-fixed";
+                       regulator-name = "vmmc_reg";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+       };
+};
+
+/* Power */
+&vbat {
+       regulator-name = "vbat";
+       regulator-min-microvolt = <5000000>;
+       regulator-max-microvolt = <5000000>;
+};
+
+&mac {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cpsw_default>;
+       dual_emac = <1>;
+       status = "okay";
+};
+
+&davinci_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&davinci_mdio_default>;
+       status = "okay";
+};
+
+&cpsw_emac0 {
+       status = "okay";
+       phy_id = <&davinci_mdio>, <4>;
+       phy-mode = "rmii";
+       dual_emac_res_vlan = <1>;
+};
+
+&cpsw_emac1 {
+       status = "okay";
+       phy_id = <&davinci_mdio>, <5>;
+       phy-mode = "rmii";
+       dual_emac_res_vlan = <2>;
+};
+
+&phy_sel {
+       reg= <0x44e10650 0xf5>;
+       rmii-clock-ext;
+};
+
+&sham {
+       status = "okay";
+};
+
+&aes {
+       status = "okay";
+};
+
+&gpio0 {
+       ti,no-reset-on-init;
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <4>;
+       pinctrl-0 = <&mmc0_pins_default>;
+       cd-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
+       wp-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&mmc3 {
+       dmas = <&edma_xbar 12 0 1
+                       &edma_xbar 13 0 2>;
+       dma-names = "tx", "rx";
+       pinctrl-names = "default";
+       vmmc-supply = <&vmmcsd_fixed>;
+       bus-width = <8>;
+       pinctrl-0 = <&mmc2_pins_default>;
+       ti,non-removable;
+       status = "okay";
+};
+
+&buttons {
+       pinctrl-names = "default";
+       pinctrl-0 = <&push_button_pins>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       button@0 {
+               label = "push_button";
+               linux,code = <0x100>;
+               gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
+       };
+};
+
+/* SPI Busses */
+&spi0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins>;
+
+       m25p80@0 {
+               compatible = "mx25l6405d";
+               spi-max-frequency = <40000000>;
+
+               reg = <0>;
+               spi-cpol;
+               spi-cpha;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               /* reg : The partition's offset and size within the mtd bank. */
+               partitions@0 {
+                       label = "MLO";
+                       reg = <0x0 0x80000>;
+               };
+
+               partitions@1 {
+                       label = "U-Boot";
+                       reg = <0x80000 0x100000>;
+               };
+
+               partitions@2 {
+                       label = "U-Boot Env";
+                       reg = <0x180000 0x20000>;
+               };
+       };
+};
index 29a538ecd405db81959e839768dc2731d10a63aa..afb8eb0a0a16ee63ea1ece64e694ac847c249067 100644 (file)
                        system-clock-frequency = <12000000>;
                };
        };
+
+       beeper: beeper {
+               compatible = "gpio-beeper";
+               pinctrl-names = "default";
+               pinctrl-0 = <&beeper_pins>;
+               gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &am43xx_pinmux {
                        AM4372_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)    /* uart0_txd.uart0_txd */
                >;
        };
+
+       beeper_pins: beeper_pins {
+               pinctrl-single,pins = <
+                       AM4372_IOPAD(0x9e0, PIN_OUTPUT_PULLUP | MUX_MODE7)      /* cam1_field.gpio4_12 */
+               >;
+       };
+
 };
 
 &uart0 {
                interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                             <1 IRQ_TYPE_NONE>; /* termcount */
                rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>;  /* gpmc_wait0 */
+               ti,nand-xfer-type = "prefetch-dma";
                ti,nand-ecc-opt = "bch16";
                ti,elm-id = <&elm>;
                nand-bus-width = <8>;
index 54f40f370011c211664a6583a845146b50b996af..9d276af7c539f3dd1cb382f12d4bca7d9bd2fb3d 100644 (file)
                interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                             <1 IRQ_TYPE_NONE>; /* termcount */
                rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>;  /* gpmc_wait0 */
+               ti,nand-xfer-type = "prefetch-dma";
                ti,nand-ecc-opt = "bch16";
                ti,elm-id = <&elm>;
                nand-bus-width = <8>;
index 7b207835b2d161244fc8e09126fe384bf7eae9fa..debf9464403ef52a5c4b7e27135b1a5ed5778fd2 100644 (file)
@@ -11,6 +11,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "am57xx-idk-common.dtsi"
+#include "dra72x-mmc-iodelay.dtsi"
 
 / {
        model = "TI AM5718 IDK";
        };
 };
 
-&mmc1 {
-       status = "okay";
-       vmmc-supply = <&ldo1_reg>;
-       bus-width = <4>;
-       cd-gpios = <&gpio6 27 0>; /* gpio 219 */
-};
-
 &omap_dwc3_2 {
        extcon = <&extcon_usb2>;
 };
                status = "okay";
        };
 };
+
+&pcie1_rc {
+       status = "okay";
+       gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie1_ep {
+       gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+};
+
+&mmc1 {
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50_rev20 &mmc1_iodelay_ddr50_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>;
+};
index 9da6d83ca185e52c79ea4ebd180fb1d21144280c..a578fe97ba3bd9ec210df3f1827cc936a748d2bd 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include "am57xx-idk-common.dtsi"
+#include "dra74x-mmc-iodelay.dtsi"
 
 / {
        model = "TI AM5728 IDK";
        };
 };
 
+&mmc1 {
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev20_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_rev20>;
+};
+
 &omap_dwc3_2 {
        extcon = <&extcon_usb2>;
 };
        vbus-gpio = <&gpio3 26 GPIO_ACTIVE_HIGH>;
 };
 
-&mmc1 {
-       status = "okay";
-       vmmc-supply = <&v3_3d>;
-       vmmc_aux-supply = <&ldo1_reg>;
-       bus-width = <4>;
-       cd-gpios = <&gpio6 27 0>; /* gpio 219 */
-};
-
 &sn65hvs882 {
        load-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
 };
 
-&pcie1 {
+&pcie1_rc {
+       status = "okay";
+       gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+};
+
+&pcie1_ep {
        gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
 };
 
index fdfe5b16b806298a1aac3a136a873dfc2ab891df..49aeecd312b4b10af2cb3badd68a4982fa8a921d 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "dra74x.dtsi"
 #include "am57xx-commercial-grade.dtsi"
+#include "dra74x-mmc-iodelay.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
        };
 };
 
-&dra7_pmx_core {
-       mmc1_pins_default: mmc1_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)       /* mmc1sdcd.gpio219 */
-                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
-                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
-                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
-                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
-                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
-                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
-               >;
-       };
-
-       mmc2_pins_default: mmc2_pins_default {
-               pinctrl-single,pins = <
-                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
-                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
-                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
-                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
-                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
-                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
-                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
-                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
-                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
-                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
-               >;
-       };
-};
 &i2c1 {
        status = "okay";
        clock-frequency = <400000>;
        };
 };
 
-&pcie1 {
+&pcie1_rc {
+       status = "ok";
+       gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+};
+
+&pcie1_ep {
        gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
 };
 
index 39a92aff0a0dc5338d29c13949001e2558f17474..5a77b334923d051f6943730b8d51849fe6161596 100644 (file)
 };
 
 &mmc1 {
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev11_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev11_conf>;
        vmmc-supply = <&vdd_3v3>;
-       vmmc-aux-supply = <&ldo1_reg>;
+       vqmmc-supply = <&ldo1_reg>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_3_3v_rev11 &mmc2_iodelay_ddr_3_3v_rev11_conf>;
 };
 
 /* errata i880 "Ethernet RGMII2 Limited to 10/100 Mbps" */
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15-revc.dts b/arch/arm/boot/dts/am57xx-beagle-x15-revc.dts
new file mode 100644 (file)
index 0000000..17c41da
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2014-2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "am57xx-beagle-x15-common.dtsi"
+
+/ {
+       model = "TI AM5728 BeagleBoard-X15 rev C";
+};
+
+&tpd12s015 {
+       gpios = <&gpio7 10 GPIO_ACTIVE_HIGH>,   /* gpio7_10, CT CP HPD */
+               <&gpio2 30 GPIO_ACTIVE_HIGH>,   /* gpio2_30, LS OE */
+               <&gpio7 12 GPIO_ACTIVE_HIGH>;   /* gpio7_12/sp1_cs2, HPD */
+};
+
+&mmc1 {
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev20_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
+       vmmc-supply = <&vdd_3v3>;
+       vqmmc-supply = <&ldo1_reg>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_rev20>;
+};
index 19a60a11c19890d49f608e12c4a4c3a5d3c822bc..d6689106d2a83935ea6ac98fd89f42ce06132879 100644 (file)
 };
 
 &mmc1 {
+       pinctrl-names = "default", "hs";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+
        vmmc-supply = <&ldo1_reg>;
 };
 
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_3_3v_rev11 &mmc2_iodelay_ddr_3_3v_rev11_conf>;
+};
+
 /* errata i880 "Ethernet RGMII2 Limited to 10/100 Mbps" */
 &phy1 {
        max-speed = <100>;
index c536b2f5389f2786930a48eb0f7446311c622121..97aa8e6a56da8f7c8722f5243e01fca0e944f629 100644 (file)
        dr_mode = "peripheral";
 };
 
+&mmc1 {
+       status = "okay";
+       vmmc-supply = <&v3_3d>;
+       vqmmc-supply = <&ldo1_reg>;
+       bus-width = <4>;
+       cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>; /* gpio 219 */
+};
+
 &mmc2 {
        status = "okay";
        vmmc-supply = <&v3_3d>;
index f9cf1273f35e0ae65dd4398037f9662bcf4ff28e..b1cf5a26f3c2a460b7b9d8fc41127c30cf2cc533 100644 (file)
@@ -72,7 +72,7 @@
                        reg = <MBUS_ID(0x01, 0xe0) 0 0x100000>;
                };
 
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,armada-370-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                 ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                           0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 58>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                 ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                           0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 62>;
                                marvell,pcie-port = <1>;
index 50c5e8417802cd42c3beee13bcf9a23b3a127791..7225c7ce9a8dbca5cb909c0c1b55376072c2e263 100644 (file)
                        };
                };
 
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,armada-370-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <0>;
index e392f6036f3956a7b2494d7fb502f5b5a3a99349..132596fd08603e68d458cb264ae23ca48c0c7929 100644 (file)
@@ -71,7 +71,7 @@
                        };
                };
 
-               pcie-controller {
+               pcie {
                        compatible = "marvell,armada-370-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
                                          0x81000000 0 0 0x81000000 0x3 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <2>;
index db5b9f6b615d8f8ea430f7ae790bc82858add8e8..25d2d720dc0e2cacc98b402e609e0fe78eb01acb 100644 (file)
                        status = "okay";
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
 
                        /*
index be16ce39fb3d659f4833722063a26aa043bace11..06831e1e3f808b8419b299e72d8dfbd94568de3f 100644 (file)
@@ -96,7 +96,7 @@
                        };
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
 
                        pcie@1,0 {
index 7fcc4c4885cffa9b51fe8c1c9911e4ea3cfcc138..74863aff01c6e0259576403ae22ece1cc12a7d4d 100644 (file)
@@ -70,7 +70,7 @@
        };
 
        soc {
-               pciec: pcie-controller {
+               pciec: pcie {
                        compatible = "marvell,armada-370-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
                                          0x81000000 0 0 0x81000000 0x3 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <2>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
                                          0x81000000 0 0 0x81000000 0x4 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <3>;
index 0d5f1f06227568389c072194bf7da8ae6957012d..ee7b0089eff035a7f0fda7ed43b6878183c6c53a 100644 (file)
@@ -62,7 +62,7 @@
                        };
                };
 
-               pcie-controller {
+               pcie {
                        pcie@3,0 {
                                /* Port 2, Lane 0. CON2, nearest CPU. */
                                reset-gpios = <&expander0 2 GPIO_ACTIVE_LOW>;
index 0f5938bede53c30ce84f24a9a9b733517cc52118..68acfc9687069bf141c01309608b8806920bb446 100644 (file)
                        };
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
                        /*
                         * The two PCIe units are accessible through
index 1ac923826445495edd6f725b44ce9c2134a5382f..a4ec1fa3752979fd30a1c9870a072d217c374b18 100644 (file)
                        status = "okay";
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
                        /*
                         * The two PCIe units are accessible through
index 563901e0ec071f0c66a4590b17fe5c3f6cfcbd69..f503955dbd3b810db157344e3f9cf48dadd4b1ca 100644 (file)
                        status = "okay";
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
                        /*
                         * One PCIe units is accessible through
index af82f275eac248791a2286b49c87bfd7c536db08..9cc3ca0376b934e10c863735f3e9a14ee72c0ee1 100644 (file)
                        };
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
                        /*
                         * One PCIe units is accessible through
index af31f5d6c0e571f607fa47eb7aa00094d3ffdcb9..7ff0811e61db3ad73be8f0c9ea8f79ebde1681c7 100644 (file)
                                reg = <0xc000 0x58>;
                        };
 
+                       timer@c200 {
+                               compatible = "arm,cortex-a9-global-timer";
+                               reg = <0xc200 0x20>;
+                               interrupts = <GIC_PPI 11 (IRQ_TYPE_EDGE_RISING | GIC_CPU_MASK_SIMPLE(2))>;
+                               clocks = <&coreclk 2>;
+                       };
+
                        timer@c600 {
                                compatible = "arm,cortex-a9-twd-timer";
                                reg = <0xc600 0x20>;
index 2afed2ce47412dce518785bdc1092c27b08766fb..c718a5242595f4157215ea476fccc998372bbccf 100644 (file)
                        };
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
 
                        /* CON30 */
index 2cdbba804c1eaedf2034902e038e1696850c42f3..ef491b524fd6c4c39b391d4c022210c4744f9e37 100644 (file)
                        };
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
 
                        /*
index e8604281c3c9916522d496937c73c1b31c6f22c9..f0e0379f7619220d39defb0f72887623ba850768 100644 (file)
                        };
                };
 
-               pcie-controller {
+               pcie {
                        status = "okay";
 
                        pcie@1,0 {
index 60fbfd5907c71049e75935cba303f795be38ad72..ea657071e27888c49294556e047f556d499f6300 100644 (file)
                        };
                };
 
-               pcie-controller {
+               pcie {
                        compatible = "marvell,armada-370-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
                                          0x81000000 0 0 0x81000000 0x3 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <2>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
                                          0x81000000 0 0 0x81000000 0x4 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
                                marvell,pcie-port = <3>;
index be22ec5236acfe5f11626a7f50447944564fda60..bdd4c7a45fbf43995f899982c499d9e9c99da5c5 100644 (file)
@@ -91,7 +91,7 @@
                /*
                 * 98DX3236 has 1 x1 PCIe unit Gen2.0
                 */
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,armada-xp-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 58>;
                                marvell,pcie-port = <0>;
index a33974254d8cddb36ee6538bc1eec767c0ce756d..065282c217897fdfdab6ecb0dd365614a6478468 100644 (file)
                /* Port 2, Lane 0 */
                status = "okay";
        };
-       pcie@10,0 {
+       pcie@a,0 {
                /* Port 3, Lane 0 */
                status = "okay";
        };
index d62bf7bea1df4db579d8d22311d40ef8f0eaa25e..ac9eab8ac186c78ba88e0e03907f429886953e04 100644 (file)
                /* Port 2, Lane 0 */
                status = "okay";
        };
-       pcie@10,0 {
+       pcie@a,0 {
                /* Port 3, Lane 0 */
                status = "okay";
        };
index 9f25814077f2b446f9c54ab22ee277a10288fae6..129738f7973d4b4c90cdd79d14864b8e34de76db 100644 (file)
@@ -86,7 +86,7 @@
                 * configured as x4 or quad x1 lanes. One unit is
                 * x1 only.
                 */
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,armada-xp-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 58>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 59>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
                                          0x81000000 0 0 0x81000000 0x3 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 60>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
                                          0x81000000 0 0 0x81000000 0x4 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 61>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
                                          0x81000000 0 0 0x81000000 0x5 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 62>;
                                marvell,pcie-port = <1>;
index 2bfe07aebf1aefae7611c2b7899b824c1527306a..e58d597e37b98a414aa430f4d2635c90315b3a82 100644 (file)
@@ -87,7 +87,7 @@
                 * configured as x4 or quad x1 lanes. One unit is
                 * x4 only.
                 */
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,armada-xp-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 58>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 59>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
                                          0x81000000 0 0 0x81000000 0x3 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 60>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
                                          0x81000000 0 0 0x81000000 0x4 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 61>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
                                          0x81000000 0 0 0x81000000 0x5 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 62>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
                                          0x81000000 0 0 0x81000000 0x6 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 63>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
                                          0x81000000 0 0 0x81000000 0x7 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 64>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
                                          0x81000000 0 0 0x81000000 0x8 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 65>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
                                          0x81000000 0 0 0x81000000 0x9 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 99>;
                                marvell,pcie-port = <2>;
index 6c33935f7074730e193781173661ad717a202e32..a5c961cee7de3856d33046ca365d5d0f998d993c 100644 (file)
                 * configured as x4 or quad x1 lanes. Two units are
                 * x4/x1.
                 */
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,armada-xp-pcie";
                        status = "disabled";
                        device_type = "pci";
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 58>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 59>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
                                          0x81000000 0 0 0x81000000 0x3 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 60>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
                                          0x81000000 0 0 0x81000000 0x4 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 61>;
                                marvell,pcie-port = <0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x5 0 1 0
                                          0x81000000 0 0 0x81000000 0x5 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 62>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x6 0 1 0
                                          0x81000000 0 0 0x81000000 0x6 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 63>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x7 0 1 0
                                          0x81000000 0 0 0x81000000 0x7 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 64>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x8 0 1 0
                                          0x81000000 0 0 0x81000000 0x8 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 65>;
                                marvell,pcie-port = <1>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x9 0 1 0
                                          0x81000000 0 0 0x81000000 0x9 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 99>;
                                marvell,pcie-port = <2>;
                                status = "disabled";
                        };
 
-                       pcie10: pcie@10,0 {
+                       pcie10: pcie@a,0 {
                                device_type = "pci";
                                assigned-addresses = <0x82005000 0 0x82000 0 0x2000>;
                                reg = <0x5000 0 0 0 0>;
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0xa 0 1 0
                                          0x81000000 0 0 0x81000000 0xa 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &mpic 103>;
                                marvell,pcie-port = <3>;
index 8a04c7e2d8185c9a72ea7824785ac93009672561..22b958537d31ada6dac768be3de7e2eddf31bfdb 100644 (file)
@@ -26,7 +26,7 @@
 
                fmc: flash-controller@1e620000 {
                        reg = < 0x1e620000 0x94
-                               0x20000000 0x02000000 >;
+                               0x20000000 0x10000000 >;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "aspeed,ast2400-fmc";
@@ -41,7 +41,7 @@
 
                spi: flash-controller@1e630000 {
                        reg = < 0x1e630000 0x18
-                               0x30000000 0x02000000 >;
+                               0x30000000 0x10000000 >;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "aspeed,ast2400-spi";
diff --git a/arch/arm/boot/dts/at91-sama5d27_som1.dtsi b/arch/arm/boot/dts/at91-sama5d27_som1.dtsi
new file mode 100644 (file)
index 0000000..63a5af8
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * at91-sama5d27_som1.dtsi - Device Tree file for SAMA5D27 SoM1 board
+ *
+ *  Copyright (c) 2017, Microchip Technology Inc.
+ *                2017 Cristian Birsan <cristian.birsan@microchip.com>
+ *                2017 Claudiu Beznea <claudiu.beznea@microchip.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+#include "sama5d2.dtsi"
+#include "sama5d2-pinfunc.h"
+
+/ {
+       model = "Atmel SAMA5D27 SoM1";
+       compatible = "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
+
+       clocks {
+               slow_xtal {
+                       clock-frequency = <32768>;
+               };
+
+               main_xtal {
+                       clock-frequency = <24000000>;
+               };
+       };
+
+       ahb {
+               apb {
+                       macb0: ethernet@f8008000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_macb0_default>;
+                               phy-mode = "rmii";
+
+                               ethernet-phy@1 {
+                                       reg = <0x1>;
+                                       interrupt-parent = <&pioA>;
+                                       interrupts = <PIN_PD31 IRQ_TYPE_LEVEL_LOW>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_macb0_phy_irq>;
+                               };
+                       };
+
+                       pinctrl@fc038000 {
+
+                               pinctrl_macb0_default: macb0_default {
+                                       pinmux = <PIN_PD9__GTXCK>,
+                                                <PIN_PD10__GTXEN>,
+                                                <PIN_PD11__GRXDV>,
+                                                <PIN_PD12__GRXER>,
+                                                <PIN_PD13__GRX0>,
+                                                <PIN_PD14__GRX1>,
+                                                <PIN_PD15__GTX0>,
+                                                <PIN_PD16__GTX1>,
+                                                <PIN_PD17__GMDC>,
+                                                <PIN_PD18__GMDIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_macb0_phy_irq: macb0_phy_irq {
+                                       pinmux = <PIN_PD31__GPIO>;
+                                       bias-disable;
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts b/arch/arm/boot/dts/at91-sama5d27_som1_ek.dts
new file mode 100644 (file)
index 0000000..9c9088c
--- /dev/null
@@ -0,0 +1,537 @@
+/*
+ * at91-sama5d27_som1_ek.dts - Device Tree file for SAMA5D27-SOM1-EK board
+ *
+ *  Copyright (c) 2017, Microchip Technology Inc.
+ *                2016 Nicolas Ferre <nicolas.ferre@atmel.com>
+ *                2017 Cristian Birsan <cristian.birsan@microchip.com>
+ *                2017 Claudiu Beznea <claudiu.beznea@microchip.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+/dts-v1/;
+#include "at91-sama5d27_som1.dtsi"
+#include <dt-bindings/mfd/atmel-flexcom.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Atmel SAMA5D27 SOM1 EK";
+       compatible = "atmel,sama5d27-som1-ek", "atmel,sama5d27-som1", "atmel,sama5d27", "atmel,sama5d2", "atmel,sama5";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       ahb {
+               usb0: gadget@00300000 {
+                       atmel,vbus-gpio = <&pioA PIN_PD20 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usba_vbus>;
+                       status = "okay";
+               };
+
+               usb1: ohci@00400000 {
+                       num-ports = <3>;
+                       atmel,vbus-gpio = <&pioA PIN_PA10 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb_default>;
+                       status = "okay";
+               };
+
+               usb2: ehci@00500000 {
+                       status = "okay";
+               };
+
+               sdmmc0: sdio-host@a0000000 {
+                       bus-width = <8>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_sdmmc0_default>;
+                       status = "okay";
+               };
+
+               sdmmc1: sdio-host@b0000000 {
+                       bus-width = <4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_sdmmc1_default>;
+                       status = "okay";
+               };
+
+               apb {
+                       isc: isc@f0008000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_isc_base &pinctrl_isc_data_8bit &pinctrl_isc_data_9_10 &pinctrl_isc_data_11_12>;
+                               status = "okay";
+                       };
+
+                       spi0: spi@f8000000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_spi0_default>;
+                               status = "okay";
+                       };
+
+                       macb0: ethernet@f8008000 {
+                               status = "okay";
+                       };
+
+                       uart1: serial@f8020000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_uart1_default>;
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               status = "okay";
+                       };
+
+                       uart2: serial@f8024000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_mikrobus2_uart>;
+                               atmel,use-dma-rx;
+                               atmel-use-dma-tx;
+                               status = "okay";
+                       };
+
+                       pwm0: pwm@f802c000 {
+                               status = "okay";
+                       };
+
+                       flx1: flexcom@f8038000 {
+                               atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+                               status = "disabled";
+
+                               i2c2: i2c@600 {
+                                       compatible = "atmel,sama5d2-i2c";
+                                       reg = <0x600 0x200>;
+                                       interrupts = <20 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       dmas = <0>, <0>;
+                                       dma-names = "tx", "rx";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       clocks = <&flx1_clk>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_mikrobus_i2c>;
+                                       atmel,fifo-size = <16>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       shdwc@f8048010 {
+                               atmel,shdwc-debouncer = <976>;
+                               atmel,wakeup-rtc-timer;
+
+                               input@0 {
+                                       reg = <0>;
+                                       atmel,wakeup-type = "low";
+                               };
+                       };
+
+                       watchdog@f8048040 {
+                               status = "okay";
+                       };
+
+                       can0: can@f8054000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_can0_default>;
+                       };
+
+                       uart3: serial@fc008000 {
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_uart3_default>;
+                               status = "disabled";
+                       };
+
+                       uart4: serial@fc00c000 {
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
+                               pinctrl-name = "default";
+                               pinctrl-0 = <&pinctrl_mikrobus1_uart>;
+                               status = "okay";
+                       };
+
+                       flx3: flexcom@fc014000 {
+                               atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
+                               status = "disabled";
+
+                               uart7: serial@200 {
+                                       compatible = "atmel,at91sam9260-usart";
+                                       reg = <0x200 0x200>;
+                                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       clocks = <&flx3_clk>;
+                                       clock-names = "usart";
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_flx3_default>;
+                                       atmel,fifo-size = <32>;
+                                       status = "disabled";
+                               };
+
+                               spi2: spi@400 {
+                                       compatible = "atmel,at91rm9200-spi";
+                                       reg = <0x400 0x200>;
+                                       interrupts = <22 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       clocks = <&flx3_clk>;
+                                       clock-names = "spi_clk";
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_flx3_default>;
+                                       atmel,fifo-size = <16>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       flx4: flexcom@fc018000 {
+                               atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
+                               status = "okay";
+
+                               uart6: serial@200 {
+                                       compatible = "atmel,at91sam9260-usart";
+                                       reg = <0x200 0x200>;
+                                       interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       clocks = <&flx4_clk>;
+                                       clock-names = "usart";
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_flx4_default>;
+                                       atmel,fifo-size = <32>;
+                                       status = "disabled";
+                               };
+
+                               spi3: spi@400 {
+                                       compatible = "atmel,at91rm9200-spi";
+                                       reg = <0x400 0x200>;
+                                       interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       clocks = <&flx4_clk>;
+                                       clock-names = "spi_clk";
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_mikrobus_spi &pinctrl_mikrobus1_spi_cs &pinctrl_mikrobus2_spi_cs>;
+                                       atmel,fifo-size = <16>;
+                                       status = "okay";
+                               };
+
+                               i2c3: i2c@600 {
+                                       compatible = "atmel,sama5d2-i2c";
+                                       reg = <0x600 0x200>;
+                                       interrupts = <23 IRQ_TYPE_LEVEL_HIGH 7>;
+                                       dmas = <0>, <0>;
+                                       dma-names = "tx", "rx";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       clocks = <&flx4_clk>;
+                                       pinctrl-names = "default";
+                                       pinctrl-0 = <&pinctrl_flx4_default>;
+                                       atmel,fifo-size = <16>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       i2c1: i2c@fc028000 {
+                               dmas = <0>, <0>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_i2c1_default>;
+                               status = "okay";
+                       };
+
+                       pinctrl@fc038000 {
+
+                               pinctrl_can0_default: can0_default {
+                                       pinmux = <PIN_PC10__CANTX0>,
+                                                <PIN_PC11__CANRX0>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_can1_default: can1_default {
+                                       pinmux = <PIN_PC26__CANTX1>,
+                                                <PIN_PC27__CANRX1>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_flx3_default: flx3_default {
+                                       pinmux = <PIN_PC20__FLEXCOM3_IO0>,
+                                                <PIN_PC19__FLEXCOM3_IO1>,
+                                                <PIN_PC18__FLEXCOM3_IO2>,
+                                                <PIN_PC21__FLEXCOM3_IO3>,
+                                                <PIN_PC22__FLEXCOM3_IO4>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_i2c1_default: i2c1_default {
+                                       pinmux = <PIN_PD4__TWD1>,
+                                                <PIN_PD5__TWCK1>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_isc_base: isc_base {
+                                       pinmux = <PIN_PC21__ISC_PCK>,
+                                                <PIN_PC22__ISC_VSYNC>,
+                                                <PIN_PC23__ISC_HSYNC>,
+                                                <PIN_PC24__ISC_MCK>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_isc_data_8bit: isc_data_8bit {
+                                       pinmux = <PIN_PC20__ISC_D11>,
+                                                <PIN_PC19__ISC_D10>,
+                                                <PIN_PC18__ISC_D9>,
+                                                <PIN_PC17__ISC_D8>,
+                                                <PIN_PC16__ISC_D7>,
+                                                <PIN_PC15__ISC_D6>,
+                                                <PIN_PC14__ISC_D5>,
+                                                <PIN_PC13__ISC_D4>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_isc_data_9_10: isc_data_9_10 {
+                                       pinmux = <PIN_PC12__ISC_D3>,
+                                                <PIN_PC11__ISC_D2>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_isc_data_11_12: isc_data_11_12 {
+                                       pinmux = <PIN_PC10__ISC_D1>,
+                                                <PIN_PC9__ISC_D0>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_key_gpio_default: key_gpio_default {
+                                       pinmux = <PIN_PA29__GPIO>;
+                                       bias-pull-up;
+                               };
+
+                               pinctrl_led_gpio_default: led_gpio_default {
+                                       pinmux = <PIN_PA27__GPIO>,
+                                                <PIN_PB1__GPIO>,
+                                                <PIN_PA31__GPIO>;
+                                       bias-pull-up;
+                               };
+
+                               pinctrl_sdmmc0_default: sdmmc0_default {
+                                       cmd_data {
+                                               pinmux = <PIN_PA1__SDMMC0_CMD>,
+                                                        <PIN_PA2__SDMMC0_DAT0>,
+                                                        <PIN_PA3__SDMMC0_DAT1>,
+                                                        <PIN_PA4__SDMMC0_DAT2>,
+                                                        <PIN_PA5__SDMMC0_DAT3>,
+                                                        <PIN_PA6__SDMMC0_DAT4>,
+                                                        <PIN_PA7__SDMMC0_DAT5>,
+                                                        <PIN_PA8__SDMMC0_DAT6>,
+                                                        <PIN_PA9__SDMMC0_DAT7>;
+                                               bias-pull-up;
+                                       };
+
+                                       ck_cd_vddsel {
+                                               pinmux = <PIN_PA0__SDMMC0_CK>,
+                                                        <PIN_PA11__SDMMC0_VDDSEL>,
+                                                        <PIN_PA13__SDMMC0_CD>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               pinctrl_sdmmc1_default: sdmmc1_default {
+                                       cmd_data {
+                                               pinmux = <PIN_PA28__SDMMC1_CMD>,
+                                                        <PIN_PA18__SDMMC1_DAT0>,
+                                                        <PIN_PA19__SDMMC1_DAT1>,
+                                                        <PIN_PA20__SDMMC1_DAT2>,
+                                                        <PIN_PA21__SDMMC1_DAT3>;
+                                               bias-pull-up;
+                                       };
+
+                                       conf-ck_cd {
+                                               pinmux = <PIN_PA22__SDMMC1_CK>,
+                                                        <PIN_PA30__SDMMC1_CD>;
+                                               bias-disable;
+                                       };
+                               };
+
+                               pinctrl_spi0_default: spi0_default {
+                                       pinmux = <PIN_PA14__SPI0_SPCK>,
+                                                <PIN_PA15__SPI0_MOSI>,
+                                                <PIN_PA16__SPI0_MISO>,
+                                                <PIN_PA17__SPI0_NPCS0>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_uart1_default: uart1_default {
+                                       pinmux = <PIN_PD2__URXD1>,
+                                                <PIN_PD3__UTXD1>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_uart3_default: uart3_default {
+                                       pinmux = <PIN_PC12__URXD3>,
+                                                <PIN_PC13__UTXD3>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_usb_default: usb_default {
+                                       pinmux = <PIN_PA10__GPIO>,
+                                                <PIN_PD19__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_usba_vbus: usba_vbus {
+                                       pinmux = <PIN_PD20__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus1_an: mikrobus1_an {
+                                       pinmux = <PIN_PD25__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus2_an: mikrobus2_an {
+                                       pinmux = <PIN_PD26__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus1_rst: mikrobus1_rst {
+                                       pinmux = <PIN_PB2__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus2_rst: mikrobus2_rst {
+                                       pinmux = <PIN_PA26__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus1_spi_cs: mikrobus1_spi_cs {
+                                       pinmux = <PIN_PD0__FLEXCOM4_IO4>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus2_spi_cs: mikrobus2_spi_cs {
+                                       pinmux = <PIN_PC31__FLEXCOM4_IO3>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus_spi: mikrobus_spi {
+                                       pinmux = <PIN_PC28__FLEXCOM4_IO0>,
+                                                <PIN_PC29__FLEXCOM4_IO1>,
+                                                <PIN_PC30__FLEXCOM4_IO2>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus1_pwm: mikrobus1_pwm {
+                                       pinmux = <PIN_PB1__PWML1>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus2_pwm: mikrobus2_pwm {
+                                       pinmux = <PIN_PA31__PWML0>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus1_int: mikrobus1_int {
+                                       pinmux = <PIN_PB0__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus2_int: mikrobus2_int {
+                                       pinmux = <PIN_PA25__GPIO>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus1_uart: mikrobus1_uart {
+                                       pinmux = <PIN_PB3__URXD4>,
+                                                <PIN_PB4__UTXD4>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus2_uart: mikrobus2_uart {
+                                       pinmux = <PIN_PD23__URXD2>,
+                                                <PIN_PD24__UTXD2>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_mikrobus_i2c: mikrobus1_i2c {
+                                       pinmux = <PIN_PA24__FLEXCOM1_IO0>,
+                                                <PIN_PA23__FLEXCOM1_IO1>;
+                                       bias-disable;
+                               };
+
+                               pinctrl_flx4_default: flx4_uart_default {
+                                       pinmux = <PIN_PC28__FLEXCOM4_IO0>,
+                                                <PIN_PC29__FLEXCOM4_IO1>,
+                                                <PIN_PC30__FLEXCOM4_IO2>,
+                                                <PIN_PC31__FLEXCOM4_IO3>,
+                                                <PIN_PD0__FLEXCOM4_IO4>;
+                                       bias-disable;
+                               };
+                       };
+
+                       can1: can@fc050000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_can1_default>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_key_gpio_default>;
+
+               pb4 {
+                       label = "USER";
+                       gpios = <&pioA PIN_PA29 GPIO_ACTIVE_LOW>;
+                       linux,code = <0x104>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_led_gpio_default>;
+               status = "okay";
+
+               red {
+                       label = "red";
+                       gpios = <&pioA PIN_PA27 GPIO_ACTIVE_LOW>;
+               };
+
+               green {
+                       label = "green";
+                       gpios = <&pioA PIN_PB1 GPIO_ACTIVE_LOW>;
+               };
+
+               blue {
+                       label = "blue";
+                       gpios = <&pioA PIN_PA31 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+};
index 2e2c3d1a1fa28a36111ae9725b68c4120a1b0609..c7e9ccf2bc8724304f44c574bc901b3e9b3999af 100644 (file)
@@ -68,7 +68,7 @@
 
        ahb {
                usb0: gadget@00300000 {
-                       atmel,vbus-gpio = <&pioA 31 GPIO_ACTIVE_HIGH>;
+                       atmel,vbus-gpio = <&pioA PIN_PA31 GPIO_ACTIVE_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_usba_vbus>;
                        status = "okay";
@@ -76,8 +76,8 @@
 
                usb1: ohci@00400000 {
                        num-ports = <3>;
-                       atmel,vbus-gpio = <0 /* &pioA 41 GPIO_ACTIVE_HIGH */
-                                          &pioA 42 GPIO_ACTIVE_HIGH
+                       atmel,vbus-gpio = <0 /* &pioA PIN_PB9 GPIO_ACTIVE_HIGH */
+                                          &pioA PIN_PB10 GPIO_ACTIVE_HIGH
                                           0
                                          >;
                        pinctrl-names = "default";
                                ethernet-phy@1 {
                                        reg = <0x1>;
                                        interrupt-parent = <&pioA>;
-                                       interrupts = <73 IRQ_TYPE_LEVEL_LOW>;
+                                       interrupts = <PIN_PC9 IRQ_TYPE_LEVEL_LOW>;
                                };
                        };
 
                                        compatible = "active-semi,act8945a";
                                        reg = <0x5b>;
                                        active-semi,vsel-high;
-                                       active-semi,chglev-gpios = <&pioA 12 GPIO_ACTIVE_HIGH>;
-                                       active-semi,lbo-gpios = <&pioA 72 GPIO_ACTIVE_LOW>;
-                                       active-semi,irq_gpios = <&pioA 45 GPIO_ACTIVE_LOW>;
+                                       active-semi,chglev-gpios = <&pioA PIN_PA12 GPIO_ACTIVE_HIGH>;
+                                       active-semi,lbo-gpios = <&pioA PIN_PC8 GPIO_ACTIVE_LOW>;
+                                       active-semi,irq_gpios = <&pioA PIN_PB13 GPIO_ACTIVE_LOW>;
                                        active-semi,input-voltage-threshold-microvolt = <6600>;
                                        active-semi,precondition-timeout = <40>;
                                        active-semi,total-timeout = <3>;
                                        bias-pull-up;
                                };
 
+                               pinctrl_classd_default: classd_default {
+                                       pinmux = <PIN_PB1__CLASSD_R0>,
+                                                <PIN_PB2__CLASSD_R1>,
+                                                <PIN_PB3__CLASSD_R2>,
+                                                <PIN_PB4__CLASSD_R3>;
+                                       bias-pull-up;
+                               };
+
                                pinctrl_flx0_default: flx0_default {
                                        pinmux = <PIN_PB28__FLEXCOM0_IO0>,
                                                 <PIN_PB29__FLEXCOM0_IO1>;
 
                        };
 
+                       classd: classd@fc048000 {
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_classd_default>;
+                               atmel,pwm-type = "diff";
+                               atmel,non-overlap-time = <10>;
+                               status = "okay";
+                       };
+
                        can1: can@fc050000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_can1_default>;
 
                bp1 {
                        label = "PB_USER";
-                       gpios = <&pioA 41 GPIO_ACTIVE_LOW>;
+                       gpios = <&pioA PIN_PB9 GPIO_ACTIVE_LOW>;
                        linux,code = <0x104>;
                };
        };
 
                red {
                        label = "red";
-                       gpios = <&pioA 38 GPIO_ACTIVE_LOW>;
+                       gpios = <&pioA PIN_PB6 GPIO_ACTIVE_LOW>;
                };
 
+
                green {
                        label = "green";
-                       gpios = <&pioA 37 GPIO_ACTIVE_LOW>;
+                       gpios = <&pioA PIN_PB5 GPIO_ACTIVE_LOW>;
                };
 
                blue {
                        label = "blue";
-                       gpios = <&pioA 32 GPIO_ACTIVE_LOW>;
+                       gpios = <&pioA PIN_PB0 GPIO_ACTIVE_LOW>;
                        linux,default-trigger = "heartbeat";
                };
        };
index a4808c4fbc05897983df72024fc0f7667d75fbac..64fa3f9a39d3353ea18eb806a62b2498045a4d81 100644 (file)
                                      >;
 
                                /* shared pinctrl settings */
+                               ac97 {
+                                       pinctrl_ac97: ac97-0 {
+                                               atmel,pins =
+                                                       <AT91_PIOD 6 AT91_PERIPH_A AT91_PINCTRL_NONE    /* AC97RX */
+                                                        AT91_PIOD 7 AT91_PERIPH_A AT91_PINCTRL_NONE    /* AC97TX */
+                                                        AT91_PIOD 8 AT91_PERIPH_A AT91_PINCTRL_NONE    /* AC97FS */
+                                                        AT91_PIOD 9 AT91_PERIPH_A AT91_PINCTRL_NONE>;  /* AC97CK */
+                                       };
+                               };
+
                                adc0 {
                                        pinctrl_adc0_adtrg: adc0_adtrg {
                                                atmel,pins = <AT91_PIOD 28 AT91_PERIPH_A AT91_PINCTRL_NONE>;
                                status = "disabled";
                        };
 
+                       ac97: sound@fffac000 {
+                               compatible = "atmel,at91sam9263-ac97c";
+                               reg = <0xfffac000 0x4000>;
+                               interrupts = <24 IRQ_TYPE_LEVEL_HIGH 4>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&pinctrl_ac97>;
+                               clocks = <&ac97_clk>;
+                               clock-names = "ac97_clk";
+                               status = "disabled";
+                       };
+
                        adc0: adc@fffb0000 {
                                #address-cells = <1>;
                                #size-cells = <0>;
index 2522c330830561989dd31d985b1349cc50062d27..94c52c555f832d69cab669b64204f614fd00bced 100644 (file)
                                status = "okay";
                        };
 
+                       ac97: sound@fffac000 {
+                               status = "okay";
+                       };
+
                        adc0: adc@fffb0000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <
index bf8c838157539e697e3b5e875ac05f59325c3b3e..7c957ea06c66ce6b603277e452584dc8df05e5ef 100644 (file)
 
        /include/ "bcm-cygnus-clock.dtsi"
 
+       pmu {
+               compatible = "arm,cortex-a9-pmu";
+               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        core {
                compatible = "simple-bus";
                ranges = <0x00000000 0x19000000 0x1000000>;
                        compatible = "brcm,cygnus-pinmux";
                        reg = <0x0301d0c8 0x30>,
                              <0x0301d24c 0x2c>;
+
+                       spi_0: spi_0 {
+                               function = "spi0";
+                               groups = "spi0_grp";
+                       };
+
+                       spi_1: spi_1 {
+                               function = "spi1";
+                               groups = "spi1_grp";
+                       };
+
+                       spi_2: spi_2 {
+                               function = "spi2";
+                               groups = "spi2_grp";
+                       };
                };
 
                mailbox: mailbox@03024024 {
                        };
                };
 
+               dma0: dma@18018000 {
+                       compatible = "arm,pl330", "arm,primecell";
+                       reg = <0x18018000 0x1000>;
+                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&apb_clk>;
+                       clock-names = "apb_pclk";
+                       #dma-cells = <1>;
+               };
+
                uart0: serial@18020000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x18020000 0x100>;
 
                uart2: serial@18022000 {
                        compatible = "snps,dw-apb-uart";
-                       reg = <0x18020000 0x100>;
+                       reg = <0x18022000 0x100>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
+               spi0: spi@18028000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x18028000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&spi_0>;
+                       clocks = <&axi81_clk>;
+                       clock-names = "apb_pclk";
+                       status = "disabled";
+               };
+
+               spi1: spi@18029000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x18029000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&spi_1>;
+                       clocks = <&axi81_clk>;
+                       clock-names = "apb_pclk";
+                       status = "disabled";
+               };
+
+               spi2: spi@1802a000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x1802a000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-0 = <&spi_2>;
+                       clocks = <&axi81_clk>;
+                       clock-names = "apb_pclk";
+                       status = "disabled";
+               };
+
+               sdhci0: sdhci@18041000 {
+                       compatible = "brcm,sdhci-iproc-cygnus";
+                       reg = <0x18041000 0x100>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lcpll0 BCM_CYGNUS_LCPLL0_SDIO_CLK>;
+                       bus-width = <4>;
+                       sdhci,auto-cmd12;
+                       status = "disabled";
+               };
+
                eth0: ethernet@18042000 {
                        compatible = "brcm,amac";
                        reg = <0x18042000 0x1000>,
                        status = "disabled";
                };
 
+               sdhci1: sdhci@18043000 {
+                       compatible = "brcm,sdhci-iproc-cygnus";
+                       reg = <0x18043000 0x100>;
+                       interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&lcpll0 BCM_CYGNUS_LCPLL0_SDIO_CLK>;
+                       bus-width = <4>;
+                       sdhci,auto-cmd12;
+                       status = "disabled";
+               };
+
                nand: nand@18046000 {
                        compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
                        reg = <0x18046000 0x600>, <0xf8105408 0x600>,
                        brcm,nand-has-wp;
                };
 
+               ehci0: usb@18048000 {
+                       compatible = "generic-ehci";
+                       reg = <0x18048000 0x100>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               ohci0: usb@18048800 {
+                       compatible = "generic-ohci";
+                       reg = <0x18048800 0x100>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               v3d: v3d@180a2000 {
+                       compatible = "brcm,cygnus-v3d";
+                       reg = <0x180a2000 0x1000>;
+                       clocks = <&mipipll BCM_CYGNUS_MIPIPLL_CH2_V3D>;
+                       clock-names = "v3d_clk";
+                       interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               vc4: gpu {
+                       compatible = "brcm,cygnus-vc4";
+               };
+
                gpio_asiu: gpio@180a5000 {
                        compatible = "brcm,cygnus-asiu-gpio";
                        reg = <0x180a5000 0x668>;
                        status = "disabled";
                };
 
-               v3d: v3d@180a2000 {
-                       compatible = "brcm,cygnus-v3d";
-                       reg = <0x180a2000 0x1000>;
-                       clocks = <&mipipll BCM_CYGNUS_MIPIPLL_CH2_V3D>;
-                       clock-names = "v3d_clk";
-                       interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "disabled";
-               };
-
-               vc4: gpu {
-                       compatible = "brcm,cygnus-vc4";
-               };
-
                adc: adc@180a6000 {
                        compatible = "brcm,iproc-static-adc";
                        #io-channel-cells = <1>;
                        interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
+
+               keypad: keypad@180ac000 {
+                       compatible = "brcm,bcm-keypad";
+                       reg = <0x180ac000 0x14c>;
+                       interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&asiu_clks BCM_CYGNUS_ASIU_KEYPAD_CLK>;
+                       clock-names = "peri_clk";
+                       clock-frequency = <31250>;
+                       pull-up-enabled;
+                       col-debounce-filter-period = <0>;
+                       status-debounce-filter-period = <0>;
+                       row-output-enabled;
+                       status = "disabled";
+               };
        };
 };
index 7204d1def23df1c5712bc9a559a599392ffef4b7..dff66974feeda575c06f38c38ddff3e4ecdf41ce 100644 (file)
                        interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
                        sdhci,auto-cmd12;
                        clocks = <&lcpll0 BCM_NSP_LCPLL0_SDIO_CLK>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                              <0x110000 0x1000>;
                        reg-names = "amac_base", "idm_base";
                        interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                              <0x111000 0x1000>;
                        reg-names = "amac_base", "idm_base";
                        interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                              <0x112000 0x1000>;
                        reg-names = "amac_base", "idm_base";
                        interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        #mbox-cells = <1>;
                        brcm,rx-status-len = <32>;
                        brcm,use-bcm-hdr;
+                       dma-coherent;
                };
 
                nand: nand@26000 {
                        #size-cells = <0>;
                };
 
+               xhci: usb@29000 {
+                       compatible = "generic-xhci";
+                       reg = <0x29000 0x1000>;
+                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usb3_phy>;
+                       phy-names = "usb3-phy";
+                       dma-coherent;
+                       status = "disabled";
+               };
+
+               ehci0: usb@2a000 {
+                       compatible = "generic-ehci";
+                       reg = <0x2a000 0x100>;
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+                       status = "disabled";
+               };
+
+               ohci0: usb@2b000 {
+                       compatible = "generic-ohci";
+                       reg = <0x2b000 0x100>;
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+                       status = "disabled";
+               };
+
                crypto@2f000 {
                        compatible = "brcm,spum-nsp-crypto";
                        reg = <0x2f000 0x900>;
                        status = "disabled";
                };
 
-               ehci0: usb@2a000 {
-                       compatible = "generic-ehci";
-                       reg = <0x2a000 0x100>;
-                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "disabled";
-               };
-
-               ohci0: usb@2b000 {
-                       compatible = "generic-ohci";
-                       reg = <0x2b000 0x100>;
-                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "disabled";
-               };
-
                rng: rng@33000 {
                        compatible = "brcm,bcm-nsp-rng";
                        reg = <0x33000 0x14>;
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 89 IRQ_TYPE_NONE>;
                        clock-frequency = <100000>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       dma-coherent;
                        status = "disabled";
 
                        sata0: sata-port@0 {
                                phy-names = "sata-phy";
                        };
                };
+
+               usb3_phy: usb3-phy@104000 {
+                       compatible = "brcm,ns-bx-usb3-phy";
+                       reg = <0x104000 0x1000>,
+                             <0x032000 0x1000>;
+                       reg-names = "dmp", "ccb-mii";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
        };
 
        pcie0: pcie@18012000 {
                 */
                ranges = <0x82000000 0 0x08000000 0x08000000 0 0x8000000>;
 
+               dma-coherent;
                status = "disabled";
 
                msi-parent = <&msi0>;
                 */
                ranges = <0x82000000 0 0x40000000 0x40000000 0 0x8000000>;
 
+               dma-coherent;
                status = "disabled";
 
                msi-parent = <&msi1>;
                 */
                ranges = <0x82000000 0 0x48000000 0x48000000 0 0x8000000>;
 
+               dma-coherent;
                status = "disabled";
 
                msi-parent = <&msi2>;
index d0704540db6b3cc136bd92dfb3038077d8083312..9f866491efdf5ac6c3bad1f785a9837fce33073c 100644 (file)
@@ -99,3 +99,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 46d078e29017eeda2ea5d92c6d0c21d1ce9deccd..4b1af06c8dc03157113781ab27e9085346cd59d9 100644 (file)
@@ -94,3 +94,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 432088ebb0a19a97e5390a3c90f88af9f796476d..a846f1e781d8a30e2e0afeaed5e67c32005f9b97 100644 (file)
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 4133bc2cd9be309a3885e6d002b767fe2c4d0458..e860964e39fa9ce61fee3f858924019df37fdf81 100644 (file)
@@ -94,3 +94,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 4d56fe3006b0c38b652d88b36af09306ea455b2e..5d77f3f8c4c58475fcf5948af3d5815f7b6cd728 100644 (file)
@@ -89,3 +89,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_HIGH>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts b/arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
new file mode 100644 (file)
index 0000000..82651c3
--- /dev/null
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2017 Stefan Wahren <stefan.wahren@i2se.com>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "bcm2835.dtsi"
+#include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
+
+/ {
+       compatible = "raspberrypi,model-zero-w", "brcm,bcm2835";
+       model = "Raspberry Pi Zero W";
+
+       /* Needed by firmware to properly init UARTs */
+       aliases {
+               uart0 = "/soc/serial@7e201000";
+               uart1 = "/soc/serial@7e215040";
+               serial0 = "/soc/serial@7e201000";
+               serial1 = "/soc/serial@7e215040";
+       };
+
+       leds {
+               act {
+                       gpios = <&gpio 47 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wl_on>;
+               reset-gpios = <&gpio 41 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&gpio {
+       /*
+        * This is based on the official GPU firmware DT blob.
+        *
+        * Legend:
+        * "NC" = not connected (no rail from the SoC)
+        * "FOO" = GPIO line named "FOO" on the schematic
+        * "FOO_N" = GPIO line named "FOO" on schematic, active low
+        */
+       gpio-line-names = "GPIO0",
+                         "GPIO1",
+                         "SDA1",
+                         "SCL1",
+                         "GPIO_GCLK",
+                         "GPIO5",
+                         "GPIO6",
+                         "SPI_CE1_N",
+                         "SPI_CE0_N",
+                         "SPI_MISO",
+                         "SPI_MOSI",
+                         "SPI_SCLK",
+                         "GPIO12",
+                         "GPIO13",
+                         /* Serial port */
+                         "TXD0",
+                         "RXD0",
+                         "GPIO16",
+                         "GPIO17",
+                         "GPIO18",
+                         "GPIO19",
+                         "GPIO20",
+                         "GPIO21",
+                         "GPIO22",
+                         "GPIO23",
+                         "GPIO24",
+                         "GPIO25",
+                         "GPIO26",
+                         "GPIO27",
+                         "SDA0",
+                         "SCL0",
+                         "NC", /* GPIO30 */
+                         "NC", /* GPIO31 */
+                         "NC", /* GPIO32 */
+                         "NC", /* GPIO33 */
+                         "NC", /* GPIO34 */
+                         "NC", /* GPIO35 */
+                         "NC", /* GPIO36 */
+                         "NC", /* GPIO37 */
+                         "NC", /* GPIO38 */
+                         "NC", /* GPIO39 */
+                         "CAM_GPIO1", /* GPIO40 */
+                         "WL_ON", /* GPIO41 */
+                         "NC", /* GPIO42 */
+                         "WIFI_CLK", /* GPIO43 */
+                         "CAM_GPIO0", /* GPIO44 */
+                         "BT_ON", /* GPIO45 */
+                         "HDMI_HPD_N",
+                         "STATUS_LED_N",
+                         /* Used by SD Card */
+                         "SD_CLK_R",
+                         "SD_CMD_R",
+                         "SD_DATA0_R",
+                         "SD_DATA1_R",
+                         "SD_DATA2_R",
+                         "SD_DATA3_R";
+
+       pinctrl-0 = <&gpioout &alt0>;
+
+       wl_on: wl-on {
+               brcm,pins = <41>;
+               brcm,function = <BCM2835_FSEL_GPIO_OUT>;
+       };
+};
+
+&hdmi {
+       hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+};
+
+&sdhci {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       non-removable;
+       status = "okay";
+
+       brcmf: wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index 79a20d5209310b2cfd912a9dbf1e67bc5b804b4d..70362405c59522fb7835a7b4b13ebb43592edfc4 100644 (file)
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index e55b362b9d6e92124a22d6e5718adf1f63be3818..e36c392a2b8fdfe36dab81b0128e85dfd422ab7b 100644 (file)
@@ -39,7 +39,7 @@
        };
 
        alt0: alt0 {
-               brcm,pins = <4 5 7 8 9 10 11 14 15>;
+               brcm,pins = <4 5 7 8 9 10 11>;
                brcm,function = <BCM2835_FSEL_ALT0>;
        };
 };
index bf19e8cfb9e63cc9cd0a1c26e69a286b9a3c4bdf..e8de41444b68eed33efa16e92ddf29e3ace5fd1c 100644 (file)
@@ -39,3 +39,9 @@
 &hdmi {
        hpd-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
 };
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio14>;
+       status = "okay";
+};
index da3deeb42592926f36b49770b50b549abcb6ece7..2c26d0be8b0316792188890ed677e87fc1fb13ea 100644 (file)
@@ -36,6 +36,7 @@
        cpus: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
+               enable-method = "brcm,bcm2836-smp";
 
                v7_cpu0: cpu@0 {
                        device_type = "cpu";
index c72a27d908b6f191b6be47c305221b2ee242e3be..20725ca487f30afd5e84059fbcb1513d3399cfa8 100644 (file)
@@ -1 +1,51 @@
-#include "arm64/broadcom/bcm2837-rpi-3-b.dts"
+/dts-v1/;
+#include "bcm2837.dtsi"
+#include "bcm2835-rpi.dtsi"
+#include "bcm283x-rpi-smsc9514.dtsi"
+#include "bcm283x-rpi-usb-host.dtsi"
+
+/ {
+       compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
+       model = "Raspberry Pi 3 Model B";
+
+       memory {
+               reg = <0 0x40000000>;
+       };
+
+       leds {
+               act {
+                       gpios = <&gpio 47 0>;
+               };
+       };
+};
+
+/* uart0 communicates with the BT module */
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_gpio32 &gpclk2_gpio43>;
+       status = "okay";
+};
+
+/* uart1 is mapped to the pin header */
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_gpio14>;
+       status = "okay";
+};
+
+/* SDHCI is used to control the SDIO for wireless */
+&sdhci {
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_gpio34>;
+       status = "okay";
+       bus-width = <4>;
+       non-removable;
+};
+
+/* SDHOST is used to drive the SD card */
+&sdhost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhost_gpio48>;
+       status = "okay";
+       bus-width = <4>;
+};
diff --git a/arch/arm/boot/dts/bcm2837.dtsi b/arch/arm/boot/dts/bcm2837.dtsi
new file mode 100644 (file)
index 0000000..bc1cca5
--- /dev/null
@@ -0,0 +1,87 @@
+#include "bcm283x.dtsi"
+
+/ {
+       compatible = "brcm,bcm2837";
+
+       soc {
+               ranges = <0x7e000000 0x3f000000 0x1000000>,
+                        <0x40000000 0x40000000 0x00001000>;
+               dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
+
+               local_intc: local_intc {
+                       compatible = "brcm,bcm2836-l1-intc";
+                       reg = <0x40000000 0x100>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       interrupt-parent = <&local_intc>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupt-parent = <&local_intc>;
+               interrupts = <0>, // PHYS_SECURE_PPI
+                            <1>, // PHYS_NONSECURE_PPI
+                            <3>, // VIRT_PPI
+                            <2>; // HYP_PPI
+               always-on;
+       };
+
+       cpus: cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0>;
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x000000d8>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <1>;
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x000000e0>;
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <2>;
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x000000e8>;
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <3>;
+                       enable-method = "spin-table";
+                       cpu-release-addr = <0x0 0x000000f0>;
+               };
+       };
+};
+
+/* Make the BCM2835-style global interrupt controller be a child of the
+ * CPU-local interrupt controller.
+ */
+&intc {
+       compatible = "brcm,bcm2836-armctrl-ic";
+       reg = <0x7e00b200 0x200>;
+       interrupt-parent = <&local_intc>;
+       interrupts = <8>;
+};
+
+&cpu_thermal {
+       coefficients = <(-538)  412000>;
+};
+
+/* enable thermal sensor with the correct compatible property set */
+&thermal {
+       compatible = "brcm,bcm2837-thermal";
+       status = "okay";
+};
index 62e1427b3f1076072301e14b6c26aead71235bd4..8b64caabaad8401876706da9b2ebf521b3401e6c 100644 (file)
                usb {
                        label = "bcm53xx:blue:usb";
                        gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>, <&ohci_port2>,
+                                         <&ehci_port2>;
+                       linux,default-trigger = "usbport";
                };
 
                power0 {
index a5647efe41187eaa2e0dc70d9bfc125856562f45..d7c34fa72b4b7525303ba5e06b93e0c9c00b4b82 100644 (file)
@@ -48,6 +48,9 @@
                usb {
                        label = "bcm53xx:blue:usb";
                        gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                wireless {
index 19ee924d7d53fa0c1b86bbbbf0d3787ea8a0bbfa..83a4c60bb431233a715140e46db00548f1ce0a7d 100644 (file)
                usb2 {
                        label = "bcm53xx:white:usb2";
                        gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port2>, <&ehci_port2>;
+                       linux,default-trigger = "usbport";
                };
 
                usb3-white {
                        label = "bcm53xx:white:usb3";
                        gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&xhci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                usb3-green {
                        label = "bcm53xx:green:usb3";
                        gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                wps {
index a854a5174b7fd95e3ca00d585a7b0f630ead2981..3ed8de42cb4877bb78f022efd470640b43cef18f 100644 (file)
@@ -36,6 +36,8 @@
                usb2-port1 {
                        label = "bcm53xx:green:usb2-port1";
                        gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                power {
@@ -67,6 +69,8 @@
                usb2-port2 {
                        label = "bcm53xx:green:usb2-port2";
                        gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port2>, <&ehci_port2>;
+                       linux,default-trigger = "usbport";
                };
        };
 
index 97aa5d59a1d805f155846fad9fec15deaf6765b0..ec4a50e440f6bc4e831be87c2c5b848070925d26 100644 (file)
                usb3 {
                        label = "bcm53xx:blue:usb3";
                        gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                usb2 {
                        label = "bcm53xx:blue:usb2";
                        gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port2>, <&ehci_port2>;
+                       linux,default-trigger = "usbport";
                };
 
                wan-blue {
index 51b0641b5f79c9f0a2cff8e1a9b94233d2fc4dac..7cc7d344fe5b69fd4699b946c5f62961dd2a9450 100644 (file)
@@ -71,6 +71,9 @@
                usb3-white {
                        label = "bcm53xx:white:usb3";
                        gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                2ghz {
index 5f8621d00c5003282eaf68608ab24d3c02d5b94e..bc1d1e10d4acc460f76953bc36d033b6610e567d 100644 (file)
@@ -59,6 +59,9 @@
                usb3    {
                        label = "bcm53xx:green:usb3";
                        gpios = <&chipcommon 8 GPIO_ACTIVE_LOW>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                status  {
index 34417dac1cd0937292469da3b86b54f2e8cfff1c..19e61b5b066c574d8ee464a6fe91d564c1436e86 100644 (file)
@@ -26,6 +26,8 @@
                usb {
                        label = "bcm53xx:blue:usb";
                        gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>;
+                       linux,default-trigger = "usbport";
                };
 
                wps {
index 98647d22b291f100399290adf1d2ed67b31fe0e7..045b9bb857f9a030491bc3bdbf82ae67bb841b73 100644 (file)
                                reg = <0x00021000 0x1000>;
                                interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                                phys = <&usb2_phy>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               ehci_port1: port@1 {
+                                       reg = <1>;
+                                       #trigger-source-cells = <0>;
+                               };
+
+                               ehci_port2: port@2 {
+                                       reg = <2>;
+                                       #trigger-source-cells = <0>;
+                               };
                        };
 
                        ohci: ohci@22000 {
                                compatible = "generic-ohci";
                                reg = <0x00022000 0x1000>;
                                interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               ohci_port1: port@1 {
+                                       reg = <1>;
+                                       #trigger-source-cells = <0>;
+                               };
+
+                               ohci_port2: port@2 {
+                                       reg = <2>;
+                                       #trigger-source-cells = <0>;
+                               };
                        };
                };
 
                                interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                                phys = <&usb3_phy>;
                                phy-names = "usb";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               xhci_port1: port@1 {
+                                       reg = <1>;
+                                       #trigger-source-cells = <0>;
+                               };
                        };
                };
 
index eae623f7640138abb794f52cfc2604321947308e..c698a565b8ae9e2134c36fc796e983159b686a67 100644 (file)
 
                                ehci_port1: port@1 {
                                        reg = <1>;
+                                       #trigger-source-cells = <0>;
                                };
 
                                ehci_port2: port@2 {
                                        reg = <2>;
+                                       #trigger-source-cells = <0>;
                                };
                        };
 
 
                                ohci_port1: port@1 {
                                        reg = <1>;
+                                       #trigger-source-cells = <0>;
                                };
 
                                ohci_port2: port@2 {
                                        reg = <2>;
+                                       #trigger-source-cells = <0>;
                                };
                        };
                };
index 000f5f19215e0cef9adea11ead762a3e027d5ed7..53f990defd6ae9f7af35eac9e1a04a16ae47c048 100644 (file)
        model = "Cygnus Enterprise Phone (BCM911360_ENTPHN)";
        compatible = "brcm,bcm11360", "brcm,cygnus";
 
+       aliases {
+               serial0 = &uart3;
+       };
+
        chosen {
-               stdout-path = &uart3;
-               bootargs = "console=ttyS0,115200";
+               stdout-path = "serial0:115200n8";
        };
 
        gpio_keys {
diff --git a/arch/arm/boot/dts/bcm947189acdbmr.dts b/arch/arm/boot/dts/bcm947189acdbmr.dts
new file mode 100644 (file)
index 0000000..ef26341
--- /dev/null
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2017 Broadcom
+ * Author: Florian Fainelli <f.fainelli@gmail.com>
+ *
+ * Licensed under the ISC license.
+ */
+
+/dts-v1/;
+
+#include "bcm53573.dtsi"
+
+/ {
+       compatible = "brcm,bcm947189acdbmr", "brcm,bcm47189", "brcm,bcm53573";
+       model = "Broadcom BCM947189ACDBMR";
+
+       chosen {
+               bootargs = "console=ttyS0,115200 earlycon";
+       };
+
+       memory {
+               reg = <0x00000000 0x08000000>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wps {
+                       label = "bcm53xx:blue:wps";
+                       gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
+               };
+
+               5ghz {
+                       label = "bcm53xx:blue:5ghz";
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_HIGH>;
+               };
+
+               2ghz {
+                       label = "bcm53xx:blue:2ghz";
+                       gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
+               };
+
+               wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 9 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       spi {
+               compatible = "spi-gpio";
+               num-chipselects = <1>;
+               gpio-sck = <&chipcommon 21 0>;
+               gpio-miso = <&chipcommon 22 0>;
+               gpio-mosi = <&chipcommon 23 0>;
+               cs-gpios = <&chipcommon 24 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* External BCM6802 MoCA chip is connected */
+       };
+};
+
+&pcie0 {
+       ranges = <0x00000000 0 0 0 0 0x00100000>;
+       #address-cells = <3>;
+       #size-cells = <2>;
+
+       bridge@0,0,0 {
+               reg = <0x0000 0 0 0 0>;
+               ranges = <0x00000000 0 0 0 0 0 0 0x00100000>;
+               #address-cells = <3>;
+               #size-cells = <2>;
+
+               wifi@0,1,0 {
+                       reg = <0x0000 0 0 0 0>;
+                       ranges = <0x00000000 0 0 0 0x00100000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
+};
index f5c42962c20131dcb1c3bdeef6614c5a36456c36..f9dd342cc2ae499340529c4e842a0da6a1a133b6 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index efcb1f67bdadf7abcb71f625ec7a12aec56e4d9d..374508a9cfbfb2820d503c65cfa527066163034c 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index b335ce02e32f9cdda5282cd5180121daa33ea457..403250c5ad8e7b462198185a5add47b2b611e068 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index 16ab2d82a14ba63bf98577786b844795e8a02ed9..fd8b8c689ffe99f3421ae6f02b1a46a2ee3c3b72 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index 9b921c6aa8f8de19807c9a29d8f72eb404af6a49..3bc50849d013ff0442f559dce24274972202f5f2 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index 006b08e41a3ba0187412c99108e707df11380dd5..d94d14b3c745a0d01c031b6d9b9e6426e0e7b2ec 100644 (file)
 &uart0 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index 64740f85cf4c906a9ea1d9397087c1515e3024db..2cf2392483b2af6269093f6edaf842bb4e12e776 100644 (file)
 &uart1 {
        status = "okay";
 };
+
+&usb3_phy {
+       status = "okay";
+};
+
+&xhci {
+       status = "okay";
+};
index 45983c04a8a71e7967fb99b54e1a02a8602080d0..413dbd5d9f6442b8dae4b7f132b35e5f816cf798 100644 (file)
                        0x4c 0x00000080 0x000000f0
                >;
        };
+
+       ev3_lcd_pins: pinmux_lcd {
+               pinctrl-single,bits = <
+                       /* SIMO, GP2[11], GP2[12], CLK */
+                       0x14 0x00188100 0x00ffff00
+                       /* GP5[0] */
+                       0x30 0x80000000 0xf0000000
+               >;
+       };
 };
 
 &pinconf {
        };
 };
 
+&spi1 {
+       status = "okay";
+       pinctrl-0 = <&ev3_lcd_pins>;
+       pinctrl-names = "default";
+       cs-gpios = <&gpio 44 GPIO_ACTIVE_LOW>;
+
+       display@0{
+               compatible = "lego,ev3-lcd";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+               a0-gpios = <&gpio 43 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio 80 GPIO_ACTIVE_HIGH>;
+       };
+};
+
 &ehrpwm0 {
        status = "okay";
 };
index f5f59bb5a53464eb9bcaeb7d035a28236790abc1..e88ff83f1dec8eb6a67332aedbb4e46cd4c4d957 100644 (file)
@@ -88,7 +88,7 @@
 &pcie {
        status = "okay";
        /* Fresco Logic USB3.0 xHCI controller */
-       pcie-port@0 {
+       pcie@1 {
                status = "okay";
                reset-gpios = <&gpio0 26 1>;
                reset-delay-us = <20000>;
@@ -96,7 +96,7 @@
                pinctrl-names = "default";
        };
        /* Mini-PCIe slot */
-       pcie-port@1 {
+       pcie@2 {
                status = "okay";
                reset-gpios = <&gpio0 25 1>;
        };
index 698d58cea20d2e8c1a3c7d8e7a4dadb717847624..1475d3672e56343e286f0883efbf1ed49fdb2e72 100644 (file)
@@ -89,7 +89,7 @@
                          MBUS_ID(0x03, 0x01) 0 0xc8000000 0x0100000   /* CESA SRAM  1M */
                          MBUS_ID(0x0d, 0x00) 0 0xf0000000 0x0100000>; /* PMU  SRAM  1M */
 
-               pcie: pcie-controller {
+               pcie: pcie {
                        compatible = "marvell,dove-pcie";
                        status = "disabled";
                        device_type = "pci";
                                  0x82000000 0x2 0x0 MBUS_ID(0x08, 0xe8) 0 1 0   /* Port 1.0 Mem */
                                  0x81000000 0x2 0x0 MBUS_ID(0x08, 0xe0) 0 1 0>; /* Port 1.0 I/O */
 
-                       pcie0: pcie-port@0 {
+                       pcie0: pcie@1 {
                                device_type = "pci";
                                status = "disabled";
                                assigned-addresses = <0x82000800 0 0x40000 0 0x2000>;
                                #size-cells = <2>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
 
                                #interrupt-cells = <1>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &intc 16>;
                        };
 
-                       pcie1: pcie-port@1 {
+                       pcie1: pcie@2 {
                                device_type = "pci";
                                status = "disabled";
                                assigned-addresses = <0x82002800 0 0x80000 0 0x2000>;
                                #size-cells = <2>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
 
                                #interrupt-cells = <1>;
                                interrupt-map-mask = <0 0 0 0>;
diff --git a/arch/arm/boot/dts/dra7-evm-common.dtsi b/arch/arm/boot/dts/dra7-evm-common.dtsi
new file mode 100644 (file)
index 0000000..343e95f
--- /dev/null
@@ -0,0 +1,258 @@
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clk/ti-dra7-atl.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       extcon_usb1: extcon_usb1 {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       sound0: sound0 {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "DRA7xx-EVM";
+               simple-audio-card,widgets =
+                       "Headphone", "Headphone Jack",
+                       "Line", "Line Out",
+                       "Microphone", "Mic Jack",
+                       "Line", "Line In";
+               simple-audio-card,routing =
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "Line Out",             "LLOUT",
+                       "Line Out",             "RLOUT",
+                       "MIC3L",                "Mic Jack",
+                       "MIC3R",                "Mic Jack",
+                       "Mic Jack",             "Mic Bias",
+                       "LINE1L",               "Line In",
+                       "LINE1R",               "Line In";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound0_master>;
+               simple-audio-card,frame-master = <&sound0_master>;
+               simple-audio-card,bitclock-inversion;
+
+               sound0_master: simple-audio-card,cpu {
+                       sound-dai = <&mcasp3>;
+                       system-clock-frequency = <5644800>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&tlv320aic3106>;
+                       clocks = <&atl_clkin2_ck>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led0 {
+                       label = "dra7:usr1";
+                       gpios = <&pcf_lcd 4 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led1 {
+                       label = "dra7:usr2";
+                       gpios = <&pcf_lcd 5 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led2 {
+                       label = "dra7:usr3";
+                       gpios = <&pcf_lcd 6 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+
+               led3 {
+                       label = "dra7:usr4";
+                       gpios = <&pcf_lcd 7 GPIO_ACTIVE_LOW>;
+                       default-state = "off";
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               autorepeat;
+
+               USER1 {
+                       label = "btnUser1";
+                       linux,code = <BTN_0>;
+                       gpios = <&pcf_lcd 2 GPIO_ACTIVE_LOW>;
+               };
+
+               USER2 {
+                       label = "btnUser2";
+                       linux,code = <BTN_1>;
+                       gpios = <&pcf_lcd 3 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&i2c3 {
+       status = "okay";
+       clock-frequency = <400000>;
+};
+
+&mcspi1 {
+       status = "okay";
+};
+
+&mcspi2 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+       interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
+                             <&dra7_pmx_core 0x3e0>;
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&qspi {
+       status = "okay";
+
+       spi-max-frequency = <76800000>;
+       m25p80@0 {
+               compatible = "s25fl256s1";
+               spi-max-frequency = <76800000>;
+               reg = <0>;
+               spi-tx-bus-width = <1>;
+               spi-rx-bus-width = <4>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               /* MTD partition table.
+                * The ROM checks the first four physical blocks
+                * for a valid file to boot and the flash here is
+                * 64KiB block size.
+                */
+               partition@0 {
+                       label = "QSPI.SPL";
+                       reg = <0x00000000 0x000010000>;
+               };
+               partition@1 {
+                       label = "QSPI.SPL.backup1";
+                       reg = <0x00010000 0x00010000>;
+               };
+               partition@2 {
+                       label = "QSPI.SPL.backup2";
+                       reg = <0x00020000 0x00010000>;
+               };
+               partition@3 {
+                       label = "QSPI.SPL.backup3";
+                       reg = <0x00030000 0x00010000>;
+               };
+               partition@4 {
+                       label = "QSPI.u-boot";
+                       reg = <0x00040000 0x00100000>;
+               };
+               partition@5 {
+                       label = "QSPI.u-boot-spl-os";
+                       reg = <0x00140000 0x00080000>;
+               };
+               partition@6 {
+                       label = "QSPI.u-boot-env";
+                       reg = <0x001c0000 0x00010000>;
+               };
+               partition@7 {
+                       label = "QSPI.u-boot-env.backup1";
+                       reg = <0x001d0000 0x0010000>;
+               };
+               partition@8 {
+                       label = "QSPI.kernel";
+                       reg = <0x001e0000 0x0800000>;
+               };
+               partition@9 {
+                       label = "QSPI.file-system";
+                       reg = <0x009e0000 0x01620000>;
+               };
+       };
+};
+
+&omap_dwc3_1 {
+       extcon = <&extcon_usb1>;
+};
+
+&usb1 {
+       dr_mode = "otg";
+       extcon = <&extcon_usb1>;
+};
+
+&usb2 {
+       dr_mode = "host";
+};
+
+&atl {
+       assigned-clocks = <&abe_dpll_sys_clk_mux>,
+                         <&atl_gfclk_mux>,
+                         <&dpll_abe_ck>,
+                         <&dpll_abe_m2x2_ck>,
+                         <&atl_clkin2_ck>;
+       assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
+       assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
+
+       status = "okay";
+
+       atl2 {
+               bws = <DRA7_ATL_WS_MCASP2_FSX>;
+               aws = <DRA7_ATL_WS_MCASP3_FSX>;
+       };
+};
+
+&mcasp3 {
+       #sound-dai-cells = <0>;
+
+       assigned-clocks = <&mcasp3_ahclkx_mux>;
+       assigned-clock-parents = <&atl_clkin2_ck>;
+
+       status = "okay";
+
+       op-mode = <0>;          /* MCASP_IIS_MODE */
+       tdm-slots = <2>;
+       /* 4 serializer */
+       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+               1 2 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+};
+
+&mailbox5 {
+       status = "okay";
+       mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
+               status = "okay";
+       };
+       mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
+               status = "okay";
+       };
+};
+
+&mailbox6 {
+       status = "okay";
+       mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
+               status = "okay";
+       };
+       mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
+               status = "okay";
+       };
+};
index f47fc4daf0628a43278a5dcb4cdcf81c34fc56c9..aa426dabb6c349d9f1b5a4a0173ae30ad3b7cc58 100644 (file)
@@ -8,9 +8,8 @@
 /dts-v1/;
 
 #include "dra74x.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/clk/ti-dra7-atl.h>
-#include <dt-bindings/input/input.h>
+#include "dra7-evm-common.dtsi"
+#include "dra74x-mmc-iodelay.dtsi"
 
 / {
        model = "TI DRA742";
                reg = <0x0 0x80000000 0x0 0x60000000>; /* 1536 MB */
        };
 
-       chosen {
-               stdout-path = &uart1;
+       evm_1v8_sw: fixedregulator-evm_1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_1v8";
+               vin-supply = <&smps9_reg>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
        };
 
        evm_3v3_sd: fixedregulator-sd {
                regulator-max-microvolt = <1800000>;
        };
 
-       extcon_usb1: extcon_usb1 {
-               compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&pcf_gpio_21 1 GPIO_ACTIVE_HIGH>;
-       };
-
        extcon_usb2: extcon_usb2 {
                compatible = "linux,extcon-usb-gpio";
                id-gpio = <&pcf_gpio_21 2 GPIO_ACTIVE_HIGH>;
                gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
        };
 
-       sound0: sound0 {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "DRA7xx-EVM";
-               simple-audio-card,widgets =
-                       "Headphone", "Headphone Jack",
-                       "Line", "Line Out",
-                       "Microphone", "Mic Jack",
-                       "Line", "Line In";
-               simple-audio-card,routing =
-                       "Headphone Jack",       "HPLOUT",
-                       "Headphone Jack",       "HPROUT",
-                       "Line Out",             "LLOUT",
-                       "Line Out",             "RLOUT",
-                       "MIC3L",                "Mic Jack",
-                       "MIC3R",                "Mic Jack",
-                       "Mic Jack",             "Mic Bias",
-                       "LINE1L",               "Line In",
-                       "LINE1R",               "Line In";
-               simple-audio-card,format = "dsp_b";
-               simple-audio-card,bitclock-master = <&sound0_master>;
-               simple-audio-card,frame-master = <&sound0_master>;
-               simple-audio-card,bitclock-inversion;
-
-               sound0_master: simple-audio-card,cpu {
-                       sound-dai = <&mcasp3>;
-                       system-clock-frequency = <5644800>;
-               };
-
-               simple-audio-card,codec {
-                       sound-dai = <&tlv320aic3106>;
-                       clocks = <&atl_clkin2_ck>;
-               };
-       };
-
-       leds {
-               compatible = "gpio-leds";
-               led0 {
-                       label = "dra7:usr1";
-                       gpios = <&pcf_lcd 4 GPIO_ACTIVE_LOW>;
-                       default-state = "off";
-               };
-
-               led1 {
-                       label = "dra7:usr2";
-                       gpios = <&pcf_lcd 5 GPIO_ACTIVE_LOW>;
-                       default-state = "off";
-               };
-
-               led2 {
-                       label = "dra7:usr3";
-                       gpios = <&pcf_lcd 6 GPIO_ACTIVE_LOW>;
-                       default-state = "off";
-               };
-
-               led3 {
-                       label = "dra7:usr4";
-                       gpios = <&pcf_lcd 7 GPIO_ACTIVE_LOW>;
-                       default-state = "off";
-               };
-       };
-
-       gpio_keys {
-               compatible = "gpio-keys";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               autorepeat;
-
-               USER1 {
-                       label = "btnUser1";
-                       linux,code = <BTN_0>;
-                       gpios = <&pcf_lcd 2 GPIO_ACTIVE_LOW>;
-               };
-
-               USER2 {
-                       label = "btnUser2";
-                       linux,code = <BTN_1>;
-                       gpios = <&pcf_lcd 3 GPIO_ACTIVE_LOW>;
-               };
-       };
 };
 
 &dra7_pmx_core {
        };
 };
 
-&i2c3 {
-       status = "okay";
-       clock-frequency = <400000>;
-};
-
-&mcspi1 {
-       status = "okay";
-};
-
-&mcspi2 {
-       status = "okay";
-};
-
-&uart1 {
-       status = "okay";
-       interrupts-extended = <&crossbar_mpu GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
-                             <&dra7_pmx_core 0x3e0>;
-};
-
-&uart2 {
-       status = "okay";
-};
-
-&uart3 {
-       status = "okay";
-};
-
 &mmc1 {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc1_pins_default>;
        vmmc-supply = <&evm_3v3_sd>;
-       vmmc_aux-supply = <&ldo1_reg>;
+       vqmmc-supply = <&ldo1_reg>;
        bus-width = <4>;
        /*
         * SDCD signal is not being used here - using the fact that GPIO mode
         * is always hardwired.
         */
        cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50-rev11", "sdr104-rev11", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev11_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev11_conf>;
+       pinctrl-7 = <&mmc1_pins_ddr50 &mmc1_iodelay_ddr_rev20_conf>;
+       pinctrl-8 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
 };
 
 &mmc2 {
        status = "okay";
-       pinctrl-names = "default";
-       pinctrl-0 = <&mmc2_pins_default>;
-       vmmc-supply = <&evm_3v3_sw>;
+       vmmc-supply = <&evm_1v8_sw>;
        bus-width = <8>;
+       pinctrl-names = "default", "hs", "ddr_1_8v-rev11", "ddr_1_8v", "hs200_1_8v-rev11", "hs200_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_1_8v_rev11 &mmc2_iodelay_ddr_1_8v_rev11_conf>;
+       pinctrl-3 = <&mmc2_pins_ddr_rev20>;
+       pinctrl-4 = <&mmc2_pins_hs200 &mmc2_iodelay_hs200_rev11_conf>;
+       pinctrl-5 = <&mmc2_pins_hs200 &mmc2_iodelay_hs200_rev20_conf>;
 };
 
 &cpu0 {
        cpu0-supply = <&smps123_reg>;
 };
 
-&qspi {
-       status = "okay";
-
-       spi-max-frequency = <76800000>;
-       m25p80@0 {
-               compatible = "s25fl256s1";
-               spi-max-frequency = <76800000>;
-               reg = <0>;
-               spi-tx-bus-width = <1>;
-               spi-rx-bus-width = <4>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               /* MTD partition table.
-                * The ROM checks the first four physical blocks
-                * for a valid file to boot and the flash here is
-                * 64KiB block size.
-                */
-               partition@0 {
-                       label = "QSPI.SPL";
-                       reg = <0x00000000 0x000010000>;
-               };
-               partition@1 {
-                       label = "QSPI.SPL.backup1";
-                       reg = <0x00010000 0x00010000>;
-               };
-               partition@2 {
-                       label = "QSPI.SPL.backup2";
-                       reg = <0x00020000 0x00010000>;
-               };
-               partition@3 {
-                       label = "QSPI.SPL.backup3";
-                       reg = <0x00030000 0x00010000>;
-               };
-               partition@4 {
-                       label = "QSPI.u-boot";
-                       reg = <0x00040000 0x00100000>;
-               };
-               partition@5 {
-                       label = "QSPI.u-boot-spl-os";
-                       reg = <0x00140000 0x00080000>;
-               };
-               partition@6 {
-                       label = "QSPI.u-boot-env";
-                       reg = <0x001c0000 0x00010000>;
-               };
-               partition@7 {
-                       label = "QSPI.u-boot-env.backup1";
-                       reg = <0x001d0000 0x0010000>;
-               };
-               partition@8 {
-                       label = "QSPI.kernel";
-                       reg = <0x001e0000 0x0800000>;
-               };
-               partition@9 {
-                       label = "QSPI.file-system";
-                       reg = <0x009e0000 0x01620000>;
-               };
-       };
-};
-
-&omap_dwc3_1 {
-       extcon = <&extcon_usb1>;
-};
-
 &omap_dwc3_2 {
        extcon = <&extcon_usb2>;
 };
 
-&usb1 {
-       dr_mode = "otg";
-       extcon = <&extcon_usb1>;
-};
-
-&usb2 {
-       dr_mode = "host";
-};
-
 &elm {
        status = "okay";
 };
                interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                             <1 IRQ_TYPE_NONE>; /* termcount */
                rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
+               ti,nand-xfer-type = "prefetch-dma";
                ti,nand-ecc-opt = "bch8";
                ti,elm-id = <&elm>;
                nand-bus-width = <16>;
        pinctrl-2 = <&dcan1_pins_default>;
 };
 
-&atl {
-       assigned-clocks = <&abe_dpll_sys_clk_mux>,
-                         <&atl_gfclk_mux>,
-                         <&dpll_abe_ck>,
-                         <&dpll_abe_m2x2_ck>,
-                         <&atl_clkin2_ck>;
-       assigned-clock-parents = <&sys_clkin2>, <&dpll_abe_m2_ck>;
-       assigned-clock-rates = <0>, <0>, <180633600>, <361267200>, <5644800>;
-
-       status = "okay";
-
-       atl2 {
-               bws = <DRA7_ATL_WS_MCASP2_FSX>;
-               aws = <DRA7_ATL_WS_MCASP3_FSX>;
-       };
-};
-
-&mcasp3 {
-       #sound-dai-cells = <0>;
-
-       assigned-clocks = <&mcasp3_ahclkx_mux>;
-       assigned-clock-parents = <&atl_clkin2_ck>;
-
-       status = "okay";
-
-       op-mode = <0>;          /* MCASP_IIS_MODE */
-       tdm-slots = <2>;
-       /* 4 serializer */
-       serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
-               1 2 0 0
-       >;
-       tx-num-evt = <32>;
-       rx-num-evt = <32>;
-};
-
-&mailbox5 {
+&pcie1_rc {
        status = "okay";
-       mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp1_ipc3x: mbox_dsp1_ipc3x {
-               status = "okay";
-       };
-};
-
-&mailbox6 {
-       status = "okay";
-       mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
-               status = "okay";
-       };
-       mbox_dsp2_ipc3x: mbox_dsp2_ipc3x {
-               status = "okay";
-       };
 };
index 0f0f6f58bd187db819701d3bafcd68ae7bb7c46e..02a136a4661aa1ed172e4926a7a8dabad9e271b9 100644 (file)
                                scm_conf1: scm_conf@1c04 {
                                        compatible = "syscon";
                                        reg = <0x1c04 0x0020>;
+                                       #syscon-cells = <2>;
                                };
 
                                scm_conf_pcie: scm_conf@1c24 {
                        #address-cells = <1>;
                        ranges = <0x51000000 0x51000000 0x3000
                                  0x0        0x20000000 0x10000000>;
-                       pcie1: pcie@51000000 {
+                       /**
+                        * To enable PCI endpoint mode, disable the pcie1_rc
+                        * node and enable pcie1_ep mode.
+                        */
+                       pcie1_rc: pcie@51000000 {
                                compatible = "ti,dra7-pcie";
                                reg = <0x51000000 0x2000>, <0x51002000 0x14c>, <0x1000 0x2000>;
                                reg-names = "rc_dbics", "ti_conf", "config";
                                                <0 0 0 2 &pcie1_intc 2>,
                                                <0 0 0 3 &pcie1_intc 3>,
                                                <0 0 0 4 &pcie1_intc 4>;
+                               status = "disabled";
                                pcie1_intc: interrupt-controller {
                                        interrupt-controller;
                                        #address-cells = <0>;
                                        #interrupt-cells = <1>;
                                };
                        };
+
+                       pcie1_ep: pcie_ep@51000000 {
+                               compatible = "ti,dra7-pcie-ep";
+                               reg = <0x51000000 0x28>, <0x51002000 0x14c>, <0x51001000 0x28>, <0x1000 0x10000000>;
+                               reg-names = "ep_dbics", "ti_conf", "ep_dbics2", "addr_space";
+                               interrupts = <0 232 0x4>;
+                               num-lanes = <1>;
+                               num-ib-windows = <4>;
+                               num-ob-windows = <16>;
+                               ti,hwmods = "pcie1";
+                               phys = <&pcie1_phy>;
+                               phy-names = "pcie-phy0";
+                               ti,syscon-unaligned-access = <&scm_conf1 0x14 2>;
+                               status = "disabled";
+                       };
                };
 
                axi@1 {
                        reg = <0x40d00000 0x100>;
                };
 
+               dra7_iodelay_core: padconf@4844a000 {
+                       compatible = "ti,dra7-iodelay";
+                       reg = <0x4844a000 0x0d1c>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #pinctrl-cells = <2>;
+               };
+
                sdma: dma-controller@4a056000 {
                        compatible = "ti,omap4430-sdma";
                        reg = <0x4a056000 0x1000>;
                        dma-names = "tx", "rx";
                        status = "disabled";
                        pbias-supply = <&pbias_mmc_reg>;
+                       max-frequency = <192000000>;
                };
 
                mmc2: mmc@480b4000 {
                        dmas = <&sdma_xbar 47>, <&sdma_xbar 48>;
                        dma-names = "tx", "rx";
                        status = "disabled";
+                       max-frequency = <192000000>;
                };
 
                mmc3: mmc@480ad000 {
                        dmas = <&sdma_xbar 77>, <&sdma_xbar 78>;
                        dma-names = "tx", "rx";
                        status = "disabled";
+                       /* Errata i887 limits max-frequency of MMC3 to 64 MHz */
+                       max-frequency = <64000000>;
                };
 
                mmc4: mmc@480d1000 {
                        dmas = <&sdma_xbar 57>, <&sdma_xbar 58>;
                        dma-names = "tx", "rx";
                        status = "disabled";
+                       max-frequency = <192000000>;
                };
 
                mmu0_dsp1: mmu@40d01000 {
index 9897e8fa684516a245c63f435baa3e5855362218..41c9132eb550d07dd686a85eda0296bbfad0b6f7 100644 (file)
@@ -7,6 +7,7 @@
  */
 
 #include "dra72-evm-common.dtsi"
+#include "dra72x-mmc-iodelay.dtsi"
 #include <dt-bindings/net/ti-dp83867.h>
 
 / {
                          3000000 0x1>;
        };
 
+       evm_1v8_sw: fixedregulator-evm_1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&lp8732_buck0_reg>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
        poweroff: gpio-poweroff {
                compatible = "gpio-poweroff";
                gpios = <&gpio7 30 GPIO_ACTIVE_HIGH>;
 };
 
 &mmc1 {
-       vmmc_aux-supply = <&vpo_sd_1v8_3v3>;
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50_rev20 &mmc1_iodelay_ddr50_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
+       vqmmc-supply = <&vpo_sd_1v8_3v3>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>;
+       pinctrl-3 = <&mmc2_pins_hs200 &mmc2_iodelay_hs200_rev20_conf>;
+       vmmc-supply = <&evm_1v8_sw>;
 };
 
 &mac {
index 85780549bc26359269b5f5bd05023364b0143905..2e485a13dfd7e1fe470f071022ac4332e1445ea1 100644 (file)
                interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
                             <1 IRQ_TYPE_NONE>; /* termcount */
                rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 pin */
+               ti,nand-xfer-type = "prefetch-dma";
                ti,nand-ecc-opt = "bch8";
                ti,elm-id = <&elm>;
                nand-bus-width = <16>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins_default>;
-
-       vmmc-supply = <&evm_3v3_sw>;
        bus-width = <8>;
        ti,non-removable;
        max-frequency = <192000000>;
                status = "okay";
        };
 };
+
+&pcie1_rc {
+       status = "okay";
+};
index 6f9b6f31437efeb3009825cd205d06630e5c74b1..bf588d00728d1973c3426f09421dc5c2bbb5bbe0 100644 (file)
@@ -6,6 +6,7 @@
  * published by the Free Software Foundation.
  */
 #include "dra72-evm-common.dtsi"
+#include "dra72x-mmc-iodelay.dtsi"
 #include <dt-bindings/net/ti-dp83867.h>
 
 / {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x80000000>; /* 2GB */
        };
+
+       evm_1v8_sw: fixedregulator-evm_1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&smps4_reg>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &i2c1 {
                ti,dp83867-rxctrl-strap-quirk;
        };
 };
+
+&mmc1 {
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50_rev20 &mmc1_iodelay_ddr50_conf>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev20_conf>;
+       vqmmc-supply = <&ldo1_reg>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_rev20 &mmc2_iodelay_ddr_conf>;
+       pinctrl-3 = <&mmc2_pins_hs200 &mmc2_iodelay_hs200_rev20_conf>;
+       vmmc-supply = <&evm_1v8_sw>;
+};
index e6df676886c0c35052921669039ae31fd446ccbf..57bfe5caf5e4f12c6468575abe646ca78e19a01e 100644 (file)
 };
 
 &mmc1 {
-       vmmc_aux-supply = <&ldo1_reg>;
+       vqmmc-supply = <&ldo1_reg>;
 };
index cd9c4ff12654ce00ae443c654a888dc14b4a66c6..c572693b16657b69565b3581ac39c9bd8298cba2 100644 (file)
@@ -6,6 +6,7 @@
  * published by the Free Software Foundation.
  */
 #include "dra72-evm-common.dtsi"
+#include "dra72x-mmc-iodelay.dtsi"
 / {
        model = "TI DRA722";
 
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x40000000>; /* 1024 MB */
        };
+
+       evm_1v8_sw: fixedregulator-evm_1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "evm_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&smps4_reg>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &i2c1 {
        phy_id = <&davinci_mdio>, <3>;
        phy-mode = "rgmii";
 };
+
+&mmc1 {
+       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_hs>;
+       pinctrl-2 = <&mmc1_pins_sdr12>;
+       pinctrl-3 = <&mmc1_pins_sdr25>;
+       pinctrl-4 = <&mmc1_pins_sdr50>;
+       pinctrl-5 = <&mmc1_pins_ddr50_rev10>;
+       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_rev10_conf>;
+       vqmmc-supply = <&ldo1_reg>;
+};
+
+&mmc2 {
+       pinctrl-names = "default", "hs", "ddr_1_8v", "hs200_1_8v";
+       pinctrl-0 = <&mmc2_pins_default>;
+       pinctrl-1 = <&mmc2_pins_hs>;
+       pinctrl-2 = <&mmc2_pins_ddr_rev10>;
+       pinctrl-3 = <&mmc2_pins_hs200 &mmc2_iodelay_hs200_rev10_conf>;
+       vmmc-supply = <&evm_1v8_sw>;
+};
diff --git a/arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi b/arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi
new file mode 100644 (file)
index 0000000..088013c
--- /dev/null
@@ -0,0 +1,350 @@
+/*
+ * MMC IOdelay values for TI's DRA72x, DRA71x and AM571x SoCs.
+ *
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/*
+ * Rules for modifying this file:
+ * a) Update of this file should typically correspond to a datamanual revision.
+ *    Datamanual revision that was used should be updated in comment below.
+ *    If there is no update to datamanual, do not update the values. If you
+ *    need to use values different from that recommended by the datamanual
+ *    for your design, then you should consider adding values to the device-
+ *    -tree file for your board directly.
+ * b) We keep the mode names as close to the datamanual as possible. So
+ *    if the manual calls a mode, DDR50, or DDR or DDR 1.8v or DDR 3.3v,
+ *    we follow that in code too.
+ * c) If the values change between multiple revisions of silicon, we add
+ *    a revision tag to both the new and old entry. Use 'rev10' for PG 1.0,
+ *    'rev20' for PG 2.0 and so on.
+ * d) The node name and node label should be the exact same string. This is
+ *    to curb naming creativity and achieve consistency.
+ * e) If in future, DRA71x and DRA72x values differ, then add 'dra71_' and
+ *    'dra72_' tag to entries. Both the new and old entries should gain a tag.
+ *
+ * Datamanual Revisions:
+ *
+ * AM571x Silicon Revision 2.0: SPRS957D, Revised January 2017
+ * AM571x Silicon Revision 1.0: SPRS919M, Revised November 2017
+ * DRA71x : SPRS960B, Revised February 2017
+ */
+
+&dra7_pmx_core {
+       mmc1_pins_default: mmc1_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr12: mmc1_pins_sdr12 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_hs: mmc1_pins_hs {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr25: mmc1_pins_sdr25 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr50: mmc1_pins_sdr50 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE15 | MUX_MODE0)    /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE15 | MUX_MODE0)    /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE15 | MUX_MODE0)    /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE15 | MUX_MODE0)    /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE15 | MUX_MODE0)    /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE15 | MUX_MODE0)    /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_ddr50_rev10: mmc1_pins_ddr50_rev10 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE14 | MUX_MODE0)    /* mmc1_clk.mmc1_clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE14 | MUX_MODE0)    /* mmc1_cmd.mmc1_cmd */
+                       DRA7XX_CORE_IOPAD(0x375C, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE14 | MUX_MODE0)    /* mmc1_dat0.mmc1_dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE14 | MUX_MODE0)    /* mmc1_dat1.mmc1_dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE14 | MUX_MODE0)    /* mmc1_dat2.mmc1_dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE14 | MUX_MODE0)    /* mmc1_dat3.mmc1_dat3 */
+               >;
+       };
+
+       mmc1_pins_ddr50_rev20: mmc1_pins_ddr50_rev20 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr104: mmc1_pins_sdr104 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc2_pins_default: mmc2_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_hs: mmc2_pins_hs {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_ddr_rev10: mmc2_pins_ddr_rev10 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+               >;
+       };
+
+       mmc2_pins_ddr_rev20: mmc2_pins_ddr_rev20 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_hs200: mmc2_pins_hs200 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+};
+
+&dra7_iodelay_core {
+
+       /* Corresponds to MMC1_MANUAL1 in datamanual */
+       mmc1_iodelay_ddr50_conf: mmc1_iodelay_ddr50_conf {
+               pinctrl-pin-array = <
+                       0x618 A_DELAY_PS(588) G_DELAY_PS(0)     /* CFG_MMC1_CLK_IN */
+                       0x624 A_DELAY_PS(1000) G_DELAY_PS(0)    /* CFG_MMC1_CMD_IN */
+                       0x630 A_DELAY_PS(1375) G_DELAY_PS(0)    /* CFG_MMC1_DAT0_IN */
+                       0x63C A_DELAY_PS(1000) G_DELAY_PS(0)    /* CFG_MMC1_DAT1_IN */
+                       0x648 A_DELAY_PS(1000) G_DELAY_PS(0)    /* CFG_MMC1_DAT2_IN */
+                       0x654 A_DELAY_PS(1000) G_DELAY_PS(0)    /* CFG_MMC1_DAT3_IN */
+                       0x620 A_DELAY_PS(1230) G_DELAY_PS(0)    /* CFG_MMC1_CLK_OUT */
+                       0x62C A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OUT */
+                       0x638 A_DELAY_PS(56) G_DELAY_PS(0)      /* CFG_MMC1_DAT0_OUT */
+                       0x644 A_DELAY_PS(76) G_DELAY_PS(0)      /* CFG_MMC1_DAT1_OUT */
+                       0x650 A_DELAY_PS(91) G_DELAY_PS(0)      /* CFG_MMC1_DAT2_OUT */
+                       0x65C A_DELAY_PS(99) G_DELAY_PS(0)      /* CFG_MMC1_DAT3_OUT */
+                       0x628 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OEN */
+                       0x634 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OEN */
+                       0x640 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OEN */
+                       0x64C A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OEN */
+                       0x658 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OEN */
+               >;
+       };
+
+       /* Corresponds to MMC1_MANUAL2 in datamanual */
+       mmc1_iodelay_sdr104_rev10_conf: mmc1_iodelay_sdr104_rev10_conf {
+               pinctrl-pin-array = <
+                       0x620 A_DELAY_PS(560) G_DELAY_PS(365)   /* CFG_MMC1_CLK_OUT */
+                       0x62c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OUT */
+                       0x638 A_DELAY_PS(29) G_DELAY_PS(0)      /* CFG_MMC1_DAT0_OUT */
+                       0x644 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OUT */
+                       0x650 A_DELAY_PS(47) G_DELAY_PS(0)      /* CFG_MMC1_DAT2_OUT */
+                       0x65c A_DELAY_PS(30) G_DELAY_PS(0)      /* CFG_MMC1_DAT3_OUT */
+                       0x628 A_DELAY_PS(125) G_DELAY_PS(0)     /* CFG_MMC1_CMD_OEN */
+                       0x634 A_DELAY_PS(43) G_DELAY_PS(0)      /* CFG_MMC1_DAT0_OEN */
+                       0x640 A_DELAY_PS(433) G_DELAY_PS(0)     /* CFG_MMC1_DAT1_OEN */
+                       0x64c A_DELAY_PS(287) G_DELAY_PS(0)     /* CFG_MMC1_DAT2_OEN */
+                       0x658 A_DELAY_PS(351) G_DELAY_PS(0)     /* CFG_MMC1_DAT3_OEN */
+               >;
+       };
+
+       /* Corresponds to MMC1_MANUAL2 in datamanual */
+       mmc1_iodelay_sdr104_rev20_conf: mmc1_iodelay_sdr104_rev20_conf {
+               pinctrl-pin-array = <
+                       0x620 A_DELAY_PS(520) G_DELAY_PS(320)   /* CFG_MMC1_CLK_OUT */
+                       0x62c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OUT */
+                       0x638 A_DELAY_PS(40) G_DELAY_PS(0)      /* CFG_MMC1_DAT0_OUT */
+                       0x644 A_DELAY_PS(83) G_DELAY_PS(0)      /* CFG_MMC1_DAT1_OUT */
+                       0x650 A_DELAY_PS(98) G_DELAY_PS(0)      /* CFG_MMC1_DAT2_OUT */
+                       0x65c A_DELAY_PS(106) G_DELAY_PS(0)     /* CFG_MMC1_DAT3_OUT */
+                       0x628 A_DELAY_PS(51) G_DELAY_PS(0)      /* CFG_MMC1_CMD_OEN */
+                       0x634 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OEN */
+                       0x640 A_DELAY_PS(363) G_DELAY_PS(0)     /* CFG_MMC1_DAT1_OEN */
+                       0x64c A_DELAY_PS(199) G_DELAY_PS(0)     /* CFG_MMC1_DAT2_OEN */
+                       0x658 A_DELAY_PS(273) G_DELAY_PS(0)     /* CFG_MMC1_DAT3_OEN */
+               >;
+       };
+
+       /* Corresponds to MMC2_MANUAL1 in datamanual */
+       mmc2_iodelay_ddr_conf: mmc2_iodelay_ddr_conf {
+               pinctrl-pin-array = <
+                       0x18c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A19_IN */
+                       0x1a4 A_DELAY_PS(119) G_DELAY_PS(0)     /* CFG_GPMC_A20_IN */
+                       0x1b0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A21_IN */
+                       0x1bc A_DELAY_PS(18) G_DELAY_PS(0)      /* CFG_GPMC_A22_IN */
+                       0x1c8 A_DELAY_PS(894) G_DELAY_PS(0)     /* CFG_GPMC_A23_IN */
+                       0x1d4 A_DELAY_PS(30) G_DELAY_PS(0)      /* CFG_GPMC_A24_IN */
+                       0x1e0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_IN */
+                       0x1ec A_DELAY_PS(23) G_DELAY_PS(0)      /* CFG_GPMC_A26_IN */
+                       0x1f8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_IN */
+                       0x360 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_IN */
+                       0x194 A_DELAY_PS(152) G_DELAY_PS(0)     /* CFG_GPMC_A19_OUT */
+                       0x1ac A_DELAY_PS(206) G_DELAY_PS(0)     /* CFG_GPMC_A20_OUT */
+                       0x1b8 A_DELAY_PS(78) G_DELAY_PS(0)      /* CFG_GPMC_A21_OUT */
+                       0x1c4 A_DELAY_PS(2) G_DELAY_PS(0)       /* CFG_GPMC_A22_OUT */
+                       0x1d0 A_DELAY_PS(266) G_DELAY_PS(0)     /* CFG_GPMC_A23_OUT */
+                       0x1dc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OUT */
+                       0x1e8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_OUT */
+                       0x1f4 A_DELAY_PS(43) G_DELAY_PS(0)      /* CFG_GPMC_A26_OUT */
+                       0x200 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OUT */
+                       0x368 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_OUT */
+                       0x190 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A19_OEN */
+                       0x1a8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A20_OEN */
+                       0x1b4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A21_OEN */
+                       0x1c0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A22_OEN */
+                       0x1d8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OEN */
+                       0x1e4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_OEN */
+                       0x1f0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A26_OEN */
+                       0x1fc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OEN */
+                       0x364 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_OEN */
+               >;
+       };
+
+       /* Corresponds to MMC2_MANUAL3 in datamanual */
+       mmc2_iodelay_hs200_rev10_conf: mmc2_iodelay_hs200_rev10_conf {
+               pinctrl-pin-array = <
+                       0x194 A_DELAY_PS(150) G_DELAY_PS(95)    /* CFG_GPMC_A19_OUT */
+                       0x1ac A_DELAY_PS(250) G_DELAY_PS(0)     /* CFG_GPMC_A20_OUT */
+                       0x1b8 A_DELAY_PS(125) G_DELAY_PS(0)     /* CFG_GPMC_A21_OUT */
+                       0x1c4 A_DELAY_PS(100) G_DELAY_PS(0)     /* CFG_GPMC_A22_OUT */
+                       0x1d0 A_DELAY_PS(870) G_DELAY_PS(415)   /* CFG_GPMC_A23_OUT */
+                       0x1dc A_DELAY_PS(30) G_DELAY_PS(0)      /* CFG_GPMC_A24_OUT */
+                       0x1e8 A_DELAY_PS(200) G_DELAY_PS(0)     /* CFG_GPMC_A25_OUT */
+                       0x1f4 A_DELAY_PS(200) G_DELAY_PS(0)     /* CFG_GPMC_A26_OUT */
+                       0x200 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OUT */
+                       0x368 A_DELAY_PS(240) G_DELAY_PS(0)     /* CFG_GPMC_CS1_OUT */
+                       0x190 A_DELAY_PS(695) G_DELAY_PS(0)     /* CFG_GPMC_A19_OEN */
+                       0x1a8 A_DELAY_PS(924) G_DELAY_PS(0)     /* CFG_GPMC_A20_OEN */
+                       0x1b4 A_DELAY_PS(719) G_DELAY_PS(0)     /* CFG_GPMC_A21_OEN */
+                       0x1c0 A_DELAY_PS(824) G_DELAY_PS(0)     /* CFG_GPMC_A22_OEN */
+                       0x1d8 A_DELAY_PS(877) G_DELAY_PS(0)     /* CFG_GPMC_A24_OEN */
+                       0x1e4 A_DELAY_PS(446) G_DELAY_PS(0)     /* CFG_GPMC_A25_OEN */
+                       0x1f0 A_DELAY_PS(847) G_DELAY_PS(0)     /* CFG_GPMC_A26_OEN */
+                       0x1fc A_DELAY_PS(586) G_DELAY_PS(0)     /* CFG_GPMC_A27_OEN */
+                       0x364 A_DELAY_PS(1039) G_DELAY_PS(0)    /* CFG_GPMC_CS1_OEN */
+               >;
+       };
+
+       /* Corresponds to MMC2_MANUAL3 in datamanual */
+       mmc2_iodelay_hs200_rev20_conf: mmc2_iodelay_hs200_rev20_conf {
+               pinctrl-pin-array = <
+                       0x194 A_DELAY_PS(285) G_DELAY_PS(0)     /* CFG_GPMC_A19_OUT */
+                       0x1ac A_DELAY_PS(189) G_DELAY_PS(0)     /* CFG_GPMC_A20_OUT */
+                       0x1b8 A_DELAY_PS(0) G_DELAY_PS(120)     /* CFG_GPMC_A21_OUT */
+                       0x1c4 A_DELAY_PS(0) G_DELAY_PS(70)      /* CFG_GPMC_A22_OUT */
+                       0x1d0 A_DELAY_PS(730) G_DELAY_PS(360)   /* CFG_GPMC_A23_OUT */
+                       0x1dc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OUT */
+                       0x1e8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_OUT */
+                       0x1f4 A_DELAY_PS(70) G_DELAY_PS(0)      /* CFG_GPMC_A26_OUT */
+                       0x200 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OUT */
+                       0x368 A_DELAY_PS(0) G_DELAY_PS(120)     /* CFG_GPMC_CS1_OUT */
+                       0x190 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A19_OEN */
+                       0x1a8 A_DELAY_PS(231) G_DELAY_PS(0)     /* CFG_GPMC_A20_OEN */
+                       0x1b4 A_DELAY_PS(39) G_DELAY_PS(0)      /* CFG_GPMC_A21_OEN */
+                       0x1c0 A_DELAY_PS(91) G_DELAY_PS(0)      /* CFG_GPMC_A22_OEN */
+                       0x1d8 A_DELAY_PS(176) G_DELAY_PS(0)     /* CFG_GPMC_A24_OEN */
+                       0x1e4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_OEN */
+                       0x1f0 A_DELAY_PS(101) G_DELAY_PS(0)     /* CFG_GPMC_A26_OEN */
+                       0x1fc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OEN */
+                       0x364 A_DELAY_PS(360) G_DELAY_PS(0)     /* CFG_GPMC_CS1_OEN */
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi b/arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi
new file mode 100644 (file)
index 0000000..28ebb4e
--- /dev/null
@@ -0,0 +1,647 @@
+/*
+ * MMC IOdelay values for TI's DRA74x, DRA75x and AM572x SoCs.
+ *
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/*
+ * Rules for modifying this file:
+ * a) Update of this file should typically correspond to a datamanual revision.
+ *    Datamanual revision that was used should be updated in comment below.
+ *    If there is no update to datamanual, do not update the values. If you
+ *    need to use values different from that recommended by the datamanual
+ *    for your design, then you should consider adding values to the device-
+ *    -tree file for your board directly.
+ * b) We keep the mode names as close to the datamanual as possible. So
+ *    if the manual calls a mode, DDR50, or DDR or DDR 1.8v or DDR 3.3v,
+ *    we follow that in code too.
+ * c) If the values change between multiple revisions of silicon, we add
+ *    a revision tag to both the new and old entry. Use 'rev11' for PG 1.1,
+ *    'rev20' for PG 2.0 and so on.
+ * d) The node name and node label should be the exact same string. This is
+ *    to curb naming creativity and achieve consistency.
+ *
+ * Datamanual Revisions:
+ *
+ * AM572x Silicon Revision 2.0: SPRS953B, Revised November 2016
+ * AM572x Silicon Revision 1.1: SPRS915R, Revised November 2016
+ *
+ */
+
+&dra7_pmx_core {
+       mmc1_pins_default: mmc1_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr12: mmc1_pins_sdr12 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_hs: mmc1_pins_hs {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr25: mmc1_pins_sdr25 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)    /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)    /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)    /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)    /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)    /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE11 | MUX_MODE0)    /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr50: mmc1_pins_sdr50 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)    /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)    /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)    /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)    /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)    /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_VIRTUAL_MODE10 | MUX_MODE0)    /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_ddr50: mmc1_pins_ddr50 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr104: mmc1_pins_sdr104 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)   /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc2_pins_default: mmc2_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_hs: mmc2_pins_hs {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_ddr_3_3v_rev11: mmc2_pins_ddr_3_3v_rev11 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_ddr_1_8v_rev11: mmc2_pins_ddr_1_8v_rev11 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_ddr_rev20: mmc2_pins_ddr_rev20 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc2_pins_hs200: mmc2_pins_hs200 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+
+       mmc4_pins_default: mmc4_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x37e8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_ctsn.mmc4_clk */
+                       DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_rtsn.mmc4_cmd */
+                       DRA7XX_CORE_IOPAD(0x37f0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rxd.mmc4_dat0 */
+                       DRA7XX_CORE_IOPAD(0x37f4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_txd.mmc4_dat1 */
+                       DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_ctsn.mmc4_dat2 */
+                       DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rtsn.mmc4_dat3 */
+               >;
+       };
+
+       mmc4_pins_hs: mmc4_pins_hs {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x37e8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_ctsn.mmc4_clk */
+                       DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_rtsn.mmc4_cmd */
+                       DRA7XX_CORE_IOPAD(0x37f0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rxd.mmc4_dat0 */
+                       DRA7XX_CORE_IOPAD(0x37f4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_txd.mmc4_dat1 */
+                       DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_ctsn.mmc4_dat2 */
+                       DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rtsn.mmc4_dat3 */
+               >;
+       };
+
+       mmc3_pins_default: mmc3_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x377c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_clk.mmc3_clk */
+                       DRA7XX_CORE_IOPAD(0x3780, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_cmd.mmc3_cmd */
+                       DRA7XX_CORE_IOPAD(0x3784, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat0.mmc3_dat0 */
+                       DRA7XX_CORE_IOPAD(0x3788, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat1.mmc3_dat1 */
+                       DRA7XX_CORE_IOPAD(0x378c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat2.mmc3_dat2 */
+                       DRA7XX_CORE_IOPAD(0x3790, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat3.mmc3_dat3 */
+               >;
+       };
+
+       mmc3_pins_hs: mmc3_pins_hs {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x377c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_clk.mmc3_clk */
+                       DRA7XX_CORE_IOPAD(0x3780, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_cmd.mmc3_cmd */
+                       DRA7XX_CORE_IOPAD(0x3784, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat0.mmc3_dat0 */
+                       DRA7XX_CORE_IOPAD(0x3788, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat1.mmc3_dat1 */
+                       DRA7XX_CORE_IOPAD(0x378c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat2.mmc3_dat2 */
+                       DRA7XX_CORE_IOPAD(0x3790, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat3.mmc3_dat3 */
+               >;
+       };
+
+       mmc3_pins_sdr12: mmc3_pins_sdr12 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x377c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_clk.mmc3_clk */
+                       DRA7XX_CORE_IOPAD(0x3780, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_cmd.mmc3_cmd */
+                       DRA7XX_CORE_IOPAD(0x3784, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat0.mmc3_dat0 */
+                       DRA7XX_CORE_IOPAD(0x3788, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat1.mmc3_dat1 */
+                       DRA7XX_CORE_IOPAD(0x378c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat2.mmc3_dat2 */
+                       DRA7XX_CORE_IOPAD(0x3790, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat3.mmc3_dat3 */
+               >;
+       };
+
+       mmc3_pins_sdr25: mmc3_pins_sdr25 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x377c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_clk.mmc3_clk */
+                       DRA7XX_CORE_IOPAD(0x3780, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_cmd.mmc3_cmd */
+                       DRA7XX_CORE_IOPAD(0x3784, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat0.mmc3_dat0 */
+                       DRA7XX_CORE_IOPAD(0x3788, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat1.mmc3_dat1 */
+                       DRA7XX_CORE_IOPAD(0x378c, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat2.mmc3_dat2 */
+                       DRA7XX_CORE_IOPAD(0x3790, (PIN_INPUT_PULLUP | MUX_MODE0)) /* mmc3_dat3.mmc3_dat3 */
+               >;
+       };
+
+       mmc3_pins_sdr50: mmc3_pins_sdr50 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x377c, (PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)) /* mmc3_clk.mmc3_clk */
+                       DRA7XX_CORE_IOPAD(0x3780, (PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)) /* mmc3_cmd.mmc3_cmd */
+                       DRA7XX_CORE_IOPAD(0x3784, (PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)) /* mmc3_dat0.mmc3_dat0 */
+                       DRA7XX_CORE_IOPAD(0x3788, (PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)) /* mmc3_dat1.mmc3_dat1 */
+                       DRA7XX_CORE_IOPAD(0x378c, (PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)) /* mmc3_dat2.mmc3_dat2 */
+                       DRA7XX_CORE_IOPAD(0x3790, (PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE0)) /* mmc3_dat3.mmc3_dat3 */
+               >;
+       };
+
+       mmc4_pins_sdr12: mmc4_pins_sdr12 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x37e8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_ctsn.mmc4_clk */
+                       DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_rtsn.mmc4_cmd */
+                       DRA7XX_CORE_IOPAD(0x37f0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rxd.mmc4_dat0 */
+                       DRA7XX_CORE_IOPAD(0x37f4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_txd.mmc4_dat1 */
+                       DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_ctsn.mmc4_dat2 */
+                       DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rtsn.mmc4_dat3 */
+               >;
+       };
+
+       mmc4_pins_sdr25: mmc4_pins_sdr25 {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x37e8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_ctsn.mmc4_clk */
+                       DRA7XX_CORE_IOPAD(0x37ec, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart1_rtsn.mmc4_cmd */
+                       DRA7XX_CORE_IOPAD(0x37f0, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rxd.mmc4_dat0 */
+                       DRA7XX_CORE_IOPAD(0x37f4, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_txd.mmc4_dat1 */
+                       DRA7XX_CORE_IOPAD(0x37f8, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_ctsn.mmc4_dat2 */
+                       DRA7XX_CORE_IOPAD(0x37fc, PIN_INPUT_PULLUP | MODE_SELECT | MUX_MODE3) /* uart2_rtsn.mmc4_dat3 */
+               >;
+       };
+};
+
+&dra7_iodelay_core {
+
+       /* Corresponds to MMC1_DDR_MANUAL1 in datamanual */
+       mmc1_iodelay_ddr_rev11_conf: mmc1_iodelay_ddr_rev11_conf {
+               pinctrl-pin-array = <
+                       0x618 A_DELAY_PS(572) G_DELAY_PS(540)   /* CFG_MMC1_CLK_IN */
+                       0x620 A_DELAY_PS(1525) G_DELAY_PS(0)    /* CFG_MMC1_CLK_OUT */
+                       0x624 A_DELAY_PS(0) G_DELAY_PS(600)     /* CFG_MMC1_CMD_IN */
+                       0x628 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OEN */
+                       0x62c A_DELAY_PS(55) G_DELAY_PS(0)      /* CFG_MMC1_CMD_OUT */
+                       0x630 A_DELAY_PS(403) G_DELAY_PS(120)   /* CFG_MMC1_DAT0_IN */
+                       0x634 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OEN */
+                       0x638 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OUT */
+                       0x63c A_DELAY_PS(23) G_DELAY_PS(60)     /* CFG_MMC1_DAT1_IN */
+                       0x640 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OEN */
+                       0x644 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OUT */
+                       0x648 A_DELAY_PS(25) G_DELAY_PS(60)     /* CFG_MMC1_DAT2_IN */
+                       0x64c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OEN */
+                       0x650 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OUT */
+                       0x654 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_IN */
+                       0x658 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OEN */
+                       0x65c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC1_DDR_MANUAL1 in datamanual */
+       mmc1_iodelay_ddr_rev20_conf: mmc1_iodelay_ddr50_rev20_conf {
+               pinctrl-pin-array = <
+                       0x618 A_DELAY_PS(1076) G_DELAY_PS(330)  /* CFG_MMC1_CLK_IN */
+                       0x620 A_DELAY_PS(1271) G_DELAY_PS(0)    /* CFG_MMC1_CLK_OUT */
+                       0x624 A_DELAY_PS(722) G_DELAY_PS(0)     /* CFG_MMC1_CMD_IN */
+                       0x628 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OEN */
+                       0x62C A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OUT */
+                       0x630 A_DELAY_PS(751) G_DELAY_PS(0)     /* CFG_MMC1_DAT0_IN */
+                       0x634 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OEN */
+                       0x638 A_DELAY_PS(20) G_DELAY_PS(0)      /* CFG_MMC1_DAT0_OUT */
+                       0x63C A_DELAY_PS(256) G_DELAY_PS(0)     /* CFG_MMC1_DAT1_IN */
+                       0x640 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OEN */
+                       0x644 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OUT */
+                       0x648 A_DELAY_PS(263) G_DELAY_PS(0)     /* CFG_MMC1_DAT2_IN */
+                       0x64C A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OEN */
+                       0x650 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OUT */
+                       0x654 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_IN */
+                       0x658 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OEN */
+                       0x65C A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC1_SDR104_MANUAL1 in datamanual */
+       mmc1_iodelay_sdr104_rev11_conf: mmc1_iodelay_sdr104_rev11_conf {
+               pinctrl-pin-array = <
+                       0x620 A_DELAY_PS(1063) G_DELAY_PS(17)   /* CFG_MMC1_CLK_OUT */
+                       0x628 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OEN */
+                       0x62c A_DELAY_PS(23) G_DELAY_PS(0)      /* CFG_MMC1_CMD_OUT */
+                       0x634 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OEN */
+                       0x638 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OUT */
+                       0x640 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OEN */
+                       0x644 A_DELAY_PS(2) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OUT */
+                       0x64c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OEN */
+                       0x650 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OUT */
+                       0x658 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OEN */
+                       0x65c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC1_SDR104_MANUAL1 in datamanual */
+       mmc1_iodelay_sdr104_rev20_conf: mmc1_iodelay_sdr104_rev20_conf {
+               pinctrl-pin-array = <
+                       0x620 A_DELAY_PS(600) G_DELAY_PS(400)   /* CFG_MMC1_CLK_OUT */
+                       0x628 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OEN */
+                       0x62c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_CMD_OUT */
+                       0x634 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT0_OEN */
+                       0x638 A_DELAY_PS(30) G_DELAY_PS(0)      /* CFG_MMC1_DAT0_OUT */
+                       0x640 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OEN */
+                       0x644 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT1_OUT */
+                       0x64c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OEN */
+                       0x650 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT2_OUT */
+                       0x658 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OEN */
+                       0x65c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC1_DAT3_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC2_HS200_MANUAL1 in datamanual */
+       mmc2_iodelay_hs200_rev11_conf: mmc2_iodelay_hs200_rev11_conf {
+               pinctrl-pin-array = <
+                       0x190 A_DELAY_PS(621) G_DELAY_PS(600)   /* CFG_GPMC_A19_OEN */
+                       0x194 A_DELAY_PS(300) G_DELAY_PS(0)     /* CFG_GPMC_A19_OUT */
+                       0x1a8 A_DELAY_PS(739) G_DELAY_PS(600)   /* CFG_GPMC_A20_OEN */
+                       0x1ac A_DELAY_PS(240) G_DELAY_PS(0)     /* CFG_GPMC_A20_OUT */
+                       0x1b4 A_DELAY_PS(812) G_DELAY_PS(600)   /* CFG_GPMC_A21_OEN */
+                       0x1b8 A_DELAY_PS(240) G_DELAY_PS(0)     /* CFG_GPMC_A21_OUT */
+                       0x1c0 A_DELAY_PS(954) G_DELAY_PS(600)   /* CFG_GPMC_A22_OEN */
+                       0x1c4 A_DELAY_PS(60)  G_DELAY_PS(0)     /* CFG_GPMC_A22_OUT */
+                       0x1d0 A_DELAY_PS(1340) G_DELAY_PS(420)  /* CFG_GPMC_A23_OUT */
+                       0x1d8 A_DELAY_PS(935) G_DELAY_PS(600)   /* CFG_GPMC_A24_OEN */
+                       0x1dc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OUT */
+                       0x1e4 A_DELAY_PS(525) G_DELAY_PS(600)   /* CFG_GPMC_A25_OEN */
+                       0x1e8 A_DELAY_PS(120) G_DELAY_PS(0)     /* CFG_GPMC_A25_OUT */
+                       0x1f0 A_DELAY_PS(767) G_DELAY_PS(600)   /* CFG_GPMC_A26_OEN */
+                       0x1f4 A_DELAY_PS(225) G_DELAY_PS(0)     /* CFG_GPMC_A26_OUT */
+                       0x1fc A_DELAY_PS(565) G_DELAY_PS(600)   /* CFG_GPMC_A27_OEN */
+                       0x200 A_DELAY_PS(60) G_DELAY_PS(0)      /* CFG_GPMC_A27_OUT */
+                       0x364 A_DELAY_PS(969) G_DELAY_PS(600)   /* CFG_GPMC_CS1_OEN */
+                       0x368 A_DELAY_PS(180) G_DELAY_PS(0)     /* CFG_GPMC_CS1_OUT */
+             >;
+       };
+
+       /* Corresponds to MMC2_HS200_MANUAL1 in datamanual */
+       mmc2_iodelay_hs200_rev20_conf: mmc2_iodelay_hs200_rev20_conf {
+               pinctrl-pin-array = <
+                       0x190 A_DELAY_PS(274) G_DELAY_PS(0)       /* CFG_GPMC_A19_OEN */
+                       0x194 A_DELAY_PS(162) G_DELAY_PS(0)       /* CFG_GPMC_A19_OUT */
+                       0x1a8 A_DELAY_PS(401) G_DELAY_PS(0)       /* CFG_GPMC_A20_OEN */
+                       0x1ac A_DELAY_PS(73) G_DELAY_PS(0)        /* CFG_GPMC_A20_OUT */
+                       0x1b4 A_DELAY_PS(465) G_DELAY_PS(0)       /* CFG_GPMC_A21_OEN */
+                       0x1b8 A_DELAY_PS(115) G_DELAY_PS(0)       /* CFG_GPMC_A21_OUT */
+                       0x1c0 A_DELAY_PS(633) G_DELAY_PS(0)       /* CFG_GPMC_A22_OEN */
+                       0x1c4 A_DELAY_PS(47) G_DELAY_PS(0)        /* CFG_GPMC_A22_OUT */
+                       0x1d0 A_DELAY_PS(935) G_DELAY_PS(280)     /* CFG_GPMC_A23_OUT */
+                       0x1d8 A_DELAY_PS(621) G_DELAY_PS(0)       /* CFG_GPMC_A24_OEN */
+                       0x1dc A_DELAY_PS(0) G_DELAY_PS(0)         /* CFG_GPMC_A24_OUT */
+                       0x1e4 A_DELAY_PS(183) G_DELAY_PS(0)       /* CFG_GPMC_A25_OEN */
+                       0x1e8 A_DELAY_PS(0) G_DELAY_PS(0)         /* CFG_GPMC_A25_OUT */
+                       0x1f0 A_DELAY_PS(467) G_DELAY_PS(0)       /* CFG_GPMC_A26_OEN */
+                       0x1f4 A_DELAY_PS(0) G_DELAY_PS(0)         /* CFG_GPMC_A26_OUT */
+                       0x1fc A_DELAY_PS(262) G_DELAY_PS(0)       /* CFG_GPMC_A27_OEN */
+                       0x200 A_DELAY_PS(46) G_DELAY_PS(0)        /* CFG_GPMC_A27_OUT */
+                       0x364 A_DELAY_PS(684) G_DELAY_PS(0)       /* CFG_GPMC_CS1_OEN */
+                       0x368 A_DELAY_PS(76) G_DELAY_PS(0)        /* CFG_GPMC_CS1_OUT */
+             >;
+       };
+
+       /* Correspnds to MMC2_DDR_3V3_MANUAL1 in datamanual */
+       mmc2_iodelay_ddr_3_3v_rev11_conf: mmc2_iodelay_ddr_3_3v_rev11_conf {
+               pinctrl-pin-array = <
+                       0x18c A_DELAY_PS(0) G_DELAY_PS(120)     /* CFG_GPMC_A19_IN */
+                       0x190 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A19_OEN */
+                       0x194 A_DELAY_PS(174) G_DELAY_PS(0)     /* CFG_GPMC_A19_OUT */
+                       0x1a4 A_DELAY_PS(265) G_DELAY_PS(360)   /* CFG_GPMC_A20_IN */
+                       0x1a8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A20_OEN */
+                       0x1ac A_DELAY_PS(168) G_DELAY_PS(0)     /* CFG_GPMC_A20_OUT */
+                       0x1b0 A_DELAY_PS(0) G_DELAY_PS(120)     /* CFG_GPMC_A21_IN */
+                       0x1b4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A21_OEN */
+                       0x1b8 A_DELAY_PS(136) G_DELAY_PS(0)     /* CFG_GPMC_A21_OUT */
+                       0x1bc A_DELAY_PS(0) G_DELAY_PS(120)     /* CFG_GPMC_A22_IN */
+                       0x1c0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A22_OEN */
+                       0x1c4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A22_OUT */
+                       0x1c8 A_DELAY_PS(287) G_DELAY_PS(420)   /* CFG_GPMC_A23_IN */
+                       0x1d0 A_DELAY_PS(879) G_DELAY_PS(0)     /* CFG_GPMC_A23_OUT */
+                       0x1d4 A_DELAY_PS(144) G_DELAY_PS(240)   /* CFG_GPMC_A24_IN */
+                       0x1d8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OEN */
+                       0x1dc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OUT */
+                       0x1e0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_IN */
+                       0x1e4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_OEN */
+                       0x1e8 A_DELAY_PS(34) G_DELAY_PS(0)      /* CFG_GPMC_A25_OUT */
+                       0x1ec A_DELAY_PS(0) G_DELAY_PS(120)     /* CFG_GPMC_A26_IN */
+                       0x1f0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A26_OEN */
+                       0x1f4 A_DELAY_PS(120) G_DELAY_PS(0)     /* CFG_GPMC_A26_OUT */
+                       0x1f8 A_DELAY_PS(120) G_DELAY_PS(180)   /* CFG_GPMC_A27_IN */
+                       0x1fc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OEN */
+                       0x200 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OUT */
+                       0x360 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_IN */
+                       0x364 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_OEN */
+                       0x368 A_DELAY_PS(11) G_DELAY_PS(0)      /* CFG_GPMC_CS1_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC2_DDR_1V8_MANUAL1 in datamanual */
+       mmc2_iodelay_ddr_1_8v_rev11_conf: mmc2_iodelay_ddr_1_8v_rev11_conf {
+               pinctrl-pin-array = <
+                       0x18c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A19_IN */
+                       0x190 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A19_OEN */
+                       0x194 A_DELAY_PS(174) G_DELAY_PS(0)     /* CFG_GPMC_A19_OUT */
+                       0x1a4 A_DELAY_PS(274) G_DELAY_PS(240)   /* CFG_GPMC_A20_IN */
+                       0x1a8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A20_OEN */
+                       0x1ac A_DELAY_PS(168) G_DELAY_PS(0)     /* CFG_GPMC_A20_OUT */
+                       0x1b0 A_DELAY_PS(0) G_DELAY_PS(60)      /* CFG_GPMC_A21_IN */
+                       0x1b4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A21_OEN */
+                       0x1b8 A_DELAY_PS(136) G_DELAY_PS(0)     /* CFG_GPMC_A21_OUT */
+                       0x1bc A_DELAY_PS(0) G_DELAY_PS(60)      /* CFG_GPMC_A22_IN */
+                       0x1c0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A22_OEN */
+                       0x1c4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A22_OUT */
+                       0x1c8 A_DELAY_PS(514) G_DELAY_PS(360)   /* CFG_GPMC_A23_IN */
+                       0x1d0 A_DELAY_PS(879) G_DELAY_PS(0)     /* CFG_GPMC_A23_OUT */
+                       0x1d4 A_DELAY_PS(187) G_DELAY_PS(120)   /* CFG_GPMC_A24_IN */
+                       0x1d8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OEN */
+                       0x1dc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A24_OUT */
+                       0x1e0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_IN */
+                       0x1e4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A25_OEN */
+                       0x1e8 A_DELAY_PS(34) G_DELAY_PS(0)      /* CFG_GPMC_A25_OUT */
+                       0x1ec A_DELAY_PS(0) G_DELAY_PS(60)      /* CFG_GPMC_A26_IN */
+                       0x1f0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A26_OEN */
+                       0x1f4 A_DELAY_PS(120) G_DELAY_PS(0)     /* CFG_GPMC_A26_OUT */
+                       0x1f8 A_DELAY_PS(121) G_DELAY_PS(60)    /* CFG_GPMC_A27_IN */
+                       0x1fc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OEN */
+                       0x200 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_A27_OUT */
+                       0x360 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_IN */
+                       0x364 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_GPMC_CS1_OEN */
+                       0x368 A_DELAY_PS(11) G_DELAY_PS(0)      /* CFG_GPMC_CS1_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC3_MANUAL1 in datamanual */
+       mmc3_iodelay_manual1_rev20_conf: mmc3_iodelay_manual1_conf {
+               pinctrl-pin-array = <
+                       0x678 A_DELAY_PS(0) G_DELAY_PS(386)     /* CFG_MMC3_CLK_IN */
+                       0x680 A_DELAY_PS(605) G_DELAY_PS(0)     /* CFG_MMC3_CLK_OUT */
+                       0x684 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_CMD_IN */
+                       0x688 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_CMD_OEN */
+                       0x68c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_CMD_OUT */
+                       0x690 A_DELAY_PS(171) G_DELAY_PS(0)     /* CFG_MMC3_DAT0_IN */
+                       0x694 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT0_OEN */
+                       0x698 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT0_OUT */
+                       0x69c A_DELAY_PS(221) G_DELAY_PS(0)     /* CFG_MMC3_DAT1_IN */
+                       0x6a0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT1_OEN */
+                       0x6a4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT1_OUT */
+                       0x6a8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT2_IN */
+                       0x6ac A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT2_OEN */
+                       0x6b0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT2_OUT */
+                       0x6b4 A_DELAY_PS(474) G_DELAY_PS(0)     /* CFG_MMC3_DAT3_IN */
+                       0x6b8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT3_OEN */
+                       0x6bc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT3_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC3_MANUAL1 in datamanual */
+       mmc3_iodelay_manual1_rev11_conf: mmc3_iodelay_manual1_conf {
+               pinctrl-pin-array = <
+                       0x678 A_DELAY_PS(406) G_DELAY_PS(0)     /* CFG_MMC3_CLK_IN */
+                       0x680 A_DELAY_PS(659) G_DELAY_PS(0)     /* CFG_MMC3_CLK_OUT */
+                       0x684 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_CMD_IN */
+                       0x688 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_CMD_OEN */
+                       0x68c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_CMD_OUT */
+                       0x690 A_DELAY_PS(130) G_DELAY_PS(0)     /* CFG_MMC3_DAT0_IN */
+                       0x694 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT0_OEN */
+                       0x698 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT0_OUT */
+                       0x69c A_DELAY_PS(169) G_DELAY_PS(0)     /* CFG_MMC3_DAT1_IN */
+                       0x6a0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT1_OEN */
+                       0x6a4 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT1_OUT */
+                       0x6a8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT2_IN */
+                       0x6ac A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT2_OEN */
+                       0x6b0 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT2_OUT */
+                       0x6b4 A_DELAY_PS(457) G_DELAY_PS(0)     /* CFG_MMC3_DAT3_IN */
+                       0x6b8 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT3_OEN */
+                       0x6bc A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_MMC3_DAT3_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC4_DS_MANUAL1 in datamanual */
+       mmc4_iodelay_ds_rev11_conf: mmc4_iodelay_ds_rev11_conf {
+               pinctrl-pin-array = <
+                       0x840 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_CTSN_IN */
+                       0x848 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_CTSN_OUT */
+                       0x84c A_DELAY_PS(96) G_DELAY_PS(0)      /* CFG_UART1_RTSN_IN */
+                       0x850 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OEN */
+                       0x854 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OUT */
+                       0x870 A_DELAY_PS(582) G_DELAY_PS(0)     /* CFG_UART2_CTSN_IN */
+                       0x874 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OEN */
+                       0x878 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OUT */
+                       0x87c A_DELAY_PS(391) G_DELAY_PS(0)     /* CFG_UART2_RTSN_IN */
+                       0x880 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OEN */
+                       0x884 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OUT */
+                       0x888 A_DELAY_PS(561) G_DELAY_PS(0)     /* CFG_UART2_RXD_IN */
+                       0x88c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OEN */
+                       0x890 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OUT */
+                       0x894 A_DELAY_PS(588) G_DELAY_PS(0)     /* CFG_UART2_TXD_IN */
+                       0x898 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OEN */
+                       0x89c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC4_DS_MANUAL1 in datamanual */
+       mmc4_iodelay_ds_rev20_conf: mmc4_iodelay_ds_rev20_conf {
+               pinctrl-pin-array = <
+                       0x840 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_CTSN_IN */
+                       0x848 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_CTSN_OUT */
+                       0x84c A_DELAY_PS(307) G_DELAY_PS(0)     /* CFG_UART1_RTSN_IN */
+                       0x850 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OEN */
+                       0x854 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OUT */
+                       0x870 A_DELAY_PS(785) G_DELAY_PS(0)     /* CFG_UART2_CTSN_IN */
+                       0x874 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OEN */
+                       0x878 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OUT */
+                       0x87c A_DELAY_PS(613) G_DELAY_PS(0)     /* CFG_UART2_RTSN_IN */
+                       0x880 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OEN */
+                       0x884 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OUT */
+                       0x888 A_DELAY_PS(683) G_DELAY_PS(0)     /* CFG_UART2_RXD_IN */
+                       0x88c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OEN */
+                       0x890 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OUT */
+                       0x894 A_DELAY_PS(835) G_DELAY_PS(0)     /* CFG_UART2_TXD_IN */
+                       0x898 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OEN */
+                       0x89c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC4_MANUAL1 in datamanual */
+       mmc4_iodelay_sdr12_hs_sdr25_rev11_conf: mmc4_iodelay_sdr12_hs_sdr25_rev11_conf {
+               pinctrl-pin-array = <
+                       0x840 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_CTSN_IN */
+                       0x848 A_DELAY_PS(2651) G_DELAY_PS(0)    /* CFG_UART1_CTSN_OUT */
+                       0x84c A_DELAY_PS(1572) G_DELAY_PS(0)    /* CFG_UART1_RTSN_IN */
+                       0x850 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OEN */
+                       0x854 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OUT */
+                       0x870 A_DELAY_PS(1913) G_DELAY_PS(0)    /* CFG_UART2_CTSN_IN */
+                       0x874 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OEN */
+                       0x878 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OUT */
+                       0x87c A_DELAY_PS(1721) G_DELAY_PS(0)    /* CFG_UART2_RTSN_IN */
+                       0x880 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OEN */
+                       0x884 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OUT */
+                       0x888 A_DELAY_PS(1891) G_DELAY_PS(0)    /* CFG_UART2_RXD_IN */
+                       0x88c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OEN */
+                       0x890 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OUT */
+                       0x894 A_DELAY_PS(1919) G_DELAY_PS(0)    /* CFG_UART2_TXD_IN */
+                       0x898 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OEN */
+                       0x89c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OUT */
+               >;
+       };
+
+       /* Corresponds to MMC4_MANUAL1 in datamanual */
+       mmc4_iodelay_sdr12_hs_sdr25_rev20_conf: mmc4_iodelay_sdr12_hs_sdr25_rev20_conf {
+               pinctrl-pin-array = <
+                       0x840 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_CTSN_IN */
+                       0x848 A_DELAY_PS(1147) G_DELAY_PS(0)    /* CFG_UART1_CTSN_OUT */
+                       0x84c A_DELAY_PS(1834) G_DELAY_PS(0)    /* CFG_UART1_RTSN_IN */
+                       0x850 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OEN */
+                       0x854 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART1_RTSN_OUT */
+                       0x870 A_DELAY_PS(2165) G_DELAY_PS(0)    /* CFG_UART2_CTSN_IN */
+                       0x874 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OEN */
+                       0x878 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_CTSN_OUT */
+                       0x87c A_DELAY_PS(1929) G_DELAY_PS(64)   /* CFG_UART2_RTSN_IN */
+                       0x880 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OEN */
+                       0x884 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RTSN_OUT */
+                       0x888 A_DELAY_PS(1935) G_DELAY_PS(128)  /* CFG_UART2_RXD_IN */
+                       0x88c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OEN */
+                       0x890 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_RXD_OUT */
+                       0x894 A_DELAY_PS(2172) G_DELAY_PS(44)   /* CFG_UART2_TXD_IN */
+                       0x898 A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OEN */
+                       0x89c A_DELAY_PS(0) G_DELAY_PS(0)       /* CFG_UART2_TXD_OUT */
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/dra76-evm.dts b/arch/arm/boot/dts/dra76-evm.dts
new file mode 100644 (file)
index 0000000..b024a65
--- /dev/null
@@ -0,0 +1,423 @@
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+/dts-v1/;
+
+#include "dra76x.dtsi"
+#include "dra7-evm-common.dtsi"
+#include <dt-bindings/net/ti-dp83867.h>
+
+/ {
+       model = "TI DRA762 EVM";
+       compatible = "ti,dra76-evm", "ti,dra762", "ti,dra7";
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0x0 0x80000000>;
+       };
+
+       vsys_12v0: fixedregulator-vsys12v0 {
+               /* main supply */
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_12v0";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vsys_5v0: fixedregulator-vsys5v0 {
+               /* Output of Cntlr B of TPS43351-Q1 on dra76-evm */
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vsys_12v0>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vsys_3v3: fixedregulator-vsys3v3 {
+               /* Output of Cntlr A of TPS43351-Q1 on dra76-evm */
+               compatible = "regulator-fixed";
+               regulator-name = "vsys_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vsys_12v0>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vio_3v3: fixedregulator-vio_3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vio_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vsys_3v3>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vio_3v3_sd: fixedregulator-sd {
+               compatible = "regulator-fixed";
+               regulator-name = "vio_3v3_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vio_3v3>;
+               enable-active-high;
+               gpio = <&gpio4 21 GPIO_ACTIVE_HIGH>;
+       };
+
+       vio_1v8: fixedregulator-vio_1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "vio_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&smps5_reg>;
+       };
+
+       vtt_fixed: fixedregulator-vtt {
+               compatible = "regulator-fixed";
+               regulator-name = "vtt_fixed";
+               regulator-min-microvolt = <1350000>;
+               regulator-max-microvolt = <1350000>;
+               vin-supply = <&vsys_3v3>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       aic_dvdd: fixedregulator-aic_dvdd {
+               /* TPS77018DBVT */
+               compatible = "regulator-fixed";
+               regulator-name = "aic_dvdd";
+               vin-supply = <&vio_3v3>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+};
+
+&dra7_pmx_core {
+       mmc1_pins_default: mmc1_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x376c, PIN_INPUT | MUX_MODE14)       /* mmc1sdcd.gpio219 */
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc1_pins_sdr12: pinmux_mmc1_sdr12_pins {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x3754, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_clk.clk */
+                       DRA7XX_CORE_IOPAD(0x3758, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_cmd.cmd */
+                       DRA7XX_CORE_IOPAD(0x375c, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat0.dat0 */
+                       DRA7XX_CORE_IOPAD(0x3760, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat1.dat1 */
+                       DRA7XX_CORE_IOPAD(0x3764, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat2.dat2 */
+                       DRA7XX_CORE_IOPAD(0x3768, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc1_dat3.dat3 */
+               >;
+       };
+
+       mmc2_pins_default: mmc2_pins_default {
+               pinctrl-single,pins = <
+                       DRA7XX_CORE_IOPAD(0x349c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a23.mmc2_clk */
+                       DRA7XX_CORE_IOPAD(0x34b0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_cs1.mmc2_cmd */
+                       DRA7XX_CORE_IOPAD(0x34a0, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a24.mmc2_dat0 */
+                       DRA7XX_CORE_IOPAD(0x34a4, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a25.mmc2_dat1 */
+                       DRA7XX_CORE_IOPAD(0x34a8, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a26.mmc2_dat2 */
+                       DRA7XX_CORE_IOPAD(0x34ac, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a27.mmc2_dat3 */
+                       DRA7XX_CORE_IOPAD(0x348c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a19.mmc2_dat4 */
+                       DRA7XX_CORE_IOPAD(0x3490, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a20.mmc2_dat5 */
+                       DRA7XX_CORE_IOPAD(0x3494, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a21.mmc2_dat6 */
+                       DRA7XX_CORE_IOPAD(0x3498, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_a22.mmc2_dat7 */
+               >;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       tps65917: tps65917@58 {
+               compatible = "ti,tps65917";
+               reg = <0x58>;
+               ti,system-power-controller;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               tps65917_pmic {
+                       compatible = "ti,tps65917-pmic";
+
+                       smps12-in-supply = <&vsys_3v3>;
+                       smps3-in-supply = <&vsys_3v3>;
+                       smps4-in-supply = <&vsys_3v3>;
+                       smps5-in-supply = <&vsys_3v3>;
+                       ldo1-in-supply = <&vsys_3v3>;
+                       ldo2-in-supply = <&vsys_3v3>;
+                       ldo3-in-supply = <&vsys_5v0>;
+                       ldo4-in-supply = <&vsys_5v0>;
+                       ldo5-in-supply = <&vsys_3v3>;
+
+                       tps65917_regulators: regulators {
+                               smps12_reg: smps12 {
+                                       /* VDD_DSPEVE */
+                                       regulator-name = "smps12";
+                                       regulator-min-microvolt = <850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps3_reg: smps3 {
+                                       /* VDD_CORE */
+                                       regulator-name = "smps3";
+                                       regulator-min-microvolt = <850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+
+                               smps4_reg: smps4 {
+                                       /* VDD_IVA */
+                                       regulator-name = "smps4";
+                                       regulator-min-microvolt = <850000>;
+                                       regulator-max-microvolt = <1250000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               smps5_reg: smps5 {
+                                       /* VDDS1V8 */
+                                       regulator-name = "smps5";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+
+                               ldo1_reg: ldo1 {
+                                       /* LDO1_OUT --> VDA_PHY1_1V8  */
+                                       regulator-name = "ldo1";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                                       regulator-allow-bypass;
+                               };
+
+                               ldo2_reg: ldo2 {
+                                       /* LDO2_OUT --> VDA_PHY2_1V8 */
+                                       regulator-name = "ldo2";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-allow-bypass;
+                                       regulator-always-on;
+                               };
+
+                               ldo3_reg: ldo3 {
+                                       /* VDA_USB_3V3 */
+                                       regulator-name = "ldo3";
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+
+                               ldo5_reg: ldo5 {
+                                       /* VDDA_1V8_PLL */
+                                       regulator-name = "ldo5";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                                       regulator-always-on;
+                                       regulator-boot-on;
+                               };
+
+                               ldo4_reg: ldo4 {
+                                       /* VDD_SDIO_DV */
+                                       regulator-name = "ldo4";
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <3300000>;
+                                       regulator-boot-on;
+                                       regulator-always-on;
+                               };
+                       };
+               };
+
+               tps65917_power_button {
+                       compatible = "ti,palmas-pwrbutton";
+                       interrupt-parent = <&tps65917>;
+                       interrupts = <1 IRQ_TYPE_NONE>;
+                       wakeup-source;
+                       ti,palmas-long-press-seconds = <6>;
+               };
+       };
+
+       lp87565: lp87565@60 {
+               compatible = "ti,lp87565-q1";
+               reg = <0x60>;
+
+               buck10-in-supply =<&vsys_3v3>;
+               buck23-in-supply =<&vsys_3v3>;
+
+               regulators: regulators {
+                       buck10_reg: buck10 {
+                               /*VDD_MPU*/
+                               regulator-name = "buck10";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1250000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       buck23_reg: buck23 {
+                               /* VDD_GPU*/
+                               regulator-name = "buck23";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1250000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       pcf_lcd: pcf8757@20 {
+               compatible = "ti,pcf8575", "nxp,pcf8575";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+       };
+
+       pcf_gpio_21: pcf8757@21 {
+               compatible = "ti,pcf8575", "nxp,pcf8575";
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       pcf_hdmi: pcf8575@26 {
+               compatible = "ti,pcf8575", "nxp,pcf8575";
+               reg = <0x26>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               p1 {
+                       /* vin6_sel_s0: high: VIN6, low: audio */
+                       gpio-hog;
+                       gpios = <1 GPIO_ACTIVE_HIGH>;
+                       output-low;
+                       line-name = "vin6_sel_s0";
+               };
+       };
+
+       tlv320aic3106: tlv320aic3106@19 {
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3106";
+               reg = <0x19>;
+               adc-settle-ms = <40>;
+               ai3x-micbias-vg = <1>;          /* 2.0V */
+               status = "okay";
+
+               /* Regulators */
+               AVDD-supply = <&vio_3v3>;
+               IOVDD-supply = <&vio_3v3>;
+               DRVDD-supply = <&vio_3v3>;
+               DVDD-supply = <&aic_dvdd>;
+       };
+};
+
+&cpu0 {
+       vdd-supply = <&buck10_reg>;
+};
+
+&mmc1 {
+       status = "okay";
+       vmmc-supply = <&vio_3v3_sd>;
+       vmmc_aux-supply = <&ldo4_reg>;
+       bus-width = <4>;
+       /*
+        * SDCD signal is not being used here - using the fact that GPIO mode
+        * is always hardwired.
+        */
+       cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_default>;
+};
+
+&mmc2 {
+       status = "okay";
+       vmmc-supply = <&vio_1v8>;
+       bus-width = <8>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_pins_default>;
+};
+
+/* No RTC on this device */
+&rtc {
+       status = "disabled";
+};
+
+&mac {
+       status = "okay";
+
+       dual_emac;
+};
+
+&cpsw_emac0 {
+       phy_id = <&davinci_mdio>, <2>;
+       phy-mode = "rgmii-id";
+       dual_emac_res_vlan = <1>;
+};
+
+&cpsw_emac1 {
+       phy_id = <&davinci_mdio>, <3>;
+       phy-mode = "rgmii-id";
+       dual_emac_res_vlan = <2>;
+};
+
+&davinci_mdio {
+       dp83867_0: ethernet-phy@2 {
+               reg = <2>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+               ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
+               ti,min-output-impedance;
+               ti,dp83867-rxctrl-strap-quirk;
+       };
+
+       dp83867_1: ethernet-phy@3 {
+               reg = <3>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
+               ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
+               ti,min-output-impedance;
+               ti,dp83867-rxctrl-strap-quirk;
+       };
+};
+
+&usb2_phy1 {
+       phy-supply = <&ldo3_reg>;
+};
+
+&usb2_phy2 {
+       phy-supply = <&ldo3_reg>;
+};
+
+&qspi {
+       spi-max-frequency = <96000000>;
+       m25p80@0 {
+               spi-max-frequency = <96000000>;
+       };
+};
diff --git a/arch/arm/boot/dts/dra76x.dtsi b/arch/arm/boot/dts/dra76x.dtsi
new file mode 100644 (file)
index 0000000..1c88c58
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2017 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "dra74x.dtsi"
+
+/ {
+       compatible = "ti,dra762", "ti,dra7";
+
+};
+
+/* MCAN interrupts are hard-wired to irqs 67, 68 */
+&crossbar_mpu {
+       ti,irqs-skip = <10 67 68 133 139 140>;
+};
index 4bd2ee87124eab05014568fdbc24d308611bdf16..4cbfa09c6c4e46fb25bfea03996aee13dcddc662 100644 (file)
@@ -22,7 +22,6 @@
 };
 
 &mshc_2 {
-       num-slots = <1>;
        cap-sd-highspeed;
        disable-wp;
        vqmmc-supply = <&ldo3_reg>;
index 59c89d7662a8004b03f52cbdab7d3f9903bf9326..639c2e605f3c99a4c5478b85c4ac69c236f8bfba 100644 (file)
 };
 
 &mshc_0 {
-       num-slots = <1>;
        non-removable;
        cap-mmc-highspeed;
        card-detect-delay = <200>;
index accee81da266e3c1e9a3cb7e55998c658f1017a7..bbdfcbc6e7d29a5cdbb854ba030f1d77cae048ad 100644 (file)
 &mshc_0 {
        #address-cells = <1>;
        #size-cells = <0>;
-       num-slots = <1>;
        broken-cd;
        non-removable;
        cap-mmc-highspeed;
index 443e0c98dc73089213ce3aca04a0bdb44dfc64ed..0b45467d77a8f53d5b21ce910cadfd2d1226565e 100644 (file)
        samsung,pll-clock-frequency = <24000000>;
        status = "okay";
 
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@1 {
-                       reg = <1>;
-
-                       dsi_out: endpoint {
-                               remote-endpoint = <&dsi_in>;
-                               samsung,burst-clock-frequency = <250000000>;
-                               samsung,esc-clock-frequency = <20000000>;
-                       };
-               };
-       };
-
        panel@0 {
                compatible = "samsung,s6e63j0x03";
                reg = <0>;
                                vsync-len = <2>;
                        };
                };
-
-               port {
-                       dsi_in: endpoint {
-                               remote-endpoint = <&dsi_out>;
-                       };
-               };
        };
 };
 
 &mshc_0 {
        #address-cells = <1>;
        #size-cells = <0>;
-       num-slots = <1>;
        broken-cd;
        non-removable;
        cap-mmc-highspeed;
index 645feffb9239d2465782ea04989ce063b6ae2b97..7b6ab726511053d008789a3270d7eb84b421dbd1 100644 (file)
        samsung,pll-clock-frequency = <24000000>;
        status = "okay";
 
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@1 {
-                       reg = <1>;
-
-                       dsi_out: endpoint {
-                               remote-endpoint = <&dsi_in>;
-                               samsung,burst-clock-frequency = <500000000>;
-                               samsung,esc-clock-frequency = <20000000>;
-                       };
-               };
-       };
-
        panel@0 {
                reg = <0>;
                compatible = "samsung,s6e8aa0";
                                vsync-len = <2>;
                        };
                };
-
-               port {
-                       dsi_in: endpoint {
-                               remote-endpoint = <&dsi_out>;
-                       };
-               };
        };
 };
 
index 4cd62487bb16f28a2b1303ac4ce3486a552a7214..14ce2c69bc0b4972d4cb4817fcfaaca0b8b953d4 100644 (file)
        pinctrl-names = "default";
        status = "okay";
        vmmc-supply = <&buck9_reg>;
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
index 219d587c5a85059f9bd44ac69a794cae25a21bf7..102acd78be15a9a972a2334cb520021424045ba0 100644 (file)
        mmc-pwrseq = <&emmc_pwrseq>;
        status = "okay";
 
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
index 7a83e2df18a606a8247859647aa0fa5f7e172236..8a89eb893d644d46ad79d7f3e7161edb2d0eccf0 100644 (file)
        pinctrl-names = "default";
        status = "okay";
 
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
index 35e9b94b86b8d6853e919574fec8d486543061c8..bceb919ac6379ad8d5034913b32ecdfd436a7030 100644 (file)
        samsung,pll-clock-frequency = <24000000>;
        status = "okay";
 
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@1 {
-                       reg = <1>;
-
-                       dsi_out: endpoint {
-                               remote-endpoint = <&dsi_in>;
-                               samsung,burst-clock-frequency = <500000000>;
-                               samsung,esc-clock-frequency = <20000000>;
-                       };
-               };
-       };
-
        panel@0 {
                compatible = "samsung,s6e8aa0";
                reg = <0>;
                                vsync-len = <2>;
                        };
                };
-
-               port {
-                       dsi_in: endpoint {
-                               remote-endpoint = <&dsi_out>;
-                       };
-               };
        };
 };
 
 };
 
 &mshc_0 {
-       num-slots = <1>;
        broken-cd;
        non-removable;
        card-detect-delay = <200>;
index 6a432460eb77b910d58c3d174ae22c03b7adbae4..18a7f396ac5f727b4daa0c15b2723b3ca89035d2 100644 (file)
 
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
 
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
        samsung,dw-mshc-sdr-timing = <2 3>;
index 6632f657394e6d4ee44774573487a77c08acae5b..062cba4c2c310b28846634d354b10fe4d07e786c 100644 (file)
 
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
 
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
        samsung,dw-mshc-sdr-timing = <2 3>;
index e1d293dbbe5d95623ddd8b26a951c5e3360afb24..8788880e459d3e1dde6bfddbe80ae3c631693d89 100644 (file)
 /* eMMC flash */
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        non-removable;
        samsung,dw-mshc-ciu-div = <3>;
        samsung,dw-mshc-sdr-timing = <2 3>;
 /* uSD card */
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
        samsung,dw-mshc-sdr-timing = <2 3>;
  */
 &mmc_3 {
        status = "okay";
-       num-slots = <1>;
        non-removable;
        cap-sdio-irq;
        keep-power-in-suspend;
index 95c3bcace9dcbe8fcc233a17d88320f3ffd73fd6..d53bfcbeb39c42f3789514953f152413418d0d49 100644 (file)
 
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
  */
 &mmc_1 {
        status = "okay";
-       num-slots = <1>;
        broken-cd;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
index d0cc300cfb4b6ae185677e9971e537f31f560559..73b7cdd5f5223cafaa99c7181d23586061f1b189 100644 (file)
@@ -67,7 +67,6 @@
 
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        broken-cd;
        bypass-smu;
        cap-mmc-highspeed;
@@ -83,7 +82,6 @@
 
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
index 6cc74d97daaea595d8b6d0ece1d10c773a71f720..9cb7726ef8d0dbc1f4bb6964acc64bc34abd566e 100644 (file)
@@ -41,7 +41,6 @@
 
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        cap-mmc-highspeed;
        broken-cd;
        card-detect-delay = <200>;
@@ -53,7 +52,6 @@
 
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        samsung,dw-mshc-ciu-div = <3>;
index f9a75bfd3f2bfdc45575c5947f6107024d15e42a..683a4cfb4a23d469ba91670f414e27ea03d57f5a 100644 (file)
 /* eMMC flash */
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        mmc-hs200-1_8v;
        cap-mmc-highspeed;
        non-removable;
 /* WiFi SDIO module */
 &mmc_1 {
        status = "okay";
-       num-slots = <1>;
        non-removable;
        cap-sdio-irq;
        keep-power-in-suspend;
 /* uSD card */
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        clock-frequency = <400000000>;
index bc4954e69f7b148c3e33dd624e039726f0f0026a..7a00be7ea6d716e38bf979a6d9e4da7397f7dfd1 100644 (file)
                phys = <&pcie_phy0>;
                ranges = <0x81000000 0 0          0x40001000 0 0x00010000   /* downstream I/O */
                          0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
+               bus-range = <0x00 0xff>;
                #interrupt-cells = <1>;
                interrupt-map-mask = <0 0 0 0>;
                interrupt-map = <0x0 0 &gic 53>;
                phys = <&pcie_phy1>;
                ranges = <0x81000000 0 0          0x60001000 0 0x00010000   /* downstream I/O */
                          0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
+               bus-range = <0x00 0xff>;
                #interrupt-cells = <1>;
                interrupt-map-mask = <0 0 0 0>;
                interrupt-map = <0x0 0 &gic 56>;
index 953dc8677dc888d21f4207d27de2d8268d812198..b2b95ff205e81ba9248f3f29416001459e3c3d77 100644 (file)
 /* eMMC flash */
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        mmc-hs200-1_8v;
        mmc-hs400-1_8v;
        cap-mmc-highspeed;
 /* WiFi SDIO module */
 &mmc_1 {
        status = "okay";
-       num-slots = <1>;
        non-removable;
        cap-sdio-irq;
        keep-power-in-suspend;
 /* uSD card */
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        clock-frequency = <400000000>;
diff --git a/arch/arm/boot/dts/gemini-dlink-dir-685.dts b/arch/arm/boot/dts/gemini-dlink-dir-685.dts
new file mode 100644 (file)
index 0000000..e75e2d4
--- /dev/null
@@ -0,0 +1,246 @@
+/*
+ * Device Tree file for D-Link DIR-685 Xtreme N Storage Router
+ */
+
+/dts-v1/;
+
+#include "gemini.dtsi"
+#include <dt-bindings/input/input.h>
+
+/ {
+       model = "D-Link DIR-685 Xtreme N Storage Router";
+       compatible = "dlink,dir-685", "cortina,gemini";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       memory {
+               /* 128 MB SDRAM in 2 x Hynix HY5DU121622DTP-D43 */
+               device_type = "memory";
+               reg = <0x00000000 0x8000000>;
+       };
+
+       chosen {
+               stdout-path = "uart0:115200n8";
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               button-esc {
+                       debounce_interval = <50>;
+                       wakeup-source;
+                       linux,code = <KEY_ESC>;
+                       label = "reset";
+                       /* Collides with LPC_LAD[0], UART DCD, SSP 97RST */
+                       gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
+               };
+               button-eject {
+                       debounce_interval = <50>;
+                       wakeup-source;
+                       linux,code = <KEY_EJECTCD>;
+                       label = "unmount";
+                       /* Collides with LPC LFRAME, UART RTS, SSP TXD */
+                       gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               led-wps {
+                       label = "dir685:blue:WPS";
+                       /* Collides with ICE */
+                       gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+               /*
+                * These two LEDs are on the side of the device.
+                * For electrical reasons, both LEDs cannot be active
+                * at the same time so only blue or orange can on at
+                * one time. Enabling both makes the LED go dark.
+                * The LEDs both sit inside the unmount button and the
+                * label on the case says "unmount".
+                */
+               led-blue-hd {
+                       label = "dir685:blue:HD";
+                       /* Collides with LPC_SERIRQ, UART DTR, SSP FSC pins */
+                       gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+               led-orange-hd {
+                       label = "dir685:orange:HD";
+                       /* Collides with LPC_LAD[2], UART DSR, SSP ECLK pins */
+                       gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       /*
+        * This is a Sunon Maglev GM0502PFV2-8 cooling fan @10000 RPM.
+        * Since the platform has no temperature sensor, this is controlled
+        * from userspace by using the hard disks S.M.A.R.T. temperature
+        * sensor. It is turned on when the temperature exceeds 46 degrees
+        * and turned off when the temperatures goes below 41 degrees
+        * (celsius).
+        */
+       gpio-fan {
+               compatible = "gpio-fan";
+               /* Collides with IDE */
+               gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+               gpio-fan,speed-map = <0 0>, <10000 1>;
+               #cooling-cells = <2>;
+       };
+
+       /*
+        * The touchpad input is connected to a GPIO bit-banged
+        * I2C bus.
+        */
+       gpio-i2c {
+               compatible = "i2c-gpio";
+               /* Collides with ICE */
+               gpios = <&gpio0 5 0>, /* SDA */
+                       <&gpio0 6 0>; /* SCL */
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               touchkeys@26 {
+                       compatible = "dlink,dir685-touchkeys";
+                       reg = <0x26>;
+                       interrupt-parent = <&gpio0>;
+                       /* Collides with NAND flash */
+                       interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
+               };
+       };
+
+       soc {
+               flash@30000000 {
+                       status = "okay";
+                       /* 32MB of flash */
+                       reg = <0x30000000 0x02000000>;
+
+                       /*
+                        * This "RedBoot" is the Storlink derivative.
+                        */
+                       partition@0 {
+                               label = "RedBoot";
+                               reg = <0x00000000 0x00040000>;
+                               read-only;
+                       };
+                       /*
+                        * Between the boot loader and the rootfs is the kernel
+                        * in a custom Storlink format flashed from the boot
+                        * menu. The rootfs is in squashfs format.
+                        */
+                       partition@1800c0 {
+                               label = "rootfs";
+                               reg = <0x001800c0 0x01dbff40>;
+                               read-only;
+                       };
+                       partition@1f40000 {
+                               label = "upgrade";
+                               reg = <0x01f40000 0x00040000>;
+                               read-only;
+                       };
+                       partition@1f80000 {
+                               label = "rgdb";
+                               reg = <0x01f80000 0x00040000>;
+                               read-only;
+                       };
+                       /*
+                        * This partition contains MAC addresses for WAN,
+                        * WLAN and LAN, and the country code (for wireless
+                        * I guess).
+                        */
+                       partition@1fc0000 {
+                               label = "nvram";
+                               reg = <0x01fc0000 0x00020000>;
+                               read-only;
+                       };
+                       partition@1fe0000 {
+                               label = "LangPack";
+                               reg = <0x01fe0000 0x00020000>;
+                               read-only;
+                       };
+               };
+
+               syscon: syscon@40000000 {
+                       pinctrl {
+                               /*
+                                * gpio0bgrp cover line 5, 6 used by TK I2C
+                                * gpio0bgrp cover line 7 used by WPS LED
+                                * gpio0cgrp cover line 8, 13 used by keys
+                                *           and 11, 12 used by the HD LEDs
+                                * gpio0egrp cover line 16 used by VDISP
+                                * gpio0fgrp cover line 17 used by TK IRQ
+                                * gpio0ggrp cover line 20 used by panel CS
+                                * gpio0hgrp cover line 21,22 used by RTL8366RB
+                                */
+                               gpio0_default_pins: pinctrl-gpio0 {
+                                       mux {
+                                               function = "gpio0";
+                                               groups = "gpio0bgrp",
+                                               "gpio0cgrp",
+                                               "gpio0egrp",
+                                               "gpio0fgrp",
+                                               "gpio0ggrp",
+                                               "gpio0hgrp";
+                                       };
+                               };
+                               /*
+                                * gpio1bgrp cover line 5,8,7 used by panel SPI
+                                * also line 6 used by the fan
+                                *
+                                */
+                               gpio1_default_pins: pinctrl-gpio1 {
+                                       mux {
+                                               function = "gpio1";
+                                               groups = "gpio1bgrp";
+                                       };
+                               };
+                       };
+               };
+
+               sata: sata@46000000 {
+                       cortina,gemini-ata-muxmode = <0>;
+                       cortina,gemini-enable-sata-bridge;
+                       status = "okay";
+               };
+
+               gpio0: gpio@4d000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio0_default_pins>;
+               };
+
+               gpio1: gpio@4e000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio1_default_pins>;
+               };
+
+               pci@50000000 {
+                       status = "okay";
+                       interrupt-map-mask = <0xf800 0 0 7>;
+                       interrupt-map =
+                               <0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */
+                               <0x4800 0 0 2 &pci_intc 1>,
+                               <0x4800 0 0 3 &pci_intc 2>,
+                               <0x4800 0 0 4 &pci_intc 3>,
+                               <0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */
+                               <0x5000 0 0 2 &pci_intc 2>,
+                               <0x5000 0 0 3 &pci_intc 3>,
+                               <0x5000 0 0 4 &pci_intc 0>,
+                               <0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */
+                               <0x5800 0 0 2 &pci_intc 3>,
+                               <0x5800 0 0 3 &pci_intc 0>,
+                               <0x5800 0 0 4 &pci_intc 1>,
+                               <0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */
+                               <0x6000 0 0 2 &pci_intc 0>,
+                               <0x6000 0 0 3 &pci_intc 1>,
+                               <0x6000 0 0 4 &pci_intc 2>;
+               };
+
+               ata@63000000 {
+                       status = "okay";
+               };
+       };
+};
index 55f6a4f1f8016754274af65ed6895b7e8ab47a3f..b4fc58c8cf8d7b855a5a686beb2dfedede1add50 100644 (file)
@@ -33,6 +33,7 @@
                        wakeup-source;
                        linux,code = <KEY_SETUP>;
                        label = "Backup button";
+                       /* Conflict with TVC */
                        gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
                };
                button@31 {
@@ -40,6 +41,7 @@
                        wakeup-source;
                        linux,code = <KEY_RESTART>;
                        label = "Softreset button";
+                       /* Conflict with TVC */
                        gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
                };
        };
                compatible = "gpio-leds";
                led@28 {
                        label = "nas4220b:orange:hdd";
+                       /* Conflict with TVC */
                        gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
                led@30 {
                        label = "nas4220b:green:os";
+                       /* Conflict with TVC */
                        gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                        linux,default-trigger = "heartbeat";
                        };
                };
 
+               syscon: syscon@40000000 {
+                       pinctrl {
+                               /*
+                                * gpio1dgrp cover line 28-31 otherwise used
+                                * by TVC.
+                                */
+                               gpio1_default_pins: pinctrl-gpio1 {
+                                       mux {
+                                               function = "gpio1";
+                                               groups = "gpio1dgrp";
+                                       };
+                               };
+                       };
+               };
+
                sata: sata@46000000 {
                        cortina,gemini-ata-muxmode = <0>;
                        cortina,gemini-enable-sata-bridge;
                        status = "okay";
                };
 
+               gpio1: gpio@4e000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio1_default_pins>;
+               };
+
                ata@63000000 {
                        status = "okay";
                };
index 7b920bfbda32cfcf01b63e022c8787cff60cdcba..3613b264f45faff79459cb5d9daf76f158406e08 100644 (file)
@@ -33,6 +33,7 @@
                        wakeup-source;
                        linux,code = <KEY_SETUP>;
                        label = "Reset to defaults";
+                       /* Conflict with TVC */
                        gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
                };
        };
                led@7 {
                        /* FIXME: add the LED color */
                        label = "rut1xx::gsm";
+                       /* Conflict with ICE */
                        gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
                led@31 {
                        /* FIXME: add the LED color */
                        label = "rut1xx::power";
+                       /* Conflict with NAND CE0 */
                        gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                        linux,default-trigger = "heartbeat";
                        reg = <0x30000000 0x00800000>;
                        /* TODO: add flash partitions here */
                };
+
+               syscon: syscon@40000000 {
+                       pinctrl {
+                               /*
+                                * gpio0bgrp cover line 7 used by GSM LED
+                                * gpio0fgrp cover line 17 used by power LED
+                                */
+                               gpio0_default_pins: pinctrl-gpio0 {
+                                       mux {
+                                               function = "gpio0";
+                                               groups = "gpio0bgrp",
+                                               "gpio0fgrp";
+                                       };
+                               };
+                               /*
+                                * gpio1dgrp cover line 28-31 otherwise used
+                                * by TVC.
+                                */
+                               gpio1_default_pins: pinctrl-gpio1 {
+                                       mux {
+                                               function = "gpio1";
+                                               groups = "gpio1dgrp";
+                                       };
+                               };
+                       };
+               };
+
+               gpio0: gpio@4d000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio0_default_pins>;
+               };
+
+               gpio1: gpio@4e000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio1_default_pins>;
+               };
        };
 };
index 4d200f0bcd451ac780b23ec1f181c056befcc057..7cfa9caf47d4e642031a2315bd41f743ace7a75b 100644 (file)
@@ -33,6 +33,7 @@
                        wakeup-source;
                        linux,code = <KEY_SETUP>;
                        label = "factory reset";
+                       /* Conflict with NAND flash */
                        gpios = <&gpio0 18 GPIO_ACTIVE_LOW>;
                };
        };
                compatible = "gpio-leds";
                led@20 {
                        label = "sq201:green:info";
+                       /* Conflict with parallel flash */
                        gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                        linux,default-trigger = "heartbeat";
                };
                led@31 {
                        label = "sq201:green:usb";
+                       /* Conflict with parallel and NAND flash */
                        gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                        linux,default-trigger = "usb-host";
 
        soc {
                flash@30000000 {
-                       status = "okay";
+                       /*
+                        * Flash access can be enabled, with the side effect
+                        * of disabling access to GPIO LED on GPIO0[20] which
+                        * reuse one of the parallel flash chip select lines.
+                        * Also the default firmware on the machine has the
+                        * problem that since it uses the flash, the two LEDS
+                        * on the right become numb.
+                        */
+                       /* status = "okay"; */
                        /* 16MB of flash */
                        reg = <0x30000000 0x01000000>;
 
                        };
                };
 
+               syscon: syscon@40000000 {
+                       pinctrl {
+                               /*
+                                * gpio0fgrp cover line 18 used by reset button
+                                * gpio0ggrp cover line 20 used by info LED
+                                * gpio0kgrp cover line 31 used by USB LED
+                                */
+                               gpio0_default_pins: pinctrl-gpio0 {
+                                       mux {
+                                               function = "gpio0";
+                                               groups = "gpio0fgrp",
+                                               "gpio0ggrp",
+                                               "gpio0kgrp";
+                                       };
+                               };
+                       };
+               };
+
                sata: sata@46000000 {
                        cortina,gemini-ata-muxmode = <0>;
                        cortina,gemini-enable-sata-bridge;
                        status = "okay";
                };
 
+               gpio0: gpio@4d000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio0_default_pins>;
+               };
+
                pci@50000000 {
                        status = "okay";
                        interrupt-map-mask = <0xf800 0 0 7>;
index 63b756e3bf5a2fcdd42eb8a3fe6760e36878be85..38a49e7504785077bd809a078d082fd51a2f4dbf 100644 (file)
@@ -33,6 +33,7 @@
                        wakeup-source;
                        linux,code = <KEY_SETUP>;
                        label = "reset";
+                       /* Conflict with ICE */
                        gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
                };
        };
 
                led@1 {
                        label = "wbd111:red:L3";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
                led@2 {
                        label = "wbd111:green:L4";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
                led@3 {
                        label = "wbd111:red:L4";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
                led@5 {
                        label = "wbd111:green:L3";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                        linux,default-trigger = "heartbeat";
                                read-only;
                        };
                };
+
+               syscon: syscon@40000000 {
+                       pinctrl {
+                               /*
+                                * gpio0agrp cover line 0-4
+                                * gpio0bgrp cover line 5
+                                */
+                               gpio0_default_pins: pinctrl-gpio0 {
+                                       mux {
+                                               function = "gpio0";
+                                               groups = "gpio0agrp",
+                                               "gpio0bgrp";
+                                       };
+                               };
+                       };
+               };
+
+               gpio0: gpio@4d000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio0_default_pins>;
+               };
        };
 };
index 9747f5a47807b4679f7cdd8476c9da58c5b78b9c..f77e34e0df0bcdead3b341dd1e155deaee10b37b 100644 (file)
@@ -33,6 +33,7 @@
                        wakeup-source;
                        linux,code = <KEY_SETUP>;
                        label = "reset";
+                       /* Conflict with ICE */
                        gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
                };
        };
 
                led@1 {
                        label = "wbd111:red:L3";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
                led@2 {
                        label = "wbd111:green:L4";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
                led@3 {
                        label = "wbd111:red:L4";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
                led@5 {
                        label = "wbd111:green:L3";
+                       /* Conflict with TVC and extended parallel flash */
                        gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                        linux,default-trigger = "heartbeat";
                                read-only;
                        };
                };
+
+               syscon: syscon@40000000 {
+                       pinctrl {
+                               /*
+                                * gpio0agrp cover line 0-4
+                                * gpio0bgrp cover line 5
+                                */
+                               gpio0_default_pins: pinctrl-gpio0 {
+                                       mux {
+                                               function = "gpio0";
+                                               groups = "gpio0agrp",
+                                               "gpio0bgrp";
+                                       };
+                               };
+                       };
+               };
+
+               gpio0: gpio@4d000000 {
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpio0_default_pins>;
+               };
        };
 };
index 141d8d3a1d07bfab1c0df4e5f559ac2075828793..c68e8d430234c3824198d46b336f0d689cf38611 100644 (file)
@@ -5,6 +5,8 @@
 /include/ "skeleton.dtsi"
 
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/clock/cortina,gemini-clock.h>
+#include <dt-bindings/reset/cortina,gemini-reset.h>
 #include <dt-bindings/gpio/gpio.h>
 
 / {
@@ -18,6 +20,8 @@
                flash@30000000 {
                        compatible = "cortina,gemini-flash", "cfi-flash";
                        syscon = <&syscon>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pflash_default_pins>;
                        bank-width = <2>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                                /* RESET_GLOBAL | RESET_CPU1 */
                                mask = <0xC0000000>;
                        };
+
+                       pinctrl {
+                               compatible = "cortina,gemini-pinctrl";
+                               regmap = <&syscon>;
+                               /* Hog the DRAM pins */
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&dram_default_pins>, <&system_default_pins>,
+                                           <&vcontrol_default_pins>;
+
+                               dram_default_pins: pinctrl-dram {
+                                       mux {
+                                               function = "dram";
+                                               groups = "dramgrp";
+                                       };
+                               };
+                               rtc_default_pins: pinctrl-rtc {
+                                       mux {
+                                               function = "rtc";
+                                               groups = "rtcgrp";
+                                       };
+                               };
+                               power_default_pins: pinctrl-power {
+                                       mux {
+                                               function = "power";
+                                               groups = "powergrp";
+                                       };
+                               };
+                               cir_default_pins: pinctrl-cir {
+                                       mux {
+                                               function = "cir";
+                                               groups = "cirgrp";
+                                       };
+                               };
+                               system_default_pins: pinctrl-system {
+                                       mux {
+                                               function = "system";
+                                               groups = "systemgrp";
+                                       };
+                               };
+                               vcontrol_default_pins: pinctrl-vcontrol {
+                                       mux {
+                                               function = "vcontrol";
+                                               groups = "vcontrolgrp";
+                                       };
+                               };
+                               ice_default_pins: pinctrl-ice {
+                                       mux {
+                                               function = "ice";
+                                               groups = "icegrp";
+                                       };
+                               };
+                               uart_default_pins: pinctrl-uart {
+                                       mux {
+                                               function = "uart";
+                                               groups = "uartrxtxgrp";
+                                       };
+                               };
+                               pflash_default_pins: pinctrl-pflash {
+                                       mux {
+                                               function = "pflash";
+                                               groups = "pflashgrp";
+                                       };
+                               };
+                               usb_default_pins: pinctrl-usb {
+                                       mux {
+                                               function = "usb";
+                                               groups = "usbgrp";
+                                       };
+                               };
+                               gmii_default_pins: pinctrl-gmii {
+                                       mux {
+                                               function = "gmii";
+                                               groups = "gmiigrp";
+                                       };
+                               };
+                               pci_default_pins: pinctrl-pci {
+                                       mux {
+                                               function = "pci";
+                                               groups = "pcigrp";
+                                       };
+                               };
+                               sata_default_pins: pinctrl-sata {
+                                       mux {
+                                               function = "sata";
+                                               groups = "satagrp";
+                                       };
+                               };
+                               /* Activate both groups of pins for this state */
+                               sata_and_ide_pins: pinctrl-sata-ide {
+                                       mux0 {
+                                               function = "sata";
+                                               groups = "satagrp";
+                                       };
+                                       mux1 {
+                                               function = "ide";
+                                               groups = "idegrp";
+                                       };
+                               };
+                       };
                };
 
                watchdog@41000000 {
                        compatible = "cortina,gemini-watchdog";
                        reg = <0x41000000 0x1000>;
                        interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&syscon 23>;
-                       clocks = <&syscon 2>;
+                       resets = <&syscon GEMINI_RESET_WDOG>;
+                       clocks = <&syscon GEMINI_CLK_APB>;
                };
 
                uart0: serial@42000000 {
                        compatible = "ns16550a";
                        reg = <0x42000000 0x100>;
-                       resets = <&syscon 18>;
-                       clocks = <&syscon 6>;
+                       resets = <&syscon GEMINI_RESET_UART>;
+                       clocks = <&syscon GEMINI_CLK_UART>;
                        interrupts = <18 IRQ_TYPE_LEVEL_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&uart_default_pins>;
                        reg-shift = <2>;
                };
 
                        interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
                                     <15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
                                     <16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
-                       resets = <&syscon 17>;
+                       resets = <&syscon GEMINI_RESET_TIMER>;
                        /* APB clock or RTC clock */
-                       clocks = <&syscon 2>, <&syscon 0>;
+                       clocks = <&syscon GEMINI_CLK_APB>, <&syscon GEMINI_CLK_RTC>;
                        clock-names = "PCLK", "EXTCLK";
                        syscon = <&syscon>;
                };
                        compatible = "cortina,gemini-rtc";
                        reg = <0x45000000 0x100>;
                        interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&syscon 16>;
-                       clocks = <&syscon 2>, <&syscon 0>;
+                       resets = <&syscon GEMINI_RESET_RTC>;
+                       clocks = <&syscon GEMINI_CLK_APB>, <&syscon GEMINI_CLK_RTC>;
                        clock-names = "PCLK", "EXTCLK";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&rtc_default_pins>;
                };
 
                sata: sata@46000000 {
                        compatible = "cortina,gemini-sata-bridge";
                        reg = <0x46000000 0x100>;
-                       resets = <&syscon 26>,
-                                <&syscon 27>;
+                       resets = <&syscon GEMINI_RESET_SATA0>,
+                                <&syscon GEMINI_RESET_SATA1>;
                        reset-names = "sata0", "sata1";
-                       clocks = <&syscon 10>,
-                                <&syscon 11>;
+                       clocks = <&syscon GEMINI_CLK_GATE_SATA0>,
+                                <&syscon GEMINI_CLK_GATE_SATA1>;
                        clock-names = "SATA0_PCLK", "SATA1_PCLK";
+                       /*
+                        * This defines the special "ide" state that needs
+                        * to be explicitly enabled to enable the IDE pins,
+                        * as these pins are normally used for other things.
+                        */
+                       pinctrl-names = "default", "ide";
+                       pinctrl-0 = <&sata_default_pins>;
+                       pinctrl-1 = <&sata_and_ide_pins>;
                        syscon = <&syscon>;
                        status = "disabled";
                };
                intcon: interrupt-controller@48000000 {
                        compatible = "faraday,ftintc010";
                        reg = <0x48000000 0x1000>;
-                       resets = <&syscon 14>;
+                       resets = <&syscon GEMINI_RESET_INTCON0>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
                        compatible = "cortina,gemini-power-controller";
                        reg = <0x4b000000 0x100>;
                        interrupts = <26 IRQ_TYPE_EDGE_RISING>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&power_default_pins>;
                };
 
                gpio0: gpio@4d000000 {
                        compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
                        reg = <0x4d000000 0x100>;
                        interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&syscon 20>;
-                       clocks = <&syscon 2>;
+                       resets = <&syscon GEMINI_RESET_GPIO0>;
+                       clocks = <&syscon GEMINI_CLK_APB>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
                        reg = <0x4e000000 0x100>;
                        interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&syscon 21>;
-                       clocks = <&syscon 2>;
+                       resets = <&syscon GEMINI_RESET_GPIO1>;
+                       clocks = <&syscon GEMINI_CLK_APB>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        compatible = "cortina,gemini-gpio", "faraday,ftgpio010";
                        reg = <0x4f000000 0x100>;
                        interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&syscon 22>;
-                       clocks = <&syscon 2>;
+                       resets = <&syscon GEMINI_RESET_GPIO2>;
+                       clocks = <&syscon GEMINI_CLK_APB>;
                        gpio-controller;
                        #gpio-cells = <2>;
                        interrupt-controller;
                         * to configure the host bridge.
                         */
                        reg = <0x50000000 0x100>;
-                       resets = <&syscon 7>;
-                       clocks = <&syscon 15>, <&syscon 4>;
+                       resets = <&syscon GEMINI_RESET_PCI>;
+                       clocks = <&syscon GEMINI_CLK_GATE_PCI>, <&syscon GEMINI_CLK_PCI>;
                        clock-names = "PCLK", "PCICLK";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pci_default_pins>;
                        #address-cells = <3>;
                        #size-cells = <2>;
                        #interrupt-cells = <1>;
                        compatible = "cortina,gemini-pata", "faraday,ftide010";
                        reg = <0x63000000 0x1000>;
                        interrupts = <4 IRQ_TYPE_EDGE_RISING>;
-                       resets = <&syscon 2>;
-                       clocks = <&syscon 14>;
+                       resets = <&syscon GEMINI_RESET_IDE>;
+                       clocks = <&syscon GEMINI_CLK_GATE_IDE>;
                        clock-names = "PCLK";
                        sata = <&sata>;
                        status = "disabled";
                        compatible = "cortina,gemini-pata", "faraday,ftide010";
                        reg = <0x63400000 0x1000>;
                        interrupts = <5 IRQ_TYPE_EDGE_RISING>;
-                       resets = <&syscon 2>;
-                       clocks = <&syscon 14>;
+                       resets = <&syscon GEMINI_RESET_IDE>;
+                       clocks = <&syscon GEMINI_CLK_GATE_IDE>;
                        clock-names = "PCLK";
                        sata = <&sata>;
                        status = "disabled";
                        arm,primecell-periphid = <0x0003b080>;
                        reg = <0x67000000 0x1000>;
                        interrupts = <9 IRQ_TYPE_EDGE_RISING>;
-                       resets = <&syscon 10>;
-                       clocks = <&syscon 1>;
+                       resets = <&syscon GEMINI_RESET_DMAC>;
+                       clocks = <&syscon GEMINI_CLK_AHB>;
                        clock-names = "apb_pclk";
                        /* Bus interface AHB1 (AHB0) is totally tilted */
                        lli-bus-interface-ahb2;
index 0ade3619f3c3f1332b8d89c8d06ed4a67f29025b..09ce8b81fafa477b7d04a0e382dee57125088b20 100644 (file)
                                interrupt-names = "scm", "smn";
                        };
 
+                       rngb: rngb@53fb0000 {
+                               compatible = "fsl,imx25-rngb";
+                               reg = <0x53fb0000 0x4000>;
+                               clocks = <&clks 109>;
+                               interrupts = <22>;
+                       };
+
                        esdhc1: esdhc@53fb4000 {
                                compatible = "fsl,imx25-esdhc";
                                reg = <0x53fb4000 0x4000>;
diff --git a/arch/arm/boot/dts/imx53-cx9020.dts b/arch/arm/boot/dts/imx53-cx9020.dts
new file mode 100644 (file)
index 0000000..4f54fd4
--- /dev/null
@@ -0,0 +1,297 @@
+/*
+ * Copyright 2017 Beckhoff Automation GmbH & Co. KG
+ * based on imx53-qsb.dts
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+#include "imx53.dtsi"
+
+/ {
+       model = "Beckhoff CX9020 Embedded PC";
+       compatible = "bhf,cx9020", "fsl,imx53";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       memory {
+               reg = <0x70000000 0x20000000>,
+                     <0xb0000000 0x20000000>;
+       };
+
+       display-0 {
+               #address-cells =<1>;
+               #size-cells = <0>;
+               compatible = "fsl,imx-parallel-display";
+               interface-pix-fmt = "rgb24";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu_disp0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       display0_in: endpoint {
+                               remote-endpoint = <&ipu_di0_disp0>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       display0_out: endpoint {
+                               remote-endpoint = <&tfp410_in>;
+                       };
+               };
+       };
+
+       dvi-connector {
+               compatible = "dvi-connector";
+               ddc-i2c-bus = <&i2c2>;
+               digital;
+
+               port {
+                       dvi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+
+       dvi-converter {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "ti,tfp410";
+
+               port@0 {
+                       reg = <0>;
+
+                       tfp410_in: endpoint {
+                               remote-endpoint = <&display0_out>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       tfp410_out: endpoint {
+                               remote-endpoint = <&dvi_connector_in>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               pwr-r {
+                       gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               pwr-g {
+                       gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+
+               pwr-b {
+                       gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               sd1-b {
+                       linux,default-trigger = "mmc0";
+                       gpios = <&gpio3 20 GPIO_ACTIVE_HIGH>;
+               };
+
+               sd2-b {
+                       linux,default-trigger = "mmc1";
+                       gpios = <&gpio3 17 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       regulator-3p2v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P2V";
+               regulator-min-microvolt = <3200000>;
+               regulator-max-microvolt = <3200000>;
+               regulator-always-on;
+       };
+
+       reg_usb_vbus: regulator-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&esdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc1>;
+       cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&esdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_esdhc2>;
+       cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec>;
+       phy-mode = "rmii";
+       phy-reset-gpios = <&gpio7 6 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&ipu_di0_disp0 {
+       remote-endpoint = <&display0_in>;
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       fsl,dte-mode;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_vbus>;
+       phy_type = "utmi";
+       status = "okay";
+};
+
+&usbotg {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&vpu {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX53_PAD_GPIO_0__CCM_CLKO               0x1c4
+                       MX53_PAD_GPIO_16__I2C3_SDA              0x1c4
+                       MX53_PAD_EIM_D22__GPIO3_22              0x1c4
+                       MX53_PAD_EIM_D23__GPIO3_23              0x1e4
+                       MX53_PAD_EIM_D24__GPIO3_24              0x1e4
+               >;
+       };
+
+       pinctrl_esdhc1: esdhc1grp {
+               fsl,pins = <
+                       MX53_PAD_SD1_DATA0__ESDHC1_DAT0         0x1d5
+                       MX53_PAD_SD1_DATA1__ESDHC1_DAT1         0x1d5
+                       MX53_PAD_SD1_DATA2__ESDHC1_DAT2         0x1d5
+                       MX53_PAD_SD1_DATA3__ESDHC1_DAT3         0x1d5
+                       MX53_PAD_SD1_CMD__ESDHC1_CMD            0x1d5
+                       MX53_PAD_SD1_CLK__ESDHC1_CLK            0x1d5
+                       MX53_PAD_GPIO_1__ESDHC1_CD              0x1c4
+                       MX53_PAD_EIM_D17__GPIO3_17              0x1e4
+                       MX53_PAD_GPIO_3__GPIO1_3                0x1c4
+               >;
+       };
+
+       pinctrl_esdhc2: esdhc2grp {
+               fsl,pins = <
+                       MX53_PAD_SD2_DATA0__ESDHC2_DAT0         0x1d5
+                       MX53_PAD_SD2_DATA1__ESDHC2_DAT1         0x1d5
+                       MX53_PAD_SD2_DATA2__ESDHC2_DAT2         0x1d5
+                       MX53_PAD_SD2_DATA3__ESDHC2_DAT3         0x1d5
+                       MX53_PAD_SD2_CMD__ESDHC2_CMD            0x1d5
+                       MX53_PAD_SD2_CLK__ESDHC2_CLK            0x1d5
+                       MX53_PAD_GPIO_4__ESDHC2_CD              0x1e4
+                       MX53_PAD_EIM_D20__GPIO3_20              0x1e4
+                       MX53_PAD_GPIO_8__GPIO1_8                0x1c4
+               >;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <
+                       MX53_PAD_FEC_MDC__FEC_MDC               0x4
+                       MX53_PAD_FEC_MDIO__FEC_MDIO             0x1fc
+                       MX53_PAD_FEC_REF_CLK__FEC_TX_CLK        0x180
+                       MX53_PAD_FEC_RX_ER__FEC_RX_ER           0x180
+                       MX53_PAD_FEC_CRS_DV__FEC_RX_DV          0x180
+                       MX53_PAD_FEC_RXD1__FEC_RDATA_1          0x180
+                       MX53_PAD_FEC_RXD0__FEC_RDATA_0          0x180
+                       MX53_PAD_FEC_TX_EN__FEC_TX_EN           0x4
+                       MX53_PAD_FEC_TXD1__FEC_TDATA_1          0x4
+                       MX53_PAD_FEC_TXD0__FEC_TDATA_0          0x4
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX53_PAD_KEY_ROW3__I2C2_SDA             0xc0000000
+                       MX53_PAD_KEY_COL3__I2C2_SCL             0xc0000000
+               >;
+       };
+
+       pinctrl_ipu_disp0: ipudisp0grp {
+               fsl,pins = <
+                       MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK 0x5
+                       MX53_PAD_DI0_PIN15__IPU_DI0_PIN15       0x5
+                       MX53_PAD_DI0_PIN2__IPU_DI0_PIN2         0x5
+                       MX53_PAD_DI0_PIN3__IPU_DI0_PIN3         0x5
+                       MX53_PAD_DI0_PIN4__IPU_DI0_PIN4         0x5
+                       MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0    0x5
+                       MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1    0x5
+                       MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2    0x5
+                       MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3    0x5
+                       MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4    0x5
+                       MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5    0x5
+                       MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6    0x5
+                       MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7    0x5
+                       MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8    0x5
+                       MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9    0x5
+                       MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10  0x5
+                       MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11  0x5
+                       MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12  0x5
+                       MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13  0x5
+                       MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14  0x5
+                       MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15  0x5
+                       MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16  0x5
+                       MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17  0x5
+                       MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18  0x5
+                       MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19  0x5
+                       MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20  0x5
+                       MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21  0x5
+                       MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22  0x5
+                       MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23  0x5
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX53_PAD_EIM_D26__UART2_RXD_MUX 0x1e4
+                       MX53_PAD_EIM_D27__UART2_TXD_MUX 0x1e4
+                       MX53_PAD_EIM_D28__UART2_RTS 0x1e4
+                       MX53_PAD_EIM_D29__UART2_CTS 0x1e4
+               >;
+       };
+};
index aec406bc65eb70ce2a0980a9779d7e6e6913e26f..59f9c29e3fe2ff37a626a2bdf51bdbff44d844cf 100644 (file)
 #define MX53_PAD_EIM_D25__UART1_DSR                            0x140 0x488 0x000 0x7 0x0
 #define MX53_PAD_EIM_D26__EMI_WEIM_D_26                                0x144 0x48c 0x000 0x0 0x0
 #define MX53_PAD_EIM_D26__GPIO3_26                             0x144 0x48c 0x000 0x1 0x0
+#define MX53_PAD_EIM_D26__UART2_RXD_MUX                                0x144 0x48c 0x880 0x2 0x0
 #define MX53_PAD_EIM_D26__UART2_TXD_MUX                                0x144 0x48c 0x000 0x2 0x0
 #define MX53_PAD_EIM_D26__FIRI_RXD                             0x144 0x48c 0x80c 0x3 0x0
 #define MX53_PAD_EIM_D26__IPU_CSI0_D_1                         0x144 0x48c 0x000 0x4 0x0
 #define MX53_PAD_EIM_D27__EMI_WEIM_D_27                                0x148 0x490 0x000 0x0 0x0
 #define MX53_PAD_EIM_D27__GPIO3_27                             0x148 0x490 0x000 0x1 0x0
 #define MX53_PAD_EIM_D27__UART2_RXD_MUX                                0x148 0x490 0x880 0x2 0x1
+#define MX53_PAD_EIM_D27__UART2_TXD_MUX                                0x148 0x490 0x000 0x2 0x0
 #define MX53_PAD_EIM_D27__FIRI_TXD                             0x148 0x490 0x000 0x3 0x0
 #define MX53_PAD_EIM_D27__IPU_CSI0_D_0                         0x148 0x490 0x000 0x4 0x0
 #define MX53_PAD_EIM_D27__IPU_DI1_PIN13                                0x148 0x490 0x000 0x5 0x0
 #define MX53_PAD_EIM_D28__EMI_WEIM_D_28                                0x14c 0x494 0x000 0x0 0x0
 #define MX53_PAD_EIM_D28__GPIO3_28                             0x14c 0x494 0x000 0x1 0x0
 #define MX53_PAD_EIM_D28__UART2_CTS                            0x14c 0x494 0x000 0x2 0x0
+#define MX53_PAD_EIM_D28__UART2_RTS                            0x14c 0x494 0x87c 0x2 0x0
 #define MX53_PAD_EIM_D28__IPU_DISPB0_SER_DIO                   0x14c 0x494 0x82c 0x3 0x1
 #define MX53_PAD_EIM_D28__CSPI_MOSI                            0x14c 0x494 0x788 0x4 0x1
 #define MX53_PAD_EIM_D28__I2C1_SDA                             0x14c 0x494 0x818 0x5 0x1
 #define MX53_PAD_EIM_D28__IPU_DI0_PIN13                                0x14c 0x494 0x000 0x7 0x0
 #define MX53_PAD_EIM_D29__EMI_WEIM_D_29                                0x150 0x498 0x000 0x0 0x0
 #define MX53_PAD_EIM_D29__GPIO3_29                             0x150 0x498 0x000 0x1 0x0
+#define MX53_PAD_EIM_D29__UART2_CTS                            0x150 0x498 0x000 0x2 0x0
 #define MX53_PAD_EIM_D29__UART2_RTS                            0x150 0x498 0x87c 0x2 0x1
 #define MX53_PAD_EIM_D29__IPU_DISPB0_SER_RS                    0x150 0x498 0x000 0x3 0x0
 #define MX53_PAD_EIM_D29__CSPI_SS0                             0x150 0x498 0x78c 0x4 0x2
index 2e516f4985e4cd2e470f8ddb0195a34821a1d09d..8bf0d89cdd355cf0c9484335476e08fb0fca1b5e 100644 (file)
                                clock-names = "ipg", "per";
                        };
 
+                       srtc: srtc@53fa4000 {
+                               compatible = "fsl,imx53-rtc", "fsl,imx25-rtc";
+                               reg = <0x53fa4000 0x4000>;
+                               interrupts = <24>;
+                               interrupt-parent = <&tzic>;
+                               clocks = <&clks IMX5_CLK_SRTC_GATE>;
+                               clock-names = "ipg";
+                       };
+
                        iomuxc: iomuxc@53fa8000 {
                                compatible = "fsl,imx53-iomuxc";
                                reg = <0x53fa8000 0x4000>;
index a2e0b73fdd4a78440aac51149d9b251fc04707af..5f9f8948100deb2440ccf487d022d2ec75f1b736 100644 (file)
        model = "Gateworks Ventana i.MX6 DualLite/Solo GW52XX";
        compatible = "gw,imx6dl-gw52xx", "gw,ventana", "fsl,imx6dl";
 };
+
+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu1_csi1_mux: endpoint {
+                               remote-endpoint = <&ipu1_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi1_from_ipu1_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu1_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu1_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu1_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi1>;
+};
+
+&iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x0001b0b0
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x4001b0b0
+               >;
+       };
+
+       pinctrl_ipu1_csi1: ipu1_csi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_EB2__IPU1_CSI1_DATA19    0x1b0b0
+                       MX6QDL_PAD_EIM_D16__IPU1_CSI1_DATA18    0x1b0b0
+                       MX6QDL_PAD_EIM_D18__IPU1_CSI1_DATA17    0x1b0b0
+                       MX6QDL_PAD_EIM_D19__IPU1_CSI1_DATA16    0x1b0b0
+                       MX6QDL_PAD_EIM_D20__IPU1_CSI1_DATA15    0x1b0b0
+                       MX6QDL_PAD_EIM_D26__IPU1_CSI1_DATA14    0x1b0b0
+                       MX6QDL_PAD_EIM_D27__IPU1_CSI1_DATA13    0x1b0b0
+                       MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12    0x1b0b0
+                       MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_A16__IPU1_CSI1_PIXCLK    0x1b0b0
+               >;
+       };
+};
index 6844b708d2f89ec09b6da02f0965fad905ed0b3d..9bfc620d37bd0601d925b0dc7faa9e9d0aa3f032 100644 (file)
        model = "Gateworks Ventana i.MX6 DualLite/Solo GW53XX";
        compatible = "gw,imx6dl-gw53xx", "gw,ventana", "fsl,imx6dl";
 };
+
+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu1_csi1_mux: endpoint {
+                               remote-endpoint = <&ipu1_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi1_from_ipu1_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu1_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu1_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu1_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi1>;
+};
+
+&iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x0001b0b0
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x4001b0b0
+               >;
+       };
+
+       pinctrl_ipu1_csi1: ipu1_csi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_EB2__IPU1_CSI1_DATA19    0x1b0b0
+                       MX6QDL_PAD_EIM_D16__IPU1_CSI1_DATA18    0x1b0b0
+                       MX6QDL_PAD_EIM_D18__IPU1_CSI1_DATA17    0x1b0b0
+                       MX6QDL_PAD_EIM_D19__IPU1_CSI1_DATA16    0x1b0b0
+                       MX6QDL_PAD_EIM_D20__IPU1_CSI1_DATA15    0x1b0b0
+                       MX6QDL_PAD_EIM_D26__IPU1_CSI1_DATA14    0x1b0b0
+                       MX6QDL_PAD_EIM_D27__IPU1_CSI1_DATA13    0x1b0b0
+                       MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12    0x1b0b0
+                       MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_A16__IPU1_CSI1_PIXCLK    0x1b0b0
+               >;
+       };
+};
index be915412f852ea5af34121808ecc22b04c592b4e..b909bdf9a2efcc2c1e8ff89a0a57fc79638e1f14 100644 (file)
        model = "Gateworks Ventana i.MX6 DualLite/Solo GW54XX";
        compatible = "gw,imx6dl-gw54xx", "gw,ventana", "fsl,imx6dl";
 };
+
+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu1_csi1_mux: endpoint {
+                               remote-endpoint = <&ipu1_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi1_from_ipu1_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu1_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu1_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu1_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi1>;
+};
+
+&iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x0001b0b0
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x4001b0b0
+               >;
+       };
+
+       pinctrl_ipu1_csi1: ipu1_csi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_EB2__IPU1_CSI1_DATA19    0x1b0b0
+                       MX6QDL_PAD_EIM_D16__IPU1_CSI1_DATA18    0x1b0b0
+                       MX6QDL_PAD_EIM_D18__IPU1_CSI1_DATA17    0x1b0b0
+                       MX6QDL_PAD_EIM_D19__IPU1_CSI1_DATA16    0x1b0b0
+                       MX6QDL_PAD_EIM_D20__IPU1_CSI1_DATA15    0x1b0b0
+                       MX6QDL_PAD_EIM_D26__IPU1_CSI1_DATA14    0x1b0b0
+                       MX6QDL_PAD_EIM_D27__IPU1_CSI1_DATA13    0x1b0b0
+                       MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA12    0x1b0b0
+                       MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_A16__IPU1_CSI1_PIXCLK    0x1b0b0
+               >;
+       };
+};
index 29b45f2e64e0ad1073a9289588601cbcfb358719..275c6c05219dbdc54ba4c994459a45506608e65b 100644 (file)
        status = "okay";
 };
 
+&gpio1 {
+       gpio-line-names =
+               "", "", "SD2_WP", "", "SD2_CD", "I2C3_SCL",
+                       "I2C3_SDA", "I2C4_SCL",
+               "I2C4_SDA", "", "", "", "", "", "", "",
+               "", "PWM3", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "USB_OTG_VBUS", "",
+               "UART3_TXD", "UART3_RXD", "", "", "EIM_D28", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               "", "", "", "", "", "", "UART4_TXD", "UART4_RXD",
+               "UART5_TXD", "UART5_RXD", "", "", "", "", "", "",
+               "GPIO4_16", "GPIO4_17", "GPIO4_18", "GPIO4_19", "",
+                       "CSPI3_CLK", "CSPI3_MOSI", "CSPI3_MISO",
+               "CSPI3_CS0", "CSPI3_CS1", "GPIO4_26", "GPIO4_27",
+                       "CSPI3_RDY", "PWM1", "PWM2", "GPIO4_31";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "", "", "EIM_A25", "", "", "GPIO5_05", "GPIO5_06",
+                       "GPIO5_07",
+               "GPIO5_08", "CSPI2_CS1", "CSPI2_MOSI", "CSPI2_MISO",
+                       "CSPI2_CS0", "CSPI2_CLK", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio7 {
+       gpio-line-names =
+               "SD3_CD", "SD3_WP", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
 &hdmi {
        ddc-i2c-bus = <&i2c2>;
        status = "okay";
diff --git a/arch/arm/boot/dts/imx6q-apalis-eval.dts b/arch/arm/boot/dts/imx6q-apalis-eval.dts
new file mode 100644 (file)
index 0000000..4bbfe3d
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ * Copyright 2014-2017 Toradex AG
+ * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx6q.dtsi"
+#include "imx6qdl-apalis.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX6Q/D Module on Apalis Evaluation Board";
+       compatible = "toradex,apalis_imx6q-eval", "toradex,apalis_imx6q",
+                    "fsl,imx6q";
+
+       aliases {
+               i2c0 = &i2c1;
+               i2c1 = &i2c3;
+               i2c2 = &i2c2;
+               rtc0 = &rtc_i2c;
+               rtc1 = &snvs_rtc;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               wakeup {
+                       label = "Wake-Up";
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WAKEUP>;
+                       debounce-interval = <10>;
+                       wakeup-source;
+               };
+       };
+
+       lcd_display: display@di0 {
+               compatible = "fsl,imx-parallel-display";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interface-pix-fmt = "rgb24";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu1_lcdif>;
+               status = "okay";
+
+               port@0 {
+                       reg = <0>;
+
+                       lcd_display_in: endpoint {
+                               remote-endpoint = <&ipu1_di1_disp1>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       lcd_display_out: endpoint {
+                               remote-endpoint = <&lcd_panel_in>;
+                       };
+               };
+       };
+
+       panel: panel {
+               /*
+                * edt,et057090dhu: EDT 5.7" LCD TFT
+                * edt,et070080dh6: EDT 7.0" LCD TFT
+                */
+               compatible = "edt,et057090dhu";
+               backlight = <&backlight>;
+
+               port {
+                       lcd_panel_in: endpoint {
+                               remote-endpoint = <&lcd_display_out>;
+                       };
+               };
+       };
+
+       reg_pcie_switch: regulator-pcie-switch {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie_switch";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpio = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <100000>;
+               enable-active-high;
+               status = "okay";
+       };
+};
+
+&backlight {
+       brightness-levels = <0 127 191 223 239 247 251 255>;
+       default-brightness-level = <1>;
+       status = "okay";
+};
+
+&can1 {
+       status = "okay";
+};
+
+&can2 {
+       status = "okay";
+};
+
+&hdmi {
+       status = "okay";
+};
+
+/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
+&i2c1 {
+       status = "okay";
+
+       pcie-switch@58 {
+               compatible = "plx,pex8605";
+               reg = <0x58>;
+       };
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc_i2c: rtc@68 {
+               compatible = "st,m41t00";
+               reg = <0x68>;
+       };
+};
+
+/*
+ * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
+ * board)
+ */
+&i2c3 {
+       status = "okay";
+};
+
+&ipu1_di1_disp1 {
+       remote-endpoint = <&lcd_display_in>;
+};
+
+&ldb {
+       status = "okay";
+};
+
+&pcie {
+       /* active-high meaning opposite of regular PERST# active-low polarity */
+       reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+       reset-gpio-active-high;
+       vpcie-supply = <&reg_pcie_switch>;
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&reg_usb_otg_vbus {
+       status = "okay";
+};
+
+&reg_usb_host_vbus {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&sound_spdif {
+       status = "okay";
+};
+
+&spdif {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_host_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       status = "okay";
+};
+
+/* MMC1 */
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_usdhc1_8bit &pinctrl_mmc_cd>;
+       cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+/* SD1 */
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2 &pinctrl_sd_cd>;
+       cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&iomuxc {
+       /*
+        * Mux the Apalis GPIOs
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_apalis_gpio1 &pinctrl_apalis_gpio2
+                    &pinctrl_apalis_gpio3 &pinctrl_apalis_gpio4
+                    &pinctrl_apalis_gpio5 &pinctrl_apalis_gpio6
+                    &pinctrl_apalis_gpio7 &pinctrl_apalis_gpio8
+                   >;
+};
diff --git a/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts b/arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts
new file mode 100644 (file)
index 0000000..a35c7a5
--- /dev/null
@@ -0,0 +1,291 @@
+/*
+ * Copyright 2014-2017 Toradex AG
+ * Copyright 2012 Freescale Semiconductor, Inc.
+ * Copyright 2011 Linaro Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx6q.dtsi"
+#include "imx6qdl-apalis.dtsi"
+
+/ {
+       model = "Toradex Apalis iMX6Q/D Module on Ixora Carrier Board V1.1";
+       compatible = "toradex,apalis_imx6q-ixora-v1.1",
+                    "toradex,apalis_imx6q-ixora", "toradex,apalis_imx6q",
+                    "fsl,imx6q";
+
+       aliases {
+               i2c0 = &i2c1;
+               i2c1 = &i2c3;
+               i2c2 = &i2c2;
+               rtc0 = &rtc_i2c;
+               rtc1 = &snvs_rtc;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               wakeup {
+                       label = "Wake-Up";
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_WAKEUP>;
+                       debounce-interval = <10>;
+                       wakeup-source;
+               };
+       };
+
+       lcd_display: display@di0 {
+               compatible = "fsl,imx-parallel-display";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               interface-pix-fmt = "rgb24";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu1_lcdif>;
+               status = "okay";
+
+               port@0 {
+                       reg = <0>;
+
+                       lcd_display_in: endpoint {
+                               remote-endpoint = <&ipu1_di1_disp1>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       lcd_display_out: endpoint {
+                               remote-endpoint = <&lcd_panel_in>;
+                       };
+               };
+       };
+
+       panel: panel {
+               /*
+                * edt,et057090dhu: EDT 5.7" LCD TFT
+                * edt,et070080dh6: EDT 7.0" LCD TFT
+                */
+               compatible = "edt,et057090dhu";
+               backlight = <&backlight>;
+
+               port {
+                       lcd_panel_in: endpoint {
+                               remote-endpoint = <&lcd_display_out>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_leds_ixora>;
+
+               led4-green {
+                       label = "LED_4_GREEN";
+                       gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+               };
+
+               led4-red {
+                       label = "LED_4_RED";
+                       gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+               };
+
+               led5-green {
+                       label = "LED_5_GREEN";
+                       gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               led5-red {
+                       label = "LED_5_RED";
+                       gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+               };
+       };
+};
+
+&backlight {
+       brightness-levels = <0 127 191 223 239 247 251 255>;
+       default-brightness-level = <1>;
+       status = "okay";
+};
+
+&can1 {
+       status = "okay";
+};
+
+&can2 {
+       status = "okay";
+};
+
+&hdmi {
+       status = "okay";
+};
+
+/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
+&i2c1 {
+       status = "okay";
+
+       /* M41T0M6 real time clock on carrier board */
+       rtc_i2c: rtc@68 {
+               compatible = "st,m41t00";
+               reg = <0x68>;
+       };
+};
+
+/*
+ * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
+ * board)
+ */
+&i2c3 {
+       status = "okay";
+};
+
+&ipu1_di1_disp1 {
+       remote-endpoint = <&lcd_display_in>;
+};
+
+&ldb {
+       status = "okay";
+};
+
+&pcie {
+       /* active-high meaning opposite of regular PERST# active-low polarity */
+       reset-gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>;
+       reset-gpio-active-high;
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&reg_usb_otg_vbus {
+       status = "okay";
+};
+
+&reg_usb_host_vbus {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&sound_spdif {
+       status = "okay";
+};
+
+&spdif {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_host_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       vbus-supply = <&reg_usb_otg_vbus>;
+       status = "okay";
+};
+
+/* MMC1 */
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_mmc_cd>;
+       cd-gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&iomuxc {
+       /*
+        * Mux the Apalis GPIOs
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_apalis_gpio1 &pinctrl_apalis_gpio2
+                    &pinctrl_apalis_gpio3 &pinctrl_apalis_gpio4
+                    &pinctrl_apalis_gpio5 &pinctrl_apalis_gpio6
+                    &pinctrl_apalis_gpio7 &pinctrl_apalis_gpio8
+                   >;
+
+       pinctrl_leds_ixora: ledsixoragrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x1b0b0
+                       MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x1b0b0
+                       MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
+                       MX6QDL_PAD_NANDF_D2__GPIO2_IO02 0x1b0b0
+               >;
+       };
+};
index 88cc7f51a4e902fb323a7c8956acaee442d2e425..60d33e99de76037cf546c8000ade4304c959c1c6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2016 Toradex AG
+ * Copyright 2014-2017 Toradex AG
  * Copyright 2012 Freescale Semiconductor, Inc.
  * Copyright 2011 Linaro Ltd.
  *
                     "fsl,imx6q";
 
        aliases {
-               i2c0 = &i2cddc;
-               i2c1 = &i2c1;
+               i2c0 = &i2c1;
+               i2c1 = &i2c3;
                i2c2 = &i2c2;
-               i2c3 = &i2c3;
-       };
-
-       aliases {
                rtc0 = &rtc_i2c;
                rtc1 = &snvs_rtc;
        };
 };
 
 &hdmi {
-       ddc-i2c-bus = <&i2cddc>;
-       status = "okay";
-};
-
-&i2cddc {
        status = "okay";
 };
 
-/* GEN1_I2C: I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
+/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
 &i2c1 {
        status = "okay";
 
        };
 };
 
+/*
+ * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
+ * board)
+ */
+&i2c3 {
+       status = "okay";
+};
+
 &ipu1_di1_disp1 {
        remote-endpoint = <&lcd_display_in>;
 };
 /* SD1 */
 &usdhc2 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_sd_cd>;
+       pinctrl-0 = <&pinctrl_usdhc2 &pinctrl_sd_cd>;
        cd-gpios = <&gpio6 14 GPIO_ACTIVE_LOW>;
        status = "okay";
 };
 
 &iomuxc {
-       /*
-        * Mux the Apalis GPIOs
-        * GPIO5, 6 used by optional fusion_F0710A kernel module
-        */
+       /* Mux the Apalis GPIOs */
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_apalis_gpio1 &pinctrl_apalis_gpio2
                     &pinctrl_apalis_gpio3 &pinctrl_apalis_gpio4
index 2c1e98e0cf7bf469593f0d28f9a830b73deb35bb..46bdc67227157cfd146986d0237abdf4c5cf2226 100644 (file)
@@ -57,7 +57,7 @@
        assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
                          <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
                          <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
-                         <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>;
+                         <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
        assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
                                 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
                                 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
index c90b26f00e24c8395b3ebd2d0d20f1a2481e0a33..1015e55ca8f7bd9eaa2edf68ed499f577fbac083 100644 (file)
 };
 
 &i2c1 {
+       pinctrl-names = "default", "gpio";
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       sda-gpios = <&gpio5 26 GPIO_ACTIVE_HIGH>;
+       scl-gpios = <&gpio5 27 GPIO_ACTIVE_HIGH>;
+
        pca9547: mux@70 {
                compatible = "nxp,pca9547";
                reg = <0x70>;
        };
 };
 
+&i2c2 {
+       pinctrl-names = "default", "gpio";
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       sda-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
+       scl-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+};
+
+&i2c3 {
+       pinctrl-names = "default", "gpio";
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       sda-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+       scl-gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+};
+
+&iomuxc {
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT8__GPIO5_IO26        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT9__GPIO5_IO27        0x1b0b0
+               >;
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__GPIO4_IO12 0x1b0b0
+                       MX6QDL_PAD_KEY_ROW3__GPIO4_IO13 0x1b0b0
+               >;
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_3__GPIO1_IO03   0x1b0b0
+                       MX6QDL_PAD_GPIO_6__GPIO1_IO06   0x1b0b0
+               >;
+       };
+};
+
 &usdhc4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc4>;
index a12c47e5ee059fbf45216ee6a9e65ce06f2f97b0..0b8ae007ad73fc08640c72a8cde3e902bf74d1a4 100644 (file)
        compatible = "gw,imx6q-gw52xx", "gw,ventana", "fsl,imx6q";
 };
 
+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu2_csi1_mux: endpoint {
+                               remote-endpoint = <&ipu2_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu2_csi1_from_ipu2_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu2_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu2_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu2_csi1>;
+};
+
+&iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x0001b0b0
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x4001b0b0
+               >;
+       };
+
+       pinctrl_ipu2_csi1: ipu2_csi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19    0x1b0b0
+                       MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18    0x1b0b0
+                       MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17    0x1b0b0
+                       MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16    0x1b0b0
+                       MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15    0x1b0b0
+                       MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14    0x1b0b0
+                       MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13    0x1b0b0
+                       MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12    0x1b0b0
+                       MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK    0x1b0b0
+               >;
+       };
+};
+
 &sata {
        status = "okay";
 };
index d76aaa83dad070ade4861a599dee1168da69c5cf..a56ef77eff3f9fb0aa2706aa027825311d14dece 100644 (file)
        compatible = "gw,imx6q-gw53xx", "gw,ventana", "fsl,imx6q";
 };
 
+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu2_csi1_mux: endpoint {
+                               remote-endpoint = <&ipu2_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu2_csi1_from_ipu2_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu2_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu2_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu2_csi1>;
+};
+
 &sata {
        status = "okay";
 };
+
+&iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x0001b0b0
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x4001b0b0
+               >;
+       };
+
+       pinctrl_ipu2_csi1: ipu2_csi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19    0x1b0b0
+                       MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18    0x1b0b0
+                       MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17    0x1b0b0
+                       MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16    0x1b0b0
+                       MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15    0x1b0b0
+                       MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14    0x1b0b0
+                       MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13    0x1b0b0
+                       MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12    0x1b0b0
+                       MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK    0x1b0b0
+               >;
+       };
+};
index 6e8f53e92a2d24d49d4d1fb15788a4237fe08890..56e5b5050fcfcc2e5f093593c95c5f7c944e1ad1 100644 (file)
        compatible = "gw,imx6q-gw54xx", "gw,ventana", "fsl,imx6q";
 };
 
+&i2c3 {
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu2_csi1_mux: endpoint {
+                               remote-endpoint = <&ipu2_csi1_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu2_csi1_from_ipu2_csi1_mux {
+       bus-width = <8>;
+};
+
+&ipu2_csi1_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu2_csi1_mux>;
+       bus-width = <8>;
+};
+
+&ipu2_csi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu2_csi1>;
+};
+
 &sata {
        status = "okay";
 };
+
+&iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x0001b0b0
+                       MX6QDL_PAD_EIM_D31__GPIO3_IO31          0x4001b0b0
+               >;
+       };
+
+       pinctrl_ipu2_csi1: ipu2_csi1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_EB2__IPU2_CSI1_DATA19    0x1b0b0
+                       MX6QDL_PAD_EIM_D16__IPU2_CSI1_DATA18    0x1b0b0
+                       MX6QDL_PAD_EIM_D18__IPU2_CSI1_DATA17    0x1b0b0
+                       MX6QDL_PAD_EIM_D19__IPU2_CSI1_DATA16    0x1b0b0
+                       MX6QDL_PAD_EIM_D20__IPU2_CSI1_DATA15    0x1b0b0
+                       MX6QDL_PAD_EIM_D26__IPU2_CSI1_DATA14    0x1b0b0
+                       MX6QDL_PAD_EIM_D27__IPU2_CSI1_DATA13    0x1b0b0
+                       MX6QDL_PAD_EIM_A17__IPU2_CSI1_DATA12    0x1b0b0
+                       MX6QDL_PAD_EIM_D29__IPU2_CSI1_VSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__IPU2_CSI1_HSYNC     0x1b0b0
+                       MX6QDL_PAD_EIM_A16__IPU2_CSI1_PIXCLK    0x1b0b0
+               >;
+       };
+};
index ba01dd76d8874fc6df4a87efa48c3bcc5ddff163..ea339fa58f4a5a99f1834778e926ce022f139cdd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2014-2016 Toradex AG
+ * Copyright 2014-2017 Toradex AG
  * Copyright 2012 Freescale Semiconductor, Inc.
  * Copyright 2011 Linaro Ltd.
  *
                status = "disabled";
        };
 
-       /* DDC_I2C: I2C2_SDA/SCL on MXM3 205/207 */
-       i2cddc: i2c@0 {
-               compatible = "i2c-gpio";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_i2c_ddc>;
-               gpios = <&gpio3 16 GPIO_ACTIVE_HIGH /* sda */
-                        &gpio2 30 GPIO_ACTIVE_HIGH /* scl */
-                       >;
-               i2c-gpio,delay-us = <2>;        /* ~100 kHz */
-               status = "disabled";
-       };
-
        reg_1p8v: regulator-1p8v {
                compatible = "regulator-fixed";
                regulator-name = "1P8V";
        };
 };
 
-/*
- * GEN1_I2C: I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier
- * board)
- */
+&hdmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi_ddc>;
+       status = "disabled";
+};
+
+/* I2C1_SDA/SCL on MXM3 209/211 (e.g. RTC on carrier board) */
 &i2c1 {
        clock-frequency = <100000>;
        pinctrl-names = "default";
 };
 
 /*
- * GEN2_I2C, CAM: I2C3_SDA/SCL on MXM3 201/203 (unused)
+ * I2C3_SDA/SCL (CAM) on MXM3 pin 201/203 (e.g. camera sensor on carrier
+ * board)
  */
 &i2c3 {
        clock-frequency = <100000>;
 /* MMC1 */
 &usdhc1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-0 = <&pinctrl_usdhc1_4bit &pinctrl_usdhc1_8bit>;
        vqmmc-supply = <&reg_3p3v>;
        bus-width = <8>;
        voltage-ranges = <3300 3300>;
                >;
        };
 
-       pinctrl_i2c_ddc: gpioi2cddcgrp {
+       pinctrl_hdmi_ddc: hdmiddcgrp {
                fsl,pins = <
-                       /* DDC bitbang */
-                       MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x1b0b0
-                       MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x1b0b0
+                       MX6QDL_PAD_EIM_EB2__HDMI_TX_DDC_SCL 0x4001b8b1
+                       MX6QDL_PAD_EIM_D16__HDMI_TX_DDC_SDA 0x4001b8b1
                >;
        };
 
                >;
        };
 
-       pinctrl_usdhc1: usdhc1grp {
+       pinctrl_usdhc1_4bit: usdhc1grp_4bit {
                fsl,pins = <
                        MX6QDL_PAD_SD1_CMD__SD1_CMD    0x17071
                        MX6QDL_PAD_SD1_CLK__SD1_CLK    0x10071
                        MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17071
                        MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17071
                        MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17071
+               >;
+       };
+
+       pinctrl_usdhc1_8bit: usdhc1grp_8bit {
+               fsl,pins = <
                        MX6QDL_PAD_NANDF_D0__SD1_DATA4 0x17071
                        MX6QDL_PAD_NANDF_D1__SD1_DATA5 0x17071
                        MX6QDL_PAD_NANDF_D2__SD1_DATA6 0x17071
index e8c1edc82e6ef122a7fb68ee568d50d0f59a3d11..885556260bd0737b2164967dcad8af83d44ef066 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c3>;
        status = "okay";
+
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu1_csi0_mux: endpoint {
+                               remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi0_from_ipu1_csi0_mux {
+       bus-width = <8>;
+};
+
+&ipu1_csi0_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu1_csi0_mux>;
+       bus-width = <8>;
+};
+
+&ipu1_csi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi0>;
 };
 
 &pcie {
 
 &iomuxc {
        imx6qdl-gw51xx {
+               pinctrl_adv7180: adv7180grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23        0x0001b0b0
+                               MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20     0x4001b0b0
+                       >;
+               };
+
                pinctrl_enet: enetgrp {
                        fsl,pins = <
                                MX6QDL_PAD_RGMII_RXC__RGMII_RXC         0x1b030
                        >;
                };
 
+               pinctrl_ipu1_csi0: ipu1csi0grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18    0x1b0b0
+                               MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19    0x1b0b0
+                               MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC      0x1b0b0
+                               MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC     0x1b0b0
+                               MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK   0x1b0b0
+                       >;
+               };
+
                pinctrl_pcie: pciegrp {
                        fsl,pins = <
                                MX6QDL_PAD_GPIO_0__GPIO1_IO00           0x1b0b0
index 91991d63a69c9a9af6aac4772be2b21014a8a493..115d706228eff5067f6a536e049e07183a778631 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       uart-has-rtscts;
        rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
index 5bc6ed1a5b35ad1240cd7e6ae560c6d2f666a267..24be7965056c13d898d026eb852ba30db284b206 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       uart-has-rtscts;
        rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
index 66fcf838e964502329391f457a2c5e9801ace1a4..4594b22791695436df2cd9ff372f332db74ad5c4 100644 (file)
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
-       uart-has-rtscts;
        rts-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
index 57374dddf98d129c8019b4e0b14d63acd546766c..1a0faa1a14c8a4942d72ed1e3b1f6ef97a9b6c48 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c3>;
        status = "okay";
+
+       adv7180: camera@20 {
+               compatible = "adi,adv7180";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_adv7180>;
+               reg = <0x20>;
+               powerdown-gpios = <&gpio5 20 GPIO_ACTIVE_LOW>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
+
+               port {
+                       adv7180_to_ipu1_csi0_mux: endpoint {
+                               remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
+                               bus-width = <8>;
+                       };
+               };
+       };
+};
+
+&ipu1_csi0_from_ipu1_csi0_mux {
+       bus-width = <8>;
+};
+
+&ipu1_csi0_mux_from_parallel_sensor {
+       remote-endpoint = <&adv7180_to_ipu1_csi0_mux>;
+       bus-width = <8>;
+};
+
+&ipu1_csi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ipu1_csi0>;
 };
 
 &pcie {
 };
 
 &iomuxc {
+       pinctrl_adv7180: adv7180grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23        0x0001b0b0
+                       MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20     0x4001b0b0
+               >;
+       };
+
        pinctrl_gpmi_nand: gpminandgrp {
                fsl,pins = <
                        MX6QDL_PAD_NANDF_CLE__NAND_CLE          0xb0b1
                >;
        };
 
+       pinctrl_ipu1_csi0: ipu1csi0grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18    0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19    0x1b0b0
+                       MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC      0x1b0b0
+                       MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC     0x1b0b0
+                       MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK   0x1b0b0
+               >;
+       };
+
        pinctrl_gpio_leds: gpioledsgrp {
                fsl,pins = <
                        MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
index 5fab5be414feb729fb3458fab43852c2644d0969..7ca291e9dbdb234b253d09b72fd1cb2a3f5aac71 100644 (file)
 };
 
 &ssi1 {
-       fsl,mode = "i2s-slave";
        status = "okay";
 };
 
index f22e5879340bc41c7f722c9d3314a41935070a11..d309a4d0eb08b38c0ba551ee3652549421538eb5 100644 (file)
                        startup-delay-us = <70000>;
                        enable-active-high;
                };
+
+               reg_usb_h1_vbus: regulator@5 {
+                       compatible = "regulator-fixed";
+                       reg = <5>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usbh1>;
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
        };
 
        gpio-keys {
                        >;
                };
 
+               pinctrl_usbh1: usbh1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12          0x030b0
+                       >;
+               };
+
                pinctrl_usbotg: usbotggrp {
                        fsl,pins = <
                                MX6QDL_PAD_GPIO_1__USB_OTG_ID   0x17059
 };
 
 &usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
        status = "okay";
 };
 
index afe7449c47da2d0b67ffc2628d323feaa4e00ea5..756c5054f047724f7e12a1fad1ca98fde09f50c2 100644 (file)
                        regulator-max-microvolt = <2800000>;
                        regulator-always-on;
                };
+
+               reg_usb_h1_vbus: regulator@7 {
+                       compatible = "regulator-fixed";
+                       reg = <7>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usbh1>;
+                       regulator-name = "usb_h1_vbus";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+                       enable-active-high;
+               };
        };
 
        mipi_xclk: mipi_xclk {
                        >;
                };
 
+               pinctrl_usbh1: usbh1grp {
+                       fsl,pins = <
+                               MX6QDL_PAD_GPIO_17__GPIO7_IO12          0x030b0
+                       >;
+               };
+
                pinctrl_usbotg: usbotggrp {
                        fsl,pins = <
                                MX6QDL_PAD_GPIO_1__USB_OTG_ID           0x17059
 };
 
 &usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
        status = "okay";
 };
 
index 5d94b5ee6aa0c992cdfc09bc0a4fe1a3a7a9aa2a..eeb7679fd348a4932d123a8bd7ec76fb5107cc63 100644 (file)
                pinctrl-0 = <&pinctrl_mdio1>;
                gpios = <&gpio6 5 GPIO_ACTIVE_HIGH
                         &gpio6 4 GPIO_ACTIVE_HIGH>;
+
+               phy: ethernet-phy@0 {
+                       pinctrl-0 = <&pinctrl_rmii_phy_irq>;
+                       pinctrl-names = "default";
+                       reg = <0>;
+                       interrupt-parent = <&gpio3>;
+                       interrupts = <30 IRQ_TYPE_LEVEL_LOW>;
+               };
        };
 
        reg_28p0v: regulator-28p0v {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet>;
        phy-mode = "rmii";
+       phy-handle = <&phy>;
        phy-reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
        phy-reset-duration = <100>;
        phy-supply = <&reg_3p3v>;
        status = "okay";
 
-       fixed-link {
-               speed = <100>;
-               full-duplex;
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "okay";
+
+               switch: switch@0 {
+                       compatible = "marvell,mv88e6085";
+                       pinctrl-0 = <&pinctrl_switch_irq>;
+                       pinctrl-names = "default";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       dsa,member = <0 0>;
+                       eeprom-length = <512>;
+                       interrupt-parent = <&gpio6>;
+                       interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       label = "gigabit_proc";
+                                       phy-handle = <&switchphy0>;
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       label = "netaux";
+                                       phy-handle = <&switchphy1>;
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       label = "cpu";
+                                       ethernet = <&fec>;
+
+                                       fixed-link {
+                                               speed = <100>;
+                                               full-duplex;
+                                       };
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       label = "netright";
+                                       phy-handle = <&switchphy3>;
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       label = "netleft";
+                                       phy-handle = <&switchphy4>;
+                               };
+                       };
+
+                       mdio {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               switchphy0: switchphy@0 {
+                                       reg = <0>;
+                                       interrupt-parent = <&switch>;
+                                       interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               switchphy1: switchphy@1 {
+                                       reg = <1>;
+                                       interrupt-parent = <&switch>;
+                                       interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               switchphy2: switchphy@2 {
+                                       reg = <2>;
+                                       interrupt-parent = <&switch>;
+                                       interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               switchphy3: switchphy@3 {
+                                       reg = <3>;
+                                       interrupt-parent = <&switch>;
+                                       interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               switchphy4: switchphy@4 {
+                                       reg = <4>;
+                                       interrupt-parent = <&switch>;
+                                       interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+                       };
+               };
        };
 };
 
                >;
        };
 
+       pinctrl_switch_irq: switchgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT17__GPIO6_IO03       0x4001b000
+               >;
+       };
+
        pinctrl_tc358767: tc358767grp {
                fsl,pins = <
                        MX6QDL_PAD_GPIO_9__GPIO1_IO09           0x10
index a9723b94bafa2e1eae8bad3206d79c76ffc0397a..8884b4a3cafb6f979189ba4be89295ad3777bfee 100644 (file)
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
+                                       value = <0x60>;
                                        mask = <0x60>;
                                        status = "disabled";
                                };
index 3243af4a99844b30075f2c3e2ac7c2872d7a9310..3f76f980947ed6ecd88cb5a8b48cbfc3dc5bd63b 100644 (file)
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
+                                       value = <0x60>;
                                        mask = <0x60>;
                                        status = "disabled";
                                };
index f16b9df9d0c60a7f17c35627c458ab43906424aa..6c7eb54be9e2a4912d27cd4dcc2803a338390323 100644 (file)
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
+                                       value = <0x60>;
                                        mask = <0x60>;
                                        status = "disabled";
                                };
index d2be8aa3370b7840e014964c147a4742d5ca87e8..9c23e017d86ad9194d48d7ef3bdb767210fd8dee 100644 (file)
@@ -22,7 +22,7 @@
                reg = <0x80000000 0x20000000>;
        };
 
-       backlight {
+       backlight_display: backlight-display {
                compatible = "pwm-backlight";
                pwms = <&pwm1 0 5000000>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                        clocks = <&clks IMX6UL_CLK_SAI2>;
                };
        };
+
+       panel {
+               compatible = "innolux,at043tn24";
+               backlight = <&backlight_display>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&display_out>;
+                       };
+               };
+       };
 };
 
 &clks {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lcdif_dat
                     &pinctrl_lcdif_ctrl>;
-       display = <&display0>;
        status = "okay";
 
-       display0: display {
-               bits-per-pixel = <16>;
-               bus-width = <24>;
-
-               display-timings {
-                       native-mode = <&timing0>;
-
-                       timing0: timing0 {
-                               clock-frequency = <9200000>;
-                               hactive = <480>;
-                               vactive = <272>;
-                               hfront-porch = <8>;
-                               hback-porch = <4>;
-                               hsync-len = <41>;
-                               vback-porch = <2>;
-                               vfront-porch = <4>;
-                               vsync-len = <10>;
-                               hsync-active = <0>;
-                               vsync-active = <0>;
-                               de-active = <1>;
-                               pixelclk-active = <0>;
-                       };
+       port {
+               display_out: endpoint {
+                       remote-endpoint = <&panel_in>;
                };
        };
 };
                        MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
                        MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
                        MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b031
-                       MX6UL_PAD_SNVS_TAMPER0__GPIO5_IO00      0x17059
                >;
        };
 
diff --git a/arch/arm/boot/dts/imx6ul-geam-kit.dts b/arch/arm/boot/dts/imx6ul-geam-kit.dts
deleted file mode 100644 (file)
index 142e60c..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2016 Amarula Solutions B.V.
- * Copyright (C) 2016 Engicam S.r.l.
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License
- *     version 2 as published by the Free Software Foundation.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-/dts-v1/;
-
-#include <dt-bindings/gpio/gpio.h>
-#include "imx6ul-geam.dtsi"
-
-/ {
-       model = "Engicam GEAM6UL";
-       compatible = "engicam,imx6ul-geam", "fsl,imx6ul";
-};
-
-&can1 {
-       status = "okay";
-};
-
-&can2 {
-       status = "okay";
-};
-
-&lcdif {
-       display = <&display0>;
-       status = "okay";
-
-       display0: display {
-               bits-per-pixel = <16>;
-               bus-width = <18>;
-               status = "okay";
-
-               display-timings {
-                       native-mode = <&timing0>;
-                       timing0: timing0 {
-                               clock-frequency = <28000000>;
-                               hactive = <800>;
-                               vactive = <480>;
-                               hfront-porch = <30>;
-                               hback-porch = <30>;
-                               hsync-len = <64>;
-                               vback-porch = <5>;
-                               vfront-porch = <5>;
-                               vsync-len = <20>;
-                               hsync-active = <0>;
-                               vsync-active = <0>;
-                               de-active = <1>;
-                               pixelclk-active = <0>;
-                       };
-               };
-       };
-};
-
-&usdhc1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc1>;
-       status = "okay";
-};
-
-&tsc {
-       measure-delay-time = <0x1ffff>;
-       pre-charge-time = <0x1fff>;
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/imx6ul-geam.dts b/arch/arm/boot/dts/imx6ul-geam.dts
new file mode 100644 (file)
index 0000000..571eea7
--- /dev/null
@@ -0,0 +1,480 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License
+ *     version 2 as published by the Free Software Foundation.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "imx6ul.dtsi"
+
+/ {
+       model = "Engicam GEAM6UL Starter Kit";
+       compatible = "engicam,imx6ul-geam", "fsl,imx6ul";
+
+       memory {
+               reg = <0x80000000 0x08000000>;
+       };
+
+       backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm8 0 100000>;
+               brightness-levels = < 0  1  2  3  4  5  6  7  8  9
+                                    10 11 12 13 14 15 16 17 18 19
+                                    20 21 22 23 24 25 26 27 28 29
+                                    30 31 32 33 34 35 36 37 38 39
+                                    40 41 42 43 44 45 46 47 48 49
+                                    50 51 52 53 54 55 56 57 58 59
+                                    60 61 62 63 64 65 66 67 68 69
+                                    70 71 72 73 74 75 76 77 78 79
+                                    80 81 82 83 84 85 86 87 88 89
+                                    90 91 92 93 94 95 96 97 98 99
+                                   100>;
+               default-brightness-level = <100>;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "imx6ul-geam-sgtl5000";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Line", "Line In",
+                       "Line", "Line Out",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai2>;
+               };
+
+               dailink_master: simple-audio-card,codec {
+                       sound-dai = <&sgtl5000>;
+                       clocks = <&clks IMX6UL_CLK_SAI2>;
+               };
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_3p3v>;
+       status = "okay";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_3p3v>;
+       status = "okay";
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+               };
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+               };
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       nand-on-flash-bbt;
+       status = "okay";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       sgtl5000: codec@a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks IMX6UL_CLK_OSC>;
+               clock-names = "mclk";
+               VDDA-supply = <&reg_3p3v>;
+               VDDIO-supply = <&reg_3p3v>;
+               VDDD-supply = <&reg_1p8v>;
+       };
+};
+
+&i2c2 {
+       clock_frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif_dat
+                    &pinctrl_lcdif_ctrl>;
+       display = <&display0>;
+       status = "okay";
+
+       display0: display {
+               bits-per-pixel = <16>;
+               bus-width = <18>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: timing0 {
+                               clock-frequency = <28000000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hfront-porch = <30>;
+                               hback-porch = <30>;
+                               hsync-len = <64>;
+                               vback-porch = <5>;
+                               vfront-porch = <5>;
+                               vsync-len = <20>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
+&pwm8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm8>;
+       status = "okay";
+};
+
+&tsc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_tsc>;
+       xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
+};
+
+&sai2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai2>;
+       status = "okay";
+};
+
+&tsc {
+       measure-delay-time = <0x1ffff>;
+       pre-charge-time = <0x1fff>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+       bus-width = <4>;
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
+               >;
+       };
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
+                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15       0x1b0b0         /* ENET_nRST */
+                       MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
+                       MX6UL_PAD_GPIO1_IO05__ENET2_REF_CLK2    0x4001b031
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x1b020
+                       MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x1b020
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX      0x1b020
+                       MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX      0x1b020
+               >;
+       };
+
+       pinctrl_gpmi_nand: gpmi-nand {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0xb0b1
+                       MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0xb0b1
+                       MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B       0xb0b1
+                       MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
+                       MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B     0xb0b1
+                       MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B       0xb0b1
+                       MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B       0xb0b1
+                       MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0xb0b1
+                       MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0xb0b1
+                       MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02   0xb0b1
+                       MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03   0xb0b1
+                       MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04   0xb0b1
+                       MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05   0xb0b1
+                       MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06   0xb0b1
+                       MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07   0xb0b1
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
+                       MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+                       fsl,pins = <
+                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
+                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
+               >;
+       };
+
+       pinctrl_lcdif_ctrl: lcdifctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK        0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC    0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC    0x79
+               >;
+       };
+
+       pinctrl_lcdif_dat: lcdifdatgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00  0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01  0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02  0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03  0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04  0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05  0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06  0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07  0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08  0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09  0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10  0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11  0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12  0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13  0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14  0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15  0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16  0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17  0x79
+               >;
+       };
+
+       pinctrl_pwm8: pwm8grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_ER__PWM8_OUT   0x110b0
+               >;
+       };
+
+       pinctrl_tsc: tscgrp {
+               fsl,pin = <
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0
+                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0xb0
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0xb0
+                       MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0xb0
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA        0x130b0
+                       MX6UL_PAD_JTAG_TMS__CCM_CLKO1           0x4001b031
+                       MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK        0x17088
+                       MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC        0x17088
+                       MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA     0x120b0
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS  0x1b0b1
+                       MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS  0x1b0b1
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x17059
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x10059
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK     0x17070
+                       MX6UL_PAD_CSI_HSYNC__USDHC2_CMD     0x10070
+                       MX6UL_PAD_CSI_DATA00__USDHC2_DATA0  0x17070
+                       MX6UL_PAD_CSI_DATA01__USDHC2_DATA1  0x17070
+                       MX6UL_PAD_CSI_DATA02__USDHC2_DATA2  0x17070
+                       MX6UL_PAD_CSI_DATA03__USDHC2_DATA3  0x17070
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ul-geam.dtsi b/arch/arm/boot/dts/imx6ul-geam.dtsi
deleted file mode 100644 (file)
index eb94d95..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- * Copyright (C) 2016 Amarula Solutions B.V.
- * Copyright (C) 2016 Engicam S.r.l.
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License
- *     version 2 as published by the Free Software Foundation.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include "imx6ul.dtsi"
-
-/ {
-       memory {
-               reg = <0x80000000 0x08000000>;
-       };
-
-       backlight {
-               compatible = "pwm-backlight";
-               pwms = <&pwm8 0 100000>;
-               brightness-levels = < 0  1  2  3  4  5  6  7  8  9
-                                    10 11 12 13 14 15 16 17 18 19
-                                    20 21 22 23 24 25 26 27 28 29
-                                    30 31 32 33 34 35 36 37 38 39
-                                    40 41 42 43 44 45 46 47 48 49
-                                    50 51 52 53 54 55 56 57 58 59
-                                    60 61 62 63 64 65 66 67 68 69
-                                    70 71 72 73 74 75 76 77 78 79
-                                    80 81 82 83 84 85 86 87 88 89
-                                    90 91 92 93 94 95 96 97 98 99
-                                   100>;
-               default-brightness-level = <100>;
-       };
-
-       chosen {
-               stdout-path = &uart1;
-       };
-
-       reg_1p8v: regulator-1p8v {
-               compatible = "regulator-fixed";
-               regulator-name = "1P8V";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       reg_3p3v: regulator-3p3v {
-               compatible = "regulator-fixed";
-               regulator-name = "3P3V";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-               regulator-always-on;
-               regulator-boot-on;
-       };
-};
-
-&can1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_flexcan1>;
-       xceiver-supply = <&reg_3p3v>;
-};
-
-&can2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_flexcan2>;
-       xceiver-supply = <&reg_3p3v>;
-};
-
-&fec1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_enet1>;
-       phy-mode = "rmii";
-       phy-handle = <&ethphy0>;
-       status = "okay";
-};
-
-&fec2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_enet2>;
-       phy-mode = "rmii";
-       phy-handle = <&ethphy1>;
-       status = "okay";
-
-       mdio {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               ethphy0: ethernet-phy@0 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <0>;
-               };
-
-               ethphy1: ethernet-phy@1 {
-                       compatible = "ethernet-phy-ieee802.3-c22";
-                       reg = <1>;
-               };
-       };
-};
-
-&gpmi {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_gpmi_nand>;
-       nand-on-flash-bbt;
-       status = "okay";
-};
-
-&i2c1 {
-       clock-frequency = <100000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_i2c1>;
-       status = "okay";
-};
-
-&i2c2 {
-       clock_frequency = <100000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_i2c2>;
-       status = "okay";
-};
-
-&lcdif {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_lcdif_dat
-                    &pinctrl_lcdif_ctrl>;
-       display = <&display0>;
-};
-
-&pwm8 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pwm8>;
-       status = "okay";
-};
-
-&tsc {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_tsc>;
-       xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
-};
-
-&sai2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_sai2>;
-       status = "okay";
-};
-
-&uart1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart1>;
-       status = "okay";
-};
-
-&uart2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart2>;
-       status = "okay";
-};
-
-&usbotg1 {
-       dr_mode = "peripheral";
-       status = "okay";
-};
-
-&usbotg2 {
-       dr_mode = "host";
-       status = "okay";
-};
-
-&usdhc1 {
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
-       pinctrl-0 = <&pinctrl_usdhc1>;
-       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
-       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
-       bus-width = <4>;
-       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
-       no-1-8-v;
-       status = "okay";
-};
-
-&iomuxc {
-       pinctrl_enet1: enet1grp {
-               fsl,pins = <
-                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
-                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
-                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
-                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
-                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
-                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
-                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
-               >;
-       };
-
-       pinctrl_enet2: enet2grp {
-               fsl,pins = <
-                       MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
-                       MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
-                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
-                       MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15       0x1b0b0         /* ENET_nRST */
-                       MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
-                       MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
-                       MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b0b0
-                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
-                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
-                       MX6UL_PAD_GPIO1_IO05__ENET2_REF_CLK2    0x4001b031
-               >;
-       };
-
-       pinctrl_flexcan1: flexcan1grp {
-               fsl,pins = <
-                       MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x1b020
-                       MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x1b020
-               >;
-       };
-
-       pinctrl_flexcan2: flexcan2grp {
-               fsl,pins = <
-                       MX6UL_PAD_UART2_RTS_B__FLEXCAN2_RX      0x1b020
-                       MX6UL_PAD_UART2_CTS_B__FLEXCAN2_TX      0x1b020
-               >;
-       };
-
-       pinctrl_gpmi_nand: gpmi-nand {
-               fsl,pins = <
-                       MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0xb0b1
-                       MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0xb0b1
-                       MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B       0xb0b1
-                       MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0xb000
-                       MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B     0xb0b1
-                       MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B       0xb0b1
-                       MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B       0xb0b1
-                       MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0xb0b1
-                       MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0xb0b1
-                       MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02   0xb0b1
-                       MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03   0xb0b1
-                       MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04   0xb0b1
-                       MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05   0xb0b1
-                       MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06   0xb0b1
-                       MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07   0xb0b1
-               >;
-       };
-
-       pinctrl_i2c1: i2c1grp {
-               fsl,pins = <
-                       MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
-                       MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
-               >;
-       };
-
-       pinctrl_i2c2: i2c2grp {
-                       fsl,pins = <
-                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
-                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
-               >;
-       };
-
-       pinctrl_lcdif_ctrl: lcdifctrlgrp {
-               fsl,pins = <
-                       MX6UL_PAD_LCD_CLK__LCDIF_CLK        0x79
-                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x79
-                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC    0x79
-                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC    0x79
-               >;
-       };
-
-       pinctrl_lcdif_dat: lcdifdatgrp {
-               fsl,pins = <
-                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00  0x79
-                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01  0x79
-                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02  0x79
-                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03  0x79
-                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04  0x79
-                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05  0x79
-                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06  0x79
-                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07  0x79
-                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08  0x79
-                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09  0x79
-                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10  0x79
-                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11  0x79
-                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12  0x79
-                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13  0x79
-                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14  0x79
-                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15  0x79
-                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16  0x79
-                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17  0x79
-               >;
-       };
-
-       pinctrl_pwm8: pwm8grp {
-               fsl,pins = <
-                       MX6UL_PAD_ENET1_RX_ER__PWM8_OUT   0x110b0
-               >;
-       };
-
-       pinctrl_tsc: tscgrp {
-               fsl,pin = <
-                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0
-                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0xb0
-                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0xb0
-                       MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0xb0
-               >;
-       };
-
-       pinctrl_sai2: sai2grp {
-               fsl,pins = <
-                       MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA        0x130b0
-                       MX6UL_PAD_JTAG_TMS__CCM_CLKO1           0x4001b031
-                       MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK        0x17088
-                       MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC        0x17088
-                       MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA     0x120b0
-               >;
-       };
-
-       pinctrl_uart1: uart1grp {
-               fsl,pins = <
-                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
-                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
-               >;
-       };
-
-       pinctrl_uart2: uart2grp {
-               fsl,pins = <
-                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
-                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
-                       MX6UL_PAD_UART3_RX_DATA__UART2_DCE_RTS  0x1b0b1
-                       MX6UL_PAD_UART3_TX_DATA__UART2_DCE_CTS  0x1b0b1
-               >;
-       };
-
-       pinctrl_usdhc1: usdhc1grp {
-               fsl,pins = <
-                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x17059
-                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x10059
-                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
-                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
-                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
-                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
-               >;
-       };
-
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
-               fsl,pins = <
-                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170b9
-                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100b9
-                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
-                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
-                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
-                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
-               >;
-       };
-
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
-               fsl,pins = <
-                       MX6UL_PAD_SD1_CMD__USDHC1_CMD     0x170f9
-                       MX6UL_PAD_SD1_CLK__USDHC1_CLK     0x100f9
-                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
-                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
-                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
-                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
-               >;
-       };
-
-       pinctrl_usdhc2: usdhc2grp {
-               fsl,pins = <
-                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK     0x17070
-                       MX6UL_PAD_CSI_HSYNC__USDHC2_CMD     0x10070
-                       MX6UL_PAD_CSI_DATA00__USDHC2_DATA0  0x17070
-                       MX6UL_PAD_CSI_DATA01__USDHC2_DATA1  0x17070
-                       MX6UL_PAD_CSI_DATA02__USDHC2_DATA2  0x17070
-                       MX6UL_PAD_CSI_DATA03__USDHC2_DATA3  0x17070
-               >;
-       };
-};
diff --git a/arch/arm/boot/dts/imx6ul-isiot-common.dtsi b/arch/arm/boot/dts/imx6ul-isiot-common.dtsi
deleted file mode 100644 (file)
index 2beaab6..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2016 Amarula Solutions B.V.
- * Copyright (C) 2016 Engicam S.r.l.
- *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License
- *     version 2 as published by the Free Software Foundation.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
- */
-
-&i2c1 {
-       stmpe811: gpio-expander@44 {
-               compatible = "st,stmpe811";
-               reg = <0x44>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_stmpe>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
-               interrupt-controller;
-               #interrupt-cells = <2>;
-
-               stmpe: touchscreen {
-                       compatible = "st,stmpe-ts";
-                       st,sample-time = <4>;
-                       st,mod-12b = <1>;
-                       st,ref-sel = <0>;
-                       st,adc-freq = <1>;
-                       st,ave-ctrl = <1>;
-                       st,touch-det-delay = <2>;
-                       st,settling = <2>;
-                       st,fraction-z = <7>;
-                       st,i-drive = <1>;
-               };
-       };
-};
-
-&lcdif {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_lcdif_dat
-                    &pinctrl_lcdif_ctrl>;
-       display = <&display0>;
-       status = "okay";
-
-       display0: display {
-               bits-per-pixel = <16>;
-               bus-width = <18>;
-
-               display-timings {
-                       native-mode = <&timing0>;
-                       timing0: timing0 {
-                               clock-frequency = <28000000>;
-                               hactive = <800>;
-                               vactive = <480>;
-                               hfront-porch = <30>;
-                               hback-porch = <30>;
-                               hsync-len = <64>;
-                               vback-porch = <5>;
-                               vfront-porch = <5>;
-                               vsync-len = <20>;
-                               hsync-active = <0>;
-                               vsync-active = <0>;
-                               de-active = <1>;
-                               pixelclk-active = <0>;
-                       };
-               };
-       };
-};
-
-&iomuxc {
-       pinctrl_lcdif_ctrl: lcdifctrlgrp {
-               fsl,pins = <
-                       MX6UL_PAD_LCD_CLK__LCDIF_CLK        0x79
-                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x79
-                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC    0x79
-                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC    0x79
-               >;
-       };
-
-       pinctrl_lcdif_dat: lcdifdatgrp {
-               fsl,pins = <
-                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00  0x79
-                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01  0x79
-                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02  0x79
-                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03  0x79
-                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04  0x79
-                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05  0x79
-                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06  0x79
-                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07  0x79
-                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08  0x79
-                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09  0x79
-                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10  0x79
-                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11  0x79
-                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12  0x79
-                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13  0x79
-                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14  0x79
-                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15  0x79
-                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16  0x79
-                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17  0x79
-               >;
-       };
-
-       pinctrl_stmpe: stmpegrp  {
-               fsl,pins = <
-                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x1b0b0
-               >;
-       };
-};
index 73a1d0f0b9d543b18d498a0c4c38becef68831b9..f5b422898e61dd22ed1c13a3357a62fb2209f8f1 100644 (file)
@@ -43,7 +43,6 @@
 /dts-v1/;
 
 #include "imx6ul-isiot.dtsi"
-#include "imx6ul-isiot-common.dtsi"
 
 / {
        model = "Engicam Is.IoT MX6UL eMMC Starter kit";
index da29a86eb6a8f83dc9e3fc64bf50f4b6d0cd2b74..de15e1c75dd1ddf606976d0f3571fdf6bb1c10e7 100644 (file)
@@ -43,7 +43,6 @@
 /dts-v1/;
 
 #include "imx6ul-isiot.dtsi"
-#include "imx6ul-isiot-common.dtsi"
 
 / {
        model = "Engicam Is.IoT MX6UL NAND Starter kit";
index ea30380ad7a4bef0e1261bdc7788b9257579b2ec..950fb28b630a4dc88ee1f28840dab90317f01c83 100644 (file)
                                    100>;
                default-brightness-level = <100>;
        };
+
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-name = "1P8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "imx6ul-isiot-sgtl5000";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,bitclock-master = <&dailink_master>;
+               simple-audio-card,frame-master = <&dailink_master>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Line", "Line In",
+                       "Line", "Line Out",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "MIC_IN", "Mic Jack",
+                       "Mic Jack", "Mic Bias",
+                       "Headphone Jack", "HP_OUT";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai2>;
+               };
+
+               dailink_master: simple-audio-card,codec {
+                       sound-dai = <&sgtl5000>;
+                       clocks = <&clks IMX6UL_CLK_SAI2>;
+               };
+       };
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+               };
+       };
 };
 
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c1>;
        status = "okay";
+
+       sgtl5000: codec@a {
+               compatible = "fsl,sgtl5000";
+               reg = <0x0a>;
+               clocks = <&clks IMX6UL_CLK_OSC>;
+               clock-names = "mclk";
+               VDDA-supply = <&reg_3p3v>;
+               VDDIO-supply = <&reg_3p3v>;
+               VDDD-supply = <&reg_1p8v>;
+       };
+
+       stmpe811: gpio-expander@44 {
+               compatible = "st,stmpe811";
+               reg = <0x44>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_stmpe>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               stmpe: touchscreen {
+                       compatible = "st,stmpe-ts";
+                       st,sample-time = <4>;
+                       st,mod-12b = <1>;
+                       st,ref-sel = <0>;
+                       st,adc-freq = <1>;
+                       st,ave-ctrl = <1>;
+                       st,touch-det-delay = <2>;
+                       st,settling = <2>;
+                       st,fraction-z = <7>;
+                       st,i-drive = <1>;
+               };
+       };
 };
 
 &i2c2 {
        status = "okay";
 };
 
+&lcdif {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lcdif_dat
+                    &pinctrl_lcdif_ctrl>;
+       display = <&display0>;
+       status = "okay";
+
+       display0: display {
+               bits-per-pixel = <16>;
+               bus-width = <18>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+                       timing0: timing0 {
+                               clock-frequency = <28000000>;
+                               hactive = <800>;
+                               vactive = <480>;
+                               hfront-porch = <30>;
+                               hback-porch = <30>;
+                               hsync-len = <64>;
+                               vback-porch = <5>;
+                               vfront-porch = <5>;
+                               vsync-len = <20>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               de-active = <1>;
+                               pixelclk-active = <0>;
+                       };
+               };
+       };
+};
+
 &pwm8 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
 };
 
 &iomuxc {
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_RX_DATA0__ENET1_MDIO    0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__ENET1_MDC     0x1b0b0
+                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
+                       MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10       0x1b0b0
+               >;
+       };
+
        pinctrl_i2c1: i2c1grp {
                fsl,pins = <
                        MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
                >;
        };
 
+       pinctrl_lcdif_ctrl: lcdifctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK        0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC    0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC    0x79
+               >;
+       };
+
+       pinctrl_lcdif_dat: lcdifdatgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00  0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01  0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02  0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03  0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04  0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05  0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06  0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07  0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08  0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09  0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10  0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11  0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12  0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13  0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14  0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15  0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16  0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17  0x79
+               >;
+       };
+
        pinctrl_pwm8: pwm8grp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_RX_ER__PWM8_OUT   0x110b0
                >;
        };
 
+       pinctrl_stmpe: stmpegrp  {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18 0x1b0b0
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
index ed1d891d6a8953dde12c99e0b675bf033471e948..1d863a16bcf09c54ed76650edf2591b1be56ac52 100644 (file)
        };
 };
 
+&snvs_poweroff {
+       status = "okay";
+};
+
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
index 6da2b77edd460ff7a6b592d887c98ccb3449f8c8..f11a241a340d52b6cf95b184b69696e13e29c88d 100644 (file)
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
+                                       value = <0x60>;
                                        mask = <0x60>;
                                        status = "disabled";
                                };
index d7753f79937a7f543148dd982dbc8ae3931a1c8f..0a3915868aa328fc4bafa4650ecf9085ce85b8df 100644 (file)
        fsl,magic-packet;
 };
 
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       fsl,use-minimum-ecc;
+       nand-on-flash-bbt;
+       nand-ecc-mode = "hw";
+       status = "okay";
+};
+
 &i2c1 {
        clock-frequency = <100000>;
        pinctrl-names = "default";
index 0a24d1bf3c393463148919e685a879df39af58ef..44637cabcc566d402847992607984f9736db5a27 100644 (file)
                regulator-max-microvolt = <3300000>;
                startup-delay-us = <200000>;
        };
+
+       reg_lcd_3v3: regulator-lcd-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&extended_io 7 GPIO_ACTIVE_LOW>;
+       };
+
+       reg_can2_3v3: regulator-can2-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "can2-3v3";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_flexcan2_reg>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 14 GPIO_ACTIVE_LOW>;
+       };
+
+       panel {
+               compatible = "innolux,at043tn24";
+               pinctrl-0 = <&pinctrl_backlight>;
+               enable-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+               power-supply = <&reg_lcd_3v3>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&display_out>;
+                       };
+               };
+       };
 };
 
 &adc1 {
        phy-mode = "rgmii";
        phy-handle = <&ethphy0>;
        fsl,magic-packet;
+       phy-reset-gpios = <&extended_io 5 GPIO_ACTIVE_LOW>;
        status = "okay";
 
        mdio {
        status = "okay";
 };
 
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can2_3v3>;
+       status = "okay";
+};
+
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c1>;
                        };
 
                        vgen6_reg: vldo4 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
                                regulator-always-on;
                        };
                };
 &lcdif {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lcdif>;
-       display = <&display0>;
        status = "okay";
 
-       display0: display {
-               bits-per-pixel = <16>;
-               bus-width = <24>;
-
-               display-timings {
-                       native-mode = <&timing0>;
-
-                       timing0: timing0 {
-                               clock-frequency = <9200000>;
-                               hactive = <480>;
-                               vactive = <272>;
-                               hfront-porch = <8>;
-                               hback-porch = <4>;
-                               hsync-len = <41>;
-                               vback-porch = <2>;
-                               vfront-porch = <4>;
-                               vsync-len = <10>;
-                               hsync-active = <0>;
-                               vsync-active = <0>;
-                               de-active = <1>;
-                               pixelclk-active = <0>;
-                       };
+       port {
+               display_out: endpoint {
+                       remote-endpoint = <&panel_in>;
                };
        };
 };
        status = "okay";
 };
 
-&pwm1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
-};
-
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
                        >;
                };
 
+               pinctrl_flexcan2: flexcan2grp {
+                       fsl,pins = <
+                               MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX        0x59
+                               MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX        0x59
+                       >;
+               };
+
+               pinctrl_flexcan2_reg: flexcan2reggrp {
+                       fsl,pins = <
+                               MX7D_PAD_EPDC_DATA14__GPIO2_IO14        0x59    /* CAN_STBY */
+                       >;
+               };
+
+
                pinctrl_hog: hoggrp {
                        fsl,pins = <
                                MX7D_PAD_UART3_CTS_B__GPIO4_IO7         0x14
                >;
        };
 
-       pinctrl_pwm1: pwm1grp {
+       pinctrl_backlight: backlightgrp {
                fsl,pins = <
-                       MX7D_PAD_LPSR_GPIO1_IO01__PWM1_OUT              0x110b0
+                       MX7D_PAD_LPSR_GPIO1_IO01__GPIO1_IO1             0x110b0
                >;
        };
 };
index 4cf6c458b583f68a45e78301734b317db39bbac5..82ad26e766eb71b7191afd9b7334ea4ac3b80480 100644 (file)
                                        compatible = "syscon-poweroff";
                                        regmap = <&snvs>;
                                        offset = <0x38>;
+                                       value = <0x60>;
                                        mask = <0x60>;
                                };
 
                                status = "disabled";
                        };
                };
+
+               dma_apbh: dma-apbh@33000000 {
+                       compatible = "fsl,imx7d-dma-apbh", "fsl,imx28-dma-apbh";
+                       reg = <0x33000000 0x2000>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
+                       #dma-cells = <1>;
+                       dma-channels = <4>;
+                       clocks = <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>;
+               };
+
+               gpmi: gpmi-nand@33002000{
+                       compatible = "fsl,imx7d-gpmi-nand";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x33002000 0x2000>, <0x33004000 0x4000>;
+                       reg-names = "gpmi-nand", "bch";
+                       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "bch";
+                       clocks = <&clks IMX7D_NAND_RAWNAND_CLK>,
+                               <&clks IMX7D_NAND_USDHC_BUS_RAWNAND_CLK>;
+                       clock-names = "gpmi_io", "gpmi_bch_apb";
+                       dmas = <&dma_apbh 0>;
+                       dma-names = "rx-tx";
+                       status = "disabled";
+                       assigned-clocks = <&clks IMX7D_NAND_ROOT_SRC>;
+                       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_500M_CLK>;
+               };
        };
 };
index ae1ebe7ee0217e8a44d0e607149ced326a6070dc..f1f32c54e72fe7846d09de647a0d5ea8703f5f74 100644 (file)
        compatible = "ti,k2e-evm", "ti,k2e", "ti,keystone";
        model = "Texas Instruments Keystone 2 Edison EVM";
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dsp_common_memory: dsp-common-memory@81f800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
+
        soc {
 
                clocks {
                reg = <1>;
        };
 };
+
+&dsp0 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
index 0dd4cdd6d40c8afe9f15f355b8ec493844154d0f..819ab83459163963a80c9471c1b61c7eca422311 100644 (file)
                };
        };
 
+       aliases {
+               rproc0 = &dsp0;
+       };
+
        soc {
                /include/ "keystone-k2e-clocks.dtsi"
 
                        gpio,syscon-dev = <&devctrl 0x240>;
                };
 
+               dsp0: dsp@10800000 {
+                       compatible = "ti,k2e-dsp";
+                       reg = <0x10800000 0x00080000>,
+                             <0x10e00000 0x00008000>,
+                             <0x10f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem0>;
+                       ti,syscon-dev = <&devctrl 0x844>;
+                       resets = <&pscrst 0>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <0 8>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio0 27 0>;
+                       status = "disabled";
+               };
+
                pcie1: pcie@21020000 {
                        compatible = "ti,keystone-pcie","snps,dw-pcie";
                        clocks = <&clkpcie1>;
index 61883cb969d2131323f0c191a5c938b9c9f3923e..f462f1043531682f2c00dcc9f287dad5df8dd03e 100644 (file)
                reg = <0x00000008 0x00000000 0x00000000 0x80000000>;
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dsp_common_memory: dsp-common-memory@81f800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
+
+       vcc3v3_dcin_reg: fixedregulator-vcc3v3-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "mmc0_fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
 };
 
 &k2g_pinctrl {
                        K2G_CORE_IOPAD(0x11d0) (BUFFER_CLASS_B | PIN_PULLDOWN | MUX_MODE0)      /* uart0_txd.uart0_txd */
                >;
        };
+
+       mmc0_pins: pinmux_mmc0_pins {
+               pinctrl-single,pins = <
+                       K2G_CORE_IOPAD(0x1300) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)        /* mmc0_dat3.mmc0_dat3 */
+                       K2G_CORE_IOPAD(0x1304) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)        /* mmc0_dat2.mmc0_dat2 */
+                       K2G_CORE_IOPAD(0x1308) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)        /* mmc0_dat1.mmc0_dat1 */
+                       K2G_CORE_IOPAD(0x130c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)        /* mmc0_dat0.mmc0_dat0 */
+                       K2G_CORE_IOPAD(0x1310) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)        /* mmc0_clk.mmc0_clk */
+                       K2G_CORE_IOPAD(0x1314) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE2)        /* mmc0_cmd.mmc0_cmd */
+                       K2G_CORE_IOPAD(0x12ec) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE3)        /* mmc0_sdcd.gpio1_12 */
+               >;
+       };
+
+       mmc1_pins: pinmux_mmc1_pins {
+               pinctrl-single,pins = <
+                       K2G_CORE_IOPAD(0x10ec) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat7.mmc1_dat7 */
+                       K2G_CORE_IOPAD(0x10f0) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat6.mmc1_dat6 */
+                       K2G_CORE_IOPAD(0x10f4) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat5.mmc1_dat5 */
+                       K2G_CORE_IOPAD(0x10f8) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat4.mmc1_dat4 */
+                       K2G_CORE_IOPAD(0x10fc) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat3.mmc1_dat3 */
+                       K2G_CORE_IOPAD(0x1100) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat2.mmc1_dat2 */
+                       K2G_CORE_IOPAD(0x1104) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat1.mmc1_dat1 */
+                       K2G_CORE_IOPAD(0x1108) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_dat0.mmc1_dat0 */
+                       K2G_CORE_IOPAD(0x110c) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_clk.mmc1_clk */
+                       K2G_CORE_IOPAD(0x1110) (BUFFER_CLASS_B | PIN_PULLUP | MUX_MODE0)        /* mmc1_cmd.mmc1_cmd */
+               >;
+       };
 };
 
 &uart0 {
        pinctrl-0 = <&uart0_pins>;
        status = "okay";
 };
+
+&gpio1 {
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&vcc3v3_dcin_reg>;
+       cd-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins>;
+       vmmc-supply = <&vcc3v3_dcin_reg>; /* VCC3V3_EMMC is connected to VCC3V3_DCIN */
+       status = "okay";
+};
+
+&dsp0 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
index d820d37b5148ec9f83985e55604b9f3ed2014d6d..78692745e0af2e5562f0f215b879e73f1c6df678 100644 (file)
                device_type = "memory";
                reg = <0x00000008 0x00000000 0x00000000 0x20000000>;
        };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dsp_common_memory: dsp-common-memory@81f800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
 };
 
 &k2g_pinctrl {
@@ -33,3 +46,8 @@
        pinctrl-0 = <&uart0_pins>;
        status = "okay";
 };
+
+&dsp0 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
index a789f75a1ed522e57b8a23f5306674d19e4db6ee..826b286665e62491bc85dccf65f0528cc425512c 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/pinctrl/keystone.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        compatible = "ti,k2g","ti,keystone";
@@ -27,6 +28,7 @@
 
        aliases {
                serial0 = &uart0;
+               rproc0 = &dsp0;
        };
 
        cpus {
                        status = "disabled";
                };
 
+               dcan0: can@0260B200 {
+                       compatible = "ti,am4372-d_can", "ti,am3352-d_can";
+                       reg = <0x0260B200 0x200>;
+                       interrupts = <GIC_SPI 190 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+                       power-domains = <&k2g_pds 0x0008>;
+                       clocks = <&k2g_clks 0x0008 1>;
+               };
+
+               dcan1: can@0260B400 {
+                       compatible = "ti,am4372-d_can", "ti,am3352-d_can";
+                       reg = <0x0260B400 0x200>;
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+                       power-domains = <&k2g_pds 0x0009>;
+                       clocks = <&k2g_clks 0x0009 1>;
+               };
+
                kirq0: keystone_irq@026202a0 {
                        compatible = "ti,keystone-irq";
                        interrupts = <GIC_SPI 1 IRQ_TYPE_EDGE_RISING>;
                        gpio,syscon-dev = <&devctrl 0x240>;
                };
 
+               dsp0: dsp@10800000 {
+                       compatible = "ti,k2g-dsp";
+                       reg = <0x10800000 0x00100000>,
+                             <0x10e00000 0x00008000>,
+                             <0x10f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       power-domains = <&k2g_pds 0x0046>;
+                       ti,syscon-dev = <&devctrl 0x844>;
+                       resets = <&k2g_reset 0x0046 0x1>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <0 8>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio0 27 0>;
+                       status = "disabled";
+               };
+
                msgmgr: msgmgr@02a00000 {
                        compatible = "ti,k2g-message-manager";
                        #mbox-cells = <2>;
                        interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
                };
+
+               pmmc: pmmc@02921c00 {
+                       compatible = "ti,k2g-sci";
+                       /*
+                        * In case of rare platforms that does not use k2g as
+                        * system master, use /delete-property/
+                        */
+                       ti,system-reboot-controller;
+                       mbox-names = "rx", "tx";
+                       mboxes= <&msgmgr 5 2>,
+                               <&msgmgr 0 0>;
+                       reg-names = "debug_messages";
+                       reg = <0x02921c00 0x400>;
+
+                       k2g_pds: power-controller {
+                               compatible = "ti,sci-pm-domain";
+                               #power-domain-cells = <1>;
+                       };
+
+                       k2g_clks: clocks {
+                               compatible = "ti,k2g-sci-clk";
+                               #clock-cells = <2>;
+                       };
+
+                       k2g_reset: reset-controller {
+                               compatible = "ti,sci-reset";
+                               #reset-cells = <2>;
+                       };
+               };
+
+               gpio0: gpio@2603000 {
+                       compatible = "ti,k2g-gpio", "ti,keystone-gpio";
+                       reg = <0x02603000 0x100>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       interrupts = <GIC_SPI 432 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 433 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 434 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 435 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 436 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 437 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 438 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 439 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 440 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       ti,ngpio = <144>;
+                       ti,davinci-gpio-unbanked = <0>;
+                       clocks = <&k2g_clks 0x001b 0x0>;
+                       clock-names = "gpio";
+               };
+
+               gpio1: gpio@260a000 {
+                       compatible = "ti,k2g-gpio", "ti,keystone-gpio";
+                       reg = <0x0260a000 0x100>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <GIC_SPI 442 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 443 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 444 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 445 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 446 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       ti,ngpio = <68>;
+                       ti,davinci-gpio-unbanked = <0>;
+                       clocks = <&k2g_clks 0x001c 0x0>;
+                       clock-names = "gpio";
+               };
+
+               edma0: edma@02700000 {
+                       compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
+                       reg =   <0x02700000 0x8000>;
+                       reg-names = "edma3_cc";
+                       interrupts = <GIC_SPI 200 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 216 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "edma3_ccint", "emda3_mperr",
+                                         "edma3_ccerrint";
+                       dma-requests = <64>;
+                       #dma-cells = <2>;
+
+                       ti,tptcs = <&edma0_tptc0 7>, <&edma0_tptc1 0>;
+
+                       ti,edma-memcpy-channels = <32 33 34 35>;
+
+                       power-domains = <&k2g_pds 0x3f>;
+               };
+
+               edma0_tptc0: tptc@02760000 {
+                       compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
+                       reg =   <0x02760000 0x400>;
+                       power-domains = <&k2g_pds 0x3f>;
+               };
+
+               edma0_tptc1: tptc@02768000 {
+                       compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
+                       reg =   <0x02768000 0x400>;
+                       power-domains = <&k2g_pds 0x3f>;
+               };
+
+               edma1: edma@02728000 {
+                       compatible = "ti,k2g-edma3-tpcc", "ti,edma3-tpcc";
+                       reg =   <0x02728000 0x8000>;
+                       reg-names = "edma3_cc";
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 219 IRQ_TYPE_EDGE_RISING>,
+                                       <GIC_SPI 220 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "edma3_ccint", "emda3_mperr",
+                                         "edma3_ccerrint";
+                       dma-requests = <64>;
+                       #dma-cells = <2>;
+
+                       ti,tptcs = <&edma1_tptc0 7>, <&edma1_tptc1 0>;
+
+                       /*
+                        * memcpy is disabled, can be enabled with:
+                        * ti,edma-memcpy-channels = <12 13 14 15>;
+                        * for example.
+                        */
+
+                       power-domains = <&k2g_pds 0x4f>;
+               };
+
+               edma1_tptc0: tptc@027b0000 {
+                       compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
+                       reg =   <0x027b0000 0x400>;
+                       power-domains = <&k2g_pds 0x4f>;
+               };
+
+               edma1_tptc1: tptc@027b8000 {
+                       compatible = "ti,k2g-edma3-tptc", "ti,edma3-tptc";
+                       reg =   <0x027b8000 0x400>;
+                       power-domains = <&k2g_pds 0x4f>;
+               };
+
+               mmc0: mmc@23000000 {
+                       compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
+                       reg = <0x23000000 0x400>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_EDGE_RISING>;
+                       dmas = <&edma1 24 0>, <&edma1 25 0>;
+                       dma-names = "tx", "rx";
+                       bus-width = <4>;
+                       ti,needs-special-reset;
+                       no-1-8-v;
+                       max-frequency = <96000000>;
+                       power-domains = <&k2g_pds 0xb>;
+                       clocks = <&k2g_clks 0xb 1>, <&k2g_clks 0xb 2>;
+                       clock-names = "fck", "mmchsdb_fck";
+                       status = "disabled";
+               };
+
+               mmc1: mmc@23100000 {
+                       compatible = "ti,k2g-hsmmc", "ti,omap4-hsmmc";
+                       reg = <0x23100000 0x400>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_EDGE_RISING>;
+                       dmas = <&edma1 26 0>, <&edma1 27 0>;
+                       dma-names = "tx", "rx";
+                       bus-width = <8>;
+                       ti,needs-special-reset;
+                       ti,non-removable;
+                       max-frequency = <96000000>;
+                       power-domains = <&k2g_pds 0xc>;
+                       clocks = <&k2g_clks 0xc 1>, <&k2g_clks 0xc 2>;
+                       clock-names = "fck", "mmchsdb_fck";
+                       status = "disabled";
+               };
        };
 };
index 2156ff92d08f1a93608ef33a5c129b44775689a0..6dd13b98aababd4f10676f9f49ce647c607c9e17 100644 (file)
        compatible =  "ti,k2hk-evm", "ti,k2hk", "ti,keystone";
        model = "Texas Instruments Keystone 2 Kepler/Hawking EVM";
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dsp_common_memory: dsp-common-memory@81f800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
+
        soc {
                clocks {
                        refclksys: refclksys {
                reg = <1>;
        };
 };
+
+&dsp0 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp1 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp2 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp3 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp4 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp5 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp6 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp7 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
index 69d449430511a45b2d2d242771b1ac9b7402792a..31dc00e4e5fd8ce1124c48e575b9772804a0798f 100644 (file)
                };
        };
 
+       aliases {
+               rproc0 = &dsp0;
+               rproc1 = &dsp1;
+               rproc2 = &dsp2;
+               rproc3 = &dsp3;
+               rproc4 = &dsp4;
+               rproc5 = &dsp5;
+               rproc6 = &dsp6;
+               rproc7 = &dsp7;
+       };
+
        soc {
                /include/ "keystone-k2hk-clocks.dtsi"
 
                        gpio,syscon-dev = <&devctrl 0x25c>;
                };
 
+               dsp0: dsp@10800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x10800000 0x00100000>,
+                             <0x10e00000 0x00008000>,
+                             <0x10f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem0>;
+                       ti,syscon-dev = <&devctrl 0x40>;
+                       resets = <&pscrst 0>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <0 8>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio0 27 0>;
+                       status = "disabled";
+               };
+
+               dsp1: dsp@11800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x11800000 0x00100000>,
+                             <0x11e00000 0x00008000>,
+                             <0x11f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem1>;
+                       ti,syscon-dev = <&devctrl 0x44>;
+                       resets = <&pscrst 1>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <1 9>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio1 27 0>;
+                       status = "disabled";
+               };
+
+               dsp2: dsp@12800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x12800000 0x00100000>,
+                             <0x12e00000 0x00008000>,
+                             <0x12f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem2>;
+                       ti,syscon-dev = <&devctrl 0x48>;
+                       resets = <&pscrst 2>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <2 10>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio2 27 0>;
+                       status = "disabled";
+               };
+
+               dsp3: dsp@13800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x13800000 0x00100000>,
+                             <0x13e00000 0x00008000>,
+                             <0x13f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem3>;
+                       ti,syscon-dev = <&devctrl 0x4c>;
+                       resets = <&pscrst 3>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <3 11>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio3 27 0>;
+                       status = "disabled";
+               };
+
+               dsp4: dsp@14800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x14800000 0x00100000>,
+                             <0x14e00000 0x00008000>,
+                             <0x14f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem4>;
+                       ti,syscon-dev = <&devctrl 0x50>;
+                       resets = <&pscrst 4>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <4 12>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio4 27 0>;
+                       status = "disabled";
+               };
+
+               dsp5: dsp@15800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x15800000 0x00100000>,
+                             <0x15e00000 0x00008000>,
+                             <0x15f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem5>;
+                       ti,syscon-dev = <&devctrl 0x54>;
+                       resets = <&pscrst 5>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <5 13>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio5 27 0>;
+                       status = "disabled";
+               };
+
+               dsp6: dsp@16800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x16800000 0x00100000>,
+                             <0x16e00000 0x00008000>,
+                             <0x16f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem6>;
+                       ti,syscon-dev = <&devctrl 0x58>;
+                       resets = <&pscrst 6>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <6 14>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio6 27 0>;
+                       status = "disabled";
+               };
+
+               dsp7: dsp@17800000 {
+                       compatible = "ti,k2hk-dsp";
+                       reg = <0x17800000 0x00100000>,
+                             <0x17e00000 0x00008000>,
+                             <0x17f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem7>;
+                       ti,syscon-dev = <&devctrl 0x5c>;
+                       resets = <&pscrst 7>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <7 15>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio7 27 0>;
+                       status = "disabled";
+               };
+
                mdio: mdio@02090300 {
                        compatible      = "ti,keystone_mdio", "ti,davinci_mdio";
                        #address-cells = <1>;
index 056b42f99d7acabdf531af6654d282979ddebae7..528667618db45ee625916eb6d72d116a8e9e4aed 100644 (file)
        compatible = "ti,k2l-evm", "ti,k2l", "ti,keystone";
        model = "Texas Instruments Keystone 2 Lamarr EVM";
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               dsp_common_memory: dsp-common-memory@81f800000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
+                       reusable;
+                       status = "okay";
+               };
+       };
+
        soc {
                clocks {
                        refclksys: refclksys {
                reg = <1>;
        };
 };
+
+&dsp0 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp1 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp2 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
+
+&dsp3 {
+       memory-region = <&dsp_common_memory>;
+       status = "okay";
+};
index 148650406cf701cd7ffc5ac92d9054d606e97bfd..4431310bc922bf3c6e4de97f4bcd0dc2ee262056 100644 (file)
                };
        };
 
+       aliases {
+               rproc0 = &dsp0;
+               rproc1 = &dsp1;
+               rproc2 = &dsp2;
+               rproc3 = &dsp3;
+       };
+
        soc {
                /include/ "keystone-k2l-clocks.dtsi"
 
                        gpio,syscon-dev = <&devctrl 0x24c>;
                };
 
+               dsp0: dsp@10800000 {
+                       compatible = "ti,k2l-dsp";
+                       reg = <0x10800000 0x00100000>,
+                             <0x10e00000 0x00008000>,
+                             <0x10f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem0>;
+                       ti,syscon-dev = <&devctrl 0x844>;
+                       resets = <&pscrst 0>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <0 8>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio0 27 0>;
+                       status = "disabled";
+               };
+
+               dsp1: dsp@11800000 {
+                       compatible = "ti,k2l-dsp";
+                       reg = <0x11800000 0x00100000>,
+                             <0x11e00000 0x00008000>,
+                             <0x11f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem1>;
+                       ti,syscon-dev = <&devctrl 0x848>;
+                       resets = <&pscrst 1>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <1 9>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio1 27 0>;
+                       status = "disabled";
+               };
+
+               dsp2: dsp@12800000 {
+                       compatible = "ti,k2l-dsp";
+                       reg = <0x12800000 0x00100000>,
+                             <0x12e00000 0x00008000>,
+                             <0x12f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem2>;
+                       ti,syscon-dev = <&devctrl 0x84c>;
+                       resets = <&pscrst 2>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <2 10>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio2 27 0>;
+                       status = "disabled";
+               };
+
+               dsp3: dsp@13800000 {
+                       compatible = "ti,k2l-dsp";
+                       reg = <0x13800000 0x00100000>,
+                             <0x13e00000 0x00008000>,
+                             <0x13f00000 0x00008000>;
+                       reg-names = "l2sram", "l1pram", "l1dram";
+                       clocks = <&clkgem3>;
+                       ti,syscon-dev = <&devctrl 0x850>;
+                       resets = <&pscrst 3>;
+                       interrupt-parent = <&kirq0>;
+                       interrupts = <3 11>;
+                       interrupt-names = "vring", "exception";
+                       kick-gpios = <&dspgpio3 27 0>;
+                       status = "disabled";
+               };
+
                mdio: mdio@26200f00 {
                        compatible      = "ti,keystone_mdio", "ti,davinci_mdio";
                        #address-cells = <1>;
index d573e03f3134b709f8d6c8ef6ca37c4d7dc9b9c4..f003f3f1bd659d39139f03890565162cc6e321b6 100644 (file)
@@ -1,6 +1,6 @@
 / {
        mbus@f1000000 {
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,kirkwood-pcie";
                        status = "disabled";
                        device_type = "pci";
@@ -24,6 +24,7 @@
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &intc 9>;
                                marvell,pcie-port = <0>;
index 748d0b62f233348f4e0c01216053087932a327b0..47d4b3d3d9e969ee5ca47dd32fb0c53035c8e700 100644 (file)
@@ -1,6 +1,6 @@
 / {
        mbus@f1000000 {
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,kirkwood-pcie";
                        status = "disabled";
                        device_type = "pci";
@@ -24,6 +24,7 @@
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &intc 9>;
                                marvell,pcie-port = <0>;
index bb63d2d50fc533f9f264b16ef7fe8b6b3ba441ac..a13dad0a7c080b84db015d36d949daa544bcb05f 100644 (file)
@@ -1,6 +1,6 @@
 / {
        mbus@f1000000 {
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,kirkwood-pcie";
                        status = "disabled";
                        device_type = "pci";
@@ -28,6 +28,7 @@
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &intc 9>;
                                marvell,pcie-port = <0>;
@@ -45,6 +46,7 @@
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
                                          0x81000000 0 0 0x81000000 0x2 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &intc 10>;
                                marvell,pcie-port = <1>;
index 720c210d491dc80e25241dac26506dd52533010e..90d4d71b6683cbaa196a9fe16581dce41ef44ea1 100644 (file)
@@ -1,6 +1,6 @@
 / {
        mbus@f1000000 {
-               pciec: pcie-controller@82000000 {
+               pciec: pcie@82000000 {
                        compatible = "marvell,kirkwood-pcie";
                        status = "disabled";
                        device_type = "pci";
@@ -24,6 +24,7 @@
                                #interrupt-cells = <1>;
                                ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
                                          0x81000000 0 0 0x81000000 0x1 0 1 0>;
+                               bus-range = <0x00 0xff>;
                                interrupt-map-mask = <0 0 0 0>;
                                interrupt-map = <0 0 0 0 &intc 9>;
                                marvell,pcie-port = <0>;
index 43e9364083de84383a34815c04a6bd1021b3baa0..b4575bbaf0852a4cfff98f5bae93f8eb93c4d6ef 100644 (file)
        interrupts-extended = <&intc 83 &omap3_pmx_core 0x11a>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins &mmc1_cd>;
-       cd-gpios = <&gpio4 31 IRQ_TYPE_LEVEL_LOW>;              /* gpio127 */
+       cd-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>;         /* gpio127 */
        vmmc-supply = <&vmmc1>;
        bus-width = <4>;
        cap-power-off-card;
index 15204e44161da6c98e8528488c8bf2be3a46ca6a..cd6ad072e72c17ebe287b72d3f26657a402a97ba 100644 (file)
                        };
 
                        uart_A: serial@84c0 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
                                reg = <0x84c0 0x18>;
                                interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
                                status = "disabled";
                        };
 
                        uart_B: serial@84dc {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
                                reg = <0x84dc 0x18>;
                                interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
                                status = "disabled";
                                status = "disabled";
                        };
 
+                       pwm_ab: pwm@8550 {
+                               compatible = "amlogic,meson-pwm";
+                               reg = <0x8550 0x10>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
+                       pwm_cd: pwm@8650 {
+                               compatible = "amlogic,meson-pwm";
+                               reg = <0x8650 0x10>;
+                               #pwm-cells = <3>;
+                               status = "disabled";
+                       };
+
                        saradc: adc@8680 {
                                compatible = "amlogic,meson-saradc";
                                reg = <0x8680 0x34>;
                        };
 
                        uart_C: serial@8700 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson6-uart", "amlogic,meson-uart";
                                reg = <0x8700 0x18>;
                                interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
                                status = "disabled";
                        };
 
                        uart_AO: serial@4c0 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson6-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
                                reg = <0x4c0 0x18>;
                                interrupts = <GIC_SPI 90 IRQ_TYPE_EDGE_RISING>;
                                status = "disabled";
                        interrupt-names = "macirq";
                        status = "disabled";
                };
+
+               ahb_sram: sram@d9000000 {
+                       compatible = "mmio-sram";
+                       reg = <0xd9000000 0x20000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0xd9000000 0x20000>;
+               };
        };
 }; /* end of / */
index 8557b6117a4b97f23bf2359d585d1e6c2c787d49..ef281d2900527703af28b49f425df50415d1bd2d 100644 (file)
                };
        };
 
+       xtal: xtal-clk {
+               compatible = "fixed-clock";
+               clock-frequency = <24000000>;
+               clock-output-names = "xtal";
+               #clock-cells = <0>;
+       };
+
        clk81: clk@0 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <200000000>;
        };
 }; /* end of / */
+
+
+&uart_AO {
+       clocks = <&xtal>, <&clk81>, <&clk81>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_A {
+       clocks = <&xtal>, <&clk81>, <&clk81>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+       clocks = <&xtal>, <&clk81>, <&clk81>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_C {
+       clocks = <&xtal>, <&clk81>, <&clk81>;
+       clock-names = "xtal", "pclk", "baud";
+};
index cada35828931e49a4e37d750bfbe837064488262..b98d44fde6b60bc9301a3b23cb65f2ccd0d8e64c 100644 (file)
 &cbus {
        clkc: clock-controller@4000 {
                #clock-cells = <1>;
+               #reset-cells = <1>;
                compatible = "amlogic,meson8-clkc";
                reg = <0x8000 0x4>, <0x4000 0x460>;
        };
 
+       pwm_ef: pwm@86c0 {
+               compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
+               reg = <0x86c0 0x10>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
        pinctrl_cbus: pinctrl@9880 {
                compatible = "amlogic,meson8-cbus-pinctrl";
                reg = <0x9880 0x10>;
        arm,filter-ranges = <0x100000 0xc0000000>;
 };
 
+&pwm_ab {
+       compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
+};
+
+&pwm_cd {
+       compatible = "amlogic,meson8-pwm", "amlogic,meson8b-pwm";
+};
+
 &saradc {
        compatible = "amlogic,meson8-saradc", "amlogic,meson-saradc";
        clocks = <&clkc CLKID_XTAL>,
index 72e4f425f190d03902713831eb8ba5b1a6373c77..bc278da7df0d93b260eb36d0080b64de2711c592 100644 (file)
 &cbus {
        clkc: clock-controller@4000 {
                #clock-cells = <1>;
+               #reset-cells = <1>;
                compatible = "amlogic,meson8b-clkc";
                reg = <0x8000 0x4>, <0x4000 0x460>;
        };
                #reset-cells = <1>;
        };
 
-       pwm_ab: pwm@8550 {
-               compatible = "amlogic,meson8b-pwm";
-               reg = <0x8550 0x10>;
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
-       pwm_cd: pwm@8650 {
-               compatible = "amlogic,meson8b-pwm";
-               reg = <0x8650 0x10>;
-               #pwm-cells = <3>;
-               status = "disabled";
-       };
-
        pwm_ef: pwm@86c0 {
                compatible = "amlogic,meson8b-pwm";
                reg = <0x86c0 0x10>;
                status = "disabled";
        };
 
-       wdt: watchdog@9900 {
-               compatible = "amlogic,meson8b-wdt";
-               reg = <0x9900 0x8>;
-               interrupts = <0 0 1>;
-       };
-
        pinctrl_cbus: pinctrl@9880 {
                compatible = "amlogic,meson8b-cbus-pinctrl";
                reg = <0x9880 0x10>;
        arm,filter-ranges = <0x100000 0xc0000000>;
 };
 
+&pwm_ab {
+       compatible = "amlogic,meson8b-pwm";
+};
+
+&pwm_cd {
+       compatible = "amlogic,meson8b-pwm";
+};
+
 &saradc {
        compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
        clocks = <&clkc CLKID_XTAL>,
        clock-names = "usb_general", "usb";
        resets = <&reset RESET_USB_OTG>;
 };
+
+&wdt {
+       compatible = "amlogic,meson8b-wdt";
+};
index 1eb5da1dc8f0a9fd2ee02195678b56aa67ddf23a..4d61e5b1334a632b984016bada159e94ce34e1a2 100644 (file)
                regulator-min-microvolt = <2775000>;
                regulator-max-microvolt = <2775000>;
                regulator-enable-ramp-delay = <1000>;
+               regulator-initial-mode = <0x00>; /* NORMAL */
        };
 };
index f1efdc63656a52bb271aa3d8ac554aede0e74d68..afe12e5b51f95374e2f8f5f91b91f2bbc189e193 100644 (file)
@@ -13,6 +13,7 @@
  */
 
 #include <dt-bindings/clock/mt2701-clk.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/power/mt2701-power.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                compatible = "mediatek,mt2701-smi-larb";
                reg = <0 0x14010000 0 0x1000>;
                mediatek,smi = <&smi_common>;
+               mediatek,larb-id = <0>;
                clocks = <&mmsys CLK_MM_SMI_LARB0>,
                         <&mmsys CLK_MM_SMI_LARB0>;
                clock-names = "apb", "smi";
                compatible = "mediatek,mt2701-smi-larb";
                reg = <0 0x15001000 0 0x1000>;
                mediatek,smi = <&smi_common>;
+               mediatek,larb-id = <2>;
                clocks = <&imgsys CLK_IMG_SMI_COMM>,
                         <&imgsys CLK_IMG_SMI_COMM>;
                clock-names = "apb", "smi";
                compatible = "mediatek,mt2701-smi-larb";
                reg = <0 0x16010000 0 0x1000>;
                mediatek,smi = <&smi_common>;
+               mediatek,larb-id = <1>;
                clocks = <&vdecsys CLK_VDEC_CKGEN>,
                         <&vdecsys CLK_VDEC_LARB>;
                clock-names = "apb", "smi";
                #clock-cells = <1>;
        };
 
+       usb0: usb@1a1c0000 {
+               compatible = "mediatek,mt8173-xhci";
+               reg = <0 0x1a1c0000 0 0x1000>,
+                     <0 0x1a1c4700 0 0x0100>;
+               reg-names = "mac", "ippc";
+               interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
+                        <&topckgen CLK_TOP_ETHIF_SEL>;
+               clock-names = "sys_ck", "ref_ck";
+               power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
+               phys = <&u2port0 PHY_TYPE_USB2>, <&u3port0 PHY_TYPE_USB3>;
+               status = "disabled";
+       };
+
+       u3phy0: usb-phy@1a1c4000 {
+               compatible = "mediatek,mt2701-u3phy";
+               reg = <0 0x1a1c4000 0 0x0700>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               status = "disabled";
+
+               u2port0: usb-phy@1a1c4800 {
+                       reg = <0 0x1a1c4800 0 0x0100>;
+                       clocks = <&topckgen CLK_TOP_USB_PHY48M>;
+                       clock-names = "ref";
+                       #phy-cells = <1>;
+                       status = "okay";
+               };
+
+               u3port0: usb-phy@1a1c4900 {
+                       reg = <0 0x1a1c4900 0 0x0700>;
+                       clocks = <&clk26m>;
+                       clock-names = "ref";
+                       #phy-cells = <1>;
+                       status = "okay";
+               };
+       };
+
+       usb1: usb@1a240000 {
+               compatible = "mediatek,mt8173-xhci";
+               reg = <0 0x1a240000 0 0x1000>,
+                     <0 0x1a244700 0 0x0100>;
+               reg-names = "mac", "ippc";
+               interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
+                        <&topckgen CLK_TOP_ETHIF_SEL>;
+               clock-names = "sys_ck", "ref_ck";
+               power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
+               phys = <&u2port1 PHY_TYPE_USB2>, <&u3port1 PHY_TYPE_USB3>;
+               status = "disabled";
+       };
+
+       u3phy1: usb-phy@1a244000 {
+               compatible = "mediatek,mt2701-u3phy";
+               reg = <0 0x1a244000 0 0x0700>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+               status = "disabled";
+
+               u2port1: usb-phy@1a244800 {
+                       reg = <0 0x1a244800 0 0x0100>;
+                       clocks = <&topckgen CLK_TOP_USB_PHY48M>;
+                       clock-names = "ref";
+                       #phy-cells = <1>;
+                       status = "okay";
+               };
+
+               u3port1: usb-phy@1a244900 {
+                       reg = <0 0x1a244900 0 0x0700>;
+                       clocks = <&clk26m>;
+                       clock-names = "ref";
+                       #phy-cells = <1>;
+                       status = "okay";
+               };
+       };
+
        ethsys: syscon@1b000000 {
                compatible = "mediatek,mt2701-ethsys", "syscon";
                reg = <0 0x1b000000 0 0x1000>;
                #clock-cells = <1>;
        };
 
+       eth: ethernet@1b100000 {
+               compatible = "mediatek,mt2701-eth", "syscon";
+               reg = <0 0x1b100000 0 0x20000>;
+               interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
+                        <&ethsys CLK_ETHSYS_ESW>,
+                        <&ethsys CLK_ETHSYS_GP1>,
+                        <&ethsys CLK_ETHSYS_GP2>,
+                        <&apmixedsys CLK_APMIXED_TRGPLL>;
+               clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
+               resets = <&ethsys MT2701_ETHSYS_FE_RST>,
+                        <&ethsys MT2701_ETHSYS_GMAC_RST>,
+                        <&ethsys MT2701_ETHSYS_PPE_RST>;
+               reset-names = "fe", "gmac", "ppe";
+               power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
+               mediatek,ethsys = <&ethsys>;
+               mediatek,pctl = <&syscfg_pctl_a>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
        bdpsys: syscon@1c000000 {
                compatible = "mediatek,mt2701-bdpsys", "syscon";
                reg = <0 0x1c000000 0 0x1000>;
diff --git a/arch/arm/boot/dts/mt6323.dtsi b/arch/arm/boot/dts/mt6323.dtsi
new file mode 100644 (file)
index 0000000..7c783d6
--- /dev/null
@@ -0,0 +1,241 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: John Crispin <john@phrozen.org>
+ *        Sean Wang <sean.wang@mediatek.com>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+&pwrap {
+       pmic: mt6323 {
+               compatible = "mediatek,mt6323";
+               interrupt-parent = <&pio>;
+               interrupts = <150 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               mt6323regulator: mt6323regulator{
+                       compatible = "mediatek,mt6323-regulator";
+
+                       mt6323_vproc_reg: buck_vproc{
+                               regulator-name = "vproc";
+                               regulator-min-microvolt = < 700000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vsys_reg: buck_vsys{
+                               regulator-name = "vsys";
+                               regulator-min-microvolt = <1400000>;
+                               regulator-max-microvolt = <2987500>;
+                               regulator-ramp-delay = <25000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vpa_reg: buck_vpa{
+                               regulator-name = "vpa";
+                               regulator-min-microvolt = < 500000>;
+                               regulator-max-microvolt = <3650000>;
+                       };
+
+                       mt6323_vtcxo_reg: ldo_vtcxo{
+                               regulator-name = "vtcxo";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <90>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vcn28_reg: ldo_vcn28{
+                               regulator-name = "vcn28";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <185>;
+                       };
+
+                       mt6323_vcn33_bt_reg: ldo_vcn33_bt{
+                               regulator-name = "vcn33_bt";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-enable-ramp-delay = <185>;
+                       };
+
+                       mt6323_vcn33_wifi_reg: ldo_vcn33_wifi{
+                               regulator-name = "vcn33_wifi";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-enable-ramp-delay = <185>;
+                       };
+
+                       mt6323_va_reg: ldo_va{
+                               regulator-name = "va";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <216>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vcama_reg: ldo_vcama{
+                               regulator-name = "vcama";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vio28_reg: ldo_vio28{
+                               regulator-name = "vio28";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <216>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vusb_reg: ldo_vusb{
+                               regulator-name = "vusb";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <216>;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vmc_reg: ldo_vmc{
+                               regulator-name = "vmc";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <36>;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vmch_reg: ldo_vmch{
+                               regulator-name = "vmch";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <36>;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vemc3v3_reg: ldo_vemc3v3{
+                               regulator-name = "vemc3v3";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <36>;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vgp1_reg: ldo_vgp1{
+                               regulator-name = "vgp1";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vgp2_reg: ldo_vgp2{
+                               regulator-name = "vgp2";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vgp3_reg: ldo_vgp3{
+                               regulator-name = "vgp3";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vcn18_reg: ldo_vcn18{
+                               regulator-name = "vcn18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vsim1_reg: ldo_vsim1{
+                               regulator-name = "vsim1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vsim2_reg: ldo_vsim2{
+                               regulator-name = "vsim2";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vrtc_reg: ldo_vrtc{
+                               regulator-name = "vrtc";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vcamaf_reg: ldo_vcamaf{
+                               regulator-name = "vcamaf";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vibr_reg: ldo_vibr{
+                               regulator-name = "vibr";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-enable-ramp-delay = <36>;
+                       };
+
+                       mt6323_vrf18_reg: ldo_vrf18{
+                               regulator-name = "vrf18";
+                               regulator-min-microvolt = <1825000>;
+                               regulator-max-microvolt = <1825000>;
+                               regulator-enable-ramp-delay = <187>;
+                       };
+
+                       mt6323_vm_reg: ldo_vm{
+                               regulator-name = "vm";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <216>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vio18_reg: ldo_vio18{
+                               regulator-name = "vio18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <216>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       mt6323_vcamd_reg: ldo_vcamd{
+                               regulator-name = "vcamd";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+
+                       mt6323_vcamio_reg: ldo_vcamio{
+                               regulator-name = "vcamio";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <216>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/mt7623-evb.dts b/arch/arm/boot/dts/mt7623-evb.dts
deleted file mode 100644 (file)
index b60b41c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2016 MediaTek Inc.
- * Author: John Crispin <john@phrozen.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-/dts-v1/;
-#include "mt7623.dtsi"
-
-/ {
-       model = "MediaTek MT7623 evaluation board";
-       compatible = "mediatek,mt7623-evb", "mediatek,mt7623";
-
-       chosen {
-               stdout-path = &uart2;
-       };
-
-       memory {
-               reg = <0 0x80000000 0 0x40000000>;
-       };
-};
-
-&uart2 {
-       status = "okay";
-};
index d81158b2b02f00cba1446bbba3e62139481f0d89..ec8a07415cb38816db5990aa240744b9d9b27e64 100644 (file)
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/phy/phy.h>
 #include <dt-bindings/reset/mt2701-resets.h>
+#include <dt-bindings/thermal/thermal.h>
 #include "skeleton64.dtsi"
 
 / {
        compatible = "mediatek,mt7623";
        interrupt-parent = <&sysirq>;
 
+       cpu_opp_table: opp_table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-98000000 {
+                       opp-hz = /bits/ 64 <98000000>;
+                       opp-microvolt = <1050000>;
+               };
+
+               opp-198000000 {
+                       opp-hz = /bits/ 64 <198000000>;
+                       opp-microvolt = <1050000>;
+               };
+
+               opp-398000000 {
+                       opp-hz = /bits/ 64 <398000000>;
+                       opp-microvolt = <1050000>;
+               };
+
+               opp-598000000 {
+                       opp-hz = /bits/ 64 <598000000>;
+                       opp-microvolt = <1050000>;
+               };
+
+               opp-747500000 {
+                       opp-hz = /bits/ 64 <747500000>;
+                       opp-microvolt = <1050000>;
+               };
+
+               opp-1040000000 {
+                       opp-hz = /bits/ 64 <1040000000>;
+                       opp-microvolt = <1150000>;
+               };
+
+               opp-1196000000 {
+                       opp-hz = /bits/ 64 <1196000000>;
+                       opp-microvolt = <1200000>;
+               };
+
+               opp-1300000000 {
+                       opp-hz = /bits/ 64 <1300000000>;
+                       opp-microvolt = <1300000>;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                enable-method = "mediatek,mt6589-smp";
 
-               cpu@0 {
+               cpu0: cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a7";
                        reg = <0x0>;
+                       clocks = <&infracfg CLK_INFRA_CPUSEL>,
+                                <&apmixedsys CLK_APMIXED_MAINPLL>;
+                       clock-names = "cpu", "intermediate";
+                       operating-points-v2 = <&cpu_opp_table>;
+                       #cooling-cells = <2>;
+                       cooling-min-level = <0>;
+                       cooling-max-level = <7>;
+                       clock-frequency = <1300000000>;
                };
-               cpu@1 {
+
+               cpu1: cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a7";
                        reg = <0x1>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clock-frequency = <1300000000>;
                };
-               cpu@2 {
+
+               cpu2: cpu@2 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a7";
                        reg = <0x2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clock-frequency = <1300000000>;
                };
-               cpu@3 {
+
+               cpu3: cpu@3 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a7";
                        reg = <0x3>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       clock-frequency = <1300000000>;
                };
        };
 
                clock-output-names = "clk26m";
        };
 
+       thermal-zones {
+                       cpu_thermal: cpu_thermal {
+                               polling-delay-passive = <1000>;
+                               polling-delay = <1000>;
+
+                               thermal-sensors = <&thermal 0>;
+
+                               trips {
+                                       cpu_passive: cpu_passive {
+                                               temperature = <47000>;
+                                               hysteresis = <2000>;
+                                               type = "passive";
+                                       };
+
+                                       cpu_active: cpu_active {
+                                               temperature = <67000>;
+                                               hysteresis = <2000>;
+                                               type = "active";
+                                       };
+
+                                       cpu_hot: cpu_hot {
+                                               temperature = <87000>;
+                                               hysteresis = <2000>;
+                                               type = "hot";
+                                       };
+
+                                       cpu_crit {
+                                               temperature = <107000>;
+                                               hysteresis = <2000>;
+                                               type = "critical";
+                                       };
+                               };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_passive>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+
+                               map1 {
+                                       trip = <&cpu_active>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+
+                               map2 {
+                                       trip = <&cpu_hot>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv7-timer";
                interrupt-parent = <&gic>;
                clock-names = "spi", "wrap";
        };
 
-       cir: cir@0x10013000 {
+       cir: cir@10013000 {
                compatible = "mediatek,mt7623-cir";
                reg = <0 0x10013000 0 0x1000>;
                interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_LOW>;
        efuse: efuse@10206000 {
                compatible = "mediatek,mt7623-efuse",
                             "mediatek,mt8173-efuse";
-               reg        = <0 0x10206000 0 0x1000>;
+               reg = <0 0x10206000 0 0x1000>;
                #address-cells = <1>;
                #size-cells = <1>;
                thermal_calibration_data: calib@424 {
                nvmem-cell-names = "calibration-data";
        };
 
+       nandc: nfi@1100d000 {
+               compatible = "mediatek,mt7623-nfc",
+                            "mediatek,mt2701-nfc";
+               reg = <0 0x1100d000 0 0x1000>;
+               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
+               power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
+               clocks = <&pericfg CLK_PERI_NFI>,
+                        <&pericfg CLK_PERI_NFI_PAD>;
+               clock-names = "nfi_clk", "pad_clk";
+               status = "disabled";
+               ecc-engine = <&bch>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+       };
+
+       bch: ecc@1100e000 {
+               compatible = "mediatek,mt7623-ecc",
+                            "mediatek,mt2701-ecc";
+               reg = <0 0x1100e000 0 0x1000>;
+               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&pericfg CLK_PERI_NFI_ECC>;
+               clock-names = "nfiecc_clk";
+               status = "disabled";
+       };
+
        spi1: spi@11016000 {
                compatible = "mediatek,mt7623-spi",
                             "mediatek,mt2701-spi";
                status = "disabled";
        };
 
-       nandc: nfi@1100d000 {
-               compatible = "mediatek,mt7623-nfc",
-                            "mediatek,mt2701-nfc";
-               reg = <0 0x1100d000 0 0x1000>;
-               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
-               power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
-               clocks = <&pericfg CLK_PERI_NFI>,
-                        <&pericfg CLK_PERI_NFI_PAD>;
-               clock-names = "nfi_clk", "pad_clk";
-               status = "disabled";
-               ecc-engine = <&bch>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-       };
-
-       bch: ecc@1100e000 {
-               compatible = "mediatek,mt7623-ecc",
-                            "mediatek,mt2701-ecc";
-               reg = <0 0x1100e000 0 0x1000>;
-               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
-               clocks = <&pericfg CLK_PERI_NFI_ECC>;
-               clock-names = "nfiecc_clk";
-               status = "disabled";
-       };
-
        afe: audio-controller@11220000 {
                compatible = "mediatek,mt7623-audio",
                             "mediatek,mt2701-audio";
                compatible = "mediatek,mt7623-mmc",
                             "mediatek,mt8135-mmc";
                reg = <0 0x11240000 0 0x1000>;
-               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_LOW>;
+               interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&pericfg CLK_PERI_MSDC30_1>,
                         <&topckgen CLK_TOP_MSDC30_1_SEL>;
                clock-names = "source", "hclk";
                status = "disabled";
        };
 
+       hifsys: syscon@1a000000 {
+               compatible = "mediatek,mt7623-hifsys",
+                            "mediatek,mt2701-hifsys",
+                            "syscon";
+               reg = <0 0x1a000000 0 0x1000>;
+               #clock-cells = <1>;
+               #reset-cells = <1>;
+       };
+
        usb1: usb@1a1c0000 {
                compatible = "mediatek,mt7623-xhci",
                             "mediatek,mt8173-xhci";
        };
 
        u3phy1: usb-phy@1a1c4000 {
-               compatible = "mediatek,mt7623-u3phy", "mediatek,mt2701-u3phy";
+               compatible = "mediatek,mt7623-u3phy",
+                            "mediatek,mt2701-u3phy";
                reg = <0 0x1a1c4000 0 0x0700>;
                clocks = <&clk26m>;
                clock-names = "u3phya_ref";
        };
 
        u3phy2: usb-phy@1a244000 {
-               compatible = "mediatek,mt7623-u3phy", "mediatek,mt2701-u3phy";
+               compatible = "mediatek,mt7623-u3phy",
+                            "mediatek,mt2701-u3phy";
                reg = <0 0x1a244000 0 0x0700>;
                clocks = <&clk26m>;
                clock-names = "u3phya_ref";
                };
        };
 
-       hifsys: syscon@1a000000 {
-               compatible = "mediatek,mt7623-hifsys",
-                            "mediatek,mt2701-hifsys",
-                            "syscon";
-               reg = <0 0x1a000000 0 0x1000>;
-               #clock-cells = <1>;
-               #reset-cells = <1>;
-       };
-
        ethsys: syscon@1b000000 {
                compatible = "mediatek,mt7623-ethsys",
                             "mediatek,mt2701-ethsys",
        };
 
        eth: ethernet@1b100000 {
-               compatible = "mediatek,mt2701-eth", "syscon";
+               compatible = "mediatek,mt7623-eth",
+                            "mediatek,mt2701-eth",
+                            "syscon";
                reg = <0 0x1b100000 0 0x20000>;
                interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_SPI 199 IRQ_TYPE_LEVEL_LOW>,
                         <&ethsys CLK_ETHSYS_GP2>,
                         <&apmixedsys CLK_APMIXED_TRGPLL>;
                clock-names = "ethif", "esw", "gp1", "gp2", "trgpll";
+               resets = <&ethsys MT2701_ETHSYS_FE_RST>,
+                        <&ethsys MT2701_ETHSYS_GMAC_RST>,
+                        <&ethsys MT2701_ETHSYS_PPE_RST>;
+               reset-names = "fe", "gmac", "ppe";
                power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
                mediatek,ethsys = <&ethsys>;
                mediatek,pctl = <&syscfg_pctl_a>;
diff --git a/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts b/arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts
new file mode 100644 (file)
index 0000000..688a863
--- /dev/null
@@ -0,0 +1,487 @@
+/*
+ * Copyright 2017 Sean Wang <sean.wang@mediatek.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ */
+
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include "mt7623.dtsi"
+#include "mt6323.dtsi"
+
+/ {
+       model = "Bananapi BPI-R2";
+       compatible = "bananapi,bpi-r2", "mediatek,mt7623";
+
+       aliases {
+               serial2 = &uart2;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       cpus {
+               cpu@0 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+
+               cpu@1 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+
+               cpu@2 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+
+               cpu@3 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&key_pins_a>;
+
+               factory {
+                       label = "factory";
+                       linux,code = <BTN_0>;
+                       gpios = <&pio 256 GPIO_ACTIVE_LOW>;
+               };
+
+               wps {
+                       label = "wps";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&pio 257 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins_a>;
+
+               blue {
+                       label = "bpi-r2:pio:blue";
+                       gpios = <&pio 241 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               green {
+                       label = "bpi-r2:pio:green";
+                       gpios = <&pio 240 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+
+               red {
+                       label = "bpi-r2:pio:red";
+                       gpios = <&pio 239 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       memory@80000000 {
+               reg = <0 0x80000000 0 0x40000000>;
+       };
+};
+
+&cir {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cir_pins_a>;
+       status = "okay";
+};
+
+&crypto {
+       status = "okay";
+};
+
+&eth {
+       status = "okay";
+
+       gmac0: mac@0 {
+               compatible = "mediatek,eth-mac";
+               reg = <0>;
+               phy-mode = "trgmii";
+
+               fixed-link {
+                       speed = <1000>;
+                       full-duplex;
+                       pause;
+               };
+       };
+
+       mdio: mdio-bus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               switch@0 {
+                       compatible = "mediatek,mt7530";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       pinctrl-names = "default";
+                       reset-gpios = <&pio 33 0>;
+                       core-supply = <&mt6323_vpa_reg>;
+                       io-supply = <&mt6323_vemc3v3_reg>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       label = "wan";
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       label = "lan0";
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       label = "lan1";
+                               };
+
+                               port@3 {
+                                       reg = <3>;
+                                       label = "lan2";
+                               };
+
+                               port@4 {
+                                       reg = <4>;
+                                       label = "lan3";
+                               };
+
+                               port@6 {
+                                       reg = <6>;
+                                       label = "cpu";
+                                       ethernet = <&gmac0>;
+                                       phy-mode = "trgmii";
+
+                                       fixed-link {
+                                               speed = <1000>;
+                                               full-duplex;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins_a>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_a>;
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_pins_default>;
+       pinctrl-1 = <&mmc0_pins_uhs>;
+       status = "okay";
+       bus-width = <8>;
+       max-frequency = <50000000>;
+       cap-mmc-highspeed;
+       vmmc-supply = <&mt6323_vemc3v3_reg>;
+       vqmmc-supply = <&mt6323_vio18_reg>;
+       non-removable;
+};
+
+&mmc1 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_pins_default>;
+       pinctrl-1 = <&mmc1_pins_uhs>;
+       status = "okay";
+       bus-width = <4>;
+       max-frequency = <50000000>;
+       cap-sd-highspeed;
+       cd-gpios = <&pio 261 0>;
+       vmmc-supply = <&mt6323_vmch_reg>;
+       vqmmc-supply = <&mt6323_vio18_reg>;
+};
+
+&pio {
+       cir_pins_a:cir@0 {
+               pins_cir {
+                       pinmux = <MT7623_PIN_46_IR_FUNC_IR>;
+                       bias-disable;
+               };
+       };
+
+       i2c0_pins_a: i2c@0 {
+               pins_i2c0 {
+                       pinmux = <MT7623_PIN_75_SDA0_FUNC_SDA0>,
+                                <MT7623_PIN_76_SCL0_FUNC_SCL0>;
+                       bias-disable;
+               };
+       };
+
+       i2c1_pins_a: i2c@1 {
+               pin_i2c1 {
+                       pinmux = <MT7623_PIN_57_SDA1_FUNC_SDA1>,
+                                <MT7623_PIN_58_SCL1_FUNC_SCL1>;
+                       bias-disable;
+               };
+       };
+
+       i2s0_pins_a: i2s@0 {
+               pin_i2s0 {
+                       pinmux = <MT7623_PIN_49_I2S0_DATA_FUNC_I2S0_DATA>,
+                                <MT7623_PIN_72_I2S0_DATA_IN_FUNC_I2S0_DATA_IN>,
+                                <MT7623_PIN_73_I2S0_LRCK_FUNC_I2S0_LRCK>,
+                                <MT7623_PIN_74_I2S0_BCK_FUNC_I2S0_BCK>,
+                                <MT7623_PIN_126_I2S0_MCLK_FUNC_I2S0_MCLK>;
+                       drive-strength = <MTK_DRIVE_12mA>;
+                       bias-pull-down;
+               };
+       };
+
+       i2s1_pins_a: i2s@1 {
+               pin_i2s1 {
+                       pinmux = <MT7623_PIN_33_I2S1_DATA_FUNC_I2S1_DATA>,
+                                <MT7623_PIN_34_I2S1_DATA_IN_FUNC_I2S1_DATA_IN>,
+                                <MT7623_PIN_35_I2S1_BCK_FUNC_I2S1_BCK>,
+                                <MT7623_PIN_36_I2S1_LRCK_FUNC_I2S1_LRCK>,
+                                <MT7623_PIN_37_I2S1_MCLK_FUNC_I2S1_MCLK>;
+                       drive-strength = <MTK_DRIVE_12mA>;
+                       bias-pull-down;
+               };
+       };
+
+       key_pins_a: keys@0 {
+               pins_keys {
+                       pinmux = <MT7623_PIN_256_GPIO256_FUNC_GPIO256>,
+                                <MT7623_PIN_257_GPIO257_FUNC_GPIO257> ;
+                       input-enable;
+               };
+       };
+
+       led_pins_a: leds@0 {
+               pins_leds {
+                       pinmux = <MT7623_PIN_239_EXT_SDIO0_FUNC_GPIO239>,
+                                <MT7623_PIN_240_EXT_XCS_FUNC_GPIO240>,
+                                <MT7623_PIN_241_EXT_SCK_FUNC_GPIO241>;
+               };
+       };
+
+       mmc0_pins_default: mmc0default {
+               pins_cmd_dat {
+                       pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
+                                <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
+                                <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
+                                <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
+                                <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
+                                <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
+                                <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
+                                <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
+                                <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins_clk {
+                       pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
+                       bias-pull-down;
+               };
+
+               pins_rst {
+                       pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc0_pins_uhs: mmc0 {
+               pins_cmd_dat {
+                       pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_MSDC0_DAT7>,
+                                <MT7623_PIN_112_MSDC0_DAT6_FUNC_MSDC0_DAT6>,
+                                <MT7623_PIN_113_MSDC0_DAT5_FUNC_MSDC0_DAT5>,
+                                <MT7623_PIN_114_MSDC0_DAT4_FUNC_MSDC0_DAT4>,
+                                <MT7623_PIN_118_MSDC0_DAT3_FUNC_MSDC0_DAT3>,
+                                <MT7623_PIN_119_MSDC0_DAT2_FUNC_MSDC0_DAT2>,
+                                <MT7623_PIN_120_MSDC0_DAT1_FUNC_MSDC0_DAT1>,
+                                <MT7623_PIN_121_MSDC0_DAT0_FUNC_MSDC0_DAT0>,
+                                <MT7623_PIN_116_MSDC0_CMD_FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_2mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins_clk {
+                       pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_MSDC0_CLK>;
+                       drive-strength = <MTK_DRIVE_2mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins_rst {
+                       pinmux = <MT7623_PIN_115_MSDC0_RSTB_FUNC_MSDC0_RSTB>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_pins_default: mmc1default {
+               pins_cmd_dat {
+                       pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
+                                <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
+                                <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
+                                <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
+                                <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_4mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins_clk {
+                       pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
+                       bias-pull-down;
+                       drive-strength = <MTK_DRIVE_4mA>;
+               };
+
+               pins_wp {
+                       pinmux = <MT7623_PIN_29_EINT7_FUNC_MSDC1_WP>;
+                       input-enable;
+                       bias-pull-up;
+               };
+
+               pins_insert {
+                       pinmux = <MT7623_PIN_261_MSDC1_INS_FUNC_GPIO261>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_pins_uhs: mmc1 {
+               pins_cmd_dat {
+                       pinmux = <MT7623_PIN_107_MSDC1_DAT0_FUNC_MSDC1_DAT0>,
+                                <MT7623_PIN_108_MSDC1_DAT1_FUNC_MSDC1_DAT1>,
+                                <MT7623_PIN_109_MSDC1_DAT2_FUNC_MSDC1_DAT2>,
+                                <MT7623_PIN_110_MSDC1_DAT3_FUNC_MSDC1_DAT3>,
+                                <MT7623_PIN_105_MSDC1_CMD_FUNC_MSDC1_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_4mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins_clk {
+                       pinmux = <MT7623_PIN_106_MSDC1_CLK_FUNC_MSDC1_CLK>;
+                       drive-strength = <MTK_DRIVE_4mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+       };
+
+       pwm_pins_a: pwm@0 {
+               pins_pwm {
+                       pinmux = <MT7623_PIN_203_PWM0_FUNC_PWM0>,
+                                <MT7623_PIN_204_PWM1_FUNC_PWM1>,
+                                <MT7623_PIN_205_PWM2_FUNC_PWM2>,
+                                <MT7623_PIN_206_PWM3_FUNC_PWM3>,
+                                <MT7623_PIN_207_PWM4_FUNC_PWM4>;
+               };
+       };
+
+       spi0_pins_a: spi@0 {
+               pins_spi {
+                       pinmux = <MT7623_PIN_53_SPI0_CSN_FUNC_SPI0_CS>,
+                               <MT7623_PIN_54_SPI0_CK_FUNC_SPI0_CK>,
+                               <MT7623_PIN_55_SPI0_MI_FUNC_SPI0_MI>,
+                               <MT7623_PIN_56_SPI0_MO_FUNC_SPI0_MO>;
+                       bias-disable;
+               };
+       };
+
+       uart0_pins_a: uart@0 {
+               pins_dat {
+                       pinmux = <MT7623_PIN_79_URXD0_FUNC_URXD0>,
+                                <MT7623_PIN_80_UTXD0_FUNC_UTXD0>;
+               };
+       };
+
+       uart1_pins_a: uart@1 {
+               pins_dat {
+                       pinmux = <MT7623_PIN_81_URXD1_FUNC_URXD1>,
+                                <MT7623_PIN_82_UTXD1_FUNC_UTXD1>;
+               };
+       };
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm_pins_a>;
+       status = "okay";
+};
+
+&pwrap {
+       mt6323 {
+               mt6323led: led {
+                       compatible = "mediatek,mt6323-led";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@0 {
+                               reg = <0>;
+                               label = "bpi-r2:isink:green";
+                               default-state = "off";
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               label = "bpi-r2:isink:red";
+                               default-state = "off";
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               label = "bpi-r2:isink:blue";
+                               default-state = "off";
+                       };
+               };
+       };
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pins_a>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_a>;
+       status = "disabled";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins_a>;
+       status = "disabled";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb1 {
+       vusb33-supply = <&mt6323_vusb_reg>;
+       status = "okay";
+};
+
+&usb2 {
+       vusb33-supply = <&mt6323_vusb_reg>;
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
diff --git a/arch/arm/boot/dts/mt7623n-rfb-nand.dts b/arch/arm/boot/dts/mt7623n-rfb-nand.dts
new file mode 100644 (file)
index 0000000..17c578f
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: John Crispin <john@phrozen.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+#include "mt7623n-rfb.dtsi"
+
+/ {
+       model = "MediaTek MT7623N NAND reference board";
+       compatible = "mediatek,mt7623n-rfb-nand", "mediatek,mt7623";
+};
+
+&bch {
+       status = "okay";
+};
+
+&nandc {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_pins_default>;
+
+       nand@0 {
+               reg = <0>;
+               spare_per_sector = <64>;
+               nand-ecc-mode = "hw";
+               nand-ecc-strength = <12>;
+               nand-ecc-step-size = <1024>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "preloader";
+                               reg = <0x0 0x40000>;
+                       };
+
+                       partition@40000 {
+                               label = "uboot";
+                               reg = <0x40000 0x80000>;
+                       };
+
+                       partition@C0000 {
+                               label = "uboot-env";
+                               reg = <0xC0000 0x40000>;
+                       };
+
+                       partition@140000 {
+                               label = "bootimg";
+                               reg = <0x140000 0x2000000>;
+                       };
+
+                       partition@2140000 {
+                               label = "recovery";
+                               reg = <0x2140000 0x2000000>;
+                       };
+
+                       partition@4140000 {
+                               label = "rootfs";
+                               reg = <0x4140000 0x1000000>;
+                       };
+
+                       partition@5140000 {
+                               label = "usrdata";
+                               reg = <0x5140000 0x1000000>;
+                       };
+               };
+       };
+};
+
+&pio {
+       nand_pins_default: nanddefault {
+               pins_ale {
+                       pinmux = <MT7623_PIN_116_MSDC0_CMD_FUNC_NALE>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins_dat {
+                       pinmux = <MT7623_PIN_111_MSDC0_DAT7_FUNC_NLD7>,
+                                <MT7623_PIN_112_MSDC0_DAT6_FUNC_NLD6>,
+                                <MT7623_PIN_114_MSDC0_DAT4_FUNC_NLD4>,
+                                <MT7623_PIN_118_MSDC0_DAT3_FUNC_NLD3>,
+                                <MT7623_PIN_121_MSDC0_DAT0_FUNC_NLD0>,
+                                <MT7623_PIN_120_MSDC0_DAT1_FUNC_NLD1>,
+                                <MT7623_PIN_113_MSDC0_DAT5_FUNC_NLD5>,
+                                <MT7623_PIN_115_MSDC0_RSTB_FUNC_NLD8>,
+                                <MT7623_PIN_119_MSDC0_DAT2_FUNC_NLD2>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-up;
+               };
+
+               pins_we {
+                       pinmux = <MT7623_PIN_117_MSDC0_CLK_FUNC_NWEB>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_10>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/mt7623n-rfb.dtsi b/arch/arm/boot/dts/mt7623n-rfb.dtsi
new file mode 100644 (file)
index 0000000..256c5fd
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: John Crispin <john@phrozen.org>
+ *        Sean Wang <sean.wang@mediatek.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+/dts-v1/;
+#include "mt7623.dtsi"
+#include "mt6323.dtsi"
+
+/ {
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+               serial2 = &uart2;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       cpus {
+               cpu0 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+
+               cpu1 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+
+               cpu2 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+
+               cpu3 {
+                       proc-supply = <&mt6323_vproc_reg>;
+               };
+       };
+
+       memory@80000000 {
+               reg = <0 0x80000000 0 0x40000000>;
+       };
+
+       usb_p1_vbus: regulator@0 {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&pio 135 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&mmc0 {
+       vmmc-supply = <&mt6323_vemc3v3_reg>;
+       vqmmc-supply = <&mt6323_vio18_reg>;
+};
+
+&mmc1 {
+       vmmc-supply = <&mt6323_vmch_reg>;
+       vqmmc-supply = <&mt6323_vmc_reg>;
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb1 {
+       vbus-supply = <&usb_p1_vbus>;
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
index 673cee2234b2979f4102236b3296b13fb9aed244..683b96a8f73e01248349440d1caab8fd7ffeb7cc 100644 (file)
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        bus-width = <8>;
 };
 
index 4be85ce59dd14eea19c95dc0cea5ff12748177bc..4d2eaf843fa960190514dffb06b24d46056adb3e 100644 (file)
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        bus-width = <8>;
 };
 
index 53ae04f9104d6b92f6bce75c337d5fba1c77ae53..3d293b345e9940e31f525f38ea46153a170aa50b 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins>;
        vmmc-supply = <&wl12xx_vmmc2>;
-       vmmc_aux-supply = <&wl12xx_vaux2>;
+       vqmmc-supply = <&wl12xx_vaux2>;
        non-removable;
        bus-width = <4>;
        cap-power-off-card;
index 2294f5b0aa102d9195aa93b33a9e298ac91cba26..bdf4b7fdda39c1c64e2493ecd8d00cfc4f106985 100644 (file)
@@ -69,7 +69,7 @@
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins>;
        vmmc-supply = <&wl12xx_vmmc2>;
-       vmmc_aux-supply = <&wl12xx_vaux2>;
+       vqmmc-supply = <&wl12xx_vaux2>;
        non-removable;
        bus-width = <4>;
        cap-power-off-card;
index 82aa9c4a0f1c331f54c70409993ee17bdc493d00..0c0bb1b01b0ba004af0afbb5c5b4fca099a57055 100644 (file)
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        bus-width = <8>;
 };
 
index 2b1d6977a53572ead16e74ff97310fbd3cf7fcc3..ff35803088e3455b2fa116e4e7e41872590f053b 100644 (file)
 &mmc1 {
        interrupts-extended = <&intc 83 &omap3_pmx_core 0x11a>;
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        bus-width = <8>;
 };
 
index 49f37084e43507b1f2b87b11d79eecacfe0599dc..26c20e1167b9531ca1fde008787a714856b67c62 100644 (file)
                io-channel-names = "temp", "bsi", "vbat";
        };
 
+       rear_camera: camera@0 {
+               compatible = "linux,camera";
+
+               module {
+                       model = "TCM8341MD";
+                       sensor = <&cam1>;
+               };
+       };
+
        pwm9: dmtimer-pwm {
                compatible = "ti,omap-dmtimer-pwm";
                #pwm-cells = <3>;
        };
 };
 
+&isp {
+       vdds_csib-supply = <&vaux2>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&camera_pins>;
+
+       ports {
+               port@1 {
+                       reg = <1>;
+
+                       csi_isp: endpoint {
+                               remote-endpoint = <&csi_cam1>;
+                               bus-type = <3>; /* CCP2 */
+                               clock-lanes = <1>;
+                               data-lanes = <0>;
+                               lane-polarity = <0 0>;
+                               clock-inv = <0>;
+                               /* Select strobe = <1> for back camera, <0> for front camera */
+                               strobe = <1>;
+                               crc = <0>;
+                       };
+               };
+       };
+};
+
 &omap3_pmx_core {
        pinctrl-names = "default";
 
                        OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)               /* gpio 157 => cmt_bsi */
                >;
        };
+
+       camera_pins: pinmux_camera {
+               pinctrl-single,pins = <
+                       OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7)       /* cam_hs */
+                       OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7)       /* cam_vs */
+                       OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0)       /* cam_xclka */
+                       OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7)       /* cam_d4 */
+                       OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0)        /* cam_d6 */
+                       OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0)        /* cam_d7 */
+                       OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0)        /* cam_d8 */
+                       OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0)        /* cam_d9 */
+                       OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7)       /* cam_d10 */
+                       OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7)       /* cam_xclkb */
+                       OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0)       /* cam_strobe */
+               >;
+       };
 };
 
 &i2c1 {
                st,max-limit-y = <32>;
                st,max-limit-z = <32>;
        };
+
+       cam1: camera@3e {
+               compatible = "toshiba,et8ek8";
+               reg = <0x3e>;
+
+               vana-supply = <&vaux4>;
+
+               clocks = <&isp 0>;
+               clock-names = "extclk";
+               clock-frequency = <9600000>;
+
+               reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
+
+               port {
+                       csi_cam1: endpoint {
+                               bus-type = <3>; /* CCP2 */
+                               strobe = <1>;
+                               clock-inv = <0>;
+                               crc = <1>;
+
+                               remote-endpoint = <&csi_isp>;
+                       };
+               };
+       };
+
+       /* D/A converter for auto-focus */
+       ad5820: dac@0c {
+               compatible = "adi,ad5820";
+               reg = <0x0c>;
+
+               VANA-supply = <&vaux4>;
+
+               #io-channel-cells = <0>;
+       };
 };
 
 &mmc1 {
        pinctrl-0 = <&mmc1_pins>;
        vmmc-supply = <&vmmc1>;
        bus-width = <4>;
+       /* For debugging, it is often good idea to remove this GPIO.
+          It means you can remove back cover (to reboot by removing
+          battery) and still use the MMC card. */
        cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins>;
        vmmc-supply = <&vaux3>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        bus-width = <8>;
        non-removable;
        no-sdio;
index cd220342a805aa2844613b171a31279a651407b1..f25e158e7163b23201ca8e643f557b3965fc959d 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins>;
        vmmc-supply = <&w3cbw003c_npoweron>;
-       vmmc_aux-supply = <&w3cbw003c_wifi_nreset>;
+       vqmmc-supply = <&w3cbw003c_wifi_nreset>;
        bus-width = <4>;
        cap-sdio-irq;
        non-removable;
index 06ac0f80bcf083ad0b4ed6a0cb30bcf64b22e7c5..9a601d15247bef5da1519db88b1680b119381b6d 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_HIGH>;
        bus-width = <8>;
 };
index 45e2ce0803dec8a01d20c92a98a3b1f3b95735d1..96d0301a336a9b819828c9f0aef3cfe34d8bb5af 100644 (file)
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        bus-width = <4>;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
index a3ff4933dbc173936bbec5a222aba6642e70564d..bdaf30c8c405716ad2f1e434ac8abbd40bcdb786 100644 (file)
                        usbhsohci: ohci@48064400 {
                                compatible = "ti,ohci-omap3";
                                reg = <0x48064400 0x400>;
-                               interrupt-parent = <&intc>;
                                interrupts = <76>;
                        };
 
                        usbhsehci: ehci@48064800 {
                                compatible = "ti,ehci-omap";
                                reg = <0x48064800 0x400>;
-                               interrupt-parent = <&intc>;
                                interrupts = <77>;
                        };
                };
                                reg-names = "tx",
                                            "rx";
 
-                               interrupt-parent = <&intc>;
                                interrupts = <67>,
                                             <68>;
                        };
                                reg-names = "tx",
                                            "rx";
 
-                               interrupt-parent = <&intc>;
                                interrupts = <69>,
                                             <70>;
                        };
index abd6921143beb328aad5e84d60d209d98147854f..908951eb5943ec4f938ee294f811fc0577236890 100644 (file)
@@ -33,7 +33,7 @@
 
 &mmc1 {
        vmmc-supply = <&vmmc1>;
-       vmmc_aux-supply = <&vsim>;
+       vqmmc-supply = <&vsim>;
        /*
         * S6-3 must be in ON position for 8 bit mode to function
         * Else, use 4 bit mode
index 10ca1c174995280f33facc0ffabdaf7514c481f4..8b93d37310f28ba4c10ad81d35f8419914ef4633 100644 (file)
                output-high;
                line-name = "touchscreen-reset";
        };
+
+       pwm8: dmtimer-pwm-8 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&vibrator_direction_pin>;
+
+               compatible = "ti,omap-dmtimer-pwm";
+               #pwm-cells = <3>;
+               ti,timers = <&timer8>;
+               ti,clock-source = <0x01>;
+       };
+
+       pwm9: dmtimer-pwm-9 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&vibrator_enable_pin>;
+
+               compatible = "ti,omap-dmtimer-pwm";
+               #pwm-cells = <3>;
+               ti,timers = <&timer9>;
+               ti,clock-source = <0x01>;
+       };
+
+       vibrator {
+               compatible = "pwm-vibrator";
+               pwms = <&pwm9 0 10000000 0>, <&pwm8 0 10000000 0>;
+               pwm-names = "enable", "direction";
+               direction-duty-cycle-ns = <10000000>;
+       };
+
 };
 
 &dsi1 {
        /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
-               OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)
+               OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)
                OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0)
                OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0)
                >;
                OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3)
                >;
        };
+
+       vibrator_direction_pin: pinmux_vibrator_direction_pin {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1)      /* dmtimer8_pwm_evt (gpio_27) */
+               >;
+       };
+
+       vibrator_enable_pin: pinmux_vibrator_enable_pin {
+               pinctrl-single,pins = <
+               OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1)      /* dmtimer9_pwm_evt (gpio_28) */
+               >;
+       };
 };
 
 &uart3 {
index 1b825128a7b952568610e0b283415eebd3320724..a9a584b5b9558d737c337806ae7f2d2f34840c7d 100644 (file)
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
                        OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3)               /* hdmi_hpd.gpio_63 */
-                       OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_cec.hdmi_cec */
+                       OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)               /* hdmi_cec.hdmi_cec */
                        OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_ddc_scl.hdmi_ddc_scl */
                        OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_ddc_sda.hdmi_ddc_sda */
                >;
index edbc4090297ddcd3d5e7cf035261156898271196..2b48e51c372ab70122e13ee13d4f4a11722cd632 100644 (file)
 
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
-                       OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_cec.hdmi_cec */
+                       OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)               /* hdmi_cec.hdmi_cec */
                        OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_scl.hdmi_scl */
                        OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_sda.hdmi_sda */
                >;
index b4d19a7ae39304e93c2d741a2bbd4830674eb663..3d3140fd9659463829e979069dcf81cb9c169055 100644 (file)
@@ -10,7 +10,7 @@
 /* SDP boards with 4430 ES2.3+ or 4460 have external pullups on SCL & SDA */
 &dss_hdmi_pins {
        pinctrl-single,pins = <
-               OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_cec.hdmi_cec */
+               OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)               /* hdmi_cec.hdmi_cec */
                OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0)               /* hdmi_scl.hdmi_scl */
                OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0)               /* hdmi_sda.hdmi_sda */
                >;
index d728ec96311114cd71c0c1bd752be925d14c995f..280d92d42bf13b12983fca36e7786c13eadaa8cd 100644 (file)
 
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
-                       OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_cec.hdmi_cec */
+                       OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)               /* hdmi_cec.hdmi_cec */
                        OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_scl.hdmi_scl */
                        OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_sda.hdmi_sda */
                >;
index 74940b6d7719ed28ed6f2a34cf83f033bb18aa72..676d8dd0624a63dc56513e68edb35358c49cac2b 100644 (file)
 
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
-                       OMAP4_IOPAD(0x09a, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_cec.hdmi_cec */
+                       OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)               /* hdmi_cec.hdmi_cec */
                        OMAP4_IOPAD(0x09c, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_scl.hdmi_scl */
                        OMAP4_IOPAD(0x09e, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_sda.hdmi_sda */
                >;
index 4caadb25324977e67c40d4ebde2929cd6782cbf8..7824b2631cb6b3f93ffaedbaff5ebc65d6064292 100644 (file)
 
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
-                       OMAP5_IOPAD(0x13c, PIN_INPUT_PULLUP | MUX_MODE0)        /* hdmi_cec.hdmi_cec */
+                       OMAP5_IOPAD(0x13c, PIN_INPUT | MUX_MODE0)       /* hdmi_cec.hdmi_cec */
                        OMAP5_IOPAD(0x140, PIN_INPUT | MUX_MODE0)       /* hdmi_ddc_scl.hdmi_ddc_scl */
                        OMAP5_IOPAD(0x142, PIN_INPUT | MUX_MODE0)       /* hdmi_ddc_sda.hdmi_ddc_sda */
                >;
index 78397f66d0b2d5611cf665ffbf72f2ac02035413..552a5c4c594254aceecbc36281edd0bcdfeebd0a 100644 (file)
 
        dss_hdmi_pins: pinmux_dss_hdmi_pins {
                pinctrl-single,pins = <
-                       OMAP5_IOPAD(0x013c, PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec */
+                       OMAP5_IOPAD(0x013c, PIN_INPUT | MUX_MODE0) /* hdmi_cec */
                        OMAP5_IOPAD(0x0140, PIN_INPUT | MUX_MODE0) /* hdmi_ddc_scl */
                        OMAP5_IOPAD(0x0142, PIN_INPUT | MUX_MODE0) /* hdmi_ddc_sda */
                >;
index b9457dd21a695ddca61268a4262cae05fdd0aa58..e413b21ee3319be02927dca42aeef0c837698d00 100644 (file)
        model = "Qualcomm Technologies, Inc. IPQ4019/AP-DK01.1";
        compatible = "qcom,ipq4019";
 
-       clocks {
-                xo: xo {
-                        compatible = "fixed-clock";
-                        clock-frequency = <48000000>;
-                        #clock-cells = <0>;
-                };
-       };
-
        soc {
-
-
-               timer {
-                       compatible = "arm,armv7-timer";
-                       interrupts = <1 2 0xf08>,
-                                    <1 3 0xf08>,
-                                    <1 4 0xf08>,
-                                    <1 1 0xf08>;
-                       clock-frequency = <48000000>;
+               rng@22000 {
+                       status = "ok";
                };
 
-               pinctrl@0x01000000 {
+               pinctrl@1000000 {
                        serial_pins: serial_pinmux {
                                mux {
                                        pins = "gpio60", "gpio61";
                watchdog@b017000 {
                        status = "ok";
                };
+
+               wifi@a000000 {
+                       status = "ok";
+               };
+
+               wifi@a800000 {
+                       status = "ok";
+               };
        };
 };
index 4b7d97275c621af5a219856d38f489a3e704b2e7..10d112a4078ecef3c1a70dc3482de7a7511e599b 100644 (file)
                        clock-frequency = <32768>;
                        #clock-cells = <0>;
                };
+
+               xo: xo {
+                       compatible = "fixed-clock";
+                       clock-frequency = <48000000>;
+                       #clock-cells = <0>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <1 2 0xf08>,
+                            <1 3 0xf08>,
+                            <1 4 0xf08>,
+                            <1 1 0xf08>;
+               clock-frequency = <48000000>;
        };
 
        soc {
                        reg = <0x1800000 0x60000>;
                };
 
-               tlmm: pinctrl@0x01000000 {
+               rng@22000 {
+                       compatible = "qcom,prng";
+                       reg = <0x22000 0x140>;
+                       clocks = <&gcc GCC_PRNG_AHB_CLK>;
+                       clock-names = "core";
+                       status = "disabled";
+               };
+
+               tlmm: pinctrl@1000000 {
                        compatible = "qcom,ipq4019-pinctrl";
                        reg = <0x01000000 0x300000>;
                        gpio-controller;
                        compatible = "qcom,pshold";
                        reg = <0x4ab000 0x4>;
                };
+
+               wifi0: wifi@a000000 {
+                       compatible = "qcom,ipq4019-wifi";
+                       reg = <0xa000000 0x200000>;
+                       resets = <&gcc WIFI0_CPU_INIT_RESET>,
+                                <&gcc WIFI0_RADIO_SRIF_RESET>,
+                                <&gcc WIFI0_RADIO_WARM_RESET>,
+                                <&gcc WIFI0_RADIO_COLD_RESET>,
+                                <&gcc WIFI0_CORE_WARM_RESET>,
+                                <&gcc WIFI0_CORE_COLD_RESET>;
+                       reset-names = "wifi_cpu_init", "wifi_radio_srif",
+                                     "wifi_radio_warm", "wifi_radio_cold",
+                                     "wifi_core_warm", "wifi_core_cold";
+                       clocks = <&gcc GCC_WCSS2G_CLK>,
+                                <&gcc GCC_WCSS2G_REF_CLK>,
+                                <&gcc GCC_WCSS2G_RTC_CLK>;
+                       clock-names = "wifi_wcss_cmd", "wifi_wcss_ref",
+                                     "wifi_wcss_rtc";
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 33 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 34 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 35 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 36 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 37 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 38 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 42 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 43 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 45 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 168 IRQ_TYPE_NONE>;
+                       interrupt-names =  "msi0",  "msi1",  "msi2",  "msi3",
+                                          "msi4",  "msi5",  "msi6",  "msi7",
+                                          "msi8",  "msi9", "msi10", "msi11",
+                                         "msi12", "msi13", "msi14", "msi15",
+                                         "legacy";
+                       status = "disabled";
+               };
+
+               wifi1: wifi@a800000 {
+                       compatible = "qcom,ipq4019-wifi";
+                       reg = <0xa800000 0x200000>;
+                       resets = <&gcc WIFI1_CPU_INIT_RESET>,
+                                <&gcc WIFI1_RADIO_SRIF_RESET>,
+                                <&gcc WIFI1_RADIO_WARM_RESET>,
+                                <&gcc WIFI1_RADIO_COLD_RESET>,
+                                <&gcc WIFI1_CORE_WARM_RESET>,
+                                <&gcc WIFI1_CORE_COLD_RESET>;
+                       reset-names = "wifi_cpu_init", "wifi_radio_srif",
+                                     "wifi_radio_warm", "wifi_radio_cold",
+                                     "wifi_core_warm", "wifi_core_cold";
+                       clocks = <&gcc GCC_WCSS5G_CLK>,
+                                <&gcc GCC_WCSS5G_REF_CLK>,
+                                <&gcc GCC_WCSS5G_RTC_CLK>;
+                       clock-names = "wifi_wcss_cmd", "wifi_wcss_ref",
+                                     "wifi_wcss_rtc";
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 49 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 53 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 54 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 56 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 58 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 59 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 60 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 61 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 62 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 63 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 169 IRQ_TYPE_NONE>;
+                       interrupt-names =  "msi0",  "msi1",  "msi2",  "msi3",
+                                          "msi4",  "msi5",  "msi6",  "msi7",
+                                          "msi8",  "msi9", "msi10", "msi11",
+                                         "msi12", "msi13", "msi14", "msi15",
+                                         "legacy";
+                       status = "disabled";
+               };
        };
 };
index c5ee68a3f7f5c28f4fe02f842f4a89a9134252e6..a39207625354cb947ba3ab509552034c76afba19 100644 (file)
                };
 
                replicator@fc31c000 {
-                       compatible = "qcom,coresight-replicator1x", "arm,primecell";
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
                        reg = <0xfc31c000 0x1000>;
 
                        clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
index 52a7b586bac72277f411ccb306fe0c0d719aaa5d..cd4d5ff7749eaf535f5e72d43238d9778d07a8b7 100644 (file)
@@ -11,6 +11,8 @@
 
 /dts-v1/;
 #include "r7s72100.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/r7s72100-pinctrl.h>
 
 / {
        model = "Genmai";
                #address-cells = <1>;
                #size-cells = <1>;
        };
+
+       leds {
+               status = "okay";
+               compatible = "gpio-leds";
+
+               led1 {
+                       gpios = <&port4 10 GPIO_ACTIVE_LOW>;
+               };
+
+               led2 {
+                       gpios = <&port4 11 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&pinctrl {
+
+       scif2_pins: serial2 {
+               /* P3_0 as TxD2; P3_2 as RxD2 */
+               pinmux = <RZA1_PINMUX(3, 0, 6)>, <RZA1_PINMUX(3, 2, 4)>;
+       };
+
+       i2c2_pins: i2c2 {
+               /* RIIC2: P1_4 as SCL, P1_5 as SDA */
+               pinmux = <RZA1_PINMUX(1, 4, 1)>, <RZA1_PINMUX(1, 5, 1)>;
+       };
+
+       ether_pins: ether {
+               /* Ethernet on Ports 1,2,3,5 */
+               pinmux = <RZA1_PINMUX(1, 14, 4)>,/* P1_14 = ET_COL  */
+                        <RZA1_PINMUX(5, 9, 2)>, /* P5_9 = ET_MDC   */
+                        <RZA1_PINMUX(3, 3, 2)>, /* P3_3 = ET_MDIO */
+                        <RZA1_PINMUX(3, 4, 2)>, /* P3_4 = ET_RXCLK */
+                        <RZA1_PINMUX(3, 5, 2)>, /* P3_5 = ET_RXER  */
+                        <RZA1_PINMUX(3, 6, 2)>, /* P3_6 = ET_RXDV  */
+                        <RZA1_PINMUX(2, 0, 2)>, /* P2_0 = ET_TXCLK */
+                        <RZA1_PINMUX(2, 1, 2)>, /* P2_1 = ET_TXER  */
+                        <RZA1_PINMUX(2, 2, 2)>, /* P2_2 = ET_TXEN  */
+                        <RZA1_PINMUX(2, 3, 2)>, /* P2_3 = ET_CRS   */
+                        <RZA1_PINMUX(2, 4, 2)>, /* P2_4 = ET_TXD0  */
+                        <RZA1_PINMUX(2, 5, 2)>, /* P2_5 = ET_TXD1  */
+                        <RZA1_PINMUX(2, 6, 2)>, /* P2_6 = ET_TXD2  */
+                        <RZA1_PINMUX(2, 7, 2)>, /* P2_7 = ET_TXD3  */
+                        <RZA1_PINMUX(2, 8, 2)>, /* P2_8 = ET_RXD0  */
+                        <RZA1_PINMUX(2, 9, 2)>, /* P2_9 = ET_RXD1  */
+                        <RZA1_PINMUX(2, 10, 2)>,/* P2_10 = ET_RXD2 */
+                        <RZA1_PINMUX(2, 11, 2)>;/* P2_11 = ET_RXD3 */
+       };
 };
 
 &extal_clk {
        status = "okay";
 };
 
+&ether {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ether_pins>;
+
+       status = "okay";
+
+       renesas,no-ether-link;
+       phy-handle = <&phy0>;
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
 &i2c2 {
        status = "okay";
        clock-frequency = <400000>;
 
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins>;
+
        eeprom@50 {
-               compatible = "renesas,24c128";
+               compatible = "renesas,24c128", "atmel,24c128";
                reg = <0x50>;
                pagesize = <64>;
        };
 };
 
 &scif2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&scif2_pins>;
+
        status = "okay";
 };
 
index 72df20a04320e7ac61dccde306f5799bdf1bd78c..5dcaaf131d2788ac55be89d3d4d9f9ced9beac9e 100644 (file)
@@ -10,6 +10,8 @@
 
 /dts-v1/;
 #include "r7s72100.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/r7s72100-pinctrl.h>
 
 / {
        model = "RSKRZA1";
                #address-cells = <1>;
                #size-cells = <1>;
        };
+
+       leds {
+               status = "okay";
+               compatible = "gpio-leds";
+
+               led0 {
+                       gpios = <&port7 1 GPIO_ACTIVE_LOW>;
+               };
+       };
 };
 
 &extal_clk {
        clock-frequency = <32768>;
 };
 
+&pinctrl {
+
+       /* Serial Console */
+       scif2_pins: serial2 {
+               pinmux = <RZA1_PINMUX(3, 0, 6)>,        /* TxD2 */
+                        <RZA1_PINMUX(3, 2, 4)>;        /* RxD2 */
+       };
+
+       /* Ethernet */
+       ether_pins: ether {
+               /* Ethernet on Ports 1,2,3,5 */
+               pinmux = <RZA1_PINMUX(1, 14, 4)>,       /* ET_COL   */
+                        <RZA1_PINMUX(5, 9, 2)>,        /* ET_MDC   */
+                        <RZA1_PINMUX(3, 3, 2)>,        /* ET_MDIO  */
+                        <RZA1_PINMUX(3, 4, 2)>,        /* ET_RXCLK */
+                        <RZA1_PINMUX(3, 5, 2)>,        /* ET_RXER  */
+                        <RZA1_PINMUX(3, 6, 2)>,        /* ET_RXDV  */
+                        <RZA1_PINMUX(2, 0, 2)>,        /* ET_TXCLK */
+                        <RZA1_PINMUX(2, 1, 2)>,        /* ET_TXER  */
+                        <RZA1_PINMUX(2, 2, 2)>,        /* ET_TXEN  */
+                        <RZA1_PINMUX(2, 3, 2)>,        /* ET_CRS   */
+                        <RZA1_PINMUX(2, 4, 2)>,        /* ET_TXD0  */
+                        <RZA1_PINMUX(2, 5, 2)>,        /* ET_TXD1  */
+                        <RZA1_PINMUX(2, 6, 2)>,        /* ET_TXD2  */
+                        <RZA1_PINMUX(2, 7, 2)>,        /* ET_TXD3  */
+                        <RZA1_PINMUX(2, 8, 2)>,        /* ET_RXD0  */
+                        <RZA1_PINMUX(2, 9, 2)>,        /* ET_RXD1  */
+                        <RZA1_PINMUX(2, 10, 2)>,       /* ET_RXD2  */
+                        <RZA1_PINMUX(2, 11, 2)>;       /* ET_RXD3  */
+       };
+
+       /* SDHI ch1 on CN1 */
+       sdhi1_pins: sdhi1 {
+               pinmux = <RZA1_PINMUX(3, 8, 7)>,        /* SD_CD_1 */
+                        <RZA1_PINMUX(3, 9, 7)>,        /* SD_WP_1 */
+                        <RZA1_PINMUX(3, 10, 7)>,       /* SD_D1_1 */
+                        <RZA1_PINMUX(3, 11, 7)>,       /* SD_D0_1 */
+                        <RZA1_PINMUX(3, 12, 7)>,       /* SD_CLK_1 */
+                        <RZA1_PINMUX(3, 13, 7)>,       /* SD_CMD_1 */
+                        <RZA1_PINMUX(3, 14, 7)>,       /* SD_D3_1 */
+                        <RZA1_PINMUX(3, 15, 7)>;       /* SD_D2_1 */
+       };
+};
+
 &mtu2 {
        status = "okay";
 };
 
 &ether {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ether_pins>;
        status = "okay";
        renesas,no-ether-link;
        phy-handle = <&phy0>;
 };
 
 &sdhi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhi1_pins>;
        bus-width = <4>;
        status = "okay";
 };
 };
 
 &scif2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&scif2_pins>;
        status = "okay";
 };
index 5cf53e9943af705726572c5504e37da7cbd7d45d..4ed12a4d9d51382143357585358f20081e216b35 100644 (file)
                };
        };
 
+       pinctrl: pin-controller@fcfe3000 {
+               compatible = "renesas,r7s72100-ports";
+
+               reg = <0xfcfe3000 0x4230>;
+
+               port0: gpio-0 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 0 6>;
+               };
+
+               port1: gpio-1 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 16 16>;
+               };
+
+               port2: gpio-2 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 32 16>;
+               };
+
+               port3: gpio-3 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 48 16>;
+               };
+
+               port4: gpio-4 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 64 16>;
+               };
+
+               port5: gpio-5 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 80 11>;
+               };
+
+               port6: gpio-6 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 96 16>;
+               };
+
+               port7: gpio-7 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 112 16>;
+               };
+
+               port8: gpio-8 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 128 16>;
+               };
+
+               port9: gpio-9 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 144 8>;
+               };
+
+               port10: gpio-10 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 160 16>;
+               };
+
+               port11: gpio-11 {
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 176 16>;
+               };
+       };
+
        scif0: serial@e8007000 {
                compatible = "renesas,scif-r7s72100", "renesas,scif";
                reg = <0xe8007000 64>;
index 9b54783cc2a53977546c61ebaf1a4d3722178c13..081af01928519e333deef4ac6ab1e579419aa08a 100644 (file)
 
        aliases {
                serial0 = &scif0;
+               ethernet0 = &avb;
+       };
+};
+
+&pfc {
+       scif0_pins: scif0 {
+               groups = "scif0_data_d";
+               function = "scif0";
+       };
+
+       avb_pins: avb {
+               groups = "avb_mdio", "avb_gmii";
+               function = "avb";
        };
 };
 
 &scif0 {
+       pinctrl-0 = <&scif0_pins>;
+       pinctrl-names = "default";
+
        status = "okay";
 };
+
+&avb {
+       pinctrl-0 = <&avb_pins>;
+       pinctrl-names = "default";
+
+       phy-handle = <&phy3>;
+       phy-mode = "gmii";
+       renesas,no-ether-link;
+       status = "okay";
+
+       phy3: ethernet-phy@3 {
+               reg = <3>;
+               micrel,led-mode = <1>;
+       };
+};
index 001ca9144f4b0dc951fd97ce5d97285ccdcb341b..ff799381863763decedb115e645980670d973b5b 100644 (file)
                device_type = "memory";
                reg = <2 0x00000000 0 0x20000000>;
        };
+
+       reg_3p3v: 3p3v {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &extal_clk {
        clock-frequency = <20000000>;
 };
+
+&pfc {
+       mmcif0_pins: mmc {
+               groups = "mmc_data8_b", "mmc_ctrl";
+               function = "mmc";
+       };
+};
+
+&mmcif0 {
+       pinctrl-0 = <&mmcif0_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&reg_3p3v>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
index 3a22538208f25117ea008e45a45d52c03c9b4ba5..3d918d106593d2684eaa7e6e8f95de8695c3efbc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Device Tree Source for the SK-RZG1M board
  *
- * Copyright (C) 2016 Cogent Embedded, Inc.
+ * Copyright (C) 2016-2017 Cogent Embedded, Inc.
  *
  * This file is licensed under the terms of the GNU General Public License
  * version 2. This program is licensed "as is" without any warranty of any
        clock-frequency = <20000000>;
 };
 
+&pfc {
+       scif0_pins: scif0 {
+               groups = "scif0_data_d";
+               function = "scif0";
+       };
+
+       ether_pins: ether {
+               groups = "eth_link", "eth_mdio", "eth_rmii";
+               function = "eth";
+       };
+
+       phy1_pins: phy1 {
+               groups = "intc_irq0";
+               function = "intc";
+       };
+};
+
 &scif0 {
+       pinctrl-0 = <&scif0_pins>;
+       pinctrl-names = "default";
+
        status = "okay";
 };
 
 &ether {
+       pinctrl-0 = <&ether_pins &phy1_pins>;
+       pinctrl-names = "default";
+
        phy-handle = <&phy1>;
        renesas,ether-link-active-low;
        status = "okay";
index 0ddac81742e4cdc7dc93be53fd019db00de98faa..14222c72f0e0f7d5ad95a46d68b310df76fff6cc 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Device Tree Source for the r8a7743 SoC
  *
- * Copyright (C) 2016 Cogent Embedded Inc.
+ * Copyright (C) 2016-2017 Cogent Embedded Inc.
  *
  * This file is licensed under the terms of the GNU General Public License
  * version 2. This program is licensed "as is" without any warranty of any
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c4 = &i2c4;
+               i2c5 = &i2c5;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
+               enable-method = "renesas,apmu";
 
                cpu0: cpu@0 {
                        device_type = "cpu";
                        reg = <0>;
                        clock-frequency = <1500000000>;
                        clocks = <&cpg CPG_CORE R8A7743_CLK_Z>;
+                       clock-latency = <300000>; /* 300 us */
                        power-domains = <&sysc R8A7743_PD_CA15_CPU0>;
                        next-level-cache = <&L2_CA15>;
+
+                       /* kHz - uV - OPPs unknown yet */
+                       operating-points = <1500000 1000000>,
+                                          <1312500 1000000>,
+                                          <1125000 1000000>,
+                                          < 937500 1000000>,
+                                          < 750000 1000000>,
+                                          < 375000 1000000>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a15";
+                       reg = <1>;
+                       clock-frequency = <1500000000>;
+                       power-domains = <&sysc R8A7743_PD_CA15_CPU1>;
+                       next-level-cache = <&L2_CA15>;
                };
 
                L2_CA15: cache-controller-0 {
                #size-cells = <2>;
                ranges;
 
+               apmu@e6152000 {
+                       compatible = "renesas,r8a7743-apmu", "renesas,apmu";
+                       reg = <0 0xe6152000 0 0x188>;
+                       cpus = <&cpu0 &cpu1>;
+               };
+
                gic: interrupt-controller@f1001000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
                        resets = <&cpg 408>;
                };
 
+               gpio0: gpio@e6050000 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6050000 0 0x50>;
+                       interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 0 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 912>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 912>;
+               };
+
+               gpio1: gpio@e6051000 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6051000 0 0x50>;
+                       interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 32 26>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 911>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 911>;
+               };
+
+               gpio2: gpio@e6052000 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6052000 0 0x50>;
+                       interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 64 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 910>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 910>;
+               };
+
+               gpio3: gpio@e6053000 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6053000 0 0x50>;
+                       interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 96 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 909>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 909>;
+               };
+
+               gpio4: gpio@e6054000 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6054000 0 0x50>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 128 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 908>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 908>;
+               };
+
+               gpio5: gpio@e6055000 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055000 0 0x50>;
+                       interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 160 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 907>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 907>;
+               };
+
+               gpio6: gpio@e6055400 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055400 0 0x50>;
+                       interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 192 32>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 905>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 905>;
+               };
+
+               gpio7: gpio@e6055800 {
+                       compatible = "renesas,gpio-r8a7743",
+                                    "renesas,gpio-rcar";
+                       reg = <0 0xe6055800 0 0x50>;
+                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       gpio-ranges = <&pfc 0 224 26>;
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       clocks = <&cpg CPG_MOD 904>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 904>;
+               };
+
                irqc: interrupt-controller@e61c0000 {
                        compatible = "renesas,irqc-r8a7743", "renesas,irqc";
                        #interrupt-cells = <2>;
                        #power-domain-cells = <1>;
                };
 
+               pfc: pin-controller@e6060000 {
+                       compatible = "renesas,pfc-r8a7743";
+                       reg = <0 0xe6060000 0 0x250>;
+               };
+
                dmac0: dma-controller@e6700000 {
                        compatible = "renesas,dmac-r8a7743",
                                     "renesas,rcar-dmac";
                        dma-channels = <15>;
                };
 
+               /* The memory map in the User's Manual maps the cores to bus
+                *  numbers
+                */
+               i2c0: i2c@e6508000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,i2c-r8a7743",
+                                    "renesas,rcar-gen2-i2c";
+                       reg = <0 0xe6508000 0 0x40>;
+                       interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 931>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 931>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@e6518000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,i2c-r8a7743",
+                                    "renesas,rcar-gen2-i2c";
+                       reg = <0 0xe6518000 0 0x40>;
+                       interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 930>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 930>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@e6530000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,i2c-r8a7743",
+                                    "renesas,rcar-gen2-i2c";
+                       reg = <0 0xe6530000 0 0x40>;
+                       interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 929>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 929>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@e6540000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,i2c-r8a7743",
+                                    "renesas,rcar-gen2-i2c";
+                       reg = <0 0xe6540000 0 0x40>;
+                       interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 928>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 928>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@e6520000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,i2c-r8a7743",
+                                    "renesas,rcar-gen2-i2c";
+                       reg = <0 0xe6520000 0 0x40>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 927>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 927>;
+                       i2c-scl-internal-delay-ns = <6>;
+                       status = "disabled";
+               };
+
+               i2c5: i2c@e6528000 {
+                       /* doesn't need pinmux */
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,i2c-r8a7743",
+                                    "renesas,rcar-gen2-i2c";
+                       reg = <0 0xe6528000 0 0x40>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 925>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 925>;
+                       i2c-scl-internal-delay-ns = <110>;
+                       status = "disabled";
+               };
+
                scifa0: serial@e6c40000 {
                        compatible = "renesas,scifa-r8a7743",
                                     "renesas,rcar-gen2-scifa", "renesas,scifa";
                        status = "disabled";
                };
 
+               icram2: sram@e6300000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe6300000 0 0x40000>;
+               };
+
+               icram0: sram@e63a0000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe63a0000 0 0x12000>;
+               };
+
+               icram1: sram@e63c0000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe63c0000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0xe63c0000 0x1000>;
+
+                       smp-sram@0 {
+                               compatible = "renesas,smp-sram";
+                               reg = <0 0x10>;
+                       };
+               };
+
                ether: ethernet@ee700000 {
                        compatible = "renesas,ether-r8a7743";
                        reg = <0 0xee700000 0 0x400>;
                        #size-cells = <0>;
                        status = "disabled";
                };
+
+               avb: ethernet@e6800000 {
+                       compatible = "renesas,etheravb-r8a7743",
+                                    "renesas,etheravb-rcar-gen2";
+                       reg = <0 0xe6800000 0 0x800>, <0 0xee0e8000 0 0x4000>;
+                       interrupts = <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 812>;
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 812>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               mmcif0: mmc@ee200000 {
+                       compatible = "renesas,mmcif-r8a7743",
+                                    "renesas,sh-mmcif";
+                       reg = <0 0xee200000 0 0x80>;
+                       interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 315>;
+                       dmas = <&dmac0 0xd1>, <&dmac0 0xd2>,
+                              <&dmac1 0xd1>, <&dmac1 0xd2>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 315>;
+                       reg-io-width = <4>;
+                       max-frequency = <97500000>;
+                       status = "disabled";
+               };
        };
 
        /* External root clock */
index 97840b3401976095c5dbecc7928773756551b648..b4d679b04ad618a98337b9839b314a2d6ace4474 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Device Tree Source for the SK-RZG1E board
  *
- * Copyright (C) 2016 Cogent Embedded, Inc.
+ * Copyright (C) 2016-2017 Cogent Embedded, Inc.
  *
  * This file is licensed under the terms of the GNU General Public License
  * version 2. This program is licensed "as is" without any warranty of any
        clock-frequency = <20000000>;
 };
 
+&pfc {
+       scif2_pins: scif2 {
+               groups = "scif2_data";
+               function = "scif2";
+       };
+
+       ether_pins: ether {
+               groups = "eth_link", "eth_mdio", "eth_rmii";
+               function = "eth";
+       };
+
+       phy1_pins: phy1 {
+               groups = "intc_irq8";
+               function = "intc";
+       };
+};
+
 &scif2 {
+       pinctrl-0 = <&scif2_pins>;
+       pinctrl-names = "default";
+
        status = "okay";
 };
 
 &ether {
+       pinctrl-0 = <&ether_pins &phy1_pins>;
+       pinctrl-names = "default";
+
        phy-handle = <&phy1>;
        renesas,ether-link-active-low;
        status = "okay";
index 2feb0084bb3b1b5149afe1efd3f50aeeb6984117..aff90dfb8b32169c1cf0c4cf98adc7a090ce5419 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * Device Tree Source for the r8a7745 SoC
  *
- * Copyright (C) 2016 Cogent Embedded Inc.
+ * Copyright (C) 2016-2017 Cogent Embedded Inc.
  *
  * This file is licensed under the terms of the GNU General Public License
  * version 2. This program is licensed "as is" without any warranty of any
                        #power-domain-cells = <1>;
                };
 
+               pfc: pin-controller@e6060000 {
+                       compatible = "renesas,pfc-r8a7745";
+                       reg = <0 0xe6060000 0 0x11c>;
+               };
+
                dmac0: dma-controller@e6700000 {
                        compatible = "renesas,dmac-r8a7745",
                                     "renesas,rcar-dmac";
                        status = "disabled";
                };
 
+               icram2: sram@e6300000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe6300000 0 0x40000>;
+               };
+
+               icram0: sram@e63a0000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe63a0000 0 0x12000>;
+               };
+
+               icram1: sram@e63c0000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe63c0000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0xe63c0000 0x1000>;
+
+                       smp-sram@0 {
+                               compatible = "renesas,smp-sram";
+                               reg = <0 0x10>;
+                       };
+               };
+
                ether: ethernet@ee700000 {
                        compatible = "renesas,ether-r8a7745";
                        reg = <0 0xee700000 0 0x400>;
index 2805a8608d4ba007693b129dddb4d5d1600fa353..16358bf8d1dbffdceceeb53124bf45dea8ae31ec 100644 (file)
                status = "disabled";
        };
 
+       icram0: sram@e63a0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63a0000 0 0x12000>;
+       };
+
+       icram1: sram@e63c0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63c0000 0 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0xe63c0000 0x1000>;
+
+               smp-sram@0 {
+                       compatible = "renesas,smp-sram";
+                       reg = <0 0x10>;
+               };
+       };
+
        ether: ethernet@ee700000 {
                compatible = "renesas,ether-r8a7790";
                reg = <0 0xee700000 0 0x400>;
        };
 
        sata0: sata@ee300000 {
-               compatible = "renesas,sata-r8a7790";
+               compatible = "renesas,sata-r8a7790", "renesas,rcar-gen2-sata";
                reg = <0 0xee300000 0 0x2000>;
                interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7790_CLK_SATA0>;
        };
 
        sata1: sata@ee500000 {
-               compatible = "renesas,sata-r8a7790";
+               compatible = "renesas,sata-r8a7790", "renesas,rcar-gen2-sata";
                reg = <0 0xee500000 0 0x2000>;
                interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7790_CLK_SATA1>;
        };
 
        vin0: video@e6ef0000 {
-               compatible = "renesas,vin-r8a7790";
+               compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef0000 0 0x1000>;
                interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7790_CLK_VIN0>;
        };
 
        vin1: video@e6ef1000 {
-               compatible = "renesas,vin-r8a7790";
+               compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef1000 0 0x1000>;
                interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7790_CLK_VIN1>;
        };
 
        vin2: video@e6ef2000 {
-               compatible = "renesas,vin-r8a7790";
+               compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef2000 0 0x1000>;
                interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7790_CLK_VIN2>;
        };
 
        vin3: video@e6ef3000 {
-               compatible = "renesas,vin-r8a7790";
+               compatible = "renesas,vin-r8a7790", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef3000 0 0x1000>;
                interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7790_CLK_VIN3>;
index 001e6116c47c7c3bd9a22eb0106e369e47dedcae..0ce0b278e1cbe2bf44113586460953edd6ab5f7d 100644 (file)
                };
        };
 
+       cec_clock: cec-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <12000000>;
+       };
+
        hdmi@39 {
                compatible = "adi,adv7511w";
                reg = <0x39>;
                interrupt-parent = <&gpio3>;
                interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&cec_clock>;
+               clock-names = "cec";
 
                adi,input-depth = <8>;
                adi,input-colorspace = "rgb";
        };
 
        eeprom@50 {
-               compatible = "renesas,24c02";
+               compatible = "renesas,24c02", "atmel,24c02";
                reg = <0x50>;
                pagesize = <16>;
        };
index bd93f699ad84098762e99082cfa027dfa4abc088..f1d1a977215308e6cc831a6062780810c150b8a8 100644 (file)
                status = "disabled";
        };
 
+       icram0: sram@e63a0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63a0000 0 0x12000>;
+       };
+
+       icram1: sram@e63c0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63c0000 0 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0xe63c0000 0x1000>;
+
+               smp-sram@0 {
+                       compatible = "renesas,smp-sram";
+                       reg = <0 0x10>;
+               };
+       };
+
        ether: ethernet@ee700000 {
                compatible = "renesas,ether-r8a7791";
                reg = <0 0xee700000 0 0x400>;
        };
 
        sata0: sata@ee300000 {
-               compatible = "renesas,sata-r8a7791";
+               compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata";
                reg = <0 0xee300000 0 0x2000>;
                interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7791_CLK_SATA0>;
        };
 
        sata1: sata@ee500000 {
-               compatible = "renesas,sata-r8a7791";
+               compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata";
                reg = <0 0xee500000 0 0x2000>;
                interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7791_CLK_SATA1>;
        };
 
        vin0: video@e6ef0000 {
-               compatible = "renesas,vin-r8a7791";
+               compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef0000 0 0x1000>;
                interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7791_CLK_VIN0>;
        };
 
        vin1: video@e6ef1000 {
-               compatible = "renesas,vin-r8a7791";
+               compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef1000 0 0x1000>;
                interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7791_CLK_VIN1>;
        };
 
        vin2: video@e6ef2000 {
-               compatible = "renesas,vin-r8a7791";
+               compatible = "renesas,vin-r8a7791", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef2000 0 0x1000>;
                interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7791_CLK_VIN2>;
index 0efecb232ee52ce0d75c189b1e378fbb274cc836..2623f39bed2b73bb6f180a72e89586702a90f2cc 100644 (file)
                        status = "disabled";
                };
 
+               icram0: sram@e63a0000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe63a0000 0 0x12000>;
+               };
+
+               icram1: sram@e63c0000 {
+                       compatible = "mmio-sram";
+                       reg = <0 0xe63c0000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0xe63c0000 0x1000>;
+
+                       smp-sram@0 {
+                               compatible = "renesas,smp-sram";
+                               reg = <0 0x10>;
+                       };
+               };
+
                sdhi0: sd@ee100000 {
                        compatible = "renesas,sdhi-r8a7792";
                        reg = <0 0xee100000 0 0x328>;
index 13b980f27bbc885f2a36b26361562e941fe9291a..497716b6fbe2416423b53b2fd3be3303bc60c92c 100644 (file)
                status = "disabled";
        };
 
+       icram0: sram@e63a0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63a0000 0 0x12000>;
+       };
+
+       icram1: sram@e63c0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63c0000 0 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0xe63c0000 0x1000>;
+
+               smp-sram@0 {
+                       compatible = "renesas,smp-sram";
+                       reg = <0 0x10>;
+               };
+       };
+
        ether: ethernet@ee700000 {
                compatible = "renesas,ether-r8a7793";
                reg = <0 0xee700000 0 0x400>;
index 7d9a81d970d87c6b0ebae4df4bd460305fb0cfa5..26535414203a0b1e43bab73a12ec16238c8b3b1b 100644 (file)
                status = "disabled";
        };
 
+       icram0: sram@e63a0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63a0000 0 0x12000>;
+       };
+
+       icram1: sram@e63c0000 {
+               compatible = "mmio-sram";
+               reg = <0 0xe63c0000 0 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0xe63c0000 0x1000>;
+
+               smp-sram@0 {
+                       compatible = "renesas,smp-sram";
+                       reg = <0 0x10>;
+               };
+       };
+
        ether: ethernet@ee700000 {
                compatible = "renesas,ether-r8a7794";
                reg = <0 0xee700000 0 0x400>;
        };
 
        vin0: video@e6ef0000 {
-               compatible = "renesas,vin-r8a7794";
+               compatible = "renesas,vin-r8a7794", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef0000 0 0x1000>;
                interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7794_CLK_VIN0>;
        };
 
        vin1: video@e6ef1000 {
-               compatible = "renesas,vin-r8a7794";
+               compatible = "renesas,vin-r8a7794", "renesas,rcar-gen2-vin";
                reg = <0 0xe6ef1000 0 0x1000>;
                interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&mstp8_clks R8A7794_CLK_VIN1>;
index 5726135b7f8a89e1ff0620205c667baaef7f5ea7..fdb1570bc7d3137fcfed7acf2fb970ca4ff1a75a 100644 (file)
        keep-power-in-suspend;
        mmc-pwrseq = <&sdio_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
        sd-uhs-sdr12;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
 };
index ec91325d3b6ebeb50da67b44607c600a88cf64bc..4916c65e0ace7ca0b9ec68cddaca34b55c39d932 100644 (file)
                fifo-depth = <0x100>;
                mmc-ddr-1_8v;
                non-removable;
-               num-slots = <1>;
                pinctrl-names = "default";
                pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
                resets = <&cru SRST_EMMC>;
                                rockchip,pins = <1 15 RK_FUNC_1 &pcfg_pull_default>;
                        };
 
-                       sdmmc_cd: sdmcc-cd {
+                       sdmmc_cd: sdmmc-cd {
                                rockchip,pins = <1 17 RK_FUNC_1 &pcfg_pull_default>;
                        };
 
index e1f5198723b22de9dc2cb47a9b46a1a72f11a134..ef1eabf2512c5eec210b8694ca50e1072ba85960 100644 (file)
 #include "tps65910.dtsi"
 
 &mmc0 { /* sdmmc */
-       num-slots = <1>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
 };
 
 &mmc1 { /* wifi */
-       num-slots = <1>;
        status = "okay";
        non-removable;
 
index 7ca1cf5241e036c9a5b56f8b6988bef1fd043c0a..13e285c53defd633967f3058b4b3ce12e673dfa7 100644 (file)
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
-       num-slots = <1>;
        vmmc-supply = <&vcc_sd>;
        status = "okay";
 };
        bus-width = <4>;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
        pinctrl-names = "default";
        vmmc-supply = <&vcc_wifi>;
index 8907deaab18e30038fc094607bfcc1b6faf1044f..400cbf9609e3707b7792139bba326c947df81fe8 100644 (file)
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>;
        vmmc-supply = <&vcc_emmc>;
 &mmc0 {
        bus-width = <4>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
        vmmc-supply = <&vcc_sd>;
        bus-width = <4>;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
        vmmc-supply = <&vccio_wl>;
index 5b2a0b6885cd0790d663ab3ba2d87927b9b32742..8ba9e06062f3e05434cf954fa1027146abbdb3d6 100644 (file)
@@ -89,7 +89,6 @@
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>;
        status = "okay";
 };
 
 &mmc0 {
-       num-slots = <1>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
index ca0a1c4bc15cdd3fea84d305eba5cf219969a00f..53d6fc2fdbce89fb2118c30e2115c05bc29eebcd 100644 (file)
 };
 
 &mmc0 {
-       num-slots = <1>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
index 1b55192b7d04683ce464eb824f45cee43fd4c486..73e38458575541d4571758989d4ecb073eac7d23 100644 (file)
@@ -40,7 +40,8 @@
 
 /dts-v1/;
 
-#include "rk322x.dtsi"
+#include <dt-bindings/input/input.h>
+#include "rk3229.dtsi"
 
 / {
        model = "Rockchip RK3229 Evaluation board";
                reg = <0x60000000 0x40000000>;
        };
 
+       dc_12v: dc-12v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
        ext_gmac: ext_gmac {
                compatible = "fixed-clock";
                clock-frequency = <125000000>;
@@ -67,6 +77,7 @@
                regulator-name = "vcc_host";
                regulator-always-on;
                regulator-boot-on;
+               vin-supply = <&vcc_sys>;
        };
 
        vcc_phy: vcc-phy-regulator {
                regulator-max-microvolt = <1800000>;
                regulator-always-on;
                regulator-boot-on;
+               vin-supply = <&vccio_1v8>;
+       };
+
+       vcc_sys: vcc-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+       };
+
+       vccio_1v8: vccio-1v8-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vccio_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vccio_3v3: vccio-3v3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vccio_3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vdd_arm: vdd-arm-regulator {
+               compatible = "pwm-regulator";
+               pwms = <&pwm1 0 25000 1>;
+               pwm-supply = <&vcc_sys>;
+               regulator-name = "vdd_arm";
+               regulator-min-microvolt = <950000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       vdd_log: vdd-log-regulator {
+               compatible = "pwm-regulator";
+               pwms = <&pwm2 0 25000 1>;
+               pwm-supply = <&vcc_sys>;
+               regulator-name = "vdd_log";
+               regulator-min-microvolt = <1000000>;
+               regulator-max-microvolt = <1300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               autorepeat;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwr_key>;
+
+               power_key: power-key {
+                       label = "GPIO Key Power";
+                       gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       debounce-interval = <100>;
+                       wakeup-source;
+               };
        };
 };
 
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+       cap-mmc-highspeed;
+       disable-wp;
+       non-removable;
+       status = "okay";
+};
+
 &gmac {
        assigned-clocks = <&cru SCLK_MAC_EXTCLK>, <&cru SCLK_MAC>;
        assigned-clock-parents = <&ext_gmac>, <&cru SCLK_MAC_EXTCLK>;
        status = "okay";
 };
 
+&io_domains {
+       status = "okay";
+
+       vccio1-supply = <&vccio_3v3>;
+       vccio2-supply = <&vccio_1v8>;
+       vccio4-supply = <&vccio_3v3>;
+};
+
 &pinctrl {
+       keys {
+               pwr_key: pwr-key {
+                       rockchip,pins = <3 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
        usb {
                host_vbus_drv: host-vbus-drv {
                        rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
        };
 };
 
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
+       status = "okay";
+};
+
 &uart2 {
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/rk3229.dtsi b/arch/arm/boot/dts/rk3229.dtsi
new file mode 100644 (file)
index 0000000..6fe6c15
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ *  Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "rk322x.dtsi"
+
+/ {
+       compatible = "rockchip,rk3229";
+
+       /delete-node/ opp-table0;
+
+       cpu0_opp_table: opp_table0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-408000000 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <950000>;
+                       clock-latency-ns = <40000>;
+                       opp-suspend;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <975000>;
+               };
+               opp-816000000 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <1000000>;
+               };
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1175000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1275000>;
+               };
+               opp-1296000000 {
+                       opp-hz = /bits/ 64 <1296000000>;
+                       opp-microvolt = <1325000>;
+               };
+               opp-1392000000 {
+                       opp-hz = /bits/ 64 <1392000000>;
+                       opp-microvolt = <1375000>;
+               };
+               opp-1464000000 {
+                       opp-hz = /bits/ 64 <1464000000>;
+                       opp-microvolt = <1400000>;
+               };
+       };
+};
index f3e4ffd9f8180bfaade6a9ecfb0e7abaa502f0d1..06814421eed2ef9c41fd5db803bc60f91ee85bed 100644 (file)
@@ -55,6 +55,7 @@
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
+               spi0 = &spi0;
        };
 
        cpus {
@@ -70,6 +71,7 @@
                        #cooling-cells = <2>; /* min followed by max */
                        clock-latency = <40000>;
                        clocks = <&cru ARMCLK>;
+                       enable-method = "psci";
                };
 
                cpu1: cpu@f01 {
@@ -78,6 +80,7 @@
                        reg = <0xf01>;
                        resets = <&cru SRST_CORE1>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       enable-method = "psci";
                };
 
                cpu2: cpu@f02 {
@@ -86,6 +89,7 @@
                        reg = <0xf02>;
                        resets = <&cru SRST_CORE2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       enable-method = "psci";
                };
 
                cpu3: cpu@f03 {
@@ -94,6 +98,7 @@
                        reg = <0xf03>;
                        resets = <&cru SRST_CORE3>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       enable-method = "psci";
                };
        };
 
                interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
        };
 
+       psci {
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+               method = "smc";
+       };
+
        timer {
                compatible = "arm,armv7-timer";
                arm,cpu-registers-not-fw-configured;
                status = "disabled";
        };
 
+       spdif: spdif@100d0000 {
+               compatible = "rockchip,rk3228-spdif";
+               reg = <0x100d0000 0x1000>;
+               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF_8CH>;
+               clock-names = "mclk", "hclk";
+               dmas = <&pdma 10>;
+               dma-names = "tx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdif_tx>;
+               status = "disabled";
+       };
+
        i2s2: i2s2@100e0000 {
                compatible = "rockchip,rk3228-i2s", "rockchip,rk3066-i2s";
                reg = <0x100e0000 0x4000>;
                #address-cells = <1>;
                #size-cells = <1>;
 
+               io_domains: io-domains {
+                       compatible = "rockchip,rk3228-io-voltage-domain";
+                       status = "disabled";
+               };
+
                u2phy0: usb2-phy@760 {
                        compatible = "rockchip,rk3228-usb2phy";
                        reg = <0x0760 0x0c>;
                status = "disabled";
        };
 
+       efuse: efuse@11040000 {
+               compatible = "rockchip,rk3228-efuse";
+               reg = <0x11040000 0x20>;
+               clocks = <&cru PCLK_EFUSE_256>;
+               clock-names = "pclk_efuse";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               /* Data cells */
+               efuse_id: id@7 {
+                       reg = <0x7 0x10>;
+               };
+               cpu_leakage: cpu_leakage@17 {
+                       reg = <0x17 0x1>;
+               };
+       };
+
        i2c0: i2c@11050000 {
                compatible = "rockchip,rk3228-i2c";
                reg = <0x11050000 0x1000>;
                status = "disabled";
        };
 
+       spi0: spi@11090000 {
+               compatible = "rockchip,rk3228-spi";
+               reg = <0x11090000 0x1000>;
+               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&cru SCLK_SPI0>, <&cru PCLK_SPI0>;
+               clock-names = "spiclk", "apb_pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0 &spi0_cs1>;
+               status = "disabled";
+       };
+
        wdt: watchdog@110a0000 {
                compatible = "snps,dw-wdt";
                reg = <0x110a0000 0x100>;
                status = "disabled";
        };
 
+       vpu_mmu: iommu@20020800 {
+               compatible = "rockchip,iommu";
+               reg = <0x20020800 0x100>;
+               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vpu_mmu";
+               iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vdec_mmu: iommu@20030480 {
+               compatible = "rockchip,iommu";
+               reg = <0x20030480 0x40>, <0x200304c0 0x40>;
+               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vdec_mmu";
+               iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vop_mmu: iommu@20053f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x20053f00 0x100>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vop_mmu";
+               iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       iep_mmu: iommu@20070800 {
+               compatible = "rockchip,iommu";
+               reg = <0x20070800 0x100>;
+               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "iep_mmu";
+               iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       sdmmc: dwmmc@30000000 {
+               compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x30000000 0x4000>;
+               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
+                        <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
+               fifo-depth = <0x100>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
+               status = "disabled";
+       };
+
+       sdio: dwmmc@30010000 {
+               compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
+               reg = <0x30010000 0x4000>;
+               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
+                        <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
+               clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
+               fifo-depth = <0x100>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdio_clk &sdio_cmd &sdio_bus4>;
+               status = "disabled";
+       };
+
        emmc: dwmmc@30020000 {
-               compatible = "rockchip,rk3288-dw-mshc";
+               compatible = "rockchip,rk3228-dw-mshc", "rockchip,rk3288-dw-mshc";
                reg = <0x30020000 0x4000>;
                interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <37500000>;
                clock-names = "biu", "ciu", "ciu_drv", "ciu_sample";
                bus-width = <8>;
                default-sample-phase = <158>;
-               num-slots = <1>;
                fifo-depth = <0x100>;
                pinctrl-names = "default";
                pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
                        drive-strength = <12>;
                };
 
+               sdmmc {
+                       sdmmc_clk: sdmmc-clk {
+                               rockchip,pins = <1 RK_PC0 1 &pcfg_pull_none_drv_12ma>;
+                       };
+
+                       sdmmc_cmd: sdmmc-cmd {
+                               rockchip,pins = <1 RK_PB7 1 &pcfg_pull_none_drv_12ma>;
+                       };
+
+                       sdmmc_bus4: sdmmc-bus4 {
+                               rockchip,pins = <1 RK_PC2 1 &pcfg_pull_none_drv_12ma>,
+                                               <1 RK_PC3 1 &pcfg_pull_none_drv_12ma>,
+                                               <1 RK_PC4 1 &pcfg_pull_none_drv_12ma>,
+                                               <1 RK_PC5 1 &pcfg_pull_none_drv_12ma>;
+                       };
+               };
+
+               sdio {
+                       sdio_clk: sdio-clk {
+                               rockchip,pins = <3 RK_PA0 1 &pcfg_pull_none_drv_12ma>;
+                       };
+
+                       sdio_cmd: sdio-cmd {
+                               rockchip,pins = <3 RK_PA1 1 &pcfg_pull_none_drv_12ma>;
+                       };
+
+                       sdio_bus4: sdio-bus4 {
+                               rockchip,pins = <3 RK_PA2 1 &pcfg_pull_none_drv_12ma>,
+                                               <3 RK_PA3 1 &pcfg_pull_none_drv_12ma>,
+                                               <3 RK_PA4 1 &pcfg_pull_none_drv_12ma>,
+                                               <3 RK_PA5 1 &pcfg_pull_none_drv_12ma>;
+                       };
+               };
+
                emmc {
                        emmc_clk: emmc-clk {
                                rockchip,pins = <2 7 RK_FUNC_2 &pcfg_pull_none>;
                        };
                };
 
+               spi-0 {
+                       spi0_clk: spi0-clk {
+                               rockchip,pins = <0 9 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi0_cs0: spi0-cs0 {
+                               rockchip,pins = <0 14 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi0_tx: spi0-tx {
+                               rockchip,pins = <0 11 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi0_rx: spi0-rx {
+                               rockchip,pins = <0 13 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi0_cs1: spi0-cs1 {
+                               rockchip,pins = <1 12 RK_FUNC_1 &pcfg_pull_up>;
+                       };
+               };
+
+               spi-1 {
+                       spi1_clk: spi1-clk {
+                               rockchip,pins = <0 23 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi1_cs0: spi1-cs0 {
+                               rockchip,pins = <2 2 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi1_rx: spi1-rx {
+                               rockchip,pins = <2 0 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi1_tx: spi1-tx {
+                               rockchip,pins = <2 1 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+                       spi1_cs1: spi1-cs1 {
+                               rockchip,pins = <2 3 RK_FUNC_2 &pcfg_pull_up>;
+                       };
+               };
+
                i2s1 {
                        i2s1_bus: i2s1-bus {
                                rockchip,pins = <0 8 RK_FUNC_1 &pcfg_pull_none>,
                        };
                };
 
+               spdif {
+                       spdif_tx: spdif-tx {
+                               rockchip,pins = <3 31 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
                tsadc {
                        otp_gpio: otp-gpio {
                                rockchip,pins = <0 24 RK_FUNC_GPIO &pcfg_pull_none>;
index 0dec94c3583b4523d44defc903821beaa810116f..39b61dce97ad344e0884a02f87ff66c6155eb51d 100644 (file)
 / {
        memory@0 {
                device_type = "memory";
-               reg = <0x0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+
+               button-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <100000>;
+               };
+
+               button-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <300000>;
+               };
+
+               menu {
+                       label = "Menu";
+                       linux,code = <KEY_MENU>;
+                       press-threshold-microvolt = <640000>;
+               };
+
+               esc {
+                       label = "Esc";
+                       linux,code = <KEY_ESC>;
+                       press-threshold-microvolt = <1000000>;
+               };
+
+               home  {
+                       label = "Home";
+                       linux,code = <KEY_HOME>;
+                       press-threshold-microvolt = <1300000>;
+               };
        };
 
        backlight: backlight {
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
        status = "okay";
 };
 
+&saradc {
+       vref-supply = <&vcc_18>;
+       status = "okay";
+};
+
 &sdmmc {
        bus-width = <4>;
        cap-mmc-highspeed;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;                     /* wp not hooked up */
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        status = "okay";
        status = "ok";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
 &hdmi {
        ddc-i2c-bus = <&i2c5>;
        status = "okay";
index 61d1c1028317818e1e8b59ac2007f1197a00f8c4..41405974253a4ba945362ecac43d8eb61484538c 100644 (file)
@@ -47,7 +47,7 @@
        compatible = "rockchip,rk3288-fennec", "rockchip,rk3288";
 
        memory@0 {
-               reg = <0x0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
                device_type = "memory";
        };
 
@@ -77,7 +77,6 @@
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
        status = "okay";
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
 &hdmi {
        status = "okay";
 };
index 813496618d08ecaad55b250e40cf472efd10b84c..5f05815f47e09278bdc9eb7870d25ab0c504e549 100644 (file)
@@ -47,7 +47,7 @@
 / {
        memory@0 {
                device_type = "memory";
-               reg = <0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
        };
 
        ext_gmac: external-gmac-clock {
@@ -78,7 +78,6 @@
        mmc-ddr-1_8v;
        mmc-hs200-1_8v;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
        vmmc-supply = <&vcc_io>;
index b11a282c334c4d03cc1fdc1e1665029fc0f1de18..7da0947ababbc4a1cda11e6f5b4190ee9f803a88 100644 (file)
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
        vmmc-supply = <&vcc_sd>;
        disable-wp;
        mmc-pwrseq = <&sdio_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>;
        sd-uhs-sdr12;
index 32dabae12e673778303e1e91f7fed02af4eeee08..b9e6f3a97240c4a8e422cc44052604e05893fcdc 100644 (file)
@@ -46,7 +46,7 @@
 / {
        memory@0 {
                device_type = "memory";
-               reg = <0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
        };
 
        adc-keys {
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
        vmmc-supply = <&vcc_io>;
        bus-width = <4>;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>;
        vmmc-supply = <&vbat_wl>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
        vmmc-supply = <&vcc_sd>;
index 30e93f694ae86699194fb830a45f7d5644d6d23f..4d923aa6ed1196395897cd6abefa56dc557ff5a4 100644 (file)
@@ -54,7 +54,7 @@
 
        memory@0 {
                device_type = "memory";
-               reg = <0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
        };
 
        ext_gmac: external-gmac-clock {
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_pwr>, <&emmc_bus8>;
        vmmc-supply = <&vcc_io>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk>, <&sdmmc_cmd>, <&sdmmc_cd>, <&sdmmc_bus4>;
        vmmc-supply = <&vcc_sd>;
index 3dda79579b5192402f3ecc37f2969bbb2706af82..1241cbcfc16fae404a269917abe86f03b8f17c0f 100644 (file)
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        vmmc-supply = <&vdd_io_sd>;
index 26cd3ad45160714351993413a4180107ff670339..99cfae875e12e6e3ec9e333c7534a058bbe0a3e8 100644 (file)
@@ -55,7 +55,7 @@
         */
        memory {
                device_type = "memory";
-               reg = <0 0x8000000>;
+               reg = <0x0 0x0 0x0 0x8000000>;
        };
 
        aliases {
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
        vmmc-supply = <&vdd_3v3_io>;
index aa1f9ecff23109b7671e81d0afd62f217a563b18..f084e0c8dcb350726949d698cd8021c0168d8a9e 100644 (file)
@@ -50,7 +50,7 @@
 
        memory@0 {
                device_type = "memory";
-               reg = <0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
        };
 
        ext_gmac: external-gmac-clock {
        mmc-ddr-1_8v;
        mmc-hs200-1_8v;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
        vmmc-supply = <&vcc_io>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;                     /* wp not hooked up */
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        sd-uhs-sdr12;
index 1145b62edde7fb8ddf3aee9b1674dad07afb1568..e95215c9788b38376a78cc8d2567798662d0d51f 100644 (file)
@@ -50,7 +50,7 @@
 
        memory@0 {
                device_type = "memory";
-               reg = <0x0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
        };
 
        ext_gmac: external-gmac-clock {
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        vmmc-supply = <&vcc_sdmmc>;
index 749a9b86e6e27c9a1d7d5e50786022d6804d24e5..b9c471fcbd42b080305e2c89318dd2bea4036603 100644 (file)
@@ -43,7 +43,7 @@
 
 / {
        memory@0 {
-               reg = <0x0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
                device_type = "memory";
        };
 
@@ -89,7 +89,6 @@
        cap-mmc-highspeed;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        mmc-pwrseq = <&emmc_pwrseq>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
index 8ed25e9f60bc480309765ab26c10426a5965e2cd..0e084b8a86acb01fb53fa2aca461fc727d6c7544 100644 (file)
        disable-wp;
        mmc-pwrseq = <&sdio_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk &sdio0_int>;
        vmmc-supply = <&vcc_io>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;     /* wp not hooked up */
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        vmmc-supply = <&vcc_sd>;
index f601c78386a92f67e780b18a7aaf6c08cf4f25bd..346b0d8b474d9995f000d0dd3fedca46cff755cf 100644 (file)
@@ -50,7 +50,7 @@
        compatible = "asus,rk3288-tinker", "rockchip,rk3288";
 
        memory {
-               reg = <0x0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
                device_type = "memory";
        };
 
        status = "ok";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
 &hdmi {
        ddc-i2c-bus = <&i2c5>;
        status = "okay";
        cap-sd-highspeed;
        card-detect-delay = <200>;
        disable-wp;                     /* wp not hooked up */
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        status = "okay";
index aef07101e9abaa549cc6e2fa3c311c4f5dbd47b2..95e9bee8bca2bd0c6c619dcd58670a298661548c 100644 (file)
        card-detect-delay = <200>;
        cd-gpios = <&gpio7 RK_PA5 GPIO_ACTIVE_LOW>;
        rockchip,default-sample-phase = <90>;
-       num-slots = <1>;
        sd-uhs-sdr12;
        sd-uhs-sdr25;
        sd-uhs-sdr50;
index d709fa1847f9a8ca2f435a95ecc7b78536af1ffb..6e5bd8974f22dc9aac0fdf7daeeae8ca490f82d0 100644 (file)
@@ -49,7 +49,7 @@
 / {
        memory@0 {
                device_type = "memory";
-               reg = <0x0 0x80000000>;
+               reg = <0x0 0x0 0x0 0x80000000>;
        };
 
        gpio_keys: gpio-keys {
        mmc-hs200-1_8v;
        mmc-pwrseq = <&emmc_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
 };
        keep-power-in-suspend;
        mmc-pwrseq = <&sdio_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
        sd-uhs-sdr12;
index 858e1fed762a1df80f33bac4576b5d900e021bcf..356ed1e624525224c8e797da0990f83a75823008 100644 (file)
@@ -49,8 +49,8 @@
 #include <dt-bindings/soc/rockchip,boot-mode.h>
 
 / {
-       #address-cells = <1>;
-       #size-cells = <1>;
+       #address-cells = <2>;
+       #size-cells = <2>;
 
        compatible = "rockchip,rk3288";
 
 
        amba {
                compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
+               #address-cells = <2>;
+               #size-cells = <2>;
                ranges;
 
                dmac_peri: dma-controller@ff250000 {
                        compatible = "arm,pl330", "arm,primecell";
-                       reg = <0xff250000 0x4000>;
+                       reg = <0x0 0xff250000 0x0 0x4000>;
                        interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
 
                dmac_bus_ns: dma-controller@ff600000 {
                        compatible = "arm,pl330", "arm,primecell";
-                       reg = <0xff600000 0x4000>;
+                       reg = <0x0 0xff600000 0x0 0x4000>;
                        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
 
                dmac_bus_s: dma-controller@ffb20000 {
                        compatible = "arm,pl330", "arm,primecell";
-                       reg = <0xffb20000 0x4000>;
+                       reg = <0x0 0xffb20000 0x0 0x4000>;
                        interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
        };
 
        reserved-memory {
-               #address-cells = <1>;
-               #size-cells = <1>;
+               #address-cells = <2>;
+               #size-cells = <2>;
                ranges;
 
                /*
                 * is found.
                 */
                dma-unusable@fe000000 {
-                       reg = <0xfe000000 0x1000000>;
+                       reg = <0x0 0xfe000000 0x0 0x1000000>;
                };
        };
 
 
        timer: timer@ff810000 {
                compatible = "rockchip,rk3288-timer";
-               reg = <0xff810000 0x20>;
+               reg = <0x0 0xff810000 0x0 0x20>;
                interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&xin24m>, <&cru PCLK_TIMER>;
                clock-names = "timer", "pclk";
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0xff0c0000 0x4000>;
+               reg = <0x0 0xff0c0000 0x0 0x4000>;
                resets = <&cru SRST_MMC0>;
                reset-names = "reset";
                status = "disabled";
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0xff0d0000 0x4000>;
+               reg = <0x0 0xff0d0000 0x0 0x4000>;
                resets = <&cru SRST_SDIO0>;
                reset-names = "reset";
                status = "disabled";
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0xff0e0000 0x4000>;
+               reg = <0x0 0xff0e0000 0x0 0x4000>;
                resets = <&cru SRST_SDIO1>;
                reset-names = "reset";
                status = "disabled";
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
                interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0xff0f0000 0x4000>;
+               reg = <0x0 0xff0f0000 0x0 0x4000>;
                resets = <&cru SRST_EMMC>;
                reset-names = "reset";
                status = "disabled";
 
        saradc: saradc@ff100000 {
                compatible = "rockchip,saradc";
-               reg = <0xff100000 0x100>;
+               reg = <0x0 0xff100000 0x0 0x100>;
                interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
                #io-channel-cells = <1>;
                clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
                interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi0_clk &spi0_tx &spi0_rx &spi0_cs0>;
-               reg = <0xff110000 0x1000>;
+               reg = <0x0 0xff110000 0x0 0x1000>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi1_clk &spi1_tx &spi1_rx &spi1_cs0>;
-               reg = <0xff120000 0x1000>;
+               reg = <0x0 0xff120000 0x0 0x1000>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi2_clk &spi2_tx &spi2_rx &spi2_cs0>;
-               reg = <0xff130000 0x1000>;
+               reg = <0x0 0xff130000 0x0 0x1000>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
 
        i2c1: i2c@ff140000 {
                compatible = "rockchip,rk3288-i2c";
-               reg = <0xff140000 0x1000>;
+               reg = <0x0 0xff140000 0x0 0x1000>;
                interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        i2c3: i2c@ff150000 {
                compatible = "rockchip,rk3288-i2c";
-               reg = <0xff150000 0x1000>;
+               reg = <0x0 0xff150000 0x0 0x1000>;
                interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        i2c4: i2c@ff160000 {
                compatible = "rockchip,rk3288-i2c";
-               reg = <0xff160000 0x1000>;
+               reg = <0x0 0xff160000 0x0 0x1000>;
                interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        i2c5: i2c@ff170000 {
                compatible = "rockchip,rk3288-i2c";
-               reg = <0xff170000 0x1000>;
+               reg = <0x0 0xff170000 0x0 0x1000>;
                interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        uart0: serial@ff180000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
-               reg = <0xff180000 0x100>;
+               reg = <0x0 0xff180000 0x0 0x100>;
                interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
                reg-shift = <2>;
                reg-io-width = <4>;
 
        uart1: serial@ff190000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
-               reg = <0xff190000 0x100>;
+               reg = <0x0 0xff190000 0x0 0x100>;
                interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
                reg-shift = <2>;
                reg-io-width = <4>;
 
        uart2: serial@ff690000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
-               reg = <0xff690000 0x100>;
+               reg = <0x0 0xff690000 0x0 0x100>;
                interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
                reg-shift = <2>;
                reg-io-width = <4>;
 
        uart3: serial@ff1b0000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
-               reg = <0xff1b0000 0x100>;
+               reg = <0x0 0xff1b0000 0x0 0x100>;
                interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                reg-shift = <2>;
                reg-io-width = <4>;
 
        uart4: serial@ff1c0000 {
                compatible = "rockchip,rk3288-uart", "snps,dw-apb-uart";
-               reg = <0xff1c0000 0x100>;
+               reg = <0x0 0xff1c0000 0x0 0x100>;
                interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
                reg-shift = <2>;
                reg-io-width = <4>;
 
        tsadc: tsadc@ff280000 {
                compatible = "rockchip,rk3288-tsadc";
-               reg = <0xff280000 0x100>;
+               reg = <0x0 0xff280000 0x0 0x100>;
                interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
                clock-names = "tsadc", "apb_pclk";
 
        gmac: ethernet@ff290000 {
                compatible = "rockchip,rk3288-gmac";
-               reg = <0xff290000 0x10000>;
+               reg = <0x0 0xff290000 0x0 0x10000>;
                interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
                                <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "macirq", "eth_wake_irq";
 
        usb_host0_ehci: usb@ff500000 {
                compatible = "generic-ehci";
-               reg = <0xff500000 0x100>;
+               reg = <0x0 0xff500000 0x0 0x100>;
                interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_USBHOST0>;
                clock-names = "usbhost";
        usb_host1: usb@ff540000 {
                compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
                                "snps,dwc2";
-               reg = <0xff540000 0x40000>;
+               reg = <0x0 0xff540000 0x0 0x40000>;
                interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_USBHOST1>;
                clock-names = "otg";
        usb_otg: usb@ff580000 {
                compatible = "rockchip,rk3288-usb", "rockchip,rk3066-usb",
                                "snps,dwc2";
-               reg = <0xff580000 0x40000>;
+               reg = <0x0 0xff580000 0x0 0x40000>;
                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_OTG0>;
                clock-names = "otg";
 
        usb_hsic: usb@ff5c0000 {
                compatible = "generic-ehci";
-               reg = <0xff5c0000 0x100>;
+               reg = <0x0 0xff5c0000 0x0 0x100>;
                interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_HSIC>;
                clock-names = "usbhost";
 
        i2c0: i2c@ff650000 {
                compatible = "rockchip,rk3288-i2c";
-               reg = <0xff650000 0x1000>;
+               reg = <0x0 0xff650000 0x0 0x1000>;
                interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        i2c2: i2c@ff660000 {
                compatible = "rockchip,rk3288-i2c";
-               reg = <0xff660000 0x1000>;
+               reg = <0x0 0xff660000 0x0 0x1000>;
                interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        pwm0: pwm@ff680000 {
                compatible = "rockchip,rk3288-pwm";
-               reg = <0xff680000 0x10>;
+               reg = <0x0 0xff680000 0x0 0x10>;
                #pwm-cells = <3>;
                pinctrl-names = "default";
                pinctrl-0 = <&pwm0_pin>;
 
        pwm1: pwm@ff680010 {
                compatible = "rockchip,rk3288-pwm";
-               reg = <0xff680010 0x10>;
+               reg = <0x0 0xff680010 0x0 0x10>;
                #pwm-cells = <3>;
                pinctrl-names = "default";
                pinctrl-0 = <&pwm1_pin>;
 
        pwm2: pwm@ff680020 {
                compatible = "rockchip,rk3288-pwm";
-               reg = <0xff680020 0x10>;
+               reg = <0x0 0xff680020 0x0 0x10>;
                #pwm-cells = <3>;
                pinctrl-names = "default";
                pinctrl-0 = <&pwm2_pin>;
 
        pwm3: pwm@ff680030 {
                compatible = "rockchip,rk3288-pwm";
-               reg = <0xff680030 0x10>;
+               reg = <0x0 0xff680030 0x0 0x10>;
                #pwm-cells = <2>;
                pinctrl-names = "default";
                pinctrl-0 = <&pwm3_pin>;
 
        bus_intmem@ff700000 {
                compatible = "mmio-sram";
-               reg = <0xff700000 0x18000>;
+               reg = <0x0 0xff700000 0x0 0x18000>;
                #address-cells = <1>;
                #size-cells = <1>;
-               ranges = <0 0xff700000 0x18000>;
+               ranges = <0 0x0 0xff700000 0x18000>;
                smp-sram@0 {
                        compatible = "rockchip,rk3066-smp-sram";
                        reg = <0x00 0x10>;
 
        sram@ff720000 {
                compatible = "rockchip,rk3288-pmu-sram", "mmio-sram";
-               reg = <0xff720000 0x1000>;
+               reg = <0x0 0xff720000 0x0 0x1000>;
        };
 
        pmu: power-management@ff730000 {
                compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
-               reg = <0xff730000 0x100>;
+               reg = <0x0 0xff730000 0x0 0x100>;
 
                power: power-controller {
                        compatible = "rockchip,rk3288-power-controller";
 
        sgrf: syscon@ff740000 {
                compatible = "rockchip,rk3288-sgrf", "syscon";
-               reg = <0xff740000 0x1000>;
+               reg = <0x0 0xff740000 0x0 0x1000>;
        };
 
        cru: clock-controller@ff760000 {
                compatible = "rockchip,rk3288-cru";
-               reg = <0xff760000 0x1000>;
+               reg = <0x0 0xff760000 0x0 0x1000>;
                rockchip,grf = <&grf>;
                #clock-cells = <1>;
                #reset-cells = <1>;
 
        grf: syscon@ff770000 {
                compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
-               reg = <0xff770000 0x1000>;
+               reg = <0x0 0xff770000 0x0 0x1000>;
 
                edp_phy: edp-phy {
                        compatible = "rockchip,rk3288-dp-phy";
 
        wdt: watchdog@ff800000 {
                compatible = "rockchip,rk3288-wdt", "snps,dw-wdt";
-               reg = <0xff800000 0x100>;
+               reg = <0x0 0xff800000 0x0 0x100>;
                clocks = <&cru PCLK_WDT>;
                interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
 
        spdif: sound@ff88b0000 {
                compatible = "rockchip,rk3288-spdif", "rockchip,rk3066-spdif";
-               reg = <0xff8b0000 0x10000>;
+               reg = <0x0 0xff8b0000 0x0 0x10000>;
                #sound-dai-cells = <0>;
                clock-names = "hclk", "mclk";
                clocks = <&cru HCLK_SPDIF8CH>, <&cru SCLK_SPDIF8CH>;
 
        i2s: i2s@ff890000 {
                compatible = "rockchip,rk3288-i2s", "rockchip,rk3066-i2s";
-               reg = <0xff890000 0x10000>;
+               reg = <0x0 0xff890000 0x0 0x10000>;
                interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
                #address-cells = <1>;
                #size-cells = <0>;
 
        crypto: cypto-controller@ff8a0000 {
                compatible = "rockchip,rk3288-crypto";
-               reg = <0xff8a0000 0x4000>;
+               reg = <0x0 0xff8a0000 0x0 0x4000>;
                interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_CRYPTO>, <&cru HCLK_CRYPTO>,
                         <&cru SCLK_CRYPTO>, <&cru ACLK_DMAC1>;
                status = "okay";
        };
 
+       iep_mmu: iommu@ff900800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff900800 0x0 0x40>;
+               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "iep_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       isp_mmu: iommu@ff914000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "isp_mmu";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
        vopb: vop@ff930000 {
                compatible = "rockchip,rk3288-vop";
-               reg = <0xff930000 0x19c>;
+               reg = <0x0 0xff930000 0x0 0x19c>;
                interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
 
        vopb_mmu: iommu@ff930300 {
                compatible = "rockchip,iommu";
-               reg = <0xff930300 0x100>;
+               reg = <0x0 0xff930300 0x0 0x100>;
                interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "vopb_mmu";
                power-domains = <&power RK3288_PD_VIO>;
 
        vopl: vop@ff940000 {
                compatible = "rockchip,rk3288-vop";
-               reg = <0xff940000 0x19c>;
+               reg = <0x0 0xff940000 0x0 0x19c>;
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
                clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
 
        vopl_mmu: iommu@ff940300 {
                compatible = "rockchip,iommu";
-               reg = <0xff940300 0x100>;
+               reg = <0x0 0xff940300 0x0 0x100>;
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "vopl_mmu";
                power-domains = <&power RK3288_PD_VIO>;
 
        mipi_dsi: mipi@ff960000 {
                compatible = "rockchip,rk3288-mipi-dsi", "snps,dw-mipi-dsi";
-               reg = <0xff960000 0x4000>;
+               reg = <0x0 0xff960000 0x0 0x4000>;
                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
                clock-names = "ref", "pclk";
 
        edp: dp@ff970000 {
                compatible = "rockchip,rk3288-dp";
-               reg = <0xff970000 0x4000>;
+               reg = <0x0 0xff970000 0x0 0x4000>;
                interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>;
                clock-names = "dp", "pclk";
 
        hdmi: hdmi@ff980000 {
                compatible = "rockchip,rk3288-dw-hdmi";
-               reg = <0xff980000 0x20000>;
+               reg = <0x0 0xff980000 0x0 0x20000>;
                reg-io-width = <4>;
                rockchip,grf = <&grf>;
                interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
                };
        };
 
+       vpu_mmu: iommu@ff9a0800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff9a0800 0x0 0x100>;
+               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vpu_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       hevc_mmu: iommu@ff9c0440 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff9c0440 0x0 0x40>, <0x0 0xff9c0480 0x0 0x40>;
+               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "hevc_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        gpu: gpu@ffa30000 {
                compatible = "rockchip,rk3288-mali", "arm,mali-t760";
-               reg = <0xffa30000 0x10000>;
+               reg = <0x0 0xffa30000 0x0 0x10000>;
                interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
 
        qos_gpu_r: qos@ffaa0000 {
                compatible = "syscon";
-               reg = <0xffaa0000 0x20>;
+               reg = <0x0 0xffaa0000 0x0 0x20>;
        };
 
        qos_gpu_w: qos@ffaa0080 {
                compatible = "syscon";
-               reg = <0xffaa0080 0x20>;
+               reg = <0x0 0xffaa0080 0x0 0x20>;
        };
 
        qos_vio1_vop: qos@ffad0000 {
                compatible = "syscon";
-               reg = <0xffad0000 0x20>;
+               reg = <0x0 0xffad0000 0x0 0x20>;
        };
 
        qos_vio1_isp_w0: qos@ffad0100 {
                compatible = "syscon";
-               reg = <0xffad0100 0x20>;
+               reg = <0x0 0xffad0100 0x0 0x20>;
        };
 
        qos_vio1_isp_w1: qos@ffad0180 {
                compatible = "syscon";
-               reg = <0xffad0180 0x20>;
+               reg = <0x0 0xffad0180 0x0 0x20>;
        };
 
        qos_vio0_vop: qos@ffad0400 {
                compatible = "syscon";
-               reg = <0xffad0400 0x20>;
+               reg = <0x0 0xffad0400 0x0 0x20>;
        };
 
        qos_vio0_vip: qos@ffad0480 {
                compatible = "syscon";
-               reg = <0xffad0480 0x20>;
+               reg = <0x0 0xffad0480 0x0 0x20>;
        };
 
        qos_vio0_iep: qos@ffad0500 {
                compatible = "syscon";
-               reg = <0xffad0500 0x20>;
+               reg = <0x0 0xffad0500 0x0 0x20>;
        };
 
        qos_vio2_rga_r: qos@ffad0800 {
                compatible = "syscon";
-               reg = <0xffad0800 0x20>;
+               reg = <0x0 0xffad0800 0x0 0x20>;
        };
 
        qos_vio2_rga_w: qos@ffad0880 {
                compatible = "syscon";
-               reg = <0xffad0880 0x20>;
+               reg = <0x0 0xffad0880 0x0 0x20>;
        };
 
        qos_vio1_isp_r: qos@ffad0900 {
                compatible = "syscon";
-               reg = <0xffad0900 0x20>;
+               reg = <0x0 0xffad0900 0x0 0x20>;
        };
 
        qos_video: qos@ffae0000 {
                compatible = "syscon";
-               reg = <0xffae0000 0x20>;
+               reg = <0x0 0xffae0000 0x0 0x20>;
        };
 
        qos_hevc_r: qos@ffaf0000 {
                compatible = "syscon";
-               reg = <0xffaf0000 0x20>;
+               reg = <0x0 0xffaf0000 0x0 0x20>;
        };
 
        qos_hevc_w: qos@ffaf0080 {
                compatible = "syscon";
-               reg = <0xffaf0080 0x20>;
+               reg = <0x0 0xffaf0080 0x0 0x20>;
        };
 
        gic: interrupt-controller@ffc01000 {
                #interrupt-cells = <3>;
                #address-cells = <0>;
 
-               reg = <0xffc01000 0x1000>,
-                     <0xffc02000 0x2000>,
-                     <0xffc04000 0x2000>,
-                     <0xffc06000 0x2000>;
+               reg = <0x0 0xffc01000 0x0 0x1000>,
+                     <0x0 0xffc02000 0x0 0x2000>,
+                     <0x0 0xffc04000 0x0 0x2000>,
+                     <0x0 0xffc06000 0x0 0x2000>;
                interrupts = <GIC_PPI 9 0xf04>;
        };
 
        efuse: efuse@ffb40000 {
                compatible = "rockchip,rk3288-efuse";
-               reg = <0xffb40000 0x20>;
+               reg = <0x0 0xffb40000 0x0 0x20>;
                #address-cells = <1>;
                #size-cells = <1>;
                clocks = <&cru PCLK_EFUSE256>;
                compatible = "rockchip,rk3288-pinctrl";
                rockchip,grf = <&grf>;
                rockchip,pmu = <&pmu>;
-               #address-cells = <1>;
-               #size-cells = <1>;
+               #address-cells = <2>;
+               #size-cells = <2>;
                ranges;
 
                gpio0: gpio0@ff750000 {
                        compatible = "rockchip,gpio-bank";
-                       reg =   <0xff750000 0x100>;
+                       reg = <0x0 0xff750000 0x0 0x100>;
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO0>;
 
 
                gpio1: gpio1@ff780000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff780000 0x100>;
+                       reg = <0x0 0xff780000 0x0 0x100>;
                        interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO1>;
 
 
                gpio2: gpio2@ff790000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff790000 0x100>;
+                       reg = <0x0 0xff790000 0x0 0x100>;
                        interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO2>;
 
 
                gpio3: gpio3@ff7a0000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff7a0000 0x100>;
+                       reg = <0x0 0xff7a0000 0x0 0x100>;
                        interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO3>;
 
 
                gpio4: gpio4@ff7b0000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff7b0000 0x100>;
+                       reg = <0x0 0xff7b0000 0x0 0x100>;
                        interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO4>;
 
 
                gpio5: gpio5@ff7c0000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff7c0000 0x100>;
+                       reg = <0x0 0xff7c0000 0x0 0x100>;
                        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO5>;
 
 
                gpio6: gpio6@ff7d0000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff7d0000 0x100>;
+                       reg = <0x0 0xff7d0000 0x0 0x100>;
                        interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO6>;
 
 
                gpio7: gpio7@ff7e0000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff7e0000 0x100>;
+                       reg = <0x0 0xff7e0000 0x0 0x100>;
                        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO7>;
 
 
                gpio8: gpio8@ff7f0000 {
                        compatible = "rockchip,gpio-bank";
-                       reg = <0xff7f0000 0x100>;
+                       reg = <0x0 0xff7f0000 0x0 0x100>;
                        interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cru PCLK_GPIO8>;
 
index 58cf4ac079c3dea6b307148bca9311bda36162a3..86a57f823616185a14ede94aebdcf853e6edfa16 100644 (file)
        chosen {
                stdout-path = "serial2:1500000n8";
        };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <
+                         0   1   2   3   4   5   6   7
+                         8   9  10  11  12  13  14  15
+                        16  17  18  19  20  21  22  23
+                        24  25  26  27  28  29  30  31
+                        32  33  34  35  36  37  38  39
+                        40  41  42  43  44  45  46  47
+                        48  49  50  51  52  53  54  55
+                        56  57  58  59  60  61  62  63
+                        64  65  66  67  68  69  70  71
+                        72  73  74  75  76  77  78  79
+                        80  81  82  83  84  85  86  87
+                        88  89  90  91  92  93  94  95
+                        96  97  98  99 100 101 102 103
+                       104 105 106 107 108 109 110 111
+                       112 113 114 115 116 117 118 119
+                       120 121 122 123 124 125 126 127
+                       128 129 130 131 132 133 134 135
+                       136 137 138 139 140 141 142 143
+                       144 145 146 147 148 149 150 151
+                       152 153 154 155 156 157 158 159
+                       160 161 162 163 164 165 166 167
+                       168 169 170 171 172 173 174 175
+                       176 177 178 179 180 181 182 183
+                       184 185 186 187 188 189 190 191
+                       192 193 194 195 196 197 198 199
+                       200 201 202 203 204 205 206 207
+                       208 209 210 211 212 213 214 215
+                       216 217 218 219 220 221 222 223
+                       224 225 226 227 228 229 230 231
+                       232 233 234 235 236 237 238 239
+                       240 241 242 243 244 245 246 247
+                       248 249 250 251 252 253 254 255>;
+               default-brightness-level = <200>;
+               pwms = <&pwm0 0 25000 0>;
+       };
+
+       vcc_sys: vsys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vsys";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-boot-on;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_core>;
+};
+
+&i2c0 {
+       status = "okay";
+       i2c-scl-rising-time-ns = <275>;
+       i2c-scl-falling-time-ns = <16>;
+       clock-frequency = <400000>;
+
+       rk805: pmic@18 {
+               compatible = "rockchip,rk805";
+               reg = <0x18>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
+               rockchip,system-power-controller;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc5-supply = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+
+               regulators {
+                       vdd_core: DCDC_REG1 {
+                               regulator-name= "vdd_core";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-state-enabled;
+                                       regulator-state-uv = <900000>;
+                               };
+                       };
+
+                       vdd_cam: DCDC_REG2 {
+                               regulator-name= "vdd_cam";
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-state-mem {
+                                       regulator-state-disabled;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name= "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-state-enabled;
+                               };
+                       };
+
+                       vcc_io: DCDC_REG4 {
+                               regulator-name= "vcc_io";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-state-enabled;
+                                       regulator-state-uv = <3300000>;
+                               };
+                       };
+
+                       vdd_10: LDO_REG1 {
+                               regulator-name= "vdd_10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-state-disabled;
+                               };
+                       };
+
+                       vcc_18: LDO_REG2 {
+                               regulator-name= "vcc_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-state-disabled;
+                               };
+                       };
+
+                       vdd10_pmu: LDO_REG3 {
+                               regulator-name= "vdd10_pmu";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-state-enabled;
+                                       regulator-state-uv = <1000000>;
+                               };
+                       };
+               };
+       };
+
+       bma250: accelerometer@19 {
+               compatible = "bosch,bma250e";
+               reg = <0x19>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB3 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&sdmmc {
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+
+       u2phy_host: host-port {
+               status = "okay";
+       };
+
+       u2phy_otg: otg-port {
+               status = "okay";
+       };
 };
 
 &uart0 {
 &uart2 {
        status = "okay";
 };
+
+&usb_host_ehci {
+       status = "okay";
+};
+
+&usb_host_ohci {
+       status = "okay";
+};
+
+&usb_otg {
+       status = "okay";
+};
index 437098b556eb8b9119f2fbbda79f35ce664e7920..e7cd1315db1b7bc08c688867dd77c4687396fe92 100644 (file)
        interrupt-parent = <&gic>;
 
        aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
                serial0 = &uart0;
                serial1 = &uart1;
                serial2 = &uart2;
                        device_type = "cpu";
                        compatible = "arm,cortex-a7";
                        reg = <0xf00>;
+                       clocks = <&cru ARMCLK>;
+                       operating-points-v2 = <&cpu_opp_table>;
+               };
+       };
+
+       cpu_opp_table: opp_table {
+               compatible = "operating-points-v2";
+
+               opp-408000000 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <975000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <975000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-816000000 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <1025000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1150000>;
+                       clock-latency-ns = <40000>;
                };
        };
 
                status = "disabled";
        };
 
+       i2c1: i2c@10240000 {
+               compatible = "rockchip,rv1108-i2c";
+               reg = <0x10240000 0x1000>;
+               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
+               clock-names = "i2c", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c1_xfer>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
+       i2c2: i2c@10250000 {
+               compatible = "rockchip,rv1108-i2c";
+               reg = <0x10250000 0x1000>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
+               clock-names = "i2c", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c2m1_xfer>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
+       i2c3: i2c@10260000 {
+               compatible = "rockchip,rv1108-i2c";
+               reg = <0x10260000 0x1000>;
+               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
+               clock-names = "i2c", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c3_xfer>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
+       spi: spi@10270000 {
+               compatible = "rockchip,rv1108-spi";
+               reg = <0x10270000 0x1000>;
+               interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
+               clock-names = "spiclk", "apb_pclk";
+               dmas = <&pdma 8>, <&pdma 9>;
+               #dma-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
+       pwm4: pwm@10280000 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x10280000 0x10>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm4_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm5: pwm@10280010 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x10280010 0x10>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm5_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm6: pwm@10280020 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x10280020 0x10>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm6_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm7: pwm@10280030 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x10280030 0x10>;
+               interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm7_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
        grf: syscon@10300000 {
-               compatible = "rockchip,rv1108-grf", "syscon";
+               compatible = "rockchip,rv1108-grf", "syscon", "simple-mfd";
                reg = <0x10300000 0x1000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy: usb2-phy@100 {
+                       compatible = "rockchip,rv1108-usb2phy";
+                       reg = <0x100 0x0c>;
+                       clocks = <&cru SCLK_USBPHY>;
+                       clock-names = "phyclk";
+                       #clock-cells = <0>;
+                       clock-output-names = "usbphy";
+                       rockchip,usbgrf = <&usbgrf>;
+                       status = "disabled";
+
+                       u2phy_otg: otg-port {
+                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "otg-mux";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       u2phy_host: host-port {
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
+       watchdog: wdt@10360000 {
+               compatible = "snps,dw-wdt";
+               reg = <0x10360000 0x100>;
+               interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru PCLK_WDT>;
+               clock-names = "pclk_wdt";
+               status = "disabled";
+       };
+
+       adc: adc@1038c000 {
+               compatible = "rockchip,rv1108-saradc", "rockchip,rk3399-saradc";
+               reg = <0x1038c000 0x100>;
+               interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+               #io-channel-cells = <1>;
+               clock-frequency = <1000000>;
+               clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
+               clock-names = "saradc", "apb_pclk";
+               status = "disabled";
+       };
+
+       i2c0: i2c@20000000 {
+               compatible = "rockchip,rv1108-i2c";
+               reg = <0x20000000 0x1000>;
+               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&cru SCLK_I2C0_PMU>, <&cru PCLK_I2C0_PMU>;
+               clock-names = "i2c", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c0_xfer>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
+       pwm0: pwm@20040000 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x20040000 0x10>;
+               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm0_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm1: pwm@20040010 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x20040010 0x10>;
+               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm1_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm2: pwm@20040020 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x20040020 0x10>;
+               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm2_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm3: pwm@20040030 {
+               compatible = "rockchip,rv1108-pwm", "rockchip,rk3288-pwm";
+               reg = <0x20040030 0x10>;
+               interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM0_PMU>, <&cru PCLK_PWM0_PMU>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm3_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
        };
 
        pmugrf: syscon@20060000 {
                reg = <0x20060000 0x1000>;
        };
 
+       usbgrf: syscon@202a0000 {
+               compatible = "rockchip,rv1108-usbgrf", "syscon";
+               reg = <0x202a0000 0x1000>;
+       };
+
        cru: clock-controller@20200000 {
                compatible = "rockchip,rv1108-cru";
                reg = <0x20200000 0x1000>;
 
        emmc: dwmmc@30110000 {
                compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
-               clock-freq-min-max = <400000 150000000>;
+               reg = <0x30110000 0x4000>;
+               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
                         <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
-               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0x30110000 0x4000>;
+               max-frequency = <150000000>;
                status = "disabled";
        };
 
        sdio: dwmmc@30120000 {
                compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
-               clock-freq-min-max = <400000 150000000>;
+               reg = <0x30120000 0x4000>;
+               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
                         <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
-               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0x30120000 0x4000>;
+               max-frequency = <150000000>;
                status = "disabled";
        };
 
        sdmmc: dwmmc@30130000 {
                compatible = "rockchip,rv1108-dw-mshc", "rockchip,rk3288-dw-mshc";
-               clock-freq-min-max = <400000 100000000>;
+               reg = <0x30130000 0x4000>;
+               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
                         <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
-               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-               reg = <0x30130000 0x4000>;
+               max-frequency = <100000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
+               status = "disabled";
+       };
+
+       usb_host_ehci: usb@30140000 {
+               compatible = "generic-ehci";
+               reg = <0x30140000 0x20000>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST0>, <&u2phy>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host_ohci: usb@30160000 {
+               compatible = "generic-ohci";
+               reg = <0x30160000 0x20000>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST0>, <&u2phy>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_otg: usb@30180000 {
+               compatible = "rockchip,rv1108-usb", "rockchip,rk3066-usb",
+                            "snps,dwc2";
+               reg = <0x30180000 0x40000>;
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_OTG>;
+               clock-names = "otg";
+               dr_mode = "otg";
+               g-np-tx-fifo-size = <16>;
+               g-rx-fifo-size = <280>;
+               g-tx-fifo-size = <256 128 128 64 32 16>;
+               g-use-dma;
+               phys = <&u2phy_otg>;
+               phy-names = "usb2-phy";
                status = "disabled";
        };
 
                        drive-strength = <12>;
                };
 
+               pcfg_pull_none_smt: pcfg-pull-none-smt {
+                       bias-disable;
+                       input-schmitt-enable;
+               };
+
                pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
                        bias-pull-up;
                        drive-strength = <8>;
                        input-enable;
                };
 
+               i2c0 {
+                       i2c0_xfer: i2c0-xfer {
+                               rockchip,pins = <0 RK_PB1 RK_FUNC_1 &pcfg_pull_none_smt>,
+                                               <0 RK_PB2 RK_FUNC_1 &pcfg_pull_none_smt>;
+                       };
+               };
+
                i2c1 {
                        i2c1_xfer: i2c1-xfer {
                                rockchip,pins = <2 RK_PD3 RK_FUNC_1 &pcfg_pull_up>,
                        };
                };
 
+               pwm0 {
+                       pwm0_pin: pwm0-pin {
+                               rockchip,pins = <0 RK_PC5 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm1 {
+                       pwm1_pin: pwm1-pin {
+                               rockchip,pins = <0 RK_PC4 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm2 {
+                       pwm2_pin: pwm2-pin {
+                               rockchip,pins = <0 RK_PC6 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm3 {
+                       pwm3_pin: pwm3-pin {
+                               rockchip,pins = <0 RK_PC0 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm4 {
+                       pwm4_pin: pwm4-pin {
+                               rockchip,pins = <1 RK_PC1 RK_FUNC_3 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm5 {
+                       pwm5_pin: pwm5-pin {
+                               rockchip,pins = <1 RK_PA7 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm6 {
+                       pwm6_pin: pwm6-pin {
+                               rockchip,pins = <1 RK_PB0 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
+               pwm7 {
+                       pwm7_pin: pwm7-pin {
+                               rockchip,pins = <1 RK_PB1 RK_FUNC_2 &pcfg_pull_none>;
+                       };
+               };
+
                sdmmc {
                        sdmmc_clk: sdmmc-clk {
                                rockchip,pins = <3 RK_PC4 RK_FUNC_1 &pcfg_pull_none_drv_4ma>;
index 60e69aeacbdbf4dff78923f227f96f8bc49c1fbc..38d2216c7ead9ff422cce1e740a820e47977a700 100644 (file)
                                };
                        };
 
+                       isc: isc@f0008000 {
+                               compatible = "atmel,sama5d2-isc";
+                               reg = <0xf0008000 0x4000>;
+                               interrupts = <46 IRQ_TYPE_LEVEL_HIGH 5>;
+                               clocks = <&isc_clk>, <&iscck>, <&isc_gclk>;
+                               clock-names = "hclock", "iscck", "gck";
+                               #clock-cells = <0>;
+                               clock-output-names = "isc-mck";
+                               status = "disabled";
+                       };
+
                        ramc0: ramc@f000c000 {
                                compatible = "atmel,sama5d3-ddramc";
                                reg = <0xf000c000 0x200>;
                                        clocks = <&plla>;
                                };
 
+                               audio_pll_frac: audiopll_fracck {
+                                       compatible = "atmel,sama5d2-clk-audio-pll-frac";
+                                       #clock-cells = <0>;
+                                       clocks = <&main>;
+                               };
+
+                               audio_pll_pad: audiopll_padck {
+                                       compatible = "atmel,sama5d2-clk-audio-pll-pad";
+                                       #clock-cells = <0>;
+                                       clocks = <&audio_pll_frac>;
+                               };
+
+                               audio_pll_pmc: audiopll_pmcck {
+                                       compatible = "atmel,sama5d2-clk-audio-pll-pmc";
+                                       #clock-cells = <0>;
+                                       clocks = <&audio_pll_frac>;
+                               };
+
                                utmi: utmick {
                                        compatible = "atmel,at91sam9x5-clk-utmi";
                                        #clock-cells = <0>;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                        interrupt-parent = <&pmc>;
-                                       clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>;
+                                       clocks = <&clk32k>, <&main>, <&plladiv>, <&utmi>, <&mck>, <&audio_pll_pmc>;
 
                                        sdmmc0_gclk: sdmmc0_gclk {
                                                #clock-cells = <0>;
                                                atmel,clk-output-range = <0 83000000>;
                                        };
 
+                                       isc_gclk: isc_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <46>;
+                                       };
+
                                        pdmic_gclk: pdmic_gclk {
                                                #clock-cells = <0>;
                                                reg = <48>;
                                                reg = <57>;
                                                atmel,clk-output-range = <0 80000000>;
                                        };
+
+                                       classd_gclk: classd_gclk {
+                                               #clock-cells = <0>;
+                                               reg = <59>;
+                                               atmel,clk-output-range = <0 100000000>;
+                                       };
                                };
                        };
 
+                       qspi0: spi@f0020000 {
+                               compatible = "atmel,sama5d2-qspi";
+                               reg = <0xf0020000 0x100>, <0xd0000000 0x08000000>;
+                               reg-names = "qspi_base", "qspi_mmap";
+                               interrupts = <52 IRQ_TYPE_LEVEL_HIGH 7>;
+                               clocks = <&qspi0_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       qspi1: spi@f0024000 {
+                               compatible = "atmel,sama5d2-qspi";
+                               reg = <0xf0024000 0x100>, <0xd8000000 0x08000000>;
+                               reg-names = "qspi_base", "qspi_mmap";
+                               interrupts = <53 IRQ_TYPE_LEVEL_HIGH 7>;
+                               clocks = <&qspi1_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
                        sha@f0028000 {
                                compatible = "atmel,at91sam9g46-sha";
                                reg = <0xf0028000 0x100>;
                                status = "okay";
                        };
 
+                       classd: classd@fc048000 {
+                               compatible = "atmel,sama5d2-classd";
+                               reg = <0xfc048000 0x100>;
+                               interrupts = <59 IRQ_TYPE_LEVEL_HIGH 7>;
+                               dmas = <&dma0
+                                       (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) |
+                                        AT91_XDMAC_DT_PERID(47))>;
+                               dma-names = "tx";
+                               clocks = <&classd_clk>, <&classd_gclk>;
+                               clock-names = "pclk", "gclk";
+                               status = "disabled";
+                       };
+
                        can1: can@fc050000 {
                                compatible = "bosch,m_can";
                                reg = <0xfc050000 0x4000>, <0x210000 0x4000>;
index 54bc6d3cf2903e8d710aaa0ea178232d3be09942..40f4ad3c34c6e5e496622a99936c0b3bdfc1830c 100644 (file)
@@ -98,6 +98,7 @@
                        device_type = "pci";
                        ranges = <0x81000000 0 0         0x80020000 0 0x00010000   /* downstream I/O */
                                0x82000000 0 0x80030000 0xc0030000 0 0x0ffd0000>; /* non-prefetchable memory */
+                       bus-range = <0x00 0xff>;
                        status = "disabled";
                };
 
                        device_type = "pci";
                        ranges = <0x81000000 0 0  0x90020000 0 0x00010000   /* downstream I/O */
                                0x82000000 0 0x90030000 0x90030000 0 0x0ffd0000>; /* non-prefetchable memory */
+                       bus-range = <0x00 0xff>;
                        status = "disabled";
                };
 
                        device_type = "pci";
                        ranges = <0x81000000 0 0         0xc0020000 0 0x00010000   /* downstream I/O */
                                0x82000000 0 0xc0030000 0xc0030000 0 0x0ffd0000>; /* non-prefetchable memory */
+                       bus-range = <0x00 0xff>;
                        status = "disabled";
                };
 
index df2232d767ed2ea7ffca8383e258cecb768dc679..5f347054527def7bc99e5a62575e986d0d5b067a 100644 (file)
@@ -63,6 +63,7 @@
                        device_type = "pci";
                        ranges = <0x81000000 0 0         0x80020000 0 0x00010000   /* downstream I/O */
                                0x82000000 0 0x80030000 0xc0030000 0 0x0ffd0000>; /* non-prefetchable memory */
+                       bus-range = <0x00 0xff>;
                        status = "disabled";
                };
 
index 6c5affe2d0f556eab1d3415718bd5e8fcf36842a..2310a4e97768c222ca19fe8f125c5aede36be8d1 100644 (file)
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0x300>;
+                       /* cpufreq controls */
+                       operating-points = <998400 0
+                                           800000 0
+                                           400000 0
+                                           200000 0>;
+                       clocks = <&prcmu_clk PRCMU_ARMSS>;
+                       clock-names = "cpu";
+                       clock-latency = <20000>;
                };
                CPU1: cpu@301 {
                        device_type = "cpu";
                                reg = <0x80157450 0xC>;
                        };
 
-                       cpufreq {
-                               compatible = "stericsson,cpufreq-ux500";
-                               clocks = <&prcmu_clk PRCMU_ARMSS>;
-                               clock-names = "armss";
-                               status = "disabled";
-                       };
-
                        thermal@801573c0 {
                                compatible = "stericsson,db8500-thermal";
                                reg = <0x801573c0 0x40>;
index dcda0bbefe5b5a532df6a00f9c8a1083747acefe..97b1c2321ba9dd4f7791213b47beaeb740d6542f 100644 (file)
@@ -55,7 +55,7 @@
        compatible = "st,stm32429i-eval", "st,stm32f429";
 
        chosen {
-               bootargs = "root=/dev/ram rdinit=/linuxrc";
+               bootargs = "root=/dev/ram";
                stdout-path = "serial0:115200n8";
        };
 
index ae47cde7952f6bb16fe13b435a0f704cda7fbc8a..c66d617e4245b4c7b83f45e2266480c1ac64759d 100644 (file)
@@ -54,7 +54,7 @@
        compatible = "st,stm32f429i-disco", "st,stm32f429";
 
        chosen {
-               bootargs = "root=/dev/ram rdinit=/linuxrc";
+               bootargs = "root=/dev/ram";
                stdout-path = "serial0:115200n8";
        };
 
index a8113dc879cfeed36a67eb32417764374cfd23e1..dd7e99b1f43bc78111f0de584849367a8f07cf8a 100644 (file)
                        status = "disabled";
                };
 
+               dac: dac@40007400 {
+                       compatible = "st,stm32f4-dac-core";
+                       reg = <0x40007400 0x400>;
+                       resets = <&rcc STM32F4_APB1_RESET(DAC)>;
+                       clocks = <&rcc 0 STM32F4_APB1_CLOCK(DAC)>;
+                       clock-names = "pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       dac1: dac@1 {
+                               compatible = "st,stm32-dac";
+                               #io-channels-cells = <1>;
+                               reg = <1>;
+                               status = "disabled";
+                       };
+
+                       dac2: dac@2 {
+                               compatible = "st,stm32-dac";
+                               #io-channels-cells = <1>;
+                               reg = <2>;
+                               status = "disabled";
+                       };
+               };
+
                usart7: serial@40007800 {
                        compatible = "st,stm32-usart", "st,stm32-uart";
                        reg = <0x40007800 0x400>;
index 75470c34b92cb36c5f1f6eb61c3c0f31e94a84bf..6ae1f037f3f0e5065eb80a6159a8bfb1d5eb3ba1 100644 (file)
@@ -53,7 +53,7 @@
        compatible = "st,stm32f469i-disco", "st,stm32f469";
 
        chosen {
-               bootargs = "root=/dev/ram rdinit=/linuxrc";
+               bootargs = "root=/dev/ram";
                stdout-path = "serial0:115200n8";
        };
 
index 4506eb97a4ab47baf45cda13f851083a951cb440..5633860037d23397379b092a4cf5bba353abb367 100644 (file)
                        status = "disabled";
                };
 
+               cec: cec@40006c00 {
+                       compatible = "st,stm32-cec";
+                       reg = <0x40006C00 0x400>;
+                       interrupts = <94>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
+                       clock-names = "cec", "hdmi-cec";
+                       status = "disabled";
+               };
+
                usart7: serial@40007800 {
                        compatible = "st,stm32f7-usart", "st,stm32f7-uart";
                        reg = <0x40007800 0x400>;
                                st,bank-name = "GPIOK";
                        };
 
+                       cec_pins_a: cec@0 {
+                               pins {
+                                       pinmux = <STM32F746_PA15_FUNC_HDMI_CEC>;
+                                       slew-rate = <0>;
+                                       drive-open-drain;
+                                       bias-disable;
+                               };
+                       };
+
                        usart1_pins_a: usart1@0 {
                                pins1 {
                                        pinmux = <STM32F746_PA9_FUNC_USART1_TX>;
                        assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
                        assigned-clock-rates = <1000000>;
                };
+
+               dma1: dma@40026000 {
+                       compatible = "st,stm32-dma";
+                       reg = <0x40026000 0x400>;
+                       interrupts = <11>,
+                                    <12>,
+                                    <13>,
+                                    <14>,
+                                    <15>,
+                                    <16>,
+                                    <17>,
+                                    <47>;
+                       clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
+                       #dma-cells = <4>;
+                       status = "disabled";
+               };
+
+               dma2: dma@40026400 {
+                       compatible = "st,stm32-dma";
+                       reg = <0x40026400 0x400>;
+                       interrupts = <56>,
+                                    <57>,
+                                    <58>,
+                                    <59>,
+                                    <60>,
+                                    <68>,
+                                    <69>,
+                                    <70>;
+                       clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
+                       #dma-cells = <4>;
+                       st,mem2mem;
+                       status = "disabled";
+               };
        };
 };
 
index 166728aeb16669f5a1086e9ace525a1d17490328..4463ca13a740e8ce0c568a6d0e8ece07f962d80c 100644 (file)
 
 };
 
+&cec {
+       pinctrl-0 = <&cec_pins_a>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
 &clk_hse {
        clock-frequency = <25000000>;
 };
index 36a99db0a3b4cd08a1e8388ad5c8d832efeb8781..58ec2275181ef7c196087ba8ba2ac6d05da6524a 100644 (file)
        };
 
        soc {
+               timer5: timer@40000c00 {
+                       compatible = "st,stm32-timer";
+                       reg = <0x40000c00 0x400>;
+                       interrupts = <50>;
+                       clocks = <&timer_clk>;
+               };
+
+               usart2: serial@40004400 {
+                       compatible = "st,stm32f7-usart", "st,stm32f7-uart";
+                       reg = <0x40004400 0x400>;
+                       interrupts = <38>;
+                       status = "disabled";
+                       clocks = <&timer_clk>;
+               };
+
+               dac: dac@40007400 {
+                       compatible = "st,stm32h7-dac-core";
+                       reg = <0x40007400 0x400>;
+                       clocks = <&timer_clk>;
+                       clock-names = "pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       dac1: dac@1 {
+                               compatible = "st,stm32-dac";
+                               #io-channels-cells = <1>;
+                               reg = <1>;
+                               status = "disabled";
+                       };
+
+                       dac2: dac@2 {
+                               compatible = "st,stm32-dac";
+                               #io-channels-cells = <1>;
+                               reg = <2>;
+                               status = "disabled";
+                       };
+               };
+
                usart1: serial@40011000 {
                        compatible = "st,stm32f7-usart", "st,stm32f7-uart";
                        reg = <0x40011000 0x400>;
 
                };
 
-               usart2: serial@40004400 {
-                       compatible = "st,stm32f7-usart", "st,stm32f7-uart";
-                       reg = <0x40004400 0x400>;
-                       interrupts = <38>;
+               dma1: dma@40020000 {
+                       compatible = "st,stm32-dma";
+                       reg = <0x40020000 0x400>;
+                       interrupts = <11>,
+                                    <12>,
+                                    <13>,
+                                    <14>,
+                                    <15>,
+                                    <16>,
+                                    <17>,
+                                    <47>;
+                       clocks = <&timer_clk>;
+                       #dma-cells = <4>;
+                       st,mem2mem;
                        status = "disabled";
+               };
+
+               dma2: dma@40020400 {
+                       compatible = "st,stm32-dma";
+                       reg = <0x40020400 0x400>;
+                       interrupts = <56>,
+                                    <57>,
+                                    <58>,
+                                    <59>,
+                                    <60>,
+                                    <68>,
+                                    <69>,
+                                    <70>;
                        clocks = <&timer_clk>;
+                       #dma-cells = <4>;
+                       st,mem2mem;
+                       status = "disabled";
                };
 
-               timer5: timer@40000c00 {
-                       compatible = "st,stm32-timer";
-                       reg = <0x40000c00 0x400>;
-                       interrupts = <50>;
+               adc_12: adc@40022000 {
+                       compatible = "st,stm32h7-adc-core";
+                       reg = <0x40022000 0x400>;
+                       interrupts = <18>;
+                       clocks = <&timer_clk>;
+                       clock-names = "bus";
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       adc1: adc@0 {
+                               compatible = "st,stm32h7-adc";
+                               #io-channel-cells = <1>;
+                               reg = <0x0>;
+                               interrupt-parent = <&adc_12>;
+                               interrupts = <0>;
+                               status = "disabled";
+                       };
+
+                       adc2: adc@100 {
+                               compatible = "st,stm32h7-adc";
+                               #io-channel-cells = <1>;
+                               reg = <0x100>;
+                               interrupt-parent = <&adc_12>;
+                               interrupts = <1>;
+                               status = "disabled";
+                       };
+               };
+
+               adc_3: adc@58026000 {
+                       compatible = "st,stm32h7-adc-core";
+                       reg = <0x58026000 0x400>;
+                       interrupts = <127>;
                        clocks = <&timer_clk>;
+                       clock-names = "bus";
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       adc3: adc@0 {
+                               compatible = "st,stm32h7-adc";
+                               #io-channel-cells = <1>;
+                               reg = <0x0>;
+                               interrupt-parent = <&adc_3>;
+                               interrupts = <0>;
+                               status = "disabled";
+                       };
                };
        };
 };
index c6effbb36e4a8983131998ef00780b465c6327ff..6c07786e7ddb9195fc88108d5d1906deb13f6c12 100644 (file)
        aliases {
                serial0 = &usart1;
        };
+
+       vdda: regulator-vdda {
+               compatible = "regulator-fixed";
+               regulator-name = "vdda";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+};
+
+&adc_12 {
+       vref-supply = <&vdda>;
+       status = "okay";
+       adc1: adc@0 {
+               /* potentiometer */
+               st,adc-channels = <0>;
+               status = "okay";
+       };
 };
 
 &clk_hse {
index aebc3f9dc7b679da02f85e96a26f74719182ead4..b147cb0dc14b26ce92db7ea70bba2a8f77bd0d38 100644 (file)
                                     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                };
 
-               nmi_intc: interrupt-controller@01f00c0c {
-                       compatible = "allwinner,sun6i-a31-sc-nmi";
+               nmi_intc: interrupt-controller@1f00c00 {
+                       compatible = "allwinner,sun6i-a31-r-intc";
                        interrupt-controller;
                        #interrupt-cells = <2>;
-                       reg = <0x01f00c0c 0x38>;
+                       reg = <0x01f00c00 0x400>;
                        interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                };
 
index bb510187602c1c2e43c01d43a210430f3317b70b..852a0aa24dcee6c577b167c9d36d9c01b9a59403 100644 (file)
        status = "okay";
 };
 
+&battery_power_supply {
+       status = "okay";
+};
+
 &reg_dcdc2 {
        regulator-always-on;
        regulator-min-microvolt = <1000000>;
index a8b978d0f35b5f68b6621fa5e4ac71c3e3395dce..ea50dda75adceba97c0d9f16ff4f90eab366c3d9 100644 (file)
                        #clock-cells = <1>;
                };
 
-               nmi_intc: interrupt-controller@01f00c0c {
-                       compatible = "allwinner,sun6i-a31-sc-nmi";
+               nmi_intc: interrupt-controller@1f00c00 {
+                       compatible = "allwinner,sun6i-a31-r-intc";
                        interrupt-controller;
                        #interrupt-cells = <2>;
-                       reg = <0x01f00c0c 0x38>;
+                       reg = <0x01f00c00 0x400>;
                        interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
                };
 
index aecdeeb368ed85e0c5e59c47f7aeebcd5cbf9a70..1f0d60afb25b695c44523c70d80677f1dd753ecb 100644 (file)
@@ -43,6 +43,7 @@
 
 /dts-v1/;
 #include "sun8i-a83t.dtsi"
+#include "sunxi-common-regulators.dtsi"
 
 / {
        model = "Allwinner A83T H8Homlet Proto Dev Board v2.0";
        };
 };
 
+&ehci0 {
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&reg_vcc3v0>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
+       bus-width = <4>;
+       cd-inverted;
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_8bit_emmc_pins>;
+       vmmc-supply = <&reg_vcc3v0>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&reg_usb0_vbus {
+       gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
+       status = "okay";
+};
+
+&reg_usb1_vbus {
+       gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp81x: pmic@3a3 {
+               compatible = "x-powers,axp818", "x-powers,axp813";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       ac100: codec@e89 {
+               compatible = "x-powers,ac100";
+               reg = <0xe89>;
+
+               ac100_codec: codec {
+                       compatible = "x-powers,ac100-codec";
+                       interrupt-parent = <&r_pio>;
+                       interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
+                       #clock-cells = <0>;
+                       clock-output-names = "4M_adda";
+               };
+
+               ac100_rtc: rtc {
+                       compatible = "x-powers,ac100-rtc";
+                       interrupt-parent = <&r_intc>;
+                       interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&ac100_codec>;
+                       #clock-cells = <1>;
+                       clock-output-names = "cko1_rtc",
+                                            "cko2_rtc",
+                                            "cko3_rtc";
+               };
+       };
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pb_pins>;
        status = "okay";
 };
+
+&usbphy {
+       usb0_vbus-supply = <&reg_usb0_vbus>;
+       usb1_vbus-supply = <&reg_usb1_vbus>;
+       status = "okay";
+};
+
+&usb_otg {
+       dr_mode = "host";
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts b/arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts
new file mode 100644 (file)
index 0000000..2bafd7e
--- /dev/null
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2017 Chen-Yu Tsai
+ *
+ * Chen-Yu Tsai <wens@csie.org>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-a83t.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Banana Pi BPI-M3";
+       compatible = "sinovoip,bpi-m3", "allwinner,sun8i-a83t";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&ehci0 {
+       /* Terminus Tech FE 1.1s 4-port USB 2.0 hub here */
+       status = "okay";
+
+       /* TODO GL830 USB-to-SATA bridge downstream w/ GPIO power controls */
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
+       cd-inverted;
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_8bit_emmc_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp81x: pmic@3a3 {
+               compatible = "x-powers,axp813";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       ac100: codec@e89 {
+               compatible = "x-powers,ac100";
+               reg = <0xe89>;
+
+               ac100_codec: codec {
+                       compatible = "x-powers,ac100-codec";
+                       interrupt-parent = <&r_pio>;
+                       interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
+                       #clock-cells = <0>;
+                       clock-output-names = "4M_adda";
+               };
+
+               ac100_rtc: rtc {
+                       compatible = "x-powers,ac100-rtc";
+                       interrupt-parent = <&r_intc>;
+                       interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&ac100_codec>;
+                       #clock-cells = <1>;
+                       clock-output-names = "cko1_rtc",
+                                            "cko2_rtc",
+                                            "cko3_rtc";
+               };
+       };
+};
+
+&reg_usb1_vbus {
+       gpio = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
+       status = "okay";
+};
+
+&reg_vcc3v0 {
+       status = "disabled";
+};
+
+&reg_vcc5v0 {
+       status = "disabled";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pb_pins>;
+       status = "okay";
+};
+
+&usbphy {
+       usb1_vbus-supply = <&reg_usb1_vbus>;
+       status = "okay";
+};
index cff33454fc2458bf0e1fee5110ab8dd86c88cc21..716a205c6dbbeca282efbe4498742634205ad8bd 100644 (file)
@@ -44,6 +44,7 @@
 
 /dts-v1/;
 #include "sun8i-a83t.dtsi"
+#include "sunxi-common-regulators.dtsi"
 
 #include <dt-bindings/gpio/gpio.h>
 
                };
        };
 
+       usb-hub {
+               /* I2C is not connected */
+               compatible = "smsc,usb3503";
+               initial-mode = <1>; /* initialize in HUB mode */
+               disabled-ports = <1>;
+               intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
+               reset-gpios = <&pio 4 16 GPIO_ACTIVE_HIGH>; /* PE16 */
+               connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
+               refclk-frequency = <19200000>;
+       };
+
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,name = "On-board SPDIF";
        };
 };
 
+&ehci0 {
+       /* GL830 USB-to-SATA bridge here */
+       status = "okay";
+};
+
+&ehci1 {
+       /* USB3503 HSIC USB 2.0 hub here */
+       status = "okay";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>; /* PF6 */
+       cd-inverted;
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_8bit_emmc_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp81x: pmic@3a3 {
+               compatible = "x-powers,axp818", "x-powers,axp813";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       ac100: codec@e89 {
+               compatible = "x-powers,ac100";
+               reg = <0xe89>;
+
+               ac100_codec: codec {
+                       compatible = "x-powers,ac100-codec";
+                       interrupt-parent = <&r_pio>;
+                       interrupts = <0 11 IRQ_TYPE_LEVEL_LOW>; /* PL11 */
+                       #clock-cells = <0>;
+                       clock-output-names = "4M_adda";
+               };
+
+               ac100_rtc: rtc {
+                       compatible = "x-powers,ac100-rtc";
+                       interrupt-parent = <&r_intc>;
+                       interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+                       clocks = <&ac100_codec>;
+                       #clock-cells = <1>;
+                       clock-output-names = "cko1_rtc",
+                                            "cko2_rtc",
+                                            "cko3_rtc";
+               };
+       };
+};
+
+&reg_usb1_vbus {
+       gpio = <&pio 3 29 GPIO_ACTIVE_HIGH>; /* PD29 */
+       status = "okay";
+};
+
+&reg_usb2_vbus {
+       gpio = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
+       status = "okay";
+};
+
+&reg_vcc3v0 {
+       status = "disabled";
+};
+
+&reg_vcc5v0 {
+       status = "disabled";
+};
+
 &spdif {
        status = "okay";
 };
        pinctrl-0 = <&uart0_pb_pins>;
        status = "okay";
 };
+
+&usbphy {
+       usb1_vbus-supply = <&reg_usb1_vbus>;
+       usb2_vbus-supply = <&reg_usb2_vbus>;
+       status = "okay";
+};
index 19a8f4fcfab50ef5300360d980f1738d99345a94..f996bd343e50ca156830b373048f3d51a0234116 100644 (file)
@@ -47,6 +47,7 @@
 #include <dt-bindings/clock/sun8i-a83t-ccu.h>
 #include <dt-bindings/clock/sun8i-r-ccu.h>
 #include <dt-bindings/reset/sun8i-a83t-ccu.h>
+#include <dt-bindings/reset/sun8i-r-ccu.h>
 
 / {
        interrupt-parent = <&gic>;
                        #dma-cells = <1>;
                };
 
+               mmc0: mmc@1c0f000 {
+                       compatible = "allwinner,sun8i-a83t-mmc",
+                                    "allwinner,sun7i-a20-mmc";
+                       reg = <0x01c0f000 0x1000>;
+                       clocks = <&ccu CLK_BUS_MMC0>,
+                                <&ccu CLK_MMC0>,
+                                <&ccu CLK_MMC0_OUTPUT>,
+                                <&ccu CLK_MMC0_SAMPLE>;
+                       clock-names = "ahb",
+                                     "mmc",
+                                     "output",
+                                     "sample";
+                       resets = <&ccu RST_BUS_MMC0>;
+                       reset-names = "ahb";
+                       interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mmc1: mmc@1c10000 {
+                       compatible = "allwinner,sun8i-a83t-mmc",
+                                    "allwinner,sun7i-a20-mmc";
+                       reg = <0x01c10000 0x1000>;
+                       clocks = <&ccu CLK_BUS_MMC1>,
+                                <&ccu CLK_MMC1>,
+                                <&ccu CLK_MMC1_OUTPUT>,
+                                <&ccu CLK_MMC1_SAMPLE>;
+                       clock-names = "ahb",
+                                     "mmc",
+                                     "output",
+                                     "sample";
+                       resets = <&ccu RST_BUS_MMC1>;
+                       reset-names = "ahb";
+                       interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mmc2: mmc@1c11000 {
+                       compatible = "allwinner,sun8i-a83t-emmc";
+                       reg = <0x01c11000 0x1000>;
+                       clocks = <&ccu CLK_BUS_MMC2>,
+                                <&ccu CLK_MMC2>,
+                                <&ccu CLK_MMC2_OUTPUT>,
+                                <&ccu CLK_MMC2_SAMPLE>;
+                       clock-names = "ahb",
+                                     "mmc",
+                                     "output",
+                                     "sample";
+                       resets = <&ccu RST_BUS_MMC2>;
+                       reset-names = "ahb";
+                       interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               usb_otg: usb@01c19000 {
+                       compatible = "allwinner,sun8i-a83t-musb",
+                                    "allwinner,sun8i-a33-musb";
+                       reg = <0x01c19000 0x0400>;
+                       clocks = <&ccu CLK_BUS_OTG>;
+                       resets = <&ccu RST_BUS_OTG>;
+                       interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mc";
+                       phys = <&usbphy 0>;
+                       phy-names = "usb";
+                       extcon = <&usbphy 0>;
+                       status = "disabled";
+               };
+
+               usbphy: phy@1c19400 {
+                       compatible = "allwinner,sun8i-a83t-usb-phy";
+                       reg = <0x01c19400 0x10>,
+                             <0x01c1a800 0x14>,
+                             <0x01c1b800 0x14>;
+                       reg-names = "phy_ctrl",
+                                   "pmu1",
+                                   "pmu2";
+                       clocks = <&ccu CLK_USB_PHY0>,
+                                <&ccu CLK_USB_PHY1>,
+                                <&ccu CLK_USB_HSIC>,
+                                <&ccu CLK_USB_HSIC_12M>;
+                       clock-names = "usb0_phy",
+                                     "usb1_phy",
+                                     "usb2_phy",
+                                     "usb2_hsic_12M";
+                       resets = <&ccu RST_USB_PHY0>,
+                                <&ccu RST_USB_PHY1>,
+                                <&ccu RST_USB_HSIC>;
+                       reset-names = "usb0_reset",
+                                     "usb1_reset",
+                                     "usb2_reset";
+                       status = "disabled";
+                       #phy-cells = <1>;
+               };
+
+               ehci0: usb@1c1a000 {
+                       compatible = "allwinner,sun8i-a83t-ehci",
+                                    "generic-ehci";
+                       reg = <0x01c1a000 0x100>;
+                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_EHCI0>;
+                       resets = <&ccu RST_BUS_EHCI0>;
+                       phys = <&usbphy 1>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ohci0: usb@1c1a400 {
+                       compatible = "allwinner,sun8i-a83t-ohci",
+                                    "generic-ohci";
+                       reg = <0x01c1a400 0x100>;
+                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_OHCI0>, <&ccu CLK_USB_OHCI0>;
+                       resets = <&ccu RST_BUS_OHCI0>;
+                       phys = <&usbphy 1>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
+               ehci1: usb@1c1b000 {
+                       compatible = "allwinner,sun8i-a83t-ehci",
+                                    "generic-ehci";
+                       reg = <0x01c1b000 0x100>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&ccu CLK_BUS_EHCI1>;
+                       resets = <&ccu RST_BUS_EHCI1>;
+                       phys = <&usbphy 2>;
+                       phy-names = "usb";
+                       status = "disabled";
+               };
+
                ccu: clock@1c20000 {
                        compatible = "allwinner,sun8i-a83t-ccu";
                        reg = <0x01c20000 0x400>;
                                bias-pull-up;
                        };
 
+                       mmc2_8bit_emmc_pins: mmc2-8bit-emmc-pins {
+                               pins = "PC5", "PC6", "PC8", "PC9",
+                                      "PC10", "PC11", "PC12", "PC13",
+                                      "PC14", "PC15", "PC16";
+                               function = "mmc2";
+                               drive-strength = <30>;
+                               bias-pull-up;
+                       };
+
                        spdif_tx_pin: spdif-tx-pin {
                                pins = "PE18";
                                function = "spdif";
                        interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
                };
 
+               r_intc: interrupt-controller@1f00c00 {
+                       compatible = "allwinner,sun8i-a83t-r-intc",
+                                    "allwinner,sun6i-a31-r-intc";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x01f00c00 0x400>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                r_ccu: clock@1f01400 {
                        compatible = "allwinner,sun8i-a83t-r-ccu";
                        reg = <0x01f01400 0x400>;
                        #gpio-cells = <3>;
                        interrupt-controller;
                        #interrupt-cells = <3>;
+
+                       r_rsb_pins: r-rsb-pins {
+                               pins = "PL0", "PL1";
+                               function = "s_rsb";
+                               drive-strength = <20>;
+                               bias-pull-up;
+                       };
+               };
+
+               r_rsb: rsb@1f03400 {
+                       compatible = "allwinner,sun8i-a83t-rsb",
+                                    "allwinner,sun8i-a23-rsb";
+                       reg = <0x01f03400 0x400>;
+                       interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&r_ccu CLK_APB0_RSB>;
+                       clock-frequency = <3000000>;
+                       resets = <&r_ccu RST_APB0_RSB>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&r_rsb_pins>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
                };
        };
 };
index e7fae65eb5d3dd88b478c4e4f81050c1790e5568..10da56e86ab800809e9f28b72bd9b94edf02a547 100644 (file)
        };
 };
 
+&ehci0 {
+       status = "okay";
+};
+
 &ehci1 {
        status = "okay";
 };
        status = "okay";
 };
 
+&ohci0 {
+       status = "okay";
+};
+
 &ohci1 {
        status = "okay";
 };
 
+&reg_usb0_vbus {
+       gpio = <&r_pio 0 2 GPIO_ACTIVE_HIGH>; /* PL2 */
+       status = "okay";
+};
+
 &spdif {
        pinctrl-names = "default";
        pinctrl-0 = <&spdif_tx_pins_a>;
        status = "okay";
 };
 
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
 &usbphy {
-       /* USB VBUS is on as long as VCC-IO is on */
+       /* USB VBUS is always on except for the OTG port */
        status = "okay";
+       usb0_id_det-gpios = <&pio 0 7 GPIO_ACTIVE_HIGH>; /* PA07 */
+       usb0_vbus-supply = <&reg_usb0_vbus>;
 };
diff --git a/arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts b/arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts
new file mode 100644 (file)
index 0000000..eaf0966
--- /dev/null
@@ -0,0 +1,321 @@
+/*
+ * Copyright (c) 2017 Free Electrons <maxime.ripard@free-electrons.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "sun8i-a33.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "BananaPi M2 Magic";
+       compatible = "sinovoip,bananapi-m2m", "allwinner,sun8i-a33";
+
+       aliases {
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               blue {
+                       label = "bpi-m2m:blue:usr";
+                       gpios = <&pio 2 7 GPIO_ACTIVE_LOW>;
+               };
+
+               green {
+                       label = "bpi-m2m:green:usr";
+                       gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>;
+               };
+
+               red {
+                       label = "bpi-m2m:red:power";
+                       gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>;
+                       default-state = "on";
+               };
+       };
+
+       reg_vcc5v0: vcc5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
+       };
+};
+
+&codec {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc3>;
+};
+
+&cpu0_opp_table {
+       opp@1104000000 {
+               opp-hz = /bits/ 64 <1104000000>;
+               opp-microvolt = <1320000>;
+               clock-latency-ns = <244144>; /* 8 32k periods */
+       };
+
+       opp@1200000000 {
+               opp-hz = /bits/ 64 <1200000000>;
+               opp-microvolt = <1320000>;
+               clock-latency-ns = <244144>; /* 8 32k periods */
+       };
+};
+
+&dai {
+       status = "okay";
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+/* This is the i2c bus exposed on the DSI connector for the touch panel */
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pins_a>;
+       status = "disabled";
+};
+
+/* This is the i2c bus exposed on the GPIO header */
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins_a>;
+       status = "disabled";
+};
+
+/* This is the i2c bus exposed on the CSI connector to control the sensor */
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2_pins_a>;
+       status = "disabled";
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins_a>;
+       vmmc-supply = <&reg_dcdc1>;
+       bus-width = <4>;
+       cd-gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>; /* PB4 */
+       cd-inverted;
+       status = "okay";
+};
+
+&mmc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc1_pins_a>;
+       vmmc-supply = <&reg_aldo1>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_8bit_pins>;
+       vmmc-supply = <&reg_dcdc1>;
+       bus-width = <8>;
+       non-removable;
+       cap-mmc-hw-reset;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp22x: pmic@3a3 {
+               compatible = "x-powers,axp223";
+               reg = <0x3a3>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               eldoin-supply = <&reg_dcdc1>;
+               x-powers,drive-vbus-en;
+       };
+};
+
+#include "axp223.dtsi"
+
+&ac_power_supply {
+       status = "okay";
+};
+
+&reg_aldo1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-io";
+};
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <2500000>;
+       regulator-max-microvolt = <2500000>;
+       regulator-name = "vdd-dll";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "avcc";
+};
+
+&reg_dc1sw {
+       regulator-name = "vcc-lcd";
+};
+
+&reg_dc5ldo {
+       regulator-always-on;
+       regulator-min-microvolt = <900000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-3v0";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <900000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <900000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-dram";
+};
+
+/*
+ * Our WiFi chip needs both DLDO1 and DLDO2 to be powered at the same
+ * time, with the two being in sync. Since this is not really
+ * supported right now, just use the two as always on, and we will fix
+ * it later.
+ */
+&reg_dldo1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi0";
+};
+
+&reg_dldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi1";
+};
+
+&reg_drivevbus {
+       regulator-name = "usb0-vbus";
+       status = "okay";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
+
+&sound {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_b>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins_a>, <&uart1_pins_cts_rts_a>;
+       status = "okay";
+};
+
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb_power_supply {
+       status = "okay";
+};
+
+&usbphy {
+       usb0_id_det-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */
+       usb0_vbus_power-supply = <&usb_power_supply>;
+       usb0_vbus-supply = <&reg_drivevbus>;
+       usb1_vbus-supply = <&reg_vcc5v0>;
+       status = "okay";
+};
index 1444fbd543e724e367b0091669a7642724023ed1..5af4dd3219520d265f4046d84b9c8cb64c73a000 100644 (file)
                non-removable;
        };
 
+       usb@7d000000 {
+               compatible = "nvidia,tegra114-udc";
+               status = "okay";
+               dr_mode = "peripheral";
+       };
+
+       usb-phy@7d000000 {
+               status = "okay";
+       };
+
        usb@7d008000 {
                status = "okay";
        };
index 7bacb2954f586357bb689dbbd4c51895a4f5653d..61873d642a45b207ef33c885b76469f9d9ed084b 100644 (file)
 
                                lanes {
                                        usb2-0 {
-                                               nvidia,function = "xusb";
+                                               nvidia,function = "snps";
                                                status = "okay";
                                        };
 
                };
        };
 
+       usb@7d000000 {
+               compatible = "nvidia,tegra124-udc";
+               status = "okay";
+               dr_mode = "peripheral";
+       };
+
+       usb-phy@7d000000 {
+               status = "okay";
+       };
+
        /* mini-PCIe USB */
        usb@7d004000 {
                status = "okay";
index 1b10b14a6abdff8af2442412c87738c0eca85d27..8baf00b89efb98d1693505aa3a8251f1e0a10ac8 100644 (file)
@@ -87,6 +87,7 @@
                clocks = <&tegra_car TEGRA124_CLK_HOST1X>;
                resets = <&tegra_car 28>;
                reset-names = "host1x";
+               iommus = <&mc TEGRA_SWGROUP_HC>;
 
                #address-cells = <2>;
                #size-cells = <2>;
index b4bfa5586c233a48b3aeba14b53c3187e245b753..bfa9421fcf94a0ea433c4f2ec2da08665a5193f1 100644 (file)
        };
 
        usb@c5000000 {
+               compatible = "nvidia,tegra20-udc";
                status = "okay";
+               dr_mode = "peripheral";
        };
 
        usb-phy@c5000000 {
index 4f41b18d95476b7e2db95b3cd9148bf0d8e6626a..3e104ddeb220528c1ec984c428d4f64688e84b00 100644 (file)
                non-removable;
        };
 
+       usb@7d000000 {
+               compatible = "nvidia,tegra30-udc";
+               status = "okay";
+               dr_mode = "peripheral";
+       };
+
+       usb-phy@7d000000 {
+               status = "okay";
+       };
+
        usb@7d004000 {
                status = "okay";
        };
index 02de56b55823e78fd82fa6d4ad39d103a8e28fa1..399baaa0a2abe1d3e17bac5d8543f29d06fc6b42 100644 (file)
 
        charger {
                compatible = "ti,tps65217-charger";
+               interrupts = <0>, <1>;
+               interrupt-names = "USB", "AC";
                status = "disabled";
        };
 
        pwrbutton {
                compatible = "ti,tps65217-pwrbutton";
+               interrupts = <2>;
                status = "disabled";
        };
 
index 4817ebb28eb2ef81ab2ae92888e003fac77557db..b3aaab354f3e0e8ff842db3549f865e7c1c60e10 100644 (file)
@@ -8,9 +8,9 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-ld4.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
+#include "uniphier-ld4.dtsi"
+#include "uniphier-ref-daughter.dtsi"
+#include "uniphier-support-card.dtsi"
 
 / {
        model = "UniPhier LD4 Reference Board";
@@ -64,3 +64,7 @@
 &usb1 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+};
index fb2fd9605b9de640c8caed33a0ecfeb7f7f57814..79183db5b386895781b21635407bce3fa7efb8ac 100644 (file)
                        interrupt-controller;
                };
 
+               aidet: aidet@61830000 {
+                       compatible = "socionext,uniphier-ld4-aidet";
+                       reg = <0x61830000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                sysctrl@61840000 {
                        compatible = "socionext,uniphier-ld4-sysctrl",
                                     "simple-mfd", "syscon";
                                #reset-cells = <1>;
                        };
                };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5a";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand2cs>;
+                       clocks = <&sys_clk 2>;
+               };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
index 96db4abc02c3eb1835e76db9a018680c2a4d0c7c..2188d114d79b06c9b9b1bfde5d8cee1bc82e02df 100644 (file)
@@ -8,9 +8,9 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-ld6b.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
+#include "uniphier-ld6b.dtsi"
+#include "uniphier-ref-daughter.dtsi"
+#include "uniphier-support-card.dtsi"
 
 / {
        model = "UniPhier LD6b Reference Board";
@@ -58,3 +58,7 @@
 &i2c0 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+};
index 8b9a79731bd33cf5f75ac03e626de878efed3542..9a7b25cc8233accb08c4720d66cfb792ebfb8bbb 100644 (file)
@@ -12,7 +12,7 @@
  * The D-chip (digital chip) is the same as the PXs2 die.
  * Reuse the PXs2 device tree with some properties overridden.
  */
-/include/ "uniphier-pxs2.dtsi"
+#include "uniphier-pxs2.dtsi"
 
 / {
        compatible = "socionext,uniphier-ld6b";
index 246f35ffb638119fc81c9e159afe870fb7e72a48..be82cddc407245b82cfde6b02cbcc970576e6e0d 100644 (file)
@@ -4,51 +4,35 @@
  * Copyright (C) 2015-2017 Socionext Inc.
  *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  */
 
 &pinctrl {
+       pinctrl_aout: aout_grp {
+               groups = "aout";
+               function = "aout";
+       };
+
        pinctrl_emmc: emmc_grp {
                groups = "emmc", "emmc_dat8";
                function = "emmc";
        };
 
+       pinctrl_ether_mii: ether_mii_grp {
+               groups = "ether_mii";
+               function = "ether_mii";
+       };
+
+       pinctrl_ether_rgmii: ether_rgmii_grp {
+               groups = "ether_rgmii";
+               function = "ether_rgmii";
+       };
+
+       pinctrl_ether_rmii: ether_rmii_grp {
+               groups = "ether_rmii";
+               function = "ether_rmii";
+       };
+
        pinctrl_i2c0: i2c0_grp {
                groups = "i2c0";
                function = "i2c0";
index 11690b57931cef20c2e34ef0ae328ada08c9d35b..089419cee273ea29341d9d0878afe5c0bf1bbffd 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-pro4.dtsi"
+#include "uniphier-pro4.dtsi"
 
 / {
        model = "UniPhier Pro4 Ace Board";
index 4cf539245f2e75c40c3cdeeb5ea24ea6a4182307..903df6348e77db51d2bcc86d2aa1d32a0cf3dece 100644 (file)
@@ -8,9 +8,9 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-pro4.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
+#include "uniphier-pro4.dtsi"
+#include "uniphier-ref-daughter.dtsi"
+#include "uniphier-support-card.dtsi"
 
 / {
        model = "UniPhier Pro4 Reference Board";
@@ -66,3 +66,7 @@
 &usb3 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+};
index 2763cebcd76ace8f0c8e4570c7c0d5f15b73b65a..adef212b45b2b01c21cf4098fb9762924c72d198 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-pro4.dtsi"
+#include "uniphier-pro4.dtsi"
 
 / {
        model = "UniPhier Pro4 Sanji Board";
index 37400becf4baaafa1e39bf4767de74daa540f5d2..b3dbbd9b6e3955f3330cb3cb4bb5d71c617f4f9a 100644 (file)
                        };
                };
 
+               aidet: aidet@5fc20000 {
+                       compatible = "socionext,uniphier-pro4-aidet";
+                       reg = <0x5fc20000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                                #reset-cells = <1>;
                        };
                };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5a";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand>;
+                       clocks = <&sys_clk 2>;
+               };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
index 9577769a0add6cfe9fd39e68fb1110a90602e31f..b026bcd42a069351b1786959be0af090eaef21d3 100644 (file)
@@ -4,43 +4,7 @@
  * Copyright (C) 2015-2016 Socionext Inc.
  *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
  *
- * This file is dual-licensed: you can use it either under the terms
- * of the GPL or the X11 license, at your option. Note that this dual
- * licensing only applies to this file, and not this project as a
- * whole.
- *
- *  a) This file is free software; you can redistribute it and/or
- *     modify it under the terms of the GNU General Public License as
- *     published by the Free Software Foundation; either version 2 of the
- *     License, or (at your option) any later version.
- *
- *     This file is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- * Or, alternatively,
- *
- *  b) Permission is hereby granted, free of charge, to any person
- *     obtaining a copy of this software and associated documentation
- *     files (the "Software"), to deal in the Software without
- *     restriction, including without limitation the rights to use,
- *     copy, modify, merge, publish, distribute, sublicense, and/or
- *     sell copies of the Software, and to permit persons to whom the
- *     Software is furnished to do so, subject to the following
- *     conditions:
- *
- *     The above copyright notice and this permission notice shall be
- *     included in all copies or substantial portions of the Software.
- *
- *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- *     OTHER DEALINGS IN THE SOFTWARE.
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  */
 
 / {
                sdctrl@59810000 {
                        compatible = "socionext,uniphier-pro5-sdctrl",
                                     "simple-mfd", "syscon";
-                       reg = <0x59810000 0x800>;
+                       reg = <0x59810000 0x400>;
 
                        sd_clk: clock {
                                compatible = "socionext,uniphier-pro5-sd-clock";
                        };
                };
 
+               aidet: aidet@5fc20000 {
+                       compatible = "socionext,uniphier-pro5-aidet";
+                       reg = <0x5fc20000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                                #reset-cells = <1>;
                        };
                };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5b";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand2cs>;
+                       clocks = <&sys_clk 2>;
+               };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
index 81560f75bfa79511c3957405698db2ebc9d6bc35..7dfae2667f5066baa2b5e4424157a85411399166 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-pxs2.dtsi"
+#include "uniphier-pxs2.dtsi"
 
 / {
        model = "UniPhier PXs2 Gentil Board";
index dc2d0579c666126ce61a14fcf6b602d80bd19256..0cf615463a82fcbc20941410bb99cfa55b614caf 100644 (file)
@@ -8,7 +8,7 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-pxs2.dtsi"
+#include "uniphier-pxs2.dtsi"
 
 / {
        model = "UniPhier PXs2 Vodka Board";
index bace751d40239e9a477d5af51f11161664c7df06..90b020c950837d5d0c9d2a43d74d4a2c208b7463 100644 (file)
                sdctrl@59810000 {
                        compatible = "socionext,uniphier-pxs2-sdctrl",
                                     "simple-mfd", "syscon";
-                       reg = <0x59810000 0x800>;
+                       reg = <0x59810000 0x400>;
 
                        sd_clk: clock {
                                compatible = "socionext,uniphier-pxs2-sd-clock";
                        };
                };
 
+               aidet: aidet@5fc20000 {
+                       compatible = "socionext,uniphier-pxs2-aidet";
+                       reg = <0x5fc20000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                timer@60000200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x60000200 0x20>;
                                #reset-cells = <1>;
                        };
                };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5b";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand2cs>;
+                       clocks = <&sys_clk 2>;
+               };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
diff --git a/arch/arm/boot/dts/uniphier-sld3-ref.dts b/arch/arm/boot/dts/uniphier-sld3-ref.dts
deleted file mode 100644 (file)
index 70cda39..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Device Tree Source for UniPhier sLD3 Reference Board
- *
- * Copyright (C) 2015-2016 Socionext Inc.
- *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- */
-
-/dts-v1/;
-/include/ "uniphier-sld3.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
-
-/ {
-       model = "UniPhier sLD3 Reference Board";
-       compatible = "socionext,uniphier-sld3-ref", "socionext,uniphier-sld3";
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-               serial2 = &serial2;
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               i2c2 = &i2c2;
-               i2c3 = &i2c3;
-               i2c4 = &i2c4;
-       };
-
-       memory@8000000 {
-               device_type = "memory";
-               reg = <0x80000000 0x20000000
-                      0xc0000000 0x20000000>;
-       };
-};
-
-&ethsc {
-       interrupts = <0 49 4>;
-};
-
-&serial0 {
-       status = "okay";
-};
-
-&serial1 {
-       status = "okay";
-};
-
-&serial2 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&usb0 {
-       status = "okay";
-};
-
-&usb1 {
-       status = "okay";
-};
-
-&usb2 {
-       status = "okay";
-};
-
-&usb3 {
-       status = "okay";
-};
diff --git a/arch/arm/boot/dts/uniphier-sld3.dtsi b/arch/arm/boot/dts/uniphier-sld3.dtsi
deleted file mode 100644 (file)
index 4082879..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Device Tree Source for UniPhier sLD3 SoC
- *
- * Copyright (C) 2015-2016 Socionext Inc.
- *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
- *
- * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
- */
-
-/ {
-       compatible = "socionext,uniphier-sld3";
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <0>;
-                       enable-method = "psci";
-                       next-level-cache = <&l2>;
-               };
-
-               cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a9";
-                       reg = <1>;
-                       enable-method = "psci";
-                       next-level-cache = <&l2>;
-               };
-       };
-
-       psci {
-               compatible = "arm,psci-0.2";
-               method = "smc";
-       };
-
-       clocks {
-               refclk: ref {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <24576000>;
-               };
-
-               arm_timer_clk: arm_timer_clk {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-               };
-       };
-
-       soc {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-               interrupt-parent = <&intc>;
-
-               timer@20000200 {
-                       compatible = "arm,cortex-a9-global-timer";
-                       reg = <0x20000200 0x20>;
-                       interrupts = <1 11 0x304>;
-                       clocks = <&arm_timer_clk>;
-               };
-
-               timer@20000600 {
-                       compatible = "arm,cortex-a9-twd-timer";
-                       reg = <0x20000600 0x20>;
-                       interrupts = <1 13 0x304>;
-                       clocks = <&arm_timer_clk>;
-               };
-
-               intc: interrupt-controller@20001000 {
-                       compatible = "arm,cortex-a9-gic";
-                       #interrupt-cells = <3>;
-                       interrupt-controller;
-                       reg = <0x20001000 0x1000>,
-                             <0x20000100 0x100>;
-               };
-
-               l2: l2-cache@500c0000 {
-                       compatible = "socionext,uniphier-system-cache";
-                       reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
-                             <0x506c0000 0x400>;
-                       interrupts = <0 174 4>, <0 175 4>;
-                       cache-unified;
-                       cache-size = <(512 * 1024)>;
-                       cache-sets = <256>;
-                       cache-line-size = <128>;
-                       cache-level = <2>;
-               };
-
-               serial0: serial@54006800 {
-                       compatible = "socionext,uniphier-uart";
-                       status = "disabled";
-                       reg = <0x54006800 0x40>;
-                       interrupts = <0 33 4>;
-                       clocks = <&sys_clk 0>;
-               };
-
-               serial1: serial@54006900 {
-                       compatible = "socionext,uniphier-uart";
-                       status = "disabled";
-                       reg = <0x54006900 0x40>;
-                       interrupts = <0 35 4>;
-                       clocks = <&sys_clk 0>;
-               };
-
-               serial2: serial@54006a00 {
-                       compatible = "socionext,uniphier-uart";
-                       status = "disabled";
-                       reg = <0x54006a00 0x40>;
-                       interrupts = <0 37 4>;
-                       clocks = <&sys_clk 0>;
-               };
-
-               i2c0: i2c@58400000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58400000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 41 1>;
-                       clocks = <&sys_clk 1>;
-                       clock-frequency = <100000>;
-               };
-
-               i2c1: i2c@58480000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58480000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 42 1>;
-                       clocks = <&sys_clk 1>;
-                       clock-frequency = <100000>;
-               };
-
-               i2c2: i2c@58500000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58500000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 43 1>;
-                       clocks = <&sys_clk 1>;
-                       clock-frequency = <100000>;
-               };
-
-               i2c3: i2c@58580000 {
-                       compatible = "socionext,uniphier-i2c";
-                       status = "disabled";
-                       reg = <0x58580000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 44 1>;
-                       clocks = <&sys_clk 1>;
-                       clock-frequency = <100000>;
-               };
-
-               /* chip-internal connection for DMD */
-               i2c4: i2c@58600000 {
-                       compatible = "socionext,uniphier-i2c";
-                       reg = <0x58600000 0x40>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <0 45 1>;
-                       clocks = <&sys_clk 1>;
-                       clock-frequency = <400000>;
-               };
-
-               system_bus: system-bus@58c00000 {
-                       compatible = "socionext,uniphier-system-bus";
-                       status = "disabled";
-                       reg = <0x58c00000 0x400>;
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-               };
-
-               smpctrl@59801000 {
-                       compatible = "socionext,uniphier-smpctrl";
-                       reg = <0x59801000 0x400>;
-               };
-
-               mioctrl@59810000 {
-                       compatible = "socionext,uniphier-sld3-mioctrl",
-                                    "simple-mfd", "syscon";
-                       reg = <0x59810000 0x800>;
-
-                       mio_clk: clock {
-                               compatible = "socionext,uniphier-sld3-mio-clock";
-                               #clock-cells = <1>;
-                       };
-
-                       mio_rst: reset {
-                               compatible = "socionext,uniphier-sld3-mio-reset";
-                               #reset-cells = <1>;
-                       };
-               };
-
-               usb0: usb@5a800100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a800100 0x100>;
-                       interrupts = <0 80 4>;
-                       clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
-                       resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
-                                <&mio_rst 12>;
-               };
-
-               usb1: usb@5a810100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a810100 0x100>;
-                       interrupts = <0 81 4>;
-                       clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
-                       resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
-                                <&mio_rst 13>;
-               };
-
-               usb2: usb@5a820100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a820100 0x100>;
-                       interrupts = <0 82 4>;
-                       clocks = <&mio_clk 7>, <&mio_clk 10>, <&mio_clk 14>;
-                       resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 10>,
-                                <&mio_rst 14>;
-               };
-
-               usb3: usb@5a830100 {
-                       compatible = "socionext,uniphier-ehci", "generic-ehci";
-                       status = "disabled";
-                       reg = <0x5a830100 0x100>;
-                       interrupts = <0 83 4>;
-                       clocks = <&mio_clk 7>, <&mio_clk 11>, <&mio_clk 15>;
-                       resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 11>,
-                                <&mio_rst 15>;
-               };
-
-               sysctrl@f1840000 {
-                       compatible = "socionext,uniphier-sld3-sysctrl",
-                                    "simple-mfd", "syscon";
-                       reg = <0xf1840000 0x10000>;
-
-                       sys_clk: clock {
-                               compatible = "socionext,uniphier-sld3-clock";
-                               #clock-cells = <1>;
-                       };
-
-                       sys_rst: reset {
-                               compatible = "socionext,uniphier-sld3-reset";
-                               #reset-cells = <1>;
-                       };
-               };
-       };
-};
index 4536d5b7129796f188dd95c0f68a28aca3cb2b5f..5accd3cc76e4aaee7471f0ce7542bfc7eb6d1ac9 100644 (file)
@@ -8,9 +8,9 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-sld8.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
+#include "uniphier-sld8.dtsi"
+#include "uniphier-ref-daughter.dtsi"
+#include "uniphier-support-card.dtsi"
 
 / {
        model = "UniPhier sLD8 Reference Board";
@@ -68,3 +68,7 @@
 &usb2 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+};
index 9fb9167f2db43d9e8a99adc679003847d38646e5..b0839033297169272ed3688cb352385920a41ea1 100644 (file)
                        interrupt-controller;
                };
 
+               aidet: aidet@61830000 {
+                       compatible = "socionext,uniphier-sld8-aidet";
+                       reg = <0x61830000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                sysctrl@61840000 {
                        compatible = "socionext,uniphier-sld8-sysctrl",
                                     "simple-mfd", "syscon";
                                #reset-cells = <1>;
                        };
                };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5a";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand2cs>;
+                       clocks = <&sys_clk 2>;
+               };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
index 06e2331f666d45fb2a2432ac1ef5401c3c50e37d..9abe26028c8b835b987892445157d148f0b24c57 100644 (file)
@@ -39,7 +39,7 @@
                        clock-names = "apb_pclk";
                };
 
-               pci-controller@10001000 {
+               pci@10001000 {
                        compatible = "arm,versatile-pci";
                        device_type = "pci";
                        reg = <0x10001000 0x1000
index 081f980cfbe628426e1d2c6b5efb8a272fe766e8..b0183c3a1d7c4627b008278e6290fbe908d0c6df 100644 (file)
@@ -18,7 +18,6 @@
 };
 
 &mmc0 {
-       num-slots = <1>;
        supports-highspeed;
        non-removable;
        disable-wp;
@@ -31,7 +30,6 @@
 };
 
 &mmc1 {
-       num-slots = <1>;
        supports-highspeed;
        non-removable;
        disable-wp;
index f3ac9bfe580ea27a1e82a3d360c05f89490c3161..0f79fe1ccd9d99e5fae27d275e94ae3c214ef77a 100644 (file)
                };
        };
 
+       fpga_full: fpga-full {
+               compatible = "fpga-region";
+               fpga-mgr = <&devcfg>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+       };
+
        pmu@f8891000 {
                compatible = "arm,cortex-a9-pmu";
                interrupts = <0 5 4>, <0 6 4>;
index 64a6390fc5017bdd111a88947e736fd1364b85ef..0144acfa97936e1c829c539d6c148df3d423ce3d 100644 (file)
@@ -34,7 +34,7 @@
        };
 
        chosen {
-               bootargs = "earlycon root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait";
+               bootargs = "root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait";
                stdout-path = "serial0:115200n8";
        };
 };
@@ -54,6 +54,7 @@
                compatible = "ethernet-phy-id0141.0e90",
                             "ethernet-phy-ieee802.3-c22";
                reg = <0>;
+               device_type = "ethernet-phy";
                marvell,reg-init = <0x3 0x10 0xff00 0x1e>,
                                   <0x3 0x11 0xfff0 0xa>;
        };
index 0cdad2cc8b78678c63b1ca06a5dec22f76527ae0..34e8277fce0d36a875cccb1278a9c016236b53d0 100644 (file)
@@ -12,7 +12,7 @@
  * GNU General Public License for more details.
  */
 /dts-v1/;
-/include/ "zynq-7000.dtsi"
+#include "zynq-7000.dtsi"
 
 / {
        model = "Zynq ZC702 Development Board";
@@ -30,7 +30,7 @@
        };
 
        chosen {
-               bootargs = "earlycon";
+               bootargs = "";
                stdout-path = "serial0:115200n8";
        };
 
@@ -97,6 +97,7 @@
 
        ethernet_phy: ethernet-phy@7 {
                reg = <7>;
+               device_type = "ethernet-phy";
        };
 };
 
                        };
                };
 
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       adv7511: hdmi-tx@39 {
+                               compatible = "adi,adv7511";
+                               reg = <0x39>;
+                               adi,input-depth = <8>;
+                               adi,input-colorspace = "yuv422";
+                               adi,input-clock = "1x";
+                               adi,input-style = <3>;
+                               adi,input-justification = "right";
+                       };
+               };
+
                i2c@2 {
                        #address-cells = <1>;
                        #size-cells = <0>;
index ad4bb06dba251d15bd282b9d7ee7a04185c7d201..7ebc8c5ae39dce63ce99add3fea8e4eea121d924 100644 (file)
@@ -12,7 +12,7 @@
  * GNU General Public License for more details.
  */
 /dts-v1/;
-/include/ "zynq-7000.dtsi"
+#include "zynq-7000.dtsi"
 
 / {
        model = "Zynq ZC706 Development Board";
@@ -30,7 +30,7 @@
        };
 
        chosen {
-               bootargs = "earlycon";
+               bootargs = "";
                stdout-path = "serial0:115200n8";
        };
 
@@ -53,6 +53,7 @@
 
        ethernet_phy: ethernet-phy@7 {
                reg = <7>;
+               device_type = "ethernet-phy";
        };
 };
 
                        };
                };
 
+               i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       adv7511: hdmi-tx@39 {
+                               compatible = "adi,adv7511";
+                               reg = <0x39>;
+                               adi,input-depth = <8>;
+                               adi,input-colorspace = "yuv422";
+                               adi,input-clock = "1x";
+                               adi,input-style = <3>;
+                               adi,input-justification = "evenly";
+                       };
+               };
+
                i2c@2 {
                        #address-cells = <1>;
                        #size-cells = <0>;
index 325379f7983cd386af42aeafb758a1c22895d622..5e44dc12fd60a5d00a622d079e6776d100de05dd 100644 (file)
@@ -12,7 +12,7 @@
  * GNU General Public License for more details.
  */
 /dts-v1/;
-/include/ "zynq-7000.dtsi"
+#include "zynq-7000.dtsi"
 
 / {
        model = "Zynq Zed Development Board";
@@ -29,7 +29,7 @@
        };
 
        chosen {
-               bootargs = "earlycon";
+               bootargs = "";
                stdout-path = "serial0:115200n8";
        };
 
@@ -50,6 +50,7 @@
 
        ethernet_phy: ethernet-phy@0 {
                reg = <0>;
+               device_type = "ethernet-phy";
        };
 };
 
index 590ec24b8749649d1d4e6660c887e2d3448161af..e40cafc5ee5b638c7371709d51241bc5d8a1c5fe 100644 (file)
@@ -12,7 +12,7 @@
  * GNU General Public License for more details.
  */
 /dts-v1/;
-/include/ "zynq-7000.dtsi"
+#include "zynq-7000.dtsi"
 
 / {
        model = "Zynq ZYBO Development Board";
@@ -29,7 +29,7 @@
        };
 
        chosen {
-               bootargs = "earlycon";
+               bootargs = "";
                stdout-path = "serial0:115200n8";
        };
 
@@ -51,6 +51,7 @@
 
        ethernet_phy: ethernet-phy@0 {
                reg = <0>;
+               device_type = "ethernet-phy";
        };
 };
 
index b65a7e876a268a668099aecb4001ce41e62d0b88..6b54ee8c1262dd1587b9081ef8894166b0c14211 100644 (file)
@@ -184,6 +184,12 @@ config ARCH_R8A7796
        help
          This enables support for the Renesas R-Car M3-W SoC.
 
+config ARCH_R8A77995
+       bool "Renesas R-Car D3 SoC Platform"
+       depends on ARCH_RENESAS
+       help
+         This enables support for the Renesas R-Car D3 SoC.
+
 config ARCH_STRATIX10
        bool "Altera's Stratix 10 SoCFPGA Family"
        help
index 108f12ce6d1d0706900d46533b9dd3cb33bb368f..19c3fbd75eda663b9a3ed61993ed353bf465cc0f 100644 (file)
@@ -1,4 +1,6 @@
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-bananapi-m64.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-nanopi-a64.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-olinuxino.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-orangepi-win.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pine64-plus.dtb sun50i-a64-pine64.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
diff --git a/arch/arm64/boot/dts/allwinner/axp803.dtsi b/arch/arm64/boot/dts/allwinner/axp803.dtsi
new file mode 100644 (file)
index 0000000..ff8af52
--- /dev/null
@@ -0,0 +1,150 @@
+/*
+ * Copyright 2017 Icenowy Zheng <icenowy@aosc.xyz>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * AXP803 Integrated Power Management Chip
+ * http://files.pine64.org/doc/datasheet/pine64/AXP803_Datasheet_V1.0.pdf
+ */
+
+&axp803 {
+       interrupt-controller;
+       #interrupt-cells = <1>;
+
+       regulators {
+               /* Default work frequency for buck regulators */
+               x-powers,dcdc-freq = <3000>;
+
+               reg_aldo1: aldo1 {
+                       regulator-name = "aldo1";
+               };
+
+               reg_aldo2: aldo2 {
+                       regulator-name = "aldo2";
+               };
+
+               reg_aldo3: aldo3 {
+                       regulator-name = "aldo3";
+               };
+
+               reg_dc1sw: dc1sw {
+                       regulator-name = "dc1sw";
+               };
+
+               reg_dcdc1: dcdc1 {
+                       regulator-name = "dcdc1";
+               };
+
+               reg_dcdc2: dcdc2 {
+                       regulator-name = "dcdc2";
+               };
+
+               reg_dcdc3: dcdc3 {
+                       regulator-name = "dcdc3";
+               };
+
+               reg_dcdc4: dcdc4 {
+                       regulator-name = "dcdc4";
+               };
+
+               reg_dcdc5: dcdc5 {
+                       regulator-name = "dcdc5";
+               };
+
+               reg_dcdc6: dcdc6 {
+                       regulator-name = "dcdc6";
+               };
+
+               reg_dldo1: dldo1 {
+                       regulator-name = "dldo1";
+               };
+
+               reg_dldo2: dldo2 {
+                       regulator-name = "dldo2";
+               };
+
+               reg_dldo3: dldo3 {
+                       regulator-name = "dldo3";
+               };
+
+               reg_dldo4: dldo4 {
+                       regulator-name = "dldo4";
+               };
+
+               reg_eldo1: eldo1 {
+                       regulator-name = "eldo1";
+               };
+
+               reg_eldo2: eldo2 {
+                       regulator-name = "eldo2";
+               };
+
+               reg_eldo3: eldo3 {
+                       regulator-name = "eldo3";
+               };
+
+               reg_fldo1: fldo1 {
+                       regulator-name = "fldo1";
+               };
+
+               reg_fldo2: fldo2 {
+                       regulator-name = "fldo2";
+               };
+
+               reg_ldo_io0: ldo-io0 {
+                       regulator-name = "ldo-io0";
+                       status = "disabled";
+               };
+
+               reg_ldo_io1: ldo-io1 {
+                       regulator-name = "ldo-io1";
+                       status = "disabled";
+               };
+
+               reg_rtc_ldo: rtc-ldo {
+                       /* RTC_LDO is a fixed, always-on regulator */
+                       regulator-always-on;
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-name = "rtc-ldo";
+               };
+       };
+};
index 6872135d7f849b1df7e0529b9b95d2b0d9c86478..d347f52e27f6070ebf79a5f6fe890feecee2a94b 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
-       reg_vcc3v3: vcc3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "vcc3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
+       wifi_pwrseq: wifi_pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
 };
 
+&ehci1 {
+       status = "okay";
+};
+
 &i2c1 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c1_pins>;
@@ -80,7 +82,7 @@
 &mmc0 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc0_pins>;
-       vmmc-supply = <&reg_vcc3v3>;
+       vmmc-supply = <&reg_dcdc1>;
        cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
        cd-inverted;
        disable-wp;
 &mmc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc1_pins>;
-       vmmc-supply = <&reg_vcc3v3>;
+       vmmc-supply = <&reg_dldo2>;
+       vqmmc-supply = <&reg_dldo4>;
+       mmc-pwrseq = <&wifi_pwrseq>;
        bus-width = <4>;
        non-removable;
        status = "okay";
+
+       brcmf: wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+               interrupt-parent = <&r_pio>;
+               interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
+               interrupt-names = "host-wake";
+       };
 };
 
 &mmc2 {
        pinctrl-names = "default";
        pinctrl-0 = <&mmc2_pins>;
-       vmmc-supply = <&reg_vcc3v3>;
+       vmmc-supply = <&reg_dcdc1>;
        bus-width = <8>;
        non-removable;
        cap-mmc-hw-reset;
        status = "okay";
 };
 
+&ohci1 {
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp803: pmic@3a3 {
+               compatible = "x-powers,axp803";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dc1sw {
+       regulator-name = "vcc-phy";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1040000>;
+       regulator-max-microvolt = <1300000>;
+       regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-hdmi-dsi";
+};
+
+&reg_dldo2 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi";
+};
+
+&reg_dldo4 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi-io";
+};
+
+&reg_eldo1 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "cpvdd";
+};
+
+&reg_fldo1 {
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-1v2-hsic";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins_a>;
        pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
        status = "okay";
 };
+
+&usbphy {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
new file mode 100644 (file)
index 0000000..2beef9e
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "sun50i-a64.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "FriendlyARM NanoPi A64";
+       compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+/* i2c1 connected with gpio headers like pine64, bananapi */
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pins>;
+       status = "disabled";
+};
+
+&i2c1_pins {
+       bias-pull-up;
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&reg_dcdc1>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
+       cd-inverted;
+       disable-wp;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&ohci1 {
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp803: pmic@3a3 {
+               compatible = "x-powers,axp803";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-3v";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1040000>;
+       regulator-max-microvolt = <1300000>;
+       regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-hdmi-dsi";
+};
+
+&reg_dldo4 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pg-wifi-io";
+};
+
+&reg_eldo1 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "cpvdd";
+};
+
+&reg_fldo1 {
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-1v2-hsic";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_a>;
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
new file mode 100644 (file)
index 0000000..338e786
--- /dev/null
@@ -0,0 +1,199 @@
+/*
+ * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "sun50i-a64.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Olimex A64-Olinuxino";
+       compatible = "olimex,a64-olinuxino", "allwinner,sun50i-a64";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+&mmc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc0_pins>;
+       vmmc-supply = <&reg_dcdc1>;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
+       cd-inverted;
+       disable-wp;
+       bus-width = <4>;
+       status = "okay";
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp803: pmic@3a3 {
+               compatible = "x-powers,axp803";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo1 {
+       regulator-always-on;
+       regulator-min-microvolt = <2800000>;
+       regulator-max-microvolt = <2800000>;
+       regulator-name = "vcc-pe";
+};
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1040000>;
+       regulator-max-microvolt = <1300000>;
+       regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1500000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vcc-ddr3";
+};
+
+&reg_dcdc6 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-hdmi";
+};
+
+&reg_dldo2 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-mipi";
+};
+
+&reg_dldo3 {
+       regulator-min-microvolt = <2800000>;
+       regulator-max-microvolt = <2800000>;
+       regulator-name = "vcc-avdd-csi";
+};
+
+&reg_dldo4 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi-io";
+};
+
+&reg_eldo1 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "cpvdd";
+};
+
+&reg_eldo2 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "vcc-dvdd-csi";
+};
+
+&reg_fldo1 {
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-1v2-hsic";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins_a>;
+       status = "okay";
+};
index 7c533b6d4ba9abb3c48ae7ce04e1e5fac0e647c3..caf8b6fbe5e350de2095d16489f19ce734ca4bc3 100644 (file)
        status = "okay";
 };
 
+&r_rsb {
+       status = "okay";
+
+       axp803: pmic@3a3 {
+               compatible = "x-powers,axp803";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dc1sw {
+       regulator-name = "vcc-phy";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1040000>;
+       regulator-max-microvolt = <1300000>;
+       regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+/*
+ * The DRAM chips used by Pine64 boards are DDR3L-compatible, so they can
+ * work at 1.35V with less power consumption.
+ * As AXP803 DCDC5 cannot reach 1.35V accurately, use 1.36V instead.
+ */
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1360000>;
+       regulator-max-microvolt = <1360000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_dldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-hdmi";
+};
+
+&reg_dldo2 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-mipi";
+};
+
+&reg_dldo4 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi";
+};
+
+&reg_eldo1 {
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "cpvdd";
+};
+
+&reg_fldo1 {
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-1v2-hsic";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
+
 /* On Exp and Euler connectors */
 &uart0 {
        pinctrl-names = "default";
index d891a1a27f6c56f7a1d1a9a09fba0d27012fa1a3..17ccc12b58df7057ebf695b8c3e4696c7dbbd868 100644 (file)
        status = "okay";
 };
 
+&reg_dc1sw {
+       regulator-name = "vcc-phy";
+};
+
+&reg_dldo1 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-hdmi";
+};
+
+&reg_dldo2 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-mipi";
+};
+
+&reg_dldo4 {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-wifi";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins_a>;
index 475518b031dd811269c2e1c1616056f877197af8..a5da18a6f2866d34537c55dcc5d3288daf6c8331 100644 (file)
        bus-width = <4>;
        status = "okay";
 };
+
+&r_rsb {
+       status = "okay";
+
+       axp803: pmic@3a3 {
+               compatible = "x-powers,axp803";
+               reg = <0x3a3>;
+               interrupt-parent = <&r_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+#include "axp803.dtsi"
+
+&reg_aldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-pl";
+};
+
+&reg_aldo3 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "vcc-pll-avcc";
+};
+
+&reg_dcdc1 {
+       regulator-always-on;
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       regulator-name = "vcc-3v3";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1040000>;
+       regulator-max-microvolt = <1300000>;
+       regulator-name = "vdd-cpux";
+};
+
+/* DCDC3 is polyphased with DCDC2 */
+
+&reg_dcdc5 {
+       regulator-always-on;
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-dram";
+};
+
+&reg_dcdc6 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-sys";
+};
+
+&reg_eldo1 {
+       regulator-always-on;
+       regulator-min-microvolt = <1800000>;
+       regulator-max-microvolt = <1800000>;
+       regulator-name = "vdd-1v8-lpddr";
+};
+
+&reg_fldo1 {
+       regulator-min-microvolt = <1200000>;
+       regulator-max-microvolt = <1200000>;
+       regulator-name = "vcc-1v2-hsic";
+};
+
+/*
+ * The A64 chip cannot work without this regulator off, although
+ * it seems to be only driving the AR100 core.
+ * Maybe we don't still know well about CPUs domain.
+ */
+&reg_fldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1100000>;
+       regulator-max-microvolt = <1100000>;
+       regulator-name = "vdd-cpus";
+};
+
+&reg_rtc_ldo {
+       regulator-name = "vcc-rtc";
+};
index 68aadc9b96dc1ea2e7c26e658e0056d4f38ba4f9..8c8db1b057dfc687aa5bcabce4732cc3653bebbd 100644 (file)
                                     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               r_intc: interrupt-controller@1f00c00 {
+                       compatible = "allwinner,sun50i-a64-r-intc",
+                                    "allwinner,sun6i-a31-r-intc";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x01f00c00 0x400>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                r_ccu: clock@1f01400 {
                        compatible = "allwinner,sun50i-a64-r-ccu";
                        reg = <0x01f01400 0x100>;
index dc478d094c113a3b9ce1a7dd13d4352cbd1a4353..c89010e564888ee76f0f2764a10592fb59ab7672 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
                remote-endpoint = <&cvbs_connector_in>;
index 738ed689ff692b0f16b9add648f9f32dd514d010..f175db84628612044517ad32987aadb3f2cf2d45 100644 (file)
                        };
 
                        uart_A: serial@84c0 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
                                reg = <0x0 0x84c0 0x0 0x14>;
                                interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&xtal>;
                        };
 
                        uart_B: serial@84dc {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
                                reg = <0x0 0x84dc 0x0 0x14>;
                                interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&xtal>;
                        };
 
                        uart_C: serial@8700 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson-gx-uart", "amlogic,meson-uart";
                                reg = <0x0 0x8700 0x0 0x14>;
                                interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
                                clocks = <&xtal>;
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>;
 
-                       clkc_AO: clock-controller@040 {
-                               compatible = "amlogic,gx-aoclkc", "amlogic,gxbb-aoclkc";
-                               reg = <0x0 0x00040 0x0 0x4>;
-                               #clock-cells = <1>;
-                               #reset-cells = <1>;
+                       sysctrl_AO: sys-ctrl@0 {
+                               compatible = "amlogic,meson-gx-ao-sysctrl", "syscon", "simple-mfd";
+                               reg =  <0x0 0x0 0x0 0x100>;
+
+                               clkc_AO: clock-controller {
+                                       compatible = "amlogic,meson-gx-aoclkc";
+                                       #clock-cells = <1>;
+                                       #reset-cells = <1>;
+                               };
+                       };
+
+                       cec_AO: cec@100 {
+                               compatible = "amlogic,meson-gx-ao-cec";
+                               reg = <0x0 0x00100 0x0 0x14>;
+                               interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
+                       };
+
+                       sec_AO: ao-secure@140 {
+                               compatible = "amlogic,meson-gx-ao-secure", "syscon";
+                               reg = <0x0 0x140 0x0 0x140>;
+                               amlogic,has-chip-id;
                        };
 
                        uart_AO: serial@4c0 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
                                reg = <0x0 0x004c0 0x0 0x14>;
                                interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
-                               clocks = <&xtal>;
                                status = "disabled";
                        };
 
                        uart_AO_B: serial@4e0 {
-                               compatible = "amlogic,meson-uart";
+                               compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart", "amlogic,meson-uart";
                                reg = <0x0 0x004e0 0x0 0x14>;
                                interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
-                               clocks = <&xtal>;
                                status = "disabled";
                        };
 
                        mailbox: mailbox@404 {
                                compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
                                reg = <0 0x404 0 0x4c>;
-                               interrupts = <0 208 IRQ_TYPE_EDGE_RISING>,
-                                            <0 209 IRQ_TYPE_EDGE_RISING>,
-                                            <0 210 IRQ_TYPE_EDGE_RISING>;
+                               interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
+                                            <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
+                                            <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
                                #mbox-cells = <1>;
                        };
                };
                        compatible = "amlogic,meson-gx-dwmac", "amlogic,meson-gxbb-dwmac", "snps,dwmac";
                        reg = <0x0 0xc9410000 0x0 0x10000
                               0x0 0xc8834540 0x0 0x4>;
-                       interrupts = <0 8 1>;
+                       interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "macirq";
                        status = "disabled";
                };
index fa462831ccaf45b86dd6625961d8d1928537eaff..9697a7a794644bdfd5e7dbedfa6f71dcd8451e24 100644 (file)
        pinctrl-names = "default";
 };
 
+&pinctrl_aobus {
+       gpio-line-names = "UART TX", "UART RX", "Power Control", "Power Key In",
+                         "VCCK En", "CON1 Header Pin31",
+                         "I2S Header Pin6", "IR In", "I2S Header Pin7",
+                         "I2S Header Pin3", "I2S Header Pin4",
+                         "I2S Header Pin5", "HDMI CEC", "SYS LED";
+};
+
+&pinctrl_periphs {
+       gpio-line-names = /* Bank GPIOZ */
+                         "Eth MDIO", "Eth MDC", "Eth RGMII RX Clk",
+                         "Eth RX DV", "Eth RX D0", "Eth RX D1", "Eth RX D2",
+                         "Eth RX D3", "Eth RGMII TX Clk", "Eth TX En",
+                         "Eth TX D0", "Eth TX D1", "Eth TX D2", "Eth TX D3",
+                         "Eth PHY nRESET", "Eth PHY Intc",
+                         /* Bank GPIOH */
+                         "HDMI HPD", "HDMI DDC SDA", "HDMI DDC SCL",
+                         "CON1 Header Pin33",
+                         /* Bank BOOT */
+                         "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3", "eMMC D4",
+                         "eMMC D5", "eMMC D6", "eMMC D7", "eMMC Clk",
+                         "eMMC Reset", "eMMC CMD",
+                         "", "", "", "", "eMMC DS",
+                         "", "",
+                         /* Bank CARD */
+                         "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
+                         "SDCard D3", "SDCard D2", "SDCard Det",
+                         /* Bank GPIODV */
+                         "", "", "", "", "", "", "", "", "", "", "", "", "",
+                         "", "", "", "", "", "", "", "", "", "", "",
+                         "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
+                         "VDDEE Regulator", "VCCK Regulator",
+                         /* Bank GPIOY */
+                         "CON1 Header Pin7", "CON1 Header Pin11",
+                         "CON1 Header Pin13", "CON1 Header Pin15",
+                         "CON1 Header Pin18", "CON1 Header Pin19",
+                         "CON1 Header Pin22", "CON1 Header Pin21",
+                         "CON1 Header Pin24", "CON1 Header Pin23",
+                         "CON1 Header Pin26", "CON1 Header Pin29",
+                         "CON1 Header Pin32", "CON1 Header Pin8",
+                         "CON1 Header Pin10", "CON1 Header Pin16",
+                         "CON1 Header Pin12",
+                         /* Bank GPIOX */
+                         "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
+                         "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
+                         "WIFI Power Enable", "WIFI WAKE HOST",
+                         "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
+                         "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
+                         "Bluetooth UART TX", "Bluetooth UART RX",
+                         "Bluetooth UART CTS", "Bluetooth UART RTS",
+                         "", "", "", "WIFI 32K", "Bluetooth Enable",
+                         "Bluetooth WAKE HOST",
+                         /* Bank GPIOCLK */
+                         "", "CON1 Header Pin35", "", "",
+                         /* GPIO_TEST_N */
+                         "";
+};
+
 &pwm_ef {
        status = "okay";
        pinctrl-0 = <&pwm_e_pins>;
index a1078b3e1c760d2a1eeb7d8a70c906d25ca5a23e..9c59c3c6d1b6a5d2e3d8cd9d234caef971b352c3 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &ethmac {
        status = "okay";
        pinctrl-0 = <&eth_rmii_pins>;
index d904deb1018cefa602764167219d5ee3a82a385a..81ffc689a5bf42532f25706545b1f84cb5dcdbac 100644 (file)
@@ -84,6 +84,9 @@
                /* Based on P200 schematics, signal CARD_1.8V/3.3V_CTR */
                states = <1800000 0
                          3300000 1>;
+
+               regulator-settling-time-up-us = <10000>;
+               regulator-settling-time-down-us = <150000>;
        };
 
        vddio_boot: regulator-vddio_boot {
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
                remote-endpoint = <&cvbs_connector_in>;
index e76ac313fef9cfb1ea97d4dc5c131d559a12d883..f7144fd5e03f43aa29288178980f75ab49c08d6e 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
 
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
index 17d3efdf146968b9ea60a47ec10045e49be6a4d8..52f1687e7a099af5789ed97e3597b727a8ee4d82 100644 (file)
        };
 };
 
+&cec_AO {
+       clocks = <&clkc_AO CLKID_AO_CEC_32K>;
+       clock-names = "core";
+};
+
+&clkc_AO {
+       compatible = "amlogic,meson-gxbb-aoclkc", "amlogic,meson-gx-aoclkc";
+};
+
 &ethmac {
        clocks = <&clkc CLKID_ETH>,
                 <&clkc CLKID_FCLK_DIV2>,
        clocks = <&clkc CLKID_SPI>;
 };
 
+&uart_A {
+       clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO {
+       clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO_B {
+       clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+       clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
+       clock-names = "xtal", "core", "baud";
+};
+
+&uart_C {
+       clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
+       clock-names = "xtal", "core", "baud";
+};
+
 &vpu {
        compatible = "amlogic,meson-gxbb-vpu", "amlogic,meson-gx-vpu";
 };
index 3e0c023d6abde14afa98381e02c3f1dec0c271e4..6827f235d7cfe9a94fe5fe872e01dc1256077637 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 /* P230 has exclusive choice between internal or external PHY */
 &ethmac {
        pinctrl-0 = <&eth_pins>;
        };
 };
 
-
 &hdmi_tx {
        status = "okay";
        pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
index 94567eb178759c18162c276baa4ba481f903c064..edc512ad0bac3d5794d669dc0d21da6e266afda5 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &hdmi_tx {
        status = "okay";
        pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
        linux,rc-map-name = "rc-geekbox";
 };
 
+&pinctrl_aobus {
+       gpio-line-names = "UART TX",
+                         "UART RX",
+                         "Power Key In",
+                         "J9 Header Pin35",
+                         "J9 Header Pin16",
+                         "J9 Header Pin15",
+                         "J9 Header Pin33",
+                         "IR In",
+                         "HDMI CEC",
+                         "SYS LED";
+};
+
+&pinctrl_periphs {
+       gpio-line-names = /* Bank GPIOZ */
+                         "", "", "", "", "", "", "",
+                         "", "", "", "", "", "", "",
+                         "Power OFF",
+                         "VCCK Enable",
+                         /* Bank GPIOH */
+                         "HDMI HPD", "HDMI SDA", "HDMI SCL",
+                         "HDMI_5V_EN", "SPDIF",
+                         "J9 Header Pin37",
+                         "J9 Header Pin30",
+                         "J9 Header Pin29",
+                         "J9 Header Pin32",
+                         "J9 Header Pin31",
+                         /* Bank BOOT */
+                         "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
+                         "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
+                         "eMMC Clk", "eMMC Reset", "eMMC CMD",
+                         "", "BOOT_MODE", "", "", "eMMC Data Strobe",
+                         /* Bank CARD */
+                         "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
+                         "SDCard D3", "SDCard D2", "SDCard Det",
+                         /* Bank GPIODV */
+                         "", "", "", "", "", "", "", "", "", "", "", "",
+                         "", "", "", "", "", "", "", "", "", "", "", "",
+                         "I2C A SDA", "I2C A SCK", "I2C B SDA", "I2C B SCK",
+                         "VCCK Regulator", "VDDEE Regulator",
+                         /* Bank GPIOX */
+                         "WIFI SDIO D0", "WIFI SDIO D1", "WIFI SDIO D2",
+                         "WIFI SDIO D3", "WIFI SDIO CLK", "WIFI SDIO CMD",
+                         "WIFI Power Enable", "WIFI WAKE HOST",
+                         "Bluetooth PCM DOUT", "Bluetooth PCM DIN",
+                         "Bluetooth PCM SYNC", "Bluetooth PCM CLK",
+                         "Bluetooth UART TX", "Bluetooth UART RX",
+                         "Bluetooth UART CTS", "Bluetooth UART RTS",
+                         "WIFI 32K", "Bluetooth Enable",
+                         "Bluetooth WAKE HOST",
+                         /* Bank GPIOCLK */
+                         "", "J9 Header Pin39",
+                         /* GPIO_TEST_N */
+                         "";
+};
+
 &pwm_AO_ab {
        status = "okay";
        pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
index 266fbcf3e47f5640b565c09fae289003b7b9e679..69ca14ac10fa097633562cb96db4f088e543ebd9 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
                remote-endpoint = <&cvbs_connector_in>;
        };
 };
 
+&pinctrl_aobus {
+       gpio-line-names = "UART TX",
+                         "UART RX",
+                         "Blue LED",
+                         "SDCard Voltage Switch",
+                         "7J1 Header Pin5",
+                         "7J1 Header Pin3",
+                         "7J1 Header Pin12",
+                         "IR In",
+                         "9J3 Switch HDMI CEC/7J1 Header Pin11",
+                         "7J1 Header Pin13";
+};
+
+&pinctrl_periphs {
+       gpio-line-names = /* Bank GPIOZ */
+                         "", "", "", "", "", "", "",
+                         "", "", "", "", "", "", "",
+                         "Eth Link LED", "Eth Activity LED",
+                         /* Bank GPIOH */
+                         "HDMI HPD", "HDMI SDA", "HDMI SCL",
+                         "HDMI_5V_EN", "9J1 Header Pin2",
+                         "Analog Audio Mute",
+                         "2J3 Header Pin6",
+                         "2J3 Header Pin5",
+                         "2J3 Header Pin4",
+                         "2J3 Header Pin3",
+                         /* Bank BOOT */
+                         "eMMC D0", "eMMC D1", "eMMC D2", "eMMC D3",
+                         "eMMC D4", "eMMC D5", "eMMC D6", "eMMC D7",
+                         "eMMC Clk", "eMMC Reset", "eMMC CMD",
+                         "ALT BOOT MODE", "", "", "", "eMMC Data Strobe",
+                         /* Bank CARD */
+                         "SDCard D1", "SDCard D0", "SDCard CLK", "SDCard CMD",
+                         "SDCard D3", "SDCard D2", "SDCard Det",
+                         /* Bank GPIODV */
+                         "", "", "", "", "", "", "", "", "", "", "", "",
+                         "", "", "", "", "", "", "", "", "", "", "", "",
+                         "Green LED", "VCCK Enable",
+                         "7J1 Header Pin27", "7J1 Header Pin28",
+                         "VCCK Regulator", "VDDEE Regulator",
+                         /* Bank GPIOX */
+                         "7J1 Header Pin22", "7J1 Header Pin26",
+                         "7J1 Header Pin36", "7J1 Header Pin38",
+                         "7J1 Header Pin40", "7J1 Header Pin37",
+                         "7J1 Header Pin33", "7J1 Header Pin35",
+                         "7J1 Header Pin19", "7J1 Header Pin21",
+                         "7J1 Header Pin24", "7J1 Header Pin23",
+                         "7J1 Header Pin8", "7J1 Header Pin10",
+                         "7J1 Header Pin16", "7J1 Header Pin18",
+                         "7J1 Header Pin32", "7J1 Header Pin29",
+                         "7J1 Header Pin31",
+                         /* Bank GPIOCLK */
+                         "7J1 Header Pin7", "",
+                         /* GPIO_TEST_N */
+                         "7J1 Header Pin15";
+};
+
 /* SD card */
 &sd_emmc_b {
        status = "okay";
index 6633a5d8fdd39193be747582e8facc8a581a9486..4c2ac7650fcd3317a673efdd7308891a154272d8 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
                remote-endpoint = <&cvbs_connector_in>;
index 6ab17c1eeefdc198f7e4417baa780935b885c6c5..6e2bf858291c5f58b0268200c1a014554d24a59d 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
                remote-endpoint = <&cvbs_connector_in>;
index 8d4f3160a0eefa1220e48541eb8e117441ed6c42..d6876e64979e7a5c5d539dc3eba7006fe4d79315 100644 (file)
@@ -43,6 +43,7 @@
 
 #include "meson-gx.dtsi"
 #include <dt-bindings/clock/gxbb-clkc.h>
+#include <dt-bindings/clock/gxbb-aoclkc.h>
 #include <dt-bindings/gpio/meson-gxl-gpio.h>
 #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
 
        };
 };
 
+&cec_AO {
+       clocks = <&clkc_AO CLKID_AO_CEC_32K>;
+       clock-names = "core";
+};
+
+&clkc_AO {
+       compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
+};
+
 &hdmi_tx {
        compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
        resets = <&reset RESET_HDMITX_CAPB3>,
        clocks = <&clkc CLKID_SPI>;
 };
 
+&uart_A {
+       clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
+       clock-names = "xtal", "core", "baud";
+};
+
+&uart_AO {
+       clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_AO_B {
+       clocks = <&xtal>, <&clkc CLKID_CLK81>, <&xtal>;
+       clock-names = "xtal", "pclk", "baud";
+};
+
+&uart_B {
+       clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
+       clock-names = "xtal", "core", "baud";
+};
+
+&uart_C {
+       clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
+       clock-names = "xtal", "core", "baud";
+};
+
 &vpu {
        compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
 };
index 5f626d6830883466b80b9364547efcf066f6317b..9b10c5f4f8c0311af38380f7d5c4c2a0e709e747 100644 (file)
        };
 };
 
+&cec_AO {
+       status = "okay";
+       pinctrl-0 = <&ao_cec_pins>;
+       pinctrl-names = "default";
+       hdmi-phandle = <&hdmi_tx>;
+};
+
 &cvbs_vdac_port {
        cvbs_vdac_out: endpoint {
                remote-endpoint = <&cvbs_connector_in>;
index fe451cce93e783ce12b857117ab6c3eaa84a9108..19a798d2ae2fdd61a2c3e708dea2b1d59f71e061 100644 (file)
        };
 };
 
+&clkc_AO {
+       compatible = "amlogic,meson-gxm-aoclkc", "amlogic,meson-gx-aoclkc";
+};
+
 &saradc {
        compatible = "amlogic,meson-gxm-saradc", "amlogic,meson-saradc";
 };
index 72720e9132a1de4b85a53f55e5a85a95eb4c423a..c9ffffb96e431ec8d4ed875e40c33f901466b7d4 100644 (file)
                                  0x43000000 0xe0 0x00000000 0xe0 0x00000000 0x20 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x10 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x11 0x4
                                  0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0x0 0x0 0x16 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0x0 0x0 0x17 0x4
index 63be8e51eaa8624e4006e1fceda8387d61fd7ce4..c09a36fed91701be7407d6ec42584d88ad511144 100644 (file)
                                  0x43000000 0xf0 0x00000000 0xf0 0x00000000 0x10 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x4
                                  0x43000000 0xd8 0x00000000 0xd8 0x00000000 0x08 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x4
                                  0x43000000 0x94 0x00000000 0x94 0x00000000 0x04 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x4
                                  0x43000000 0xb0 0x00000000 0xb0 0x00000000 0x10 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x4
                                  0x43000000 0xc8 0x00000000 0xc8 0x00000000 0x08 0x00000000>; /* mem */
                        dma-ranges = <0x42000000 0x80 0x00000000 0x80 0x00000000 0x00 0x80000000
                                      0x42000000 0x00 0x00000000 0x00 0x00000000 0x80 0x00000000>;
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x4
                                         0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x4
index 7cfa8e414e7f5111d9c676ee3bc9c6c2fbe8941d..8ecdd4331980e448f6a5c23ad2785cbfd19a9a10 100644 (file)
                                clock-names = "uartclk", "apb_pclk";
                        };
 
-                       virtio_block@0130000 {
+                       virtio-block@0130000 {
                                compatible = "virtio,mmio";
                                reg = <0x130000 0x200>;
                                interrupts = <42>;
index e8b7413ec890b8fc88f1fb62d691d7ffcdae8570..fbafe62d6b22deaf3bc22b361c80d38a876f8d34 100644 (file)
                };
        };
 
-       cpu_debug0: cpu_debug@22010000 {
+       cpu_debug0: cpu-debug@22010000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x22010000 0x0 0x1000>;
 
                };
        };
 
-       cpu_debug1: cpu_debug@22110000 {
+       cpu_debug1: cpu-debug@22110000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x22110000 0x0 0x1000>;
 
                };
        };
 
-       cpu_debug2: cpu_debug@23010000 {
+       cpu_debug2: cpu-debug@23010000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23010000 0x0 0x1000>;
 
                };
        };
 
-       cpu_debug3: cpu_debug@23110000 {
+       cpu_debug3: cpu-debug@23110000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23110000 0x0 0x1000>;
 
                };
        };
 
-       cpu_debug4: cpu_debug@23210000 {
+       cpu_debug4: cpu-debug@23210000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23210000 0x0 0x1000>;
 
                };
        };
 
-       cpu_debug5: cpu_debug@23310000 {
+       cpu_debug5: cpu-debug@23310000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23310000 0x0 0x1000>;
 
        };
 
        replicator@20120000 {
-               compatible = "qcom,coresight-replicator1x", "arm,primecell";
+               compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
                reg = <0 0x20120000 0 0x1000>;
 
                clocks = <&soc_smc50mhz>;
index 161ac98418a301ef11eafb7dd3539280cad4e9d9..528875c7559871720d0577867737f3c0987ff1f7 100644 (file)
                                };
                        };
 
-                       virtio_block@0130000 {
+                       virtio-block@0130000 {
                                compatible = "virtio,mmio";
                                reg = <0x130000 0x200>;
                                interrupts = <42>;
index f11bdd6689ea96b2fce04404ae2166349c7d2c26..3eaef3895d663b150fcbe4b2974c8548620cbf12 100644 (file)
@@ -1,7 +1,7 @@
 dtb-$(CONFIG_ARCH_BCM2835) += bcm2837-rpi-3-b.dtb
-dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb ns2-xmc.dtb
 
-dts-dirs       := stingray
+dts-dirs       += northstar2
+dts-dirs       += stingray
 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
 clean-files    := *.dtb
diff --git a/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi b/arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi
deleted file mode 120000 (symlink)
index 3937b77..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/bcm2835-rpi.dtsi
\ No newline at end of file
index 972f14db28accd1f25e5d5cd9d7ce2854c9976c8..699d340a3437eaaca7b56d4124706c1533d1eacf 100644 (file)
@@ -1,41 +1 @@
-/dts-v1/;
-#include "bcm2837.dtsi"
-#include "bcm2835-rpi.dtsi"
-#include "bcm283x-rpi-smsc9514.dtsi"
-#include "bcm283x-rpi-usb-host.dtsi"
-
-/ {
-       compatible = "raspberrypi,3-model-b", "brcm,bcm2837";
-       model = "Raspberry Pi 3 Model B";
-
-       memory {
-               reg = <0 0x40000000>;
-       };
-
-       leds {
-               act {
-                       gpios = <&gpio 47 0>;
-               };
-       };
-};
-
-&uart1 {
-       status = "okay";
-};
-
-/* SDHCI is used to control the SDIO for wireless */
-&sdhci {
-       pinctrl-names = "default";
-       pinctrl-0 = <&emmc_gpio34>;
-       status = "okay";
-       bus-width = <4>;
-       non-removable;
-};
-
-/* SDHOST is used to drive the SD card */
-&sdhost {
-       pinctrl-names = "default";
-       pinctrl-0 = <&sdhost_gpio48>;
-       status = "okay";
-       bus-width = <4>;
-};
+#include "arm/bcm2837-rpi-3-b.dts"
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
deleted file mode 100644 (file)
index 2d5de6f..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "bcm283x.dtsi"
-
-/ {
-       compatible = "brcm,bcm2837";
-
-       soc {
-               ranges = <0x7e000000 0x3f000000 0x1000000>,
-                        <0x40000000 0x40000000 0x00001000>;
-               dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
-
-               local_intc: local_intc {
-                       compatible = "brcm,bcm2836-l1-intc";
-                       reg = <0x40000000 0x100>;
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
-                       interrupt-parent = <&local_intc>;
-               };
-       };
-
-       timer {
-               compatible = "arm,armv7-timer";
-               interrupt-parent = <&local_intc>;
-               interrupts = <0>, // PHYS_SECURE_PPI
-                            <1>, // PHYS_NONSECURE_PPI
-                            <3>, // VIRT_PPI
-                            <2>; // HYP_PPI
-               always-on;
-       };
-
-       cpus: cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <0>;
-                       enable-method = "spin-table";
-                       cpu-release-addr = <0x0 0x000000d8>;
-               };
-
-               cpu1: cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <1>;
-                       enable-method = "spin-table";
-                       cpu-release-addr = <0x0 0x000000e0>;
-               };
-
-               cpu2: cpu@2 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <2>;
-                       enable-method = "spin-table";
-                       cpu-release-addr = <0x0 0x000000e8>;
-               };
-
-               cpu3: cpu@3 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a53";
-                       reg = <3>;
-                       enable-method = "spin-table";
-                       cpu-release-addr = <0x0 0x000000f0>;
-               };
-       };
-};
-
-/* Make the BCM2835-style global interrupt controller be a child of the
- * CPU-local interrupt controller.
- */
-&intc {
-       compatible = "brcm,bcm2836-armctrl-ic";
-       reg = <0x7e00b200 0x200>;
-       interrupt-parent = <&local_intc>;
-       interrupts = <8>;
-};
-
-&cpu_thermal {
-       coefficients = <(-538)  412000>;
-};
-
-/* enable thermal sensor with the correct compatible property set */
-&thermal {
-       compatible = "brcm,bcm2837-thermal";
-       status = "okay";
-};
diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi
deleted file mode 120000 (symlink)
index dca7c05..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi
deleted file mode 120000 (symlink)
index cbeebe3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/bcm283x-rpi-usb-host.dtsi
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/broadcom/bcm283x.dtsi b/arch/arm64/boot/dts/broadcom/bcm283x.dtsi
deleted file mode 120000 (symlink)
index 5f54e4c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/bcm283x.dtsi
\ No newline at end of file
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/Makefile b/arch/arm64/boot/dts/broadcom/northstar2/Makefile
new file mode 100644 (file)
index 0000000..e01a148
--- /dev/null
@@ -0,0 +1,6 @@
+dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-svk.dtb
+dtb-$(CONFIG_ARCH_BCM_IPROC) += ns2-xmc.dtb
+
+always         := $(dtb-y)
+subdir-y       := $(dts-dirs)
+clean-files    := *.dtb
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi b/arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi
new file mode 100644 (file)
index 0000000..99009fd
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright (c) 2016 Broadcom.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <dt-bindings/clock/bcm-ns2.h>
+
+       osc: oscillator {
+               #clock-cells = <0>;
+               compatible = "fixed-clock";
+               clock-frequency = <25000000>;
+       };
+
+       lcpll_ddr: lcpll_ddr@6501d058 {
+               #clock-cells = <1>;
+               compatible = "brcm,ns2-lcpll-ddr";
+               reg = <0x6501d058 0x20>,
+                     <0x6501c020 0x4>,
+                     <0x6501d04c 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "lcpll_ddr", "pcie_sata_usb",
+                                    "ddr", "ddr_ch2_unused",
+                                    "ddr_ch3_unused", "ddr_ch4_unused",
+                                    "ddr_ch5_unused";
+       };
+
+       lcpll_ports: lcpll_ports@6501d078 {
+               #clock-cells = <1>;
+               compatible = "brcm,ns2-lcpll-ports";
+               reg = <0x6501d078 0x20>,
+                     <0x6501c020 0x4>,
+                     <0x6501d054 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "lcpll_ports", "wan", "rgmii",
+                                    "ports_ch2_unused",
+                                    "ports_ch3_unused",
+                                    "ports_ch4_unused",
+                                    "ports_ch5_unused";
+       };
+
+       genpll_scr: genpll_scr@6501d098 {
+               #clock-cells = <1>;
+               compatible = "brcm,ns2-genpll-scr";
+               reg = <0x6501d098 0x32>,
+                     <0x6501c020 0x4>,
+                     <0x6501d044 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "genpll_scr", "scr", "fs",
+                                    "audio_ref", "scr_ch3_unused",
+                                    "scr_ch4_unused", "scr_ch5_unused";
+       };
+
+       iprocmed: iprocmed {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
+               clock-div = <2>;
+               clock-mult = <1>;
+       };
+
+       iprocslow: iprocslow {
+               #clock-cells = <0>;
+               compatible = "fixed-factor-clock";
+               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
+               clock-div = <4>;
+               clock-mult = <1>;
+       };
+
+       genpll_sw: genpll_sw@6501d0c4 {
+               #clock-cells = <1>;
+               compatible = "brcm,ns2-genpll-sw";
+               reg = <0x6501d0c4 0x32>,
+                     <0x6501c020 0x4>,
+                     <0x6501d044 0x4>;
+               clocks = <&osc>;
+               clock-output-names = "genpll_sw", "rpe", "250", "nic",
+                                    "chimp", "port", "sdio";
+       };
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts b/arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
new file mode 100644 (file)
index 0000000..ec19fbf
--- /dev/null
@@ -0,0 +1,236 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2015 Broadcom Corporation.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+#include "ns2.dtsi"
+
+/ {
+       model = "Broadcom NS2 SVK";
+       compatible = "brcm,ns2-svk", "brcm,ns2";
+
+       aliases {
+               serial0 = &uart3;
+               serial1 = &uart0;
+               serial2 = &uart1;
+               serial3 = &uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+               bootargs = "earlycon=uart8250,mmio32,0x66130000";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x000000000 0x80000000 0x00000000 0x40000000>;
+       };
+};
+
+&enet {
+       status = "okay";
+};
+
+&pci_phy0 {
+       status = "okay";
+};
+
+&pci_phy1 {
+       status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie4 {
+       status = "okay";
+};
+
+&pcie8 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&ssp0 {
+       status = "okay";
+
+       slic@0 {
+               compatible = "silabs,si3226x";
+               reg = <0>;
+               spi-max-frequency = <5000000>;
+               spi-cpha = <1>;
+               spi-cpol = <1>;
+               pl022,hierarchy = <0>;
+               pl022,interface = <0>;
+               pl022,slave-tx-disable = <0>;
+               pl022,com-mode = <0>;
+               pl022,rx-level-trig = <1>;
+               pl022,tx-level-trig = <1>;
+               pl022,ctrl-len = <11>;
+               pl022,wait-state = <0>;
+               pl022,duplex = <0>;
+       };
+};
+
+&ssp1 {
+       status = "okay";
+
+       at25@0 {
+               compatible = "atmel,at25";
+               reg = <0>;
+               spi-max-frequency = <5000000>;
+               at25,byte-len = <0x8000>;
+               at25,addr-mode = <2>;
+               at25,page-size = <64>;
+               spi-cpha = <1>;
+               spi-cpol = <1>;
+               pl022,hierarchy = <0>;
+               pl022,interface = <0>;
+               pl022,slave-tx-disable = <0>;
+               pl022,com-mode = <0>;
+               pl022,rx-level-trig = <1>;
+               pl022,tx-level-trig = <1>;
+               pl022,ctrl-len = <11>;
+               pl022,wait-state = <0>;
+               pl022,duplex = <0>;
+       };
+};
+
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata_phy1 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&sdio0 {
+       status = "okay";
+};
+
+&sdio1 {
+       status = "okay";
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-ecc-mode = "hw";
+               nand-ecc-strength = <8>;
+               nand-ecc-step-size = <512>;
+               nand-bus-width = <16>;
+               brcm,nand-oob-sector-size = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+&mdio_mux_iproc {
+       mdio@10 {
+               gphy0: eth-phy@10 {
+                       enet-phy-lane-swap;
+                       reg = <0x10>;
+               };
+       };
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&nand_sel>;
+       nand_sel: nand_sel {
+               function = "nand";
+               groups = "nand_grp";
+       };
+};
+
+&qspi {
+       bspi-sel = <0>;
+       flash: m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "m25p80";
+               reg = <0x0>;
+               spi-max-frequency = <12500000>;
+               m25p,fast-read;
+               spi-cpol;
+               spi-cpha;
+
+               partition@0 {
+                       label = "boot";
+                       reg = <0x00000000 0x000a0000>;
+               };
+
+               partition@a0000 {
+                       label = "env";
+                       reg = <0x000a0000 0x00060000>;
+               };
+
+               partition@100000 {
+                       label = "system";
+                       reg = <0x00100000 0x00600000>;
+               };
+
+               partition@700000 {
+                       label = "rootfs";
+                       reg = <0x00700000 0x01900000>;
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts b/arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
new file mode 100644 (file)
index 0000000..ab4ae1a
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016 Broadcom.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/dts-v1/;
+
+#include "ns2.dtsi"
+
+/ {
+       model = "Broadcom NS2 XMC";
+       compatible = "brcm,ns2-xmc", "brcm,ns2";
+
+       aliases {
+               serial0 = &uart3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+               bootargs = "earlycon=uart8250,mmio32,0x66130000";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x000000000 0x80000000 0x00000001 0x00000000>;
+       };
+};
+
+&enet {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&mdio_mux_iproc {
+       mdio@10 {
+               gphy0: eth-phy@10 {
+                       reg = <0x10>;
+               };
+       };
+};
+
+&nand {
+       nandcs@0 {
+               compatible = "brcm,nandcs";
+               reg = <0>;
+               nand-ecc-mode = "hw";
+               nand-ecc-strength = <8>;
+               nand-ecc-step-size = <512>;
+               nand-bus-width = <16>;
+               brcm,nand-oob-sector-size = <16>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "nboot";
+                       reg = <0x00000000 0x00280000>; /*  2.5MB */
+                       read-only;
+               };
+
+               partition@280000 {
+                       label = "nenv";
+                       reg = <0x00280000 0x00040000>; /* 0.25MB */
+                       read-only;
+               };
+
+               partition@2c0000 {
+                       label = "ndtb";
+                       reg = <0x002c0000 0x00040000>; /* 0.25MB */
+                       read-only;
+               };
+
+               partition@300000 {
+                       label = "nsystem";
+                       reg = <0x00300000 0x03d00000>; /*   61MB */
+                       read-only;
+               };
+
+               partition@4000000 {
+                       label = "nrootfs";
+                       reg = <0x04000000 0x06400000>; /*  100MB */
+               };
+
+               partition@0a400000{
+                       label = "ncustfs";
+                       reg = <0x0a400000 0x35c00000>; /*  860MB */
+               };
+       };
+};
+
+&pci_phy0 {
+       status = "okay";
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&pcie8 {
+       status = "okay";
+};
+
+&sata_phy0 {
+       status = "okay";
+};
+
+&sata_phy1 {
+       status = "okay";
+};
+
+&sata {
+       status = "okay";
+};
+
+&qspi {
+       flash: m25p80@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "m25p80";
+               spi-max-frequency = <62500000>;
+               m25p,default-addr-width = <3>;
+               reg = <0x0 0x0>;
+
+               partition@0 {
+                       label = "bl0";
+                       reg = <0x00000000 0x00080000>; /*  512KB */
+               };
+
+               partition@80000 {
+                       label = "fip";
+                       reg = <0x00080000 0x00150000>; /* 1344KB */
+               };
+
+               partition@1e0000 {
+                       label = "env";
+                       reg = <0x001e0000 0x00010000>;/*    64KB */
+               };
+
+               partition@1f0000 {
+                       label = "dtb";
+                       reg = <0x001f0000 0x00010000>; /*   64KB */
+               };
+
+               partition@200000 {
+                       label = "kernel";
+                       reg = <0x00200000 0x00e00000>; /*   14MB */
+               };
+
+               partition@1000000 {
+                       label = "rootfs";
+                       reg = <0x01000000 0x01000000>; /*   16MB */
+               };
+       };
+};
+
+&uart3 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi b/arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
new file mode 100644 (file)
index 0000000..35c8457
--- /dev/null
@@ -0,0 +1,765 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright (c) 2015 Broadcom.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom Corporation nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/memreserve/ 0x81000000 0x00200000;
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/bcm-ns2.h>
+
+/ {
+       compatible = "brcm,ns2";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               A57_0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a57", "arm,armv8";
+                       reg = <0 0>;
+                       enable-method = "psci";
+                       next-level-cache = <&CLUSTER0_L2>;
+               };
+
+               A57_1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a57", "arm,armv8";
+                       reg = <0 1>;
+                       enable-method = "psci";
+                       next-level-cache = <&CLUSTER0_L2>;
+               };
+
+               A57_2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a57", "arm,armv8";
+                       reg = <0 2>;
+                       enable-method = "psci";
+                       next-level-cache = <&CLUSTER0_L2>;
+               };
+
+               A57_3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a57", "arm,armv8";
+                       reg = <0 3>;
+                       enable-method = "psci";
+                       next-level-cache = <&CLUSTER0_L2>;
+               };
+
+               CLUSTER0_L2: l2-cache@000 {
+                       compatible = "cache";
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) |
+                             IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) |
+                             IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) |
+                             IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) |
+                             IRQ_TYPE_LEVEL_LOW)>;
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&A57_0>,
+                                    <&A57_1>,
+                                    <&A57_2>,
+                                    <&A57_3>;
+       };
+
+       pcie0: pcie@20020000 {
+               compatible = "brcm,iproc-pcie";
+               reg = <0 0x20020000 0 0x1000>;
+               dma-coherent;
+
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 0>;
+               interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 281 IRQ_TYPE_NONE>;
+
+               linux,pci-domain = <0>;
+
+               bus-range = <0x00 0xff>;
+
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               ranges = <0x83000000 0 0x00000000 0 0x00000000 0 0x20000000>;
+
+               brcm,pcie-ob;
+               brcm,pcie-ob-oarr-size;
+               brcm,pcie-ob-axi-offset = <0x00000000>;
+               brcm,pcie-ob-window-size = <256>;
+
+               status = "disabled";
+
+               phys = <&pci_phy0>;
+               phy-names = "pcie-phy";
+
+               msi-parent = <&v2m0>;
+       };
+
+       pcie4: pcie@50020000 {
+               compatible = "brcm,iproc-pcie";
+               reg = <0 0x50020000 0 0x1000>;
+               dma-coherent;
+
+               #interrupt-cells = <1>;
+               interrupt-map-mask = <0 0 0 0>;
+               interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 305 IRQ_TYPE_NONE>;
+
+               linux,pci-domain = <4>;
+
+               bus-range = <0x00 0xff>;
+
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               ranges = <0x83000000 0 0x00000000 0 0x30000000 0 0x20000000>;
+
+               brcm,pcie-ob;
+               brcm,pcie-ob-oarr-size;
+               brcm,pcie-ob-axi-offset = <0x30000000>;
+               brcm,pcie-ob-window-size = <256>;
+
+               status = "disabled";
+
+               phys = <&pci_phy1>;
+               phy-names = "pcie-phy";
+
+               msi-parent = <&v2m0>;
+       };
+
+       pcie8: pcie@60c00000 {
+               compatible = "brcm,iproc-pcie-paxc";
+               reg = <0 0x60c00000 0 0x1000>;
+               dma-coherent;
+               linux,pci-domain = <8>;
+
+               bus-range = <0x0 0x1>;
+
+               #address-cells = <3>;
+               #size-cells = <2>;
+               device_type = "pci";
+               ranges = <0x83000000 0 0x00000000 0 0x60000000 0 0x00c00000>;
+
+               status = "disabled";
+
+               msi-parent = <&v2m0>;
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0 0xffffffff>;
+
+               #include "ns2-clock.dtsi"
+
+               enet: ethernet@61000000 {
+                       compatible = "brcm,ns2-amac";
+                       reg = <0x61000000 0x1000>,
+                             <0x61090000 0x1000>,
+                             <0x61030000 0x100>;
+                       reg-names = "amac_base", "idm_base", "nicpm_base";
+                       interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+                       phy-handle = <&gphy0>;
+                       phy-mode = "rgmii";
+                       status = "disabled";
+               };
+
+               pdc0: iproc-pdc0@612c0000 {
+                       compatible = "brcm,iproc-pdc-mbox";
+                       reg = <0x612c0000 0x445>;  /* PDC FS0 regs */
+                       interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+                       dma-coherent;
+                       brcm,rx-status-len = <32>;
+                       brcm,use-bcm-hdr;
+               };
+
+               crypto0: crypto@612d0000 {
+                       compatible = "brcm,spum-crypto";
+                       reg = <0x612d0000 0x900>;
+                       mboxes = <&pdc0 0>;
+               };
+
+               pdc1: iproc-pdc1@612e0000 {
+                       compatible = "brcm,iproc-pdc-mbox";
+                       reg = <0x612e0000 0x445>;  /* PDC FS1 regs */
+                       interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+                       dma-coherent;
+                       brcm,rx-status-len = <32>;
+                       brcm,use-bcm-hdr;
+               };
+
+               crypto1: crypto@612f0000 {
+                       compatible = "brcm,spum-crypto";
+                       reg = <0x612f0000 0x900>;
+                       mboxes = <&pdc1 0>;
+               };
+
+               pdc2: iproc-pdc2@61300000 {
+                       compatible = "brcm,iproc-pdc-mbox";
+                       reg = <0x61300000 0x445>;  /* PDC FS2 regs */
+                       interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+                       dma-coherent;
+                       brcm,rx-status-len = <32>;
+                       brcm,use-bcm-hdr;
+               };
+
+               crypto2: crypto@61310000 {
+                       compatible = "brcm,spum-crypto";
+                       reg = <0x61310000 0x900>;
+                       mboxes = <&pdc2 0>;
+               };
+
+               pdc3: iproc-pdc3@61320000 {
+                       compatible = "brcm,iproc-pdc-mbox";
+                       reg = <0x61320000 0x445>;  /* PDC FS3 regs */
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <1>;
+                       dma-coherent;
+                       brcm,rx-status-len = <32>;
+                       brcm,use-bcm-hdr;
+               };
+
+               crypto3: crypto@61330000 {
+                       compatible = "brcm,spum-crypto";
+                       reg = <0x61330000 0x900>;
+                       mboxes = <&pdc3 0>;
+               };
+
+               dma0: dma@61360000 {
+                       compatible = "arm,pl330", "arm,primecell";
+                       reg = <0x61360000 0x1000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       #dma-channels = <8>;
+                       #dma-requests = <32>;
+                       clocks = <&iprocslow>;
+                       clock-names = "apb_pclk";
+               };
+
+               smmu: mmu@64000000 {
+                       compatible = "arm,mmu-500";
+                       reg = <0x64000000 0x40000>;
+                       #global-interrupts = <2>;
+                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+               };
+
+               pinctrl: pinctrl@6501d130 {
+                       compatible = "brcm,ns2-pinmux";
+                       reg = <0x6501d130 0x08>,
+                             <0x660a0028 0x04>,
+                             <0x660009b0 0x40>;
+               };
+
+               gpio_aon: gpio@65024800 {
+                       compatible = "brcm,iproc-gpio";
+                       reg = <0x65024800 0x50>,
+                             <0x65024008 0x18>;
+                       ngpios = <6>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+               };
+
+               gic: interrupt-controller@65210000 {
+                       compatible = "arm,gic-400";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x65210000 0x1000>,
+                             <0x65220000 0x1000>,
+                             <0x65240000 0x2000>,
+                             <0x65260000 0x1000>;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) |
+                                     IRQ_TYPE_LEVEL_HIGH)>;
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x652e0000 0x80000>;
+
+                       v2m0: v2m@00000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x00000 0x1000>;
+                               arm,msi-base-spi = <72>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m1: v2m@10000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x10000 0x1000>;
+                               arm,msi-base-spi = <88>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m2: v2m@20000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x20000 0x1000>;
+                               arm,msi-base-spi = <104>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m3: v2m@30000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x30000 0x1000>;
+                               arm,msi-base-spi = <120>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m4: v2m@40000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x40000 0x1000>;
+                               arm,msi-base-spi = <136>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m5: v2m@50000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x50000 0x1000>;
+                               arm,msi-base-spi = <152>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m6: v2m@60000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x60000 0x1000>;
+                               arm,msi-base-spi = <168>;
+                               arm,msi-num-spis = <16>;
+                       };
+
+                       v2m7: v2m@70000 {
+                               compatible = "arm,gic-v2m-frame";
+                               interrupt-parent = <&gic>;
+                               msi-controller;
+                               reg = <0x70000 0x1000>;
+                               arm,msi-base-spi = <184>;
+                               arm,msi-num-spis = <16>;
+                       };
+               };
+
+               cci@65590000 {
+                       compatible = "arm,cci-400";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = <0x65590000 0x1000>;
+                       ranges = <0 0x65590000 0x10000>;
+
+                       pmu@9000 {
+                               compatible = "arm,cci-400-pmu,r1",
+                                            "arm,cci-400-pmu";
+                               reg = <0x9000 0x4000>;
+                               interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               usbdrd_phy: phy@66000960 {
+                       #phy-cells = <0>;
+                       compatible = "brcm,ns2-drd-phy";
+                       reg = <0x66000960 0x24>,
+                             <0x67012800 0x4>,
+                             <0x6501d148 0x4>,
+                             <0x664d0700 0x4>;
+                       reg-names = "icfg", "rst-ctrl",
+                                   "crmu-ctrl", "usb2-strap";
+                       id-gpios = <&gpio_g 30 0>;
+                       vbus-gpios = <&gpio_g 31 0>;
+                       status = "disabled";
+               };
+
+               pwm: pwm@66010000 {
+                       compatible = "brcm,iproc-pwm";
+                       reg = <0x66010000 0x28>;
+                       clocks = <&osc>;
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
+               mdio_mux_iproc: mdio-mux@6602023c {
+                       compatible = "brcm,mdio-mux-iproc";
+                       reg = <0x6602023c 0x14>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       mdio@0 {
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               pci_phy0: pci-phy@0 {
+                                       compatible = "brcm,ns2-pcie-phy";
+                                       reg = <0x0>;
+                                       #phy-cells = <0>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       mdio@7 {
+                               reg = <0x7>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               pci_phy1: pci-phy@0 {
+                                       compatible = "brcm,ns2-pcie-phy";
+                                       reg = <0x0>;
+                                       #phy-cells = <0>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       mdio@10 {
+                               reg = <0x10>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               timer0: timer@66030000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x66030000 0x1000>;
+                       interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>,
+                                <&iprocslow>,
+                                <&iprocslow>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               timer1: timer@66040000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x66040000 0x1000>;
+                       interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>,
+                                <&iprocslow>,
+                                <&iprocslow>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               timer2: timer@66050000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x66050000 0x1000>;
+                       interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>,
+                                <&iprocslow>,
+                                <&iprocslow>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               timer3: timer@66060000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x66060000 0x1000>;
+                       interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>,
+                                <&iprocslow>,
+                                <&iprocslow>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               i2c0: i2c@66080000 {
+                       compatible = "brcm,iproc-i2c";
+                       reg = <0x66080000 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 394 IRQ_TYPE_NONE>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
+
+               wdt0: watchdog@66090000 {
+                       compatible = "arm,sp805", "arm,primecell";
+                       reg = <0x66090000 0x1000>;
+                       interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>, <&iprocslow>;
+                       clock-names = "wdogclk", "apb_pclk";
+               };
+
+               gpio_g: gpio@660a0000 {
+                       compatible = "brcm,iproc-gpio";
+                       reg = <0x660a0000 0x50>;
+                       ngpios = <32>;
+                       #gpio-cells = <2>;
+                       gpio-controller;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               i2c1: i2c@660b0000 {
+                       compatible = "brcm,iproc-i2c";
+                       reg = <0x660b0000 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <GIC_SPI 395 IRQ_TYPE_NONE>;
+                       clock-frequency = <100000>;
+                       status = "disabled";
+               };
+
+               uart0: serial@66100000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x66100000 0x100>;
+                       interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart1: serial@66110000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x66110000 0x100>;
+                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart2: serial@66120000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x66120000 0x100>;
+                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       status = "disabled";
+               };
+
+               uart3: serial@66130000 {
+                       compatible = "snps,dw-apb-uart";
+                       reg = <0x66130000 0x100>;
+                       interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
+                       reg-shift = <2>;
+                       reg-io-width = <4>;
+                       clocks = <&osc>;
+                       status = "disabled";
+               };
+
+               ssp0: ssp@66180000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x66180000 0x1000>;
+                       interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>, <&iprocslow>;
+                       clock-names = "spiclk", "apb_pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               ssp1: ssp@66190000 {
+                       compatible = "arm,pl022", "arm,primecell";
+                       reg = <0x66190000 0x1000>;
+                       interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&iprocslow>, <&iprocslow>;
+                       clock-names = "spiclk", "apb_pclk";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               hwrng: hwrng@66220000 {
+                       compatible = "brcm,iproc-rng200";
+                       reg = <0x66220000 0x28>;
+               };
+
+               sata_phy: sata_phy@663f0100 {
+                       compatible = "brcm,iproc-ns2-sata-phy";
+                       reg = <0x663f0100 0x1f00>,
+                             <0x663f004c 0x10>;
+                       reg-names = "phy", "phy-ctrl";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       sata_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       sata_phy1: sata-phy@1 {
+                               reg = <1>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
+               sata: ahci@663f2000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x663f2000 0x1000>;
+                       dma-coherent;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata_phy0>;
+                               phy-names = "sata-phy";
+                       };
+
+                       sata1: sata-port@1 {
+                               reg = <1>;
+                               phys = <&sata_phy1>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sdio0: sdhci@66420000 {
+                       compatible = "brcm,sdhci-iproc-cygnus";
+                       reg = <0x66420000 0x100>;
+                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+                       bus-width = <8>;
+                       clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
+                       status = "disabled";
+               };
+
+               sdio1: sdhci@66430000 {
+                       compatible = "brcm,sdhci-iproc-cygnus";
+                       reg = <0x66430000 0x100>;
+                       interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+                       bus-width = <8>;
+                       clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
+                       status = "disabled";
+               };
+
+               nand: nand@66460000 {
+                       compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
+                       reg = <0x66460000 0x600>,
+                             <0x67015408 0x600>,
+                             <0x66460f00 0x20>;
+                       reg-names = "nand", "iproc-idm", "iproc-ext";
+                       interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       brcm,nand-has-wp;
+               };
+
+               qspi: spi@66470200 {
+                       compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
+                       reg = <0x66470200 0x184>,
+                               <0x66470000 0x124>,
+                               <0x67017408 0x004>,
+                               <0x664703a0 0x01c>;
+                       reg-names = "mspi", "bspi", "intr_regs",
+                               "intr_status_reg";
+                       interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "spi_l1_intr";
+                       clocks = <&iprocmed>;
+                       clock-names = "iprocmed";
+                       num-cs = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+       };
+};
diff --git a/arch/arm64/boot/dts/broadcom/ns2-clock.dtsi b/arch/arm64/boot/dts/broadcom/ns2-clock.dtsi
deleted file mode 100644 (file)
index 99009fd..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  BSD LICENSE
- *
- *  Copyright (c) 2016 Broadcom.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom Corporation nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <dt-bindings/clock/bcm-ns2.h>
-
-       osc: oscillator {
-               #clock-cells = <0>;
-               compatible = "fixed-clock";
-               clock-frequency = <25000000>;
-       };
-
-       lcpll_ddr: lcpll_ddr@6501d058 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-lcpll-ddr";
-               reg = <0x6501d058 0x20>,
-                     <0x6501c020 0x4>,
-                     <0x6501d04c 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "lcpll_ddr", "pcie_sata_usb",
-                                    "ddr", "ddr_ch2_unused",
-                                    "ddr_ch3_unused", "ddr_ch4_unused",
-                                    "ddr_ch5_unused";
-       };
-
-       lcpll_ports: lcpll_ports@6501d078 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-lcpll-ports";
-               reg = <0x6501d078 0x20>,
-                     <0x6501c020 0x4>,
-                     <0x6501d054 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "lcpll_ports", "wan", "rgmii",
-                                    "ports_ch2_unused",
-                                    "ports_ch3_unused",
-                                    "ports_ch4_unused",
-                                    "ports_ch5_unused";
-       };
-
-       genpll_scr: genpll_scr@6501d098 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-genpll-scr";
-               reg = <0x6501d098 0x32>,
-                     <0x6501c020 0x4>,
-                     <0x6501d044 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "genpll_scr", "scr", "fs",
-                                    "audio_ref", "scr_ch3_unused",
-                                    "scr_ch4_unused", "scr_ch5_unused";
-       };
-
-       iprocmed: iprocmed {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
-               clock-div = <2>;
-               clock-mult = <1>;
-       };
-
-       iprocslow: iprocslow {
-               #clock-cells = <0>;
-               compatible = "fixed-factor-clock";
-               clocks = <&genpll_scr BCM_NS2_GENPLL_SCR_SCR_CLK>;
-               clock-div = <4>;
-               clock-mult = <1>;
-       };
-
-       genpll_sw: genpll_sw@6501d0c4 {
-               #clock-cells = <1>;
-               compatible = "brcm,ns2-genpll-sw";
-               reg = <0x6501d0c4 0x32>,
-                     <0x6501c020 0x4>,
-                     <0x6501d044 0x4>;
-               clocks = <&osc>;
-               clock-output-names = "genpll_sw", "rpe", "250", "nic",
-                                    "chimp", "port", "sdio";
-       };
diff --git a/arch/arm64/boot/dts/broadcom/ns2-svk.dts b/arch/arm64/boot/dts/broadcom/ns2-svk.dts
deleted file mode 100644 (file)
index ec19fbf..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- *  BSD LICENSE
- *
- *  Copyright(c) 2015 Broadcom Corporation.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom Corporation nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-#include "ns2.dtsi"
-
-/ {
-       model = "Broadcom NS2 SVK";
-       compatible = "brcm,ns2-svk", "brcm,ns2";
-
-       aliases {
-               serial0 = &uart3;
-               serial1 = &uart0;
-               serial2 = &uart1;
-               serial3 = &uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-               bootargs = "earlycon=uart8250,mmio32,0x66130000";
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x000000000 0x80000000 0x00000000 0x40000000>;
-       };
-};
-
-&enet {
-       status = "okay";
-};
-
-&pci_phy0 {
-       status = "okay";
-};
-
-&pci_phy1 {
-       status = "okay";
-};
-
-&pcie0 {
-       status = "okay";
-};
-
-&pcie4 {
-       status = "okay";
-};
-
-&pcie8 {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&i2c1 {
-       status = "okay";
-};
-
-&uart0 {
-       status = "okay";
-};
-
-&uart1 {
-       status = "okay";
-};
-
-&uart2 {
-       status = "okay";
-};
-
-&uart3 {
-       status = "okay";
-};
-
-&ssp0 {
-       status = "okay";
-
-       slic@0 {
-               compatible = "silabs,si3226x";
-               reg = <0>;
-               spi-max-frequency = <5000000>;
-               spi-cpha = <1>;
-               spi-cpol = <1>;
-               pl022,hierarchy = <0>;
-               pl022,interface = <0>;
-               pl022,slave-tx-disable = <0>;
-               pl022,com-mode = <0>;
-               pl022,rx-level-trig = <1>;
-               pl022,tx-level-trig = <1>;
-               pl022,ctrl-len = <11>;
-               pl022,wait-state = <0>;
-               pl022,duplex = <0>;
-       };
-};
-
-&ssp1 {
-       status = "okay";
-
-       at25@0 {
-               compatible = "atmel,at25";
-               reg = <0>;
-               spi-max-frequency = <5000000>;
-               at25,byte-len = <0x8000>;
-               at25,addr-mode = <2>;
-               at25,page-size = <64>;
-               spi-cpha = <1>;
-               spi-cpol = <1>;
-               pl022,hierarchy = <0>;
-               pl022,interface = <0>;
-               pl022,slave-tx-disable = <0>;
-               pl022,com-mode = <0>;
-               pl022,rx-level-trig = <1>;
-               pl022,tx-level-trig = <1>;
-               pl022,ctrl-len = <11>;
-               pl022,wait-state = <0>;
-               pl022,duplex = <0>;
-       };
-};
-
-&sata_phy0 {
-       status = "okay";
-};
-
-&sata_phy1 {
-       status = "okay";
-};
-
-&sata {
-       status = "okay";
-};
-
-&sdio0 {
-       status = "okay";
-};
-
-&sdio1 {
-       status = "okay";
-};
-
-&nand {
-       nandcs@0 {
-               compatible = "brcm,nandcs";
-               reg = <0>;
-               nand-ecc-mode = "hw";
-               nand-ecc-strength = <8>;
-               nand-ecc-step-size = <512>;
-               nand-bus-width = <16>;
-               brcm,nand-oob-sector-size = <16>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-       };
-};
-
-&mdio_mux_iproc {
-       mdio@10 {
-               gphy0: eth-phy@10 {
-                       enet-phy-lane-swap;
-                       reg = <0x10>;
-               };
-       };
-};
-
-&pinctrl {
-       pinctrl-names = "default";
-       pinctrl-0 = <&nand_sel>;
-       nand_sel: nand_sel {
-               function = "nand";
-               groups = "nand_grp";
-       };
-};
-
-&qspi {
-       bspi-sel = <0>;
-       flash: m25p80@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "m25p80";
-               reg = <0x0>;
-               spi-max-frequency = <12500000>;
-               m25p,fast-read;
-               spi-cpol;
-               spi-cpha;
-
-               partition@0 {
-                       label = "boot";
-                       reg = <0x00000000 0x000a0000>;
-               };
-
-               partition@a0000 {
-                       label = "env";
-                       reg = <0x000a0000 0x00060000>;
-               };
-
-               partition@100000 {
-                       label = "system";
-                       reg = <0x00100000 0x00600000>;
-               };
-
-               partition@700000 {
-                       label = "rootfs";
-                       reg = <0x00700000 0x01900000>;
-               };
-       };
-};
diff --git a/arch/arm64/boot/dts/broadcom/ns2-xmc.dts b/arch/arm64/boot/dts/broadcom/ns2-xmc.dts
deleted file mode 100644 (file)
index ab4ae1a..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- *  BSD LICENSE
- *
- *  Copyright(c) 2016 Broadcom.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom Corporation nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/dts-v1/;
-
-#include "ns2.dtsi"
-
-/ {
-       model = "Broadcom NS2 XMC";
-       compatible = "brcm,ns2-xmc", "brcm,ns2";
-
-       aliases {
-               serial0 = &uart3;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-               bootargs = "earlycon=uart8250,mmio32,0x66130000";
-       };
-
-       memory {
-               device_type = "memory";
-               reg = <0x000000000 0x80000000 0x00000001 0x00000000>;
-       };
-};
-
-&enet {
-       status = "okay";
-};
-
-&i2c0 {
-       status = "okay";
-};
-
-&i2c1 {
-       status = "okay";
-};
-
-&mdio_mux_iproc {
-       mdio@10 {
-               gphy0: eth-phy@10 {
-                       reg = <0x10>;
-               };
-       };
-};
-
-&nand {
-       nandcs@0 {
-               compatible = "brcm,nandcs";
-               reg = <0>;
-               nand-ecc-mode = "hw";
-               nand-ecc-strength = <8>;
-               nand-ecc-step-size = <512>;
-               nand-bus-width = <16>;
-               brcm,nand-oob-sector-size = <16>;
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               partition@0 {
-                       label = "nboot";
-                       reg = <0x00000000 0x00280000>; /*  2.5MB */
-                       read-only;
-               };
-
-               partition@280000 {
-                       label = "nenv";
-                       reg = <0x00280000 0x00040000>; /* 0.25MB */
-                       read-only;
-               };
-
-               partition@2c0000 {
-                       label = "ndtb";
-                       reg = <0x002c0000 0x00040000>; /* 0.25MB */
-                       read-only;
-               };
-
-               partition@300000 {
-                       label = "nsystem";
-                       reg = <0x00300000 0x03d00000>; /*   61MB */
-                       read-only;
-               };
-
-               partition@4000000 {
-                       label = "nrootfs";
-                       reg = <0x04000000 0x06400000>; /*  100MB */
-               };
-
-               partition@0a400000{
-                       label = "ncustfs";
-                       reg = <0x0a400000 0x35c00000>; /*  860MB */
-               };
-       };
-};
-
-&pci_phy0 {
-       status = "okay";
-};
-
-&pcie0 {
-       status = "okay";
-};
-
-&pcie8 {
-       status = "okay";
-};
-
-&sata_phy0 {
-       status = "okay";
-};
-
-&sata_phy1 {
-       status = "okay";
-};
-
-&sata {
-       status = "okay";
-};
-
-&qspi {
-       flash: m25p80@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               compatible = "m25p80";
-               spi-max-frequency = <62500000>;
-               m25p,default-addr-width = <3>;
-               reg = <0x0 0x0>;
-
-               partition@0 {
-                       label = "bl0";
-                       reg = <0x00000000 0x00080000>; /*  512KB */
-               };
-
-               partition@80000 {
-                       label = "fip";
-                       reg = <0x00080000 0x00150000>; /* 1344KB */
-               };
-
-               partition@1e0000 {
-                       label = "env";
-                       reg = <0x001e0000 0x00010000>;/*    64KB */
-               };
-
-               partition@1f0000 {
-                       label = "dtb";
-                       reg = <0x001f0000 0x00010000>; /*   64KB */
-               };
-
-               partition@200000 {
-                       label = "kernel";
-                       reg = <0x00200000 0x00e00000>; /*   14MB */
-               };
-
-               partition@1000000 {
-                       label = "rootfs";
-                       reg = <0x01000000 0x01000000>; /*   16MB */
-               };
-       };
-};
-
-&uart3 {
-       status = "okay";
-};
diff --git a/arch/arm64/boot/dts/broadcom/ns2.dtsi b/arch/arm64/boot/dts/broadcom/ns2.dtsi
deleted file mode 100644 (file)
index 35c8457..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-/*
- *  BSD LICENSE
- *
- *  Copyright (c) 2015 Broadcom.  All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions
- *  are met:
- *
- *    * Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *    * Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in
- *      the documentation and/or other materials provided with the
- *      distribution.
- *    * Neither the name of Broadcom Corporation nor the names of its
- *      contributors may be used to endorse or promote products derived
- *      from this software without specific prior written permission.
- *
- *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/memreserve/ 0x81000000 0x00200000;
-
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-#include <dt-bindings/clock/bcm-ns2.h>
-
-/ {
-       compatible = "brcm,ns2";
-       interrupt-parent = <&gic>;
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       cpus {
-               #address-cells = <2>;
-               #size-cells = <0>;
-
-               A57_0: cpu@0 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a57", "arm,armv8";
-                       reg = <0 0>;
-                       enable-method = "psci";
-                       next-level-cache = <&CLUSTER0_L2>;
-               };
-
-               A57_1: cpu@1 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a57", "arm,armv8";
-                       reg = <0 1>;
-                       enable-method = "psci";
-                       next-level-cache = <&CLUSTER0_L2>;
-               };
-
-               A57_2: cpu@2 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a57", "arm,armv8";
-                       reg = <0 2>;
-                       enable-method = "psci";
-                       next-level-cache = <&CLUSTER0_L2>;
-               };
-
-               A57_3: cpu@3 {
-                       device_type = "cpu";
-                       compatible = "arm,cortex-a57", "arm,armv8";
-                       reg = <0 3>;
-                       enable-method = "psci";
-                       next-level-cache = <&CLUSTER0_L2>;
-               };
-
-               CLUSTER0_L2: l2-cache@000 {
-                       compatible = "cache";
-               };
-       };
-
-       psci {
-               compatible = "arm,psci-1.0";
-               method = "smc";
-       };
-
-       timer {
-               compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(0xff) |
-                             IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_RAW(0xff) |
-                             IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 11 (GIC_CPU_MASK_RAW(0xff) |
-                             IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 10 (GIC_CPU_MASK_RAW(0xff) |
-                             IRQ_TYPE_LEVEL_LOW)>;
-       };
-
-       pmu {
-               compatible = "arm,armv8-pmuv3";
-               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-affinity = <&A57_0>,
-                                    <&A57_1>,
-                                    <&A57_2>,
-                                    <&A57_3>;
-       };
-
-       pcie0: pcie@20020000 {
-               compatible = "brcm,iproc-pcie";
-               reg = <0 0x20020000 0 0x1000>;
-               dma-coherent;
-
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 0>;
-               interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 281 IRQ_TYPE_NONE>;
-
-               linux,pci-domain = <0>;
-
-               bus-range = <0x00 0xff>;
-
-               #address-cells = <3>;
-               #size-cells = <2>;
-               device_type = "pci";
-               ranges = <0x83000000 0 0x00000000 0 0x00000000 0 0x20000000>;
-
-               brcm,pcie-ob;
-               brcm,pcie-ob-oarr-size;
-               brcm,pcie-ob-axi-offset = <0x00000000>;
-               brcm,pcie-ob-window-size = <256>;
-
-               status = "disabled";
-
-               phys = <&pci_phy0>;
-               phy-names = "pcie-phy";
-
-               msi-parent = <&v2m0>;
-       };
-
-       pcie4: pcie@50020000 {
-               compatible = "brcm,iproc-pcie";
-               reg = <0 0x50020000 0 0x1000>;
-               dma-coherent;
-
-               #interrupt-cells = <1>;
-               interrupt-map-mask = <0 0 0 0>;
-               interrupt-map = <0 0 0 0 &gic 0 GIC_SPI 305 IRQ_TYPE_NONE>;
-
-               linux,pci-domain = <4>;
-
-               bus-range = <0x00 0xff>;
-
-               #address-cells = <3>;
-               #size-cells = <2>;
-               device_type = "pci";
-               ranges = <0x83000000 0 0x00000000 0 0x30000000 0 0x20000000>;
-
-               brcm,pcie-ob;
-               brcm,pcie-ob-oarr-size;
-               brcm,pcie-ob-axi-offset = <0x30000000>;
-               brcm,pcie-ob-window-size = <256>;
-
-               status = "disabled";
-
-               phys = <&pci_phy1>;
-               phy-names = "pcie-phy";
-
-               msi-parent = <&v2m0>;
-       };
-
-       pcie8: pcie@60c00000 {
-               compatible = "brcm,iproc-pcie-paxc";
-               reg = <0 0x60c00000 0 0x1000>;
-               dma-coherent;
-               linux,pci-domain = <8>;
-
-               bus-range = <0x0 0x1>;
-
-               #address-cells = <3>;
-               #size-cells = <2>;
-               device_type = "pci";
-               ranges = <0x83000000 0 0x00000000 0 0x60000000 0 0x00c00000>;
-
-               status = "disabled";
-
-               msi-parent = <&v2m0>;
-       };
-
-       soc: soc {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0 0 0 0xffffffff>;
-
-               #include "ns2-clock.dtsi"
-
-               enet: ethernet@61000000 {
-                       compatible = "brcm,ns2-amac";
-                       reg = <0x61000000 0x1000>,
-                             <0x61090000 0x1000>,
-                             <0x61030000 0x100>;
-                       reg-names = "amac_base", "idm_base", "nicpm_base";
-                       interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
-                       dma-coherent;
-                       phy-handle = <&gphy0>;
-                       phy-mode = "rgmii";
-                       status = "disabled";
-               };
-
-               pdc0: iproc-pdc0@612c0000 {
-                       compatible = "brcm,iproc-pdc-mbox";
-                       reg = <0x612c0000 0x445>;  /* PDC FS0 regs */
-                       interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
-                       #mbox-cells = <1>;
-                       dma-coherent;
-                       brcm,rx-status-len = <32>;
-                       brcm,use-bcm-hdr;
-               };
-
-               crypto0: crypto@612d0000 {
-                       compatible = "brcm,spum-crypto";
-                       reg = <0x612d0000 0x900>;
-                       mboxes = <&pdc0 0>;
-               };
-
-               pdc1: iproc-pdc1@612e0000 {
-                       compatible = "brcm,iproc-pdc-mbox";
-                       reg = <0x612e0000 0x445>;  /* PDC FS1 regs */
-                       interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
-                       #mbox-cells = <1>;
-                       dma-coherent;
-                       brcm,rx-status-len = <32>;
-                       brcm,use-bcm-hdr;
-               };
-
-               crypto1: crypto@612f0000 {
-                       compatible = "brcm,spum-crypto";
-                       reg = <0x612f0000 0x900>;
-                       mboxes = <&pdc1 0>;
-               };
-
-               pdc2: iproc-pdc2@61300000 {
-                       compatible = "brcm,iproc-pdc-mbox";
-                       reg = <0x61300000 0x445>;  /* PDC FS2 regs */
-                       interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
-                       #mbox-cells = <1>;
-                       dma-coherent;
-                       brcm,rx-status-len = <32>;
-                       brcm,use-bcm-hdr;
-               };
-
-               crypto2: crypto@61310000 {
-                       compatible = "brcm,spum-crypto";
-                       reg = <0x61310000 0x900>;
-                       mboxes = <&pdc2 0>;
-               };
-
-               pdc3: iproc-pdc3@61320000 {
-                       compatible = "brcm,iproc-pdc-mbox";
-                       reg = <0x61320000 0x445>;  /* PDC FS3 regs */
-                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
-                       #mbox-cells = <1>;
-                       dma-coherent;
-                       brcm,rx-status-len = <32>;
-                       brcm,use-bcm-hdr;
-               };
-
-               crypto3: crypto@61330000 {
-                       compatible = "brcm,spum-crypto";
-                       reg = <0x61330000 0x900>;
-                       mboxes = <&pdc3 0>;
-               };
-
-               dma0: dma@61360000 {
-                       compatible = "arm,pl330", "arm,primecell";
-                       reg = <0x61360000 0x1000>;
-                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
-                       #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
-                       clocks = <&iprocslow>;
-                       clock-names = "apb_pclk";
-               };
-
-               smmu: mmu@64000000 {
-                       compatible = "arm,mmu-500";
-                       reg = <0x64000000 0x40000>;
-                       #global-interrupts = <2>;
-                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 230 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 236 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 237 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 257 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 258 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>;
-                       #iommu-cells = <1>;
-               };
-
-               pinctrl: pinctrl@6501d130 {
-                       compatible = "brcm,ns2-pinmux";
-                       reg = <0x6501d130 0x08>,
-                             <0x660a0028 0x04>,
-                             <0x660009b0 0x40>;
-               };
-
-               gpio_aon: gpio@65024800 {
-                       compatible = "brcm,iproc-gpio";
-                       reg = <0x65024800 0x50>,
-                             <0x65024008 0x18>;
-                       ngpios = <6>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-               };
-
-               gic: interrupt-controller@65210000 {
-                       compatible = "arm,gic-400";
-                       #interrupt-cells = <3>;
-                       interrupt-controller;
-                       reg = <0x65210000 0x1000>,
-                             <0x65220000 0x1000>,
-                             <0x65240000 0x2000>,
-                             <0x65260000 0x1000>;
-                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_RAW(0xf) |
-                                     IRQ_TYPE_LEVEL_HIGH)>;
-
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x652e0000 0x80000>;
-
-                       v2m0: v2m@00000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x00000 0x1000>;
-                               arm,msi-base-spi = <72>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m1: v2m@10000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x10000 0x1000>;
-                               arm,msi-base-spi = <88>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m2: v2m@20000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x20000 0x1000>;
-                               arm,msi-base-spi = <104>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m3: v2m@30000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x30000 0x1000>;
-                               arm,msi-base-spi = <120>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m4: v2m@40000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x40000 0x1000>;
-                               arm,msi-base-spi = <136>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m5: v2m@50000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x50000 0x1000>;
-                               arm,msi-base-spi = <152>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m6: v2m@60000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x60000 0x1000>;
-                               arm,msi-base-spi = <168>;
-                               arm,msi-num-spis = <16>;
-                       };
-
-                       v2m7: v2m@70000 {
-                               compatible = "arm,gic-v2m-frame";
-                               interrupt-parent = <&gic>;
-                               msi-controller;
-                               reg = <0x70000 0x1000>;
-                               arm,msi-base-spi = <184>;
-                               arm,msi-num-spis = <16>;
-                       };
-               };
-
-               cci@65590000 {
-                       compatible = "arm,cci-400";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       reg = <0x65590000 0x1000>;
-                       ranges = <0 0x65590000 0x10000>;
-
-                       pmu@9000 {
-                               compatible = "arm,cci-400-pmu,r1",
-                                            "arm,cci-400-pmu";
-                               reg = <0x9000 0x4000>;
-                               interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>;
-                       };
-               };
-
-               usbdrd_phy: phy@66000960 {
-                       #phy-cells = <0>;
-                       compatible = "brcm,ns2-drd-phy";
-                       reg = <0x66000960 0x24>,
-                             <0x67012800 0x4>,
-                             <0x6501d148 0x4>,
-                             <0x664d0700 0x4>;
-                       reg-names = "icfg", "rst-ctrl",
-                                   "crmu-ctrl", "usb2-strap";
-                       id-gpios = <&gpio_g 30 0>;
-                       vbus-gpios = <&gpio_g 31 0>;
-                       status = "disabled";
-               };
-
-               pwm: pwm@66010000 {
-                       compatible = "brcm,iproc-pwm";
-                       reg = <0x66010000 0x28>;
-                       clocks = <&osc>;
-                       #pwm-cells = <3>;
-                       status = "disabled";
-               };
-
-               mdio_mux_iproc: mdio-mux@6602023c {
-                       compatible = "brcm,mdio-mux-iproc";
-                       reg = <0x6602023c 0x14>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       mdio@0 {
-                               reg = <0x0>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pci_phy0: pci-phy@0 {
-                                       compatible = "brcm,ns2-pcie-phy";
-                                       reg = <0x0>;
-                                       #phy-cells = <0>;
-                                       status = "disabled";
-                               };
-                       };
-
-                       mdio@7 {
-                               reg = <0x7>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               pci_phy1: pci-phy@0 {
-                                       compatible = "brcm,ns2-pcie-phy";
-                                       reg = <0x0>;
-                                       #phy-cells = <0>;
-                                       status = "disabled";
-                               };
-                       };
-
-                       mdio@10 {
-                               reg = <0x10>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                       };
-               };
-
-               timer0: timer@66030000 {
-                       compatible = "arm,sp804", "arm,primecell";
-                       reg = <0x66030000 0x1000>;
-                       interrupts = <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>,
-                                <&iprocslow>,
-                                <&iprocslow>;
-                       clock-names = "timer1", "timer2", "apb_pclk";
-               };
-
-               timer1: timer@66040000 {
-                       compatible = "arm,sp804", "arm,primecell";
-                       reg = <0x66040000 0x1000>;
-                       interrupts = <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>,
-                                <&iprocslow>,
-                                <&iprocslow>;
-                       clock-names = "timer1", "timer2", "apb_pclk";
-               };
-
-               timer2: timer@66050000 {
-                       compatible = "arm,sp804", "arm,primecell";
-                       reg = <0x66050000 0x1000>;
-                       interrupts = <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>,
-                                <&iprocslow>,
-                                <&iprocslow>;
-                       clock-names = "timer1", "timer2", "apb_pclk";
-               };
-
-               timer3: timer@66060000 {
-                       compatible = "arm,sp804", "arm,primecell";
-                       reg = <0x66060000 0x1000>;
-                       interrupts = <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>,
-                                <&iprocslow>,
-                                <&iprocslow>;
-                       clock-names = "timer1", "timer2", "apb_pclk";
-               };
-
-               i2c0: i2c@66080000 {
-                       compatible = "brcm,iproc-i2c";
-                       reg = <0x66080000 0x100>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <GIC_SPI 394 IRQ_TYPE_NONE>;
-                       clock-frequency = <100000>;
-                       status = "disabled";
-               };
-
-               wdt0: watchdog@66090000 {
-                       compatible = "arm,sp805", "arm,primecell";
-                       reg = <0x66090000 0x1000>;
-                       interrupts = <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>, <&iprocslow>;
-                       clock-names = "wdogclk", "apb_pclk";
-               };
-
-               gpio_g: gpio@660a0000 {
-                       compatible = "brcm,iproc-gpio";
-                       reg = <0x660a0000 0x50>;
-                       ngpios = <32>;
-                       #gpio-cells = <2>;
-                       gpio-controller;
-                       interrupt-controller;
-                       interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>;
-               };
-
-               i2c1: i2c@660b0000 {
-                       compatible = "brcm,iproc-i2c";
-                       reg = <0x660b0000 0x100>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <GIC_SPI 395 IRQ_TYPE_NONE>;
-                       clock-frequency = <100000>;
-                       status = "disabled";
-               };
-
-               uart0: serial@66100000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x66100000 0x100>;
-                       interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart1: serial@66110000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x66110000 0x100>;
-                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart2: serial@66120000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x66120000 0x100>;
-                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       status = "disabled";
-               };
-
-               uart3: serial@66130000 {
-                       compatible = "snps,dw-apb-uart";
-                       reg = <0x66130000 0x100>;
-                       interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>;
-                       reg-shift = <2>;
-                       reg-io-width = <4>;
-                       clocks = <&osc>;
-                       status = "disabled";
-               };
-
-               ssp0: ssp@66180000 {
-                       compatible = "arm,pl022", "arm,primecell";
-                       reg = <0x66180000 0x1000>;
-                       interrupts = <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>, <&iprocslow>;
-                       clock-names = "spiclk", "apb_pclk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-               };
-
-               ssp1: ssp@66190000 {
-                       compatible = "arm,pl022", "arm,primecell";
-                       reg = <0x66190000 0x1000>;
-                       interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&iprocslow>, <&iprocslow>;
-                       clock-names = "spiclk", "apb_pclk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-               };
-
-               hwrng: hwrng@66220000 {
-                       compatible = "brcm,iproc-rng200";
-                       reg = <0x66220000 0x28>;
-               };
-
-               sata_phy: sata_phy@663f0100 {
-                       compatible = "brcm,iproc-ns2-sata-phy";
-                       reg = <0x663f0100 0x1f00>,
-                             <0x663f004c 0x10>;
-                       reg-names = "phy", "phy-ctrl";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       sata_phy0: sata-phy@0 {
-                               reg = <0>;
-                               #phy-cells = <0>;
-                               status = "disabled";
-                       };
-
-                       sata_phy1: sata-phy@1 {
-                               reg = <1>;
-                               #phy-cells = <0>;
-                               status = "disabled";
-                       };
-               };
-
-               sata: ahci@663f2000 {
-                       compatible = "brcm,iproc-ahci", "generic-ahci";
-                       reg = <0x663f2000 0x1000>;
-                       dma-coherent;
-                       reg-names = "ahci";
-                       interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-
-                       sata0: sata-port@0 {
-                               reg = <0>;
-                               phys = <&sata_phy0>;
-                               phy-names = "sata-phy";
-                       };
-
-                       sata1: sata-port@1 {
-                               reg = <1>;
-                               phys = <&sata_phy1>;
-                               phy-names = "sata-phy";
-                       };
-               };
-
-               sdio0: sdhci@66420000 {
-                       compatible = "brcm,sdhci-iproc-cygnus";
-                       reg = <0x66420000 0x100>;
-                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>;
-                       dma-coherent;
-                       bus-width = <8>;
-                       clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
-                       status = "disabled";
-               };
-
-               sdio1: sdhci@66430000 {
-                       compatible = "brcm,sdhci-iproc-cygnus";
-                       reg = <0x66430000 0x100>;
-                       interrupts = <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
-                       dma-coherent;
-                       bus-width = <8>;
-                       clocks = <&genpll_sw BCM_NS2_GENPLL_SW_SDIO_CLK>;
-                       status = "disabled";
-               };
-
-               nand: nand@66460000 {
-                       compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
-                       reg = <0x66460000 0x600>,
-                             <0x67015408 0x600>,
-                             <0x66460f00 0x20>;
-                       reg-names = "nand", "iproc-idm", "iproc-ext";
-                       interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       brcm,nand-has-wp;
-               };
-
-               qspi: spi@66470200 {
-                       compatible = "brcm,spi-bcm-qspi", "brcm,spi-ns2-qspi";
-                       reg = <0x66470200 0x184>,
-                               <0x66470000 0x124>,
-                               <0x67017408 0x004>,
-                               <0x664703a0 0x01c>;
-                       reg-names = "mspi", "bspi", "intr_regs",
-                               "intr_status_reg";
-                       interrupts = <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "spi_l1_intr";
-                       clocks = <&iprocmed>;
-                       clock-names = "iprocmed";
-                       num-cs = <2>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-       };
-};
index 5dca7d10253bb15bd1657f199889fb48cee76c02..8862ec907fd8e9564aa9d8e5ed4aba173f6a2623 100644 (file)
              <0x00000008 0x80000000 0x1 0x80000000>; /* 6G @ 34G */
 };
 
+&sata0 {
+       status = "okay";
+};
+
+&sata_phy0{
+       status = "okay";
+};
+
+&sata1 {
+       status = "okay";
+};
+
+&sata_phy1{
+       status = "okay";
+};
+
+&sata2 {
+       status = "okay";
+};
+
+&sata_phy2{
+       status = "okay";
+};
+
+&sata3 {
+       status = "okay";
+};
+
+&sata_phy3{
+       status = "okay";
+};
+
+&sata4 {
+       status = "okay";
+};
+
+&sata_phy4{
+       status = "okay";
+};
+
+&sata5 {
+       status = "okay";
+};
+
+&sata_phy5{
+       status = "okay";
+};
+
+&sata6 {
+       status = "okay";
+};
+
+&sata_phy6{
+       status = "okay";
+};
+
+&sata7 {
+       status = "okay";
+};
+
+&sata_phy7{
+       status = "okay";
+};
+
+&mdio_mux_iproc {
+       mdio@10 {
+               gphy0: eth-phy@10 {
+                       reg = <0x10>;
+               };
+       };
+};
+
 &uart1 {
        status = "okay";
 };
        };
 };
 
+&enet {
+       phy-mode = "rgmii-id";
+       phy-handle = <&gphy0>;
+       status = "okay";
+};
+
 &nand {
        status = "ok";
        nandcs@0 {
index 5671669ba34876588f6fae34fd5a711686d1d038..eb6f08cdbd796c3d764393f9e2e70db2129b0e28 100644 (file)
        model = "Stingray Combo SVK (BCM958742K)";
 };
 
+&gphy0 {
+       enet-phy-lane-swap;
+};
+
 &uart2 {
        status = "okay";
 };
index 6ebe399fda6a7fa01091e8d6b6cb78b2d6c122af..5084b037320fd9cb65133ca929517062a245af3b 100644 (file)
@@ -38,3 +38,7 @@
        compatible = "brcm,bcm958742t", "brcm,stingray";
        model = "Stingray SST100 (BCM958742T)";
 };
+
+&gphy0 {
+       enet-phy-lane-swap;
+};
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi
new file mode 100644 (file)
index 0000000..8bf1dc6
--- /dev/null
@@ -0,0 +1,118 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016-2017 Broadcom.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+       fs4: fs4 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x67000000 0x00800000>;
+
+               crypto_mbox: crypto_mbox@00000000 {
+                       compatible = "brcm,iproc-flexrm-mbox";
+                       reg = <0x00000000 0x200000>;
+                       msi-parent = <&gic_its 0x4100>;
+                       #mbox-cells = <3>;
+                       dma-coherent;
+               };
+
+               raid_mbox: raid_mbox@00400000 {
+                       compatible = "brcm,iproc-flexrm-mbox";
+                       reg = <0x00400000 0x200000>;
+                       dma-coherent;
+                       msi-parent = <&gic_its 0x4300>;
+                       #mbox-cells = <3>;
+               };
+
+               raid0: raid@0 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 0 0x1 0xff00>,
+                                <&raid_mbox 1 0x1 0xff00>,
+                                <&raid_mbox 2 0x1 0xff00>,
+                                <&raid_mbox 3 0x1 0xff00>;
+               };
+
+               raid1: raid@1 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 4 0x1 0xff00>,
+                                <&raid_mbox 5 0x1 0xff00>,
+                                <&raid_mbox 6 0x1 0xff00>,
+                                <&raid_mbox 7 0x1 0xff00>;
+               };
+
+               raid2: raid@2 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 8 0x1 0xff00>,
+                                <&raid_mbox 9 0x1 0xff00>,
+                                <&raid_mbox 10 0x1 0xff00>,
+                                <&raid_mbox 11 0x1 0xff00>;
+               };
+
+               raid3: raid@3 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 12 0x1 0xff00>,
+                                <&raid_mbox 13 0x1 0xff00>,
+                                <&raid_mbox 14 0x1 0xff00>,
+                                <&raid_mbox 15 0x1 0xff00>;
+               };
+
+               raid4: raid@4 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 16 0x1 0xff00>,
+                                <&raid_mbox 17 0x1 0xff00>,
+                                <&raid_mbox 18 0x1 0xff00>,
+                                <&raid_mbox 19 0x1 0xff00>;
+               };
+
+               raid5: raid@5 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 20 0x1 0xff00>,
+                                <&raid_mbox 21 0x1 0xff00>,
+                                <&raid_mbox 22 0x1 0xff00>,
+                                <&raid_mbox 23 0x1 0xff00>;
+               };
+
+               raid6: raid@6 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 24 0x1 0xff00>,
+                                <&raid_mbox 25 0x1 0xff00>,
+                                <&raid_mbox 26 0x1 0xff00>,
+                                <&raid_mbox 27 0x1 0xff00>;
+               };
+
+               raid7: raid@7 {
+                       compatible = "brcm,iproc-sba-v2";
+                       mboxes = <&raid_mbox 28 0x1 0xff00>,
+                                <&raid_mbox 29 0x1 0xff00>,
+                                <&raid_mbox 30 0x1 0xff00>,
+                                <&raid_mbox 31 0x1 0xff00>;
+               };
+       };
diff --git a/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi b/arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi
new file mode 100644 (file)
index 0000000..a774709
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ *  BSD LICENSE
+ *
+ *  Copyright(c) 2016-2017 Broadcom.  All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in
+ *      the documentation and/or other materials provided with the
+ *      distribution.
+ *    * Neither the name of Broadcom nor the names of its
+ *      contributors may be used to endorse or promote products derived
+ *      from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+       sata {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x0 0x67d00000 0x00800000>;
+
+               sata0: ahci@00210000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00210000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata0_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata0_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy0: sata_phy@00212100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00212100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata0_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata1: ahci@00310000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00310000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata1_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata1_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy1: sata_phy@00312100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00312100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata1_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata2: ahci@00120000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00120000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata2_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata2_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy2: sata_phy@00122100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00122100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata2_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata3: ahci@00130000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00130000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata3_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata3_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy3: sata_phy@00132100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00132100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata3_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata4: ahci@00330000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00330000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata4_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata4_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy4: sata_phy@00332100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00332100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata4_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata5: ahci@00400000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00400000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata5_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata5_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy5: sata_phy@00402100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00402100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata5_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata6: ahci@00410000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00410000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata6_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata6_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy6: sata_phy@00412100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00412100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata6_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+
+               sata7: ahci@00420000 {
+                       compatible = "brcm,iproc-ahci", "generic-ahci";
+                       reg = <0x00420000 0x1000>;
+                       reg-names = "ahci";
+                       interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata7_port0: sata-port@0 {
+                               reg = <0>;
+                               phys = <&sata7_phy0>;
+                               phy-names = "sata-phy";
+                       };
+               };
+
+               sata_phy7: sata_phy@00422100 {
+                       compatible = "brcm,iproc-sr-sata-phy";
+                       reg = <0x00422100 0x1000>;
+                       reg-names = "phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sata7_phy0: sata-phy@0 {
+                               reg = <0>;
+                               #phy-cells = <0>;
+                       };
+               };
+       };
index 49933cf16c92c5be6e138eff6110910395a4b287..e6f75c633623cf45b9efc67844149551eb343e83 100644 (file)
                #size-cells = <1>;
                ranges = <0x0 0x0 0x61000000 0x05000000>;
 
+               ccn: ccn@00000000 {
+                       compatible = "arm,ccn-502";
+                       reg = <0x00000000 0x900000>;
+                       interrupts = <GIC_SPI 799 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                gic: interrupt-controller@02c00000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                };
        };
 
+       #include "stingray-fs4.dtsi"
+       #include "stingray-sata.dtsi"
+
        hsls {
                compatible = "simple-bus";
                #address-cells = <1>;
 
                #include "stingray-pinctrl.dtsi"
 
+               mdio_mux_iproc: mdio-mux@0002023c {
+                       compatible = "brcm,mdio-mux-iproc";
+                       reg = <0x0002023c 0x14>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       mdio@0 { /* PCIe serdes */
+                               reg = <0x0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       mdio@2 { /* SATA */
+                               reg = <0x2>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       mdio@3 { /* USB */
+                               reg = <0x3>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       mdio@10 { /* RGMII */
+                               reg = <0x10>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
                pwm: pwm@00010000 {
                        compatible = "brcm,iproc-pwm";
                        reg = <0x00010000 0x1000>;
                        status = "disabled";
                };
 
+               timer0: timer@00030000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00030000 0x1000>;
+                       interrupts = <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
+               timer1: timer@00040000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00040000 0x1000>;
+                       interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+               };
+
+               timer2: timer@00050000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00050000 0x1000>;
+                       interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
+               timer3: timer@00060000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00060000 0x1000>;
+                       interrupts = <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
+               timer4: timer@00070000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00070000 0x1000>;
+                       interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
+               timer5: timer@00080000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00080000 0x1000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
+               timer6: timer@00090000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x00090000 0x1000>;
+                       interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
+               timer7: timer@000a0000 {
+                       compatible = "arm,sp804", "arm,primecell";
+                       reg = <0x000a0000 0x1000>;
+                       interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&hsls_25m_div2_clk>,
+                                <&hsls_25m_div2_clk>,
+                                <&hsls_div4_clk>;
+                       clock-names = "timer1", "timer2", "apb_pclk";
+                       status = "disabled";
+               };
+
                i2c0: i2c@000b0000 {
                        compatible = "brcm,iproc-i2c";
                        reg = <0x000b0000 0x100>;
                        iommus = <&smmu 0x6000 0x0000>;
                };
 
+               enet: ethernet@00340000{
+                       compatible = "brcm,amac";
+                       reg = <0x00340000 0x1000>;
+                       reg-names = "amac_base";
+                       dma-coherent;
+                       interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;
+                       status= "disabled";
+               };
+
                nand: nand@00360000 {
                        compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
                        reg = <0x00360000 0x600>,
index 105b2938082fb68539e607b003a0980a05184681..297597442c44217e0f366995314f6c458ca3c7a1 100644 (file)
        samsung,pll-clock-frequency = <24000000>;
        pinctrl-names = "default";
        pinctrl-0 = <&te_irq>;
-
-       ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@1 {
-                       reg = <1>;
-
-                       dsi_out: endpoint {
-                               samsung,burst-clock-frequency = <512000000>;
-                               samsung,esc-clock-frequency = <16000000>;
-                       };
-               };
-       };
 };
 
 &hdmi {
 
 &mshc_0 {
        status = "okay";
-       num-slots = <1>;
        mmc-hs200-1_8v;
        mmc-hs400-1_8v;
        cap-mmc-highspeed;
 
 &mshc_2 {
        status = "okay";
-       num-slots = <1>;
        cap-sd-highspeed;
        disable-wp;
        cd-gpios = <&gpa2 4 GPIO_ACTIVE_HIGH>;
        status = "okay";
 };
 
-&usbdrd_dwc3_0 {
+&usbdrd_dwc3 {
        dr_mode = "otg";
+       extcon = <&muic>;
 };
 
 &usbdrd30_phy {
index 727f36abf3d478d1bd2b86fe09fbe535705401ff..7fe994b750dab050b5a5c834259812acff641705 100644 (file)
                        ranges;
                        status = "disabled";
 
-                       dwc3@15400000 {
+                       usbdrd_dwc3: dwc3@15400000 {
                                compatible = "snps,dwc3";
                                reg = <0x15400000 0x10000>;
                                interrupts = <GIC_SPI 231 IRQ_TYPE_LEVEL_HIGH>;
                        ranges;
                        status = "disabled";
 
-                       usbdrd_dwc3_0: dwc3@15a00000 {
+                       usbhost_dwc3: dwc3@15a00000 {
                                compatible = "snps,dwc3";
                                reg = <0x15a00000 0x10000>;
                                interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
index e5892bb0ae6e55ccf5ba0cc7b30b7b616fea6413..4a8b1fb51243c4a628fd3a27dd7b82ec9ecb3e78 100644 (file)
 
 &mmc_0 {
        status = "okay";
-       num-slots = <1>;
        cap-mmc-highspeed;
        mmc-hs200-1_8v;
        non-removable;
 
 &mmc_2 {
        status = "okay";
-       num-slots = <1>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
        clock-frequency = <400000000>;
index b1554cbd2c54f4ca08be37f7add0370758b288d9..df83915d6ea629509b829d82061bd7c6019e790c 100644 (file)
                                 <&clockgen 4 3>;
                };
 
+               usb0: usb3@2f00000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x0 0x2f00000 0x0 0x10000>;
+                       interrupts = <0 60 0x4>;
+                       dr_mode = "host";
+                       snps,quirk-frame-length-adjustment = <0x20>;
+                       snps,dis_rxdet_inp3_quirk;
+               };
+
                sata: sata@3200000 {
                        compatible = "fsl,ls1012a-ahci", "fsl,ls1043a-ahci";
                        reg = <0x0 0x3200000 0x0 0x10000>,
                        dma-coherent;
                        status = "disabled";
                };
+
+               usb1: usb2@8600000 {
+                       compatible = "fsl-usb2-dr-v2.5", "fsl-usb2-dr";
+                       reg = <0x0 0x8600000 0x0 0x1000>;
+                       interrupts = <0 139 0x4>;
+                       dr_mode = "host";
+                       phy_type = "ulpi";
+               };
        };
 };
index 213abb72de93e90891b42263adf06854fa1f9fdd..0f6fcda36b9e03279a6a232d4b47d2a31633291b 100644 (file)
@@ -49,7 +49,7 @@
 #include "fsl-ls1088a.dtsi"
 
 / {
-       model = "L1088A RDB Board";
+       model = "LS1088A RDB Board";
        compatible = "fsl,ls1088a-rdb", "fsl,ls1088a";
 };
 
index c144d06a6e33150c313580b7144d6ededa08cf06..33797b3736744bbeee590014a3342b514758a0b8 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               crypto = &crypto;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -62,6 +66,7 @@
                        compatible = "arm,cortex-a53";
                        reg = <0x0>;
                        clocks = <&clockgen 1 0>;
+                       cpu-idle-states = <&CPU_PH20>;
                        #cooling-cells = <2>;
                };
 
@@ -70,6 +75,7 @@
                        compatible = "arm,cortex-a53";
                        reg = <0x1>;
                        clocks = <&clockgen 1 0>;
+                       cpu-idle-states = <&CPU_PH20>;
                };
 
                cpu2: cpu@2 {
@@ -77,6 +83,7 @@
                        compatible = "arm,cortex-a53";
                        reg = <0x2>;
                        clocks = <&clockgen 1 0>;
+                       cpu-idle-states = <&CPU_PH20>;
                };
 
                cpu3: cpu@3 {
@@ -84,6 +91,7 @@
                        compatible = "arm,cortex-a53";
                        reg = <0x3>;
                        clocks = <&clockgen 1 0>;
+                       cpu-idle-states = <&CPU_PH20>;
                };
 
                cpu4: cpu@100 {
@@ -91,6 +99,7 @@
                        compatible = "arm,cortex-a53";
                        reg = <0x100>;
                        clocks = <&clockgen 1 1>;
+                       cpu-idle-states = <&CPU_PH20>;
                        #cooling-cells = <2>;
                };
 
                        compatible = "arm,cortex-a53";
                        reg = <0x101>;
                        clocks = <&clockgen 1 1>;
+                       cpu-idle-states = <&CPU_PH20>;
                };
 
                cpu6: cpu@102 {
                        compatible = "arm,cortex-a53";
                        reg = <0x102>;
                        clocks = <&clockgen 1 1>;
+                       cpu-idle-states = <&CPU_PH20>;
                };
 
                cpu7: cpu@103 {
                        compatible = "arm,cortex-a53";
                        reg = <0x103>;
                        clocks = <&clockgen 1 1>;
+                       cpu-idle-states = <&CPU_PH20>;
+               };
+
+               CPU_PH20: cpu-ph20 {
+                       compatible = "arm,idle-state";
+                       idle-state-name = "PH20";
+                       arm,psci-suspend-param = <0x00010000>;
+                       entry-latency-us = <1000>;
+                       exit-latency-us = <1000>;
+                       min-residency-us = <3000>;
                };
        };
 
                             <1 10 IRQ_TYPE_LEVEL_LOW>;/* Hypervisor PPI */
        };
 
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
        sysclk: sysclk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                        dma-coherent;
                        status = "disabled";
                };
+
+               crypto: crypto@8000000 {
+                       compatible = "fsl,sec-v5.0", "fsl,sec-v4.0";
+                       fsl,sec-era = <8>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x00 0x8000000 0x100000>;
+                       reg = <0x00 0x8000000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+
+                       sec_jr0: jr@10000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x10000 0x10000>;
+                               interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       sec_jr1: jr@20000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x20000 0x10000>;
+                               interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       sec_jr2: jr@30000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x30000 0x10000>;
+                               interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       sec_jr3: jr@40000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x40000 0x10000>;
+                               interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
        };
 
 };
index ed209cd57283b66cc8d69640e696d9b3a6ee2935..3c99608b9b45d25b0b2f03ccb0bf4b69cfd3c9de 100644 (file)
        model = "Freescale Layerscape 2080a QDS Board";
        compatible = "fsl,ls2080a-qds", "fsl,ls2080a";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-       };
-
        chosen {
                stdout-path = "serial0:115200n8";
        };
index 67ec3f9c81a14848255bed4d2f90dc00581d59f7..a4e7de9f70d8553a05a567589bdf0be6098a674c 100644 (file)
        model = "Freescale Layerscape 2080a RDB Board";
        compatible = "fsl,ls2080a-rdb", "fsl,ls2080a";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-       };
-
        chosen {
                stdout-path = "serial1:115200n8";
        };
index 3ee718f0aaf85577866203e30189420934f8c5f9..fbbb73e571c06f0db11909372958fa3ba0a6d334 100644 (file)
        model = "Freescale Layerscape 2080a software Simulator model";
        compatible = "fsl,ls2080a-simu", "fsl,ls2080a";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-       };
-
        ethernet@2210000 {
                compatible = "smsc,lan91c111";
                reg = <0x0 0x2210000 0x0 0x100>;
index d789c6814e6a57fd6e7b0d1e8e4700fd8ce2e7a7..8d739301e7b8acbb34951d2b843553bcc101f1e8 100644 (file)
@@ -53,6 +53,7 @@
                compatible = "arm,cortex-a57";
                reg = <0x0>;
                clocks = <&clockgen 1 0>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster0_l2>;
                #cooling-cells = <2>;
        };
@@ -62,6 +63,7 @@
                compatible = "arm,cortex-a57";
                reg = <0x1>;
                clocks = <&clockgen 1 0>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster0_l2>;
        };
 
@@ -70,6 +72,7 @@
                compatible = "arm,cortex-a57";
                reg = <0x100>;
                clocks = <&clockgen 1 1>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster1_l2>;
                #cooling-cells = <2>;
        };
@@ -79,6 +82,7 @@
                compatible = "arm,cortex-a57";
                reg = <0x101>;
                clocks = <&clockgen 1 1>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster1_l2>;
        };
 
@@ -87,6 +91,7 @@
                compatible = "arm,cortex-a57";
                reg = <0x200>;
                clocks = <&clockgen 1 2>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster2_l2>;
                #cooling-cells = <2>;
        };
                compatible = "arm,cortex-a57";
                reg = <0x201>;
                clocks = <&clockgen 1 2>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster2_l2>;
        };
 
                reg = <0x300>;
                clocks = <&clockgen 1 3>;
                next-level-cache = <&cluster3_l2>;
+               cpu-idle-states = <&CPU_PW20>;
                #cooling-cells = <2>;
        };
 
                compatible = "arm,cortex-a57";
                reg = <0x301>;
                clocks = <&clockgen 1 3>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster3_l2>;
        };
 
        cluster3_l2: l2-cache3 {
                compatible = "cache";
        };
+
+       CPU_PW20: cpu-pw20 {
+               compatible = "arm,idle-state";
+               idle-state-name = "PW20";
+               arm,psci-suspend-param = <0x00010000>;
+               entry-latency-us = <2000>;
+               exit-latency-us = <2000>;
+               min-residency-us = <6000>;
+       };
 };
 
 &pcie1 {
index 4a1df5ce3229c55d3f8ab62622792d6f9bf88219..eaee5b1c3a448ac95952b6548c6a2d5ac5ddfc26 100644 (file)
        model = "Freescale Layerscape 2088A QDS Board";
        compatible = "fsl,ls2088a-qds", "fsl,ls2088a";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-       };
-
        chosen {
                stdout-path = "serial0:115200n8";
        };
index a76d4b4debd16cf7ff887f1d5d5f08213a4ea767..c411442cac62cb2e1309a9759d5959050d247659 100644 (file)
        model = "Freescale Layerscape 2088A RDB Board";
        compatible = "fsl,ls2088a-rdb", "fsl,ls2088a";
 
-       aliases {
-               serial0 = &serial0;
-               serial1 = &serial1;
-       };
-
        chosen {
                stdout-path = "serial1:115200n8";
        };
index 5c695c6580566020a647f7bbe80efef7df227131..6aa319dae396ffffc135b4e9af9e893029dd1ba7 100644 (file)
@@ -53,6 +53,7 @@
                compatible = "arm,cortex-a72";
                reg = <0x0>;
                clocks = <&clockgen 1 0>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster0_l2>;
                #cooling-cells = <2>;
        };
@@ -62,6 +63,7 @@
                compatible = "arm,cortex-a72";
                reg = <0x1>;
                clocks = <&clockgen 1 0>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster0_l2>;
        };
 
@@ -70,6 +72,7 @@
                compatible = "arm,cortex-a72";
                reg = <0x100>;
                clocks = <&clockgen 1 1>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster1_l2>;
                #cooling-cells = <2>;
        };
@@ -79,6 +82,7 @@
                compatible = "arm,cortex-a72";
                reg = <0x101>;
                clocks = <&clockgen 1 1>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster1_l2>;
        };
 
@@ -88,6 +92,7 @@
                reg = <0x200>;
                clocks = <&clockgen 1 2>;
                next-level-cache = <&cluster2_l2>;
+               cpu-idle-states = <&CPU_PW20>;
                #cooling-cells = <2>;
        };
 
                compatible = "arm,cortex-a72";
                reg = <0x201>;
                clocks = <&clockgen 1 2>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster2_l2>;
        };
 
                compatible = "arm,cortex-a72";
                reg = <0x300>;
                clocks = <&clockgen 1 3>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster3_l2>;
                #cooling-cells = <2>;
        };
                compatible = "arm,cortex-a72";
                reg = <0x301>;
                clocks = <&clockgen 1 3>;
+               cpu-idle-states = <&CPU_PW20>;
                next-level-cache = <&cluster3_l2>;
        };
 
        cluster3_l2: l2-cache3 {
                compatible = "cache";
        };
+
+       CPU_PW20: cpu-pw20 {
+               compatible = "arm,idle-state";
+               idle-state-name = "PW20";
+               arm,psci-suspend-param = <0x00010000>;
+               entry-latency-us = <2000>;
+               exit-latency-us = <2000>;
+               min-residency-us = <6000>;
+       };
 };
 
 &pcie1 {
index 94cdd30450371ada8dec5dd0fd1ef398b30d30d0..4fb9a0966a84f2db6c51861c5087ccb5346c49c9 100644 (file)
@@ -46,6 +46,7 @@
  */
 
 #include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
 
 / {
        compatible = "fsl,ls2080a";
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               crypto = &crypto;
+               serial0 = &serial0;
+               serial1 = &serial1;
+       };
+
        cpu: cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
        };
 
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                        clock-names = "apb_pclk", "wdog_clk";
                };
 
+               crypto: crypto@8000000 {
+                       compatible = "fsl,sec-v5.0", "fsl,sec-v4.0";
+                       fsl,sec-era = <8>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x00 0x8000000 0x100000>;
+                       reg = <0x00 0x8000000 0x0 0x100000>;
+                       interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
+
+                       sec_jr0: jr@10000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x10000 0x10000>;
+                               interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       sec_jr1: jr@20000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x20000 0x10000>;
+                               interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       sec_jr2: jr@30000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x30000 0x10000>;
+                               interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       sec_jr3: jr@40000 {
+                               compatible = "fsl,sec-v5.0-job-ring",
+                                            "fsl,sec-v4.0-job-ring";
+                               reg        = <0x40000 0x10000>;
+                               interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
                fsl_mc: fsl-mc@80c000000 {
                        compatible = "fsl,qoriq-mc";
                        reg = <0x00000008 0x0c000000 0 0x40>,    /* MC portal base */
index 6609b0fe7a8b48ec02dba0a537731fa02b8061f5..fd4705c451e2697716daea41ff606aabb3bd39fc 100644 (file)
                reg = <0x0 0x0 0x0 0x0>;
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               ramoops@32000000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0x32000000 0x0 0x00100000>;
+                       record-size     = <0x00020000>;
+                       console-size    = <0x00020000>;
+                       ftrace-size     = <0x00020000>;
+               };
+       };
+
+       reboot-mode-syscon@32100000 {
+               compatible = "syscon", "simple-mfd";
+               reg = <0x0 0x32100000 0x0 0x00001000>;
+
+               reboot-mode {
+                       compatible = "syscon-reboot-mode";
+                       offset = <0x0>;
+
+                       mode-normal     = <0x77665501>;
+                       mode-bootloader = <0x77665500>;
+                       mode-recovery   = <0x77665502>;
+               };
+       };
+
        keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                startup-delay-us = <70000>;
                enable-active-high;
        };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+       };
 };
 
 &i2c0 {
        bluetooth {
                compatible = "ti,wl1837-st";
                enable-gpios = <&gpio15 6 GPIO_ACTIVE_HIGH>;
-               max-speed = <921600>;
+               max-speed = <3000000>;
        };
 };
 
index c6a1961e8d55ecb9bdb07e8696fe9a755c8d21e8..b7a90d632959d95b0dee0cc93e37037700194b2d 100644 (file)
@@ -58,6 +58,8 @@
                        device_type = "cpu";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       next-level-cache = <&A53_L2>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
                };
 
                cpu1: cpu@1 {
@@ -65,6 +67,8 @@
                        device_type = "cpu";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       next-level-cache = <&A53_L2>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
                };
 
                cpu2: cpu@2 {
@@ -72,6 +76,8 @@
                        device_type = "cpu";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       next-level-cache = <&A53_L2>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
                };
 
                cpu3: cpu@3 {
@@ -79,6 +85,8 @@
                        device_type = "cpu";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       next-level-cache = <&A53_L2>;
+                       cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP_0>;
                };
 
                cpu4: cpu@100 {
                        device_type = "cpu";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
+                       next-level-cache = <&A73_L2>;
+                       cpu-idle-states = <
+                                       &CPU_NAP
+                                       &CPU_SLEEP
+                                       &CLUSTER_SLEEP_1
+                       >;
                };
 
                cpu5: cpu@101 {
                        device_type = "cpu";
                        reg = <0x0 0x101>;
                        enable-method = "psci";
+                       next-level-cache = <&A73_L2>;
+                       cpu-idle-states = <
+                                       &CPU_NAP
+                                       &CPU_SLEEP
+                                       &CLUSTER_SLEEP_1
+                       >;
                };
 
                cpu6: cpu@102 {
                        device_type = "cpu";
                        reg = <0x0 0x102>;
                        enable-method = "psci";
+                       next-level-cache = <&A73_L2>;
+                       cpu-idle-states = <
+                                       &CPU_NAP
+                                       &CPU_SLEEP
+                                       &CLUSTER_SLEEP_1
+                       >;
                };
 
                cpu7: cpu@103 {
                        device_type = "cpu";
                        reg = <0x0 0x103>;
                        enable-method = "psci";
+                       next-level-cache = <&A73_L2>;
+                       cpu-idle-states = <
+                                       &CPU_NAP
+                                       &CPU_SLEEP
+                                       &CLUSTER_SLEEP_1
+                       >;
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       CPU_NAP: cpu-nap {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x0000001>;
+                               entry-latency-us = <7>;
+                               exit-latency-us = <2>;
+                               min-residency-us = <15>;
+                       };
+
+                       CPU_SLEEP: cpu-sleep {
+                               compatible = "arm,idle-state";
+                               local-timer-stop;
+                               arm,psci-suspend-param = <0x0010000>;
+                               entry-latency-us = <40>;
+                               exit-latency-us = <70>;
+                               min-residency-us = <3000>;
+                       };
+
+                       CLUSTER_SLEEP_0: cluster-sleep-0 {
+                               compatible = "arm,idle-state";
+                               local-timer-stop;
+                               arm,psci-suspend-param = <0x1010000>;
+                               entry-latency-us = <500>;
+                               exit-latency-us = <5000>;
+                               min-residency-us = <20000>;
+                       };
+
+                       CLUSTER_SLEEP_1: cluster-sleep-1 {
+                               compatible = "arm,idle-state";
+                               local-timer-stop;
+                               arm,psci-suspend-param = <0x1010000>;
+                               entry-latency-us = <1000>;
+                               exit-latency-us = <5000>;
+                               min-residency-us = <20000>;
+                       };
+               };
+
+               A53_L2: l2-cache0 {
+                       compatible = "cache";
+               };
+
+               A73_L2: l2-cache1 {
+                       compatible = "cache";
                };
        };
 
                                         IRQ_TYPE_LEVEL_HIGH)>;
        };
 
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&cpu0>,
+                                    <&cpu1>,
+                                    <&cpu2>,
+                                    <&cpu3>,
+                                    <&cpu4>,
+                                    <&cpu5>,
+                                    <&cpu6>,
+                                    <&cpu7>;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupt-parent = <&gic>;
                        status = "disabled";
                };
 
+               dma0: dma@fdf30000 {
+                       compatible = "hisilicon,k3-dma-1.0";
+                       reg = <0x0 0xfdf30000 0x0 0x1000>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+                       dma-requests = <32>;
+                       dma-min-chan = <1>;
+                       interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&crg_ctrl HI3660_CLK_GATE_DMAC>;
+                       dma-no-cci;
+                       dma-type = "hi3660_dma";
+               };
+
                rtc0: rtc@fff04000 {
                        compatible = "arm,pl031", "arm,primecell";
                        reg = <0x0 0Xfff04000 0x0 0x1000>;
                        clock-names = "ciu", "biu";
                        clock-frequency = <3200000>;
                        resets = <&crg_rst 0x94 18>;
+                       reset-names = "reset";
                        cd-gpios = <&gpio25 3 0>;
                        hisilicon,peripheral-syscon = <&sctrl>;
                        pinctrl-names = "default";
                                 <&crg_ctrl HI3660_HCLK_GATE_SDIO0>;
                        clock-names = "ciu", "biu";
                        resets = <&crg_rst 0x94 20>;
+                       reset-names = "reset";
                        card-detect-delay = <200>;
                        supports-highspeed;
                        keep-power-in-suspend;
                                     &sdio_cfg_func>;
                        status = "disabled";
                };
+
+               watchdog0: watchdog@e8a06000 {
+                       compatible = "arm,sp805-wdt", "arm,primecell";
+                       reg = <0x0 0xe8a06000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&crg_ctrl HI3660_OSC32K>;
+                       clock-names = "apb_pclk";
+               };
+
+               watchdog1: watchdog@e8a07000 {
+                       compatible = "arm,sp805-wdt", "arm,primecell";
+                       reg = <0x0 0xe8a07000 0x0 0x1000>;
+                       interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&crg_ctrl HI3660_OSC32K>;
+                       clock-names = "apb_pclk";
+               };
        };
 };
index eacbe0db5bc2acebe98c16dd36d22fc996a59d7b..02a3aa4b2165d07e8af616998611923f60256ff9 100644 (file)
                        #clock-cells = <1>;
                };
 
+               acpu_sctrl: acpu_sctrl@f6504000 {
+                       compatible = "hisilicon,hi6220-acpu-sctrl", "syscon";
+                       reg = <0x0 0xf6504000 0x0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
                medianoc_ade: medianoc_ade@f4520000 {
                        compatible = "syscon";
                        reg = <0x0 0xf4520000 0x0 0x4000>;
                        dr_mode = "otg";
                        g-rx-fifo-size = <512>;
                        g-np-tx-fifo-size = <128>;
-                       g-tx-fifo-size = <128 128 128 128 128 128>;
+                       g-tx-fifo-size = <128 128 128 128 128 128 128 128
+                                          16  16  16  16  16  16  16>;
                        interrupts = <0 77 0x4>;
                };
 
index f5d7f0889b41db47ad784f668845b3e5218c6b84..fe7c16c3602593a9b572fef58bba730dbd1a9c73 100644 (file)
@@ -84,3 +84,7 @@
 &sas1 {
        status = "ok";
 };
+
+&p0_pcie2_a {
+       status = "ok";
+};
index 283d7b532e161742c3d1be58e5e6621f21bae51a..2c01a21c36656f9e55f110ec31ee4060724879c1 100644 (file)
                                     <637 1>,<638 1>,<639 1>;
                        status = "disabled";
                };
+
+               p0_pcie2_a: pcie@a00a0000 {
+                       compatible = "hisilicon,hip07-pcie-ecam";
+                       reg = <0 0xaf800000 0 0x800000>,
+                             <0 0xa00a0000 0 0x10000>;
+                       bus-range = <0xf8 0xff>;
+                       msi-map = <0xf800 &p0_its_dsa_a 0xf800 0x800>;
+                       msi-map-mask = <0xffff>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       device_type = "pci";
+                       dma-coherent;
+                       ranges = <0x02000000 0 0xa8000000 0 0xa8000000 0 0x77f0000
+                                 0x01000000 0 0 0 0xaf7f0000 0 0x10000>;
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0xf800 0 0 7>;
+                       interrupt-map = <0x0 0 0 1 &mbigen_pcie2_a 671 4
+                                        0x0 0 0 2 &mbigen_pcie2_a 671 4
+                                        0x0 0 0 3 &mbigen_pcie2_a 671 4
+                                        0x0 0 0 4 &mbigen_pcie2_a 671 4>;
+                       status = "disabled";
+               };
        };
 };
index 3e6ce6c15a7449aefd8bf753675de3a2e70ead39..6cff81eeaae2833829391a2b829115ede9a7860f 100644 (file)
@@ -8,6 +8,7 @@ dtb-$(CONFIG_ARCH_MVEBU) += armada-3720-espressobin.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-7040-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-db.dtb
 dtb-$(CONFIG_ARCH_MVEBU) += armada-8040-mcbin.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += armada-8080-db.dtb
 
 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
index e3a136ed77b00ce1d1a0f690c05426cb62783eb2..2ce52ba74f73bac47244aaa5896f29ed4b56596a 100644 (file)
@@ -45,6 +45,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
 #include "armada-372x.dtsi"
 
 / {
                device_type = "memory";
                reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
        };
+
+       vcc_sd_reg1: regulator {
+               compatible = "regulator-gpio";
+               regulator-name = "vcc_sd1";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+
+               gpios = <&gpionb 4 GPIO_ACTIVE_HIGH>;
+               gpios-states = <0>;
+               states = <1800000 0x1
+                         3300000 0x0>;
+               enable-active-high;
+       };
 };
 
 /* J9 */
        status = "okay";
 };
 
+/* J1 */
+&sdhci1 {
+       wp-inverted;
+       bus-width = <4>;
+       cd-gpios = <&gpionb 3 GPIO_ACTIVE_LOW>;
+       marvell,pad-type = "sd";
+       vqmmc-supply = <&vcc_sd_reg1>;
+       status = "okay";
+};
+
 /* Exported on the micro USB connector J5 through an FTDI */
 &uart0 {
        status = "okay";
        status = "okay";
 };
 
+/* J8 */
+&usb2 {
+       status = "okay";
+};
+
 &mdio {
        switch0: switch0@1 {
                compatible = "marvell,mv88e6085";
index 51763d674050cb27c32b0909c62a62724d5d429d..8c0cf7efac65242a50a8ac2b201f351c8c0ce2a6 100644 (file)
                             <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH>;
        };
 
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                                #interrupt-cells = <3>;
                                interrupt-controller;
                                reg = <0x1d00000 0x10000>, /* GICD */
-                                     <0x1d40000 0x40000>; /* GICR */
+                                     <0x1d40000 0x40000>, /* GICR */
+                                     <0x1d80000 0x2000>,  /* GICC */
+                                     <0x1d90000 0x2000>,  /* GICH */
+                                     <0x1da0000 0x20000>; /* GICV */
+                               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
                        };
                };
 
index 92c761c380d33c37f5d6070729b02c23a6d93752..9c3bdf87e5433f2a800eae0a2a1e32c8c924dd88 100644 (file)
@@ -44,6 +44,7 @@
  * Device Tree file for Marvell Armada 7040 Development board platform
  */
 
+#include <dt-bindings/gpio/gpio.h>
 #include "armada-7040.dtsi"
 
 / {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x80000000>;
        };
+
+       cpm_reg_usb3_0_vbus: cpm-usb3-0-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb3h0-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       cpm_reg_usb3_1_vbus: cpm-usb3-1-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb3h1-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       cpm_usb3_0_phy: cpm-usb3-0-phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&cpm_reg_usb3_0_vbus>;
+       };
+
+       cpm_usb3_1_phy: cpm-usb3-1-phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&cpm_reg_usb3_1_vbus>;
+       };
 };
 
 &i2c0 {
 &cpm_i2c0 {
        status = "okay";
        clock-frequency = <100000>;
+
+       expander0: pca9555@21 {
+               compatible = "nxp,pca9555";
+               pinctrl-names = "default";
+               gpio-controller;
+               #gpio-cells = <2>;
+               reg = <0x21>;
+       };
 };
 
 &cpm_spi1 {
 };
 
 &cpm_usb3_0 {
+       usb-phy = <&cpm_usb3_0_phy>;
        status = "okay";
 };
 
 &cpm_usb3_1 {
+       usb-phy = <&cpm_usb3_1_phy>;
        status = "okay";
 };
 
index 1e8f7242ed6ff97f7fe153ee7dc26fa1e950def4..0d7b2ae4661002e7443297f680511950c87bfd8f 100644 (file)
@@ -44,6 +44,7 @@
  * Device Tree file for Marvell Armada 8040 Development board platform
  */
 
+#include <dt-bindings/gpio/gpio.h>
 #include "armada-8040.dtsi"
 
 / {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x80000000>;
        };
+
+       cpm_reg_usb3_0_vbus: cpm-usb3-0-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "cpm-usb3h0-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       cpm_reg_usb3_1_vbus: cpm-usb3-1-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "cpm-usb3h1-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       cpm_usb3_0_phy: cpm-usb3-0-phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&cpm_reg_usb3_0_vbus>;
+       };
+
+       cpm_usb3_1_phy: cpm-usb3-1-phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&cpm_reg_usb3_1_vbus>;
+       };
+
+       cps_reg_usb3_0_vbus: cps-usb3-0-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "cps-usb3h0-vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&expander1 0 GPIO_ACTIVE_HIGH>;
+       };
+
+       cps_usb3_0_phy: cps-usb3-0-phy {
+               compatible = "usb-nop-xceiv";
+               vcc-supply = <&cps_reg_usb3_0_vbus>;
+       };
 };
 
 &i2c0 {
 &cpm_i2c0 {
        status = "okay";
        clock-frequency = <100000>;
+
+       /* U31 */
+       expander0: pca9555@21 {
+               compatible = "nxp,pca9555";
+               pinctrl-names = "default";
+               gpio-controller;
+               #gpio-cells = <2>;
+               reg = <0x21>;
+       };
+
+       /* U25 */
+       expander1: pca9555@25 {
+               compatible = "nxp,pca9555";
+               pinctrl-names = "default";
+               gpio-controller;
+               #gpio-cells = <2>;
+               reg = <0x25>;
+       };
+
 };
 
 /* CON4 on CP0 expansion */
 
 /* CON9 on CP0 expansion */
 &cpm_usb3_0 {
+       usb-phy = <&cpm_usb3_0_phy>;
        status = "okay";
 };
 
 /* CON10 on CP0 expansion */
 &cpm_usb3_1 {
+       usb-phy = <&cpm_usb3_1_phy>;
        status = "okay";
 };
 
 
 /* CON9 on CP1 expansion */
 &cps_usb3_0 {
+       usb-phy = <&cps_usb3_0_phy>;
        status = "okay";
 };
 
index 4968e731de612e3f781bed2760a0131cb5b42d55..acf5c7d16d79b2f07eedf4691a1fc820073c7ffc 100644 (file)
 
 #include "armada-8040.dtsi"
 
+#include <dt-bindings/gpio/gpio.h>
+
 / {
        model = "Marvell 8040 MACHIATOBin";
        compatible = "marvell,armada8040-mcbin", "marvell,armada8040",
                        "marvell,armada-ap806-quad", "marvell,armada-ap806";
 
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
        memory@00000000 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x80000000>;
 
        v_5v0_usb3_hst_vbus: regulator-usb3-vbus0 {
                compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&cpm_gpio2 15 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&cpm_xhci_vbus_pins>;
                regulator-name = "v_5v0_usb3_hst_vbus";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
-               /* actually GPIO controlled, but 8k has no GPIO support yet */
-               regulator-always-on;
                status = "okay";
        };
 
 
 &cpm_i2c0 {
        clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&cpm_i2c0_pins>;
        status = "okay";
 };
 
+&cpm_i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&cpm_i2c1_pins>;
+       status = "okay";
+
+       i2c-switch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+
+               sfpp0_i2c: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+               sfpp1_i2c: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               sfp_1g_i2c: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+       };
+};
+
 &cpm_mdio {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cpm_ge_mdio_pins>;
        status = "okay";
 
        ge_phy: ethernet-phy@0 {
        };
 };
 
+&cpm_pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cpm_pcie_pins>;
+       num-lanes = <4>;
+       num-viewport = <8>;
+       reset-gpio = <&cpm_gpio1 20 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&cpm_pinctrl {
+       cpm_ge_mdio_pins: ge-mdio-pins {
+               marvell,pins = "mpp32", "mpp34";
+               marvell,function = "ge";
+       };
+       cpm_i2c1_pins: i2c1-pins {
+               marvell,pins = "mpp35", "mpp36";
+               marvell,function = "i2c1";
+       };
+       cpm_i2c0_pins: i2c0-pins {
+               marvell,pins = "mpp37", "mpp38";
+               marvell,function = "i2c0";
+       };
+       cpm_xhci_vbus_pins: xhci0-vbus-pins {
+               marvell,pins = "mpp47";
+               marvell,function = "gpio";
+       };
+       cpm_pcie_pins: pcie-pins {
+               marvell,pins = "mpp52";
+               marvell,function = "gpio";
+       };
+       cpm_sdhci_pins: sdhci-pins {
+               marvell,pins = "mpp55", "mpp56", "mpp57", "mpp58", "mpp59",
+                              "mpp60", "mpp61";
+               marvell,function = "sdio";
+       };
+};
+
+&cpm_xmdio {
+       status = "okay";
+
+       phy0: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c45";
+               reg = <0>;
+       };
+
+       phy8: ethernet-phy@8 {
+               compatible = "ethernet-phy-ieee802.3-c45";
+               reg = <8>;
+       };
+};
+
+&cpm_ethernet {
+       status = "okay";
+};
+
+&cpm_eth0 {
+       status = "okay";
+       phy = <&phy0>;
+       phy-mode = "10gbase-kr";
+};
+
 &cpm_sata0 {
        /* CPM Lane 0 - U29 */
        status = "okay";
        /* U6 */
        broken-cd;
        bus-width = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&cpm_sdhci_pins>;
        status = "okay";
        vqmmc-supply = <&v_3_3>;
 };
        status = "okay";
 };
 
+&cps_eth0 {
+       status = "okay";
+       phy = <&phy8>;
+       phy-mode = "10gbase-kr";
+};
+
 &cps_eth1 {
        /* CPS Lane 0 - J5 (Gigabit RJ45) */
        status = "okay";
        phy-mode = "sgmii";
 };
 
+&cps_pinctrl {
+       cps_spi1_pins: spi1-pins {
+               marvell,pins = "mpp12", "mpp13", "mpp14", "mpp15", "mpp16";
+               marvell,function = "spi1";
+       };
+};
+
 &cps_sata0 {
        /* CPS Lane 1 - U32 */
        /* CPS Lane 3 - U31 */
 };
 
 &cps_spi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&cps_spi1_pins>;
        status = "okay";
 
        spi-flash@0 {
diff --git a/arch/arm64/boot/dts/marvell/armada-8080-db.dts b/arch/arm64/boot/dts/marvell/armada-8080-db.dts
new file mode 100644 (file)
index 0000000..707af83
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2017 Marvell Technology Group Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPLv2 or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Device Tree file for Marvell Armada-8080 Development board platform
+ */
+
+#include "armada-8080.dtsi"
+
+/ {
+       model = "Marvell 8080 board";
+       compatible = "marvell,armada-8080-db", "marvell,armada-8080",
+                    "marvell,armada-ap810-octa", "marvell,armada-ap810";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@00000000 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+};
+
+&uart0_ap0 {
+       clock-frequency = <384000>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/marvell/armada-8080.dtsi b/arch/arm64/boot/dts/marvell/armada-8080.dtsi
new file mode 100644 (file)
index 0000000..d5535b7
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2017 Marvell Technology Group Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPLv2 or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Device Tree file for Marvell Armada-8080 SoC, made of an AP810 OCTA.
+ */
+
+#include "armada-ap810-ap0-octa-core.dtsi"
+
+/ {
+       model = "Marvell 8080 board";
+       compatible = "marvell,armada-8080", "marvell,armada-ap810-octa",
+                               "marvell,armada-ap810";
+};
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
new file mode 100644 (file)
index 0000000..bf1b22b
--- /dev/null
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2017 Marvell Technology Group Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPLv2 or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Device Tree file for Marvell Armada AP810 OCTA cores.
+ */
+
+#include "armada-ap810-ap0.dtsi"
+
+/ {
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "marvell,armada-ap810-octa";
+
+               cpu@000 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x000>;
+                       enable-method = "psci";
+               };
+               cpu@001 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x001>;
+                       enable-method = "psci";
+               };
+               cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x100>;
+                       enable-method = "psci";
+               };
+               cpu@101 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x101>;
+                       enable-method = "psci";
+               };
+               cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x200>;
+                       enable-method = "psci";
+               };
+               cpu@201 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x201>;
+                       enable-method = "psci";
+               };
+               cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x300>;
+                       enable-method = "psci";
+               };
+               cpu@301 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72", "arm,armv8";
+                       reg = <0x301>;
+                       enable-method = "psci";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi b/arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi
new file mode 100644 (file)
index 0000000..7e6f039
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2017 Marvell Technology Group Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPLv2 or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * Device Tree file for Marvell Armada AP810.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/dts-v1/;
+
+/ {
+       model = "Marvell Armada AP810";
+       compatible = "marvell,armada-ap810";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               serial0 = &uart0_ap0;
+               serial1 = &uart1_ap0;
+       };
+
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
+       ap810-ap0 {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               ranges;
+
+               config-space@e8000000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "simple-bus";
+                       ranges = <0x0 0x0 0xe8000000 0x4000000>;
+                       interrupt-parent = <&gic>;
+
+                       gic: interrupt-controller@3000000 {
+                               compatible = "arm,gic-v3";
+                               #interrupt-cells = <3>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               interrupt-controller;
+                               interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               ranges;
+
+                               reg = <0x3000000 0x10000>,      /* GICD */
+                                     <0x3060000 0x100000>,     /* GICR */
+                                     <0x00c0000 0x2000>,       /* GICC */
+                                     <0x00d0000 0x1000>,       /* GICH */
+                                     <0x00e0000 0x2000>;       /* GICV */
+
+                               gic_its_ap0: interrupt-controller@3040000 {
+                                       compatible = "arm,gic-v3-its";
+                                       msi-controller;
+                                       #msi-cells = <1>;
+                                       reg = <0x3040000 0x20000>;
+                               };
+                       };
+
+                       timer {
+                               compatible = "arm,armv8-timer";
+                               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
+                                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
+                                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
+                                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+                       };
+
+                       xor@400000 {
+                               compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
+                               reg = <0x400000 0x1000>,
+                                     <0x410000 0x1000>;
+                               msi-parent = <&gic_its_ap0 0xa0>;
+                               dma-coherent;
+                       };
+
+                       xor@420000 {
+                               compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
+                               reg = <0x420000 0x1000>,
+                                     <0x430000 0x1000>;
+                               msi-parent = <&gic_its_ap0 0xa1>;
+                               dma-coherent;
+                       };
+
+                       xor@440000 {
+                               compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
+                               reg = <0x440000 0x1000>,
+                                     <0x450000 0x1000>;
+                               msi-parent = <&gic_its_ap0 0xa2>;
+                               dma-coherent;
+                       };
+
+                       xor@460000 {
+                               compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
+                               reg = <0x460000 0x1000>,
+                                     <0x470000 0x1000>;
+                               msi-parent = <&gic_its_ap0 0xa3>;
+                               dma-coherent;
+                       };
+
+                       uart0_ap0: serial@512000 {
+                               compatible = "snps,dw-apb-uart";
+                               reg = <0x512000 0x100>;
+                               reg-shift = <2>;
+                               interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+                               reg-io-width = <1>;
+                               status = "disabled";
+                       };
+
+                       uart1_ap0: serial@512100 {
+                               compatible = "snps,dw-apb-uart";
+                               reg = <0x512100 0x100>;
+                               reg-shift = <2>;
+                               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+                               reg-io-width = <1>;
+                               status = "disabled";
+                       };
+               };
+       };
+};
index 4c68605675a83db1639c0efed23788379c4d9e17..8263a8a504a8fd11896da6aebc99eabdd4be928a 100644 (file)
                                reg = <0x0 0x100000>, <0x129000 0xb000>;
                                clocks = <&cpm_clk 1 3>, <&cpm_clk 1 9>, <&cpm_clk 1 5>;
                                clock-names = "pp_clk", "gop_clk", "mg_clk";
+                               marvell,system-controller = <&cpm_syscon0>;
                                status = "disabled";
                                dma-coherent;
 
                                cpm_eth0: eth0 {
-                                       interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
+                                                         "tx-cpu3", "rx-shared";
                                        port-id = <0>;
                                        gop-port-id = <0>;
                                        status = "disabled";
                                };
 
                                cpm_eth1: eth1 {
-                                       interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
+                                                         "tx-cpu3", "rx-shared";
                                        port-id = <1>;
                                        gop-port-id = <2>;
                                        status = "disabled";
                                };
 
                                cpm_eth2: eth2 {
-                                       interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
+                                                         "tx-cpu3", "rx-shared";
                                        port-id = <2>;
                                        gop-port-id = <3>;
                                        status = "disabled";
                                msi-parent = <&gicp>;
                        };
 
+                       cpm_rtc: rtc@284000 {
+                               compatible = "marvell,armada-8k-rtc";
+                               reg = <0x284000 0x20>, <0x284080 0x24>;
+                               reg-names = "rtc", "rtc-soc";
+                               interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
                        cpm_syscon0: system-controller@440000 {
                                compatible = "syscon", "simple-mfd";
                                reg = <0x440000 0x1000>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        gpio-ranges = <&cpm_pinctrl 0 0 32>;
+                                       interrupt-controller;
+                                       interrupts = <ICU_GRP_NSR 86 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 85 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 84 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 83 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "disabled";
-
                                };
 
                                cpm_gpio2: gpio@140 {
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        gpio-ranges = <&cpm_pinctrl 0 32 31>;
+                                       interrupt-controller;
+                                       interrupts = <ICU_GRP_NSR 82 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 81 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 80 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 79 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "disabled";
                                };
                        };
 
-                       cpm_rtc: rtc@284000 {
-                               compatible = "marvell,armada-8k-rtc";
-                               reg = <0x284000 0x20>, <0x284080 0x24>;
-                               reg-names = "rtc", "rtc-soc";
-                               interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>;
-                       };
-
-                       cpm_sata0: sata@540000 {
-                               compatible = "marvell,armada-8k-ahci",
-                                            "generic-ahci";
-                               reg = <0x540000 0x30000>;
-                               interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&cpm_clk 1 15>;
-                               status = "disabled";
-                       };
-
                        cpm_usb3_0: usb3@500000 {
                                compatible = "marvell,armada-8k-xhci",
                                             "generic-xhci";
                                status = "disabled";
                        };
 
+                       cpm_sata0: sata@540000 {
+                               compatible = "marvell,armada-8k-ahci",
+                                            "generic-ahci";
+                               reg = <0x540000 0x30000>;
+                               interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cpm_clk 1 15>;
+                               status = "disabled";
+                       };
+
                        cpm_xor0: xor@6a0000 {
                                compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
                                reg = <0x6a0000 0x1000>,
                                status = "disabled";
                        };
 
+                       cpm_nand: nand@720000 {
+                               /*
+                                * Due to the limiation of the pin available
+                                * this controller is only usable on the CPM
+                                * for A7K and on the CPS for A8K.
+                                */
+                               compatible = "marvell,armada370-nand";
+                               reg = <0x720000 0x54>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cpm_clk 1 2>;
+                               status = "disabled";
+                       };
+
                        cpm_trng: trng@760000 {
                                compatible = "marvell,armada-8k-rng", "inside-secure,safexcel-eip76";
                                reg = <0x760000 0x7d>;
index 923f354b02f00d199db276f60adffb013d688186..b71ee6c83668e8900a4a889614ed83e97e718f85 100644 (file)
                        compatible = "simple-bus";
                        ranges = <0x0 0x0 0xf4000000 0x2000000>;
 
-                       cps_rtc: rtc@284000 {
-                               compatible = "marvell,armada-8k-rtc";
-                               reg = <0x284000 0x20>, <0x284080 0x24>;
-                               reg-names = "rtc", "rtc-soc";
-                               interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>;
-                       };
-
                        cps_ethernet: ethernet@0 {
                                compatible = "marvell,armada-7k-pp22";
                                reg = <0x0 0x100000>, <0x129000 0xb000>;
                                clocks = <&cps_clk 1 3>, <&cps_clk 1 9>, <&cps_clk 1 5>;
                                clock-names = "pp_clk", "gop_clk", "mg_clk";
+                               marvell,system-controller = <&cps_syscon0>;
                                status = "disabled";
                                dma-coherent;
 
                                cps_eth0: eth0 {
-                                       interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupts = <ICU_GRP_NSR 39 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 43 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 47 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 51 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 55 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
+                                                         "tx-cpu3", "rx-shared";
                                        port-id = <0>;
                                        gop-port-id = <0>;
                                        status = "disabled";
                                };
 
                                cps_eth1: eth1 {
-                                       interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupts = <ICU_GRP_NSR 40 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 44 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 48 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 52 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 56 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
+                                                         "tx-cpu3", "rx-shared";
                                        port-id = <1>;
                                        gop-port-id = <2>;
                                        status = "disabled";
                                };
 
                                cps_eth2: eth2 {
-                                       interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupts = <ICU_GRP_NSR 41 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 45 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 49 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 53 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 57 IRQ_TYPE_LEVEL_HIGH>;
+                                       interrupt-names = "tx-cpu0", "tx-cpu1", "tx-cpu2",
+                                                         "tx-cpu3", "rx-shared";
                                        port-id = <2>;
                                        gop-port-id = <3>;
                                        status = "disabled";
                                msi-parent = <&gicp>;
                        };
 
+                       cps_rtc: rtc@284000 {
+                               compatible = "marvell,armada-8k-rtc";
+                               reg = <0x284000 0x20>, <0x284080 0x24>;
+                               reg-names = "rtc", "rtc-soc";
+                               interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
                        cps_syscon0: system-controller@440000 {
                                compatible = "syscon", "simple-mfd";
                                reg = <0x440000 0x1000>;
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        gpio-ranges = <&cps_pinctrl 0 0 32>;
+                                       interrupt-controller;
+                                       interrupts = <ICU_GRP_NSR 86 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 85 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 84 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 83 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "disabled";
-
                                };
 
                                cps_gpio2: gpio@140 {
                                        gpio-controller;
                                        #gpio-cells = <2>;
                                        gpio-ranges = <&cps_pinctrl 0 32 31>;
+                                       interrupt-controller;
+                                       interrupts = <ICU_GRP_NSR 82 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 81 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 80 IRQ_TYPE_LEVEL_HIGH>,
+                                                    <ICU_GRP_NSR 79 IRQ_TYPE_LEVEL_HIGH>;
                                        status = "disabled";
                                };
 
                        };
 
-                       cps_sata0: sata@540000 {
-                               compatible = "marvell,armada-8k-ahci",
-                                            "generic-ahci";
-                               reg = <0x540000 0x30000>;
-                               interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&cps_clk 1 15>;
-                               status = "disabled";
-                       };
-
                        cps_usb3_0: usb3@500000 {
                                compatible = "marvell,armada-8k-xhci",
                                             "generic-xhci";
                                status = "disabled";
                        };
 
+                       cps_sata0: sata@540000 {
+                               compatible = "marvell,armada-8k-ahci",
+                                            "generic-ahci";
+                               reg = <0x540000 0x30000>;
+                               interrupts = <ICU_GRP_NSR 107 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cps_clk 1 15>;
+                               status = "disabled";
+                       };
+
                        cps_xor0: xor@6a0000 {
                                compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
                                reg = <0x6a0000 0x1000>,
                                status = "disabled";
                        };
 
+                       cps_nand: nand@720000 {
+                               /*
+                                * Due to the limiation of the pin available
+                                * this controller is only usable on the CPM
+                                * for A7K and on the CPS for A8K.
+                                */
+                               compatible = "marvell,armada370-nand";
+                               reg = <0x720000 0x54>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               interrupts = <ICU_GRP_NSR 115 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&cps_clk 1 2>;
+                               status = "disabled";
+                       };
+
                        cps_trng: trng@760000 {
                                compatible = "marvell,armada-8k-rng", "inside-secure,safexcel-eip76";
                                reg = <0x760000 0x7d>;
index 015eb072ddef78ca3eeae9aff539c4233690898e..151723b5c733d7f3ee91953098ab363ede6f8ff3 100644 (file)
@@ -1,6 +1,8 @@
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt2712-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6755-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6795-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt6797-evb.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt7622-rfb1.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8173-evb.dtb
 
 always         := $(dtb-y)
diff --git a/arch/arm64/boot/dts/mediatek/mt2712-evb.dts b/arch/arm64/boot/dts/mediatek/mt2712-evb.dts
new file mode 100644 (file)
index 0000000..8c804df
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: YT Shen <yt.shen@mediatek.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0 OR MIT)
+ */
+
+/dts-v1/;
+#include "mt2712e.dtsi"
+
+/ {
+       model = "MediaTek MT2712 evaluation board";
+       compatible = "mediatek,mt2712-evb", "mediatek,mt2712";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x80000000>;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
diff --git a/arch/arm64/boot/dts/mediatek/mt2712e.dtsi b/arch/arm64/boot/dts/mediatek/mt2712e.dtsi
new file mode 100644 (file)
index 0000000..57d0396
--- /dev/null
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: YT Shen <yt.shen@mediatek.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0 OR MIT)
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "mediatek,mt2712";
+       interrupt-parent = <&sysirq>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu2>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a35";
+                       reg = <0x000>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a35";
+                       reg = <0x001>;
+                       enable-method = "psci";
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a72";
+                       reg = <0x200>;
+                       enable-method = "psci";
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+       };
+
+       baud_clk: dummy26m {
+               compatible = "fixed-clock";
+               clock-frequency = <26000000>;
+               #clock-cells = <0>;
+       };
+
+       sys_clk: dummyclk {
+               compatible = "fixed-clock";
+               clock-frequency = <26000000>;
+               #clock-cells = <0>;
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13
+                             (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14
+                             (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11
+                             (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10
+                             (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+
+       uart5: serial@1000f000 {
+               compatible = "mediatek,mt2712-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x1000f000 0 0x400>;
+               interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&baud_clk>, <&sys_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+
+       sysirq: interrupt-controller@10220a80 {
+               compatible = "mediatek,mt2712-sysirq",
+                            "mediatek,mt6577-sysirq";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               interrupt-parent = <&gic>;
+               reg = <0 0x10220a80 0 0x40>;
+       };
+
+       gic: interrupt-controller@10510000 {
+               compatible = "arm,gic-400";
+               #interrupt-cells = <3>;
+               interrupt-parent = <&gic>;
+               interrupt-controller;
+               reg = <0 0x10510000 0 0x10000>,
+                     <0 0x10520000 0 0x20000>,
+                     <0 0x10540000 0 0x20000>,
+                     <0 0x10560000 0 0x20000>;
+               interrupts = <GIC_PPI 9
+                        (GIC_CPU_MASK_RAW(0x13) | IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       uart0: serial@11002000 {
+               compatible = "mediatek,mt2712-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x11002000 0 0x400>;
+               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&baud_clk>, <&sys_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+
+       uart1: serial@11003000 {
+               compatible = "mediatek,mt2712-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x11003000 0 0x400>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&baud_clk>, <&sys_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+
+       uart2: serial@11004000 {
+               compatible = "mediatek,mt2712-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x11004000 0 0x400>;
+               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&baud_clk>, <&sys_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+
+       uart3: serial@11005000 {
+               compatible = "mediatek,mt2712-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x11005000 0 0x400>;
+               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&baud_clk>, <&sys_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+
+       uart4: serial@11019000 {
+               compatible = "mediatek,mt2712-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x11019000 0 0x400>;
+               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&baud_clk>, <&sys_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+};
+
index 31088a9f71dea04966a5db22567f0a5b4be899fd..4beaa71107d7d507af80b8a3248a55715224d463 100644 (file)
                clock-output-names = "clk26m";
        };
 
-       clk32k: oscillator@1 {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <32000>;
-               clock-output-names = "clk32k";
-       };
-
        timer {
                compatible = "arm,armv8-timer";
                interrupt-parent = <&gic>;
                infracfg = <&infrasys>;
        };
 
+       watchdog: watchdog@10007000 {
+               compatible = "mediatek,mt6797-wdt", "mediatek,mt6589-wdt";
+               reg = <0 0x10007000 0 0x100>;
+       };
+
        apmixedsys: apmixed@1000c000 {
                compatible = "mediatek,mt6797-apmixedsys";
                reg = <0 0x1000c000 0 0x1000>;
diff --git a/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts b/arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts
new file mode 100644 (file)
index 0000000..c08309d
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: Ming Huang <ming.huang@mediatek.com>
+ *        Sean Wang <sean.wang@mediatek.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0 OR MIT)
+ */
+
+/dts-v1/;
+#include "mt7622.dtsi"
+
+/ {
+       model = "MediaTek MT7622 RFB1 board";
+       compatible = "mediatek,mt7622-rfb1", "mediatek,mt7622";
+
+       chosen {
+               bootargs = "console=ttyS0,115200n1";
+       };
+
+       memory {
+               reg = <0 0x40000000 0 0x3F000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
new file mode 100644 (file)
index 0000000..b111fec
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2017 MediaTek Inc.
+ * Author: Ming Huang <ming.huang@mediatek.com>
+ *        Sean Wang <sean.wang@mediatek.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0 OR MIT)
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "mediatek,mt7622";
+       interrupt-parent = <&sysirq>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0x0 0x0>;
+                       enable-method = "psci";
+                       clock-frequency = <1300000000>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0x0 0x1>;
+                       enable-method = "psci";
+                       clock-frequency = <1300000000>;
+               };
+       };
+
+       uart_clk: dummy25m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <25000000>;
+       };
+
+       bus_clk: dummy280m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <280000000>;
+       };
+
+       psci {
+               compatible  = "arm,psci-0.2";
+               method      = "smc";
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
+               secmon_reserved: secmon@43000000 {
+                       reg = <0 0x43000000 0 0x30000>;
+                       no-map;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
+                             IRQ_TYPE_LEVEL_HIGH)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) |
+                             IRQ_TYPE_LEVEL_HIGH)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) |
+                             IRQ_TYPE_LEVEL_HIGH)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
+                             IRQ_TYPE_LEVEL_HIGH)>;
+       };
+
+       sysirq: interrupt-controller@10200620 {
+               compatible = "mediatek,mt7622-sysirq",
+                            "mediatek,mt6577-sysirq";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               interrupt-parent = <&gic>;
+               reg = <0 0x10200620 0 0x20>;
+       };
+
+       gic: interrupt-controller@10300000 {
+               compatible = "arm,gic-400";
+               interrupt-controller;
+               #interrupt-cells = <3>;
+               interrupt-parent = <&gic>;
+               reg = <0 0x10310000 0 0x1000>,
+                     <0 0x10320000 0 0x1000>,
+                     <0 0x10340000 0 0x2000>,
+                     <0 0x10360000 0 0x2000>;
+       };
+
+       uart0: serial@11002000 {
+               compatible = "mediatek,mt7622-uart",
+                            "mediatek,mt6577-uart";
+               reg = <0 0x11002000 0 0x400>;
+               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&uart_clk>, <&bus_clk>;
+               clock-names = "baud", "bus";
+               status = "disabled";
+       };
+};
index cc0f02d9dd02fe43315c96474e73d3b905723c8c..ff81d7e5805e8b9dc4ab8eb886836b28c25ddbfc 100644 (file)
@@ -1,5 +1,6 @@
 dtb-$(CONFIG_ARCH_QCOM)        += apq8016-sbc.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += apq8096-db820c.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += ipq8074-hk01.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8992-bullhead-rev-101.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8994-angler-rev-101.dtb
index d9464081219467b4ef224d3ebbeddc2a7792773c..790b7775b9016c899228a5be17ebb3fdbe5f4ab8 100644 (file)
@@ -17,6 +17,7 @@
                        function = PMIC_GPIO_FUNC_NORMAL;
                        power-source = <PM8916_GPIO_VPH>;
                        input-disable;
+                       output-high;
                };
        };
 
index bd310ac1967ab5a07f565bcbeead67a482d2e1b3..1d63e6b879de7cc51784077be9b138f9f5635c8e 100644 (file)
@@ -88,6 +88,8 @@
                                interrupts = <31 2>;
 
                                adi,dsi-lanes = <4>;
+                               clocks = <&rpmcc RPM_SMD_BB_CLK2>;
+                               clock-names = "cec";
 
                                pd-gpios = <&msmgpio 32 0>;
 
                };
 
                usb@78d9000 {
-                       extcon = <&usb_id>, <&usb_id>;
+                       extcon = <&usb_id>;
                        status = "okay";
                        adp-disable;
                        hnp-disable;
                        srp-disable;
+                       dr_mode = "host";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usb_sw_sel_pm>;
                        ulpi {
                                phy {
                                        v1p8-supply = <&pm8916_l7>;
 
        usb_id: usb-id {
                compatible = "linux,extcon-usb-gpio";
-               id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
+               vbus-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&usb_id_default>;
        };
 
-       usb-switch {
-               compatible = "toshiba,tc7usb40mu";
-               switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
-               extcon = <&usb_id>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&usb_sw_sel_pm>;
-       };
-
        hdmi-out {
                compatible = "hdmi-connector";
                type = "a";
index b1142c45fdc983151e24fa2ff084dec82852a0d5..8e379782597a258f84d934ef19a54ab6e6176e26 100644 (file)
                        power-source = <PM8994_GPIO_S4>; // 1.8V
                };
        };
+
+       usb3_vbus_det_gpio: pm8996_gpio22 {
+               pinconf {
+                       pins = "gpio22";
+                       function = PMIC_GPIO_FUNC_NORMAL;
+                       input-enable;
+                       bias-pull-down;
+                       qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+                       power-source = <PM8994_GPIO_S4>; // 1.8V
+               };
+       };
+};
+
+&pmi8994_gpios {
+       usb2_vbus_det_gpio: pmi8996_gpio6 {
+               pinconf {
+                       pins = "gpio6";
+                       function = PMIC_GPIO_FUNC_NORMAL;
+                       input-enable;
+                       bias-pull-down;
+                       qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+                       power-source = <PM8994_GPIO_S4>; // 1.8V
+               };
+       };
 };
index d2196fc6d7397d09b9a9b9c702a45fca08709423..789f3e87321e2d47e51d5af9346441addd385413 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "msm8996.dtsi"
 #include "pm8994.dtsi"
+#include "pmi8994.dtsi"
 #include "apq8096-db820c-pins.dtsi"
 #include "apq8096-db820c-pmic-pins.dtsi"
 #include <dt-bindings/input/input.h>
                        cd-gpios = <&msmgpio 38 0x1>;
                        status = "okay";
                };
+
+               phy@34000 {
+                       status = "okay";
+               };
+
+               phy@7410000 {
+                       status = "okay";
+               };
+
+               phy@7411000 {
+                       status = "okay";
+               };
+
+               phy@7412000 {
+                       status = "okay";
+               };
+
+               usb@6a00000 {
+                       status = "okay";
+
+                       dwc3@6a00000 {
+                               extcon = <&usb3_id>;
+                               dr_mode = "otg";
+                       };
+               };
+
+               usb3_id: usb3-id {
+                       compatible = "linux,extcon-usb-gpio";
+                       id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usb3_vbus_det_gpio>;
+               };
+
+               usb@7600000 {
+                       status = "okay";
+
+                       dwc3@7600000 {
+                               extcon = <&usb2_id>;
+                               dr_mode = "otg";
+                               maximum-speed = "high-speed";
+                       };
+               };
+
+               usb2_id: usb2-id {
+                       compatible = "linux,extcon-usb-gpio";
+                       id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&usb2_vbus_det_gpio>;
+               };
        };
 
 
                        gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
                };
        };
+
+       rpm-glink {
+               rpm_requests {
+                       pm8994-regulators {
+                               vdd_l1-supply = <&pm8994_s3>;
+                               vdd_l2_l26_l28-supply = <&pm8994_s3>;
+                               vdd_l3_l11-supply = <&pm8994_s3>;
+                               vdd_l4_l27_l31-supply = <&pm8994_s3>;
+                               vdd_l5_l7-supply = <&pm8994_s5>;
+                               vdd_l14_l15-supply = <&pm8994_s5>;
+                               vdd_l20_l21-supply = <&pm8994_s5>;
+                               vdd_l25-supply = <&pm8994_s3>;
+
+                               s3 {
+                                       regulator-min-microvolt = <1300000>;
+                                       regulator-max-microvolt = <1300000>;
+                               };
+                               s4 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               s5 {
+                                       regulator-min-microvolt = <2150000>;
+                                       regulator-max-microvolt = <2150000>;
+                               };
+                               s7 {
+                                       regulator-min-microvolt = <800000>;
+                                       regulator-max-microvolt = <800000>;
+                               };
+
+                               l1 {
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                               };
+                               l2 {
+                                       regulator-min-microvolt = <1250000>;
+                                       regulator-max-microvolt = <1250000>;
+                               };
+                               l3 {
+                                       regulator-min-microvolt = <850000>;
+                                       regulator-max-microvolt = <850000>;
+                               };
+                               l4 {
+                                       regulator-min-microvolt = <1225000>;
+                                       regulator-max-microvolt = <1225000>;
+                               };
+                               l6 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                               };
+                               l8 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l9 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l10 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l11 {
+                                       regulator-min-microvolt = <1150000>;
+                                       regulator-max-microvolt = <1150000>;
+                               };
+                               l12 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l13 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <2950000>;
+                               };
+                               l14 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l15 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l16 {
+                                       regulator-min-microvolt = <2700000>;
+                                       regulator-max-microvolt = <2700000>;
+                               };
+                               l17 {
+                                       regulator-min-microvolt = <2500000>;
+                                       regulator-max-microvolt = <2500000>;
+                               };
+                               l18 {
+                                       regulator-min-microvolt = <2700000>;
+                                       regulator-max-microvolt = <2900000>;
+                               };
+                               l19 {
+                                       regulator-min-microvolt = <3000000>;
+                                       regulator-max-microvolt = <3000000>;
+                               };
+                               l20 {
+                                       regulator-min-microvolt = <2950000>;
+                                       regulator-max-microvolt = <2950000>;
+                                       regulator-allow-set-load;
+                               };
+                               l21 {
+                                       regulator-min-microvolt = <2950000>;
+                                       regulator-max-microvolt = <2950000>;
+                               };
+                               l22 {
+                                       regulator-min-microvolt = <3300000>;
+                                       regulator-max-microvolt = <3300000>;
+                               };
+                               l23 {
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                               };
+                               l24 {
+                                       regulator-min-microvolt = <3075000>;
+                                       regulator-max-microvolt = <3075000>;
+                               };
+                               l25 {
+                                       regulator-min-microvolt = <1200000>;
+                                       regulator-max-microvolt = <1200000>;
+                                       regulator-allow-set-load;
+                               };
+                               l27 {
+                                       regulator-min-microvolt = <1000000>;
+                                       regulator-max-microvolt = <1000000>;
+                               };
+                               l28 {
+                                       regulator-min-microvolt = <925000>;
+                                       regulator-max-microvolt = <925000>;
+                                       regulator-allow-set-load;
+                               };
+                               l29 {
+                                       regulator-min-microvolt = <2800000>;
+                                       regulator-max-microvolt = <2800000>;
+                               };
+                               l30 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                               l32 {
+                                       regulator-min-microvolt = <1800000>;
+                                       regulator-max-microvolt = <1800000>;
+                               };
+                       };
+               };
+       };
 };
diff --git a/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts b/arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
new file mode 100644 (file)
index 0000000..6a838b5
--- /dev/null
@@ -0,0 +1,52 @@
+/dts-v1/;
+/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+#include "ipq8074.dtsi"
+
+/ {
+       #address-cells = <0x2>;
+       #size-cells = <0x2>;
+       model = "Qualcomm Technologies, Inc. IPQ8074-HK01";
+       compatible = "qcom,ipq8074-hk01", "qcom,ipq8074";
+       interrupt-parent = <&intc>;
+
+       aliases {
+               serial0 = &blsp1_uart5;
+       };
+
+       chosen {
+               stdout-path = "serial0";
+       };
+
+       memory {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0x0 0x20000000>;
+       };
+
+       soc {
+               pinctrl@1000000 {
+                       serial_4_pins: serial4_pinmux {
+                               mux {
+                                       pins = "gpio23", "gpio24";
+                                       function = "blsp4_uart1";
+                                       bias-disable;
+                               };
+                       };
+               };
+
+               serial@78b3000 {
+                       pinctrl-0 = <&serial_4_pins>;
+                       pinctrl-names = "default";
+                       status = "ok";
+               };
+       };
+};
diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
new file mode 100644 (file)
index 0000000..2bc5dec
--- /dev/null
@@ -0,0 +1,194 @@
+/*
+ * Copyright (c) 2017, The Linux Foundation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 and
+ * only version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/qcom,gcc-ipq8074.h>
+
+/ {
+       model = "Qualcomm Technologies, Inc. IPQ8074";
+       compatible = "qcom,ipq8074";
+
+       soc: soc {
+               #address-cells = <0x1>;
+               #size-cells = <0x1>;
+               ranges = <0 0 0 0xffffffff>;
+               compatible = "simple-bus";
+
+               pinctrl@1000000 {
+                       compatible = "qcom,ipq8074-pinctrl";
+                       reg = <0x1000000 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <0x2>;
+                       interrupt-controller;
+                       #interrupt-cells = <0x2>;
+               };
+
+               intc: interrupt-controller@b000000 {
+                       compatible = "qcom,msm-qgic2";
+                       interrupt-controller;
+                       #interrupt-cells = <0x3>;
+                       reg = <0xb000000 0x1000>, <0xb002000 0x1000>;
+               };
+
+               timer {
+                       compatible = "arm,armv8-timer";
+                       interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+               };
+
+               timer@b120000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0xb120000 0x1000>;
+                       clock-frequency = <19200000>;
+
+                       frame@b120000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb121000 0x1000>,
+                                     <0xb122000 0x1000>;
+                       };
+
+                       frame@b123000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb123000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b124000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb124000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b125000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb125000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b126000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb126000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b127000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb127000 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@b128000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0xb128000 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+               gcc: gcc@1800000 {
+                       compatible = "qcom,gcc-ipq8074";
+                       reg = <0x1800000 0x80000>;
+                       #clock-cells = <0x1>;
+                       #reset-cells = <0x1>;
+               };
+
+               blsp1_uart5: serial@78b3000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x78b3000 0x200>;
+                       interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+       };
+
+       cpus {
+               #address-cells = <0x1>;
+               #size-cells = <0x0>;
+
+               CPU0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0x0>;
+                       next-level-cache = <&L2_0>;
+                       enable-method = "psci";
+               };
+
+               CPU1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       enable-method = "psci";
+                       reg = <0x1>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               CPU2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       enable-method = "psci";
+                       reg = <0x2>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               CPU3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       enable-method = "psci";
+                       reg = <0x3>;
+                       next-level-cache = <&L2_0>;
+               };
+
+               L2_0: l2-cache {
+                       compatible = "cache";
+                       cache-level = <0x2>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       pmu {
+               compatible = "arm,armv8-pmuv3";
+               interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>;
+       };
+
+       clocks {
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       clock-frequency = <32000>;
+                       #clock-cells = <0>;
+               };
+
+               xo: xo {
+                       compatible = "fixed-clock";
+                       clock-frequency = <19200000>;
+                       #clock-cells = <0>;
+               };
+       };
+};
index 039991f808317027822148650831c3509b7d349c..dc3817593e144708a514a5605491801056e662ab 100644 (file)
                        no-map;
                };
 
+               venus_mem: venus@89900000 {
+                       reg = <0x0 0x89900000 0x0 0x600000>;
+                       no-map;
+               };
+
                mba_mem: mba@8ea00000 {
                        no-map;
                        reg = <0 0x8ea00000 0 0x100000>;
 
        };
 
+       gpu_opp_table: opp_table {
+               compatible = "operating-points-v2";
+
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+               };
+               opp-19200000 {
+                       opp-hz = /bits/ 64 <19200000>;
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
                        #thermal-sensor-cells = <1>;
                };
 
+               apps_iommu: iommu@1ef0000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #iommu-cells = <1>;
+                       compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
+                       ranges = <0 0x1e20000 0x40000>;
+                       reg = <0x1ef0000 0x3000>;
+                       clocks = <&gcc GCC_SMMU_CFG_CLK>,
+                                <&gcc GCC_APSS_TCU_CLK>;
+                       clock-names = "iface", "bus";
+                       qcom,iommu-secure-id = <17>;
+
+                       // mdp_0:
+                       iommu-ctx@4000 {
+                               compatible = "qcom,msm-iommu-v1-ns";
+                               reg = <0x4000 0x1000>;
+                               interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       // venus_ns:
+                       iommu-ctx@5000 {
+                               compatible = "qcom,msm-iommu-v1-sec";
+                               reg = <0x5000 0x1000>;
+                               interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+               };
+
+               gpu_iommu: iommu@1f08000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #iommu-cells = <1>;
+                       compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
+                       ranges = <0 0x1f08000 0x10000>;
+                       clocks = <&gcc GCC_SMMU_CFG_CLK>,
+                                <&gcc GCC_GFX_TCU_CLK>;
+                       clock-names = "iface", "bus";
+                       qcom,iommu-secure-id = <18>;
+
+                       // gfx3d_user:
+                       iommu-ctx@1000 {
+                               compatible = "qcom,msm-iommu-v1-ns";
+                               reg = <0x1000 0x1000>;
+                               interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       };
+
+                       // gfx3d_priv:
+                       iommu-ctx@2000 {
+                               compatible = "qcom,msm-iommu-v1-ns";
+                               reg = <0x2000 0x1000>;
+                               interrupts = <GIC_SPI 242 0>;
+                       };
+               };
+
+               gpu@1c00000 {
+                       compatible = "qcom,adreno-306.0", "qcom,adreno";
+                       reg = <0x01c00000 0x20000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+                       clock-names =
+                           "core",
+                           "iface",
+                           "mem",
+                           "mem_iface",
+                           "alt_mem_iface",
+                           "gfx3d";
+                       clocks =
+                           <&gcc GCC_OXILI_GFX3D_CLK>,
+                           <&gcc GCC_OXILI_AHB_CLK>,
+                           <&gcc GCC_OXILI_GMEM_CLK>,
+                           <&gcc GCC_BIMC_GFX_CLK>,
+                           <&gcc GCC_BIMC_GPU_CLK>,
+                           <&gcc GFX3D_CLK_SRC>;
+                       power-domains = <&gcc OXILI_GDSC>;
+                       operating-points-v2 = <&gpu_opp_table>;
+                       iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
+               };
+
                mdss: mdss@1a00000 {
                        compatible = "qcom,mdss";
                        reg = <0x1a00000 0x1000>,
                                              "core_clk",
                                              "vsync_clk";
 
+                               iommus = <&apps_iommu 4>;
+
                                ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                };
 
                replicator@824000 {
-                       compatible = "qcom,coresight-replicator1x", "arm,primecell";
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
                        reg = <0x824000 0x1000>;
 
                        clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
                                };
                        };
                };
+
+               venus: video-codec@1d00000 {
+                       compatible = "qcom,msm8916-venus";
+                       reg = <0x01d00000 0xff000>;
+                       interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&gcc VENUS_GDSC>;
+                       clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
+                                <&gcc GCC_VENUS0_AHB_CLK>,
+                                <&gcc GCC_VENUS0_AXI_CLK>;
+                       clock-names = "core", "iface", "bus";
+                       iommus = <&apps_iommu 5>;
+                       memory-region = <&venus_mem>;
+                       status = "okay";
+
+                       video-decoder {
+                               compatible = "venus-decoder";
+                       };
+
+                       video-encoder {
+                               compatible = "venus-encoder";
+                       };
+               };
        };
 
        smd {
index 8f085716e25898a19a4efb8ad493aaf60963eef9..887b61c872dd15b697e4d1969b26be5010a18d4e 100644 (file)
                hwlocks = <&tcsr_mutex 3>;
        };
 
+       rpm-glink {
+               compatible = "qcom,glink-rpm";
+
+               interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+
+               qcom,rpm-msg-ram = <&rpm_msg_ram>;
+
+               mboxes = <&apcs_glb 0>;
+
+               rpm_requests {
+                       compatible = "qcom,rpm-msm8996";
+                       qcom,glink-channels = "rpm_requests";
+
+                       pm8994-regulators {
+                               compatible = "qcom,rpm-pm8994-regulators";
+
+                               pm8994_s1: s1 {};
+                               pm8994_s2: s2 {};
+                               pm8994_s3: s3 {};
+                               pm8994_s4: s4 {};
+                               pm8994_s5: s5 {};
+                               pm8994_s6: s6 {};
+                               pm8994_s7: s7 {};
+                               pm8994_s8: s8 {};
+                               pm8994_s9: s9 {};
+                               pm8994_s10: s10 {};
+                               pm8994_s11: s11 {};
+                               pm8994_s12: s12 {};
+
+                               pm8994_l1: l1 {};
+                               pm8994_l2: l2 {};
+                               pm8994_l3: l3 {};
+                               pm8994_l4: l4 {};
+                               pm8994_l5: l5 {};
+                               pm8994_l6: l6 {};
+                               pm8994_l7: l7 {};
+                               pm8994_l8: l8 {};
+                               pm8994_l9: l9 {};
+                               pm8994_l10: l10 {};
+                               pm8994_l11: l11 {};
+                               pm8994_l12: l12 {};
+                               pm8994_l13: l13 {};
+                               pm8994_l14: l14 {};
+                               pm8994_l15: l15 {};
+                               pm8994_l16: l16 {};
+                               pm8994_l17: l17 {};
+                               pm8994_l18: l18 {};
+                               pm8994_l19: l19 {};
+                               pm8994_l20: l20 {};
+                               pm8994_l21: l21 {};
+                               pm8994_l22: l22 {};
+                               pm8994_l23: l23 {};
+                               pm8994_l24: l24 {};
+                               pm8994_l25: l25 {};
+                               pm8994_l26: l26 {};
+                               pm8994_l27: l27 {};
+                               pm8994_l28: l28 {};
+                               pm8994_l29: l29 {};
+                               pm8994_l30: l30 {};
+                               pm8994_l31: l31 {};
+                               pm8994_l32: l32 {};
+                       };
+
+               };
+       };
+
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
                compatible = "simple-bus";
 
+               rpm_msg_ram: memory@68000 {
+                       compatible = "qcom,rpm-msg-ram";
+                       reg = <0x68000 0x6000>;
+               };
+
                tcsr_mutex_regs: syscon@740000 {
                        compatible = "syscon";
                        reg = <0x740000 0x20000>;
                        reg = <0x9820000 0x1000>;
                };
 
+               apcs_glb: mailbox@9820000 {
+                       compatible = "qcom,msm8996-apcs-hmss-global";
+                       reg = <0x9820000 0x1000>;
+
+                       #mbox-cells = <1>;
+               };
+
                gcc: clock-controller@300000 {
                        compatible = "qcom,gcc-msm8996";
                        #clock-cells = <1>;
                                               <960000000>,
                                               <825000000>;
                };
+
+               qfprom@74000 {
+                       compatible = "qcom,qfprom";
+                       reg = <0x74000 0x8ff>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       qusb2p_hstx_trim: hstx_trim@24e {
+                               reg = <0x24e 0x2>;
+                               bits = <5 4>;
+                       };
+
+                       qusb2s_hstx_trim: hstx_trim@24f {
+                               reg = <0x24f 0x1>;
+                               bits = <1 4>;
+                       };
+               };
+
+               phy@34000 {
+                       compatible = "qcom,msm8996-qmp-pcie-phy";
+                       reg = <0x34000 0x488>;
+                       #clock-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                               <&gcc GCC_PCIE_PHY_CFG_AHB_CLK>,
+                               <&gcc GCC_PCIE_CLKREF_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref";
+
+                       vdda-phy-supply = <&pm8994_l28>;
+                       vdda-pll-supply = <&pm8994_l12>;
+
+                       resets = <&gcc GCC_PCIE_PHY_BCR>,
+                               <&gcc GCC_PCIE_PHY_COM_BCR>,
+                               <&gcc GCC_PCIE_PHY_COM_NOCSR_BCR>;
+                       reset-names = "phy", "common", "cfg";
+                       status = "disabled";
+
+                       pciephy_0: lane@35000 {
+                               reg = <0x035000 0x130>,
+                                       <0x035200 0x200>,
+                                       <0x035400 0x1dc>;
+                               #phy-cells = <0>;
+
+                               clock-output-names = "pcie_0_pipe_clk_src";
+                               clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                               reset-names = "lane0";
+                       };
+
+                       pciephy_1: lane@36000 {
+                               reg = <0x036000 0x130>,
+                                       <0x036200 0x200>,
+                                       <0x036400 0x1dc>;
+                               #phy-cells = <0>;
+
+                               clock-output-names = "pcie_1_pipe_clk_src";
+                               clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
+                               clock-names = "pipe1";
+                               resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+                               reset-names = "lane1";
+                       };
+
+                       pciephy_2: lane@37000 {
+                               reg = <0x037000 0x130>,
+                                       <0x037200 0x200>,
+                                       <0x037400 0x1dc>;
+                               #phy-cells = <0>;
+
+                               clock-output-names = "pcie_2_pipe_clk_src";
+                               clocks = <&gcc GCC_PCIE_2_PIPE_CLK>;
+                               clock-names = "pipe2";
+                               resets = <&gcc GCC_PCIE_2_PHY_BCR>;
+                               reset-names = "lane2";
+                       };
+               };
+
+               phy@7410000 {
+                       compatible = "qcom,msm8996-qmp-usb3-phy";
+                       reg = <0x7410000 0x1c4>;
+                       #clock-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
+                               <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
+                               <&gcc GCC_USB3_CLKREF_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref";
+
+                       vdda-phy-supply = <&pm8994_l28>;
+                       vdda-pll-supply = <&pm8994_l12>;
+
+                       resets = <&gcc GCC_USB3_PHY_BCR>,
+                               <&gcc GCC_USB3PHY_PHY_BCR>;
+                       reset-names = "phy", "common";
+                       status = "disabled";
+
+                       ssusb_phy_0: lane@7410200 {
+                               reg = <0x7410200 0x200>,
+                                       <0x7410400 0x130>,
+                                       <0x7410600 0x1a8>;
+                               #phy-cells = <0>;
+
+                               clock-output-names = "usb3_phy_pipe_clk_src";
+                               clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>;
+                               clock-names = "pipe0";
+                       };
+               };
+
+               hsusb_phy1: phy@7411000 {
+                       compatible = "qcom,msm8996-qusb2-phy";
+                       reg = <0x7411000 0x180>;
+                       #phy-cells = <0>;
+
+                       clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
+                               <&gcc GCC_RX1_USB2_CLKREF_CLK>;
+                       clock-names = "cfg_ahb", "ref";
+
+                       vdda-pll-supply = <&pm8994_l12>;
+                       vdda-phy-dpdm-supply = <&pm8994_l24>;
+
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+                       nvmem-cells = <&qusb2p_hstx_trim>;
+                       status = "disabled";
+               };
+
+               hsusb_phy2: phy@7412000 {
+                       compatible = "qcom,msm8996-qusb2-phy";
+                       reg = <0x7412000 0x180>;
+                       #phy-cells = <0>;
+
+                       clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
+                               <&gcc GCC_RX2_USB2_CLKREF_CLK>;
+                       clock-names = "cfg_ahb", "ref";
+
+                       vdda-pll-supply = <&pm8994_l12>;
+                       vdda-phy-dpdm-supply = <&pm8994_l24>;
+
+                       resets = <&gcc GCC_QUSB2PHY_SEC_BCR>;
+                       nvmem-cells = <&qusb2s_hstx_trim>;
+                       status = "disabled";
+               };
+
+               usb2: usb@7600000 {
+                       compatible = "qcom,dwc3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clocks = <&gcc GCC_PERIPH_NOC_USB20_AHB_CLK>,
+                               <&gcc GCC_USB20_MASTER_CLK>,
+                               <&gcc GCC_USB20_MOCK_UTMI_CLK>,
+                               <&gcc GCC_USB20_SLEEP_CLK>,
+                               <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>;
+
+                       assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB20_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <60000000>;
+
+                       power-domains = <&gcc USB30_GDSC>;
+                       status = "disabled";
+
+                       dwc3@7600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x7600000 0xcc00>;
+                               interrupts = <0 138 0>;
+                               phys = <&hsusb_phy2>;
+                               phy-names = "usb2-phy";
+                       };
+               };
+
+               usb3: usb@6a00000 {
+                       compatible = "qcom,dwc3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       clocks = <&gcc GCC_SYS_NOC_USB3_AXI_CLK>,
+                               <&gcc GCC_USB30_MASTER_CLK>,
+                               <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
+                               <&gcc GCC_USB30_MOCK_UTMI_CLK>,
+                               <&gcc GCC_USB30_SLEEP_CLK>,
+                               <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>;
+
+                       assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <120000000>;
+
+                       power-domains = <&gcc USB30_GDSC>;
+                       status = "disabled";
+
+                       dwc3@6a00000 {
+                               compatible = "snps,dwc3";
+                               reg = <0x6a00000 0xcc00>;
+                               interrupts = <0 131 0>;
+                               phys = <&hsusb_phy1>, <&ssusb_phy_0>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
        };
 
        adsp-pil {
 
                qcom,smem-states = <&adsp_smp2p_out 0>;
                qcom,smem-state-names = "stop";
+
+               smd-edge {
+                       interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
+
+                       label = "lpass";
+                       qcom,ipc = <&apcs 16 8>;
+                       qcom,smd-edge = <1>;
+                       qcom,remote-pid = <2>;
+               };
        };
 
        adsp-smp2p {
                };
        };
 
+       modem-smp2p {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
+
+               interrupts = <GIC_SPI 451 IRQ_TYPE_EDGE_RISING>;
+
+               qcom,ipc = <&apcs 16 14>;
+
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <1>;
+
+               modem_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               modem_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
+
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+
        smp2p-slpi {
                compatible = "qcom,smp2p";
                qcom,smem = <481>, <430>;
index d3879a4e8076d53a4bdcd9d2b81d343797c637a2..57673f92805d00346559dc65e2c4d01fc17bc5dd 100644 (file)
@@ -8,6 +8,23 @@
                reg = <0x2 SPMI_USID>;
                #address-cells = <1>;
                #size-cells = <0>;
+
+               pmi8994_gpios: gpios@c000 {
+                       compatible = "qcom,pmi8994-gpio", "qcom,spmi-gpio";
+                       reg = <0xc000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupts = <2 0xc0 0 IRQ_TYPE_NONE>,
+                                    <2 0xc1 0 IRQ_TYPE_NONE>,
+                                    <2 0xc2 0 IRQ_TYPE_NONE>,
+                                    <2 0xc3 0 IRQ_TYPE_NONE>,
+                                    <2 0xc4 0 IRQ_TYPE_NONE>,
+                                    <2 0xc5 0 IRQ_TYPE_NONE>,
+                                    <2 0xc6 0 IRQ_TYPE_NONE>,
+                                    <2 0xc7 0 IRQ_TYPE_NONE>,
+                                    <2 0xc8 0 IRQ_TYPE_NONE>,
+                                    <2 0xc9 0 IRQ_TYPE_NONE>;
+               };
        };
 
        pmic@3 {
index acc4bb30d485b6bc55fa50926ae678d73bdcac92..381928bc1358fd9c97995109143cc72282bda1d4 100644 (file)
@@ -2,6 +2,7 @@ dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-x.dtb r8a7795-h3ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-salvator-xs.dtb
 dtb-$(CONFIG_ARCH_R8A7795) += r8a7795-es1-salvator-x.dtb r8a7795-es1-h3ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A7796) += r8a7796-salvator-x.dtb r8a7796-m3ulcb.dtb
+dtb-$(CONFIG_ARCH_R8A77995) += r8a77995-draak.dtb
 
 always         := $(dtb-y)
 clean-files    := *.dtb
index 95fe207cb6a3fd2fcb168e8557e38327d6041ae4..dd4f9b6a42546defb7b1161ce4e589c25f739d5c 100644 (file)
@@ -9,8 +9,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7795_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7795-es1.dtsi"
 #include "ulcb.dtsi"
index b84c156ed6969947bc64d602fefb8da9a55ad030..3f7d5f51e42878cb8550402dbb851411c6399492 100644 (file)
@@ -8,8 +8,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7795_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7795-es1.dtsi"
 #include "salvator-x.dtsi"
index a0ba7bd21ea3aa185bb725ee43c4a4638609e02b..aaa5e67a963ea9ff1b0dddc3a18d46b3e8ae2031 100644 (file)
                status = "disabled";
        };
 
+       /delete-node/ usb-phy@ee0e0200;
+       /delete-node/ usb@ee0e0100;
+       /delete-node/ usb@ee0e0000;
+       /delete-node/ usb@e659c000;
+
+       /delete-node/ dma-controller@e6460000;
+       /delete-node/ dma-controller@e6470000;
+
        fcpf2: fcp@fe952000 {
                compatible = "renesas,fcpf";
                reg = <0 0xfe952000 0 0x200>;
@@ -79,6 +87,5 @@
 };
 
 &du {
-       compatible = "renesas,du-r8a7795";
        vsps = <&vspd0 &vspd1 &vspd2 &vspd3>;
 };
index 0426f41765f0bc68f426e5284d84a354c686dbd8..0afe777973dec8b7e8fa41b1d521652ba450914a 100644 (file)
@@ -9,8 +9,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7795_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7795.dtsi"
 #include "ulcb.dtsi"
                reg = <0x7 0x00000000 0x0 0x40000000>;
        };
 };
+
+&du {
+       clocks = <&cpg CPG_MOD 724>,
+                <&cpg CPG_MOD 723>,
+                <&cpg CPG_MOD 722>,
+                <&cpg CPG_MOD 721>,
+                <&cpg CPG_MOD 727>,
+                <&versaclock5 1>,
+                <&versaclock5 3>,
+                <&versaclock5 4>,
+                <&versaclock5 2>;
+       clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0",
+                     "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
+};
index 684fb3b9d154559eb31d85c401303f4bc52f9f4e..17953070f38dff8d1a4e3e3050f1259fe802240a 100644 (file)
@@ -8,8 +8,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7795_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7795.dtsi"
 #include "salvator-x.dtsi"
index de354957144b4822479a25894656028f9f1085c1..7675de5d4f2cb13902ecd325654ece89db098741 100644 (file)
@@ -8,8 +8,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7795_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7795.dtsi"
 #include "salvator-xs.dtsi"
                 <&cpg CPG_MOD 722>,
                 <&cpg CPG_MOD 721>,
                 <&cpg CPG_MOD 727>,
+                <&versaclock6 1>,
                 <&x21_clk>,
-                <&x22_clk>;
+                <&x22_clk>,
+                <&versaclock6 2>;
        clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0",
-                     "dclkin.1", "dclkin.2";
+                     "dclkin.0", "dclkin.1", "dclkin.2", "dclkin.3";
 };
 
 &ehci2 {
index e31c1b660b3fe78f370a01e1cc67e8c81d24ee97..2938195b9571dd6cd2f568737679770202bc1a3f 100644 (file)
@@ -12,6 +12,8 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/r8a7795-sysc.h>
 
+#define CPG_AUDIO_CLK_I                R8A7795_CLK_S0D4
+
 / {
        compatible = "renesas,r8a7795";
        #address-cells = <2>;
                        };
                };
 
+               drif00: rif@e6f40000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f40000 0 0x64>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 515>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x20>, <&dmac2 0x20>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 515>;
+                       renesas,bonding = <&drif01>;
+                       status = "disabled";
+               };
+
+               drif01: rif@e6f50000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f50000 0 0x64>;
+                       interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 514>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x22>, <&dmac2 0x22>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 514>;
+                       renesas,bonding = <&drif00>;
+                       status = "disabled";
+               };
+
+               drif10: rif@e6f60000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f60000 0 0x64>;
+                       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 513>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x24>, <&dmac2 0x24>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 513>;
+                       renesas,bonding = <&drif11>;
+                       status = "disabled";
+               };
+
+               drif11: rif@e6f70000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f70000 0 0x64>;
+                       interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 512>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x26>, <&dmac2 0x26>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 512>;
+                       renesas,bonding = <&drif10>;
+                       status = "disabled";
+               };
+
+               drif20: rif@e6f80000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f80000 0 0x64>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 511>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x28>, <&dmac2 0x28>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 511>;
+                       renesas,bonding = <&drif21>;
+                       status = "disabled";
+               };
+
+               drif21: rif@e6f90000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f90000 0 0x64>;
+                       interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 510>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x2a>, <&dmac2 0x2a>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 510>;
+                       renesas,bonding = <&drif20>;
+                       status = "disabled";
+               };
+
+               drif30: rif@e6fa0000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6fa0000 0 0x64>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 509>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x2c>, <&dmac2 0x2c>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 509>;
+                       renesas,bonding = <&drif31>;
+                       status = "disabled";
+               };
+
+               drif31: rif@e6fb0000 {
+                       compatible = "renesas,r8a7795-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6fb0000 0 0x64>;
+                       interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 508>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x2e>, <&dmac2 0x2e>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 508>;
+                       renesas,bonding = <&drif30>;
+                       status = "disabled";
+               };
+
                hscif0: serial@e6540000 {
                        compatible = "renesas,hscif-r8a7795",
                                     "renesas,rcar-gen3-hscif",
                        status = "disabled";
                };
 
+               msiof0: spi@e6e90000 {
+                       compatible = "renesas,msiof-r8a7795",
+                                    "renesas,rcar-gen3-msiof";
+                       reg = <0 0xe6e90000 0 0x0064>;
+                       interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 211>;
+                       dmas = <&dmac1 0x41>, <&dmac1 0x40>,
+                              <&dmac2 0x41>, <&dmac2 0x40>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 211>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof1: spi@e6ea0000 {
+                       compatible = "renesas,msiof-r8a7795",
+                                    "renesas,rcar-gen3-msiof";
+                       reg = <0 0xe6ea0000 0 0x0064>;
+                       interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 210>;
+                       dmas = <&dmac1 0x43>, <&dmac1 0x42>,
+                              <&dmac2 0x43>, <&dmac2 0x42>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 210>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof2: spi@e6c00000 {
+                       compatible = "renesas,msiof-r8a7795",
+                                    "renesas,rcar-gen3-msiof";
+                       reg = <0 0xe6c00000 0 0x0064>;
+                       interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 209>;
+                       dmas = <&dmac0 0x45>, <&dmac0 0x44>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 209>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof3: spi@e6c10000 {
+                       compatible = "renesas,msiof-r8a7795",
+                                    "renesas,rcar-gen3-msiof";
+                       reg = <0 0xe6c10000 0 0x0064>;
+                       interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 208>;
+                       dmas = <&dmac0 0x47>, <&dmac0 0x46>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 208>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                scif0: serial@e6e60000 {
                        compatible = "renesas,scif-r8a7795",
                                     "renesas,rcar-gen3-scif", "renesas,scif";
                };
 
                sata: sata@ee300000 {
-                       compatible = "renesas,sata-r8a7795";
+                       compatible = "renesas,sata-r8a7795",
+                                    "renesas,rcar-gen3-sata";
                        reg = <0 0xee300000 0 0x200000>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 815>;
                        dma-channels = <2>;
                };
 
+               usb_dmac2: dma-controller@e6460000 {
+                       compatible = "renesas,r8a7795-usb-dmac",
+                                    "renesas,usb-dmac";
+                       reg = <0 0xe6460000 0 0x100>;
+                       interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH
+                                     GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch0", "ch1";
+                       clocks = <&cpg CPG_MOD 326>;
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 326>;
+                       #dma-cells = <1>;
+                       dma-channels = <2>;
+               };
+
+               usb_dmac3: dma-controller@e6470000 {
+                       compatible = "renesas,r8a7795-usb-dmac",
+                                    "renesas,usb-dmac";
+                       reg = <0 0xe6470000 0 0x100>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH
+                                     GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch0", "ch1";
+                       clocks = <&cpg CPG_MOD 329>;
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 329>;
+                       #dma-cells = <1>;
+                       dma-channels = <2>;
+               };
+
                sdhi0: sd@ee100000 {
                        compatible = "renesas,sdhi-r8a7795";
                        reg = <0 0xee100000 0 0x2000>;
                        status = "disabled";
                };
 
+               usb2_phy3: usb-phy@ee0e0200 {
+                       compatible = "renesas,usb2-phy-r8a7795",
+                                    "renesas,rcar-gen3-usb2-phy";
+                       reg = <0 0xee0e0200 0 0x700>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 700>;
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 700>;
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
                ehci0: usb@ee080100 {
                        compatible = "generic-ehci";
                        reg = <0 0xee080100 0 0x100>;
                        clocks = <&cpg CPG_MOD 703>;
                        phys = <&usb2_phy0>;
                        phy-names = "usb";
+                       companion = <&ohci0>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 703>;
                        status = "disabled";
                        clocks = <&cpg CPG_MOD 702>;
                        phys = <&usb2_phy1>;
                        phy-names = "usb";
+                       companion = <&ohci1>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 702>;
                        status = "disabled";
                        clocks = <&cpg CPG_MOD 701>;
                        phys = <&usb2_phy2>;
                        phy-names = "usb";
+                       companion = <&ohci2>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 701>;
                        status = "disabled";
                };
 
+               ehci3: usb@ee0e0100 {
+                       compatible = "generic-ehci";
+                       reg = <0 0xee0e0100 0 0x100>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 700>;
+                       phys = <&usb2_phy3>;
+                       phy-names = "usb";
+                       companion = <&ohci3>;
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 700>;
+                       status = "disabled";
+               };
+
                ohci0: usb@ee080000 {
                        compatible = "generic-ohci";
                        reg = <0 0xee080000 0 0x100>;
                        status = "disabled";
                };
 
+               ohci3: usb@ee0e0000 {
+                       compatible = "generic-ohci";
+                       reg = <0 0xee0e0000 0 0x100>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 700>;
+                       phys = <&usb2_phy3>;
+                       phy-names = "usb";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 700>;
+                       status = "disabled";
+               };
+
                hsusb: usb@e6590000 {
                        compatible = "renesas,usbhs-r8a7795",
                                     "renesas,rcar-gen3-usbhs";
                        status = "disabled";
                };
 
+               hsusb3: usb@e659c000 {
+                       compatible = "renesas,usbhs-r8a7795",
+                                    "renesas,rcar-gen3-usbhs";
+                       reg = <0 0xe659c000 0 0x100>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 705>;
+                       dmas = <&usb_dmac2 0>, <&usb_dmac2 1>,
+                              <&usb_dmac3 0>, <&usb_dmac3 1>;
+                       dma-names = "ch0", "ch1", "ch2", "ch3";
+                       renesas,buswait = <11>;
+                       phys = <&usb2_phy3>;
+                       phy-names = "usb";
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 705>;
+                       status = "disabled";
+               };
+
                pciec0: pcie@fe000000 {
                        compatible = "renesas,pcie-r8a7795",
                                     "renesas,pcie-rcar-gen3";
                        status = "disabled";
                };
 
+               imr-lx4@fe860000 {
+                       compatible = "renesas,r8a7795-imr-lx4",
+                                    "renesas,imr-lx4";
+                       reg = <0 0xfe860000 0 0x2000>;
+                       interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 823>;
+                       power-domains = <&sysc R8A7795_PD_A3VC>;
+                       resets = <&cpg 823>;
+               };
+
+               imr-lx4@fe870000 {
+                       compatible = "renesas,r8a7795-imr-lx4",
+                                    "renesas,imr-lx4";
+                       reg = <0 0xfe870000 0 0x2000>;
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 822>;
+                       power-domains = <&sysc R8A7795_PD_A3VC>;
+                       resets = <&cpg 822>;
+               };
+
+               imr-lx4@fe880000 {
+                       compatible = "renesas,r8a7795-imr-lx4",
+                                    "renesas,imr-lx4";
+                       reg = <0 0xfe880000 0 0x2000>;
+                       interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 821>;
+                       power-domains = <&sysc R8A7795_PD_A3VC>;
+                       resets = <&cpg 821>;
+               };
+
+               imr-lx4@fe890000 {
+                       compatible = "renesas,r8a7795-imr-lx4",
+                                    "renesas,imr-lx4";
+                       reg = <0 0xfe890000 0 0x2000>;
+                       interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 820>;
+                       power-domains = <&sysc R8A7795_PD_A3VC>;
+                       resets = <&cpg 820>;
+               };
+
                vspbc: vsp@fe920000 {
                        compatible = "renesas,vsp2";
                        reg = <0 0xfe920000 0 0x8000>;
                };
 
                du: display@feb00000 {
+                       compatible = "renesas,du-r8a7795";
                        reg = <0 0xfeb00000 0 0x80000>,
                              <0 0xfeb90000 0 0x14>;
                        reg-names = "du", "lvds.0";
                                 <&cpg CPG_MOD 721>,
                                 <&cpg CPG_MOD 727>;
                        clock-names = "du.0", "du.1", "du.2", "du.3", "lvds.0";
+                       vsps = <&vspd0 0 &vspd1 0 &vspd2 0 &vspd0 1>;
                        status = "disabled";
 
                        ports {
index 38b58b7fca4bf0e9a309a1f9a27f91cb26d9e785..daee1f1a3f68951b4a7615305d219bd4fa990469 100644 (file)
@@ -9,8 +9,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7796_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7796.dtsi"
 #include "ulcb.dtsi"
                reg = <0x6 0x00000000 0x0 0x40000000>;
        };
 };
+
+&du {
+       clocks = <&cpg CPG_MOD 724>,
+                <&cpg CPG_MOD 723>,
+                <&cpg CPG_MOD 722>,
+                <&cpg CPG_MOD 727>,
+                <&versaclock5 1>,
+                <&versaclock5 3>,
+                <&versaclock5 2>;
+       clock-names = "du.0", "du.1", "du.2", "lvds.0",
+                     "dclkin.0", "dclkin.1", "dclkin.2";
+};
index db4f162d6bdd2c42e13af8057b866498c0bf6c39..b317be03306e69f8ae7357f310c4764b395b1787 100644 (file)
@@ -8,8 +8,6 @@
  * kind, whether express or implied.
  */
 
-#define CPG_AUDIO_CLK_I                R8A7796_CLK_S0D4
-
 /dts-v1/;
 #include "r8a7796.dtsi"
 #include "salvator-x.dtsi"
                reg = <0x6 0x00000000 0x0 0x80000000>;
        };
 };
+
+&du {
+       clocks = <&cpg CPG_MOD 724>,
+                <&cpg CPG_MOD 723>,
+                <&cpg CPG_MOD 722>,
+                <&cpg CPG_MOD 727>,
+                <&versaclock5 1>,
+                <&x21_clk>,
+                <&versaclock5 2>;
+       clock-names = "du.0", "du.1", "du.2", "lvds.0",
+                     "dclkin.0", "dclkin.1", "dclkin.2";
+};
+
+&hdmi0 {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+                       rcar_dw_hdmi0_out: endpoint {
+                               remote-endpoint = <&hdmi0_con>;
+                       };
+               };
+       };
+};
+
+&hdmi0_con {
+       remote-endpoint = <&rcar_dw_hdmi0_out>;
+};
index 1f671091204524e84600c66e697bc57a07d704d6..369092e17e3412914d3204d7f308d57fed3cb152 100644 (file)
@@ -12,6 +12,8 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/r8a7796-sysc.h>
 
+#define CPG_AUDIO_CLK_I                R8A7796_CLK_S0D4
+
 / {
        compatible = "renesas,r8a7796";
        #address-cells = <2>;
                        };
                };
 
+               drif00: rif@e6f40000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f40000 0 0x64>;
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 515>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x20>, <&dmac2 0x20>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 515>;
+                       renesas,bonding = <&drif01>;
+                       status = "disabled";
+               };
+
+               drif01: rif@e6f50000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f50000 0 0x64>;
+                       interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 514>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x22>, <&dmac2 0x22>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 514>;
+                       renesas,bonding = <&drif00>;
+                       status = "disabled";
+               };
+
+               drif10: rif@e6f60000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f60000 0 0x64>;
+                       interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 513>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x24>, <&dmac2 0x24>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 513>;
+                       renesas,bonding = <&drif11>;
+                       status = "disabled";
+               };
+
+               drif11: rif@e6f70000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f70000 0 0x64>;
+                       interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 512>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x26>, <&dmac2 0x26>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 512>;
+                       renesas,bonding = <&drif10>;
+                       status = "disabled";
+               };
+
+               drif20: rif@e6f80000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f80000 0 0x64>;
+                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 511>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x28>, <&dmac2 0x28>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 511>;
+                       renesas,bonding = <&drif21>;
+                       status = "disabled";
+               };
+
+               drif21: rif@e6f90000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6f90000 0 0x64>;
+                       interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 510>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x2a>, <&dmac2 0x2a>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 510>;
+                       renesas,bonding = <&drif20>;
+                       status = "disabled";
+               };
+
+               drif30: rif@e6fa0000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6fa0000 0 0x64>;
+                       interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 509>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x2c>, <&dmac2 0x2c>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 509>;
+                       renesas,bonding = <&drif31>;
+                       status = "disabled";
+               };
+
+               drif31: rif@e6fb0000 {
+                       compatible = "renesas,r8a7796-drif",
+                                    "renesas,rcar-gen3-drif";
+                       reg = <0 0xe6fb0000 0 0x64>;
+                       interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 508>;
+                       clock-names = "fck";
+                       dmas = <&dmac1 0x2e>, <&dmac2 0x2e>;
+                       dma-names = "rx", "rx";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 508>;
+                       renesas,bonding = <&drif30>;
+                       status = "disabled";
+               };
+
                avb: ethernet@e6800000 {
                        compatible = "renesas,etheravb-r8a7796",
                                     "renesas,etheravb-rcar-gen3";
                        clocks = <&cpg CPG_MOD 211>;
                        dmas = <&dmac1 0x41>, <&dmac1 0x40>,
                               <&dmac2 0x41>, <&dmac2 0x40>;
-                       dma-names = "tx", "rx";
+                       dma-names = "tx", "rx", "tx", "rx";
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 211>;
                        #address-cells = <1>;
                        clocks = <&cpg CPG_MOD 210>;
                        dmas = <&dmac1 0x43>, <&dmac1 0x42>,
                               <&dmac2 0x43>, <&dmac2 0x42>;
-                       dma-names = "tx", "rx";
+                       dma-names = "tx", "rx", "tx", "rx";
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 210>;
                        #address-cells = <1>;
                        dma-channels = <16>;
                };
 
+               usb_dmac0: dma-controller@e65a0000 {
+                       compatible = "renesas,r8a7796-usb-dmac",
+                                    "renesas,usb-dmac";
+                       reg = <0 0xe65a0000 0 0x100>;
+                       interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH
+                                     GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch0", "ch1";
+                       clocks = <&cpg CPG_MOD 330>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 330>;
+                       #dma-cells = <1>;
+                       dma-channels = <2>;
+               };
+
+               usb_dmac1: dma-controller@e65b0000 {
+                       compatible = "renesas,r8a7796-usb-dmac",
+                                    "renesas,usb-dmac";
+                       reg = <0 0xe65b0000 0 0x100>;
+                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH
+                                     GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch0", "ch1";
+                       clocks = <&cpg CPG_MOD 331>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 331>;
+                       #dma-cells = <1>;
+                       dma-channels = <2>;
+               };
+
                hsusb: usb@e6590000 {
-                       /* placeholder */
+                       compatible = "renesas,usbhs-r8a7796",
+                                    "renesas,rcar-gen3-usbhs";
+                       reg = <0 0xe6590000 0 0x100>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 704>;
+                       dmas = <&usb_dmac0 0>, <&usb_dmac0 1>,
+                              <&usb_dmac1 0>, <&usb_dmac1 1>;
+                       dma-names = "ch0", "ch1", "ch2", "ch3";
+                       renesas,buswait = <11>;
+                       phys = <&usb2_phy0>;
+                       phy-names = "usb";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 704>;
+                       status = "disabled";
                };
 
                xhci0: usb@ee000000 {
-                       /* placeholder */
+                       compatible = "renesas,xhci-r8a7796",
+                                    "renesas,rcar-gen3-xhci";
+                       reg = <0 0xee000000 0 0xc00>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 328>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 328>;
+                       status = "disabled";
                };
 
                ohci0: usb@ee080000 {
-                       /* placeholder */
+                       compatible = "generic-ohci";
+                       reg = <0 0xee080000 0 0x100>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 703>;
+                       phys = <&usb2_phy0>;
+                       phy-names = "usb";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 703>;
+                       status = "disabled";
                };
 
                ehci0: usb@ee080100 {
-                       /* placeholder */
+                       compatible = "generic-ehci";
+                       reg = <0 0xee080100 0 0x100>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 703>;
+                       phys = <&usb2_phy0>;
+                       phy-names = "usb";
+                       companion= <&ohci0>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 703>;
+                       status = "disabled";
                };
 
                usb2_phy0: usb-phy@ee080200 {
-                       /* placeholder */
+                       compatible = "renesas,usb2-phy-r8a7796",
+                                    "renesas,rcar-gen3-usb2-phy";
+                       reg = <0 0xee080200 0 0x700>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 703>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 703>;
+                       #phy-cells = <0>;
+                       status = "disabled";
                };
 
                ohci1: usb@ee0a0000 {
-                       /* placeholder */
+                       compatible = "generic-ohci";
+                       reg = <0 0xee0a0000 0 0x100>;
+                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 702>;
+                       phys = <&usb2_phy1>;
+                       phy-names = "usb";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 702>;
+                       status = "disabled";
                };
 
                ehci1: usb@ee0a0100 {
-                       /* placeholder */
+                       compatible = "generic-ehci";
+                       reg = <0 0xee0a0100 0 0x100>;
+                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 702>;
+                       phys = <&usb2_phy1>;
+                       phy-names = "usb";
+                       companion= <&ohci1>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 702>;
+                       status = "disabled";
                };
 
                usb2_phy1: usb-phy@ee0a0200 {
-                       /* placeholder */
+                       compatible = "renesas,usb2-phy-r8a7796",
+                                    "renesas,rcar-gen3-usb2-phy";
+                       reg = <0 0xee0a0200 0 0x700>;
+                       clocks = <&cpg CPG_MOD 702>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 702>;
+                       #phy-cells = <0>;
+                       status = "disabled";
                };
 
                sdhi0: sd@ee100000 {
                        /* placeholder */
                };
 
+               fcpf0: fcp@fe950000 {
+                       compatible = "renesas,fcpf";
+                       reg = <0 0xfe950000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 615>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 615>;
+               };
+
+               vspb: vsp@fe960000 {
+                       compatible = "renesas,vsp2";
+                       reg = <0 0xfe960000 0 0x8000>;
+                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 626>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 626>;
+
+                       renesas,fcp = <&fcpvb0>;
+               };
+
+               fcpvb0: fcp@fe96f000 {
+                       compatible = "renesas,fcpv";
+                       reg = <0 0xfe96f000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 607>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 607>;
+               };
+
+               vspi0: vsp@fe9a0000 {
+                       compatible = "renesas,vsp2";
+                       reg = <0 0xfe9a0000 0 0x8000>;
+                       interrupts = <GIC_SPI 444 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 631>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 631>;
+
+                       renesas,fcp = <&fcpvi0>;
+               };
+
+               fcpvi0: fcp@fe9af000 {
+                       compatible = "renesas,fcpv";
+                       reg = <0 0xfe9af000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 611>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 611>;
+               };
+
+               vspd0: vsp@fea20000 {
+                       compatible = "renesas,vsp2";
+                       reg = <0 0xfea20000 0 0x4000>;
+                       interrupts = <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 623>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 623>;
+
+                       renesas,fcp = <&fcpvd0>;
+               };
+
+               fcpvd0: fcp@fea27000 {
+                       compatible = "renesas,fcpv";
+                       reg = <0 0xfea27000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 603>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 603>;
+               };
+
+               vspd1: vsp@fea28000 {
+                       compatible = "renesas,vsp2";
+                       reg = <0 0xfea28000 0 0x4000>;
+                       interrupts = <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 622>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 622>;
+
+                       renesas,fcp = <&fcpvd1>;
+               };
+
+               fcpvd1: fcp@fea2f000 {
+                       compatible = "renesas,fcpv";
+                       reg = <0 0xfea2f000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 602>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 602>;
+               };
+
+               vspd2: vsp@fea30000 {
+                       compatible = "renesas,vsp2";
+                       reg = <0 0xfea30000 0 0x4000>;
+                       interrupts = <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 621>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 621>;
+
+                       renesas,fcp = <&fcpvd2>;
+               };
+
+               fcpvd2: fcp@fea37000 {
+                       compatible = "renesas,fcpv";
+                       reg = <0 0xfea37000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 601>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 601>;
+               };
+
+               hdmi0: hdmi@fead0000 {
+                       compatible = "renesas,r8a7796-hdmi", "renesas,rcar-gen3-hdmi";
+                       reg = <0 0xfead0000 0 0x10000>;
+                       interrupts = <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 729>, <&cpg CPG_CORE R8A7796_CLK_HDMI>;
+                       clock-names = "iahb", "isfr";
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 729>;
+                       status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       dw_hdmi0_in: endpoint {
+                                               remote-endpoint = <&du_out_hdmi0>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                               };
+                       };
+               };
+
                du: display@feb00000 {
-                       /* placeholder */
+                       compatible = "renesas,du-r8a7796";
+                       reg = <0 0xfeb00000 0 0x70000>,
+                             <0 0xfeb90000 0 0x14>;
+                       reg-names = "du", "lvds.0";
+                       interrupts = <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 724>,
+                                <&cpg CPG_MOD 723>,
+                                <&cpg CPG_MOD 722>,
+                                <&cpg CPG_MOD 727>;
+                       clock-names = "du.0", "du.1", "du.2", "lvds.0";
+                       status = "disabled";
+
+                       vsps = <&vspd0 &vspd1 &vspd2>;
 
                        ports {
                                #address-cells = <1>;
                                        du_out_rgb: endpoint {
                                        };
                                };
+                               port@1 {
+                                       reg = <1>;
+                                       du_out_hdmi0: endpoint {
+                                               remote-endpoint = <&dw_hdmi0_in>;
+                                       };
+                               };
+                               port@2 {
+                                       reg = <2>;
+                                       du_out_lvds0: endpoint {
+                                       };
+                               };
                        };
                };
+
+               imr-lx4@fe860000 {
+                       compatible = "renesas,r8a7796-imr-lx4",
+                                    "renesas,imr-lx4";
+                       reg = <0 0xfe860000 0 0x2000>;
+                       interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 823>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 823>;
+               };
+
+               imr-lx4@fe870000 {
+                       compatible = "renesas,r8a7796-imr-lx4",
+                                    "renesas,imr-lx4";
+                       reg = <0 0xfe870000 0 0x2000>;
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 822>;
+                       power-domains = <&sysc R8A7796_PD_A3VC>;
+                       resets = <&cpg 822>;
+               };
        };
 };
diff --git a/arch/arm64/boot/dts/renesas/r8a77995-draak.dts b/arch/arm64/boot/dts/renesas/r8a77995-draak.dts
new file mode 100644 (file)
index 0000000..d144370
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Device Tree Source for the Draak board
+ *
+ * Copyright (C) 2016 Renesas Electronics Corp.
+ * Copyright (C) 2017 Glider bvba
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+/dts-v1/;
+#include "r8a77995.dtsi"
+
+/ {
+       model = "Renesas Draak board based on r8a77995";
+       compatible = "renesas,draak", "renesas,r8a77995";
+
+       aliases {
+               serial0 = &scif2;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@48000000 {
+               device_type = "memory";
+               /* first 128MB is reserved for secure area. */
+               reg = <0x0 0x48000000 0x0 0x18000000>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <48000000>;
+};
+
+&scif2 {
+       status = "okay";
+};
+
+&rwdt {
+       timeout-sec = <60>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a77995.dtsi b/arch/arm64/boot/dts/renesas/r8a77995.dtsi
new file mode 100644 (file)
index 0000000..d0f95b7
--- /dev/null
@@ -0,0 +1,155 @@
+/*
+ * Device Tree Source for the r8a77995 SoC
+ *
+ * Copyright (C) 2016 Renesas Electronics Corp.
+ * Copyright (C) 2017 Glider bvba
+ *
+ * This file is licensed under the terms of the GNU General Public License
+ * version 2.  This program is licensed "as is" without any warranty of any
+ * kind, whether express or implied.
+ */
+
+#include <dt-bindings/clock/renesas-cpg-mssr.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "renesas,r8a77995";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       psci {
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+               method = "smc";
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               a53_0: cpu@0 {
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0x0>;
+                       device_type = "cpu";
+                       power-domains = <&sysc 5>;
+                       next-level-cache = <&L2_CA53>;
+                       enable-method = "psci";
+               };
+
+               L2_CA53: cache-controller-1 {
+                       compatible = "cache";
+                       power-domains = <&sysc 21>;
+                       cache-unified;
+                       cache-level = <2>;
+               };
+       };
+
+       extal_clk: extal {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       scif_clk: scif {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
+       soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gic: interrupt-controller@f1010000 {
+                       compatible = "arm,gic-400";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x0 0xf1010000 0 0x1000>,
+                             <0x0 0xf1020000 0 0x20000>,
+                             <0x0 0xf1040000 0 0x20000>,
+                             <0x0 0xf1060000 0 0x20000>;
+                       interrupts = <GIC_PPI 9
+                                       (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+                       clocks = <&cpg CPG_MOD 408>;
+                       clock-names = "clk";
+                       power-domains = <&sysc 32>;
+                       resets = <&cpg 408>;
+               };
+
+               timer {
+                       compatible = "arm,armv8-timer";
+                       interrupts = <GIC_PPI 13
+                                       (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 14
+                                       (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 11
+                                       (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                    <GIC_PPI 10
+                                       (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+               };
+
+               rwdt: watchdog@e6020000 {
+                       compatible = "renesas,r8a77995-wdt",
+                                    "renesas,rcar-gen3-wdt";
+                       reg = <0 0xe6020000 0 0x0c>;
+                       clocks = <&cpg CPG_MOD 402>;
+                       power-domains = <&sysc 32>;
+                       resets = <&cpg 402>;
+                       status = "disabled";
+               };
+
+               pmu_a53 {
+                       compatible = "arm,cortex-a53-pmu";
+                       interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               cpg: clock-controller@e6150000 {
+                       compatible = "renesas,r8a77995-cpg-mssr";
+                       reg = <0 0xe6150000 0 0x1000>;
+                       clocks = <&extal_clk>;
+                       clock-names = "extal";
+                       #clock-cells = <2>;
+                       #power-domain-cells = <0>;
+                       #reset-cells = <1>;
+               };
+
+               rst: reset-controller@e6160000 {
+                       compatible = "renesas,r8a77995-rst";
+                       reg = <0 0xe6160000 0 0x0200>;
+               };
+
+               pfc: pfc@e6060000 {
+                       compatible = "renesas,pfc-r8a77995";
+                       reg = <0 0xe6060000 0 0x508>;
+               };
+
+               prr: chipid@fff00044 {
+                       compatible = "renesas,prr";
+                       reg = <0 0xfff00044 0 4>;
+               };
+
+               sysc: system-controller@e6180000 {
+                       compatible = "renesas,r8a77995-sysc";
+                       reg = <0 0xe6180000 0 0x0400>;
+                       #power-domain-cells = <1>;
+               };
+
+               scif2: serial@e6e88000 {
+                       compatible = "renesas,scif-r8a77995",
+                                    "renesas,rcar-gen3-scif", "renesas,scif";
+                       reg = <0 0xe6e88000 0 64>;
+                       interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 310>,
+                                <&cpg CPG_CORE 16>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc 32>;
+                       resets = <&cpg 310>;
+                       status = "disabled";
+               };
+       };
+};
index f903957da504a9e02fa910243b60388dc85ec959..4786c67b5e6527fd99d27aa969ef0b2d4274b4ad 100644 (file)
                                remote-endpoint = <&adv7123_in>;
                        };
                };
-               port@3 {
-                       lvds_connector: endpoint {
-                       };
-               };
        };
 };
 
index 81227e3c2c6f1e2d3899e3ea0c824413c3a537a6..bf4d200fb54635eaa448688af444045145a18a96 100644 (file)
 &extal_clk {
        clock-frequency = <16640000>;
 };
+
+&i2c4 {
+       versaclock6: clock-generator@6a {
+               compatible = "idt,5p49v6901";
+               reg = <0x6a>;
+               #clock-cells = <1>;
+               clocks = <&x23_clk>;
+               clock-names = "xin";
+       };
+};
index d1a3f3b7a0ab0b97aff29a898813a023a7d5bd3d..1b868df2393ffa3dd07ac2ab6c221e9c5c4c9898 100644 (file)
                clock-frequency = <11289600>;
        };
 
+       hdmi0-out {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi0_con: endpoint {
+                       };
+               };
+       };
+
        keyboard {
                compatible = "gpio-keys";
 
                #clock-cells = <0>;
                clock-frequency = <24576000>;
        };
+
+       x23_clk: x23-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <25000000>;
+       };
 };
 
 &audio_clk_a {
        clock-frequency = <32768>;
 };
 
+&hdmi0 {
+       status = "okay";
+
+       ports {
+               port@1 {
+                       reg = <1>;
+                       rcar_dw_hdmi0_out: endpoint {
+                               remote-endpoint = <&hdmi0_con>;
+                       };
+               };
+       };
+};
+
+&hdmi0_con {
+       remote-endpoint = <&rcar_dw_hdmi0_out>;
+};
+
 &i2c2 {
        pinctrl-0 = <&i2c2_pins>;
        pinctrl-names = "default";
        };
 };
 
+&i2c4 {
+       status = "okay";
+
+       clock-frequency = <400000>;
+
+       versaclock5: clock-generator@6a {
+               compatible = "idt,5p49v5925";
+               reg = <0x6a>;
+               #clock-cells = <1>;
+               clocks = <&x23_clk>;
+               clock-names = "xin";
+       };
+};
+
+&i2c_dvfs {
+       status = "okay";
+};
+
 &ohci1 {
        status = "okay";
 };
index bcfa53b1e6b7ef7e310ba731c090c10fac657bfc..f1c9b13cea5c21ce89efec347c61593e092a681e 100644 (file)
@@ -1,4 +1,5 @@
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-evb.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb
@@ -7,6 +8,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb
 
 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
index b9f36dad17e6dda378c486e98e202aaac00234ab..8e6a6543175673d6fd9e3d7e5d370b29ac7a2c50 100644 (file)
                stdout-path = "serial2:1500000n8";
        };
 
+       dc_12v: dc-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc_sys: vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+       };
+
        vcc_phy: vcc-phy-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc_phy";
        status = "okay";
 };
 
+&i2c1 {
+       status = "okay";
+
+       rk805: rk805@18 {
+               compatible = "rockchip,rk805";
+               reg = <0x18>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk805-clkout2";
+               gpio-controller;
+               #gpio-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc5-supply = <&vcc_io>;
+               vcc6-supply = <&vcc_io>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-min-microvolt = <712500>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <712500>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_io: DCDC_REG4 {
+                               regulator-name = "vcc_io";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_18: LDO_REG1 {
+                               regulator-name = "vcc_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc18_emmc: LDO_REG2 {
+                               regulator-name = "vcc18_emmc";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_10: LDO_REG3 {
+                               regulator-name = "vdd_10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
 &uart2 {
        status = "okay";
 };
+
+&u2phy {
+       status = "okay";
+};
+
+&u2phy_host {
+       status = "okay";
+};
+
+&u2phy_otg {
+       status = "okay";
+};
+
+&usb20_otg {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
new file mode 100644 (file)
index 0000000..d4f8078
--- /dev/null
@@ -0,0 +1,333 @@
+/*
+ * Copyright (c) 2017 PINE64
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This library is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This library is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "rk3328.dtsi"
+
+/ {
+       model = "Pine64 Rock64";
+       compatible = "pine64,rock64", "rockchip,rk3328";
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       gmac_clkin: external-gmac-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac_clkin";
+               #clock-cells = <0>;
+       };
+
+       vcc_sd: sdmmc-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc0m1_gpio>;
+               regulator-name = "vcc_sd";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_io>;
+       };
+
+       vcc_host_5v: vcc-host-5v-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb30_host_drv>;
+               regulator-name = "vcc_host_5v";
+               regulator-always-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb20_host_drv>;
+               regulator-name = "vcc_host1_5v";
+               regulator-always-on;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc_sys: vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&emmc {
+       bus-width = <8>;
+       cap-mmc-highspeed;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
+       vmmc-supply = <&vcc_io>;
+       vqmmc-supply = <&vcc18_emmc>;
+       status = "okay";
+};
+
+&gmac2io {
+       assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
+       assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
+       clock_in_out = "input";
+       phy-supply = <&vcc_io>;
+       phy-mode = "rgmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmiim1_pins>;
+       snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 50000>;
+       tx_delay = <0x26>;
+       rx_delay = <0x11>;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       rk805: rk805@18 {
+               compatible = "rockchip,rk805";
+               reg = <0x18>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk805-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc5-supply = <&vcc_io>;
+               vcc6-supply = <&vcc_sys>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-min-microvolt = <712500>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <712500>;
+                               regulator-max-microvolt = <1450000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_io: DCDC_REG4 {
+                               regulator-name = "vcc_io";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_18: LDO_REG1 {
+                               regulator-name = "vdd_18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc18_emmc: LDO_REG2 {
+                               regulator-name = "vcc_18emmc";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_10: LDO_REG3 {
+                               regulator-name = "vdd_10";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+               };
+       };
+};
+
+&io_domains {
+       status = "okay";
+
+       vccio1-supply = <&vcc_io>;
+       vccio2-supply = <&vcc18_emmc>;
+       vccio3-supply = <&vcc_io>;
+       vccio4-supply = <&vcc_18>;
+       vccio5-supply = <&vcc_io>;
+       vccio6-supply = <&vcc_io>;
+       pmuio-supply = <&vcc_io>;
+};
+
+&pinctrl {
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb2 {
+               usb20_host_drv: usb20-host-drv {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb3 {
+               usb30_host_drv: usb30-host-drv {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <150000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
+       vmmc-supply = <&vcc_sd>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <0>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+
+       u2phy_host: host-port {
+               status = "okay";
+       };
+
+       u2phy_otg: otg-port {
+               status = "okay";
+       };
+};
+
+&usb20_otg {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
index d48bf5d9f8bd04c03d21b9f2d7be42a654b0c15f..6d615cb6e64d07cebcfa0a7ecebf04b8afb152b2 100644 (file)
@@ -47,6 +47,7 @@
 #include <dt-bindings/pinctrl/rockchip.h>
 #include <dt-bindings/power/rk3328-power.h>
 #include <dt-bindings/soc/rockchip,boot-mode.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        compatible = "rockchip,rk3328";
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x0>;
                        clocks = <&cru ARMCLK>;
+                       #cooling-cells = <2>;
+                       dynamic-power-coefficient = <120>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       operating-points-v2 = <&cpu0_opp_table>;
                };
 
                cpu1: cpu@1 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x1>;
                        clocks = <&cru ARMCLK>;
+                       dynamic-power-coefficient = <120>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       operating-points-v2 = <&cpu0_opp_table>;
                };
 
                cpu2: cpu@2 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x2>;
                        clocks = <&cru ARMCLK>;
+                       dynamic-power-coefficient = <120>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       operating-points-v2 = <&cpu0_opp_table>;
                };
 
                cpu3: cpu@3 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x3>;
                        clocks = <&cru ARMCLK>;
+                       dynamic-power-coefficient = <120>;
                        enable-method = "psci";
                        next-level-cache = <&l2>;
+                       operating-points-v2 = <&cpu0_opp_table>;
                };
 
                l2: l2-cache0 {
                };
        };
 
+       cpu0_opp_table: opp_table0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-408000000 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <950000>;
+                       clock-latency-ns = <40000>;
+                       opp-suspend;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-816000000 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <1000000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1008000000 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1225000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp-1296000000 {
+                       opp-hz = /bits/ 64 <1296000000>;
+                       opp-microvolt = <1300000>;
+                       clock-latency-ns = <40000>;
+               };
+       };
+
        amba {
                compatible = "simple-bus";
                #address-cells = <2>;
                clock-output-names = "xin24m";
        };
 
+       i2s0: i2s@ff000000 {
+               compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xff000000 0x0 0x1000>;
+               interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_I2S0>, <&cru HCLK_I2S0_8CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               dmas = <&dmac 11>, <&dmac 12>;
+               dma-names = "tx", "rx";
+               status = "disabled";
+       };
+
+       i2s1: i2s@ff010000 {
+               compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xff010000 0x0 0x1000>;
+               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_I2S1>, <&cru HCLK_I2S1_8CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               dmas = <&dmac 14>, <&dmac 15>;
+               dma-names = "tx", "rx";
+               status = "disabled";
+       };
+
+       i2s2: i2s@ff020000 {
+               compatible = "rockchip,rk3328-i2s", "rockchip,rk3066-i2s";
+               reg = <0x0 0xff020000 0x0 0x1000>;
+               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_I2S2>, <&cru HCLK_I2S2_2CH>;
+               clock-names = "i2s_clk", "i2s_hclk";
+               dmas = <&dmac 0>, <&dmac 1>;
+               dma-names = "tx", "rx";
+               status = "disabled";
+       };
+
+       spdif: spdif@ff030000 {
+               compatible = "rockchip,rk3328-spdif";
+               reg = <0x0 0xff030000 0x0 0x1000>;
+               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SPDIF>, <&cru HCLK_SPDIF_8CH>;
+               clock-names = "mclk", "hclk";
+               dmas = <&dmac 10>;
+               dma-names = "tx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdifm2_tx>;
+               status = "disabled";
+       };
+
+       pdm: pdm@ff040000 {
+               compatible = "rockchip,pdm";
+               reg = <0x0 0xff040000 0x0 0x1000>;
+               clocks = <&cru SCLK_PDM>, <&cru HCLK_PDM>;
+               clock-names = "pdm_clk", "pdm_hclk";
+               dmas = <&dmac 16>;
+               dma-names = "rx";
+               pinctrl-names = "default", "sleep";
+               pinctrl-0 = <&pdmm0_clk
+                            &pdmm0_sdi0
+                            &pdmm0_sdi1
+                            &pdmm0_sdi2
+                            &pdmm0_sdi3>;
+               pinctrl-1 = <&pdmm0_clk_sleep
+                            &pdmm0_sdi0_sleep
+                            &pdmm0_sdi1_sleep
+                            &pdmm0_sdi2_sleep
+                            &pdmm0_sdi3_sleep>;
+               status = "disabled";
+       };
+
        grf: syscon@ff100000 {
                compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
                reg = <0x0 0xff100000 0x0 0x1000>;
                #address-cells = <1>;
                #size-cells = <1>;
 
+               io_domains: io-domains {
+                       compatible = "rockchip,rk3328-io-voltage-domain";
+                       status = "disabled";
+               };
+
                power: power-controller {
                        compatible = "rockchip,rk3328-power-controller";
                        #power-domain-cells = <1>;
                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
        };
 
+       pwm0: pwm@ff1b0000 {
+               compatible = "rockchip,rk3328-pwm";
+               reg = <0x0 0xff1b0000 0x0 0x10>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm0_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm1: pwm@ff1b0010 {
+               compatible = "rockchip,rk3328-pwm";
+               reg = <0x0 0xff1b0010 0x0 0x10>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm1_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm2: pwm@ff1b0020 {
+               compatible = "rockchip,rk3328-pwm";
+               reg = <0x0 0xff1b0020 0x0 0x10>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwm2_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       pwm3: pwm@ff1b0030 {
+               compatible = "rockchip,rk3328-pwm";
+               reg = <0x0 0xff1b0030 0x0 0x10>;
+               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_PWM>, <&cru PCLK_PWM>;
+               clock-names = "pwm", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pwmir_pin>;
+               #pwm-cells = <3>;
+               status = "disabled";
+       };
+
+       thermal-zones {
+               soc_thermal: soc-thermal {
+                       polling-delay-passive = <20>;
+                       polling-delay = <1000>;
+                       sustainable-power = <1000>;
+
+                       thermal-sensors = <&tsadc 0>;
+
+                       trips {
+                               threshold: trip-point0 {
+                                       temperature = <70000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               target: trip-point1 {
+                                       temperature = <85000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               soc_crit: soc-crit {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&target>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                       contribution = <4096>;
+                               };
+                       };
+               };
+
+       };
+
+       tsadc: tsadc@ff250000 {
+               compatible = "rockchip,rk3328-tsadc";
+               reg = <0x0 0xff250000 0x0 0x100>;
+               interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru SCLK_TSADC>;
+               assigned-clock-rates = <50000>;
+               clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
+               clock-names = "tsadc", "apb_pclk";
+               pinctrl-names = "init", "default", "sleep";
+               pinctrl-0 = <&otp_gpio>;
+               pinctrl-1 = <&otp_out>;
+               pinctrl-2 = <&otp_gpio>;
+               resets = <&cru SRST_TSADC>;
+               reset-names = "tsadc-apb";
+               rockchip,grf = <&grf>;
+               rockchip,hw-tshut-temp = <100000>;
+               #thermal-sensor-cells = <1>;
+               status = "disabled";
+       };
+
        saradc: adc@ff280000 {
                compatible = "rockchip,rk3328-saradc", "rockchip,rk3399-saradc";
                reg = <0x0 0xff280000 0x0 0x100>;
                status = "disabled";
        };
 
+       h265e_mmu: iommu@ff330200 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff330200 0 0x100>;
+               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "h265e_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vepu_mmu: iommu@ff340800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff340800 0x0 0x40>;
+               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vepu_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vpu_mmu: iommu@ff350800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff350800 0x0 0x40>;
+               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vpu_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       rkvdec_mmu: iommu@ff360480 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>;
+               interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "rkvdec_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vop_mmu: iommu@ff373f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff373f00 0x0 0x100>;
+               interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vop_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        cru: clock-controller@ff440000 {
                compatible = "rockchip,rk3328-cru", "rockchip,cru", "syscon";
                reg = <0x0 0xff440000 0x0 0x1000>;
                        <32768>;
        };
 
+       usb2phy_grf: syscon@ff450000 {
+               compatible = "rockchip,rk3328-usb2phy-grf", "syscon",
+                            "simple-mfd";
+               reg = <0x0 0xff450000 0x0 0x10000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy: usb2-phy@100 {
+                       compatible = "rockchip,rk3328-usb2phy";
+                       reg = <0x100 0x10>;
+                       clocks = <&xin24m>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy";
+                       #clock-cells = <0>;
+                       assigned-clocks = <&cru USB480M>;
+                       assigned-clock-parents = <&u2phy>;
+                       status = "disabled";
+
+                       u2phy_otg: otg-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "otg-bvalid", "otg-id",
+                                                 "linestate";
+                               status = "disabled";
+                       };
+
+                       u2phy_host: host-port {
+                               #phy-cells = <0>;
+                               interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "linestate";
+                               status = "disabled";
+                       };
+               };
+       };
+
        sdmmc: dwmmc@ff500000 {
                compatible = "rockchip,rk3328-dw-mshc", "rockchip,rk3288-dw-mshc";
                reg = <0x0 0xff500000 0x0 0x4000>;
                };
        };
 
+       usb20_otg: usb@ff580000 {
+               compatible = "rockchip,rk3328-usb", "rockchip,rk3066-usb",
+                            "snps,dwc2";
+               reg = <0x0 0xff580000 0x0 0x40000>;
+               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_OTG>;
+               clock-names = "otg";
+               dr_mode = "otg";
+               g-np-tx-fifo-size = <16>;
+               g-rx-fifo-size = <280>;
+               g-tx-fifo-size = <256 128 128 64 32 16>;
+               g-use-dma;
+               phys = <&u2phy_otg>;
+               phy-names = "usb2-phy";
+               status = "disabled";
+       };
+
+       usb_host0_ehci: usb@ff5c0000 {
+               compatible = "generic-ehci";
+               reg = <0x0 0xff5c0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST0>, <&u2phy>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
+       usb_host0_ohci: usb@ff5d0000 {
+               compatible = "generic-ohci";
+               reg = <0x0 0xff5d0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru HCLK_HOST0>, <&u2phy>;
+               clock-names = "usbhost", "utmi";
+               phys = <&u2phy_host>;
+               phy-names = "usb";
+               status = "disabled";
+       };
+
        gic: interrupt-controller@ff811000 {
                compatible = "arm,gic-400";
                #interrupt-cells = <3>;
                        };
                };
 
+               pdm-0 {
+                       pdmm0_clk: pdmm0-clk {
+                               rockchip,pins = <2 RK_PC2 2 &pcfg_pull_none>;
+                       };
+
+                       pdmm0_fsync: pdmm0-fsync {
+                               rockchip,pins = <2 RK_PC7 2 &pcfg_pull_none>;
+                       };
+
+                       pdmm0_sdi0: pdmm0-sdi0 {
+                               rockchip,pins = <2 RK_PC3 2 &pcfg_pull_none>;
+                       };
+
+                       pdmm0_sdi1: pdmm0-sdi1 {
+                               rockchip,pins = <2 RK_PC4 2 &pcfg_pull_none>;
+                       };
+
+                       pdmm0_sdi2: pdmm0-sdi2 {
+                               rockchip,pins = <2 RK_PC5 2 &pcfg_pull_none>;
+                       };
+
+                       pdmm0_sdi3: pdmm0-sdi3 {
+                               rockchip,pins = <2 RK_PC6 2 &pcfg_pull_none>;
+                       };
+
+                       pdmm0_clk_sleep: pdmm0-clk-sleep {
+                               rockchip,pins =
+                                       <2 RK_PC2 RK_FUNC_GPIO &pcfg_input_high>;
+                       };
+
+                       pdmm0_sdi0_sleep: pdmm0-sdi0-sleep {
+                               rockchip,pins =
+                                       <2 RK_PC3 RK_FUNC_GPIO &pcfg_input_high>;
+                       };
+
+                       pdmm0_sdi1_sleep: pdmm0-sdi1-sleep {
+                               rockchip,pins =
+                                       <2 RK_PC4 RK_FUNC_GPIO &pcfg_input_high>;
+                       };
+
+                       pdmm0_sdi2_sleep: pdmm0-sdi2-sleep {
+                               rockchip,pins =
+                                       <2 RK_PC5 RK_FUNC_GPIO &pcfg_input_high>;
+                       };
+
+                       pdmm0_sdi3_sleep: pdmm0-sdi3-sleep {
+                               rockchip,pins =
+                                       <2 RK_PC6 RK_FUNC_GPIO &pcfg_input_high>;
+                       };
+
+                       pdmm0_fsync_sleep: pdmm0-fsync-sleep {
+                               rockchip,pins =
+                                       <2 RK_PC7 RK_FUNC_GPIO &pcfg_input_high>;
+                       };
+               };
+
                tsadc {
                        otp_gpio: otp-gpio {
                                rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
index 4772917c5f7e6067a79cd22080741156329f215c..a37220a9387c325a1caf7e2c735ee5c776af4982 100644 (file)
        disable-wp;
        mmc-pwrseq = <&emmc_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
        status = "okay";
index e631d424f08ea64991b6d00d748819ce5328ae9c..5e4d3a7015f52de883c2a43ce38da7f5c5421993 100644 (file)
        clock-frequency = <150000000>;
        disable-wp;
        non-removable;
-       num-slots = <1>;
        vmmc-supply = <&vcc_io>;
        vqmmc-supply = <&vcc18_flash>;
        pinctrl-names = "default";
index fac116acc12fa0f65755fe3897a87347cf75fded..d3f6c8e0d206d0fcf28ade6612499fec212dcc6a 100644 (file)
        mmc-hs200-1_2v;
        mmc-hs200-1_8v;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
        status = "okay";
        max-frequency = <50000000>;
        cap-sd-highspeed;
        card-detect-delay = <200>;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
        vmmc-supply = <&vcc_sd>;
index ff48edd8e3482bcafcf4920ecdf1b93995bd5a5b..13a9e22f5d2d2caa3604a4315be98879ba069bbd 100644 (file)
        cap-mmc-highspeed;
        clock-frequency = <150000000>;
        disable-wp;
-       keep-power-in-suspend;
        mmc-hs200-1_8v;
        no-sdio;
        no-sd;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
        vmmc-supply = <&vcc_io>;
        card-detect-delay = <200>;
        no-emmc;
        no-sdio;
-       num-slots = <1>;
        sd-uhs-sdr12;
        sd-uhs-sdr25;
        pinctrl-names = "default";
index 7134181f1dc27190ee2c3be5f1161288a864d3c8..b3510d56517a63a39506e3434ce7969cc708a2d7 100644 (file)
        disable-wp;
        mmc-pwrseq = <&emmc_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
        status = "okay";
        keep-power-in-suspend;
        mmc-pwrseq = <&sdio_pwrseq>;
        non-removable;
-       num-slots = <1>;
        pinctrl-names = "default";
        pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
        vmmc-supply = <&vcc_io>;
index 6d5dc0587e599dd768ed00d0df92145a862dce1b..e0518b4bc6c2a018963787d0096077ab540b78e8 100644 (file)
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
-
+                       clocks = <&cru ARMCLKL>;
+                       operating-points-v2 = <&cluster0_opp>;
                        #cooling-cells = <2>; /* min followed by max */
                };
 
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       clocks = <&cru ARMCLKL>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu_l2: cpu@2 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       clocks = <&cru ARMCLKL>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu_l3: cpu@3 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       clocks = <&cru ARMCLKL>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu_b0: cpu@100 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x100>;
                        enable-method = "psci";
-
+                       clocks = <&cru ARMCLKB>;
+                       operating-points-v2 = <&cluster1_opp>;
                        #cooling-cells = <2>; /* min followed by max */
                };
 
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x101>;
                        enable-method = "psci";
+                       clocks = <&cru ARMCLKB>;
+                       operating-points-v2 = <&cluster1_opp>;
                };
 
                cpu_b2: cpu@102 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x102>;
                        enable-method = "psci";
+                       clocks = <&cru ARMCLKB>;
+                       operating-points-v2 = <&cluster1_opp>;
                };
 
                cpu_b3: cpu@103 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        reg = <0x0 0x103>;
                        enable-method = "psci";
+                       clocks = <&cru ARMCLKB>;
+                       operating-points-v2 = <&cluster1_opp>;
+               };
+       };
+
+       cluster0_opp: opp-table0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp00 {
+                       opp-hz = /bits/ 64 <312000000>;
+                       opp-microvolt = <950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <1025000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1125000>;
+               };
+       };
+
+       cluster1_opp: opp-table1 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp00 {
+                       opp-hz = /bits/ 64 <312000000>;
+                       opp-microvolt = <950000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <975000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <1050000>;
                };
        };
 
                interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
        };
 
+       spdif: spdif@ff880000 {
+               compatible = "rockchip,rk3368-spdif";
+               reg = <0x0 0xff880000 0x0 0x1000>;
+               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
+               clock-names = "mclk", "hclk";
+               dmas = <&dmac_bus 3>;
+               dma-names = "tx";
+               pinctrl-names = "default";
+               pinctrl-0 = <&spdif_tx>;
+               status = "disabled";
+       };
+
        i2s_2ch: i2s-2ch@ff890000 {
                compatible = "rockchip,rk3368-i2s", "rockchip,rk3066-i2s";
                reg = <0x0 0xff890000 0x0 0x1000>;
                status = "disabled";
        };
 
+       iep_mmu: iommu@ff900800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff900800 0x0 0x100>;
+               interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "iep_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       isp_mmu: iommu@ff914000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff914000 0x0 0x100>,
+                     <0x0 0xff915000 0x0 0x100>;
+               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "isp_mmu";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
+       vop_mmu: iommu@ff930300 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff930300 0x0 0x100>;
+               interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vop_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       hevc_mmu: iommu@ff9a0440 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff9a0440 0x0 0x40>,
+                     <0x0 0xff9a0480 0x0 0x40>;
+               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "hevc_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vpu_mmu: iommu@ff9a0800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff9a0800 0x0 0x100>;
+               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "vepu_mmu", "vdpu_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@ffb71000 {
                compatible = "arm,gic-400";
                interrupt-controller;
                        };
                };
 
+               spdif {
+                       spdif_tx: spdif-tx {
+                               rockchip,pins = <2 RK_PC7 RK_FUNC_1 &pcfg_pull_none>;
+                       };
+               };
+
                spi0 {
                        spi0_clk: spi0-clk {
                                rockchip,pins = <1 29 RK_FUNC_2 &pcfg_pull_up>;
index 42033bcc614cbb05b9615538bb66728ca11416df..56533c344ef2caa5d237e61aff438caf068d96e3 100644 (file)
        ep-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
        num-lanes = <4>;
        pinctrl-names = "default";
-       pinctrl-0 = <&pcie_clkreqn>;
+       pinctrl-0 = <&pcie_clkreqn_cpm>;
        status = "disabled";
 };
 
index ba1d9810ad1e29916809dc1075359c6d0244d4e7..7fd4bfcaa38e33c8b58ef60dc7adb99772b04cc1 100644 (file)
@@ -43,6 +43,7 @@
 /dts-v1/;
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
+#include "rk3399-opp.dtsi"
 
 / {
        model = "Firefly-RK3399 Board";
        ep-gpios = <&gpio4 RK_PD1 GPIO_ACTIVE_HIGH>;
        num-lanes = <4>;
        pinctrl-names = "default";
-       pinctrl-0 = <&pcie_clkreqn>;
+       pinctrl-0 = <&pcie_clkreqn_cpm>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       max-frequency = <150000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
+       status = "okay";
+};
+
 &sdhci {
        bus-width = <8>;
-       keep-power-in-suspend;
        mmc-hs400-1_8v;
        mmc-hs400-enhanced-strobe;
        non-removable;
index 7bd31066399b5859a053570a35281cec23d1d888..a3d3cea7dc4f60578e5901e13546ad36fa497f41 100644 (file)
@@ -264,6 +264,50 @@ ap_i2c_dig: &i2c2 {
        };
 };
 
+&ppvar_bigcpu_pwm {
+       regulator-min-microvolt = <798674>;
+       regulator-max-microvolt = <1302172>;
+};
+
+&ppvar_bigcpu {
+       regulator-min-microvolt = <798674>;
+       regulator-max-microvolt = <1302172>;
+       ctrl-voltage-range = <798674 1302172>;
+};
+
+&ppvar_litcpu_pwm {
+       regulator-min-microvolt = <799065>;
+       regulator-max-microvolt = <1303738>;
+};
+
+&ppvar_litcpu {
+       regulator-min-microvolt = <799065>;
+       regulator-max-microvolt = <1303738>;
+       ctrl-voltage-range = <799065 1303738>;
+};
+
+&ppvar_gpu_pwm {
+       regulator-min-microvolt = <785782>;
+       regulator-max-microvolt = <1217729>;
+};
+
+&ppvar_gpu {
+       regulator-min-microvolt = <785782>;
+       regulator-max-microvolt = <1217729>;
+       ctrl-voltage-range = <785782 1217729>;
+};
+
+&ppvar_centerlogic_pwm {
+       regulator-min-microvolt = <800069>;
+       regulator-max-microvolt = <1049692>;
+};
+
+&ppvar_centerlogic {
+       regulator-min-microvolt = <800069>;
+       regulator-max-microvolt = <1049692>;
+       ctrl-voltage-range = <800069 1049692>;
+};
+
 &saradc {
        status = "okay";
        vref-supply = <&pp1800_ap_io>;
index eb505934402311f8b6b4621bb1d79b8965b0648e..199a5118b20dab39f744dfc21814b1a9dafb166f 100644 (file)
                vin-supply = <&ppvar_sys>;
        };
 
-       ppvar_bigcpu: ppvar-bigcpu {
+       ppvar_bigcpu_pwm: ppvar-bigcpu-pwm {
                compatible = "pwm-regulator";
-               regulator-name = "ppvar_bigcpu";
-               /*
-                * OVP circuit requires special handling which is not yet
-                * represented. Keep disabled for now.
-                */
-               status = "disabled";
+               regulator-name = "ppvar_bigcpu_pwm";
 
                pwms = <&pwm1 0 3337 0>;
                pwm-supply = <&ppvar_sys>;
                /* EC turns on w/ ap_core_en; always on for AP */
                regulator-always-on;
                regulator-boot-on;
-               regulator-min-microvolt = <798674>;
-               regulator-max-microvolt = <1302172>;
+               regulator-min-microvolt = <800107>;
+               regulator-max-microvolt = <1302232>;
        };
 
-       ppvar_litcpu: ppvar-litcpu {
+       ppvar_bigcpu: ppvar-bigcpu {
+               compatible = "vctrl-regulator";
+               regulator-name = "ppvar_bigcpu";
+
+               regulator-min-microvolt = <800107>;
+               regulator-max-microvolt = <1302232>;
+
+               ctrl-supply = <&ppvar_bigcpu_pwm>;
+               ctrl-voltage-range = <800107 1302232>;
+
+               regulator-settling-time-up-us = <322>;
+               min-slew-down-rate = <225>;
+               ovp-threshold-percent = <16>;
+       };
+
+       ppvar_litcpu_pwm: ppvar-litcpu-pwm {
                compatible = "pwm-regulator";
-               regulator-name = "ppvar_litcpu";
-               /*
-                * OVP circuit requires special handling which is not yet
-                * represented. Keep disabled for now.
-                */
-               status = "disabled";
+               regulator-name = "ppvar_litcpu_pwm";
 
                pwms = <&pwm2 0 3337 0>;
                pwm-supply = <&ppvar_sys>;
                /* EC turns on w/ ap_core_en; always on for AP */
                regulator-always-on;
                regulator-boot-on;
-               regulator-min-microvolt = <799065>;
-               regulator-max-microvolt = <1303738>;
+               regulator-min-microvolt = <797743>;
+               regulator-max-microvolt = <1307837>;
        };
 
-       ppvar_gpu: ppvar-gpu {
+       ppvar_litcpu: ppvar-litcpu {
+               compatible = "vctrl-regulator";
+               regulator-name = "ppvar_litcpu";
+
+               regulator-min-microvolt = <797743>;
+               regulator-max-microvolt = <1307837>;
+
+               ctrl-supply = <&ppvar_litcpu_pwm>;
+               ctrl-voltage-range = <797743 1307837>;
+
+               regulator-settling-time-up-us = <384>;
+               min-slew-down-rate = <225>;
+               ovp-threshold-percent = <16>;
+       };
+
+       ppvar_gpu_pwm: ppvar-gpu-pwm {
                compatible = "pwm-regulator";
-               regulator-name = "ppvar_gpu";
-               /*
-                * OVP circuit requires special handling which is not yet
-                * represented. Keep disabled for now.
-                */
-               status = "disabled";
+               regulator-name = "ppvar_gpu_pwm";
 
                pwms = <&pwm0 0 3337 0>;
                pwm-supply = <&ppvar_sys>;
                /* EC turns on w/ ap_core_en; always on for AP */
                regulator-always-on;
                regulator-boot-on;
-               regulator-min-microvolt = <785782>;
-               regulator-max-microvolt = <1217729>;
+               regulator-min-microvolt = <786384>;
+               regulator-max-microvolt = <1217747>;
        };
 
-       ppvar_centerlogic: ppvar-centerlogic {
+       ppvar_gpu: ppvar-gpu {
+               compatible = "vctrl-regulator";
+               regulator-name = "ppvar_gpu";
+
+               regulator-min-microvolt = <786384>;
+               regulator-max-microvolt = <1217747>;
+
+               ctrl-supply = <&ppvar_gpu_pwm>;
+               ctrl-voltage-range = <786384 1217747>;
+
+               regulator-settling-time-up-us = <390>;
+               min-slew-down-rate = <225>;
+               ovp-threshold-percent = <16>;
+       };
+
+       ppvar_centerlogic_pwm: ppvar-centerlogic-pwm {
                compatible = "pwm-regulator";
-               regulator-name = "ppvar_centerlogic";
-               /*
-                * OVP circuit requires special handling which is not yet
-                * represented. Keep disabled for now.
-                */
-               status = "disabled";
+               regulator-name = "ppvar_centerlogic_pwm";
 
                pwms = <&pwm3 0 3337 0>;
                pwm-supply = <&ppvar_sys>;
                /* EC turns on w/ ppvar_centerlogic_en; always on for AP */
                regulator-always-on;
                regulator-boot-on;
-               regulator-min-microvolt = <800069>;
-               regulator-max-microvolt = <1049692>;
+               regulator-min-microvolt = <799434>;
+               regulator-max-microvolt = <1049925>;
+       };
+
+       ppvar_centerlogic: ppvar-centerlogic {
+               compatible = "vctrl-regulator";
+               regulator-name = "ppvar_centerlogic";
+
+               regulator-min-microvolt = <799434>;
+               regulator-max-microvolt = <1049925>;
+
+               ctrl-supply = <&ppvar_centerlogic_pwm>;
+               ctrl-voltage-range = <799434 1049925>;
+
+               regulator-settling-time-up-us = <378>;
+               min-slew-down-rate = <225>;
+               ovp-threshold-percent = <16>;
        };
 
        /* Schematics call this PPVAR even though it's fixed */
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&ppvar_gpu>;
+       status = "okay";
+};
+
 ap_i2c_mic: &i2c1 {
        status = "okay";
 
@@ -567,12 +612,7 @@ ap_i2c_mic: &i2c1 {
        headsetcodec: rt5514@57 {
                compatible = "realtek,rt5514";
                reg = <0x57>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&mic_int>;
-               realtek,dmic-init-delay = <20>;
-               wakeup-source;
+               realtek,dmic-init-delay-ms = <20>;
        };
 };
 
@@ -781,9 +821,13 @@ ap_i2c_audio: &i2c8 {
        wacky_spi_audio: spi2@0 {
                compatible = "realtek,rt5514";
                reg = <0>;
-
+               interrupt-parent = <&gpio1>;
+               interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mic_int>;
                /* May run faster once verified. */
                spi-max-frequency = <10000000>;
+               wakeup-source;
        };
 };
 
@@ -1031,7 +1075,7 @@ ap_i2c_audio: &i2c8 {
                 * hurt and dw_mmc will ignore it.  We make sure to disable
                 * the pull though so we don't burn needless power.
                 */
-               sdmmc_cd: sdmcc-cd {
+               sdmmc_cd: sdmmc-cd {
                        rockchip,pins =
                                <0 7 RK_FUNC_1 &pcfg_pull_none>;
                };
index be7fe635f7c15f0e1aac3e7e716305bfd1ee715a..d8a120f945c803ee91e4fdd5a7afa3a8b68ed28a 100644 (file)
                        opp-microvolt = <1250000>;
                };
        };
+
+       gpu_opp_table: opp-table2 {
+               compatible = "operating-points-v2";
+
+               opp00 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <800000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <297000000>;
+                       opp-microvolt = <800000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <825000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <850000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <925000>;
+               };
+               opp05 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <1075000>;
+               };
+       };
 };
 
 &cpu_l0 {
 &cpu_b1 {
        operating-points-v2 = <&cluster1_opp>;
 };
+
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
+};
index c83460db130ab35fcf4a37b9c9998de6be87f7d8..81617bcf252272313163f9dc48ef35c077981559 100644 (file)
                        opp-microvolt = <1200000>;
                };
        };
+
+       gpu_opp_table: opp-table2 {
+               compatible = "operating-points-v2";
+
+               opp00 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <800000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <297000000>;
+                       opp-microvolt = <800000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <825000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <875000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <925000>;
+               };
+               opp05 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <1100000>;
+               };
+       };
 };
 
 &cpu_l0 {
 &cpu_b1 {
        operating-points-v2 = <&cluster1_opp>;
 };
+
+&gpu {
+       operating-points-v2 = <&gpu_opp_table>;
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
new file mode 100644 (file)
index 0000000..9a74860
--- /dev/null
@@ -0,0 +1,228 @@
+/*
+ * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include "rk3399-puma.dtsi"
+
+/ {
+       model = "Theobroma Systems RK3399-Q7 SoM";
+       compatible = "tsd,rk3399-puma-haikou", "rockchip,rk3399";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               pinctrl-0 = <&led_pin_module>, <&led_sd_haikou>;
+
+               sd-card-led {
+                       label = "sd_card_led";
+                       gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc0";
+               };
+       };
+
+       dc_12v: dc-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc3v3_baseboard: vcc3v3-baseboard {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_baseboard";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&dc_12v>;
+       };
+
+       vcc5v0_otg: vcc5v0-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               regulator-name = "vcc5v0_otg";
+               regulator-always-on;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       clock-frequency = <400000>;
+};
+
+&i2c2 {
+       status = "okay";
+       clock-frequency = <400000>;
+};
+
+&i2c3 {
+       i2c-scl-rising-time-ns = <450>;
+       i2c-scl-falling-time-ns = <15>;
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+       clock-frequency = <400000>;
+};
+
+&i2c6 {
+       status = "okay";
+       clock-frequency = <400000>;
+};
+
+&i2s0 {
+       status = "okay";
+       rockchip,playback-channels = <8>;
+       rockchip,capture-channels = <8>;
+       #sound-dai-cells = <0>;
+       status = "okay";
+};
+
+&pcie_phy {
+       status = "okay";
+};
+
+&pcie0 {
+       ep-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_LOW>;
+       num-lanes = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_clkreqn_cpm>;
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <&haikou_pin_hog>;
+
+       hog {
+               haikou_pin_hog: haikou-pin-hog {
+                       rockchip,pins =
+                         /* LID_BTN */
+                         <RK_GPIO0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
+                         /* BATLOW# */
+                         <RK_GPIO0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
+                         /* SLP_BTN# */
+                         <RK_GPIO0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>,
+                         /* BIOS_DISABLE# */
+                         <RK_GPIO0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       leds {
+               led_sd_haikou: led-sd-gpio {
+                       rockchip,pins =
+                         <RK_GPIO1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb2 {
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins =
+                         <RK_GPIO0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       max-frequency = <150000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
+       vmmc-supply = <&vcc3v3_baseboard>;
+       status = "okay";
+};
+
+&spi5 {
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&usbdrd3_0 {
+       status = "okay";
+};
+
+&usbdrd_dwc3_0 {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&u2phy0_host {
+       phy-supply = <&vcc5v0_otg>;
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
new file mode 100644 (file)
index 0000000..53ff3d1
--- /dev/null
@@ -0,0 +1,547 @@
+/*
+ * Copyright (c) 2017 Theobroma Systems Design und Consulting GmbH
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/pwm/pwm.h>
+#include "rk3399.dtsi"
+#include "rk3399-opp.dtsi"
+
+/ {
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pin_module>;
+
+               module-led {
+                       label = "module_led";
+                       gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       panic-indicator;
+               };
+       };
+
+       /*
+        * Overwrite the opp-table for CPUB as this board uses a different
+        * regulator (FAN53555) that only allows 10mV steps and therefore
+        * can't reach the operation point target voltages from rk3399-opp.dtsi
+        */
+       /delete-node/ opp-table1;
+       cluster1_opp: opp-table1 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp00 {
+                       opp-hz = /bits/ 64 <408000000>;
+                       opp-microvolt = <800000>;
+                       clock-latency-ns = <40000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <800000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <816000000>;
+                       opp-microvolt = <830000>;
+                       opp-suspend;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <1008000000>;
+                       opp-microvolt = <880000>;
+               };
+               opp04 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <950000>;
+               };
+               opp05 {
+                       opp-hz = /bits/ 64 <1416000000>;
+                       opp-microvolt = <1030000>;
+               };
+               opp06 {
+                       opp-hz = /bits/ 64 <1608000000>;
+                       opp-microvolt = <1100000>;
+               };
+               opp07 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1200000>;
+               };
+               opp08 {
+                       opp-hz = /bits/ 64 <1992000000>;
+                       opp-microvolt = <1230000>;
+                       turbo-mode;
+               };
+       };
+
+       clkin_gmac: external-gmac-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "clkin_gmac";
+               #clock-cells = <0>;
+       };
+
+       vcc1v2_phy: vcc1v2-phy {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v2_phy";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
+               enable-active-low;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               regulator-name = "vcc5v0_host";
+               regulator-always-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vdd_log: vdd-log {
+               compatible = "pwm-regulator";
+               pwms = <&pwm2 0 25000 0>;
+               regulator-name = "vdd_log";
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1400000>;
+               regulator-always-on;
+               regulator-boot-on;
+               status = "okay";
+       };
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_b>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_b>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&emmc_phy {
+       status = "okay";
+};
+
+&gmac {
+       assigned-clocks = <&cru SCLK_RMII_SRC>;
+       assigned-clock-parents = <&clkin_gmac>;
+       clock_in_out = "input";
+       phy-supply = <&vcc1v2_phy>;
+       phy-mode = "rgmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>;
+       snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 50000>;
+       tx_delay = <0x10>;
+       rx_delay = <0x10>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+       i2c-scl-rising-time-ns = <168>;
+       i2c-scl-falling-time-ns = <4>;
+       clock-frequency = <400000>;
+
+       rk808: pmic@1b {
+               compatible = "rockchip,rk808";
+               reg = <0x1b>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <22 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc5v0_sys>;
+               vcc12-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc1v8_pmu>;
+
+               regulators {
+                       vdd_center: DCDC_REG1 {
+                               regulator-name = "vdd_center";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_l: DCDC_REG2 {
+                               regulator-name = "vdd_cpu_l";
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG4 {
+                               regulator-name = "vcc_1v8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_ldo1: LDO_REG1 {
+                               regulator-name = "vcc_ldo1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_hdmi: LDO_REG2 {
+                               regulator-name = "vcc1v8_hdmi";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_pmu: LDO_REG3 {
+                               regulator-name = "vcc1v8_pmu";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_sd: LDO_REG4 {
+                               regulator-name = "vcc_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_ldo5: LDO_REG5 {
+                               regulator-name = "vcc_ldo5";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ldo6: LDO_REG6 {
+                               regulator-name = "vcc_ldo6";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9_hdmi: LDO_REG7 {
+                               regulator-name = "vcc0v9_hdmi";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_efuse: LDO_REG8 {
+                               regulator-name = "vcc_efuse";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_s3: SWITCH_REG1 {
+                               regulator-name = "vcc3v3_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_s0: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       vdd_gpu: regulator@60 {
+               compatible = "fcs,fan53555";
+               reg = <0x60>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_gpu";
+               regulator-min-microvolt = <600000>;
+               regulator-max-microvolt = <1230000>;
+               regulator-ramp-delay = <1000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       fan: fan@18 {
+               compatible = "ti,amc6821";
+               reg = <0x18>;
+               cooling-min-state = <0>;
+               cooling-max-state = <9>;
+               #cooling-cells = <2>;
+       };
+
+       rtc_twi: rtc@6f {
+               compatible = "isil,isl1208";
+               reg = <0x6f>;
+       };
+};
+
+&i2c8 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       vdd_cpu_b: regulator@60 {
+               compatible = "fcs,fan53555";
+               reg = <0x60>;
+               vin-supply = <&vcc5v0_sys>;
+               regulator-name = "vdd_cpu_b";
+               regulator-min-microvolt = <600000>;
+               regulator-max-microvolt = <1230000>;
+               regulator-ramp-delay = <1000>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&io_domains {
+       status = "okay";
+       bt656-supply = <&vcc_1v8>;
+       audio-supply = <&vcc_1v8>;
+       sdmmc-supply = <&vcc_sd>;
+       gpio1830-supply = <&vcc_1v8>;
+};
+
+&pmu_io_domains {
+       status = "okay";
+       pmu1830-supply = <&vcc_1v8>;
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pinctrl {
+       i2c8 {
+               i2c8_xfer_a: i2c8-xfer {
+                       rockchip,pins =
+                         <RK_GPIO1 RK_PC4 RK_FUNC_1 &pcfg_pull_up>,
+                         <RK_GPIO1 RK_PC5 RK_FUNC_1 &pcfg_pull_up>;
+               };
+       };
+
+       leds {
+               led_pin_module: led-module-gpio {
+                       rockchip,pins =
+                         <RK_GPIO2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins =
+                         <RK_GPIO1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb2 {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins =
+                         <RK_GPIO4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       non-removable;
+       status = "okay";
+};
+
+&sdmmc {
+       vqmmc = <&vcc_sd>;
+};
+
+&spi1 {
+       status = "okay";
+
+       norflash: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&u2phy1 {
+       status = "okay";
+
+       u2phy1_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy1_host: host-port {
+               phy-supply = <&vcc5v0_host>;
+               status = "okay";
+       };
+};
+
+&usbdrd3_1 {
+       status = "okay";
+};
+
+&usbdrd_dwc3_1 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts b/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts
new file mode 100644 (file)
index 0000000..b7bd88f
--- /dev/null
@@ -0,0 +1,240 @@
+/*
+ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+#include <dt-bindings/input/input.h>
+#include "rk3399-sapphire.dtsi"
+
+/ {
+       model = "Excavator-RK3399 Board";
+       compatible = "rockchip,rk3399-sapphire-excavator", "rockchip,rk3399";
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-up {
+                       label = "Volume Up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <100000>;
+               };
+
+               button-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <300000>;
+               };
+
+               back {
+                       label = "Back";
+                       linux,code = <KEY_BACK>;
+                       press-threshold-microvolt = <985000>;
+               };
+
+               menu {
+                       label = "Menu";
+                       linux,code = <KEY_MENU>;
+                       press-threshold-microvolt = <1314000>;
+               };
+       };
+
+       edp_panel: edp-panel {
+               compatible ="lg,lp079qx1-sp0v", "simple-panel";
+               backlight = <&backlight>;
+               enable-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_panel_reset>;
+               power-supply = <&vcc3v3_s0>;
+
+               ports {
+                       panel_in_edp: endpoint {
+                               remote-endpoint = <&edp_out_panel>;
+                       };
+               };
+       };
+
+       keys: gpio-keys {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               power {
+                       debounce-interval = <100>;
+                       gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "GPIO Power";
+                       linux,code = <KEY_POWER>;
+                       linux,input-type = <1>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pwr_btn>;
+                       wakeup-source;
+               };
+       };
+
+       rt5651-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "realtek,rt5651-codec";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Headphone", "Headphone Jack";
+               simple-audio-card,routing =
+                       "Mic Jack", "MICBIAS1",
+                       "IN1P", "Mic Jack",
+                       "Headphone Jack", "HPOL",
+                       "Headphone Jack", "HPOR";
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0>;
+               };
+               simple-audio-card,codec {
+                       sound-dai = <&rt5651>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk808 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&backlight {
+       enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&edp {
+       status = "okay";
+
+       ports {
+               edp_out: port@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       edp_out_panel: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&panel_in_edp>;
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       i2c-scl-rising-time-ns = <300>;
+       i2c-scl-falling-time-ns = <15>;
+       status = "okay";
+
+       rt5651: rt5651@1a {
+               compatible = "rockchip,rt5651";
+               reg = <0x1a>;
+               clocks = <&cru SCLK_I2S_8CH_OUT>;
+               clock-names = "mclk";
+               hp-det-gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_LOW>;
+               spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2c4 {
+       i2c-scl-rising-time-ns = <600>;
+       i2c-scl-falling-time-ns = <20>;
+       status = "okay";
+
+       accelerometer@68 {
+               compatible = "invensense,mpu6500";
+               reg = <0x68>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PC6 IRQ_TYPE_EDGE_RISING>;
+       };
+};
+
+&i2s0 {
+       rockchip,playback-channels = <8>;
+       rockchip,capture-channels = <8>;
+       #sound-dai-cells = <0>;
+       status = "okay";
+};
+
+&i2s2 {
+       #sound-dai-cells = <0>;
+       status = "okay";
+};
+
+&pinctrl {
+       buttons {
+               pwr_btn: pwr-btn {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       lcd-panel {
+               lcd_panel_reset: lcd-panel-reset {
+                       rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&spdif {
+       i2c-scl-rising-time-ns = <450>;
+       i2c-scl-falling-time-ns = <15>;
+       #sound-dai-cells = <0>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi
new file mode 100644 (file)
index 0000000..6c30bb0
--- /dev/null
@@ -0,0 +1,644 @@
+/*
+ * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "dt-bindings/pwm/pwm.h"
+#include "rk3399.dtsi"
+#include "rk3399-opp.dtsi"
+
+/ {
+       compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399";
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <
+                         0   1   2   3   4   5   6   7
+                         8   9  10  11  12  13  14  15
+                        16  17  18  19  20  21  22  23
+                        24  25  26  27  28  29  30  31
+                        32  33  34  35  36  37  38  39
+                        40  41  42  43  44  45  46  47
+                        48  49  50  51  52  53  54  55
+                        56  57  58  59  60  61  62  63
+                        64  65  66  67  68  69  70  71
+                        72  73  74  75  76  77  78  79
+                        80  81  82  83  84  85  86  87
+                        88  89  90  91  92  93  94  95
+                        96  97  98  99 100 101 102 103
+                       104 105 106 107 108 109 110 111
+                       112 113 114 115 116 117 118 119
+                       120 121 122 123 124 125 126 127
+                       128 129 130 131 132 133 134 135
+                       136 137 138 139 140 141 142 143
+                       144 145 146 147 148 149 150 151
+                       152 153 154 155 156 157 158 159
+                       160 161 162 163 164 165 166 167
+                       168 169 170 171 172 173 174 175
+                       176 177 178 179 180 181 182 183
+                       184 185 186 187 188 189 190 191
+                       192 193 194 195 196 197 198 199
+                       200 201 202 203 204 205 206 207
+                       208 209 210 211 212 213 214 215
+                       216 217 218 219 220 221 222 223
+                       224 225 226 227 228 229 230 231
+                       232 233 234 235 236 237 238 239
+                       240 241 242 243 244 245 246 247
+                       248 249 250 251 252 253 254 255>;
+               default-brightness-level = <200>;
+               pwms = <&pwm0 0 25000 0>;
+       };
+
+       clkin_gmac: external-gmac-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "clkin_gmac";
+               #clock-cells = <0>;
+       };
+
+       dc_12v: dc-12v {
+               compatible = "regulator-fixed";
+               regulator-name = "dc_12v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       /* switched by pmic_sleep */
+       vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_1v8>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc_sys: vcc-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               regulator-name = "vcc5v0_host";
+               regulator-always-on;
+               vin-supply = <&vcc_sys>;
+       };
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_l>;
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_b>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_b>;
+};
+
+&emmc_phy {
+       status = "okay";
+};
+
+&gmac {
+       assigned-clocks = <&cru SCLK_RMII_SRC>;
+       assigned-clock-parents = <&clkin_gmac>;
+       clock_in_out = "input";
+       phy-supply = <&vcc_lan>;
+       phy-mode = "rgmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&rgmii_pins>;
+       snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 10000 50000>;
+       tx_delay = <0x28>;
+       rx_delay = <0x11>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       ddc-i2c-bus = <&i2c3>;
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       i2c-scl-rising-time-ns = <168>;
+       i2c-scl-falling-time-ns = <4>;
+       status = "okay";
+
+       rk808: pmic@1b {
+               compatible = "rockchip,rk808";
+               reg = <0x1b>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "xin32k", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l &pmic_dvs2>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc_sys>;
+               vcc2-supply = <&vcc_sys>;
+               vcc3-supply = <&vcc_sys>;
+               vcc4-supply = <&vcc_sys>;
+               vcc6-supply = <&vcc_sys>;
+               vcc7-supply = <&vcc_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc_sys>;
+               vcc10-supply = <&vcc_sys>;
+               vcc11-supply = <&vcc_sys>;
+               vcc12-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcc1v8_pmu>;
+
+               regulators {
+                       vdd_center: DCDC_REG1 {
+                               regulator-name = "vdd_center";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_l: DCDC_REG2 {
+                               regulator-name = "vdd_cpu_l";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG4 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc1v8_dvp: LDO_REG1 {
+                               regulator-name = "vcc1v8_dvp";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v0_tp: LDO_REG2 {
+                               regulator-name = "vcc3v0_tp";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8_pmu: LDO_REG3 {
+                               regulator-name = "vcc1v8_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vcc_sdio: LDO_REG4 {
+                               regulator-name = "vcc_sdio";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca3v0_codec: LDO_REG5 {
+                               regulator-name = "vcca3v0_codec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v5: LDO_REG6 {
+                               regulator-name = "vcc_1v5";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1500000>;
+                               };
+                       };
+
+                       vcca1v8_codec: LDO_REG7 {
+                               regulator-name = "vcca1v8_codec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v0: LDO_REG8 {
+                               regulator-name = "vcc_3v0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vcc3v3_s3: vcc_lan: SWITCH_REG1 {
+                               regulator-name = "vcc3v3_s3";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_s0: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_s0";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       vdd_cpu_b: regulator@40 {
+               compatible = "silergy,syr827";
+               reg = <0x40>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_b";
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1500000>;
+               regulator-ramp-delay = <1000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_gpu: regulator@41 {
+               compatible = "silergy,syr828";
+               reg = <0x41>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_gpu";
+               regulator-min-microvolt = <712500>;
+               regulator-max-microvolt = <1500000>;
+               regulator-ramp-delay = <1000>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_log: vdd-log {
+               compatible = "pwm-regulator";
+               pwms = <&pwm2 0 25000 1>;
+               regulator-name = "vdd_log";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1400000>;
+               vin-supply = <&vcc_sys>;
+       };
+};
+
+&i2c3 {
+       i2c-scl-rising-time-ns = <450>;
+       i2c-scl-falling-time-ns = <15>;
+       status = "okay";
+};
+
+&io_domains {
+       status = "okay";
+
+       bt656-supply = <&vcc_3v0>;
+       audio-supply = <&vcca1v8_codec>;
+       sdmmc-supply = <&vcc_sdio>;
+       gpio1830-supply = <&vcc_3v0>;
+};
+
+&pcie_phy {
+       status = "okay";
+};
+
+&pcie0 {
+       assigned-clocks = <&cru SCLK_PCIEPHY_REF>;
+       assigned-clock-parents = <&cru SCLK_PCIEPHY_REF100M>;
+       assigned-clock-rates = <100000000>;
+       ep-gpios = <&gpio3 RK_PB5 GPIO_ACTIVE_HIGH>;
+       num-lanes = <4>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_clkreqn_cpm>;
+       status = "okay";
+};
+
+&pmu_io_domains {
+       pmu1830-supply = <&vcc_3v0>;
+       status = "okay";
+};
+
+&pinctrl {
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins =
+                               <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               pmic_dvs2: pmic-dvs2 {
+                       rockchip,pins =
+                               <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               vsel1_gpio: vsel1-gpio {
+                       rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               vsel2_gpio: vsel2-gpio {
+                       rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+
+       usb2 {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins =
+                               <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm0 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca1v8_s3>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       keep-power-in-suspend;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       non-removable;
+       status = "okay";
+};
+
+&sdio0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       clock-frequency = <50000000>;
+       disable-wp;
+       keep-power-in-suspend;
+       max-frequency = <50000000>;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       clock-frequency = <150000000>;
+       disable-wp;
+       max-frequency = <150000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
+       vqmmc-supply = <&vcc_sdio>;
+       status = "okay";
+};
+
+&tsadc {
+       /* tshut mode 0:CRU 1:GPIO */
+       rockchip,hw-tshut-mode = <1>;
+       /* tshut polarity 0:LOW 1:HIGH */
+       rockchip,hw-tshut-polarity = <1>;
+       status = "okay";
+};
+
+&u2phy0 {
+       status = "okay";
+
+       u2phy0_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy0_host: host-port {
+               phy-supply = <&vcc5v0_host>;
+               status = "okay";
+       };
+};
+
+&u2phy1 {
+       status = "okay";
+
+       u2phy1_otg: otg-port {
+               status = "okay";
+       };
+
+       u2phy1_host: host-port {
+               phy-supply = <&vcc5v0_host>;
+               status = "okay";
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer &uart0_cts>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usbdrd3_0 {
+       status = "okay";
+};
+
+&usbdrd_dwc3_0 {
+       status = "okay";
+       dr_mode = "otg";
+};
+
+&usbdrd3_1 {
+       status = "okay";
+};
+
+&usbdrd_dwc3_1 {
+       status = "okay";
+       dr_mode = "host";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
+
+&vopl {
+       status = "okay";
+};
+
+&vopl_mmu {
+       status = "okay";
+};
index 5b78ce16a87e75ad355895777e2de8a1e8f1e12b..d79e9b3265b98cbe0955c8139950627d2af09492 100644 (file)
                        enable-method = "psci";
                        #cooling-cells = <2>; /* min followed by max */
                        clocks = <&cru ARMCLKL>;
+                       dynamic-power-coefficient = <100>;
                };
 
                cpu_l1: cpu@1 {
                        reg = <0x0 0x1>;
                        enable-method = "psci";
                        clocks = <&cru ARMCLKL>;
+                       dynamic-power-coefficient = <100>;
                };
 
                cpu_l2: cpu@2 {
                        reg = <0x0 0x2>;
                        enable-method = "psci";
                        clocks = <&cru ARMCLKL>;
+                       dynamic-power-coefficient = <100>;
                };
 
                cpu_l3: cpu@3 {
                        reg = <0x0 0x3>;
                        enable-method = "psci";
                        clocks = <&cru ARMCLKL>;
+                       dynamic-power-coefficient = <100>;
                };
 
                cpu_b0: cpu@100 {
                        enable-method = "psci";
                        #cooling-cells = <2>; /* min followed by max */
                        clocks = <&cru ARMCLKB>;
+                       dynamic-power-coefficient = <436>;
                };
 
                cpu_b1: cpu@101 {
                        reg = <0x0 0x101>;
                        enable-method = "psci";
                        clocks = <&cru ARMCLKB>;
+                       dynamic-power-coefficient = <436>;
                };
        };
 
+       display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vopl_out>, <&vopb_out>;
+       };
+
        pmu_a53 {
                compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
                         <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
                clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
                fifo-depth = <0x100>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
                resets = <&cru SRST_SDIO0>;
                reset-names = "reset";
                status = "disabled";
                        snps,dis-u2-freeclk-exists-quirk;
                        snps,dis_u2_susphy_quirk;
                        snps,dis-del-phy-power-chg-quirk;
+                       snps,dis-tx-ipgap-linecheck-quirk;
                        status = "disabled";
                };
        };
                        snps,dis-u2-freeclk-exists-quirk;
                        snps,dis_u2_susphy_quirk;
                        snps,dis-del-phy-power-chg-quirk;
+                       snps,dis-tx-ipgap-linecheck-quirk;
                        status = "disabled";
                };
        };
                interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH 0>;
                pinctrl-names = "default";
                pinctrl-0 = <&spi5_clk &spi5_tx &spi5_rx &spi5_cs0>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
                        };
 
                        /* These power domains are grouped by VD_LOGIC */
+                       pd_edp@RK3399_PD_EDP {
+                               reg = <RK3399_PD_EDP>;
+                               clocks = <&cru PCLK_EDP_CTRL>;
+                       };
                        pd_emmc@RK3399_PD_EMMC {
                                reg = <RK3399_PD_EMMC>;
                                clocks = <&cru ACLK_EMMC>;
                                         <&cru SCLK_SDMMC>;
                                pm_qos = <&qos_sd>;
                        };
+                       pd_sdioaudio@RK3399_PD_SDIOAUDIO {
+                               reg = <RK3399_PD_SDIOAUDIO>;
+                               clocks = <&cru HCLK_SDIO>;
+                               pm_qos = <&qos_sdioaudio>;
+                       };
                        pd_vio@RK3399_PD_VIO {
                                reg = <RK3399_PD_VIO>;
                                #address-cells = <1>;
                status = "disabled";
        };
 
+       vpu_mmu: iommu@ff650800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff650800 0x0 0x40>;
+               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vpu_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vdec_mmu: iommu@ff660480 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff660480 0x0 0x40>, <0x0 0xff6604c0 0x0 0x40>;
+               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vdec_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       iep_mmu: iommu@ff670800 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff670800 0x0 0x40>;
+               interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "iep_mmu";
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
        efuse0: efuse@ff690000 {
                compatible = "rockchip,rk3399-efuse";
                reg = <0x0 0xff690000 0x0 0x80>;
                clocks = <&cru SCLK_SPDIF_8CH>, <&cru HCLK_SPDIF>;
                pinctrl-names = "default";
                pinctrl-0 = <&spdif_bus>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
                status = "disabled";
        };
 
                clocks = <&cru SCLK_I2S0_8CH>, <&cru HCLK_I2S0_8CH>;
                pinctrl-names = "default";
                pinctrl-0 = <&i2s0_8ch_bus>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
                status = "disabled";
        };
 
                clocks = <&cru SCLK_I2S1_8CH>, <&cru HCLK_I2S1_8CH>;
                pinctrl-names = "default";
                pinctrl-0 = <&i2s1_2ch_bus>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
                status = "disabled";
        };
 
                dma-names = "tx", "rx";
                clock-names = "i2s_clk", "i2s_hclk";
                clocks = <&cru SCLK_I2S2_8CH>, <&cru HCLK_I2S2_8CH>;
+               power-domains = <&power RK3399_PD_SDIOAUDIO>;
+               status = "disabled";
+       };
+
+       vopl: vop@ff8f0000 {
+               compatible = "rockchip,rk3399-vop-lit";
+               reg = <0x0 0xff8f0000 0x0 0x3efc>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               assigned-clock-rates = <400000000>, <100000000>;
+               clocks = <&cru ACLK_VOP1>, <&cru DCLK_VOP1>, <&cru HCLK_VOP1>;
+               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               iommus = <&vopl_mmu>;
+               power-domains = <&power RK3399_PD_VOPL>;
+               resets = <&cru SRST_A_VOP1>, <&cru SRST_H_VOP1>, <&cru SRST_D_VOP1>;
+               reset-names = "axi", "ahb", "dclk";
+               status = "disabled";
+
+               vopl_out: port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vopl_out_mipi: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&mipi_in_vopl>;
+                       };
+
+                       vopl_out_edp: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&edp_in_vopl>;
+                       };
+
+                       vopl_out_hdmi: endpoint@2 {
+                               reg = <2>;
+                               remote-endpoint = <&hdmi_in_vopl>;
+                       };
+               };
+       };
+
+       vopl_mmu: iommu@ff8f3f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff8f3f00 0x0 0x100>;
+               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vopl_mmu";
+               clocks = <&cru ACLK_VOP1>, <&cru HCLK_VOP1>;
+               clock-names = "aclk", "hclk";
+               power-domains = <&power RK3399_PD_VOPL>;
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       vopb: vop@ff900000 {
+               compatible = "rockchip,rk3399-vop-big";
+               reg = <0x0 0xff900000 0x0 0x3efc>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               assigned-clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               assigned-clock-rates = <400000000>, <100000000>;
+               clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
+               clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
+               iommus = <&vopb_mmu>;
+               power-domains = <&power RK3399_PD_VOPB>;
+               resets = <&cru SRST_A_VOP0>, <&cru SRST_H_VOP0>, <&cru SRST_D_VOP0>;
+               reset-names = "axi", "ahb", "dclk";
+               status = "disabled";
+
+               vopb_out: port {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vopb_out_edp: endpoint@0 {
+                               reg = <0>;
+                               remote-endpoint = <&edp_in_vopb>;
+                       };
+
+                       vopb_out_mipi: endpoint@1 {
+                               reg = <1>;
+                               remote-endpoint = <&mipi_in_vopb>;
+                       };
+
+                       vopb_out_hdmi: endpoint@2 {
+                               reg = <2>;
+                               remote-endpoint = <&hdmi_in_vopb>;
+                       };
+               };
+       };
+
+       vopb_mmu: iommu@ff903f00 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff903f00 0x0 0x100>;
+               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vopb_mmu";
+               clocks = <&cru ACLK_VOP0>, <&cru HCLK_VOP0>;
+               clock-names = "aclk", "hclk";
+               power-domains = <&power RK3399_PD_VOPB>;
+               #iommu-cells = <0>;
+               status = "disabled";
+       };
+
+       isp0_mmu: iommu@ff914000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff914000 0x0 0x100>, <0x0 0xff915000 0x0 0x100>;
+               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "isp0_mmu";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
+       isp1_mmu: iommu@ff924000 {
+               compatible = "rockchip,iommu";
+               reg = <0x0 0xff924000 0x0 0x100>, <0x0 0xff925000 0x0 0x100>;
+               interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "isp1_mmu";
+               #iommu-cells = <0>;
+               rockchip,disable-mmu-reset;
+               status = "disabled";
+       };
+
+       hdmi: hdmi@ff940000 {
+               compatible = "rockchip,rk3399-dw-hdmi";
+               reg = <0x0 0xff940000 0x0 0x20000>;
+               interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_SFR>, <&cru PLL_VPLL>, <&cru PCLK_VIO_GRF>;
+               clock-names = "iahb", "isfr", "vpll", "grf";
+               power-domains = <&power RK3399_PD_HDCP>;
+               reg-io-width = <4>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       hdmi_in: port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               hdmi_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_hdmi>;
+                               };
+                               hdmi_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_hdmi>;
+                               };
+                       };
+               };
+       };
+
+       mipi_dsi: mipi@ff960000 {
+               compatible = "rockchip,rk3399-mipi-dsi", "snps,dw-mipi-dsi";
+               reg = <0x0 0xff960000 0x0 0x8000>;
+               interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru PCLK_MIPI_DSI0>,
+                        <&cru SCLK_DPHY_TX0_CFG>;
+               clock-names = "ref", "pclk", "phy_cfg";
+               power-domains = <&power RK3399_PD_VIO>;
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       mipi_in: port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               mipi_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_mipi>;
+                               };
+                               mipi_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_mipi>;
+                               };
+                       };
+               };
+       };
+
+       edp: edp@ff970000 {
+               compatible = "rockchip,rk3399-edp";
+               reg = <0x0 0xff970000 0x0 0x8000>;
+               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_EDP>, <&cru PCLK_EDP_CTRL>;
+               clock-names = "dp", "pclk";
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_hpd>;
+               power-domains = <&power RK3399_PD_EDP>;
+               resets = <&cru SRST_P_EDP_CTRL>;
+               reset-names = "dp";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       edp_in: port@0 {
+                               reg = <0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               edp_in_vopb: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&vopb_out_edp>;
+                               };
+
+                               edp_in_vopl: endpoint@1 {
+                                       reg = <1>;
+                                       remote-endpoint = <&vopl_out_edp>;
+                               };
+                       };
+               };
+       };
+
+       gpu: gpu@ff9a0000 {
+               compatible = "rockchip,rk3399-mali", "arm,mali-t860";
+               reg = <0x0 0xff9a0000 0x0 0x10000>;
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "gpu", "job", "mmu";
+               clocks = <&cru ACLK_GPU>;
+               power-domains = <&power RK3399_PD_GPU>;
                status = "disabled";
        };
 
                                        <4 RK_PB5 RK_FUNC_1 &pcfg_pull_up>;
                        };
 
-                       sdmmc_cd: sdmcc-cd {
+                       sdmmc_cd: sdmmc-cd {
                                rockchip,pins =
                                        <0 RK_PA7 RK_FUNC_1 &pcfg_pull_up>;
                        };
                };
 
                pcie {
-                       pcie_clkreqn: pci-clkreqn {
-                               rockchip,pins =
-                                       <2 26 RK_FUNC_2 &pcfg_pull_none>;
-                       };
-
-                       pcie_clkreqnb: pci-clkreqnb {
-                               rockchip,pins =
-                                       <4 24 RK_FUNC_1 &pcfg_pull_none>;
-                       };
-
                        pcie_clkreqn_cpm: pci-clkreqn-cpm {
                                rockchip,pins =
                                        <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
index 4a13a3a971010e7c09f7919b6dacc796c1e3efa4..4bc091b365fd1563999c5dc4fd62f16e64acce80 100644 (file)
@@ -2,7 +2,8 @@ dtb-$(CONFIG_ARCH_UNIPHIER) += \
        uniphier-ld11-global.dtb \
        uniphier-ld11-ref.dtb \
        uniphier-ld20-global.dtb \
-       uniphier-ld20-ref.dtb
+       uniphier-ld20-ref.dtb \
+       uniphier-pxs3-ref.dtb
 
 always         := $(dtb-y)
 clean-files    := *.dtb
index 115357018ef7c73b81c20901badfbab4da71b243..2452b2243f42465476b65891d6a0df6bc5ffda37 100644 (file)
@@ -9,7 +9,7 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-ld11.dtsi"
+#include "uniphier-ld11.dtsi"
 
 / {
        model = "UniPhier LD11 Global Board (REF_LD11_GP)";
@@ -68,3 +68,7 @@
 &usb2 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+};
index cc8ebe34c27cd35e131e7a05f66a5c5a63dca7e4..ffb473ad2e0fdbad76e43e50ddcaf3eb32f30c72 100644 (file)
@@ -8,9 +8,9 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-ld11.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
+#include "uniphier-ld11.dtsi"
+#include "uniphier-ref-daughter.dtsi"
+#include "uniphier-support-card.dtsi"
 
 / {
        model = "UniPhier LD11 Reference Board";
index bdce5b89baece0b53738deb8ff76c18f142f986b..ee4aff53a5f5dc8063bf0779e23da47fe5f4e522 100644 (file)
                        clocks = <&peri_clk 3>;
                };
 
+               adamv@57920000 {
+                       compatible = "socionext,uniphier-ld11-adamv",
+                                    "simple-mfd", "syscon";
+                       reg = <0x57920000 0x1000>;
+
+                       adamv_rst: reset {
+                               compatible = "socionext,uniphier-ld11-adamv-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
                i2c0: i2c@58780000 {
                        compatible = "socionext,uniphier-fi2c";
                        status = "disabled";
                        };
                };
 
+               aidet: aidet@5fc20000 {
+                       compatible = "socionext,uniphier-ld11-aidet";
+                       reg = <0x5fc20000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                gic: interrupt-controller@5fe00000 {
                        compatible = "arm,gic-v3";
                        reg = <0x5fe00000 0x10000>,     /* GICD */
                                compatible = "socionext,uniphier-ld11-reset";
                                #reset-cells = <1>;
                        };
+
+                       watchdog {
+                               compatible = "socionext,uniphier-wdt";
+                       };
+               };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5b";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand>;
+                       clocks = <&sys_clk 2>;
                };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
index 9f620d4101b54fa0a1d2aecee398813598891c41..fc2bc9d75d35e6f410a6f012b461cdcac03d6282 100644 (file)
@@ -9,7 +9,7 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-ld20.dtsi"
+#include "uniphier-ld20.dtsi"
 
 / {
        model = "UniPhier LD20 Global Board (REF_LD20_GP)";
@@ -50,3 +50,7 @@
 &i2c0 {
        status = "okay";
 };
+
+&nand {
+       status = "okay";
+};
index 494166aee24ce3c304045075c1a0938f6fdf43f2..1ca0c8620dc5ac33118a72beb5b586ab8ff0ce2f 100644 (file)
@@ -8,9 +8,9 @@
  */
 
 /dts-v1/;
-/include/ "uniphier-ld20.dtsi"
-/include/ "uniphier-ref-daughter.dtsi"
-/include/ "uniphier-support-card.dtsi"
+#include "uniphier-ld20.dtsi"
+#include "uniphier-ref-daughter.dtsi"
+#include "uniphier-support-card.dtsi"
 
 / {
        model = "UniPhier LD20 Reference Board";
index de1e7536281718f59617bc3b7be83c7e9ea53ace..a29c279b6e8e4c484b14c77047d1b8436103f6b3 100644 (file)
                        clocks = <&peri_clk 3>;
                };
 
+               adamv@57920000 {
+                       compatible = "socionext,uniphier-ld20-adamv",
+                                    "simple-mfd", "syscon";
+                       reg = <0x57920000 0x1000>;
+
+                       adamv_rst: reset {
+                               compatible = "socionext,uniphier-ld20-adamv-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
                i2c0: i2c@58780000 {
                        compatible = "socionext,uniphier-fi2c";
                        status = "disabled";
                sdctrl@59810000 {
                        compatible = "socionext,uniphier-ld20-sdctrl",
                                     "simple-mfd", "syscon";
-                       reg = <0x59810000 0x800>;
+                       reg = <0x59810000 0x400>;
 
                        sd_clk: clock {
                                compatible = "socionext,uniphier-ld20-sd-clock";
                        };
                };
 
+               aidet: aidet@5fc20000 {
+                       compatible = "socionext,uniphier-ld20-aidet";
+                       reg = <0x5fc20000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                gic: interrupt-controller@5fe00000 {
                        compatible = "arm,gic-v3";
                        reg = <0x5fe00000 0x10000>,     /* GICD */
                                compatible = "socionext,uniphier-ld20-reset";
                                #reset-cells = <1>;
                        };
+
+                       watchdog {
+                               compatible = "socionext,uniphier-wdt";
+                       };
+               };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5b";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand>;
+                       clocks = <&sys_clk 2>;
                };
        };
 };
 
-/include/ "uniphier-pinctrl.dtsi"
+#include "uniphier-pinctrl.dtsi"
deleted file mode 120000 (symlink)
index f42fb6f38bd35ae90d23fa1b10edabb0a6ef35df..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/uniphier-pinctrl.dtsi
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..9caabbb8bae3fdd1d1e17ad8d63b99979aef971d
--- /dev/null
@@ -0,0 +1 @@
+#include <arm/uniphier-pinctrl.dtsi>
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
new file mode 100644 (file)
index 0000000..d65f746
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Device Tree Source for UniPhier PXs3 Reference Board
+ *
+ * Copyright (C) 2017 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ */
+
+/dts-v1/;
+#include "uniphier-pxs3.dtsi"
+#include "uniphier-support-card.dtsi"
+
+/ {
+       model = "UniPhier PXs3 Reference Board";
+       compatible = "socionext,uniphier-pxs3-ref", "socionext,uniphier-pxs3";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       aliases {
+               serial0 = &serial0;
+               serial1 = &serial1;
+               serial2 = &serial2;
+               serial3 = &serial3;
+               i2c0 = &i2c0;
+               i2c1 = &i2c1;
+               i2c2 = &i2c2;
+               i2c3 = &i2c3;
+               i2c6 = &i2c6;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0 0x80000000 0 0xa0000000>;
+       };
+};
+
+&ethsc {
+       interrupts = <0 52 4>;
+};
+
+&serial0 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
new file mode 100644 (file)
index 0000000..384729f
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+ * Device Tree Source for UniPhier PXs3 SoC
+ *
+ * Copyright (C) 2017 Socionext Inc.
+ *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
+ *
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ */
+
+/memreserve/ 0x80000000 0x02000000;
+
+/ {
+       compatible = "socionext,uniphier-pxs3";
+       #address-cells = <2>;
+       #size-cells = <2>;
+       interrupt-parent = <&gic>;
+
+       cpus {
+               #address-cells = <2>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0 0x000>;
+                       clocks = <&sys_clk 33>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cluster0_opp>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0 0x001>;
+                       clocks = <&sys_clk 33>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cluster0_opp>;
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0 0x002>;
+                       clocks = <&sys_clk 33>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cluster0_opp>;
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53", "arm,armv8";
+                       reg = <0 0x003>;
+                       clocks = <&sys_clk 33>;
+                       enable-method = "psci";
+                       operating-points-v2 = <&cluster0_opp>;
+               };
+       };
+
+       cluster0_opp: opp_table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-250000000 {
+                       opp-hz = /bits/ 64 <250000000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-325000000 {
+                       opp-hz = /bits/ 64 <325000000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-650000000 {
+                       opp-hz = /bits/ 64 <650000000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-666667000 {
+                       opp-hz = /bits/ 64 <666667000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-866667000 {
+                       opp-hz = /bits/ 64 <866667000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       clock-latency-ns = <300>;
+               };
+               opp-1300000000 {
+                       opp-hz = /bits/ 64 <1300000000>;
+                       clock-latency-ns = <300>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       clocks {
+               refclk: ref {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <25000000>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <1 13 4>,
+                            <1 14 4>,
+                            <1 11 4>,
+                            <1 10 4>;
+       };
+
+       soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0 0xffffffff>;
+
+               serial0: serial@54006800 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006800 0x40>;
+                       interrupts = <0 33 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart0>;
+                       clocks = <&peri_clk 0>;
+               };
+
+               serial1: serial@54006900 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006900 0x40>;
+                       interrupts = <0 35 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart1>;
+                       clocks = <&peri_clk 1>;
+               };
+
+               serial2: serial@54006a00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006a00 0x40>;
+                       interrupts = <0 37 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart2>;
+                       clocks = <&peri_clk 2>;
+               };
+
+               serial3: serial@54006b00 {
+                       compatible = "socionext,uniphier-uart";
+                       status = "disabled";
+                       reg = <0x54006b00 0x40>;
+                       interrupts = <0 177 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_uart3>;
+                       clocks = <&peri_clk 3>;
+               };
+
+               i2c0: i2c@58780000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58780000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 41 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c0>;
+                       clocks = <&peri_clk 4>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c1: i2c@58781000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58781000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 42 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c1>;
+                       clocks = <&peri_clk 5>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c2: i2c@58782000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58782000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 43 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c2>;
+                       clocks = <&peri_clk 6>;
+                       clock-frequency = <100000>;
+               };
+
+               i2c3: i2c@58783000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       status = "disabled";
+                       reg = <0x58783000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 44 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_i2c3>;
+                       clocks = <&peri_clk 7>;
+                       clock-frequency = <100000>;
+               };
+
+               /* chip-internal connection for HDMI */
+               i2c6: i2c@58786000 {
+                       compatible = "socionext,uniphier-fi2c";
+                       reg = <0x58786000 0x80>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 26 4>;
+                       clocks = <&peri_clk 10>;
+                       clock-frequency = <400000>;
+               };
+
+               system_bus: system-bus@58c00000 {
+                       compatible = "socionext,uniphier-system-bus";
+                       status = "disabled";
+                       reg = <0x58c00000 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <1>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_system_bus>;
+               };
+
+               smpctrl@59801000 {
+                       compatible = "socionext,uniphier-smpctrl";
+                       reg = <0x59801000 0x400>;
+               };
+
+               sdctrl@59810000 {
+                       compatible = "socionext,uniphier-pxs3-sdctrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x59810000 0x400>;
+
+                       sd_clk: clock {
+                               compatible = "socionext,uniphier-pxs3-sd-clock";
+                               #clock-cells = <1>;
+                       };
+
+                       sd_rst: reset {
+                               compatible = "socionext,uniphier-pxs3-sd-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
+               perictrl@59820000 {
+                       compatible = "socionext,uniphier-pxs3-perictrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x59820000 0x200>;
+
+                       peri_clk: clock {
+                               compatible = "socionext,uniphier-pxs3-peri-clock";
+                               #clock-cells = <1>;
+                       };
+
+                       peri_rst: reset {
+                               compatible = "socionext,uniphier-pxs3-peri-reset";
+                               #reset-cells = <1>;
+                       };
+               };
+
+               emmc: sdhc@5a000000 {
+                       compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
+                       reg = <0x5a000000 0x400>;
+                       interrupts = <0 78 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_emmc>;
+                       clocks = <&sys_clk 4>;
+                       bus-width = <8>;
+                       mmc-ddr-1_8v;
+                       mmc-hs200-1_8v;
+                       cdns,phy-input-delay-legacy = <4>;
+                       cdns,phy-input-delay-mmc-highspeed = <2>;
+                       cdns,phy-input-delay-mmc-ddr = <3>;
+                       cdns,phy-dll-delay-sdclk = <21>;
+                       cdns,phy-dll-delay-sdclk-hsmmc = <21>;
+               };
+
+               soc-glue@5f800000 {
+                       compatible = "socionext,uniphier-pxs3-soc-glue",
+                                    "simple-mfd", "syscon";
+                       reg = <0x5f800000 0x2000>;
+
+                       pinctrl: pinctrl {
+                               compatible = "socionext,uniphier-pxs3-pinctrl";
+                       };
+               };
+
+               aidet: aidet@5fc20000 {
+                       compatible = "socionext,uniphier-pxs3-aidet";
+                       reg = <0x5fc20000 0x200>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gic: interrupt-controller@5fe00000 {
+                       compatible = "arm,gic-v3";
+                       reg = <0x5fe00000 0x10000>,     /* GICD */
+                             <0x5fe80000 0x80000>;     /* GICR */
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       interrupts = <1 9 4>;
+               };
+
+               sysctrl@61840000 {
+                       compatible = "socionext,uniphier-pxs3-sysctrl",
+                                    "simple-mfd", "syscon";
+                       reg = <0x61840000 0x10000>;
+
+                       sys_clk: clock {
+                               compatible = "socionext,uniphier-pxs3-clock";
+                               #clock-cells = <1>;
+                       };
+
+                       sys_rst: reset {
+                               compatible = "socionext,uniphier-pxs3-reset";
+                               #reset-cells = <1>;
+                       };
+
+                       watchdog {
+                               compatible = "socionext,uniphier-wdt";
+                       };
+               };
+
+               nand: nand@68000000 {
+                       compatible = "socionext,uniphier-denali-nand-v5b";
+                       status = "disabled";
+                       reg-names = "nand_data", "denali_reg";
+                       reg = <0x68000000 0x20>, <0x68100000 0x1000>;
+                       interrupts = <0 65 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_nand>;
+                       clocks = <&sys_clk 2>;
+               };
+       };
+};
+
+#include "uniphier-pinctrl.dtsi"
deleted file mode 120000 (symlink)
index 4685a8d89cba2b56bcdc24e399c79a850d799491..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/uniphier-ref-daughter.dtsi
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..e66d999d9f5d3a1ab87fc398ef611ef4cf048be2
--- /dev/null
@@ -0,0 +1 @@
+#include <arm/uniphier-ref-daughter.dtsi>
deleted file mode 120000 (symlink)
index 1246db9be2a1914221d74871b1e6f303884731c6..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../../arm/boot/dts/uniphier-support-card.dtsi
\ No newline at end of file
new file mode 100644 (file)
index 0000000000000000000000000000000000000000..28c5b4ed1d9500fb283876ba766d826a81c44a8d
--- /dev/null
@@ -0,0 +1 @@
+#include <arm/uniphier-support-card.dtsi>
index cdc6a437dcc73d33c0aaedb28df523cda333891a..b87b8316f4acaecab6e5a243f2cce8ae2f1c7d31 100644 (file)
@@ -11,7 +11,7 @@
  * the License, or (at your option) any later version.
  */
 
-&amba {
+/ {
        misc_clk: misc_clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                #clock-cells = <0>;
                clock-frequency = <75000000>;
        };
+
+       clk100: clk100 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+
+       clk600: clk600 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <600000000>;
+       };
 };
 
 &can0 {
        clocks = <&misc_clk &misc_clk>;
 };
 
+&can1 {
+       clocks = <&misc_clk &misc_clk>;
+};
+
+&fpd_dma_chan1 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan2 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan3 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan4 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan5 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan6 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan7 {
+       clocks = <&clk600>, <&clk100>;
+};
+
+&fpd_dma_chan8 {
+       clocks = <&clk600>, <&clk100>;
+};
+
 &gem0 {
        clocks = <&misc_clk>, <&misc_clk>, <&misc_clk>;
 };
index ef1b9e573af0f5bd2ed6792ba5c9450a64ecaa45..bf552674a834140c0d574fe8b2fd3b0613c17798 100644 (file)
 
 /dts-v1/;
 
-/include/ "zynqmp.dtsi"
-/include/ "zynqmp-ep108-clk.dtsi"
+#include "zynqmp.dtsi"
+#include "zynqmp-ep108-clk.dtsi"
 
 / {
        model = "ZynqMP EP108";
 
        aliases {
+               mmc0 = &sdhci0;
+               mmc1 = &sdhci1;
                serial0 = &uart0;
        };
 
        status = "okay";
 };
 
+&can1 {
+       status = "okay";
+};
+
 &gem0 {
        status = "okay";
        phy-handle = <&phy0>;
@@ -55,7 +61,7 @@
        status = "okay";
        clock-frequency = <400000>;
        eeprom@54 {
-               compatible = "at,24c64";
+               compatible = "atmel,24c64";
                reg = <0x54>;
        };
 };
@@ -64,7 +70,7 @@
        status = "okay";
        clock-frequency = <400000>;
        eeprom@55 {
-               compatible = "at,24c64";
+               compatible = "atmel,24c64";
                reg = <0x55>;
        };
 };
@@ -92,7 +98,7 @@
                spi-max-frequency = <50000000>;
                reg = <0>;
 
-               spi0_flash0@00000000 {
+               spi0_flash0@0 {
                        label = "spi0_flash0";
                        reg = <0x0 0x100000>;
                };
                spi-max-frequency = <50000000>;
                reg = <0>;
 
-               spi1_flash0@00000000 {
+               spi1_flash0@0 {
                        label = "spi1_flash0";
                        reg = <0x0 0x100000>;
                };
index 54dc28351c8cb85a0abbd4bbad554d56dbcbac79..7665fbddff280fcb4be412470e551d9409d1575e 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               cpu@0 {
+               cpu0: cpu@0 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        enable-method = "psci";
+                       operating-points-v2 = <&cpu_opp_table>;
                        reg = <0x0>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
                };
 
-               cpu@1 {
+               cpu1: cpu@1 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        enable-method = "psci";
                        reg = <0x1>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
                };
 
-               cpu@2 {
+               cpu2: cpu@2 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        enable-method = "psci";
                        reg = <0x2>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
                };
 
-               cpu@3 {
+               cpu3: cpu@3 {
                        compatible = "arm,cortex-a53", "arm,armv8";
                        device_type = "cpu";
                        enable-method = "psci";
                        reg = <0x3>;
+                       operating-points-v2 = <&cpu_opp_table>;
+                       cpu-idle-states = <&CPU_SLEEP_0>;
                };
+
+               idle-states {
+                       entry-method = "arm,psci";
+
+                       CPU_SLEEP_0: cpu-sleep-0 {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x40000000>;
+                               local-timer-stop;
+                               entry-latency-us = <300>;
+                               exit-latency-us = <600>;
+                               min-residency-us = <10000>;
+                       };
+               };
+       };
+
+       cpu_opp_table: cpu_opp_table {
+               compatible = "operating-points-v2";
+               opp-shared;
+               opp00 {
+                       opp-hz = /bits/ 64 <1199999988>;
+                       opp-microvolt = <1000000>;
+                       clock-latency-ns = <500000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <599999994>;
+                       opp-microvolt = <1000000>;
+                       clock-latency-ns = <500000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <399999996>;
+                       opp-microvolt = <1000000>;
+                       clock-latency-ns = <500000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <299999997>;
+                       opp-microvolt = <1000000>;
+                       clock-latency-ns = <500000>;
+               };
+       };
+
+       dcc: dcc {
+               compatible = "arm,dcc";
+               status = "disabled";
        };
 
        pmu {
                        rx-fifo-depth = <0x40>;
                };
 
+               cci: cci@fd6e0000 {
+                       compatible = "arm,cci-400";
+                       reg = <0x0 0xfd6e0000 0x0 0x9000>;
+                       ranges = <0x0 0x0 0xfd6e0000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       pmu@9000 {
+                               compatible = "arm,cci-400-pmu,r1";
+                               reg = <0x9000 0x5000>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <0 123 4>,
+                                            <0 123 4>,
+                                            <0 123 4>,
+                                            <0 123 4>,
+                                            <0 123 4>;
+                       };
+               };
+
+               /* GDMA */
+               fpd_dma_chan1: dma@fd500000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd500000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 124 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan2: dma@fd510000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd510000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 125 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan3: dma@fd520000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd520000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 126 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan4: dma@fd530000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd530000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 127 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan5: dma@fd540000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd540000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 128 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan6: dma@fd550000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd550000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 129 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan7: dma@fd560000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd560000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 130 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               fpd_dma_chan8: dma@fd570000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xfd570000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 131 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <128>;
+               };
+
+               /* LPDDMA default allows only secured access. inorder to enable
+                * These dma channels, Users should ensure that these dma
+                * Channels are allowed for non secure access.
+                */
+               lpd_dma_chan1: dma@ffa80000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffa80000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 77 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan2: dma@ffa90000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffa90000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 78 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan3: dma@ffaa0000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffaa0000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 79 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan4: dma@ffab0000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffab0000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 80 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan5: dma@ffac0000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffac0000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 81 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan6: dma@ffad0000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffad0000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 82 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan7: dma@ffae0000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffae0000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 83 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
+               lpd_dma_chan8: dma@ffaf0000 {
+                       status = "disabled";
+                       compatible = "xlnx,zynqmp-dma-1.0";
+                       reg = <0x0 0xffaf0000 0x0 0x1000>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 84 4>;
+                       clock-names = "clk_main", "clk_apb";
+                       xlnx,bus-width = <64>;
+               };
+
                gem0: ethernet@ff0b0000 {
                        compatible = "cdns,gem";
                        status = "disabled";
                              <0x0 0xfd480000 0x0 0x1000>,
                              <0x80 0x00000000 0x0 0x1000000>;
                        reg-names = "breg", "pcireg", "cfg";
-                       ranges = <0x02000000 0x00000000 0xe0000000 0x00000000
-                                 0xe0000000 0x00000000 0x10000000
-                                 /* non-prefetchable memory */
-                                 0x43000000 0x00000006 0x00000000 0x00000006
-                                 0x00000000 0x00000002 0x00000000>;
-                                 /* prefetchable memory */
+                       ranges = <0x02000000 0x00000000 0xe0000000 0x00000000 0xe0000000 0x00000000 0x10000000  /* non-prefetchable memory */
+                                 0x43000000 0x00000006 0x00000000 0x00000006 0x00000000 0x00000002 0x00000000>;/* prefetchable memory */
+                       bus-range = <0x00 0xff>;
                        interrupt-map-mask = <0x0 0x0 0x0 0x7>;
                        interrupt-map = <0x0 0x0 0x0 0x1 &pcie_intc 0x1>,
                                        <0x0 0x0 0x0 0x2 &pcie_intc 0x2>,
                        };
                };
 
+               rtc: rtc@ffa60000 {
+                       compatible = "xlnx,zynqmp-rtc";
+                       status = "disabled";
+                       reg = <0x0 0xffa60000 0x0 0x100>;
+                       interrupt-parent = <&gic>;
+                       interrupts = <0 26 4>, <0 27 4>;
+                       interrupt-names = "alarm", "sec";
+                       calibration = <0x8000>;
+               };
+
                sata: ahci@fd0c0000 {
                        compatible = "ceva,ahci-1v84";
                        status = "disabled";
                smmu: smmu@fd800000 {
                        compatible = "arm,mmu-500";
                        reg = <0x0 0xfd800000 0x0 0x20000>;
+                       status = "disabled";
                        #global-interrupts = <1>;
                        interrupt-parent = <&gic>;
-                       interrupts = <0 157 4>,
-                               <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
-                               <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
-                               <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>,
-                               <0 157 4>, <0 157 4>, <0 157 4>, <0 157 4>;
+                       interrupts = <0 155 4>,
+                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>,
+                               <0 155 4>, <0 155 4>, <0 155 4>, <0 155 4>;
                };
 
                spi0: spi@ff040000 {
                };
 
                uart0: serial@ff000000 {
-                       compatible = "cdns,uart-r1p8";
+                       compatible = "cdns,uart-r1p12", "xlnx,xuartps";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <0 21 4>;
                };
 
                uart1: serial@ff010000 {
-                       compatible = "cdns,uart-r1p8";
+                       compatible = "cdns,uart-r1p12", "xlnx,xuartps";
                        status = "disabled";
                        interrupt-parent = <&gic>;
                        interrupts = <0 22 4>;
index 667806620f59273bf0720e121cc033bc2fc235c7..d86c4def6bc98ebac49c49b23d7294b59cf9da07 100644 (file)
@@ -1,4 +1,5 @@
 dtb-$(CONFIG_ARCH_ZX) += zx296718-evb.dtb
+dtb-$(CONFIG_ARCH_ZX) += zx296718-pcbox.dtb
 
 always         := $(dtb-y)
 subdir-y       := $(dts-dirs)
index bb900d2bbcfb5e6b9ca88187fc491142f359ed31..cb2519ecd724b526ff7f342b385d026f4c5808c0 100644 (file)
                reg = <0x40000000 0x40000000>;
        };
 
-       sound0 {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "zx_snd_spdif0";
+       sound-spdif0 {
+               compatible = "audio-graph-card";
+               dais = <&spdif0_port>;
+       };
 
-               simple-audio-card,cpu {
-                       sound-dai = <&spdif0>;
-               };
+       sound-i2s0 {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_port>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&amplifier_pins>;
+               pa-gpios = <&bgpio4 0 GPIO_ACTIVE_HIGH>;
+               widgets = "Line", "Line Out Jack";
+               routing = "Amplifier", "LINEOUTL",
+                         "Amplifier", "LINEOUTR",
+                         "Line Out Jack", "Amplifier";
+       };
+};
 
-               simple-audio-card,codec {
-                       sound-dai = <&hdmi>;
+&aud96p22 {
+       port {
+               aud96p22_endpoint: endpoint {
+                       remote-endpoint = <&i2s0_endpoint>;
                };
        };
 };
 
 &hdmi {
        status = "okay";
+
+       port {
+               hdmi_endpoint: endpoint {
+                       remote-endpoint = <&spdif0_endpoint>;
+               };
+       };
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2s0 {
+       status = "okay";
+
+       i2s0_port: port {
+               i2s0_endpoint: endpoint {
+                       remote-endpoint = <&aud96p22_endpoint>;
+                       dai-format = "i2s";
+                       frame-master;
+                       bitclock-master;
+               };
+       };
+};
+
+&pmm {
+       amplifier_pins: amplifier {
+               pins = "TSI3_DATA";
+               function = "BGPIO";
+       };
 };
 
 &sd1 {
 
 &spdif0 {
        status = "okay";
+
+       spdif0_port: port {
+               spdif0_endpoint: endpoint {
+                       remote-endpoint = <&hdmi_endpoint>;
+               };
+       };
+};
+
+&tvenc {
+       status = "okay";
 };
 
 &uart0 {
diff --git a/arch/arm64/boot/dts/zte/zx296718-pcbox.dts b/arch/arm64/boot/dts/zte/zx296718-pcbox.dts
new file mode 100644 (file)
index 0000000..e02509f
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2017 Sanechips Technology Co., Ltd.
+ * Copyright 2017 Linaro Ltd.
+ *
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ */
+
+/dts-v1/;
+#include "zx296718.dtsi"
+#include <dt-bindings/pwm/pwm.h>
+
+/ {
+       model = "ZTE ZX296718 PCBOX Board";
+       compatible = "zte,zx296718-pcbox", "zte,zx296718";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       a53_vdd0v9: regulator-a53 {
+               compatible = "pwm-regulator";
+               pwms = <&pwm 3 1250 PWM_POLARITY_INVERTED>;
+               regulator-name = "A53_VDD0V9";
+               regulator-min-microvolt = <855000>;
+               regulator-max-microvolt = <1183000>;
+               pwm-dutycycle-unit = <100>;
+               pwm-dutycycle-range = <0 100>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       sound-spdif0 {
+               compatible = "audio-graph-card";
+               dais = <&spdif0_port>;
+       };
+
+       sound-i2s0 {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_port>;
+       };
+};
+
+&aud96p22 {
+       port {
+               aud96p22_endpoint: endpoint {
+                       remote-endpoint = <&i2s0_endpoint>;
+               };
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&a53_vdd0v9>;
+};
+
+&emmc {
+       status = "okay";
+};
+
+&hdmi {
+       status = "disabled";
+
+       port {
+               hdmi_endpoint: endpoint {
+                       remote-endpoint = <&spdif0_endpoint>;
+               };
+       };
+};
+
+&i2c0 {
+       status = "okay";
+};
+
+&i2s0 {
+       status = "okay";
+
+       i2s0_port: port {
+               i2s0_endpoint: endpoint {
+                       remote-endpoint = <&aud96p22_endpoint>;
+                       dai-format = "i2s";
+                       frame-master;
+                       bitclock-master;
+               };
+       };
+};
+
+&irdec {
+       status = "okay";
+};
+
+&pmm {
+       pwm3_pins: pwm3 {
+               pins = "KEY_ROW2";
+               function = "PWM";
+       };
+
+       vga_pins: vga {
+               pins = "KEY_COL1", "KEY_COL2", "VGA_HS", "VGA_VS";
+               function = "VGA";
+       };
+};
+
+&pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm3_pins>;
+       status = "okay";
+};
+
+&sd0 {
+       status = "okay";
+};
+
+&sd1 {
+       status = "okay";
+};
+
+&spdif0 {
+       status = "okay";
+
+       spdif0_port: port {
+               spdif0_endpoint: endpoint {
+                       remote-endpoint = <&hdmi_endpoint>;
+               };
+       };
+};
+
+&tvenc {
+       status = "disabled";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&vga {
+       pinctrl-names = "default";
+       pinctrl-0 = <&vga_pins>;
+       status = "okay";
+};
index d83bf789c8641b73f9c973e7aa0e1bdb41a62017..6eef64761009491ba768fa69919497e24d14f384 100644 (file)
        interrupt-parent = <&gic>;
 
        aliases {
+               gpio0 = &bgpio0;
+               gpio1 = &bgpio1;
+               gpio2 = &bgpio2;
+               gpio3 = &bgpio3;
+               gpio4 = &bgpio4;
+               gpio5 = &bgpio5;
+               gpio6 = &bgpio6;
                serial0 = &uart0;
        };
 
 
                opp-500000000 {
                        opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <866000>;
                        clock-latency-ns = <500000>;
                };
 
                opp-648000000 {
                        opp-hz = /bits/ 64 <648000000>;
+                       opp-microvolt = <866000>;
                        clock-latency-ns = <500000>;
                };
 
                opp-800000000 {
                        opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <888000>;
                        clock-latency-ns = <500000>;
                };
 
                opp-1000000000 {
                        opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <898000>;
                        clock-latency-ns = <500000>;
                };
 
                opp-1188000000 {
                        opp-hz = /bits/ 64 <1188000000>;
+                       opp-microvolt = <1015000>;
                        clock-latency-ns = <500000>;
                };
        };
                compatible = "simple-bus";
                ranges;
 
+               irdec: ir-decoder@111000 {
+                       compatible = "zte,zx296718-irdec";
+                       reg = <0x111000 0x1000>;
+                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                aon_sysctrl: aon-sysctrl@116000 {
                        compatible = "zte,zx296718-aon-sysctrl", "syscon";
                        reg = <0x116000 0x1000>;
                };
 
+               iocfg: pin-controller@119000 {
+                       compatible = "zte,zx296718-iocfg";
+                       reg = <0x119000 0x1000>;
+               };
+
                uart0: uart@11f000 {
                        compatible = "arm,pl011", "arm,primecell";
                        arm,primecell-periphid = <0x001feffe>;
                        clock-frequency = <50000000>;
                        clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;
                        clock-names = "biu", "ciu";
-                       num-slots = <1>;
                        max-frequency = <50000000>;
                        cap-sdio-irq;
                        cap-sd-highspeed;
                        clock-frequency = <167000000>;
                        clocks = <&topcrm SD1_AHB>, <&topcrm SD1_WCLK>;
                        clock-names = "biu", "ciu";
-                       num-slots = <1>;
                        max-frequency = <167000000>;
                        cap-sdio-irq;
                        cap-sd-highspeed;
                        #clock-cells = <1>;
                };
 
+               bgpio0: gpio@142d000 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d000 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 48 16>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               bgpio1: gpio@142d040 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d040 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 80 16>;
+                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               bgpio2: gpio@142d080 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d080 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 80 3
+                                      &pmm 3 32 4
+                                      &pmm 7 83 9>;
+                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               bgpio3: gpio@142d0c0 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d0c0 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 92 16>;
+                       interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               bgpio4: gpio@142d100 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d100 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 108 12
+                                      &pmm 12 121 4>;
+                       interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               bgpio5: gpio@142d140 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d140 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 125 16>;
+                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               bgpio6: gpio@142d180 {
+                       compatible = "zte,zx296718-gpio", "zte,zx296702-gpio";
+                       reg = <0x142d180 0x40>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pmm 0 141 2>;
+                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                lsp1crm: clock-controller@1430000 {
                        compatible = "zte,zx296718-lsp1crm";
                        reg = <0x01430000 0x1000>;
                        #clock-cells = <1>;
                };
 
+               pwm: pwm@1439000 {
+                       compatible = "zte,zx296718-pwm";
+                       reg = <0x1439000 0x1000>;
+                       clocks = <&lsp1crm LSP1_PWM_PCLK>,
+                                <&lsp1crm LSP1_PWM_WCLK>;
+                       clock-names = "pclk", "wclk";
+                       #pwm-cells = <3>;
+                       status = "disabled";
+               };
+
                vou: vou@1440000 {
                        compatible = "zte,zx296718-vou";
                        #address-cells = <1>;
                                              "main_wclk", "aux_wclk";
                        };
 
+                       vga: vga@8000 {
+                               compatible = "zte,zx296718-vga";
+                               reg = <0x8000 0x1000>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&topcrm VGA_I2C_WCLK>;
+                               clock-names = "i2c_wclk";
+                               zte,vga-power-control = <&sysctrl 0x170 0xe0>;
+                               status = "disabled";
+                       };
+
                        hdmi: hdmi@c000 {
                                compatible = "zte,zx296718-hdmi";
                                reg = <0xc000 0x4000>;
                        #clock-cells = <1>;
                };
 
+               pmm: pin-controller@1462000 {
+                       compatible = "zte,zx296718-pmm";
+                       reg = <0x1462000 0x1000>;
+                       zte,auxiliary-controller = <&iocfg>;
+               };
+
                sysctrl: sysctrl@1463000 {
                        compatible = "zte,zx296718-sysctrl", "syscon";
                        reg = <0x1463000 0x1000>;
                        #clock-cells = <1>;
                };
 
+               i2s0: i2s@1482000 {
+                       compatible = "zte,zx296718-i2s", "zte,zx296702-i2s";
+                       reg = <0x01482000 0x1000>;
+                       clocks = <&audiocrm AUDIO_I2S0_WCLK>,
+                                <&audiocrm AUDIO_I2S0_PCLK>;
+                       clock-names = "wclk", "pclk";
+                       assigned-clocks = <&audiocrm I2S0_WCLK_MUX>;
+                       assigned-clock-parents = <&topcrm AUDIO_99M>;
+                       interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
+                       dmas = <&dma 22>, <&dma 23>;
+                       dma-names = "tx", "rx";
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c0: i2c@1486000 {
+                       compatible = "zte,zx296718-i2c";
+                       reg = <0x01486000 0x1000>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&audiocrm AUDIO_I2C0_WCLK>;
+                       clock-frequency = <1600000>;
+                       status = "disabled";
+
+                       aud96p22: codec@22 {
+                               compatible = "zte,zx-aud96p22";
+                               #sound-dai-cells = <0>;
+                               reg = <0x22>;
+                       };
+               };
+
                spdif0: spdif@1488000 {
                        compatible = "zte,zx296702-spdif";
                        reg = <0x1488000 0x1000>;
index a7ea5f3da89d5357c2332f8a7fe4afa609cb9997..964489b39f6a0ed6e1a98ed28f26c676db52d0d8 100644 (file)
@@ -1188,6 +1188,7 @@ static struct clk_hw_onecell_data gxbb_hw_onecell_data = {
                [CLKID_32K_CLK]             = &gxbb_32k_clk.hw,
                [CLKID_32K_CLK_SEL]         = &gxbb_32k_clk_sel.hw,
                [CLKID_32K_CLK_DIV]         = &gxbb_32k_clk_div.hw,
+               [NR_CLKS]                   = NULL,
        },
        .num = NR_CLKS,
 };
@@ -1310,6 +1311,7 @@ static struct clk_hw_onecell_data gxl_hw_onecell_data = {
                [CLKID_32K_CLK]             = &gxbb_32k_clk.hw,
                [CLKID_32K_CLK_SEL]         = &gxbb_32k_clk_sel.hw,
                [CLKID_32K_CLK_DIV]         = &gxbb_32k_clk_div.hw,
+               [NR_CLKS]                   = NULL,
        },
        .num = NR_CLKS,
 };
index d63e77e8433d1f73fbcf52ce0122b6350c0dd15d..5b1d4b374d1c21dfa9ded8167b5e9d32bad95b77 100644 (file)
  * CLKID index values
  *
  * These indices are entirely contrived and do not map onto the hardware.
- * Migrate them out of this header and into the DT header file when they need
- * to be exposed to client nodes in DT: include/dt-bindings/clock/gxbb-clkc.h
+ * It has now been decided to expose everything by default in the DT header:
+ * include/dt-bindings/clock/gxbb-clkc.h. Only the clocks ids we don't want
+ * to expose, such as the internal muxes and dividers of composite clocks,
+ * will remain defined here.
  */
-#define CLKID_SYS_PLL            0
 /* ID 1 is unused (it was used by the non-existing CLKID_CPUCLK before) */
-/* CLKID_HDMI_PLL */
-#define CLKID_FIXED_PLL                  3
-/* CLKID_FCLK_DIV2 */
-/* CLKID_FCLK_DIV3 */
-/* CLKID_FCLK_DIV4 */
-#define CLKID_FCLK_DIV5                  7
-#define CLKID_FCLK_DIV7                  8
-/* CLKID_GP0_PLL */
 #define CLKID_MPEG_SEL           10
 #define CLKID_MPEG_DIV           11
-/* CLKID_CLK81 */
-#define CLKID_MPLL0              13
-#define CLKID_MPLL1              14
-/* CLKID_MPLL2 */
-#define CLKID_DDR                16
-#define CLKID_DOS                17
-#define CLKID_ISA                18
-#define CLKID_PL301              19
-#define CLKID_PERIPHS            20
-/* CLKID_SPICC */
-/* CLKID_I2C */
-/* #define CLKID_SAR_ADC */
-#define CLKID_SMART_CARD         24
-/* CLKID_RNG0 */
-/* CLKID_UART0 */
-#define CLKID_SDHC               27
-#define CLKID_STREAM             28
-#define CLKID_ASYNC_FIFO         29
-#define CLKID_SDIO               30
-#define CLKID_ABUF               31
-#define CLKID_HIU_IFACE                  32
-#define CLKID_ASSIST_MISC        33
-/* CLKID_SPI */
-#define CLKID_I2S_SPDIF                  35
-/* CLKID_ETH */
-#define CLKID_DEMUX              37
-/* CLKID_AIU_GLUE */
-/* CLKID_IEC958 */
-/* CLKID_I2S_OUT */
-#define CLKID_AMCLK              41
-#define CLKID_AIFIFO2            42
-#define CLKID_MIXER              43
-/* CLKID_MIXER_IFACE */
-#define CLKID_ADC                45
-#define CLKID_BLKMV              46
-/* CLKID_AIU */
-/* CLKID_UART1 */
-#define CLKID_G2D                49
-/* CLKID_USB0 */
-/* CLKID_USB1 */
-#define CLKID_RESET              52
-#define CLKID_NAND               53
-#define CLKID_DOS_PARSER         54
-/* CLKID_USB */
-#define CLKID_VDIN1              56
-#define CLKID_AHB_ARB0           57
-#define CLKID_EFUSE              58
-#define CLKID_BOOT_ROM           59
-#define CLKID_AHB_DATA_BUS       60
-#define CLKID_AHB_CTRL_BUS       61
-#define CLKID_HDMI_INTR_SYNC     62
-/* CLKID_HDMI_PCLK */
-/* CLKID_USB1_DDR_BRIDGE */
-/* CLKID_USB0_DDR_BRIDGE */
-#define CLKID_MMC_PCLK           66
-#define CLKID_DVIN               67
-/* CLKID_UART2 */
-/* #define CLKID_SANA */
-#define CLKID_VPU_INTR           70
-#define CLKID_SEC_AHB_AHB3_BRIDGE 71
-#define CLKID_CLK81_A53                  72
-#define CLKID_VCLK2_VENCI0       73
-#define CLKID_VCLK2_VENCI1       74
-#define CLKID_VCLK2_VENCP0       75
-#define CLKID_VCLK2_VENCP1       76
-/* CLKID_GCLK_VENCI_INT0 */
-#define CLKID_GCLK_VENCI_INT     78
-#define CLKID_DAC_CLK            79
-/* CLKID_AOCLK_GATE */
-/* CLKID_IEC958_GATE */
-#define CLKID_ENC480P            82
-#define CLKID_RNG1               83
-#define CLKID_GCLK_VENCI_INT1    84
-#define CLKID_VCLK2_VENCLMCC     85
-#define CLKID_VCLK2_VENCL        86
-#define CLKID_VCLK_OTHER         87
-#define CLKID_EDP                88
-#define CLKID_AO_MEDIA_CPU       89
-#define CLKID_AO_AHB_SRAM        90
-#define CLKID_AO_AHB_BUS         91
-#define CLKID_AO_IFACE           92
-/* CLKID_AO_I2C */
-/* CLKID_SD_EMMC_A */
-/* CLKID_SD_EMMC_B */
-/* CLKID_SD_EMMC_C */
-/* CLKID_SAR_ADC_CLK */
-/* CLKID_SAR_ADC_SEL */
 #define CLKID_SAR_ADC_DIV        99
-/* CLKID_MALI_0_SEL */
-#define CLKID_MALI_0_DIV        101
-/* CLKID_MALI_0        */
-/* CLKID_MALI_1_SEL */
-#define CLKID_MALI_1_DIV        104
-/* CLKID_MALI_1        */
-/* CLKID_MALI  */
-/* CLKID_CTS_AMCLK */
+#define CLKID_MALI_0_DIV         101
+#define CLKID_MALI_1_DIV         104
 #define CLKID_CTS_AMCLK_SEL      108
 #define CLKID_CTS_AMCLK_DIV      109
-/* CLKID_CTS_MCLK_I958 */
 #define CLKID_CTS_MCLK_I958_SEL          111
 #define CLKID_CTS_MCLK_I958_DIV          112
-/* CLKID_CTS_I958 */
-#define CLKID_32K_CLK            114
 #define CLKID_32K_CLK_SEL        115
 #define CLKID_32K_CLK_DIV        116
+#define CLKID_SD_EMMC_A_CLK0_SEL  117
+#define CLKID_SD_EMMC_A_CLK0_DIV  118
+#define CLKID_SD_EMMC_B_CLK0_SEL  120
+#define CLKID_SD_EMMC_B_CLK0_DIV  121
+#define CLKID_SD_EMMC_C_CLK0_SEL  123
+#define CLKID_SD_EMMC_C_CLK0_DIV  124
 
-#define NR_CLKS                          117
+#define NR_CLKS                          126
 
-/* include the CLKIDs that have been made part of the stable DT binding */
+/* include the CLKIDs that have been made part of the DT binding */
 #include <dt-bindings/clock/gxbb-clkc.h>
 
 #endif /* __GXBB_H */
index 6ec512ad259805c34b57be3ee96eddef149599ee..cb60a516ca82bcf85d3b8334306696531ab6a597 100644 (file)
@@ -590,6 +590,7 @@ static struct clk_hw_onecell_data meson8b_hw_onecell_data = {
                [CLKID_MPLL0]               = &meson8b_mpll0.hw,
                [CLKID_MPLL1]               = &meson8b_mpll1.hw,
                [CLKID_MPLL2]               = &meson8b_mpll2.hw,
+               [CLK_NR_CLKS]               = NULL,
        },
        .num = CLK_NR_CLKS,
 };
index a687e02547dcc9280d7bdf3bee07efd2db110e8f..c139bb3273ca74a557605c987694e53980a5fb62 100644 (file)
  * CLKID index values
  *
  * These indices are entirely contrived and do not map onto the hardware.
- * Migrate them out of this header and into the DT header file when they need
- * to be exposed to client nodes in DT: include/dt-bindings/clock/meson8b-clkc.h
+ * It has now been decided to expose everything by default in the DT header:
+ * include/dt-bindings/clock/gxbb-clkc.h. Only the clocks ids we don't want
+ * to expose, such as the internal muxes and dividers of composite clocks,
+ * will remain defined here.
  */
 
-/* CLKID_UNUSED */
-/* CLKID_XTAL */
-/* CLKID_PLL_FIXED */
-/* CLKID_PLL_VID */
-/* CLKID_PLL_SYS */
-/* CLKID_FCLK_DIV2 */
-/* CLKID_FCLK_DIV3 */
-/* CLKID_FCLK_DIV4 */
-/* CLKID_FCLK_DIV5 */
-/* CLKID_FCLK_DIV7 */
-/* CLKID_CLK81 */
-/* CLKID_MALI */
-/* CLKID_CPUCLK */
-/* CLKID_ZERO */
-/* CLKID_MPEG_SEL */
-/* CLKID_MPEG_DIV */
-#define CLKID_DDR              16
-#define CLKID_DOS              17
-#define CLKID_ISA              18
-#define CLKID_PL301            19
-#define CLKID_PERIPHS          20
-#define CLKID_SPICC            21
-#define CLKID_I2C              22
-/* #define CLKID_SAR_ADC */
-#define CLKID_SMART_CARD       24
-/* #define CLKID_RNG0 */
-#define CLKID_UART0            26
-#define CLKID_SDHC             27
-#define CLKID_STREAM           28
-#define CLKID_ASYNC_FIFO       29
-/* #define CLKID_SDIO */
-#define CLKID_ABUF             31
-#define CLKID_HIU_IFACE                32
-#define CLKID_ASSIST_MISC      33
-#define CLKID_SPI              34
-#define CLKID_I2S_SPDIF                35
-/* #define CLKID_ETH */
-#define CLKID_DEMUX            37
-#define CLKID_AIU_GLUE         38
-#define CLKID_IEC958           39
-#define CLKID_I2S_OUT          40
-#define CLKID_AMCLK            41
-#define CLKID_AIFIFO2          42
-#define CLKID_MIXER            43
-#define CLKID_MIXER_IFACE      44
-#define CLKID_ADC              45
-#define CLKID_BLKMV            46
-#define CLKID_AIU              47
-#define CLKID_UART1            48
-#define CLKID_G2D              49
-/* #define CLKID_USB0 */
-/* #define CLKID_USB1 */
-#define CLKID_RESET            52
-#define CLKID_NAND             53
-#define CLKID_DOS_PARSER       54
-/* #define CLKID_USB */
-#define CLKID_VDIN1            56
-#define CLKID_AHB_ARB0         57
-#define CLKID_EFUSE            58
-#define CLKID_BOOT_ROM         59
-#define CLKID_AHB_DATA_BUS     60
-#define CLKID_AHB_CTRL_BUS     61
-#define CLKID_HDMI_INTR_SYNC   62
-#define CLKID_HDMI_PCLK                63
-/* CLKID_USB1_DDR_BRIDGE */
-/* CLKID_USB0_DDR_BRIDGE */
-#define CLKID_MMC_PCLK         66
-#define CLKID_DVIN             67
-#define CLKID_UART2            68
-/* #define CLKID_SANA */
-#define CLKID_VPU_INTR         70
-#define CLKID_SEC_AHB_AHB3_BRIDGE      71
-#define CLKID_CLK81_A9         72
-#define CLKID_VCLK2_VENCI0     73
-#define CLKID_VCLK2_VENCI1     74
-#define CLKID_VCLK2_VENCP0     75
-#define CLKID_VCLK2_VENCP1     76
-#define CLKID_GCLK_VENCI_INT   77
-#define CLKID_GCLK_VENCP_INT   78
-#define CLKID_DAC_CLK          79
-#define CLKID_AOCLK_GATE       80
-#define CLKID_IEC958_GATE      81
-#define CLKID_ENC480P          82
-#define CLKID_RNG1             83
-#define CLKID_GCLK_VENCL_INT   84
-#define CLKID_VCLK2_VENCLMCC   85
-#define CLKID_VCLK2_VENCL      86
-#define CLKID_VCLK2_OTHER      87
-#define CLKID_EDP              88
-#define CLKID_AO_MEDIA_CPU     89
-#define CLKID_AO_AHB_SRAM      90
-#define CLKID_AO_AHB_BUS       91
-#define CLKID_AO_IFACE         92
-#define CLKID_MPLL0            93
-#define CLKID_MPLL1            94
-#define CLKID_MPLL2            95
-
 #define CLK_NR_CLKS            96
 
 /* include the CLKIDs that have been made part of the stable DT binding */
index 31751482d13cb498fb4989a41cb336e8c7e92e13..9d15e2221fdb7fd5f732eaa5a800f7b66112f8a5 100644 (file)
@@ -62,5 +62,6 @@
 #define CLKID_AO_UART1         3
 #define CLKID_AO_UART2         4
 #define CLKID_AO_IR_BLASTER    5
+#define CLKID_AO_CEC_32K       6
 
 #endif
index e3e9f7919c318baed4063fc7199def1a6d684018..c04a76d8facff42319d708830c985bf342427627 100644 (file)
@@ -5,37 +5,96 @@
 #ifndef __GXBB_CLKC_H
 #define __GXBB_CLKC_H
 
+#define CLKID_SYS_PLL          0
 #define CLKID_HDMI_PLL         2
+#define CLKID_FIXED_PLL                3
 #define CLKID_FCLK_DIV2                4
 #define CLKID_FCLK_DIV3                5
 #define CLKID_FCLK_DIV4                6
+#define CLKID_FCLK_DIV5                7
+#define CLKID_FCLK_DIV7                8
 #define CLKID_GP0_PLL          9
 #define CLKID_CLK81            12
+#define CLKID_MPLL0            13
+#define CLKID_MPLL1            14
 #define CLKID_MPLL2            15
+#define CLKID_DDR              16
+#define CLKID_DOS              17
+#define CLKID_ISA              18
+#define CLKID_PL301            19
+#define CLKID_PERIPHS          20
 #define CLKID_SPICC            21
 #define CLKID_I2C              22
 #define CLKID_SAR_ADC          23
+#define CLKID_SMART_CARD       24
 #define CLKID_RNG0             25
 #define CLKID_UART0            26
+#define CLKID_SDHC             27
+#define CLKID_STREAM           28
+#define CLKID_ASYNC_FIFO       29
+#define CLKID_SDIO             30
+#define CLKID_ABUF             31
+#define CLKID_HIU_IFACE                32
+#define CLKID_ASSIST_MISC      33
 #define CLKID_SPI              34
 #define CLKID_ETH              36
+#define CLKID_I2S_SPDIF                35
+#define CLKID_DEMUX            37
 #define CLKID_AIU_GLUE         38
 #define CLKID_IEC958           39
 #define CLKID_I2S_OUT          40
+#define CLKID_AMCLK            41
+#define CLKID_AIFIFO2          42
+#define CLKID_MIXER            43
 #define CLKID_MIXER_IFACE      44
+#define CLKID_ADC              45
+#define CLKID_BLKMV            46
 #define CLKID_AIU              47
 #define CLKID_UART1            48
+#define CLKID_G2D              49
 #define CLKID_USB0             50
 #define CLKID_USB1             51
+#define CLKID_RESET            52
+#define CLKID_NAND             53
+#define CLKID_DOS_PARSER       54
 #define CLKID_USB              55
+#define CLKID_VDIN1            56
+#define CLKID_AHB_ARB0         57
+#define CLKID_EFUSE            58
+#define CLKID_BOOT_ROM         59
+#define CLKID_AHB_DATA_BUS     60
+#define CLKID_AHB_CTRL_BUS     61
+#define CLKID_HDMI_INTR_SYNC   62
 #define CLKID_HDMI_PCLK                63
 #define CLKID_USB1_DDR_BRIDGE  64
 #define CLKID_USB0_DDR_BRIDGE  65
+#define CLKID_MMC_PCLK         66
+#define CLKID_DVIN             67
 #define CLKID_UART2            68
 #define CLKID_SANA             69
+#define CLKID_VPU_INTR         70
+#define CLKID_SEC_AHB_AHB3_BRIDGE 71
+#define CLKID_CLK81_A53                72
+#define CLKID_VCLK2_VENCI0     73
+#define CLKID_VCLK2_VENCI1     74
+#define CLKID_VCLK2_VENCP0     75
+#define CLKID_VCLK2_VENCP1     76
 #define CLKID_GCLK_VENCI_INT0  77
+#define CLKID_GCLK_VENCI_INT   78
+#define CLKID_DAC_CLK          79
 #define CLKID_AOCLK_GATE       80
 #define CLKID_IEC958_GATE      81
+#define CLKID_ENC480P          82
+#define CLKID_RNG1             83
+#define CLKID_GCLK_VENCI_INT1  84
+#define CLKID_VCLK2_VENCLMCC   85
+#define CLKID_VCLK2_VENCL      86
+#define CLKID_VCLK_OTHER       87
+#define CLKID_EDP              88
+#define CLKID_AO_MEDIA_CPU     89
+#define CLKID_AO_AHB_SRAM      90
+#define CLKID_AO_AHB_BUS       91
+#define CLKID_AO_IFACE         92
 #define CLKID_AO_I2C           93
 #define CLKID_SD_EMMC_A                94
 #define CLKID_SD_EMMC_B                95
 #define CLKID_CTS_AMCLK                107
 #define CLKID_CTS_MCLK_I958    110
 #define CLKID_CTS_I958         113
+#define CLKID_32K_CLK          114
+#define CLKID_SD_EMMC_A_CLK0   119
+#define CLKID_SD_EMMC_B_CLK0   122
+#define CLKID_SD_EMMC_C_CLK0   125
 
 #endif /* __GXBB_CLKC_H */
index e29227fb52a18c66b6aba5773f38fc0c872ea97d..a9c0306330b6a78e910fb5b1fb9fd3dfd107b01e 100644 (file)
 #define CLKID_ZERO             13
 #define CLKID_MPEG_SEL         14
 #define CLKID_MPEG_DIV         15
+#define CLKID_DDR              16
+#define CLKID_DOS              17
+#define CLKID_ISA              18
+#define CLKID_PL301            19
+#define CLKID_PERIPHS          20
+#define CLKID_SPICC            21
+#define CLKID_I2C              22
 #define CLKID_SAR_ADC          23
+#define CLKID_SMART_CARD       24
 #define CLKID_RNG0             25
+#define CLKID_UART0            26
+#define CLKID_SDHC             27
+#define CLKID_STREAM           28
+#define CLKID_ASYNC_FIFO       29
 #define CLKID_SDIO             30
+#define CLKID_ABUF             31
+#define CLKID_HIU_IFACE                32
+#define CLKID_ASSIST_MISC      33
+#define CLKID_SPI              34
+#define CLKID_I2S_SPDIF                35
 #define CLKID_ETH              36
+#define CLKID_DEMUX            37
+#define CLKID_AIU_GLUE         38
+#define CLKID_IEC958           39
+#define CLKID_I2S_OUT          40
+#define CLKID_AMCLK            41
+#define CLKID_AIFIFO2          42
+#define CLKID_MIXER            43
+#define CLKID_MIXER_IFACE      44
+#define CLKID_ADC              45
+#define CLKID_BLKMV            46
+#define CLKID_AIU              47
+#define CLKID_UART1            48
+#define CLKID_G2D              49
 #define CLKID_USB0             50
 #define CLKID_USB1             51
+#define CLKID_RESET            52
+#define CLKID_NAND             53
+#define CLKID_DOS_PARSER       54
 #define CLKID_USB              55
+#define CLKID_VDIN1            56
+#define CLKID_AHB_ARB0         57
+#define CLKID_EFUSE            58
+#define CLKID_BOOT_ROM         59
+#define CLKID_AHB_DATA_BUS     60
+#define CLKID_AHB_CTRL_BUS     61
+#define CLKID_HDMI_INTR_SYNC   62
+#define CLKID_HDMI_PCLK                63
 #define CLKID_USB1_DDR_BRIDGE  64
 #define CLKID_USB0_DDR_BRIDGE  65
+#define CLKID_MMC_PCLK         66
+#define CLKID_DVIN             67
+#define CLKID_UART2            68
 #define CLKID_SANA             69
+#define CLKID_VPU_INTR         70
+#define CLKID_SEC_AHB_AHB3_BRIDGE      71
+#define CLKID_CLK81_A9         72
+#define CLKID_VCLK2_VENCI0     73
+#define CLKID_VCLK2_VENCI1     74
+#define CLKID_VCLK2_VENCP0     75
+#define CLKID_VCLK2_VENCP1     76
+#define CLKID_GCLK_VENCI_INT   77
+#define CLKID_GCLK_VENCP_INT   78
+#define CLKID_DAC_CLK          79
+#define CLKID_AOCLK_GATE       80
+#define CLKID_IEC958_GATE      81
+#define CLKID_ENC480P          82
+#define CLKID_RNG1             83
+#define CLKID_GCLK_VENCL_INT   84
+#define CLKID_VCLK2_VENCLMCC   85
+#define CLKID_VCLK2_VENCL      86
+#define CLKID_VCLK2_OTHER      87
+#define CLKID_EDP              88
+#define CLKID_AO_MEDIA_CPU     89
+#define CLKID_AO_AHB_SRAM      90
+#define CLKID_AO_AHB_BUS       91
+#define CLKID_AO_IFACE         92
+#define CLKID_MPLL0            93
+#define CLKID_MPLL1            94
+#define CLKID_MPLL2            95
 
 #endif /* __MESON8B_CLKC_H */
index ae26f81059142867a009197e1c37c8e00d3dbd21..f269d833e41a32851af31a81cf09a9ff8c2ae1b8 100644 (file)
 #define SCLK_SDMMC_SAMPLE              84
 #define SCLK_SDIO_SAMPLE               85
 #define SCLK_EMMC_SAMPLE               86
+#define SCLK_VENC_CORE                 87
+#define SCLK_HEVC_CORE                 88
+#define SCLK_HEVC_CABAC                        89
+#define SCLK_PWM0_PMU                  90
+#define SCLK_I2C0_PMU                  91
+#define SCLK_WIFI                      92
+#define SCLK_CIFOUT                    93
+#define SCLK_MIPI_CSI_OUT              94
+#define SCLK_CIF0                      95
+#define SCLK_CIF1                      96
+#define SCLK_CIF2                      97
+#define SCLK_CIF3                      98
+#define SCLK_DSP                       99
+#define SCLK_DSP_IOP                   100
+#define SCLK_DSP_EPP                   101
+#define SCLK_DSP_EDP                   102
+#define SCLK_DSP_EDAP                  103
+#define SCLK_CVBS_HOST                 104
+#define SCLK_HDMI_SFR                  105
+#define SCLK_HDMI_CEC                  106
+#define SCLK_CRYPTO                    107
+#define SCLK_SPI                       108
+#define SCLK_SARADC                    109
+#define SCLK_TSADC                     110
+#define SCLK_MACPHY_PRE                        111
+#define SCLK_MACPHY                    112
+#define SCLK_MACPHY_RX                 113
+#define SCLK_MAC_REF                   114
+#define SCLK_MAC_REFOUT                        115
+#define SCLK_DSP_PFM                   116
+#define SCLK_RGA                       117
+#define SCLK_I2C1                      118
+#define SCLK_I2C2                      119
+#define SCLK_I2C3                      120
+#define SCLK_PWM                       121
+#define SCLK_ISP                       122
+#define SCLK_USBPHY                    123
+#define SCLK_I2S0_SRC                  124
+#define SCLK_I2S1_SRC                  125
+#define SCLK_I2S2_SRC                  126
+#define SCLK_UART0_SRC                 127
+#define SCLK_UART1_SRC                 128
+#define SCLK_UART2_SRC                 129
+
+#define DCLK_VOP_SRC                   185
+#define DCLK_HDMIPHY                   186
+#define DCLK_VOP                       187
 
 /* aclk gates */
 #define ACLK_DMAC                      192
 #define ACLK_PRE                       193
 #define ACLK_CORE                      194
 #define ACLK_ENMCORE                   195
+#define ACLK_RKVENC                    196
+#define ACLK_RKVDEC                    197
+#define ACLK_VPU                       198
+#define ACLK_CIF0                      199
+#define ACLK_VIO0                      200
+#define ACLK_VIO1                      201
+#define ACLK_VOP                       202
+#define ACLK_IEP                       203
+#define ACLK_RGA                       204
+#define ACLK_ISP                       205
+#define ACLK_CIF1                      206
+#define ACLK_CIF2                      207
+#define ACLK_CIF3                      208
+#define ACLK_PERI                      209
 
 /* pclk gates */
 #define PCLK_GPIO1                     256
 #define PCLK_PWM                       269
 #define PCLK_TIMER                     270
 #define PCLK_PERI                      271
+#define PCLK_GPIO0_PMU                 272
+#define PCLK_I2C0_PMU                  273
+#define PCLK_PWM0_PMU                  274
+#define PCLK_ISP                       275
+#define PCLK_VIO                       276
+#define PCLK_MIPI_DSI                  277
+#define PCLK_HDMI_CTRL                 278
+#define PCLK_SARADC                    279
+#define PCLK_DSP_CFG                   280
+#define PCLK_BUS                       281
+#define PCLK_EFUSE0                    282
+#define PCLK_EFUSE1                    283
+#define PCLK_WDT                       284
 
 /* hclk gates */
 #define HCLK_I2S0_8CH                  320
-#define HCLK_I2S1_8CH                  321
+#define HCLK_I2S1_2CH                  321
 #define HCLK_I2S2_2CH                  322
 #define HCLK_NANDC                     323
 #define HCLK_SDMMC                     324
 #define HCLK_EMMC                      326
 #define HCLK_PERI                      327
 #define HCLK_SFC                       328
+#define HCLK_RKVENC                    329
+#define HCLK_RKVDEC                    330
+#define HCLK_CIF0                      331
+#define HCLK_VIO                       332
+#define HCLK_VOP                       333
+#define HCLK_IEP                       334
+#define HCLK_RGA                       335
+#define HCLK_ISP                       336
+#define HCLK_CRYPTO_MST                        337
+#define HCLK_CRYPTO_SLV                        338
+#define HCLK_HOST0                     339
+#define HCLK_OTG                       340
+#define HCLK_CIF1                      341
+#define HCLK_CIF2                      342
+#define HCLK_CIF3                      343
+#define HCLK_BUS                       344
+#define HCLK_VPU                       345
 
-#define CLK_NR_CLKS                    (HCLK_SFC + 1)
+#define CLK_NR_CLKS                    (HCLK_VPU + 1)
 
 /* reset id */
-#define SRST_CORE_PO_AD                0
+#define SRST_CORE_PO_AD                        0
 #define SRST_CORE_AD                   1
 #define SRST_L2_AD                     2
-#define SRST_CPU_NIU_AD                3
+#define SRST_CPU_NIU_AD                        3
 #define SRST_CORE_PO                   4
 #define SRST_CORE                      5
-#define SRST_L2                        6
+#define SRST_L2                                6
 #define SRST_CORE_DBG                  8
 #define PRST_DBG                       9
-#define RST_DAP                        10
+#define RST_DAP                                10
 #define PRST_DBG_NIU                   11
 #define ARST_STRC_SYS_AD               15
 
 #define HRST_SYSBUS                    75
 #define PRST_USBGRF                    76
 
-#define ARST_PERIPH_NIU                80
-#define HRST_PERIPH_NIU                81
-#define PRST_PERIPH_NIU                82
+#define ARST_PERIPH_NIU                        80
+#define HRST_PERIPH_NIU                        81
+#define PRST_PERIPH_NIU                        82
 #define HRST_PERIPH                    83
 #define HRST_SDMMC                     84
 #define HRST_SDIO                      85
 #define HRST_HOST0_AUX                 96
 #define HRST_HOST0_ARB                 97
 #define SRST_HOST0_EHCIPHY             98
-#define SRST_HOST0_UTMI                99
+#define SRST_HOST0_UTMI                        99
 #define SRST_USBPOR                    100
 #define SRST_UTMI0                     101
 #define SRST_UTMI1                     102
 #define HRST_VPU_NIU                   141
 #define ARST_VPU                       142
 #define HRST_VPU                       143
-#define ARST_RKVDEC_NIU                144
-#define HRST_RKVDEC_NIU                145
+#define ARST_RKVDEC_NIU                        144
+#define HRST_RKVDEC_NIU                        145
 #define ARST_RKVDEC                    146
 #define HRST_RKVDEC                    147
 #define SRST_RKVDEC_CABAC              148
 #define SRST_RKVDEC_CORE               149
-#define ARST_RKVENC_NIU                150
-#define HRST_RKVENC_NIU                151
+#define ARST_RKVENC_NIU                        150
+#define HRST_RKVENC_NIU                        151
 #define ARST_RKVENC                    152
 #define HRST_RKVENC                    153
 #define SRST_RKVENC_CORE               154
 
 #define SRST_DSP_CORE                  156
 #define SRST_DSP_SYS                   157
-#define SRST_DSP_GLOBAL                158
+#define SRST_DSP_GLOBAL                        158
 #define SRST_DSP_OECM                  159
 #define PRST_DSP_IOP_NIU               160
 #define ARST_DSP_EPP_NIU               161
 #define SRST_PMU_I2C0                  173
 #define PRST_PMU_I2C0                  174
 #define PRST_PMU_GPIO0                 175
-#define PRST_PMU_INTMEM                176
+#define PRST_PMU_INTMEM                        176
 #define PRST_PMU_PWM0                  177
 #define SRST_PMU_PWM0                  178
 #define PRST_PMU_GRF                   179
diff --git a/include/dt-bindings/genpd/k2g.h b/include/dt-bindings/genpd/k2g.h
deleted file mode 100644 (file)
index 1f31f17..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * TI K2G SoC Device definitions
- *
- * Copyright (C) 2015-2017 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- */
-
-#ifndef _DT_BINDINGS_GENPD_K2G_H
-#define _DT_BINDINGS_GENPD_K2G_H
-
-/* Documented in http://processors.wiki.ti.com/index.php/TISCI */
-
-#define K2G_DEV_PMMC0                  0x0000
-#define K2G_DEV_MLB0                   0x0001
-#define K2G_DEV_DSS0                   0x0002
-#define K2G_DEV_MCBSP0                 0x0003
-#define K2G_DEV_MCASP0                 0x0004
-#define K2G_DEV_MCASP1                 0x0005
-#define K2G_DEV_MCASP2                 0x0006
-#define K2G_DEV_DCAN0                  0x0008
-#define K2G_DEV_DCAN1                  0x0009
-#define K2G_DEV_EMIF0                  0x000a
-#define K2G_DEV_MMCHS0                 0x000b
-#define K2G_DEV_MMCHS1                 0x000c
-#define K2G_DEV_GPMC0                  0x000d
-#define K2G_DEV_ELM0                   0x000e
-#define K2G_DEV_SPI0                   0x0010
-#define K2G_DEV_SPI1                   0x0011
-#define K2G_DEV_SPI2                   0x0012
-#define K2G_DEV_SPI3                   0x0013
-#define K2G_DEV_ICSS0                  0x0014
-#define K2G_DEV_ICSS1                  0x0015
-#define K2G_DEV_USB0                   0x0016
-#define K2G_DEV_USB1                   0x0017
-#define K2G_DEV_NSS0                   0x0018
-#define K2G_DEV_PCIE0                  0x0019
-#define K2G_DEV_GPIO0                  0x001b
-#define K2G_DEV_GPIO1                  0x001c
-#define K2G_DEV_TIMER64_0              0x001d
-#define K2G_DEV_TIMER64_1              0x001e
-#define K2G_DEV_TIMER64_2              0x001f
-#define K2G_DEV_TIMER64_3              0x0020
-#define K2G_DEV_TIMER64_4              0x0021
-#define K2G_DEV_TIMER64_5              0x0022
-#define K2G_DEV_TIMER64_6              0x0023
-#define K2G_DEV_MSGMGR0                        0x0025
-#define K2G_DEV_BOOTCFG0               0x0026
-#define K2G_DEV_ARM_BOOTROM0           0x0027
-#define K2G_DEV_DSP_BOOTROM0           0x0029
-#define K2G_DEV_DEBUGSS0               0x002b
-#define K2G_DEV_UART0                  0x002c
-#define K2G_DEV_UART1                  0x002d
-#define K2G_DEV_UART2                  0x002e
-#define K2G_DEV_EHRPWM0                        0x002f
-#define K2G_DEV_EHRPWM1                        0x0030
-#define K2G_DEV_EHRPWM2                        0x0031
-#define K2G_DEV_EHRPWM3                        0x0032
-#define K2G_DEV_EHRPWM4                        0x0033
-#define K2G_DEV_EHRPWM5                        0x0034
-#define K2G_DEV_EQEP0                  0x0035
-#define K2G_DEV_EQEP1                  0x0036
-#define K2G_DEV_EQEP2                  0x0037
-#define K2G_DEV_ECAP0                  0x0038
-#define K2G_DEV_ECAP1                  0x0039
-#define K2G_DEV_I2C0                   0x003a
-#define K2G_DEV_I2C1                   0x003b
-#define K2G_DEV_I2C2                   0x003c
-#define K2G_DEV_EDMA0                  0x003f
-#define K2G_DEV_SEMAPHORE0             0x0040
-#define K2G_DEV_INTC0                  0x0041
-#define K2G_DEV_GIC0                   0x0042
-#define K2G_DEV_QSPI0                  0x0043
-#define K2G_DEV_ARM_64B_COUNTER0       0x0044
-#define K2G_DEV_TETRIS0                        0x0045
-#define K2G_DEV_CGEM0                  0x0046
-#define K2G_DEV_MSMC0                  0x0047
-#define K2G_DEV_CBASS0                 0x0049
-#define K2G_DEV_BOARD0                 0x004c
-#define K2G_DEV_EDMA1                  0x004f
-
-#endif
index 5c75e80915fcdc5b4411984cd57b8308eb388bfb..18ec5df5a5812a9f037247b6c95de1d15fba2546 100644 (file)
@@ -73,5 +73,8 @@
  */
 #define DRA7XX_CORE_IOPAD(pa, val)     (((pa) & 0xffff) - 0x3400) (val)
 
+/* DRA7 IODELAY configuration parameters */
+#define A_DELAY_PS(val)                        ((val) & 0xffff)
+#define G_DELAY_PS(val)                        ((val) & 0xffff)
 #endif
 
diff --git a/include/dt-bindings/reset/amlogic,meson8b-clkc-reset.h b/include/dt-bindings/reset/amlogic,meson8b-clkc-reset.h
new file mode 100644 (file)
index 0000000..1f1b56e
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2017 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
+ *
+ * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+ */
+
+#ifndef _DT_BINDINGS_AMLOGIC_MESON8B_CLKC_RESET_H
+#define _DT_BINDINGS_AMLOGIC_MESON8B_CLKC_RESET_H
+
+#define CLKC_RESET_L2_CACHE_SOFT_RESET                         0
+#define CLKC_RESET_AXI_64_TO_128_BRIDGE_A5_SOFT_RESET          1
+#define CLKC_RESET_SCU_SOFT_RESET                              2
+#define CLKC_RESET_CPU0_SOFT_RESET                             3
+#define CLKC_RESET_CPU1_SOFT_RESET                             4
+#define CLKC_RESET_CPU2_SOFT_RESET                             5
+#define CLKC_RESET_CPU3_SOFT_RESET                             6
+#define CLKC_RESET_A5_GLOBAL_RESET                             7
+#define CLKC_RESET_A5_AXI_SOFT_RESET                           8
+#define CLKC_RESET_A5_ABP_SOFT_RESET                           9
+#define CLKC_RESET_AXI_64_TO_128_BRIDGE_MMC_SOFT_RESET         10
+#define CLKC_RESET_VID_CLK_CNTL_SOFT_RESET                     11
+#define CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_POST            12
+#define CLKC_RESET_VID_DIVIDER_CNTL_SOFT_RESET_PRE             13
+#define CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_POST               14
+#define CLKC_RESET_VID_DIVIDER_CNTL_RESET_N_PRE                        15
+
+#endif /* _DT_BINDINGS_AMLOGIC_MESON8B_CLKC_RESET_H */